From ace9e170360ec22a3b110fa737af6570a5861805 Mon Sep 17 00:00:00 2001 From: atomiks Date: Wed, 29 May 2024 21:48:39 +1000 Subject: [PATCH 001/140] [Tooltip] Component and Hook (#264) --- .../tooltip/UnstyledTooltipDelayGroup.js | 60 +++ .../tooltip/UnstyledTooltipDelayGroup.tsx | 60 +++ .../UnstyledTooltipDelayGroup.tsx.preview | 14 + .../tooltip/UnstyledTooltipFollowCursor.js | 52 +++ .../tooltip/UnstyledTooltipFollowCursor.tsx | 52 +++ .../UnstyledTooltipFollowCursor.tsx.preview | 6 + .../system/index.js | 110 +++++ .../system/index.tsx | 110 +++++ .../tooltip/UnstyledTooltipTransition.js | 67 +++ .../tooltip/UnstyledTooltipTransition.tsx | 67 +++ .../UnstyledTooltipTransition.tsx.preview | 6 + docs/data/base/components/tooltip/tooltip.md | 397 +++++++++++++++++- docs/data/base/pages.ts | 16 +- docs/data/base/pagesApi.js | 32 ++ docs/package.json | 1 + docs/pages/base-ui/api/tooltip-arrow.json | 20 + docs/pages/base-ui/api/tooltip-popup.json | 19 + .../pages/base-ui/api/tooltip-positioner.json | 64 +++ docs/pages/base-ui/api/tooltip-provider.json | 19 + docs/pages/base-ui/api/tooltip-root.json | 34 ++ docs/pages/base-ui/api/tooltip-trigger.json | 19 + .../base-ui/api/use-tooltip-positioner.json | 117 ++++++ docs/pages/base-ui/api/use-tooltip-root.json | 90 ++++ .../base-ui/react-tooltip/[docsTab]/index.js | 116 +++++ docs/pages/experiments/tooltip.tsx | 301 +++++++++++++ .../tooltip-arrow/tooltip-arrow.json | 17 + .../tooltip-root/tooltip-root.json | 22 + .../tooltip-trigger/tooltip-trigger.json | 5 + .../api-docs/tooltip-arrow/tooltip-arrow.json | 13 + .../api-docs/tooltip-popup/tooltip-popup.json | 10 + .../tooltip-positioner.json | 45 ++ .../tooltip-provider/tooltip-provider.json | 15 + .../api-docs/tooltip-root/tooltip-root.json | 29 ++ .../tooltip-trigger/tooltip-trigger.json | 10 + .../use-tooltip-positioner.json | 61 +++ .../use-tooltip-root/use-tooltip-root.json | 48 +++ docs/translations/translations.json | 2 + packages/mui-base/package.json | 6 +- .../src/Tooltip/Arrow/TooltipArrow.test.tsx | 22 + .../src/Tooltip/Arrow/TooltipArrow.tsx | 88 ++++ .../src/Tooltip/Arrow/TooltipArrow.types.ts | 16 + .../mui-base/src/Tooltip/Arrow/styleHooks.ts | 10 + .../src/Tooltip/Popup/TooltipPopup.test.tsx | 34 ++ .../src/Tooltip/Popup/TooltipPopup.tsx | 86 ++++ .../src/Tooltip/Popup/TooltipPopup.types.ts | 13 + .../mui-base/src/Tooltip/Popup/styleHooks.ts | 16 + .../Positioner/TooltipPositioner.test.tsx | 17 + .../Tooltip/Positioner/TooltipPositioner.tsx | 239 +++++++++++ .../Positioner/TooltipPositioner.types.ts | 27 ++ .../Positioner/TooltipPositionerContext.ts | 16 + .../Positioner/useTooltipPositioner.ts | 255 +++++++++++ .../Positioner/useTooltipPositioner.types.ts | 137 ++++++ .../Tooltip/Provider/TooltipProvider.test.tsx | 83 ++++ .../src/Tooltip/Provider/TooltipProvider.tsx | 55 +++ .../Tooltip/Provider/TooltipProvider.types.ts | 19 + .../src/Tooltip/Root/TooltipRoot.test.tsx | 389 +++++++++++++++++ .../mui-base/src/Tooltip/Root/TooltipRoot.tsx | 161 +++++++ .../src/Tooltip/Root/TooltipRoot.types.ts | 77 ++++ .../src/Tooltip/Root/TooltipRootContext.ts | 12 + .../src/Tooltip/Root/useTooltipRoot.ts | 174 ++++++++ .../src/Tooltip/Root/useTooltipRoot.types.ts | 108 +++++ .../Tooltip/Trigger/TooltipTrigger.test.tsx | 17 + .../src/Tooltip/Trigger/TooltipTrigger.tsx | 60 +++ .../Tooltip/Trigger/TooltipTrigger.types.ts | 7 + .../src/Tooltip/Trigger/styleHooks.ts | 10 + packages/mui-base/src/Tooltip/index.barrel.ts | 17 + packages/mui-base/src/Tooltip/index.ts | 35 ++ packages/mui-base/src/index.ts | 1 + packages/mui-base/src/utils/BaseUI.types.ts | 2 + .../mui-base/src/utils/getStyleHookProps.ts | 2 +- packages/mui-base/src/utils/types.ts | 2 + .../test/conformanceTests/propForwarding.tsx | 6 +- pnpm-lock.yaml | 70 ++- 73 files changed, 4389 insertions(+), 26 deletions(-) create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.js create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx.preview create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.js create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx.preview create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.js create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.tsx create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipTransition.js create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx create mode 100644 docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx.preview create mode 100644 docs/pages/base-ui/api/tooltip-arrow.json create mode 100644 docs/pages/base-ui/api/tooltip-popup.json create mode 100644 docs/pages/base-ui/api/tooltip-positioner.json create mode 100644 docs/pages/base-ui/api/tooltip-provider.json create mode 100644 docs/pages/base-ui/api/tooltip-root.json create mode 100644 docs/pages/base-ui/api/tooltip-trigger.json create mode 100644 docs/pages/base-ui/api/use-tooltip-positioner.json create mode 100644 docs/pages/base-ui/api/use-tooltip-root.json create mode 100644 docs/pages/base-ui/react-tooltip/[docsTab]/index.js create mode 100644 docs/pages/experiments/tooltip.tsx create mode 100644 docs/translations/api-docs-base/tooltip-arrow/tooltip-arrow.json create mode 100644 docs/translations/api-docs-base/tooltip-root/tooltip-root.json create mode 100644 docs/translations/api-docs-base/tooltip-trigger/tooltip-trigger.json create mode 100644 docs/translations/api-docs/tooltip-arrow/tooltip-arrow.json create mode 100644 docs/translations/api-docs/tooltip-popup/tooltip-popup.json create mode 100644 docs/translations/api-docs/tooltip-positioner/tooltip-positioner.json create mode 100644 docs/translations/api-docs/tooltip-provider/tooltip-provider.json create mode 100644 docs/translations/api-docs/tooltip-root/tooltip-root.json create mode 100644 docs/translations/api-docs/tooltip-trigger/tooltip-trigger.json create mode 100644 docs/translations/api-docs/use-tooltip-positioner/use-tooltip-positioner.json create mode 100644 docs/translations/api-docs/use-tooltip-root/use-tooltip-root.json create mode 100644 packages/mui-base/src/Tooltip/Arrow/TooltipArrow.test.tsx create mode 100644 packages/mui-base/src/Tooltip/Arrow/TooltipArrow.tsx create mode 100644 packages/mui-base/src/Tooltip/Arrow/TooltipArrow.types.ts create mode 100644 packages/mui-base/src/Tooltip/Arrow/styleHooks.ts create mode 100644 packages/mui-base/src/Tooltip/Popup/TooltipPopup.test.tsx create mode 100644 packages/mui-base/src/Tooltip/Popup/TooltipPopup.tsx create mode 100644 packages/mui-base/src/Tooltip/Popup/TooltipPopup.types.ts create mode 100644 packages/mui-base/src/Tooltip/Popup/styleHooks.ts create mode 100644 packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.test.tsx create mode 100644 packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.tsx create mode 100644 packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.types.ts create mode 100644 packages/mui-base/src/Tooltip/Positioner/TooltipPositionerContext.ts create mode 100644 packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.ts create mode 100644 packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts create mode 100644 packages/mui-base/src/Tooltip/Provider/TooltipProvider.test.tsx create mode 100644 packages/mui-base/src/Tooltip/Provider/TooltipProvider.tsx create mode 100644 packages/mui-base/src/Tooltip/Provider/TooltipProvider.types.ts create mode 100644 packages/mui-base/src/Tooltip/Root/TooltipRoot.test.tsx create mode 100644 packages/mui-base/src/Tooltip/Root/TooltipRoot.tsx create mode 100644 packages/mui-base/src/Tooltip/Root/TooltipRoot.types.ts create mode 100644 packages/mui-base/src/Tooltip/Root/TooltipRootContext.ts create mode 100644 packages/mui-base/src/Tooltip/Root/useTooltipRoot.ts create mode 100644 packages/mui-base/src/Tooltip/Root/useTooltipRoot.types.ts create mode 100644 packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.test.tsx create mode 100644 packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.tsx create mode 100644 packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.types.ts create mode 100644 packages/mui-base/src/Tooltip/Trigger/styleHooks.ts create mode 100644 packages/mui-base/src/Tooltip/index.barrel.ts create mode 100644 packages/mui-base/src/Tooltip/index.ts diff --git a/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.js b/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.js new file mode 100644 index 000000000..c9fd9eb9f --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.js @@ -0,0 +1,60 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipDelayGroup() { + return ( +
+ + + Anchor A + + Tooltip A + + + + Anchor B + + Tooltip B + + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx b/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx new file mode 100644 index 000000000..c9fd9eb9f --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx @@ -0,0 +1,60 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipDelayGroup() { + return ( +
+ + + Anchor A + + Tooltip A + + + + Anchor B + + Tooltip B + + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx.preview b/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx.preview new file mode 100644 index 000000000..79ad0d2f2 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipDelayGroup.tsx.preview @@ -0,0 +1,14 @@ + + + Anchor A + + Tooltip A + + + + Anchor B + + Tooltip B + + + \ No newline at end of file diff --git a/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.js b/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.js new file mode 100644 index 000000000..12a3d7d98 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.js @@ -0,0 +1,52 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipFollowCursor() { + return ( +
+ + Anchor + + Tooltip + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx b/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx new file mode 100644 index 000000000..12a3d7d98 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx @@ -0,0 +1,52 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipFollowCursor() { + return ( +
+ + Anchor + + Tooltip + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx.preview b/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx.preview new file mode 100644 index 000000000..c95cdc12a --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipFollowCursor.tsx.preview @@ -0,0 +1,6 @@ + + Anchor + + Tooltip + + \ No newline at end of file diff --git a/docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.js b/docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.js new file mode 100644 index 000000000..fd19295c8 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.js @@ -0,0 +1,110 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipIntroduction() { + return ( +
+ + + B + + + Bold + + + + + + I + + + Italic + + + + + + U + + + Underline + + + + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } + + &[aria-label='bold'] { + font-weight: bold; + } + + &[aria-label='italic'] { + font-style: italic; + } + + &[aria-label='underline'] { + text-decoration: underline; + } +`; + +export const TooltipArrow = styled(Tooltip.Arrow)` + ${({ theme }) => ` + width: 10px; + height: 10px; + transform: rotate(45deg); + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + z-index: -1; + + &[data-side='top'] { + bottom: -5px; + } + &[data-side='right'] { + left: -5px; + } + &[data-side='bottom'] { + top: -5px; + } + &[data-side='left'] { + right: -5px; + } + `} +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.tsx b/docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.tsx new file mode 100644 index 000000000..fd19295c8 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipIntroduction/system/index.tsx @@ -0,0 +1,110 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipIntroduction() { + return ( +
+ + + B + + + Bold + + + + + + I + + + Italic + + + + + + U + + + Underline + + + + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } + + &[aria-label='bold'] { + font-weight: bold; + } + + &[aria-label='italic'] { + font-style: italic; + } + + &[aria-label='underline'] { + text-decoration: underline; + } +`; + +export const TooltipArrow = styled(Tooltip.Arrow)` + ${({ theme }) => ` + width: 10px; + height: 10px; + transform: rotate(45deg); + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + z-index: -1; + + &[data-side='top'] { + bottom: -5px; + } + &[data-side='right'] { + left: -5px; + } + &[data-side='bottom'] { + top: -5px; + } + &[data-side='left'] { + right: -5px; + } + `} +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipTransition.js b/docs/data/base/components/tooltip/UnstyledTooltipTransition.js new file mode 100644 index 000000000..0c15e8a10 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipTransition.js @@ -0,0 +1,67 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipTransition() { + return ( +
+ + Anchor + + Tooltip + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + transition-property: opacity, transform; + transition-duration: 0.2s; + opacity: 0; + transform: scale(0.9); + transform-origin: var(--transform-origin); + + &[data-state='open'] { + opacity: 1; + transform: scale(1); + } + + &[data-entering] { + opacity: 0; + transform: scale(0.9); + } + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx b/docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx new file mode 100644 index 000000000..0c15e8a10 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx @@ -0,0 +1,67 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled } from '@mui/system'; + +export default function UnstyledTooltipTransition() { + return ( +
+ + Anchor + + Tooltip + + +
+ ); +} + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + ${({ theme }) => ` + background: ${theme.palette.mode === 'dark' ? 'white' : 'black'}; + color: ${theme.palette.mode === 'dark' ? 'black' : 'white'}; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + transition-property: opacity, transform; + transition-duration: 0.2s; + opacity: 0; + transform: scale(0.9); + transform-origin: var(--transform-origin); + + &[data-state='open'] { + opacity: 1; + transform: scale(1); + } + + &[data-entering] { + opacity: 0; + transform: scale(0.9); + } + `} +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; diff --git a/docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx.preview b/docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx.preview new file mode 100644 index 000000000..ae1604e87 --- /dev/null +++ b/docs/data/base/components/tooltip/UnstyledTooltipTransition.tsx.preview @@ -0,0 +1,6 @@ + + Anchor + + Tooltip + + \ No newline at end of file diff --git a/docs/data/base/components/tooltip/tooltip.md b/docs/data/base/components/tooltip/tooltip.md index 02ea58050..946c9b210 100644 --- a/docs/data/base/components/tooltip/tooltip.md +++ b/docs/data/base/components/tooltip/tooltip.md @@ -1,14 +1,401 @@ --- productId: base-ui title: React Tooltip component +components: TooltipProvider, TooltipRoot, TooltipTrigger, TooltipPositioner, TooltipPopup, TooltipArrow +hooks: useTooltipRoot, useTooltipPositioner githubLabel: 'component: tooltip' waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/ --- -# Tooltip 🚧 +# Tooltip -

Tooltips display informative text when users hover over, focus on, or tap an element.

+

Tooltips are visual-only floating elements that display information about a trigger element when a user hovers or focuses it.

-:::warning -The Base UI Tooltip component isn't available yet, but you can upvote [this GitHub issue](https://github.com/mui/base-ui/issues/32) to see it arrive sooner. -::: +{{"component": "modules/components/ComponentLinkHeader.js", "design": false}} + +{{"component": "modules/components/ComponentPageTabs.js"}} + +## Introduction + +{{"demo": "UnstyledTooltipIntroduction", "defaultCodeOpen": false, "bg": "gradient"}} + +## Installation + +Base UI components are all available as a single package. + + + +```bash npm +npm install @base_ui/react +``` + +```bash yarn +yarn add @base_ui/react +``` + +```bash pnpm +pnpm add @base_ui/react +``` + + + +Once you have the package installed, import the component. + +```ts +import * as Tooltip from '@base_ui/react/Tooltip'; +``` + +## Anatomy + +Tooltip is implemented using a collection of related components: + +- `` wraps around `` or a group of ``s. +- `` is a top-level component that wraps the other components. +- `` renders the trigger element. +- `` renders the tooltip's positioning element. +- `` renders the tooltip popup itself. +- `` renders an optional pointing arrow, placed inside the popup. + +```tsx + + + + + + + + + + +``` + +## Provider + +`Tooltip.Provider` provides a shared delay for tooltips so that once a tooltip is shown, the rest of the tooltips in the group don't wait for the delay before showing. You can wrap this globally, or around an individual group of tooltips anywhere in your React tree (or both). + +```tsx + + + +``` + +{{"demo": "UnstyledTooltipDelayGroup.js"}} + +## Accessibility + +Tooltips are only for sighted users with access to a pointer with hover capability or keyboard focus. This means you must supply an accessible name via `aria-label` to trigger elements that don't contain text content, such as an icon button. + +```jsx + + + + + + Edit + + +``` + +Your `aria-label` and tooltip content should closely match or be identical so that screen reader users and sighted users receive the same information. + +Tooltips should ideally also be secondary in nature, because touch users cannot see them. They are most useful as progressive enhancement in high-density desktop applications that have many icon buttons where visual labels are impractical to use. + +## Placement + +By default, the tooltip is placed on the top side of its trigger, the default anchor. To change this, use the `side` prop: + +```jsx + + + + Tooltip + + +``` + +You can also change the alignment of the tooltip in relation to its anchor. By default, it is centered, but it can be aligned to an edge of the anchor using the `alignment` prop: + +```jsx + + Tooltip + +``` + +Due to collision detection, the tooltip may change its placement to avoid overflow. Therefore, your explicitly specified `side` and `alignment` props act as "ideal", or preferred, values. + +To access the true rendered values, which may change as the result of a collision, the content element receives data attributes: + +```jsx +// Rendered HTML (simplified) +
+
+ Tooltip +
+
+``` + +This allows you to conditionally style the tooltip based on its rendered side or alignment. + +## Offset + +The `sideOffset` prop creates a gap between the anchor and tooltip popup, while `alignmentOffset` slides the tooltip popup from its alignment, acting logically for `start` and `end` alignments. + +```jsx + +``` + +## Delay + +To change how long the tooltip waits until it opens or closes, use the `delay` and `closeDelay` props, which represent how long the tooltip waits after the cursor rests on the trigger to open, or moves away from the trigger to close, in milliseconds: + +```jsx + +``` + +The delay type can be changed from `"rest"` (user's cursor is static over the trigger for the given timeout in milliseconds) to `"hover"` (the user's cursor has entered the trigger): + +```jsx + +``` + +## Controlled + +To control the tooltip with external state, use the `open` and `onOpenChange` props: + +```jsx +function App() { + const [open, setOpen] = React.useState(false); + return ( + + {/* Subcomponents */} + + ); +} +``` + +## Arrow + +To add an arrow (caret or triangle) inside the tooltip content that points toward the center of the anchor element, use the `Tooltip.Arrow` component: + +```js + + + Tooltip + + + +``` + +It automatically positions a wrapper element that can be styled or contain a custom SVG shape. + +## Cursor following + +The tooltip can follow the cursor on both axes or one axis using the `followCursorAxis` prop on `Tooltip.Root`. Possible values are: `none` (default), `both`, `x`, or `y`. + +{{"demo": "UnstyledTooltipFollowCursor.js"}} + +## Anchoring + +By default, the `Trigger` acts as the anchor, but this can be changed to another element. + +- A DOM element (stored in React state): + +```jsx + +``` + +- A React ref: + +```jsx + +``` + +- A virtual element object, consisting of a `getBoundingClientRect` method and an optional `contextElement` property: + +```jsx + DOMRect, + // `contextElement` is an optional but recommended property when `getBoundingClientRect` is + // derived from a real element, to ensure collision detection and position updates work as + // expected in certain DOM trees. + contextElement: domNode, + }} +> +``` + +## Styling + +The `Tooltip.Positioner` element receives the following CSS variables, which can be used by `Tooltip.Popup`: + +- `--anchor-width`: Specifies the width of the anchor element. You can use this to match the width of the tooltip with its anchor. +- `--anchor-height`: Specifies the height of the anchor element. You can use this to match the height of the tooltip with its anchor. +- `--available-width`: Specifies the available width of the popup element before it overflows the viewport. +- `--available-height`: Specifies the available height of the popup element before it overflows the viewport. +- `--transform-origin`: Specifies the origin of the popup element that represents the point of the anchor element's center. When animating scale, this allows it to correctly emanate from the center of the anchor. + +By default, `maxWidth` and `maxHeight` are already specified on the positioner using `--available-{width,height}` to prevent the tooltip from being too big to fit on the screen. + +## Animations + +The tooltip can animate when opening or closing with either: + +- CSS transitions +- CSS animations +- JavaScript animations + +### CSS transitions + +Here is an example of how to apply a symmetric scale and fade transition with the default conditionally-rendered behavior: + +```jsx +Tooltip +``` + +```css +.TooltipPopup { + transform-origin: var(--transform-origin); + transition-property: opacity, transform; + transition-duration: 0.2s; + /* Represents the final styles once exited */ + opacity: 0; + transform: scale(0.9); +} + +/* Represents the final styles once entered */ +.TooltipPopup[data-state='open'] { + opacity: 1; + transform: scale(1); +} + +/* Represents the initial styles when entering */ +.TooltipPopup[data-entering] { + opacity: 0; + transform: scale(0.9); +} +``` + +Styles need to be applied in three states: + +- The exiting styles, placed on the base element class +- The open styles, placed on the base element class with `[data-state="open"]` +- The entering styles, placed on the base element class with `[data-entering]` + +{{"demo": "UnstyledTooltipTransition.js", "defaultCodeOpen": false}} + +In newer browsers, there is a feature called `@starting-style` which allows transitions to occur on open for conditionally-mounted components: + +```css +/* Base UI API - Polyfill */ +.TooltipPopup[data-entering] { + opacity: 0; + transform: scale(0.9); +} + +/* Official Browser API - no Firefox support as of May 2024 */ +@starting-style { + .TooltipPopup[data-state='open'] { + opacity: 0; + transform: scale(0.9); + } +} +``` + +### CSS animations + +CSS animations can also be used, requiring only two separate declarations: + +```css +@keyframes scale-in { + from { + opacity: 0; + transform: scale(0.9); + } +} + +@keyframes scale-out { + to { + opacity: 0; + transform: scale(0.9); + } +} + +.TooltipPopup { + animation: scale-in 0.2s forwards; +} + +.TooltipPopup[data-exiting] { + animation: scale-out 0.2s forwards; +} +``` + +### JavaScript animations + +The `keepMounted` prop lets an external library control the mounting, for example `framer-motion`'s `AnimatePresence` component. + +```js +function App() { + const [open, setOpen] = useState(false); + return ( + + Trigger + + {open && ( + + + } + > + Tooltip + + + )} + + + ); +} +``` + +### Animation states + +Four states are available as data attributes to animate the popup, which enables full control depending on whether the popup is being animated with CSS transitions or animations, JavaScript, or is using the `keepMounted` prop. + +- `[data-state="open"]` - `open` state is `true`. +- `[data-state="closed"]` - `open` state is `false`. Can still be mounted to the DOM if closing. +- `[data-entering]` - the popup was just inserted to the DOM. The attribute is removed 1 animation frame later. Enables "starting styles" upon insertion for conditional rendering. +- `[data-exiting]` - the popup is in the process of being removed from the DOM, but is still mounted. + +### Instant animation + +Animations can be removed under certain conditions using the `data-instant` attribute on `Tooltip.Popup`. This attribute can be used unconditionally, but it also has different values for granular checks: + +- `data-instant="delay"` indicates the tooltip is grouped and instantly opened with no delay. +- `data-instant="focus"` indicates it was triggered by keyboard focus. +- `data-instant="dismiss"` indicates it was dismissed by pressing the `esc` key. + +In most of these cases, you'll want to remove any animations: + +```css +.TooltipPopup[data-instant] { + transition-duration: 0s; +} +``` + +## Overriding default components + +Use the `render` prop to override the rendered elements with your own components. + +```jsx +// Element shorthand +} /> +``` + +```jsx +// Function + } /> +``` diff --git a/docs/data/base/pages.ts b/docs/data/base/pages.ts index 845f90a38..9f049a2af 100644 --- a/docs/data/base/pages.ts +++ b/docs/data/base/pages.ts @@ -35,14 +35,14 @@ const pages: readonly MuiPage[] = [ // { pathname: '/base-ui/react-toggle-button-group', title: 'Toggle Button Group', planned: true }, ], }, - // { - // pathname: '/base-ui/components/data-display', - // subheader: 'data-display', - // children: [ - // { pathname: '/base-ui/react-badge', title: 'Badge' }, - // { pathname: '/base-ui/react-tooltip', title: 'Tooltip', planned: true }, - // ], - // }, + { + pathname: '/base-ui/components/data-display', + subheader: 'data-display', + children: [ + // { pathname: '/base-ui/react-badge', title: 'Badge' }, + { pathname: '/base-ui/react-tooltip', title: 'Tooltip' }, + ], + }, // { // pathname: '/base-ui/components/feedback', // subheader: 'feedback', diff --git a/docs/data/base/pagesApi.js b/docs/data/base/pagesApi.js index 40324afae..17e5e1f9e 100644 --- a/docs/data/base/pagesApi.js +++ b/docs/data/base/pagesApi.js @@ -107,6 +107,30 @@ module.exports = [ pathname: '/base-ui/react-textarea-autosize/components-api/#textarea-autosize', title: 'TextareaAutosize', }, + { + pathname: '/base-ui/react-tooltip/components-api/#tooltip-arrow', + title: 'TooltipArrow', + }, + { + pathname: '/base-ui/react-tooltip/components-api/#tooltip-popup', + title: 'TooltipPopup', + }, + { + pathname: '/base-ui/react-tooltip/components-api/#tooltip-positioner', + title: 'TooltipPositioner', + }, + { + pathname: '/base-ui/react-tooltip/components-api/#tooltip-provider', + title: 'TooltipProvider', + }, + { + pathname: '/base-ui/react-tooltip/components-api/#tooltip-root', + title: 'TooltipRoot', + }, + { + pathname: '/base-ui/react-tooltip/components-api/#tooltip-trigger', + title: 'TooltipTrigger', + }, { pathname: '/base-ui/react-autocomplete/hooks-api/#use-autocomplete', title: 'useAutocomplete', @@ -161,6 +185,14 @@ module.exports = [ { pathname: '/base-ui/react-tabs/hooks-api/#use-tab-panel', title: 'useTabPanel' }, { pathname: '/base-ui/react-tabs/hooks-api/#use-tabs-list', title: 'useTabsList' }, { pathname: '/base-ui/react-tabs/hooks-api/#use-tabs-root', title: 'useTabsRoot' }, + { + pathname: '/base-ui/react-tooltip/hooks-api/#use-tooltip-positioner', + title: 'useTooltipPositioner', + }, + { + pathname: '/base-ui/react-tooltip/hooks-api/#use-tooltip-root', + title: 'useTooltipRoot', + }, { pathname: '/base-ui/react-transitions/hooks-api/#use-transition-state-manager', title: 'useTransitionStateManager', diff --git a/docs/package.json b/docs/package.json index b66d8f1f4..e4b8e382b 100644 --- a/docs/package.json +++ b/docs/package.json @@ -88,6 +88,7 @@ "@types/stylis": "^4.2.5", "chai": "^4.4.1", "cross-fetch": "^4.0.0", + "framer-motion": "^11.2.5", "marked": "^12.0.2", "playwright": "^1.43.1", "prettier": "^3.2.5", diff --git a/docs/pages/base-ui/api/tooltip-arrow.json b/docs/pages/base-ui/api/tooltip-arrow.json new file mode 100644 index 000000000..61b36f53e --- /dev/null +++ b/docs/pages/base-ui/api/tooltip-arrow.json @@ -0,0 +1,20 @@ +{ + "props": { + "className": { "type": { "name": "union", "description": "func
| string" } }, + "hideWhenUncentered": { "type": { "name": "bool" }, "default": "false" }, + "render": { "type": { "name": "union", "description": "element
| func" } } + }, + "name": "TooltipArrow", + "imports": [ + "import * as Tooltip from '@base_ui/react/Tooltip';\nconst TooltipArrow = Tooltip.Arrow;" + ], + "classes": [], + "spread": true, + "themeDefaultProps": true, + "muiName": "TooltipArrow", + "forwardsRefTo": "Element", + "filename": "/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.tsx", + "inheritance": null, + "demos": "", + "cssComponent": false +} diff --git a/docs/pages/base-ui/api/tooltip-popup.json b/docs/pages/base-ui/api/tooltip-popup.json new file mode 100644 index 000000000..df09d08b1 --- /dev/null +++ b/docs/pages/base-ui/api/tooltip-popup.json @@ -0,0 +1,19 @@ +{ + "props": { + "className": { "type": { "name": "union", "description": "func
| string" } }, + "render": { "type": { "name": "union", "description": "element
| func" } } + }, + "name": "TooltipPopup", + "imports": [ + "import * as Tooltip from '@base_ui/react/Tooltip';\nconst TooltipPopup = Tooltip.Popup;" + ], + "classes": [], + "spread": true, + "themeDefaultProps": true, + "muiName": "TooltipPopup", + "forwardsRefTo": "HTMLDivElement", + "filename": "/packages/mui-base/src/Tooltip/Popup/TooltipPopup.tsx", + "inheritance": null, + "demos": "", + "cssComponent": false +} diff --git a/docs/pages/base-ui/api/tooltip-positioner.json b/docs/pages/base-ui/api/tooltip-positioner.json new file mode 100644 index 000000000..08dd615d3 --- /dev/null +++ b/docs/pages/base-ui/api/tooltip-positioner.json @@ -0,0 +1,64 @@ +{ + "props": { + "alignment": { + "type": { + "name": "enum", + "description": "'center'
| 'end'
| 'start'" + }, + "default": "'center'" + }, + "alignmentOffset": { "type": { "name": "number" }, "default": "0" }, + "anchor": { + "type": { + "name": "union", + "description": "HTML element
| object
| func" + } + }, + "arrowPadding": { "type": { "name": "number" }, "default": "5" }, + "className": { "type": { "name": "union", "description": "func
| string" } }, + "collisionBoundary": { + "type": { + "name": "union", + "description": "HTML element
| Array<HTML element>
| string
| { height?: number, width?: number, x?: number, y?: number }" + }, + "default": "'clippingAncestors'" + }, + "collisionPadding": { + "type": { + "name": "union", + "description": "number
| { bottom?: number, left?: number, right?: number, top?: number }" + }, + "default": "5" + }, + "container": { "type": { "name": "union", "description": "HTML element
| func" } }, + "hideWhenDetached": { "type": { "name": "bool" }, "default": "false" }, + "keepMounted": { "type": { "name": "bool" }, "default": "false" }, + "positionStrategy": { + "type": { "name": "enum", "description": "'absolute'
| 'fixed'" }, + "default": "'absolute'" + }, + "render": { "type": { "name": "union", "description": "element
| func" } }, + "side": { + "type": { + "name": "enum", + "description": "'bottom'
| 'left'
| 'right'
| 'top'" + }, + "default": "'top'" + }, + "sideOffset": { "type": { "name": "number" }, "default": "0" }, + "sticky": { "type": { "name": "bool" }, "default": "false" } + }, + "name": "TooltipPositioner", + "imports": [ + "import * as Tooltip from '@base_ui/react/Tooltip';\nconst TooltipPositioner = Tooltip.Positioner;" + ], + "classes": [], + "spread": true, + "themeDefaultProps": true, + "muiName": "TooltipPositioner", + "forwardsRefTo": "HTMLDivElement", + "filename": "/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.tsx", + "inheritance": null, + "demos": "", + "cssComponent": false +} diff --git a/docs/pages/base-ui/api/tooltip-provider.json b/docs/pages/base-ui/api/tooltip-provider.json new file mode 100644 index 000000000..570269af7 --- /dev/null +++ b/docs/pages/base-ui/api/tooltip-provider.json @@ -0,0 +1,19 @@ +{ + "props": { + "closeDelay": { "type": { "name": "number" }, "default": "0" }, + "delay": { "type": { "name": "number" }, "default": "0" }, + "timeout": { "type": { "name": "number" }, "default": "400" } + }, + "name": "TooltipProvider", + "imports": [ + "import * as Tooltip from '@base_ui/react/Tooltip';\nconst TooltipProvider = Tooltip.Provider;" + ], + "classes": [], + "spread": true, + "themeDefaultProps": null, + "muiName": "TooltipProvider", + "filename": "/packages/mui-base/src/Tooltip/Provider/TooltipProvider.tsx", + "inheritance": null, + "demos": "", + "cssComponent": false +} diff --git a/docs/pages/base-ui/api/tooltip-root.json b/docs/pages/base-ui/api/tooltip-root.json new file mode 100644 index 000000000..7054c783e --- /dev/null +++ b/docs/pages/base-ui/api/tooltip-root.json @@ -0,0 +1,34 @@ +{ + "props": { + "animated": { "type": { "name": "bool" }, "default": "true" }, + "closeDelay": { "type": { "name": "number" }, "default": "0" }, + "defaultOpen": { "type": { "name": "bool" } }, + "delay": { "type": { "name": "number" }, "default": "300" }, + "delayType": { + "type": { "name": "enum", "description": "'hover'
| 'rest'" }, + "default": "'rest'" + }, + "followCursorAxis": { + "type": { + "name": "enum", + "description": "'both'
| 'none'
| 'x'
| 'y'" + }, + "default": "'none'" + }, + "hoverable": { "type": { "name": "bool" }, "default": "true" }, + "onOpenChange": { "type": { "name": "func" } }, + "open": { "type": { "name": "bool" } } + }, + "name": "TooltipRoot", + "imports": [ + "import * as Tooltip from '@base_ui/react/Tooltip';\nconst TooltipRoot = Tooltip.Root;" + ], + "classes": [], + "spread": true, + "themeDefaultProps": null, + "muiName": "TooltipRoot", + "filename": "/packages/mui-base/src/Tooltip/Root/TooltipRoot.tsx", + "inheritance": null, + "demos": "", + "cssComponent": false +} diff --git a/docs/pages/base-ui/api/tooltip-trigger.json b/docs/pages/base-ui/api/tooltip-trigger.json new file mode 100644 index 000000000..bdb850291 --- /dev/null +++ b/docs/pages/base-ui/api/tooltip-trigger.json @@ -0,0 +1,19 @@ +{ + "props": { + "className": { "type": { "name": "union", "description": "func
| string" } }, + "render": { "type": { "name": "union", "description": "element
| func" } } + }, + "name": "TooltipTrigger", + "imports": [ + "import * as Tooltip from '@base_ui/react/Tooltip';\nconst TooltipTrigger = Tooltip.Trigger;" + ], + "classes": [], + "spread": true, + "themeDefaultProps": true, + "muiName": "TooltipTrigger", + "forwardsRefTo": "HTMLButtonElement", + "filename": "/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.tsx", + "inheritance": null, + "demos": "", + "cssComponent": false +} diff --git a/docs/pages/base-ui/api/use-tooltip-positioner.json b/docs/pages/base-ui/api/use-tooltip-positioner.json new file mode 100644 index 000000000..aab8fc2f8 --- /dev/null +++ b/docs/pages/base-ui/api/use-tooltip-positioner.json @@ -0,0 +1,117 @@ +{ + "parameters": { + "getRootPositionerProps": { + "type": { + "name": "(externalProps?: GenericHTMLProps) => GenericHTMLProps", + "description": "(externalProps?: GenericHTMLProps) => GenericHTMLProps" + }, + "required": true + }, + "alignment": { + "type": { + "name": "'start' | 'end' | 'center'", + "description": "'start' | 'end' | 'center'" + }, + "default": "'center'" + }, + "alignmentOffset": { "type": { "name": "number", "description": "number" }, "default": "0" }, + "anchor": { + "type": { + "name": "Element | null | VirtualElement | React.MutableRefObject<Element | null> | (() => Element | VirtualElement | null)", + "description": "Element | null | VirtualElement | React.MutableRefObject<Element | null> | (() => Element | VirtualElement | null)" + } + }, + "arrowPadding": { "type": { "name": "number", "description": "number" }, "default": "5" }, + "collisionBoundary": { + "type": { "name": "Boundary", "description": "Boundary" }, + "default": "'clippingAncestors'" + }, + "collisionPadding": { "type": { "name": "Padding", "description": "Padding" }, "default": "5" }, + "followCursorAxis": { + "type": { + "name": "'none' | 'x' | 'y' | 'both'", + "description": "'none' | 'x' | 'y' | 'both'" + }, + "default": "'none'" + }, + "hideWhenDetached": { + "type": { "name": "boolean", "description": "boolean" }, + "default": "false" + }, + "instant": { "type": { "name": "boolean", "description": "boolean" } }, + "keepMounted": { "type": { "name": "boolean", "description": "boolean" }, "default": "false" }, + "mounted": { "type": { "name": "boolean", "description": "boolean" } }, + "open": { "type": { "name": "boolean", "description": "boolean" } }, + "positionStrategy": { + "type": { + "name": "'absolute' | 'fixed'", + "description": "'absolute' | 'fixed'" + }, + "default": "'absolute'" + }, + "rootContext": { + "type": { "name": "FloatingRootContext", "description": "FloatingRootContext" } + }, + "setMounted": { + "type": { + "name": "React.Dispatch<React.SetStateAction<boolean>>", + "description": "React.Dispatch<React.SetStateAction<boolean>>" + } + }, + "side": { + "type": { + "name": "'top' | 'right' | 'bottom' | 'left'", + "description": "'top' | 'right' | 'bottom' | 'left'" + }, + "default": "'top'" + }, + "sideOffset": { "type": { "name": "number", "description": "number" }, "default": "0" }, + "sticky": { "type": { "name": "boolean", "description": "boolean" }, "default": "false" } + }, + "returnValue": { + "alignment": { + "type": { + "name": "'start' | 'end' | 'center'", + "description": "'start' | 'end' | 'center'" + }, + "required": true + }, + "arrowRef": { + "type": { + "name": "React.MutableRefObject<Element | null>", + "description": "React.MutableRefObject<Element | null>" + }, + "required": true + }, + "arrowUncentered": { + "type": { "name": "boolean", "description": "boolean" }, + "required": true + }, + "getArrowProps": { + "type": { + "name": "(externalProps?: GenericHTMLProps) => GenericHTMLProps", + "description": "(externalProps?: GenericHTMLProps) => GenericHTMLProps" + }, + "required": true + }, + "getPositionerProps": { + "type": { + "name": "(externalProps?: GenericHTMLProps) => GenericHTMLProps", + "description": "(externalProps?: GenericHTMLProps) => GenericHTMLProps" + }, + "required": true + }, + "mounted": { "type": { "name": "boolean", "description": "boolean" }, "required": true }, + "side": { + "type": { + "name": "'top' | 'right' | 'bottom' | 'left'", + "description": "'top' | 'right' | 'bottom' | 'left'" + }, + "required": true + } + }, + "name": "useTooltipPositioner", + "filename": "/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.ts", + "imports": ["import { useTooltipPositioner } from '@base_ui/react/Tooltip';"], + "demos": "" +} diff --git a/docs/pages/base-ui/api/use-tooltip-root.json b/docs/pages/base-ui/api/use-tooltip-root.json new file mode 100644 index 000000000..67b04edb3 --- /dev/null +++ b/docs/pages/base-ui/api/use-tooltip-root.json @@ -0,0 +1,90 @@ +{ + "parameters": { + "animated": { "type": { "name": "boolean", "description": "boolean" }, "default": "true" }, + "closeDelay": { "type": { "name": "number", "description": "number" }, "default": "0" }, + "defaultOpen": { "type": { "name": "boolean", "description": "boolean" } }, + "delay": { "type": { "name": "number", "description": "number" }, "default": "300" }, + "delayType": { + "type": { + "name": "'rest' | 'hover'", + "description": "'rest' | 'hover'" + }, + "default": "'rest'" + }, + "followCursorAxis": { + "type": { + "name": "'none' | 'x' | 'y' | 'both'", + "description": "'none' | 'x' | 'y' | 'both'" + }, + "default": "'none'" + }, + "hoverable": { "type": { "name": "boolean", "description": "boolean" }, "default": "true" }, + "keepMounted": { "type": { "name": "boolean", "description": "boolean" }, "default": "false" }, + "onOpenChange": { + "type": { + "name": "(isOpen: boolean, event?: Event, reason?: OpenChangeReason) => void", + "description": "(isOpen: boolean, event?: Event, reason?: OpenChangeReason) => void" + } + }, + "open": { "type": { "name": "boolean", "description": "boolean" } }, + "popupElement": { + "type": { "name": "HTMLElement | null", "description": "HTMLElement | null" }, + "default": "null" + }, + "triggerElement": { + "type": { "name": "Element | null", "description": "Element | null" }, + "default": "null" + } + }, + "returnValue": { + "getRootPositionerProps": { + "type": { + "name": "UseInteractionsReturn['getFloatingProps']", + "description": "UseInteractionsReturn['getFloatingProps']" + }, + "required": true + }, + "getTriggerProps": { + "type": { + "name": "UseInteractionsReturn['getReferenceProps']", + "description": "UseInteractionsReturn['getReferenceProps']" + }, + "required": true + }, + "instantType": { + "type": { + "name": "'delay' | 'dismiss' | 'focus' | undefined", + "description": "'delay' | 'dismiss' | 'focus' | undefined" + }, + "required": true + }, + "mounted": { "type": { "name": "boolean", "description": "boolean" }, "required": true }, + "open": { "type": { "name": "boolean", "description": "boolean" }, "required": true }, + "rootContext": { + "type": { "name": "FloatingRootContext", "description": "FloatingRootContext" }, + "required": true + }, + "setMounted": { + "type": { + "name": "React.Dispatch<React.SetStateAction<boolean>>", + "description": "React.Dispatch<React.SetStateAction<boolean>>" + }, + "required": true + }, + "setOpen": { + "type": { + "name": "(value: boolean, event?: Event, reason?: OpenChangeReason) => void", + "description": "(value: boolean, event?: Event, reason?: OpenChangeReason) => void" + }, + "required": true + }, + "transitionStatus": { + "type": { "name": "TransitionStatus", "description": "TransitionStatus" }, + "required": true + } + }, + "name": "useTooltipRoot", + "filename": "/packages/mui-base/src/Tooltip/Root/useTooltipRoot.ts", + "imports": ["import { useTooltipRoot } from '@base_ui/react/Tooltip';"], + "demos": "" +} diff --git a/docs/pages/base-ui/react-tooltip/[docsTab]/index.js b/docs/pages/base-ui/react-tooltip/[docsTab]/index.js new file mode 100644 index 000000000..dd8615efa --- /dev/null +++ b/docs/pages/base-ui/react-tooltip/[docsTab]/index.js @@ -0,0 +1,116 @@ +import * as React from 'react'; +import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2'; +import AppFrame from 'docs/src/modules/components/AppFrame'; +import * as pageProps from 'docs-base/data/base/components/tooltip/tooltip.md?@mui/markdown'; +import mapApiPageTranslations from 'docs/src/modules/utils/mapApiPageTranslations'; +import TooltipArrowApiJsonPageContent from '../../api/tooltip-arrow.json'; +import TooltipPopupApiJsonPageContent from '../../api/tooltip-popup.json'; +import TooltipPositionerApiJsonPageContent from '../../api/tooltip-positioner.json'; +import TooltipProviderApiJsonPageContent from '../../api/tooltip-provider.json'; +import TooltipRootApiJsonPageContent from '../../api/tooltip-root.json'; +import TooltipTriggerApiJsonPageContent from '../../api/tooltip-trigger.json'; +import useTooltipPositionerApiJsonPageContent from '../../api/use-tooltip-positioner.json'; +import useTooltipRootApiJsonPageContent from '../../api/use-tooltip-root.json'; + +export default function Page(props) { + const { userLanguage, ...other } = props; + return ; +} + +Page.getLayout = (page) => { + return {page}; +}; + +export const getStaticPaths = () => { + return { + paths: [{ params: { docsTab: 'components-api' } }, { params: { docsTab: 'hooks-api' } }], + fallback: false, // can also be true or 'blocking' + }; +}; + +export const getStaticProps = () => { + const TooltipArrowApiReq = require.context( + 'docs-base/translations/api-docs/tooltip-arrow', + false, + /\.\/tooltip-arrow.*.json$/, + ); + const TooltipArrowApiDescriptions = mapApiPageTranslations(TooltipArrowApiReq); + + const TooltipPopupApiReq = require.context( + 'docs-base/translations/api-docs/tooltip-popup', + false, + /\.\/tooltip-popup.*.json$/, + ); + const TooltipPopupApiDescriptions = mapApiPageTranslations(TooltipPopupApiReq); + + const TooltipPositionerApiReq = require.context( + 'docs-base/translations/api-docs/tooltip-positioner', + false, + /\.\/tooltip-positioner.*.json$/, + ); + const TooltipPositionerApiDescriptions = mapApiPageTranslations(TooltipPositionerApiReq); + + const TooltipProviderApiReq = require.context( + 'docs-base/translations/api-docs/tooltip-provider', + false, + /\.\/tooltip-provider.*.json$/, + ); + const TooltipProviderApiDescriptions = mapApiPageTranslations(TooltipProviderApiReq); + + const TooltipRootApiReq = require.context( + 'docs-base/translations/api-docs/tooltip-root', + false, + /\.\/tooltip-root.*.json$/, + ); + const TooltipRootApiDescriptions = mapApiPageTranslations(TooltipRootApiReq); + + const TooltipTriggerApiReq = require.context( + 'docs-base/translations/api-docs/tooltip-trigger', + false, + /\.\/tooltip-trigger.*.json$/, + ); + const TooltipTriggerApiDescriptions = mapApiPageTranslations(TooltipTriggerApiReq); + + const useTooltipPositionerApiReq = require.context( + 'docs-base/translations/api-docs/use-tooltip-positioner', + false, + /\.\/use-tooltip-positioner.*.json$/, + ); + const useTooltipPositionerApiDescriptions = mapApiPageTranslations(useTooltipPositionerApiReq); + + const useTooltipRootApiReq = require.context( + 'docs-base/translations/api-docs/use-tooltip-root', + false, + /\.\/use-tooltip-root.*.json$/, + ); + const useTooltipRootApiDescriptions = mapApiPageTranslations(useTooltipRootApiReq); + + return { + props: { + componentsApiDescriptions: { + TooltipArrow: TooltipArrowApiDescriptions, + TooltipPopup: TooltipPopupApiDescriptions, + TooltipPositioner: TooltipPositionerApiDescriptions, + TooltipProvider: TooltipProviderApiDescriptions, + TooltipRoot: TooltipRootApiDescriptions, + TooltipTrigger: TooltipTriggerApiDescriptions, + }, + componentsApiPageContents: { + TooltipArrow: TooltipArrowApiJsonPageContent, + TooltipPopup: TooltipPopupApiJsonPageContent, + TooltipPositioner: TooltipPositionerApiJsonPageContent, + TooltipProvider: TooltipProviderApiJsonPageContent, + TooltipRoot: TooltipRootApiJsonPageContent, + TooltipTrigger: TooltipTriggerApiJsonPageContent, + }, + hooksApiDescriptions: { + useTooltipPositioner: useTooltipPositionerApiDescriptions, + useTooltipRoot: useTooltipRootApiDescriptions, + }, + hooksApiPageContents: { + useTooltipPositioner: useTooltipPositionerApiJsonPageContent, + useTooltipRoot: useTooltipRootApiJsonPageContent, + }, + }, + }; +}; diff --git a/docs/pages/experiments/tooltip.tsx b/docs/pages/experiments/tooltip.tsx new file mode 100644 index 000000000..2a18baac4 --- /dev/null +++ b/docs/pages/experiments/tooltip.tsx @@ -0,0 +1,301 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { styled, keyframes } from '@mui/system'; +import { motion, AnimatePresence } from 'framer-motion'; + +const scaleIn = keyframes` + from { + opacity: 0; + transform: scale(0.8); + } +`; + +const scaleOut = keyframes` + to { + opacity: 0; + transform: scale(0); + } +`; + +const blue = { + 400: '#3399FF', + 600: '#0072E6', + 800: '#004C99', +}; + +export const TooltipPopup = styled(Tooltip.Popup)` + font-family: 'IBM Plex Sans', sans-serif; + background: black; + color: white; + padding: 4px 6px; + border-radius: 4px; + font-size: 95%; + cursor: default; + transform-origin: var(--transform-origin); + + &[data-instant] { + transition-duration: 0s !important; + animation-duration: 0s !important; + } + + &[data-type='css-animation'] { + &[data-state='open'] { + visibility: visible; + animation: ${scaleIn} 0.2s forwards; + } + + &[data-exiting] { + animation: ${scaleOut} 0.2s forwards; + } + } + + &[data-type='css-animation-keep-mounted'] { + visibility: hidden; + + &[data-state='open'] { + visibility: visible; + animation: ${scaleIn} 0.2s forwards; + } + + &[data-exiting] { + visibility: visible; + animation: ${scaleOut} 0.2s forwards; + } + } + + &[data-type='css-transition'] { + transition-property: opacity, transform, visibility; + transition-duration: 0.2s; + opacity: 0; + transform: scale(0); + + &[data-state='open'] { + opacity: 1; + transform: scale(1); + } + + &[data-entering] { + opacity: 0; + transform: scale(0.8); + } + } + + &[data-type='css-transition-keep-mounted'] { + transition-property: opacity, transform, visibility; + transition-duration: 0.2s; + opacity: 0; + transform: scale(0.8); + visibility: hidden; + + &[data-state='open'] { + opacity: 1; + transform: scale(1); + visibility: visible; + } + + &[data-exiting] { + opacity: 0; + transform: scale(0); + } + } + + &[data-type='css-transition-starting-style'] { + transition-property: opacity, transform, visibility; + transition-duration: 0.2s; + opacity: 0; + transform: scale(0); + + &[data-state='open'] { + opacity: 1; + transform: scale(1); + } + + @starting-style { + &[data-state='open'] { + opacity: 0; + transform: scale(0.8); + } + } + } +`; + +export const AnchorButton = styled(Tooltip.Trigger)` + border: none; + background: ${blue[600]}; + color: white; + padding: 8px 16px; + border-radius: 4px; + font-size: 16px; + + &:focus-visible { + outline: 2px solid ${blue[400]}; + outline-offset: 2px; + } + + &:hover, + &[data-state='open'] { + background: ${blue[800]}; + } +`; + +export default function TooltipTransitionExperiment() { + return ( +
+

Base UI Tooltip Popup Animations

+
+ +

Conditional Rendering

+ +

CSS Animation Group

+
+ + + Anchor + + Tooltip + + + + Anchor + + Tooltip + + + +
+

CSS Animation

+ + Anchor + + Tooltip + + + +

CSS Transition Group

+
+ + + Anchor + + Tooltip + + + + Anchor + + Tooltip + + + +
+

CSS Transition

+ + Anchor + + Tooltip + + + +

CSS Transition with `@starting-style`

+ + Anchor + + Tooltip + + + +
+ +

Keep Mounted

+ +

CSS Animation Group

+
+ + + Anchor + + Tooltip + + + + Anchor + + Tooltip + + + +
+

CSS Animation

+ + Anchor + + Tooltip + + + +

CSS Transition Group

+
+ + + Anchor + + Tooltip + + + + Anchor + + Tooltip + + + +
+

CSS Transition

+ + Anchor + + Tooltip + + + +
+ +

JavaScript Animation (`framer-motion`)

+ +
+ ); +} + +function FramerMotion() { + const [isOpen, setIsOpen] = React.useState(false); + return ( + + Anchor + + {isOpen && ( + + + } + > + Tooltip + + + )} + + + ); +} diff --git a/docs/translations/api-docs-base/tooltip-arrow/tooltip-arrow.json b/docs/translations/api-docs-base/tooltip-arrow/tooltip-arrow.json new file mode 100644 index 000000000..53ba86752 --- /dev/null +++ b/docs/translations/api-docs-base/tooltip-arrow/tooltip-arrow.json @@ -0,0 +1,17 @@ +{ + "componentDescription": "The tooltip arrow caret element.", + "propDescriptions": { + "className": { + "description": "Class names applied to the element or a function that returns them based on the component's state." + }, + "hideWhenUncentered": { + "description": "If true, the arrow will be hidden when it can't point to the center of the anchor element." + }, + "render": { "description": "A function to customize rendering of the component." }, + "staticOffset": { + "description": "Forces a static offset over dynamic positioning under a certain condition." + }, + "tipRadius": { "description": "The corner radius (rounding) of the arrow tip." } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs-base/tooltip-root/tooltip-root.json b/docs/translations/api-docs-base/tooltip-root/tooltip-root.json new file mode 100644 index 000000000..2ee40170d --- /dev/null +++ b/docs/translations/api-docs-base/tooltip-root/tooltip-root.json @@ -0,0 +1,22 @@ +{ + "componentDescription": "The foundation for building custom-styled tooltips.", + "propDescriptions": { + "closeDelay": { + "description": "The delay in milliseconds until the tooltip content is closed." + }, + "defaultOpen": { + "description": "Specifies whether the tooltip is open initially when uncontrolled." + }, + "delay": { "description": "The delay in milliseconds until the tooltip content is opened." }, + "delayType": { + "description": "The delay type to use. rest means the delay represents how long the user's cursor must rest on the anchor before the tooltip content is opened. hover means the delay represents how long to wait once the user's cursor has entered the anchor." + }, + "onOpenChange": { + "description": "Callback fired when the tooltip content is requested to be opened or closed. Use when controlled." + }, + "open": { + "description": "If true, the tooltip content is open. Use when controlled." + } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs-base/tooltip-trigger/tooltip-trigger.json b/docs/translations/api-docs-base/tooltip-trigger/tooltip-trigger.json new file mode 100644 index 000000000..7fff056a0 --- /dev/null +++ b/docs/translations/api-docs-base/tooltip-trigger/tooltip-trigger.json @@ -0,0 +1,5 @@ +{ + "componentDescription": "Provides props for its child element to trigger the tooltip, anchoring it to the child element.", + "propDescriptions": {}, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/tooltip-arrow/tooltip-arrow.json b/docs/translations/api-docs/tooltip-arrow/tooltip-arrow.json new file mode 100644 index 000000000..6b2cc8c91 --- /dev/null +++ b/docs/translations/api-docs/tooltip-arrow/tooltip-arrow.json @@ -0,0 +1,13 @@ +{ + "componentDescription": "The tooltip arrow caret element.", + "propDescriptions": { + "className": { + "description": "Class names applied to the element or a function that returns them based on the component's state." + }, + "hideWhenUncentered": { + "description": "If true, the arrow will be hidden when it can't point to the center of the anchor element." + }, + "render": { "description": "A function to customize rendering of the component." } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/tooltip-popup/tooltip-popup.json b/docs/translations/api-docs/tooltip-popup/tooltip-popup.json new file mode 100644 index 000000000..933da608c --- /dev/null +++ b/docs/translations/api-docs/tooltip-popup/tooltip-popup.json @@ -0,0 +1,10 @@ +{ + "componentDescription": "The tooltip popup element.", + "propDescriptions": { + "className": { + "description": "Class names applied to the element or a function that returns them based on the component's state." + }, + "render": { "description": "A function to customize rendering of the component." } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/tooltip-positioner/tooltip-positioner.json b/docs/translations/api-docs/tooltip-positioner/tooltip-positioner.json new file mode 100644 index 000000000..b831b6480 --- /dev/null +++ b/docs/translations/api-docs/tooltip-positioner/tooltip-positioner.json @@ -0,0 +1,45 @@ +{ + "componentDescription": "The tooltip positioner element.", + "propDescriptions": { + "alignment": { + "description": "The alignment of the tooltip element to the anchor element along its cross axis." + }, + "alignmentOffset": { + "description": "The offset of the tooltip element along its alignment axis." + }, + "anchor": { "description": "The anchor element of the tooltip popup." }, + "arrowPadding": { + "description": "Determines the padding between the arrow and the tooltip popup edges. Useful when the tooltip popup has rounded corners via border-radius." + }, + "className": { + "description": "Class names applied to the element or a function that returns them based on the component's state." + }, + "collisionBoundary": { + "description": "The boundary that the tooltip element should be constrained to." + }, + "collisionPadding": { + "description": "The padding of the collision boundary to add whitespace between the tooltip popup and the boundary edges to prevent them from touching." + }, + "container": { + "description": "The container element to which the tooltip positioner is appended to." + }, + "hideWhenDetached": { + "description": "If true, the tooltip will be hidden if it is detached from its anchor element due to differing clipping contexts." + }, + "keepMounted": { + "description": "If true, the tooltip popup remains mounted in the DOM even when closed." + }, + "positionStrategy": { + "description": "The CSS position strategy for positioning the tooltip popup element." + }, + "render": { "description": "A function to customize rendering of the component." }, + "side": { + "description": "The side of the anchor element that the tooltip element should be placed at." + }, + "sideOffset": { "description": "The gap between the anchor element and the tooltip element." }, + "sticky": { + "description": "If true, allow the tooltip to remain stuck in view while the anchor element is scrolled out of view." + } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/tooltip-provider/tooltip-provider.json b/docs/translations/api-docs/tooltip-provider/tooltip-provider.json new file mode 100644 index 000000000..b88c0aaf5 --- /dev/null +++ b/docs/translations/api-docs/tooltip-provider/tooltip-provider.json @@ -0,0 +1,15 @@ +{ + "componentDescription": "Provides a shared delay for tooltips so that once a tooltip is shown, the rest of the tooltips in\nthe group will not wait for the delay before showing.", + "propDescriptions": { + "closeDelay": { + "description": "he delay in milliseconds until tooltips within the group are closed." + }, + "delay": { + "description": "The delay in milliseconds until tooltips within the group are open." + }, + "timeout": { + "description": "The timeout in milliseconds until the grouping logic is no longer active after the last tooltip in the group has closed." + } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/tooltip-root/tooltip-root.json b/docs/translations/api-docs/tooltip-root/tooltip-root.json new file mode 100644 index 000000000..91758e57d --- /dev/null +++ b/docs/translations/api-docs/tooltip-root/tooltip-root.json @@ -0,0 +1,29 @@ +{ + "componentDescription": "The foundation for building custom-styled tooltips.", + "propDescriptions": { + "animated": { + "description": "Whether the tooltip can animate, adding animation-related attributes and allowing for exit animations to play. Useful to disable in tests to remove async behavior." + }, + "closeDelay": { "description": "The delay in milliseconds until the tooltip popup is closed." }, + "defaultOpen": { + "description": "Specifies whether the tooltip is open initially when uncontrolled." + }, + "delay": { "description": "The delay in milliseconds until the tooltip popup is opened." }, + "delayType": { + "description": "The delay type to use. rest means the delay represents how long the user's cursor must rest on the trigger before the tooltip popup is opened. hover means the delay represents how long to wait as soon as the user's cursor has entered the trigger." + }, + "followCursorAxis": { + "description": "Determines which axis the tooltip should follow the cursor on." + }, + "hoverable": { + "description": "Whether the user can move their cursor from the trigger to the tooltip popup without it closing." + }, + "onOpenChange": { + "description": "Callback fired when the tooltip popup is requested to be opened or closed. Use when controlled." + }, + "open": { + "description": "If true, the tooltip popup is open. Use when controlled." + } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/tooltip-trigger/tooltip-trigger.json b/docs/translations/api-docs/tooltip-trigger/tooltip-trigger.json new file mode 100644 index 000000000..53290b974 --- /dev/null +++ b/docs/translations/api-docs/tooltip-trigger/tooltip-trigger.json @@ -0,0 +1,10 @@ +{ + "componentDescription": "Renders a trigger element that will open the tooltip.", + "propDescriptions": { + "className": { + "description": "Class names applied to the element or a function that returns them based on the component's state." + }, + "render": { "description": "A function to customize rendering of the component." } + }, + "classDescriptions": {} +} diff --git a/docs/translations/api-docs/use-tooltip-positioner/use-tooltip-positioner.json b/docs/translations/api-docs/use-tooltip-positioner/use-tooltip-positioner.json new file mode 100644 index 000000000..31f203023 --- /dev/null +++ b/docs/translations/api-docs/use-tooltip-positioner/use-tooltip-positioner.json @@ -0,0 +1,61 @@ +{ + "hookDescription": "Manages the popup state for a tooltip including positioning.", + "parametersDescriptions": { + "alignment": { + "description": "The alignment of the tooltip element to the anchor element along its cross axis." + }, + "alignmentOffset": { + "description": "The offset of the tooltip element along its alignment axis." + }, + "anchor": { "description": "The anchor element of the tooltip popup." }, + "arrowPadding": { + "description": "Determines the padding between the arrow and the tooltip popup edges. Useful when the tooltip popup has rounded corners via border-radius." + }, + "collisionBoundary": { + "description": "The boundary that the tooltip element should be constrained to." + }, + "collisionPadding": { + "description": "The padding of the collision boundary to add whitespace between the tooltip popup and the boundary edges to prevent them from touching." + }, + "followCursorAxis": { + "description": "Determines which axis the tooltip should follow the cursor on." + }, + "getRootPositionerProps": { + "description": "Root props to spread on the tooltip positioner element." + }, + "hideWhenDetached": { + "description": "If true, the tooltip will be hidden if it is detached from its anchor element due to differing clipping contexts." + }, + "instant": { + "description": "If true, the tooltip is in an instant phase where animations should be removed." + }, + "keepMounted": { + "description": "If true, the tooltip popup remains mounted in the DOM even when closed." + }, + "mounted": { "description": "If true, the tooltip is mounted." }, + "open": { "description": "If true, the tooltip is open." }, + "positionStrategy": { + "description": "The CSS position strategy for positioning the tooltip popup element." + }, + "rootContext": { "description": "The tooltip root context." }, + "setMounted": { "description": "Callback fired when the mounted state changes." }, + "side": { + "description": "The side of the anchor element that the tooltip element should be placed at." + }, + "sideOffset": { "description": "The gap between the anchor element and the tooltip element." }, + "sticky": { + "description": "If true, allow the tooltip to remain stuck in view while the anchor element is scrolled out of view." + } + }, + "returnValueDescriptions": { + "alignment": { "description": "The rendered alignment of the tooltip popup element." }, + "arrowRef": { "description": "The ref for the arrow element." }, + "arrowUncentered": { "description": "Determines if the arrow cannot be centered." }, + "getArrowProps": { "description": "Props to spread on the popup arrow element." }, + "getPositionerProps": { "description": "Props to spread on the positioner element." }, + "mounted": { + "description": "Whether the tooltip is mounted, including CSS transitions or animations." + }, + "side": { "description": "The rendered side of the tooltip popup element." } + } +} diff --git a/docs/translations/api-docs/use-tooltip-root/use-tooltip-root.json b/docs/translations/api-docs/use-tooltip-root/use-tooltip-root.json new file mode 100644 index 000000000..bdc297ebd --- /dev/null +++ b/docs/translations/api-docs/use-tooltip-root/use-tooltip-root.json @@ -0,0 +1,48 @@ +{ + "hookDescription": "Manages the root state for a tooltip.", + "parametersDescriptions": { + "animated": { + "description": "Whether the tooltip can animate, adding animation-related attributes and allowing for exit animations to play. Useful to disable in tests to remove async behavior." + }, + "closeDelay": { "description": "The delay in milliseconds until the tooltip popup is closed." }, + "defaultOpen": { + "description": "If true, the tooltip popup will be open by default. Use when uncontrolled." + }, + "delay": { "description": "The delay in milliseconds until the tooltip popup is opened." }, + "delayType": { + "description": "The delay type to use. rest means the delay represents how long the user's cursor must rest on the trigger before the tooltip popup is opened. hover means the delay represents how long to wait as soon as the user's cursor has entered the trigger." + }, + "followCursorAxis": { + "description": "Determines which axis the tooltip should follow the cursor on." + }, + "hoverable": { + "description": "If true, the user can move from the trigger toward the tooltip without it closing." + }, + "keepMounted": { + "description": "If true, the tooltip popup remains mounted in the DOM even when closed." + }, + "onOpenChange": { + "description": "Callback fired when the tooltip popup is requested to be opened or closed." + }, + "open": { + "description": "If true, the tooltip popup will be open. Use when controlled." + }, + "popupElement": { "description": "The popup element. Store in state." }, + "triggerElement": { "description": "The trigger element. Store in state." } + }, + "returnValueDescriptions": { + "getRootPositionerProps": { + "description": "Prop getter to spread root props on the positioner element." + }, + "getTriggerProps": { "description": "Prop getter to spread props on the trigger element." }, + "instantType": { + "description": "The type of instant phase the tooltip is in to remove animations." + }, + "mounted": { "description": "If true, the tooltip is mounted." }, + "open": { "description": "If true, the tooltip is open." }, + "rootContext": { "description": "The root context object." }, + "setMounted": { "description": "Sets the mounted state of the tooltip." }, + "setOpen": { "description": "Sets the open state of the tooltip." }, + "transitionStatus": { "description": "The transition status of the tooltip." } + } +} diff --git a/docs/translations/translations.json b/docs/translations/translations.json index 2084061a4..569c621e4 100644 --- a/docs/translations/translations.json +++ b/docs/translations/translations.json @@ -223,6 +223,8 @@ "/base-ui/react-checkbox": "Checkbox", "/base-ui/react-number-field": "Number Field", "/base-ui/react-switch": "Switch", + "data-display": "Data display", + "/base-ui/react-tooltip": "Tooltip", "navigation": "Navigation", "/base-ui/react-tabs": "Tabs", "/base-ui/guides": "How-to guides", diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json index 365902225..bc957e1b4 100644 --- a/packages/mui-base/package.json +++ b/packages/mui-base/package.json @@ -40,7 +40,9 @@ }, "dependencies": { "@babel/runtime": "^7.24.5", - "@floating-ui/react-dom": "^2.1.0", + "@floating-ui/react": "^0.26.12", + "@floating-ui/react-dom": "^2.0.8", + "@floating-ui/utils": "^0.2.1", "@mui/types": "^7.2.14", "@mui/utils": "^5.15.14", "@popperjs/core": "^2.11.8", @@ -93,6 +95,7 @@ "Portal/", "Switch/", "Tabs/", + "Tooltip/", "Transitions/", "useButton/", "useCompound", @@ -109,6 +112,7 @@ "node/Portal/", "node/Switch/", "node/Tabs/", + "node/Tooltip/", "node/Transitions/", "node/useButton/", "node/useCompound/", diff --git a/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.test.tsx b/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.test.tsx new file mode 100644 index 000000000..6d64c20eb --- /dev/null +++ b/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.test.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { createRenderer } from '@mui/internal-test-utils'; +import { describeConformance } from '../../../test/describeConformance'; + +describe('', () => { + const { render } = createRenderer(); + + describeConformance(, () => ({ + refInstanceof: window.Element, + render(node) { + return render( + + + {node} + + , + ); + }, + skip: ['reactTestRenderer'], + })); +}); diff --git a/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.tsx b/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.tsx new file mode 100644 index 000000000..d39099cae --- /dev/null +++ b/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.tsx @@ -0,0 +1,88 @@ +'use client'; +import * as React from 'react'; +import PropTypes from 'prop-types'; +import type { TooltipArrowOwnerState, TooltipArrowProps } from './TooltipArrow.types'; +import { tooltipArrowStyleHookMapping } from './styleHooks'; +import { useComponentRenderer } from '../../utils/useComponentRenderer'; +import { useForkRef } from '../../utils/useForkRef'; +import { useTooltipPositionerContext } from '../Positioner/TooltipPositionerContext'; + +/** + * The tooltip arrow caret element. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/) + * + * API: + * + * - [TooltipArrow API](https://mui.com/base-ui/react-tooltip/components-api/#tooltip-arrow) + */ +const TooltipArrow = React.forwardRef(function TooltipArrow( + props: TooltipArrowProps, + forwardedRef: React.ForwardedRef, +) { + const { className, render, hideWhenUncentered = false, ...otherProps } = props; + + const { open, arrowRef, side, alignment, arrowUncentered, getArrowProps } = + useTooltipPositionerContext(); + + const ownerState: TooltipArrowOwnerState = React.useMemo( + () => ({ + open, + side, + alignment, + }), + [open, side, alignment], + ); + + const mergedRef = useForkRef(arrowRef, forwardedRef); + + const { renderElement } = useComponentRenderer({ + propGetter: getArrowProps, + render: render ?? 'div', + ownerState, + className, + ref: mergedRef, + extraProps: { + ...otherProps, + style: { + ...(hideWhenUncentered && arrowUncentered && { visibility: 'hidden' }), + ...otherProps.style, + }, + }, + customStyleHookMapping: tooltipArrowStyleHookMapping, + }); + + return renderElement(); +}); + +TooltipArrow.propTypes /* remove-proptypes */ = { + // ┌────────────────────────────── Warning ──────────────────────────────┠+ // │ These PropTypes are generated from the TypeScript type definitions. │ + // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ + // └─────────────────────────────────────────────────────────────────────┘ + /** + * @ignore + */ + children: PropTypes.node, + /** + * Class names applied to the element or a function that returns them based on the component's state. + */ + className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), + /** + * If `true`, the arrow will be hidden when it can't point to the center of the anchor element. + * @default false + */ + hideWhenUncentered: PropTypes.bool, + /** + * A function to customize rendering of the component. + */ + render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + /** + * @ignore + */ + style: PropTypes.object, +} as any; + +export { TooltipArrow }; diff --git a/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.types.ts b/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.types.ts new file mode 100644 index 000000000..09b59d540 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Arrow/TooltipArrow.types.ts @@ -0,0 +1,16 @@ +import type { Side } from '@floating-ui/react'; +import type { BaseUIComponentProps } from '../../utils/BaseUI.types'; + +export type TooltipArrowOwnerState = { + open: boolean; + side: Side; + alignment: 'start' | 'center' | 'end'; +}; + +export interface TooltipArrowProps extends BaseUIComponentProps<'div', TooltipArrowOwnerState> { + /** + * If `true`, the arrow will be hidden when it can't point to the center of the anchor element. + * @default false + */ + hideWhenUncentered?: boolean; +} diff --git a/packages/mui-base/src/Tooltip/Arrow/styleHooks.ts b/packages/mui-base/src/Tooltip/Arrow/styleHooks.ts new file mode 100644 index 000000000..3bb6de2d2 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Arrow/styleHooks.ts @@ -0,0 +1,10 @@ +import type { TooltipArrowOwnerState } from './TooltipArrow.types'; +import type { CustomStyleHookMapping } from '../../utils/getStyleHookProps'; + +export const tooltipArrowStyleHookMapping: CustomStyleHookMapping = { + open(value) { + return { + 'data-state': value ? 'open' : 'closed', + }; + }, +}; diff --git a/packages/mui-base/src/Tooltip/Popup/TooltipPopup.test.tsx b/packages/mui-base/src/Tooltip/Popup/TooltipPopup.test.tsx new file mode 100644 index 000000000..9ed327514 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Popup/TooltipPopup.test.tsx @@ -0,0 +1,34 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { createRenderer, screen } from '@mui/internal-test-utils'; +import { expect } from 'chai'; +import { describeConformance } from '../../../test/describeConformance'; + +describe('', () => { + const { render } = createRenderer(); + + describeConformance(, () => ({ + inheritComponent: 'div', + refInstanceof: window.HTMLDivElement, + render(node) { + return render( + + {node} + , + ); + }, + skip: ['reactTestRenderer'], + })); + + it('should render the children', () => { + render( + + + Content + + , + ); + + expect(screen.getByText('Content')).not.to.equal(null); + }); +}); diff --git a/packages/mui-base/src/Tooltip/Popup/TooltipPopup.tsx b/packages/mui-base/src/Tooltip/Popup/TooltipPopup.tsx new file mode 100644 index 000000000..d3e4f6a15 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Popup/TooltipPopup.tsx @@ -0,0 +1,86 @@ +'use client'; +import * as React from 'react'; +import PropTypes from 'prop-types'; +import type { TooltipPopupOwnerState, TooltipPopupProps } from './TooltipPopup.types'; +import { useComponentRenderer } from '../../utils/useComponentRenderer'; +import { tooltipPopupStyleHookMapping } from './styleHooks'; +import { useTooltipRootContext } from '../Root/TooltipRootContext'; +import { useTooltipPositionerContext } from '../Positioner/TooltipPositionerContext'; + +/** + * The tooltip popup element. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/) + * + * API: + * + * - [TooltipPopup API](https://mui.com/base-ui/react-tooltip/components-api/#tooltip-popup) + */ +const TooltipPopup = React.forwardRef(function TooltipPopup( + props: TooltipPopupProps, + forwardedRef: React.ForwardedRef, +) { + const { className, render, ...otherProps } = props; + + const { open, instantType, transitionStatus } = useTooltipRootContext(); + const { side, alignment } = useTooltipPositionerContext(); + + const ownerState: TooltipPopupOwnerState = React.useMemo( + () => ({ + open, + side, + alignment, + instant: instantType, + entering: transitionStatus === 'entering', + exiting: transitionStatus === 'exiting', + }), + [open, side, alignment, instantType, transitionStatus], + ); + + // The content element needs to be a child of a wrapper floating element in order to avoid + // conflicts with CSS transitions and the positioning transform. + const { renderElement } = useComponentRenderer({ + render: render ?? 'div', + className, + ownerState, + extraProps: { + ...otherProps, + style: { + // must be relative to the inner popup element. + position: 'relative', + ...otherProps.style, + }, + }, + ref: forwardedRef, + customStyleHookMapping: tooltipPopupStyleHookMapping, + }); + + return renderElement(); +}); + +TooltipPopup.propTypes /* remove-proptypes */ = { + // ┌────────────────────────────── Warning ──────────────────────────────┠+ // │ These PropTypes are generated from the TypeScript type definitions. │ + // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ + // └─────────────────────────────────────────────────────────────────────┘ + /** + * @ignore + */ + children: PropTypes.node, + /** + * Class names applied to the element or a function that returns them based on the component's state. + */ + className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), + /** + * A function to customize rendering of the component. + */ + render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + /** + * @ignore + */ + style: PropTypes.object, +} as any; + +export { TooltipPopup }; diff --git a/packages/mui-base/src/Tooltip/Popup/TooltipPopup.types.ts b/packages/mui-base/src/Tooltip/Popup/TooltipPopup.types.ts new file mode 100644 index 000000000..48e484447 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Popup/TooltipPopup.types.ts @@ -0,0 +1,13 @@ +import type { Side } from '@floating-ui/react'; +import type { BaseUIComponentProps } from '../../utils/BaseUI.types'; + +export type TooltipPopupOwnerState = { + open: boolean; + side: Side; + alignment: 'start' | 'end' | 'center'; + instant: 'delay' | 'focus' | 'dismiss' | undefined; + entering: boolean; + exiting: boolean; +}; + +export interface TooltipPopupProps extends BaseUIComponentProps<'div', TooltipPopupOwnerState> {} diff --git a/packages/mui-base/src/Tooltip/Popup/styleHooks.ts b/packages/mui-base/src/Tooltip/Popup/styleHooks.ts new file mode 100644 index 000000000..622468113 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Popup/styleHooks.ts @@ -0,0 +1,16 @@ +import type { TooltipPopupOwnerState } from './TooltipPopup.types'; +import type { CustomStyleHookMapping } from '../../utils/getStyleHookProps'; + +export const tooltipPopupStyleHookMapping: CustomStyleHookMapping = { + entering(value) { + return value ? { 'data-entering': '' } : null; + }, + exiting(value) { + return value ? { 'data-exiting': '' } : null; + }, + open(value) { + return { + 'data-state': value ? 'open' : 'closed', + }; + }, +}; diff --git a/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.test.tsx b/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.test.tsx new file mode 100644 index 000000000..5e9672c18 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.test.tsx @@ -0,0 +1,17 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { createRenderer } from '@mui/internal-test-utils'; +import { describeConformance } from '../../../test/describeConformance'; + +describe('', () => { + const { render } = createRenderer(); + + describeConformance(, () => ({ + inheritComponent: 'div', + refInstanceof: window.HTMLDivElement, + render(node) { + return render({node}); + }, + skip: ['reactTestRenderer'], + })); +}); diff --git a/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.tsx b/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.tsx new file mode 100644 index 000000000..a52c9c1c6 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.tsx @@ -0,0 +1,239 @@ +'use client'; +import * as React from 'react'; +import PropTypes from 'prop-types'; +import { FloatingPortal } from '@floating-ui/react'; +import { useComponentRenderer } from '../../utils/useComponentRenderer'; +import { HTMLElementType } from '../../utils/types'; +import { useForkRef } from '../../utils/useForkRef'; +import type { + TooltipPositionerContextValue, + TooltipPositionerOwnerState, + TooltipPositionerProps, +} from './TooltipPositioner.types'; +import { useTooltipRootContext } from '../Root/TooltipRootContext'; +import { useTooltipPositioner } from './useTooltipPositioner'; +import { TooltipPositionerContext } from './TooltipPositionerContext'; + +/** + * The tooltip positioner element. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/) + * + * API: + * + * - [TooltipPositioner API](https://mui.com/base-ui/react-tooltip/components-api/#tooltip-positioner) + */ +const TooltipPositioner = React.forwardRef(function TooltipPositioner( + props: TooltipPositionerProps, + forwardedRef: React.ForwardedRef, +) { + const { + render, + className, + anchor, + container, + positionStrategy = 'absolute', + side = 'top', + alignment = 'center', + sideOffset = 0, + alignmentOffset = 0, + collisionBoundary, + collisionPadding = 5, + arrowPadding = 5, + hideWhenDetached = false, + keepMounted = false, + sticky = false, + ...otherProps + } = props; + + const { + open, + triggerElement, + setPopupElement, + getRootPositionerProps, + mounted, + setMounted, + rootContext, + followCursorAxis, + } = useTooltipRootContext(); + + const positioner = useTooltipPositioner({ + anchor: anchor || triggerElement, + rootContext, + positionStrategy, + open, + mounted, + setMounted, + getRootPositionerProps, + keepMounted, + side, + sideOffset, + alignment, + alignmentOffset, + collisionBoundary, + collisionPadding, + hideWhenDetached, + sticky, + followCursorAxis, + arrowPadding, + }); + + const mergedRef = useForkRef(setPopupElement, forwardedRef); + + const ownerState: TooltipPositionerOwnerState = React.useMemo( + () => ({ + open, + side: positioner.side, + alignment: positioner.alignment, + }), + [open, positioner.side, positioner.alignment], + ); + + const contextValue: TooltipPositionerContextValue = React.useMemo( + () => ({ + ...ownerState, + arrowRef: positioner.arrowRef, + getArrowProps: positioner.getArrowProps, + arrowUncentered: positioner.arrowUncentered, + }), + [ownerState, positioner.arrowRef, positioner.getArrowProps, positioner.arrowUncentered], + ); + + const { renderElement } = useComponentRenderer({ + propGetter: positioner.getPositionerProps, + render: render ?? 'div', + className, + ownerState, + ref: mergedRef, + extraProps: { + role: 'presentation', + ...otherProps, + }, + }); + + const shouldRender = keepMounted || positioner.mounted; + if (!shouldRender) { + return null; + } + + return ( + + {renderElement()} + + ); +}); + +TooltipPositioner.propTypes /* remove-proptypes */ = { + // ┌────────────────────────────── Warning ──────────────────────────────┠+ // │ These PropTypes are generated from the TypeScript type definitions. │ + // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ + // └─────────────────────────────────────────────────────────────────────┘ + /** + * The alignment of the tooltip element to the anchor element along its cross axis. + * @default 'center' + */ + alignment: PropTypes.oneOf(['center', 'end', 'start']), + /** + * The offset of the tooltip element along its alignment axis. + * @default 0 + */ + alignmentOffset: PropTypes.number, + /** + * The anchor element of the tooltip popup. + */ + anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([ + HTMLElementType, + PropTypes.object, + PropTypes.func, + ]), + /** + * Determines the padding between the arrow and the tooltip popup edges. Useful when the tooltip + * popup has rounded corners via `border-radius`. + * @default 5 + */ + arrowPadding: PropTypes.number, + /** + * @ignore + */ + children: PropTypes.node, + /** + * Class names applied to the element or a function that returns them based on the component's state. + */ + className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), + /** + * The boundary that the tooltip element should be constrained to. + * @default 'clippingAncestors' + */ + collisionBoundary: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([ + HTMLElementType, + PropTypes.arrayOf(HTMLElementType), + PropTypes.string, + PropTypes.shape({ + height: PropTypes.number, + width: PropTypes.number, + x: PropTypes.number, + y: PropTypes.number, + }), + ]), + /** + * The padding of the collision boundary to add whitespace between the tooltip popup and the + * boundary edges to prevent them from touching. + * @default 5 + */ + collisionPadding: PropTypes.oneOfType([ + PropTypes.number, + PropTypes.shape({ + bottom: PropTypes.number, + left: PropTypes.number, + right: PropTypes.number, + top: PropTypes.number, + }), + ]), + /** + * The container element to which the tooltip positioner is appended to. + */ + container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([ + HTMLElementType, + PropTypes.func, + ]), + /** + * If `true`, the tooltip will be hidden if it is detached from its anchor element due to + * differing clipping contexts. + * @default false + */ + hideWhenDetached: PropTypes.bool, + /** + * If `true`, the tooltip popup remains mounted in the DOM even when closed. + * @default false + */ + keepMounted: PropTypes.bool, + /** + * The CSS position strategy for positioning the tooltip popup element. + * @default 'absolute' + */ + positionStrategy: PropTypes.oneOf(['absolute', 'fixed']), + /** + * A function to customize rendering of the component. + */ + render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + /** + * The side of the anchor element that the tooltip element should be placed at. + * @default 'top' + */ + side: PropTypes.oneOf(['bottom', 'left', 'right', 'top']), + /** + * The gap between the anchor element and the tooltip element. + * @default 0 + */ + sideOffset: PropTypes.number, + /** + * If `true`, allow the tooltip to remain stuck in view while the anchor element is scrolled out + * of view. + * @default false + */ + sticky: PropTypes.bool, +} as any; + +export { TooltipPositioner }; diff --git a/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.types.ts b/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.types.ts new file mode 100644 index 000000000..3041c8140 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Positioner/TooltipPositioner.types.ts @@ -0,0 +1,27 @@ +import type { Side } from '@floating-ui/react'; +import type { BaseUIComponentProps, GenericHTMLProps } from '../../utils/BaseUI.types'; +import { TooltipPositionerParameters } from './useTooltipPositioner.types'; + +export interface TooltipPositionerContextValue { + open: boolean; + side: Side; + alignment: 'start' | 'end' | 'center'; + arrowRef: React.MutableRefObject; + arrowUncentered: boolean; + getArrowProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps; +} + +export type TooltipPositionerOwnerState = { + open: boolean; + side: Side; + alignment: 'start' | 'end' | 'center'; +}; + +export interface TooltipPositionerProps + extends TooltipPositionerParameters, + BaseUIComponentProps<'div', TooltipPositionerOwnerState> { + /** + * The container element to which the tooltip positioner is appended to. + */ + container?: HTMLElement | null | React.MutableRefObject; +} diff --git a/packages/mui-base/src/Tooltip/Positioner/TooltipPositionerContext.ts b/packages/mui-base/src/Tooltip/Positioner/TooltipPositionerContext.ts new file mode 100644 index 000000000..4439c3aa5 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Positioner/TooltipPositionerContext.ts @@ -0,0 +1,16 @@ +import * as React from 'react'; +import type { TooltipPositionerContextValue } from './TooltipPositioner.types'; + +export const TooltipPositionerContext = React.createContext( + null, +); + +export function useTooltipPositionerContext() { + const context = React.useContext(TooltipPositionerContext); + if (context === null) { + throw new Error( + ' and must be used within the component', + ); + } + return context; +} diff --git a/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.ts b/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.ts new file mode 100644 index 000000000..35b7d7b5d --- /dev/null +++ b/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.ts @@ -0,0 +1,255 @@ +'use client'; +import * as React from 'react'; +import { + autoUpdate, + flip, + limitShift, + offset, + shift, + arrow, + useFloating, + size, + hide, + type Placement, + type UseFloatingOptions, +} from '@floating-ui/react'; +import { getSide, getAlignment } from '@floating-ui/utils'; +import { isElement } from '@floating-ui/utils/dom'; +import { useEnhancedEffect } from '../../utils/useEnhancedEffect'; +import type { + UseTooltipPositionerParameters, + UseTooltipPositionerReturnValue, +} from './useTooltipPositioner.types'; +import { mergeReactProps } from '../../utils/mergeReactProps'; +import { useLatestRef } from '../../utils/useLatestRef'; + +/** + * Manages the popup state for a tooltip including positioning. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/#hooks) + * + * API: + * + * - [useTooltipPositioner API](https://mui.com/base-ui/react-tooltip/hooks-api/#use-tooltip-positioner) + */ +export function useTooltipPositioner( + params: UseTooltipPositionerParameters, +): UseTooltipPositionerReturnValue { + const { + open, + anchor, + positionStrategy = 'absolute', + side = 'top', + sideOffset = 0, + alignment = 'center', + alignmentOffset = 0, + collisionBoundary, + collisionPadding = 5, + hideWhenDetached = false, + sticky = false, + keepMounted = false, + arrowPadding = 5, + mounted = true, + getRootPositionerProps, + rootContext, + followCursorAxis = 'none', + } = params; + + // Using a ref assumes that the arrow element is always present in the DOM for the lifetime of the + // tooltip. If this assumption ends up being false, we can switch to state to manage the arrow's + // presence. + const arrowRef = React.useRef(null); + + const placement = alignment === 'center' ? side : (`${side}-${alignment}` as Placement); + + const middleware: UseFloatingOptions['middleware'] = [ + offset({ + mainAxis: sideOffset, + crossAxis: alignmentOffset, + alignmentAxis: alignmentOffset, + }), + ]; + + const flipMiddleware = flip({ + fallbackAxisSideDirection: 'start', + padding: collisionPadding, + boundary: collisionBoundary, + }); + const shiftMiddleware = shift({ + limiter: sticky + ? undefined + : limitShift(() => { + if (!arrowRef.current) { + return {}; + } + const { height } = arrowRef.current.getBoundingClientRect(); + return { + offset: height, + }; + }), + padding: collisionPadding, + boundary: collisionBoundary, + }); + + // https://floating-ui.com/docs/flip#combining-with-shift + if (alignment !== 'center') { + middleware.push(flipMiddleware, shiftMiddleware); + } else { + middleware.push(shiftMiddleware, flipMiddleware); + } + + middleware.push( + size({ + boundary: collisionBoundary, + padding: collisionPadding, + apply({ elements: { floating }, rects: { reference }, availableWidth, availableHeight }) { + Object.entries({ + '--available-width': `${availableWidth}px`, + '--available-height': `${availableHeight}px`, + '--anchor-width': `${reference.width}px`, + '--anchor-height': `${reference.height}px`, + }).forEach(([key, value]) => { + floating.style.setProperty(key, value); + }); + }, + }), + arrow( + () => ({ + // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set, + // we'll create a fake element. + element: arrowRef.current || document.createElement('div'), + padding: arrowPadding, + }), + [arrowPadding], + ), + hideWhenDetached && hide(), + { + name: 'transformOrigin', + fn({ elements, middlewareData, placement: renderedPlacement }) { + const currentRenderedSide = getSide(renderedPlacement); + const arrowEl = arrowRef.current; + const arrowX = middlewareData.arrow?.x ?? 0; + const arrowY = middlewareData.arrow?.y ?? 0; + const arrowWidth = arrowEl?.clientWidth ?? sideOffset; + const arrowHeight = arrowEl?.clientHeight ?? sideOffset; + const transformX = arrowX + arrowWidth / 2; + const transformY = arrowY + arrowHeight; + + const transformOrigin = { + top: `${transformX}px calc(100% + ${arrowHeight}px)`, + bottom: `${transformX}px ${-arrowHeight}px`, + left: `calc(100% + ${arrowHeight}px) ${transformY}px`, + right: `${-arrowHeight}px ${transformY}px`, + }[currentRenderedSide]; + + elements.floating.style.setProperty('--transform-origin', transformOrigin); + + return {}; + }, + }, + ); + + const { + refs, + elements, + floatingStyles, + middlewareData, + update, + placement: renderedPlacement, + } = useFloating({ + rootContext, + placement, + strategy: positionStrategy, + middleware, + whileElementsMounted: keepMounted ? undefined : autoUpdate, + }); + + // The `anchor` prop is non-reactive. + const anchorRef = useLatestRef(anchor); + + useEnhancedEffect(() => { + function isRef(param: any): param is React.MutableRefObject { + return {}.hasOwnProperty.call(param, 'current'); + } + const resolvedAnchor = + typeof anchorRef.current === 'function' ? anchorRef.current() : anchorRef.current; + if (resolvedAnchor && !isElement(resolvedAnchor)) { + refs.setPositionReference(isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor); + } + }, [refs, anchorRef]); + + React.useEffect(() => { + if (keepMounted && mounted && elements.domReference && elements.floating) { + return autoUpdate(elements.domReference, elements.floating, update); + } + return undefined; + }, [keepMounted, mounted, elements, update]); + + const renderedSide = getSide(renderedPlacement); + const renderedAlignment = getAlignment(renderedPlacement) || 'center'; + const isHidden = hideWhenDetached && middlewareData.hide?.referenceHidden; + + const getPositionerProps: UseTooltipPositionerReturnValue['getPositionerProps'] = + React.useCallback( + (externalProps = {}) => { + const hiddenStyles: React.CSSProperties = {}; + + if (isHidden) { + hiddenStyles.visibility = 'hidden'; + } + + if ((keepMounted && !open) || isHidden) { + hiddenStyles.pointerEvents = 'none'; + } + + if (followCursorAxis === 'both') { + hiddenStyles.pointerEvents = 'none'; + } + + return mergeReactProps( + externalProps, + getRootPositionerProps({ + style: { + ...floatingStyles, + ...hiddenStyles, + maxWidth: 'var(--available-width)', + maxHeight: 'var(--available-height)', + zIndex: 2147483647, // max z-index + }, + }), + ); + }, + [getRootPositionerProps, floatingStyles, isHidden, followCursorAxis, open, keepMounted], + ); + + const getArrowProps: UseTooltipPositionerReturnValue['getArrowProps'] = React.useCallback( + (externalProps = {}) => { + return mergeReactProps(externalProps, { + 'aria-hidden': true, + style: { + position: 'absolute', + top: middlewareData.arrow?.y, + left: middlewareData.arrow?.x, + }, + }); + }, + [middlewareData], + ); + + const arrowUncentered = middlewareData.arrow?.centerOffset !== 0; + + return React.useMemo( + () => ({ + mounted, + getPositionerProps, + getArrowProps, + arrowRef, + arrowUncentered, + side: renderedSide, + alignment: renderedAlignment, + }), + [mounted, getPositionerProps, getArrowProps, arrowUncentered, renderedSide, renderedAlignment], + ); +} diff --git a/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts b/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts new file mode 100644 index 000000000..f94f0e74c --- /dev/null +++ b/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts @@ -0,0 +1,137 @@ +import type * as React from 'react'; +import type { Boundary, Padding, VirtualElement, FloatingRootContext } from '@floating-ui/react'; +import type { GenericHTMLProps } from '../../utils/BaseUI.types'; + +export interface TooltipPositionerParameters { + /** + * The anchor element of the tooltip popup. + */ + anchor?: + | Element + | null + | VirtualElement + | React.MutableRefObject + | (() => Element | VirtualElement | null); + /** + * If `true`, the tooltip is open. + */ + open?: boolean; + /** + * The CSS position strategy for positioning the tooltip popup element. + * @default 'absolute' + */ + positionStrategy?: 'absolute' | 'fixed'; + /** + * The side of the anchor element that the tooltip element should be placed at. + * @default 'top' + */ + side?: 'top' | 'right' | 'bottom' | 'left'; + /** + * The gap between the anchor element and the tooltip element. + * @default 0 + */ + sideOffset?: number; + /** + * The alignment of the tooltip element to the anchor element along its cross axis. + * @default 'center' + */ + alignment?: 'start' | 'end' | 'center'; + /** + * The offset of the tooltip element along its alignment axis. + * @default 0 + */ + alignmentOffset?: number; + /** + * The boundary that the tooltip element should be constrained to. + * @default 'clippingAncestors' + */ + collisionBoundary?: Boundary; + /** + * The padding of the collision boundary to add whitespace between the tooltip popup and the + * boundary edges to prevent them from touching. + * @default 5 + */ + collisionPadding?: Padding; + /** + * If `true`, the tooltip will be hidden if it is detached from its anchor element due to + * differing clipping contexts. + * @default false + */ + hideWhenDetached?: boolean; + /** + * If `true`, allow the tooltip to remain stuck in view while the anchor element is scrolled out + * of view. + * @default false + */ + sticky?: boolean; + /** + * Determines the padding between the arrow and the tooltip popup edges. Useful when the tooltip + * popup has rounded corners via `border-radius`. + * @default 5 + */ + arrowPadding?: number; + /** + * If `true`, the tooltip popup remains mounted in the DOM even when closed. + * @default false + */ + keepMounted?: boolean; +} + +export interface UseTooltipPositionerParameters extends TooltipPositionerParameters { + /** + * Root props to spread on the tooltip positioner element. + */ + getRootPositionerProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps; + /** + * If `true`, the tooltip is in an instant phase where animations should be removed. + */ + instant?: boolean; + /** + * If `true`, the tooltip is mounted. + */ + mounted?: boolean; + /** + * Callback fired when the mounted state changes. + */ + setMounted?: React.Dispatch>; + /** + * The tooltip root context. + */ + rootContext?: FloatingRootContext; + /** + * Determines which axis the tooltip should follow the cursor on. + * @default 'none' + */ + followCursorAxis?: 'none' | 'x' | 'y' | 'both'; +} + +export interface UseTooltipPositionerReturnValue { + /** + * Props to spread on the positioner element. + */ + getPositionerProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps; + /** + * Props to spread on the popup arrow element. + */ + getArrowProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps; + /** + * The ref for the arrow element. + */ + arrowRef: React.MutableRefObject; + /** + * Determines if the arrow cannot be centered. + */ + arrowUncentered: boolean; + /** + * The rendered side of the tooltip popup element. + */ + side: 'top' | 'right' | 'bottom' | 'left'; + /** + * The rendered alignment of the tooltip popup element. + */ + alignment: 'start' | 'end' | 'center'; + /** + * Whether the tooltip is mounted, including CSS transitions or animations. + */ + mounted: boolean; +} diff --git a/packages/mui-base/src/Tooltip/Provider/TooltipProvider.test.tsx b/packages/mui-base/src/Tooltip/Provider/TooltipProvider.test.tsx new file mode 100644 index 000000000..9935c4fbe --- /dev/null +++ b/packages/mui-base/src/Tooltip/Provider/TooltipProvider.test.tsx @@ -0,0 +1,83 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { createRenderer, act } from '@mui/internal-test-utils'; +import { expect } from 'chai'; +import { fireEvent, screen } from '@testing-library/react'; + +const waitForPosition = async () => act(async () => {}); + +describe('', () => { + const { render, clock } = createRenderer(); + + describe('prop: delay', () => { + clock.withFakeTimers(); + + it('waits for the delay before showing the tooltip', async () => { + render( + + + + + Content + + + , + ); + + const trigger = document.querySelector('button')!; + + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + expect(screen.queryByText('Content')).to.equal(null); + + clock.tick(1_000); + + expect(screen.queryByText('Content')).to.equal(null); + + clock.tick(9_000); + + await waitForPosition(); + + expect(screen.queryByText('Content')).not.to.equal(null); + }); + }); + + describe('prop: closeDelay', () => { + clock.withFakeTimers(); + + it('waits for the closeDelay before hiding the tooltip', async () => { + render( + + + + + Content + + + , + ); + + const trigger = document.querySelector('button')!; + + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + clock.tick(300); + + await waitForPosition(); + + expect(screen.queryByText('Content')).not.to.equal(null); + + fireEvent.mouseLeave(trigger); + + clock.tick(300); + + expect(screen.queryByText('Content')).not.to.equal(null); + + clock.tick(300); + + expect(screen.queryByText('Content')).to.equal(null); + }); + }); +}); diff --git a/packages/mui-base/src/Tooltip/Provider/TooltipProvider.tsx b/packages/mui-base/src/Tooltip/Provider/TooltipProvider.tsx new file mode 100644 index 000000000..ed4156002 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Provider/TooltipProvider.tsx @@ -0,0 +1,55 @@ +'use client'; +import * as React from 'react'; +import PropTypes from 'prop-types'; +import { FloatingDelayGroup } from '@floating-ui/react'; +import type { TooltipProviderProps } from './TooltipProvider.types'; + +/** + * Provides a shared delay for tooltips so that once a tooltip is shown, the rest of the tooltips in + * the group will not wait for the delay before showing. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/) + * + * API: + * + * - [TooltipProvider API](https://mui.com/base-ui/react-tooltip/components-api/#tooltip-provider) + */ +function TooltipProvider(props: TooltipProviderProps) { + const { delay = 0, closeDelay = 0, timeout = 400 } = props; + return ( + + {props.children} + + ); +} + +TooltipProvider.propTypes /* remove-proptypes */ = { + // ┌────────────────────────────── Warning ──────────────────────────────┠+ // │ These PropTypes are generated from the TypeScript type definitions. │ + // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ + // └─────────────────────────────────────────────────────────────────────┘ + /** + * @ignore + */ + children: PropTypes.node, + /** + * he delay in milliseconds until tooltips within the group are closed. + * @default 0 + */ + closeDelay: PropTypes.number, + /** + * The delay in milliseconds until tooltips within the group are open. + * @default 0 + */ + delay: PropTypes.number, + /** + * The timeout in milliseconds until the grouping logic is no longer active after the last tooltip + * in the group has closed. + * @default 400 + */ + timeout: PropTypes.number, +} as any; + +export { TooltipProvider }; diff --git a/packages/mui-base/src/Tooltip/Provider/TooltipProvider.types.ts b/packages/mui-base/src/Tooltip/Provider/TooltipProvider.types.ts new file mode 100644 index 000000000..ef2e68667 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Provider/TooltipProvider.types.ts @@ -0,0 +1,19 @@ +export interface TooltipProviderProps { + children?: React.ReactNode; + /** + * The delay in milliseconds until tooltips within the group are open. + * @default 0 + */ + delay?: number; + /** + * he delay in milliseconds until tooltips within the group are closed. + * @default 0 + */ + closeDelay?: number; + /** + * The timeout in milliseconds until the grouping logic is no longer active after the last tooltip + * in the group has closed. + * @default 400 + */ + timeout?: number; +} diff --git a/packages/mui-base/src/Tooltip/Root/TooltipRoot.test.tsx b/packages/mui-base/src/Tooltip/Root/TooltipRoot.test.tsx new file mode 100644 index 000000000..787288b1e --- /dev/null +++ b/packages/mui-base/src/Tooltip/Root/TooltipRoot.test.tsx @@ -0,0 +1,389 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { act, createRenderer, fireEvent, screen } from '@mui/internal-test-utils'; +import { expect } from 'chai'; +import { spy } from 'sinon'; + +const waitForPosition = async () => act(async () => {}); + +function Root(props: Tooltip.RootProps) { + return ; +} + +describe('', () => { + const { render, clock } = createRenderer(); + + describe('uncontrolled open', () => { + clock.withFakeTimers(); + + it('should open when the trigger is hovered', async () => { + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + fireEvent.pointerDown(trigger, { pointerType: 'mouse' }); + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + clock.tick(300); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + + it('should close when the trigger is unhovered', async () => { + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + fireEvent.pointerDown(trigger, { pointerType: 'mouse' }); + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + clock.tick(300); + + await waitForPosition(); + + fireEvent.mouseLeave(trigger); + + expect(screen.queryByText('Content')).to.equal(null); + }); + + it('should open when the trigger is focused', async () => { + if (!/jsdom/.test(window.navigator.userAgent)) { + // Ignore due to `:focus-visible` being required in the browser. + return; + } + + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + act(() => trigger.focus()); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + + it('should close when the trigger is blurred', async () => { + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + act(() => trigger.focus()); + + clock.tick(300); + + await waitForPosition(); + + act(() => trigger.blur()); + + clock.tick(300); + + expect(screen.queryByText('Content')).to.equal(null); + }); + }); + + describe('controlled open', () => { + clock.withFakeTimers(); + + it('should open when controlled open is true', async () => { + render( + + + Content + + , + ); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + + it('should close when controlled open is false', async () => { + render( + + + Content + + , + ); + + expect(screen.queryByText('Content')).to.equal(null); + }); + + it('should call onOpenChange when the open state changes', async () => { + const handleChange = spy(); + + function App() { + const [open, setOpen] = React.useState(false); + + return ( + { + handleChange(open); + setOpen(nextOpen); + }} + > + + + Content + + + ); + } + + render(); + + expect(screen.queryByText('Content')).to.equal(null); + + const trigger = screen.getByRole('button'); + + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + clock.tick(300); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + + fireEvent.mouseLeave(trigger); + + expect(screen.queryByText('Content')).to.equal(null); + expect(handleChange.callCount).to.equal(2); + expect(handleChange.firstCall.args[0]).to.equal(false); + expect(handleChange.secondCall.args[0]).to.equal(true); + }); + + it('should not call onChange when the open state does not change', async () => { + const handleChange = spy(); + + function App() { + const [open, setOpen] = React.useState(false); + + return ( + { + handleChange(open); + setOpen(nextOpen); + }} + > + + + Content + + + ); + } + + render(); + + expect(screen.queryByText('Content')).to.equal(null); + + const trigger = screen.getByRole('button'); + + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + clock.tick(300); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + expect(handleChange.callCount).to.equal(1); + expect(handleChange.firstCall.args[0]).to.equal(false); + }); + }); + + describe('prop: defaultOpen', () => { + it('should open when the component is rendered', async () => { + render( + + + + Content + + , + ); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + + it('should not open when the component is rendered and open is controlled', async () => { + render( + + + + Content + + , + ); + + await waitForPosition(); + + expect(screen.queryByText('Content')).to.equal(null); + }); + + it('should not close when the component is rendered and open is controlled', async () => { + render( + + + + Content + + , + ); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + + it('should remain uncontrolled', async () => { + render( + + + + Content + + , + ); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + + const trigger = screen.getByRole('button'); + + fireEvent.mouseLeave(trigger); + + await waitForPosition(); + + expect(screen.queryByText('Content')).to.equal(null); + }); + }); + + describe('prop: delay', () => { + clock.withFakeTimers(); + + it('should open after delay with rest type by default', async () => { + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + await waitForPosition(); + + expect(screen.queryByText('Content')).to.equal(null); + + clock.tick(100); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + + it('should open after delay with hover type', async () => { + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + fireEvent.mouseEnter(trigger); + clock.tick(200); + + await waitForPosition(); + + expect(screen.queryByText('Content')).to.equal(null); + + clock.tick(100); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + }); + }); + + describe('prop: closeDelay', () => { + clock.withFakeTimers(); + + it('should close after delay', async () => { + render( + + + + Content + + , + ); + + const trigger = screen.getByRole('button'); + + fireEvent.mouseEnter(trigger); + fireEvent.mouseMove(trigger); + + clock.tick(300); + + await waitForPosition(); + + expect(screen.getByText('Content')).not.to.equal(null); + + fireEvent.mouseLeave(trigger); + + expect(screen.getByText('Content')).not.to.equal(null); + + clock.tick(100); + + expect(screen.queryByText('Content')).to.equal(null); + }); + }); +}); diff --git a/packages/mui-base/src/Tooltip/Root/TooltipRoot.tsx b/packages/mui-base/src/Tooltip/Root/TooltipRoot.tsx new file mode 100644 index 000000000..785c87f20 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Root/TooltipRoot.tsx @@ -0,0 +1,161 @@ +'use client'; +import * as React from 'react'; +import PropTypes from 'prop-types'; +import type { TooltipRootProps } from './TooltipRoot.types'; +import { TooltipRootContext } from './TooltipRootContext'; +import { useTooltipRoot } from './useTooltipRoot'; + +/** + * The foundation for building custom-styled tooltips. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/) + * + * API: + * + * - [TooltipRoot API](https://mui.com/base-ui/react-tooltip/components-api/#tooltip-root) + */ +function TooltipRoot(props: TooltipRootProps) { + const { + delayType = 'rest', + delay, + closeDelay, + hoverable = true, + animated = true, + followCursorAxis = 'none', + } = props; + + const delayWithDefault = delay ?? 300; + const closeDelayWithDefault = closeDelay ?? 0; + + const [triggerElement, setTriggerElement] = React.useState(null); + const [popupElement, setPopupElement] = React.useState(null); + + const { + open, + setOpen, + mounted, + setMounted, + instantType, + getTriggerProps, + getRootPositionerProps, + rootContext, + transitionStatus, + } = useTooltipRoot({ + popupElement, + triggerElement, + hoverable, + animated, + followCursorAxis, + delay, + delayType, + closeDelay, + open: props.open, + onOpenChange: props.onOpenChange, + defaultOpen: props.defaultOpen, + }); + + const contextValue = React.useMemo( + () => ({ + delay: delayWithDefault, + delayType, + closeDelay: closeDelayWithDefault, + open, + setOpen, + triggerElement, + setTriggerElement, + popupElement, + setPopupElement, + mounted, + setMounted, + instantType, + getTriggerProps, + getRootPositionerProps, + rootContext, + followCursorAxis, + transitionStatus, + }), + [ + delayWithDefault, + delayType, + closeDelayWithDefault, + open, + setOpen, + triggerElement, + popupElement, + mounted, + setMounted, + instantType, + getTriggerProps, + getRootPositionerProps, + rootContext, + followCursorAxis, + transitionStatus, + ], + ); + + return ( + {props.children} + ); +} + +TooltipRoot.propTypes /* remove-proptypes */ = { + // ┌────────────────────────────── Warning ──────────────────────────────┠+ // │ These PropTypes are generated from the TypeScript type definitions. │ + // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ + // └─────────────────────────────────────────────────────────────────────┘ + /** + * Whether the tooltip can animate, adding animation-related attributes and allowing for exit + * animations to play. Useful to disable in tests to remove async behavior. + * @default true + */ + animated: PropTypes.bool, + /** + * @ignore + */ + children: PropTypes.node, + /** + * The delay in milliseconds until the tooltip popup is closed. + * @default 0 + */ + closeDelay: PropTypes.number, + /** + * Specifies whether the tooltip is open initially when uncontrolled. + */ + defaultOpen: PropTypes.bool, + /** + * The delay in milliseconds until the tooltip popup is opened. + * @default 300 + */ + delay: PropTypes.number, + /** + * The delay type to use. `rest` means the `delay` represents how long the user's cursor must + * rest on the trigger before the tooltip popup is opened. `hover` means the `delay` represents + * how long to wait as soon as the user's cursor has entered the trigger. + * @default 'rest' + */ + delayType: PropTypes.oneOf(['hover', 'rest']), + /** + * Determines which axis the tooltip should follow the cursor on. + * @default 'none' + */ + followCursorAxis: PropTypes.oneOf(['both', 'none', 'x', 'y']), + /** + * Whether the user can move their cursor from the trigger to the tooltip popup without it + * closing. + * @default true + */ + hoverable: PropTypes.bool, + /** + * Callback fired when the tooltip popup is requested to be opened or closed. Use when + * controlled. + */ + onOpenChange: PropTypes.func, + /** + * If `true`, the tooltip popup is open. Use when controlled. + */ + open: PropTypes.bool, +} as any; + +export { TooltipRoot }; diff --git a/packages/mui-base/src/Tooltip/Root/TooltipRoot.types.ts b/packages/mui-base/src/Tooltip/Root/TooltipRoot.types.ts new file mode 100644 index 000000000..9cfc5e38c --- /dev/null +++ b/packages/mui-base/src/Tooltip/Root/TooltipRoot.types.ts @@ -0,0 +1,77 @@ +import type { + FloatingRootContext, + OpenChangeReason, + UseInteractionsReturn, +} from '@floating-ui/react'; +import type { TransitionStatus } from '../../utils/useTransitionStatus'; + +export interface TooltipRootContextValue { + open: boolean; + setOpen: (open: boolean, event?: Event, reason?: OpenChangeReason) => void; + triggerElement: Element | null; + setTriggerElement: (el: Element | null) => void; + popupElement: HTMLElement | null; + setPopupElement: (el: HTMLElement | null) => void; + delay: number; + closeDelay: number; + delayType: 'rest' | 'hover'; + mounted: boolean; + setMounted: React.Dispatch>; + getTriggerProps: UseInteractionsReturn['getReferenceProps']; + getRootPositionerProps: UseInteractionsReturn['getFloatingProps']; + instantType: 'delay' | 'dismiss' | 'focus' | undefined; + rootContext: FloatingRootContext; + followCursorAxis: 'none' | 'x' | 'y' | 'both'; + transitionStatus: TransitionStatus; +} + +export interface TooltipRootProps { + children: React.ReactNode; + /** + * If `true`, the tooltip popup is open. Use when controlled. + */ + open?: boolean; + /** + * Callback fired when the tooltip popup is requested to be opened or closed. Use when + * controlled. + */ + onOpenChange?: (isOpen: boolean, event?: Event, reason?: OpenChangeReason) => void; + /** + * Specifies whether the tooltip is open initially when uncontrolled. + */ + defaultOpen?: boolean; + /** + * The delay in milliseconds until the tooltip popup is opened. + * @default 300 + */ + delay?: number; + /** + * The delay in milliseconds until the tooltip popup is closed. + * @default 0 + */ + closeDelay?: number; + /** + * The delay type to use. `rest` means the `delay` represents how long the user's cursor must + * rest on the trigger before the tooltip popup is opened. `hover` means the `delay` represents + * how long to wait as soon as the user's cursor has entered the trigger. + * @default 'rest' + */ + delayType?: 'rest' | 'hover'; + /** + * Whether the user can move their cursor from the trigger to the tooltip popup without it + * closing. + * @default true + */ + hoverable?: boolean; + /** + * Whether the tooltip can animate, adding animation-related attributes and allowing for exit + * animations to play. Useful to disable in tests to remove async behavior. + * @default true + */ + animated?: boolean; + /** + * Determines which axis the tooltip should follow the cursor on. + * @default 'none' + */ + followCursorAxis?: 'none' | 'x' | 'y' | 'both'; +} diff --git a/packages/mui-base/src/Tooltip/Root/TooltipRootContext.ts b/packages/mui-base/src/Tooltip/Root/TooltipRootContext.ts new file mode 100644 index 000000000..7cdab58e5 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Root/TooltipRootContext.ts @@ -0,0 +1,12 @@ +import * as React from 'react'; +import type { TooltipRootContextValue } from './TooltipRoot.types'; + +export const TooltipRootContext = React.createContext(null); + +export function useTooltipRootContext() { + const context = React.useContext(TooltipRootContext); + if (context === null) { + throw new Error('Tooltip components must be used within the component'); + } + return context; +} diff --git a/packages/mui-base/src/Tooltip/Root/useTooltipRoot.ts b/packages/mui-base/src/Tooltip/Root/useTooltipRoot.ts new file mode 100644 index 000000000..041696897 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Root/useTooltipRoot.ts @@ -0,0 +1,174 @@ +'use client'; +import * as React from 'react'; +import useEventCallback from '@mui/utils/useEventCallback'; +import { + safePolygon, + useClientPoint, + useDelayGroup, + useDismiss, + useFloatingRootContext, + useFocus, + useHover, + useInteractions, + type OpenChangeReason, +} from '@floating-ui/react'; +import type { UseTooltipRootParameters, UseTooltipRootReturnValue } from './useTooltipRoot.types'; +import { useControlled } from '../../utils/useControlled'; +import { useTransitionStatus } from '../../utils/useTransitionStatus'; +import { useAnimationsFinished } from '../../utils/useAnimationsFinished'; + +/** + * Manages the root state for a tooltip. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/#hooks) + * + * API: + * + * - [useTooltipRoot API](https://mui.com/base-ui/react-tooltip/hooks-api/#use-tooltip-root) + */ +export function useTooltipRoot(params: UseTooltipRootParameters): UseTooltipRootReturnValue { + const { + open: externalOpen, + onOpenChange: onOpenChangeProp = () => {}, + defaultOpen = false, + keepMounted = false, + triggerElement = null, + popupElement = null, + hoverable = true, + animated = true, + followCursorAxis = 'none', + delayType = 'rest', + delay, + closeDelay, + } = params; + + const delayWithDefault = delay ?? 300; + const closeDelayWithDefault = closeDelay ?? 0; + + const [instantTypeState, setInstantTypeState] = React.useState<'dismiss' | 'focus'>(); + + const [open, setOpenUnwrapped] = useControlled({ + controlled: externalOpen, + default: defaultOpen, + name: 'Tooltip', + state: 'open', + }); + + const onOpenChange = useEventCallback(onOpenChangeProp); + + const setOpen = React.useCallback( + (nextOpen: boolean, event?: Event, reason?: OpenChangeReason) => { + onOpenChange(nextOpen, event, reason); + setOpenUnwrapped(nextOpen); + }, + [onOpenChange, setOpenUnwrapped], + ); + + const { mounted, setMounted, transitionStatus } = useTransitionStatus(open, animated); + + const runOnceAnimationsFinish = useAnimationsFinished(() => popupElement?.firstElementChild); + + const context = useFloatingRootContext({ + elements: { reference: triggerElement, floating: popupElement }, + open, + onOpenChange(openValue, eventValue, reasonValue) { + setOpen(openValue, eventValue, reasonValue); + + const isFocusOpen = openValue && reasonValue === 'focus'; + const isDismissClose = + !openValue && (reasonValue === 'reference-press' || reasonValue === 'escape-key'); + + if (isFocusOpen || isDismissClose) { + setInstantTypeState(isFocusOpen ? 'focus' : 'dismiss'); + } else if (reasonValue === 'hover') { + setInstantTypeState(undefined); + } + + if (!keepMounted && !openValue) { + if (animated) { + runOnceAnimationsFinish(() => setMounted(false)); + } else { + setMounted(false); + } + } + }, + }); + + const { delay: groupDelay, isInstantPhase, currentId } = useDelayGroup(context); + const openGroupDelay = typeof groupDelay === 'object' ? groupDelay.open : groupDelay; + const closeGroupDelay = typeof groupDelay === 'object' ? groupDelay.close : groupDelay; + + let instantType = isInstantPhase ? ('delay' as const) : instantTypeState; + if (!open && context.floatingId === currentId) { + instantType = instantTypeState; + } + + const computedRestMs = delayType === 'rest' ? openGroupDelay || delayWithDefault : undefined; + let computedOpenDelay: number | undefined = delayType === 'hover' ? delayWithDefault : undefined; + let computedCloseDelay: number | undefined = closeDelayWithDefault; + + if (delayType === 'hover') { + if (delay == null) { + computedOpenDelay = + groupDelay === 0 + ? // A provider is not present. + delayWithDefault + : // A provider is present. + openGroupDelay; + } else { + computedOpenDelay = delay; + } + } + + // A provider is present and the close delay is not set. + if (closeDelay == null && groupDelay !== 0) { + computedCloseDelay = closeGroupDelay; + } + + const hover = useHover(context, { + mouseOnly: true, + move: false, + handleClose: hoverable && followCursorAxis !== 'both' ? safePolygon() : null, + restMs: computedRestMs, + delay: { + open: computedOpenDelay, + close: computedCloseDelay, + }, + }); + const focus = useFocus(context); + const dismiss = useDismiss(context, { referencePress: true }); + const clientPoint = useClientPoint(context, { + enabled: followCursorAxis !== 'none', + axis: followCursorAxis === 'none' ? undefined : followCursorAxis, + }); + + const { getReferenceProps: getTriggerProps, getFloatingProps: getRootPositionerProps } = + useInteractions([hover, focus, dismiss, clientPoint]); + + return React.useMemo( + () => ({ + open, + setOpen, + mounted, + setMounted, + getTriggerProps, + getRootPositionerProps, + rootContext: context, + instantType, + transitionStatus, + }), + [ + mounted, + open, + setMounted, + setOpen, + getTriggerProps, + getRootPositionerProps, + context, + instantType, + transitionStatus, + ], + ); +} diff --git a/packages/mui-base/src/Tooltip/Root/useTooltipRoot.types.ts b/packages/mui-base/src/Tooltip/Root/useTooltipRoot.types.ts new file mode 100644 index 000000000..d48c1d7f4 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Root/useTooltipRoot.types.ts @@ -0,0 +1,108 @@ +import type { + FloatingRootContext, + OpenChangeReason, + UseInteractionsReturn, +} from '@floating-ui/react'; +import type { TransitionStatus } from '../../utils/useTransitionStatus'; + +export interface UseTooltipRootParameters { + /** + * If `true`, the tooltip popup will be open by default. Use when uncontrolled. + */ + defaultOpen?: boolean; + /** + * If `true`, the tooltip popup will be open. Use when controlled. + */ + open?: boolean; + /** + * Callback fired when the tooltip popup is requested to be opened or closed. + */ + onOpenChange?: (isOpen: boolean, event?: Event, reason?: OpenChangeReason) => void; + /** + * The trigger element. Store in state. + * @default null + */ + triggerElement?: Element | null; + /** + * The popup element. Store in state. + * @default null + */ + popupElement?: HTMLElement | null; + /** + * If `true`, the user can move from the trigger toward the tooltip without it closing. + * @default true + */ + hoverable?: boolean; + /** + * Whether the tooltip can animate, adding animation-related attributes and allowing for exit + * animations to play. Useful to disable in tests to remove async behavior. + * @default true + */ + animated?: boolean; + /** + * Determines which axis the tooltip should follow the cursor on. + * @default 'none' + */ + followCursorAxis?: 'none' | 'x' | 'y' | 'both'; + /** + * The delay in milliseconds until the tooltip popup is opened. + * @default 300 + */ + delay?: number; + /** + * The delay in milliseconds until the tooltip popup is closed. + * @default 0 + */ + closeDelay?: number; + /** + * The delay type to use. `rest` means the `delay` represents how long the user's cursor must + * rest on the trigger before the tooltip popup is opened. `hover` means the `delay` represents + * how long to wait as soon as the user's cursor has entered the trigger. + * @default 'rest' + */ + delayType?: 'rest' | 'hover'; + /** + * If `true`, the tooltip popup remains mounted in the DOM even when closed. + * @default false + */ + keepMounted?: boolean; +} + +export interface UseTooltipRootReturnValue { + /** + * If `true`, the tooltip is open. + */ + open: boolean; + /** + * Sets the open state of the tooltip. + */ + setOpen: (value: boolean, event?: Event, reason?: OpenChangeReason) => void; + /** + * If `true`, the tooltip is mounted. + */ + mounted: boolean; + /** + * Sets the mounted state of the tooltip. + */ + setMounted: React.Dispatch>; + /** + * Prop getter to spread props on the trigger element. + */ + getTriggerProps: UseInteractionsReturn['getReferenceProps']; + /** + * Prop getter to spread root props on the positioner element. + */ + getRootPositionerProps: UseInteractionsReturn['getFloatingProps']; + /** + * The root context object. + */ + rootContext: FloatingRootContext; + /** + * The type of instant phase the tooltip is in to remove animations. + */ + instantType: 'delay' | 'dismiss' | 'focus' | undefined; + /** + * The transition status of the tooltip. + */ + transitionStatus: TransitionStatus; +} diff --git a/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.test.tsx b/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.test.tsx new file mode 100644 index 000000000..1f2661317 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.test.tsx @@ -0,0 +1,17 @@ +import * as React from 'react'; +import * as Tooltip from '@base_ui/react/Tooltip'; +import { createRenderer } from '@mui/internal-test-utils'; +import { describeConformance } from '../../../test/describeConformance'; + +describe('', () => { + const { render } = createRenderer(); + + describeConformance(, () => ({ + inheritComponent: 'button', + refInstanceof: window.HTMLButtonElement, + render(node) { + return render({node}); + }, + skip: ['reactTestRenderer'], + })); +}); diff --git a/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.tsx b/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.tsx new file mode 100644 index 000000000..e551e3f9e --- /dev/null +++ b/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.tsx @@ -0,0 +1,60 @@ +'use client'; +import * as React from 'react'; +import PropTypes from 'prop-types'; +import { useTooltipRootContext } from '../Root/TooltipRootContext'; +import type { TooltipTriggerProps } from './TooltipTrigger.types'; +import { tooltipTriggerStyleHookMapping } from './styleHooks'; +import { useComponentRenderer } from '../../utils/useComponentRenderer'; +import { useForkRef } from '../../utils/useForkRef'; + +/** + * Renders a trigger element that will open the tooltip. + * + * Demos: + * + * - [Tooltip](https://mui.com/base-ui/react-tooltip/) + * + * API: + * + * - [TooltipTrigger API](https://mui.com/base-ui/react-tooltip/components-api/#tooltip-trigger) + */ +const TooltipTrigger = React.forwardRef(function TooltipTrigger( + props: TooltipTriggerProps, + forwardedRef: React.ForwardedRef, +) { + const { className, render, ...otherProps } = props; + + const { open, setTriggerElement, getTriggerProps } = useTooltipRootContext(); + + const ownerState = React.useMemo(() => ({ open }), [open]); + const mergedRef = useForkRef(setTriggerElement, forwardedRef); + + const { renderElement } = useComponentRenderer({ + propGetter: getTriggerProps, + render: render ?? 'button', + className, + ownerState, + extraProps: otherProps, + ref: mergedRef, + customStyleHookMapping: tooltipTriggerStyleHookMapping, + }); + + return renderElement(); +}); + +TooltipTrigger.propTypes /* remove-proptypes */ = { + // ┌────────────────────────────── Warning ──────────────────────────────┠+ // │ These PropTypes are generated from the TypeScript type definitions. │ + // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ + // └─────────────────────────────────────────────────────────────────────┘ + /** + * Class names applied to the element or a function that returns them based on the component's state. + */ + className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), + /** + * A function to customize rendering of the component. + */ + render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), +} as any; + +export { TooltipTrigger }; diff --git a/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.types.ts b/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.types.ts new file mode 100644 index 000000000..5fafae532 --- /dev/null +++ b/packages/mui-base/src/Tooltip/Trigger/TooltipTrigger.types.ts @@ -0,0 +1,7 @@ +import type { BaseUIComponentProps } from '../../utils/BaseUI.types'; + +export type TooltipTriggerOwnerState = { + open: boolean; +}; + +export interface TooltipTriggerProps extends BaseUIComponentProps {} diff --git a/packages/mui-base/src/Tooltip/Trigger/styleHooks.ts b/packages/mui-base/src/Tooltip/Trigger/styleHooks.ts new file mode 100644 index 000000000..de1c0505a --- /dev/null +++ b/packages/mui-base/src/Tooltip/Trigger/styleHooks.ts @@ -0,0 +1,10 @@ +import type { TooltipTriggerOwnerState } from './TooltipTrigger.types'; +import type { CustomStyleHookMapping } from '../../utils/getStyleHookProps'; + +export const tooltipTriggerStyleHookMapping: CustomStyleHookMapping = { + open(value) { + return { + 'data-state': value ? 'open' : 'closed', + }; + }, +}; diff --git a/packages/mui-base/src/Tooltip/index.barrel.ts b/packages/mui-base/src/Tooltip/index.barrel.ts new file mode 100644 index 000000000..683570524 --- /dev/null +++ b/packages/mui-base/src/Tooltip/index.barrel.ts @@ -0,0 +1,17 @@ +export { TooltipRoot } from './Root/TooltipRoot'; +export { TooltipTrigger } from './Trigger/TooltipTrigger'; +export { TooltipPositioner } from './Positioner/TooltipPositioner'; +export { TooltipPopup } from './Popup/TooltipPopup'; +export { TooltipArrow } from './Arrow/TooltipArrow'; +export { TooltipProvider } from './Provider/TooltipProvider'; +export { useTooltipPositioner } from './Positioner/useTooltipPositioner'; +export { useTooltipRoot } from './Root/useTooltipRoot'; + +export type { TooltipRootProps } from './Root/TooltipRoot.types'; +export type * from './Trigger/TooltipTrigger.types'; +export type * from './Positioner/TooltipPositioner.types'; +export type { TooltipPopupOwnerState, TooltipPopupProps } from './Popup/TooltipPopup.types'; +export type * from './Arrow/TooltipArrow.types'; +export type * from './Provider/TooltipProvider.types'; +export type * from './Positioner/useTooltipPositioner.types'; +export type * from './Root/useTooltipRoot.types'; diff --git a/packages/mui-base/src/Tooltip/index.ts b/packages/mui-base/src/Tooltip/index.ts new file mode 100644 index 000000000..d616a49b6 --- /dev/null +++ b/packages/mui-base/src/Tooltip/index.ts @@ -0,0 +1,35 @@ +export { TooltipRoot as Root } from './Root/TooltipRoot'; +export { TooltipTrigger as Trigger } from './Trigger/TooltipTrigger'; +export { TooltipPositioner as Positioner } from './Positioner/TooltipPositioner'; +export { TooltipPopup as Popup } from './Popup/TooltipPopup'; +export { TooltipArrow as Arrow } from './Arrow/TooltipArrow'; +export { TooltipProvider as Provider } from './Provider/TooltipProvider'; +export { useTooltipRoot as useRoot } from './Root/useTooltipRoot'; +export { useTooltipPositioner as usePositioner } from './Positioner/useTooltipPositioner'; + +export type { TooltipRootProps as RootProps } from './Root/TooltipRoot.types'; +export type { + TooltipTriggerProps as TriggerProps, + TooltipTriggerOwnerState as TriggerOwnerState, +} from './Trigger/TooltipTrigger.types'; +export type { + TooltipPositionerProps as PositionerProps, + TooltipPositionerOwnerState as PositionerOwnerState, +} from './Positioner/TooltipPositioner.types'; +export type { + TooltipPopupProps as PopupProps, + TooltipPopupOwnerState as PopupOwnerState, +} from './Popup/TooltipPopup.types'; +export type { + TooltipArrowProps as ArrowProps, + TooltipArrowOwnerState as ArrowOwnerState, +} from './Arrow/TooltipArrow.types'; +export type { TooltipProviderProps as ProviderProps } from './Provider/TooltipProvider.types'; +export type { + UseTooltipRootParameters as UseRootParameters, + UseTooltipRootReturnValue as UseRootReturnValue, +} from './Root/useTooltipRoot.types'; +export type { + UseTooltipPositionerParameters as UsePositionerParameters, + UseTooltipPositionerReturnValue as UsePositionerReturnValue, +} from './Positioner/useTooltipPositioner.types'; diff --git a/packages/mui-base/src/index.ts b/packages/mui-base/src/index.ts index b4c783b6a..01576785c 100644 --- a/packages/mui-base/src/index.ts +++ b/packages/mui-base/src/index.ts @@ -2,3 +2,4 @@ export * from './Checkbox/index.barrel'; export * from './NumberField/index.barrel'; export * from './Switch/index.barrel'; export * from './Tabs/index.barrel'; +export * from './Tooltip/index.barrel'; diff --git a/packages/mui-base/src/utils/BaseUI.types.ts b/packages/mui-base/src/utils/BaseUI.types.ts index 9c9a1f225..5181aa5ec 100644 --- a/packages/mui-base/src/utils/BaseUI.types.ts +++ b/packages/mui-base/src/utils/BaseUI.types.ts @@ -1,5 +1,7 @@ import * as React from 'react'; +export type GenericHTMLProps = React.HTMLAttributes & { ref?: React.Ref | undefined }; + export type BaseUIEvent> = E & { preventBaseUIHandler: () => void; }; diff --git a/packages/mui-base/src/utils/getStyleHookProps.ts b/packages/mui-base/src/utils/getStyleHookProps.ts index 2ee23013a..1dfeef788 100644 --- a/packages/mui-base/src/utils/getStyleHookProps.ts +++ b/packages/mui-base/src/utils/getStyleHookProps.ts @@ -18,7 +18,7 @@ export function getStyleHookProps>( return; } - if (value !== false) { + if (value !== false && value !== undefined) { props[`data-${key.toLowerCase()}`] = value.toString(); } }); diff --git a/packages/mui-base/src/utils/types.ts b/packages/mui-base/src/utils/types.ts index 4d2a96ce8..2a9eb8d8d 100644 --- a/packages/mui-base/src/utils/types.ts +++ b/packages/mui-base/src/utils/types.ts @@ -1,5 +1,7 @@ import * as React from 'react'; +export { HTMLElementType } from '@mui/utils'; + export type EventHandlers = Record>; export type WithOptionalOwnerState = Omit< diff --git a/packages/mui-base/test/conformanceTests/propForwarding.tsx b/packages/mui-base/test/conformanceTests/propForwarding.tsx index 209e03100..ec8e70110 100644 --- a/packages/mui-base/test/conformanceTests/propForwarding.tsx +++ b/packages/mui-base/test/conformanceTests/propForwarding.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { expect } from 'chai'; -import { randomStringValue } from '@mui/internal-test-utils'; +import { act, randomStringValue } from '@mui/internal-test-utils'; import { throwMissingPropError } from './utils'; import { type BaseUiConformanceTestsOptions } from '../describeConformance'; @@ -25,6 +25,8 @@ export function testPropForwarding( React.cloneElement(element, { 'data-testid': 'root', ...otherProps }), ); + await act(async () => {}); + const customRoot = getByTestId('root'); expect(customRoot).to.have.attribute('lang', otherProps.lang); expect(customRoot).to.have.attribute('data-foobar', otherProps['data-foobar']); @@ -43,6 +45,8 @@ export function testPropForwarding( }), ); + await act(async () => {}); + const customRoot = getByTestId('custom-root'); expect(customRoot).to.have.attribute('lang', otherProps.lang); expect(customRoot).to.have.attribute('data-foobar', otherProps['data-foobar']); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1fe41a305..dea05bcf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -536,6 +536,9 @@ importers: cross-fetch: specifier: ^4.0.0 version: 4.0.0(encoding@0.1.13) + framer-motion: + specifier: ^11.2.5 + version: 11.2.5(@emotion/is-prop-valid@1.2.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) marked: specifier: ^12.0.2 version: 12.0.2 @@ -572,9 +575,15 @@ importers: '@babel/runtime': specifier: ^7.24.5 version: 7.24.5 + '@floating-ui/react': + specifier: ^0.26.12 + version: 0.26.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@floating-ui/react-dom': - specifier: ^2.1.0 + specifier: ^2.0.8 version: 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@floating-ui/utils': + specifier: ^0.2.1 + version: 0.2.2 '@mui/types': specifier: ^7.2.14 version: 7.2.14(@types/react@18.3.1) @@ -1783,8 +1792,8 @@ packages: '@floating-ui/core@1.6.0': resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} - '@floating-ui/dom@1.6.3': - resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} + '@floating-ui/dom@1.6.5': + resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} '@floating-ui/react-dom@2.1.0': resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} @@ -1792,8 +1801,14 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.1': - resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + '@floating-ui/react@0.26.16': + resolution: {integrity: sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.2': + resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} '@gitbeaker/core@38.12.1': resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} @@ -4880,6 +4895,20 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + framer-motion@11.2.5: + resolution: {integrity: sha512-X22i42hWY423wx2C1TlQlC4UnWonD+udND0qX1Fkt0dDlreSmuNY76obO6Y2d/UdJPhqVd5Zn6g1jAIwF6Xx9A==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -8027,6 +8056,9 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + table@6.8.2: resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} @@ -9892,20 +9924,28 @@ snapshots: '@floating-ui/core@1.6.0': dependencies: - '@floating-ui/utils': 0.2.1 + '@floating-ui/utils': 0.2.2 - '@floating-ui/dom@1.6.3': + '@floating-ui/dom@1.6.5': dependencies: '@floating-ui/core': 1.6.0 - '@floating-ui/utils': 0.2.1 + '@floating-ui/utils': 0.2.2 '@floating-ui/react-dom@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@floating-ui/dom': 1.6.3 + '@floating-ui/dom': 1.6.5 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@floating-ui/utils@0.2.1': {} + '@floating-ui/react@0.26.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@floating-ui/utils': 0.2.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.2': {} '@gitbeaker/core@38.12.1': dependencies: @@ -13799,6 +13839,14 @@ snapshots: fraction.js@4.3.7: {} + framer-motion@11.2.5(@emotion/is-prop-valid@1.2.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + tslib: 2.6.2 + optionalDependencies: + '@emotion/is-prop-valid': 1.2.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + fresh@0.5.2: {} from@0.1.7: {} @@ -17512,6 +17560,8 @@ snapshots: symbol-tree@3.2.4: {} + tabbable@6.2.0: {} + table@6.8.2: dependencies: ajv: 8.12.0 From 519d615f6e893b0ab2bb1bfed9465009165f901c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dudak?= Date: Wed, 29 May 2024 14:39:41 +0200 Subject: [PATCH 002/140] [Tooltip][docs] Use the correct version of ComponentLinkHeader (#425) --- docs/data/base/components/tooltip/tooltip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/base/components/tooltip/tooltip.md b/docs/data/base/components/tooltip/tooltip.md index 946c9b210..7fc506785 100644 --- a/docs/data/base/components/tooltip/tooltip.md +++ b/docs/data/base/components/tooltip/tooltip.md @@ -11,7 +11,7 @@ waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/

Tooltips are visual-only floating elements that display information about a trigger element when a user hovers or focuses it.

-{{"component": "modules/components/ComponentLinkHeader.js", "design": false}} +{{"component": "@mui/docs/ComponentLinkHeader", "design": false}} {{"component": "modules/components/ComponentPageTabs.js"}} From 86a7d7e391f07f949e0af1a1e01f1a63e3b1c47b Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Fri, 31 May 2024 01:03:28 +0200 Subject: [PATCH 003/140] [docs-infra] Fix a stylelint issue (#421) --- .../autocomplete/AutocompleteIntroduction/css/index.js | 2 +- .../autocomplete/AutocompleteIntroduction/css/index.tsx | 2 +- .../autocomplete/AutocompleteIntroduction/system/index.js | 2 +- .../autocomplete/AutocompleteIntroduction/system/index.tsx | 2 +- docs/data/base/components/autocomplete/ControlledStates.js | 2 +- docs/data/base/components/autocomplete/ControlledStates.tsx | 2 +- docs/data/base/components/autocomplete/UseAutocomplete.js | 2 +- docs/data/base/components/autocomplete/UseAutocomplete.tsx | 2 +- .../base/components/autocomplete/UseAutocompletePopper.js | 2 +- .../base/components/autocomplete/UseAutocompletePopper.tsx | 2 +- docs/data/base/components/menu/MenuIntroduction/css/index.js | 2 +- docs/data/base/components/menu/MenuIntroduction/css/index.tsx | 2 +- .../base/components/menu/MenuIntroduction/system/index.js | 2 +- .../base/components/menu/MenuIntroduction/system/index.tsx | 2 +- docs/data/base/components/menu/MenuSimple/css/index.js | 2 +- docs/data/base/components/menu/MenuSimple/css/index.tsx | 2 +- docs/data/base/components/menu/MenuSimple/system/index.js | 2 +- docs/data/base/components/menu/MenuSimple/system/index.tsx | 2 +- docs/data/base/components/menu/MenuTransitions.js | 2 +- docs/data/base/components/menu/MenuTransitions.tsx | 2 +- docs/data/base/components/menu/UseMenu.js | 2 +- docs/data/base/components/menu/UseMenu.tsx | 2 +- docs/data/base/components/menu/WrappedMenuItems.js | 2 +- docs/data/base/components/menu/WrappedMenuItems.tsx | 2 +- .../base/components/select/UnstyledSelectBasic/css/index.js | 2 +- .../base/components/select/UnstyledSelectBasic/css/index.tsx | 2 +- .../components/select/UnstyledSelectBasic/system/index.js | 2 +- .../components/select/UnstyledSelectBasic/system/index.tsx | 2 +- docs/data/base/components/select/UnstyledSelectControlled.js | 2 +- docs/data/base/components/select/UnstyledSelectControlled.tsx | 2 +- .../base/components/select/UnstyledSelectCustomRenderValue.js | 2 +- .../components/select/UnstyledSelectCustomRenderValue.tsx | 2 +- docs/data/base/components/select/UnstyledSelectForm.js | 2 +- docs/data/base/components/select/UnstyledSelectForm.tsx | 2 +- docs/data/base/components/select/UnstyledSelectGrouping.js | 2 +- docs/data/base/components/select/UnstyledSelectGrouping.tsx | 2 +- .../components/select/UnstyledSelectIntroduction/css/index.js | 2 +- .../select/UnstyledSelectIntroduction/css/index.tsx | 2 +- .../select/UnstyledSelectIntroduction/system/index.js | 2 +- .../select/UnstyledSelectIntroduction/system/index.tsx | 2 +- docs/data/base/components/select/UnstyledSelectMultiple.js | 2 +- docs/data/base/components/select/UnstyledSelectMultiple.tsx | 2 +- .../data/base/components/select/UnstyledSelectObjectValues.js | 2 +- .../base/components/select/UnstyledSelectObjectValues.tsx | 2 +- .../base/components/select/UnstyledSelectObjectValuesForm.js | 2 +- .../base/components/select/UnstyledSelectObjectValuesForm.tsx | 2 +- docs/data/base/components/select/UnstyledSelectRichOptions.js | 2 +- .../data/base/components/select/UnstyledSelectRichOptions.tsx | 2 +- docs/data/base/components/select/UnstyledSelectTransitions.js | 2 +- .../data/base/components/select/UnstyledSelectTransitions.tsx | 2 +- docs/data/base/components/select/UseSelect.js | 2 +- docs/data/base/components/select/UseSelect.tsx | 2 +- .../base/getting-started/accessibility/KeyboardNavigation.js | 2 +- .../base/getting-started/accessibility/KeyboardNavigation.tsx | 2 +- docs/public/static/components-gallery/base-theme.css | 4 ++-- docs/src/modules/home/BaseUIThemesDemo.tsx | 2 +- 56 files changed, 57 insertions(+), 57 deletions(-) diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.js b/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.js index 34965307b..a3ba522c3 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.js +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.js @@ -278,7 +278,7 @@ function Styles() { width: 100%; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; position: absolute; diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.tsx b/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.tsx index 239968932..7eaa986e7 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.tsx +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/css/index.tsx @@ -255,7 +255,7 @@ function Styles() { width: 100%; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; position: absolute; diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js index 3a8d047c2..bf7209a57 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js @@ -205,7 +205,7 @@ const StyledListbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx index 00d8c19d7..20e90175e 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx @@ -191,7 +191,7 @@ const StyledListbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; diff --git a/docs/data/base/components/autocomplete/ControlledStates.js b/docs/data/base/components/autocomplete/ControlledStates.js index 039291df3..e2225cae0 100644 --- a/docs/data/base/components/autocomplete/ControlledStates.js +++ b/docs/data/base/components/autocomplete/ControlledStates.js @@ -136,7 +136,7 @@ const Listbox = styled('ul')( max-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; position: absolute; diff --git a/docs/data/base/components/autocomplete/ControlledStates.tsx b/docs/data/base/components/autocomplete/ControlledStates.tsx index b5044424e..ad1d32572 100644 --- a/docs/data/base/components/autocomplete/ControlledStates.tsx +++ b/docs/data/base/components/autocomplete/ControlledStates.tsx @@ -136,7 +136,7 @@ const Listbox = styled('ul')( max-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; position: absolute; diff --git a/docs/data/base/components/autocomplete/UseAutocomplete.js b/docs/data/base/components/autocomplete/UseAutocomplete.js index 7ca907429..53e6a9eb5 100644 --- a/docs/data/base/components/autocomplete/UseAutocomplete.js +++ b/docs/data/base/components/autocomplete/UseAutocomplete.js @@ -127,7 +127,7 @@ const Listbox = styled('ul')( width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; position: absolute; diff --git a/docs/data/base/components/autocomplete/UseAutocomplete.tsx b/docs/data/base/components/autocomplete/UseAutocomplete.tsx index d0b212c1c..9a7458d03 100644 --- a/docs/data/base/components/autocomplete/UseAutocomplete.tsx +++ b/docs/data/base/components/autocomplete/UseAutocomplete.tsx @@ -129,7 +129,7 @@ const Listbox = styled('ul')( width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; position: absolute; diff --git a/docs/data/base/components/autocomplete/UseAutocompletePopper.js b/docs/data/base/components/autocomplete/UseAutocompletePopper.js index 0c5385b8b..bea14f9d7 100644 --- a/docs/data/base/components/autocomplete/UseAutocompletePopper.js +++ b/docs/data/base/components/autocomplete/UseAutocompletePopper.js @@ -152,7 +152,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; diff --git a/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx b/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx index 7b9333884..a2d5efbbb 100644 --- a/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx +++ b/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx @@ -163,7 +163,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; max-height: 300px; z-index: 1; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; diff --git a/docs/data/base/components/menu/MenuIntroduction/css/index.js b/docs/data/base/components/menu/MenuIntroduction/css/index.js index bc20c6ddc..1abf2e8b1 100644 --- a/docs/data/base/components/menu/MenuIntroduction/css/index.js +++ b/docs/data/base/components/menu/MenuIntroduction/css/index.js @@ -125,7 +125,7 @@ function Styles() { min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuIntroduction/css/index.tsx b/docs/data/base/components/menu/MenuIntroduction/css/index.tsx index 7082c7d52..903a96213 100644 --- a/docs/data/base/components/menu/MenuIntroduction/css/index.tsx +++ b/docs/data/base/components/menu/MenuIntroduction/css/index.tsx @@ -123,7 +123,7 @@ function Styles() { min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuIntroduction/system/index.js b/docs/data/base/components/menu/MenuIntroduction/system/index.js index 28b3ee1f3..a3374a21f 100644 --- a/docs/data/base/components/menu/MenuIntroduction/system/index.js +++ b/docs/data/base/components/menu/MenuIntroduction/system/index.js @@ -65,7 +65,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuIntroduction/system/index.tsx b/docs/data/base/components/menu/MenuIntroduction/system/index.tsx index c1dc9009f..e5cf6b437 100644 --- a/docs/data/base/components/menu/MenuIntroduction/system/index.tsx +++ b/docs/data/base/components/menu/MenuIntroduction/system/index.tsx @@ -64,7 +64,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuSimple/css/index.js b/docs/data/base/components/menu/MenuSimple/css/index.js index 0e9970c08..fbe46ad61 100644 --- a/docs/data/base/components/menu/MenuSimple/css/index.js +++ b/docs/data/base/components/menu/MenuSimple/css/index.js @@ -92,7 +92,7 @@ function Styles() { min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuSimple/css/index.tsx b/docs/data/base/components/menu/MenuSimple/css/index.tsx index 864904df6..456c3b445 100644 --- a/docs/data/base/components/menu/MenuSimple/css/index.tsx +++ b/docs/data/base/components/menu/MenuSimple/css/index.tsx @@ -92,7 +92,7 @@ function Styles() { min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuSimple/system/index.js b/docs/data/base/components/menu/MenuSimple/system/index.js index a0d6b896f..5287ea2a5 100644 --- a/docs/data/base/components/menu/MenuSimple/system/index.js +++ b/docs/data/base/components/menu/MenuSimple/system/index.js @@ -62,7 +62,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuSimple/system/index.tsx b/docs/data/base/components/menu/MenuSimple/system/index.tsx index 2d6a35137..5e77a149b 100644 --- a/docs/data/base/components/menu/MenuSimple/system/index.tsx +++ b/docs/data/base/components/menu/MenuSimple/system/index.tsx @@ -62,7 +62,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuTransitions.js b/docs/data/base/components/menu/MenuTransitions.js index e6dd9b342..4eb7608c3 100644 --- a/docs/data/base/components/menu/MenuTransitions.js +++ b/docs/data/base/components/menu/MenuTransitions.js @@ -65,7 +65,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/MenuTransitions.tsx b/docs/data/base/components/menu/MenuTransitions.tsx index 59d026e46..51f73f3ef 100644 --- a/docs/data/base/components/menu/MenuTransitions.tsx +++ b/docs/data/base/components/menu/MenuTransitions.tsx @@ -64,7 +64,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/UseMenu.js b/docs/data/base/components/menu/UseMenu.js index 5ac17d551..ea96404ff 100644 --- a/docs/data/base/components/menu/UseMenu.js +++ b/docs/data/base/components/menu/UseMenu.js @@ -137,7 +137,7 @@ function Styles() { border-radius: 0.75em; color: ${grey[900]}; overflow: auto; - outline: 0px; + outline: 0; box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.05); } diff --git a/docs/data/base/components/menu/UseMenu.tsx b/docs/data/base/components/menu/UseMenu.tsx index 0d656cc46..2fe50a37c 100644 --- a/docs/data/base/components/menu/UseMenu.tsx +++ b/docs/data/base/components/menu/UseMenu.tsx @@ -136,7 +136,7 @@ function Styles() { border-radius: 0.75em; color: ${grey[900]}; overflow: auto; - outline: 0px; + outline: 0; box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.05); } diff --git a/docs/data/base/components/menu/WrappedMenuItems.js b/docs/data/base/components/menu/WrappedMenuItems.js index 1c876728c..0a8047714 100644 --- a/docs/data/base/components/menu/WrappedMenuItems.js +++ b/docs/data/base/components/menu/WrappedMenuItems.js @@ -90,7 +90,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/menu/WrappedMenuItems.tsx b/docs/data/base/components/menu/WrappedMenuItems.tsx index 856ebf83a..ed6957419 100644 --- a/docs/data/base/components/menu/WrappedMenuItems.tsx +++ b/docs/data/base/components/menu/WrappedMenuItems.tsx @@ -84,7 +84,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectBasic/css/index.js b/docs/data/base/components/select/UnstyledSelectBasic/css/index.js index 99b05e1d9..e320ce8be 100644 --- a/docs/data/base/components/select/UnstyledSelectBasic/css/index.js +++ b/docs/data/base/components/select/UnstyledSelectBasic/css/index.js @@ -135,7 +135,7 @@ function Styles() { min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectBasic/css/index.tsx b/docs/data/base/components/select/UnstyledSelectBasic/css/index.tsx index 5384968d8..8be4e7c79 100644 --- a/docs/data/base/components/select/UnstyledSelectBasic/css/index.tsx +++ b/docs/data/base/components/select/UnstyledSelectBasic/css/index.tsx @@ -135,7 +135,7 @@ function Styles() { min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectBasic/system/index.js b/docs/data/base/components/select/UnstyledSelectBasic/system/index.js index 3e6665503..021a51f77 100644 --- a/docs/data/base/components/select/UnstyledSelectBasic/system/index.js +++ b/docs/data/base/components/select/UnstyledSelectBasic/system/index.js @@ -117,7 +117,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectBasic/system/index.tsx b/docs/data/base/components/select/UnstyledSelectBasic/system/index.tsx index 5a71d3b35..b923ee2b3 100644 --- a/docs/data/base/components/select/UnstyledSelectBasic/system/index.tsx +++ b/docs/data/base/components/select/UnstyledSelectBasic/system/index.tsx @@ -127,7 +127,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectControlled.js b/docs/data/base/components/select/UnstyledSelectControlled.js index 1f0fea715..4bb5e6070 100644 --- a/docs/data/base/components/select/UnstyledSelectControlled.js +++ b/docs/data/base/components/select/UnstyledSelectControlled.js @@ -138,7 +138,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectControlled.tsx b/docs/data/base/components/select/UnstyledSelectControlled.tsx index cb3ffbf55..d89fc015b 100644 --- a/docs/data/base/components/select/UnstyledSelectControlled.tsx +++ b/docs/data/base/components/select/UnstyledSelectControlled.tsx @@ -127,7 +127,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectCustomRenderValue.js b/docs/data/base/components/select/UnstyledSelectCustomRenderValue.js index 9bbfe640d..5c9e9c075 100644 --- a/docs/data/base/components/select/UnstyledSelectCustomRenderValue.js +++ b/docs/data/base/components/select/UnstyledSelectCustomRenderValue.js @@ -140,7 +140,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectCustomRenderValue.tsx b/docs/data/base/components/select/UnstyledSelectCustomRenderValue.tsx index 9d6fd0411..5d06f4a0c 100644 --- a/docs/data/base/components/select/UnstyledSelectCustomRenderValue.tsx +++ b/docs/data/base/components/select/UnstyledSelectCustomRenderValue.tsx @@ -132,7 +132,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectForm.js b/docs/data/base/components/select/UnstyledSelectForm.js index febaa99a6..9a57aa29d 100644 --- a/docs/data/base/components/select/UnstyledSelectForm.js +++ b/docs/data/base/components/select/UnstyledSelectForm.js @@ -132,7 +132,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectForm.tsx b/docs/data/base/components/select/UnstyledSelectForm.tsx index b4da86548..389cfb15a 100644 --- a/docs/data/base/components/select/UnstyledSelectForm.tsx +++ b/docs/data/base/components/select/UnstyledSelectForm.tsx @@ -142,7 +142,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectGrouping.js b/docs/data/base/components/select/UnstyledSelectGrouping.js index 48d009c34..c5ef5c11d 100644 --- a/docs/data/base/components/select/UnstyledSelectGrouping.js +++ b/docs/data/base/components/select/UnstyledSelectGrouping.js @@ -161,7 +161,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectGrouping.tsx b/docs/data/base/components/select/UnstyledSelectGrouping.tsx index d32e66ef5..0f6f4a7ba 100644 --- a/docs/data/base/components/select/UnstyledSelectGrouping.tsx +++ b/docs/data/base/components/select/UnstyledSelectGrouping.tsx @@ -146,7 +146,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js index 5da7f1add..4c51da525 100644 --- a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js +++ b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js @@ -165,7 +165,7 @@ function Styles() { min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx index 3c22fae9a..d42a0b141 100644 --- a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx +++ b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx @@ -172,7 +172,7 @@ function Styles() { min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; color: ${isDarkMode ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.js b/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.js index ce0ae92f8..c35c6de1e 100644 --- a/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.js +++ b/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.js @@ -132,7 +132,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.tsx b/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.tsx index 32924f754..34f5ea9da 100644 --- a/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.tsx +++ b/docs/data/base/components/select/UnstyledSelectIntroduction/system/index.tsx @@ -128,7 +128,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectMultiple.js b/docs/data/base/components/select/UnstyledSelectMultiple.js index 1beed3b4c..a90d1c7ae 100644 --- a/docs/data/base/components/select/UnstyledSelectMultiple.js +++ b/docs/data/base/components/select/UnstyledSelectMultiple.js @@ -129,7 +129,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectMultiple.tsx b/docs/data/base/components/select/UnstyledSelectMultiple.tsx index 6e685cf4a..839b73f2d 100644 --- a/docs/data/base/components/select/UnstyledSelectMultiple.tsx +++ b/docs/data/base/components/select/UnstyledSelectMultiple.tsx @@ -124,7 +124,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectObjectValues.js b/docs/data/base/components/select/UnstyledSelectObjectValues.js index cc501801b..ff46f1f94 100644 --- a/docs/data/base/components/select/UnstyledSelectObjectValues.js +++ b/docs/data/base/components/select/UnstyledSelectObjectValues.js @@ -145,7 +145,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectObjectValues.tsx b/docs/data/base/components/select/UnstyledSelectObjectValues.tsx index 1665e01fb..a134996b6 100644 --- a/docs/data/base/components/select/UnstyledSelectObjectValues.tsx +++ b/docs/data/base/components/select/UnstyledSelectObjectValues.tsx @@ -144,7 +144,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectObjectValuesForm.js b/docs/data/base/components/select/UnstyledSelectObjectValuesForm.js index 1b037851c..f6362adcf 100644 --- a/docs/data/base/components/select/UnstyledSelectObjectValuesForm.js +++ b/docs/data/base/components/select/UnstyledSelectObjectValuesForm.js @@ -209,7 +209,7 @@ const Listbox = styled('ul')( border-radius: 8px; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; overflow: auto; - outline: 0px; + outline: 0; box-shadow: 0px 2px 6px ${ theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.50)' : 'rgba(0,0,0, 0.05)' }; diff --git a/docs/data/base/components/select/UnstyledSelectObjectValuesForm.tsx b/docs/data/base/components/select/UnstyledSelectObjectValuesForm.tsx index 6681e2b87..cf636736e 100644 --- a/docs/data/base/components/select/UnstyledSelectObjectValuesForm.tsx +++ b/docs/data/base/components/select/UnstyledSelectObjectValuesForm.tsx @@ -208,7 +208,7 @@ const Listbox = styled('ul')( border-radius: 8px; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; overflow: auto; - outline: 0px; + outline: 0; box-shadow: 0px 2px 6px ${ theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.50)' : 'rgba(0,0,0, 0.05)' }; diff --git a/docs/data/base/components/select/UnstyledSelectRichOptions.js b/docs/data/base/components/select/UnstyledSelectRichOptions.js index f5856a40f..750557198 100644 --- a/docs/data/base/components/select/UnstyledSelectRichOptions.js +++ b/docs/data/base/components/select/UnstyledSelectRichOptions.js @@ -138,7 +138,7 @@ const Listbox = styled('ul')( max-height: 400px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectRichOptions.tsx b/docs/data/base/components/select/UnstyledSelectRichOptions.tsx index 2fa6edba1..bcc76af39 100644 --- a/docs/data/base/components/select/UnstyledSelectRichOptions.tsx +++ b/docs/data/base/components/select/UnstyledSelectRichOptions.tsx @@ -133,7 +133,7 @@ const Listbox = styled('ul')( max-height: 400px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectTransitions.js b/docs/data/base/components/select/UnstyledSelectTransitions.js index c2cbfe87a..ea94bed12 100644 --- a/docs/data/base/components/select/UnstyledSelectTransitions.js +++ b/docs/data/base/components/select/UnstyledSelectTransitions.js @@ -135,7 +135,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UnstyledSelectTransitions.tsx b/docs/data/base/components/select/UnstyledSelectTransitions.tsx index ea27f0d96..ddd4db2b3 100644 --- a/docs/data/base/components/select/UnstyledSelectTransitions.tsx +++ b/docs/data/base/components/select/UnstyledSelectTransitions.tsx @@ -131,7 +131,7 @@ const Listbox = styled('ul')( min-width: 320px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/components/select/UseSelect.js b/docs/data/base/components/select/UseSelect.js index 503245be7..6701c1b5b 100644 --- a/docs/data/base/components/select/UseSelect.js +++ b/docs/data/base/components/select/UseSelect.js @@ -99,7 +99,7 @@ const Listbox = styled('ul')( width: 100%; overflow: auto; z-index: 1; - outline: 0px; + outline: 0; list-style: none; box-shadow: 0px 2px 6px ${ theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.50)' : 'rgba(0,0,0, 0.05)' diff --git a/docs/data/base/components/select/UseSelect.tsx b/docs/data/base/components/select/UseSelect.tsx index 153f88ed7..de23c3976 100644 --- a/docs/data/base/components/select/UseSelect.tsx +++ b/docs/data/base/components/select/UseSelect.tsx @@ -102,7 +102,7 @@ const Listbox = styled('ul')( width: 100%; overflow: auto; z-index: 1; - outline: 0px; + outline: 0; list-style: none; box-shadow: 0px 2px 6px ${ theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.50)' : 'rgba(0,0,0, 0.05)' diff --git a/docs/data/base/getting-started/accessibility/KeyboardNavigation.js b/docs/data/base/getting-started/accessibility/KeyboardNavigation.js index 21b4f4840..15ea9b22f 100644 --- a/docs/data/base/getting-started/accessibility/KeyboardNavigation.js +++ b/docs/data/base/getting-started/accessibility/KeyboardNavigation.js @@ -139,7 +139,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[800] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx b/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx index ca64e0cec..87c7a97b6 100644 --- a/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx +++ b/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx @@ -149,7 +149,7 @@ const Listbox = styled('ul')( min-width: 200px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[800] : grey[200]}; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; diff --git a/docs/public/static/components-gallery/base-theme.css b/docs/public/static/components-gallery/base-theme.css index 937fc23ee..d31371059 100644 --- a/docs/public/static/components-gallery/base-theme.css +++ b/docs/public/static/components-gallery/base-theme.css @@ -410,7 +410,7 @@ min-width: 200px; border-radius: var(--border-radius-lg); overflow: auto; - outline: 0px; + outline: 0; background: var(--bg-default); border: var(--border-soft); box-shadow: var(--shadow-elevation-2); @@ -620,7 +620,7 @@ margin: 12px 0; border-radius: var(--border-radius-lg); overflow: auto; - outline: 0px; + outline: 0; background: var(--bg-default); border: var(--border-soft); box-shadow: var(--shadow-elevation-2); diff --git a/docs/src/modules/home/BaseUIThemesDemo.tsx b/docs/src/modules/home/BaseUIThemesDemo.tsx index 60ac455f3..600568bea 100644 --- a/docs/src/modules/home/BaseUIThemesDemo.tsx +++ b/docs/src/modules/home/BaseUIThemesDemo.tsx @@ -589,7 +589,7 @@ const StyledMenuListbox = styled('ul')(` min-width: 230px; border-radius: 12px; overflow: auto; - outline: 0px; + outline: 0; background-color: var(--muidocs-palette-background-default); border-radius: min(var(--border-radius), 16px); border: var(--border-width) solid; From 70b87c9fd026a028677f52ecd509c075df8f7a53 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sat, 1 Jun 2024 21:46:27 +0200 Subject: [PATCH 004/140] [docs] Update twitter.com to x.com --- CHANGELOG.old.md | 2 +- README.md | 2 +- docs/data/base/getting-started/support/support.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.old.md b/CHANGELOG.old.md index 62dd08989..141a6d803 100644 --- a/CHANGELOG.old.md +++ b/CHANGELOG.old.md @@ -1186,7 +1186,7 @@ _Nov 16, 2021_ - [core] Rename mui/core to mui/base (#29585) @michaldudak - Based on the results of the [poll](https://twitter.com/michaldudak/status/1452630484706635779) and our internal discussions, we decided to rename the `@mui/core` package to `@mui/base`. The main rationale for this is the fact that we use the term "Core" to refer to the core components product family, the one that includes Material Design components, unstyled components, System utilities, etc. Therefore, @mui/core was effectively a subset of MUI Core. This was confusing. + Based on the results of the [poll](https://x.com/michaldudak/status/1452630484706635779) and our internal discussions, we decided to rename the `@mui/core` package to `@mui/base`. The main rationale for this is the fact that we use the term "Core" to refer to the core components product family, the one that includes Material Design components, unstyled components, System utilities, etc. Therefore, @mui/core was effectively a subset of MUI Core. This was confusing. The new name better reflects the purpose of the package: it contains unstyled components, hooks, and utilities that serve as a **base** to build on. diff --git a/README.md b/README.md index ec3c87be0..03354b161 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![npm downloads](https://img.shields.io/npm/dm/@base_ui/react.svg)](https://www.npmjs.com/package/@base_ui/react) [![CircleCI](https://circleci.com/gh/mui/base-ui/tree/master.svg?style=shield)](https://app.circleci.com/pipelines/github/mui/base-ui?branch=master) [![Coverage status](https://img.shields.io/codecov/c/github/mui/base-ui/master.svg)](https://codecov.io/gh/mui/base-ui/branch/master) -[![Follow on X](https://img.shields.io/twitter/follow/MUI_hq.svg?label=follow+MUI)](https://twitter.com/MUI_hq) +[![Follow on X](https://img.shields.io/twitter/follow/MUI_hq.svg?label=follow+MUI)](https://x.com/MUI_hq) [![Renovate status](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://github.com/mui/base-ui/issues/2) [![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/mui/base-ui.svg)](https://isitmaintained.com/project/mui/base-ui 'Average time to resolve an issue') [![Open Collective backers and sponsors](https://img.shields.io/opencollective/all/mui-org)](https://opencollective.com/mui-org) diff --git a/docs/data/base/getting-started/support/support.md b/docs/data/base/getting-started/support/support.md index 3bebff71f..6fb26d6b7 100644 --- a/docs/data/base/getting-started/support/support.md +++ b/docs/data/base/getting-started/support/support.md @@ -73,7 +73,7 @@ This includes issues introduced by external sources, like browser upgrades or ch ### Social media -The Base UI community is active on both [X/Twitter](https://twitter.com/BaseUI) and [LinkedIn](https://www.linkedin.com/company/mui/). +The Base UI community is active on both [X/Twitter](https://x.com/BaseUI) and [LinkedIn](https://www.linkedin.com/company/mui/). These are great platforms to share what you're working on and connect with other developers. ### Discord From 8ee7d300eff584d761c609e9b5c8b1c0bb3caf8a Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sun, 2 Jun 2024 18:34:18 +0200 Subject: [PATCH 005/140] [docs] Add badges like in Material UI --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 03354b161..2e33e6da9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -

Base UI

[Base UI](https://mui.com/base-ui/) is a library of unstyled React UI components and hooks. With Base UI, you gain complete control over your app's CSS and accessibility features. @@ -9,9 +8,9 @@ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mui/base-ui/blob/HEAD/LICENSE) [![npm latest package](https://img.shields.io/npm/v/@base_ui/react/latest.svg)](https://www.npmjs.com/package/@base_ui/react) [![npm downloads](https://img.shields.io/npm/dm/@base_ui/react.svg)](https://www.npmjs.com/package/@base_ui/react) -[![CircleCI](https://circleci.com/gh/mui/base-ui/tree/master.svg?style=shield)](https://app.circleci.com/pipelines/github/mui/base-ui?branch=master) -[![Coverage status](https://img.shields.io/codecov/c/github/mui/base-ui/master.svg)](https://codecov.io/gh/mui/base-ui/branch/master) -[![Follow on X](https://img.shields.io/twitter/follow/MUI_hq.svg?label=follow+MUI)](https://x.com/MUI_hq) +[![GitHub branch status](https://img.shields.io/github/checks-status/mui/base-ui)](https://github.com/mui/base-ui/commits/HEAD/) +[![Coverage status](https://img.shields.io/codecov/c/github/mui/base-ui.svg)](https://app.codecov.io/gh/mui/base-ui/) +[![Follow on X](https://img.shields.io/twitter/follow/Base_UI.svg?label=follow+Base+UI)](https://x.com/Base_UI) [![Renovate status](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://github.com/mui/base-ui/issues/2) [![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/mui/base-ui.svg)](https://isitmaintained.com/project/mui/base-ui 'Average time to resolve an issue') [![Open Collective backers and sponsors](https://img.shields.io/opencollective/all/mui-org)](https://opencollective.com/mui-org) From 3f621e8938d798fb18628c3656ca363d08a57987 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sun, 2 Jun 2024 18:40:15 +0200 Subject: [PATCH 006/140] [docs] Add badges like in Material UI --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e33e6da9..9121d766b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mui/base-ui/blob/HEAD/LICENSE) [![npm latest package](https://img.shields.io/npm/v/@base_ui/react/latest.svg)](https://www.npmjs.com/package/@base_ui/react) [![npm downloads](https://img.shields.io/npm/dm/@base_ui/react.svg)](https://www.npmjs.com/package/@base_ui/react) -[![GitHub branch status](https://img.shields.io/github/checks-status/mui/base-ui)](https://github.com/mui/base-ui/commits/HEAD/) +[![GitHub branch status](https://img.shields.io/github/checks-status/mui/base-ui/HEAD)](https://github.com/mui/base-ui/commits/HEAD/) [![Coverage status](https://img.shields.io/codecov/c/github/mui/base-ui.svg)](https://app.codecov.io/gh/mui/base-ui/) [![Follow on X](https://img.shields.io/twitter/follow/Base_UI.svg?label=follow+Base+UI)](https://x.com/Base_UI) [![Renovate status](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://github.com/mui/base-ui/issues/2) From 902315be41c7d4259d281706a259c6ac08ece3fe Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sun, 2 Jun 2024 19:33:53 +0200 Subject: [PATCH 007/140] [docs] Add badges like in Material UI --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9121d766b..0845d56a4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ +

+ Base UI logo +

+

Base UI

[Base UI](https://mui.com/base-ui/) is a library of unstyled React UI components and hooks. With Base UI, you gain complete control over your app's CSS and accessibility features. From ebccdf3bba49e682f82e27f18d508c47c4d8c717 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sun, 2 Jun 2024 21:35:50 +0200 Subject: [PATCH 008/140] [website] Fix /base-ui/ code duplication (#416) --- docs/pages/base-ui.tsx | 44 - docs/public/_redirects | 3 +- docs/src/modules/home/BaseUIComponents.tsx | 245 ----- docs/src/modules/home/BaseUICustomization.tsx | 288 ------ docs/src/modules/home/BaseUIEnd.tsx | 84 -- docs/src/modules/home/BaseUIHero.tsx | 107 -- docs/src/modules/home/BaseUISummary.tsx | 98 -- docs/src/modules/home/BaseUITestimonial.tsx | 118 --- docs/src/modules/home/BaseUIThemesDemo.tsx | 963 ------------------ docs/src/modules/home/GetStartedButtons.tsx | 109 -- .../home/componentDemos/BaseButtonDemo.tsx | 139 --- .../home/componentDemos/BaseInputDemo.tsx | 309 ------ .../home/componentDemos/BaseMenuDemo.tsx | 339 ------ .../home/componentDemos/BaseSliderDemo.tsx | 259 ----- .../home/componentDemos/BaseTabsDemo.tsx | 206 ---- docs/src/modules/home/heroVariables.ts | 195 ---- .../modules/home/themed-controls/Switch.tsx | 70 -- 17 files changed, 2 insertions(+), 3574 deletions(-) delete mode 100644 docs/pages/base-ui.tsx delete mode 100644 docs/src/modules/home/BaseUIComponents.tsx delete mode 100644 docs/src/modules/home/BaseUICustomization.tsx delete mode 100644 docs/src/modules/home/BaseUIEnd.tsx delete mode 100644 docs/src/modules/home/BaseUIHero.tsx delete mode 100644 docs/src/modules/home/BaseUISummary.tsx delete mode 100644 docs/src/modules/home/BaseUITestimonial.tsx delete mode 100644 docs/src/modules/home/BaseUIThemesDemo.tsx delete mode 100644 docs/src/modules/home/GetStartedButtons.tsx delete mode 100644 docs/src/modules/home/componentDemos/BaseButtonDemo.tsx delete mode 100644 docs/src/modules/home/componentDemos/BaseInputDemo.tsx delete mode 100644 docs/src/modules/home/componentDemos/BaseMenuDemo.tsx delete mode 100644 docs/src/modules/home/componentDemos/BaseSliderDemo.tsx delete mode 100644 docs/src/modules/home/componentDemos/BaseTabsDemo.tsx delete mode 100644 docs/src/modules/home/heroVariables.ts delete mode 100644 docs/src/modules/home/themed-controls/Switch.tsx diff --git a/docs/pages/base-ui.tsx b/docs/pages/base-ui.tsx deleted file mode 100644 index 1fa743094..000000000 --- a/docs/pages/base-ui.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import * as React from 'react'; -import Divider from '@mui/material/Divider'; -import Head from 'docs/src/modules/components/Head'; -import BrandingCssVarsProvider from 'docs/src/BrandingCssVarsProvider'; -import AppHeader from 'docs/src/layouts/AppHeader'; -import AppFooter from 'docs/src/layouts/AppFooter'; -import AppHeaderBanner from 'docs/src/components/banner/AppHeaderBanner'; -import BaseUIHero from 'docs-base/src/modules/home/BaseUIHero'; -import BaseUISummary from 'docs-base/src/modules/home/BaseUISummary'; -import BaseUICustomization from 'docs-base/src/modules/home/BaseUICustomization'; -import BaseUIEnd from 'docs-base/src/modules/home/BaseUIEnd'; -import BaseUITestimonial from 'docs-base/src/modules/home/BaseUITestimonial'; - -export default function BaseUI() { - return ( - - - {/* eslint-disable-next-line @next/next/no-page-custom-font */} - - - - -
- - - - - - - - - -
- -
- ); -} diff --git a/docs/public/_redirects b/docs/public/_redirects index d41bcfbe7..b52011aa5 100644 --- a/docs/public/_redirects +++ b/docs/public/_redirects @@ -1,4 +1,5 @@ -/ /base-ui/ 301 +/ /base-ui/getting-started/ 301 +/base-ui/ https://mui.com/base-ui/ 302 # Avoid conflicts with the other Next.js apps hosted under https://mui.com/ /base-ui/_next/* /_next/:splat 200 diff --git a/docs/src/modules/home/BaseUIComponents.tsx b/docs/src/modules/home/BaseUIComponents.tsx deleted file mode 100644 index 43fc481af..000000000 --- a/docs/src/modules/home/BaseUIComponents.tsx +++ /dev/null @@ -1,245 +0,0 @@ -import * as React from 'react'; -import { styled as materialStyled } from '@mui/material/styles'; -import Button from '@mui/material/Button'; -import Box from '@mui/material/Box'; -import Grid from '@mui/material/Unstable_Grid2'; -import Typography from '@mui/material/Typography'; -import SmartButtonRoundedIcon from '@mui/icons-material/SmartButtonRounded'; -import TabUnselectedRoundedIcon from '@mui/icons-material/TabUnselectedRounded'; -import InputRoundedIcon from '@mui/icons-material/InputRounded'; -import MenuOpenRoundedIcon from '@mui/icons-material/MenuOpenRounded'; -import LinearScaleRoundedIcon from '@mui/icons-material/LinearScaleRounded'; -import GradientText from 'docs/src/components/typography/GradientText'; -import Item, { Group } from 'docs/src/components/action/Item'; -import Highlighter from 'docs/src/components/action/Highlighter'; -import Section from 'docs/src/layouts/Section'; -import SectionHeadline from 'docs/src/components/typography/SectionHeadline'; -import More from 'docs/src/components/action/More'; -import Frame from 'docs/src/components/action/Frame'; -import ROUTES from 'docs/src/route'; - -// switcher icons - -import { HighlightedCode } from '@mui/docs/HighlightedCode'; -import BaseButtonDemo from './componentDemos/BaseButtonDemo'; -import BaseMenuDemo from './componentDemos/BaseMenuDemo'; -import BaseInputDemo from './componentDemos/BaseInputDemo'; -import BaseTabsDemo from './componentDemos/BaseTabsDemo'; -import BaseSliderDemo from './componentDemos/BaseSliderDemo'; - -const StyledButton = materialStyled(Button)(({ theme }) => ({ - borderRadius: 40, - padding: theme.spacing('2px', 1), - fontSize: theme.typography.pxToRem(12), - lineHeight: 18 / 12, - '&.MuiButton-text': { - color: theme.palette.grey[500], - border: '1px solid', - borderColor: theme.palette.primaryDark[700], - '&:hover': { - backgroundColor: theme.palette.primaryDark[700], - }, - }, - '&.MuiButton-outlined': { - color: '#fff', - backgroundColor: 'var(--primary-active)', - borderColor: 'var(--primary-hover)', - }, -})); - -const DEMOS = ['Tabs', 'Button', 'Input', 'Menu', 'Slider'] as const; - -const CODES: Record< - (typeof DEMOS)[number], - string | ((styling: 'system' | 'tailwindcss' | 'css') => string) -> = { - Button: BaseButtonDemo.getCode, - Menu: BaseMenuDemo.getCode, - Input: BaseInputDemo.getCode, - Tabs: BaseTabsDemo.getCode, - Slider: BaseSliderDemo.getCode, -}; - -export default function BaseUIComponents() { - const [styling, setStyling] = React.useState<'system' | 'tailwindcss' | 'css'>('system'); - const [demo, setDemo] = React.useState<(typeof DEMOS)[number]>(DEMOS[0]); - const icons = { - [DEMOS[0]]: , - [DEMOS[1]]: , - [DEMOS[2]]: , - [DEMOS[3]]: , - [DEMOS[4]]: , - }; - return ( -
- - - - Choose your own -
CSS adventure - - } - description="Base UI's skeletal components give you a sturdy foundation to apply custom styles with ease. With no defaults to override, you're free to start from scratch using vanilla CSS, Tailwind CSS, MUI System, or any other framework you prefer." - /> - - {DEMOS.map((name) => ( - setDemo(name)}> - - - ))} - - -
- - - theme.applyDarkStyles({ - '--focus-ring': 'rgba(0, 114, 229, 0.6)', - '--slider-ring': 'rgba(0, 114, 229, 0.4)', - '--shadow': '0px 2px 2px rgba(0, 0, 0, 0.5)', - '--outlined-btn-shadow': - '0 -2px 0.5px 0 var(--muidocs-palette-grey-900) inset, 0 1px 0.5px 0 var(--muidocs-palette-primaryDark-900)', - ...(styling === 'tailwindcss' && { - '--focus-ring': 'rgba(119, 22, 208, 0.5)', - '--slider-ring': 'rgba(119, 22, 208, 0.5)', - '--shadow': '0px 2px 2px rgba(0, 0, 0, 0.5)', - '--solid-btn-shadow': - '0 -2px 0.5px 0 #500E8B inset, 0 2px 0.5px 0 #902FE9 inset, 0 1px 0.5px 0 rgba(0, 0, 0, 0.5)', - }), - ...(styling === 'css' && { - '--focus-ring': 'rgba(176, 18, 123, 0.8)', - '--slider-ring': 'rgba(176, 18, 123, 0.5)', - '--shadow': '0px 2px 2px rgba(0, 0, 0, 0.5)', - '--solid-btn-shadow': - '0 -2px 0.5px 0 #B0127B inset, 0 2px 0.5px 0 #EE5DBE inset, 0 1px 0.5px 0 rgba(0, 0, 0, 0.5)', - }), - }), - ]} - > - - {demo === 'Tabs' && } - {demo === 'Button' && } - {demo === 'Menu' && } - {demo === 'Input' && } - {demo === 'Slider' && } - - - - { - const result = CODES[demo]; - if (typeof result === 'function') { - return result(styling); - } - return result; - })()} - language="jsx" - /> - - ({ - pb: 3, - display: 'flex', - alignItems: 'center', - position: 'absolute', - gap: 1, - top: 12, - left: 12, - right: 0, - zIndex: 10, - background: `linear-gradient(to bottom, ${ - (theme.vars || theme).palette.common.black - } 30%, transparent)`, - })} - > - { - setStyling('system'); - }} - > - MUI System - - { - setStyling('tailwindcss'); - }} - > - Tailwind CSS - - { - setStyling('css'); - }} - > - Plain CSS - - - - - -
-
- ); -} diff --git a/docs/src/modules/home/BaseUICustomization.tsx b/docs/src/modules/home/BaseUICustomization.tsx deleted file mode 100644 index fd768d724..000000000 --- a/docs/src/modules/home/BaseUICustomization.tsx +++ /dev/null @@ -1,288 +0,0 @@ -import * as React from 'react'; -import { styled } from '@mui/system'; -import * as BaseSwitch from '@base_ui/react/Switch'; -import { useSwitchRoot, UseSwitchRootParameters } from '@base_ui/react/Switch'; -import Box from '@mui/material/Box'; -import Grid from '@mui/material/Grid'; -import Typography from '@mui/material/Typography'; -import { HighlightedCode } from '@mui/docs/HighlightedCode'; -import SvgTwinkle from 'docs/src/icons/SvgTwinkle'; -import Section from 'docs/src/layouts/Section'; -import Highlighter from 'docs/src/components/action/Highlighter'; -import Item, { Group } from 'docs/src/components/action/Item'; -import GradientText from 'docs/src/components/typography/GradientText'; -import SectionHeadline from 'docs/src/components/typography/SectionHeadline'; -import FlashCode from 'docs/src/components/animation/FlashCode'; -import Frame from 'docs/src/components/action/Frame'; - -const code = ` -import * as Switch from '@base_ui/react/Switch'; -import { useSwitchRoot } from '@base_ui/react/Switch'; -import { styled } from '@mui/system'; - -const StyledSwitchRoot = styled('button')(\` - font-size: 0; - position: relative; - display: inline-flex; - width: 40px; - height: 24px; - margin: 10px; - padding: 0; - border: none; - cursor: pointer; - border-radius: 16px; - background: #B0B8C4; - transition: all ease 120ms; - - :hover { - background: #9DA8B7; - } - - &[data-disabled] { - opacity: 0.4; - cursor: not-allowed; - } - - &[data-state="checked"] { - background: #007FFF; - :hover { - background: #0072E5; - } - } - - &:focus-visible { - outline: 4px solid rgba(0, 127, 255, 0.4); - } - - :where([data-mui-color-scheme='dark']) & { - background: #6B7A90; - - :hover { - background: #434D5B; - } - } -\`); - -const StyledSwitchThumb = styled('span')\` - display: block; - width: 16px; - height: 16px; - top: 4px; - left: 4px; - border-radius: 16px; - background-color: #fff; - position: relative; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - - &[data-state='checked'] { - left: 20px; - } -\`; - -function SwitchFromHook(props) { - const { getInputProps, getButtonProps, checked, disabled } = useSwitchRoot(props); - - const stateAttributes = { - 'data-state': checked ? 'checked' : 'unchecked', - 'data-disabled': disabled || undefined, - }; - - return ( - - - - - ); -} - -function App() { - return ( - } - > - } /> - - - ) -} -`; - -const startLine = [4, 85, 65]; -const endLine = [45, 87, 79]; -const scrollTo = [0, 1400, 1140]; - -const StyledSwitchRoot = styled('button')(` - font-size: 0; - position: relative; - display: inline-flex; - width: 40px; - height: 24px; - margin: 10px; - padding: 0; - border: none; - cursor: pointer; - border-radius: 16px; - background: #B0B8C4; - transition: all ease 120ms; - - :hover { - background: #9DA8B7; - } - - &[data-disabled] { - opacity: 0.4; - cursor: not-allowed; - } - - &[data-state="checked"] { - background: #007FFF; - :hover { - background: #0072E5; - } - } - - &:focus-visible { - outline: 4px solid rgba(0, 127, 255, 0.4); - } - - :where([data-mui-color-scheme='dark']) & { - background: #6B7A90; - - :hover { - background: #434D5B; - } - } -`); - -const StyledSwitchThumb = styled('span')` - display: block; - width: 16px; - height: 16px; - top: 4px; - left: 4px; - border-radius: 16px; - background-color: #fff; - position: relative; - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - - &[data-state='checked'] { - left: 20px; - } -`; - -function SwitchFromHook(props: UseSwitchRootParameters) { - const { getInputProps, getButtonProps, checked } = useSwitchRoot(props); - - const stateAttributes = { - 'data-state': checked ? 'checked' : 'unchecked', - 'data-disabled': props.disabled || undefined, - }; - - return ( - - - - - ); -} - -export default function BaseUICustomization() { - const [index, setIndex] = React.useState(0); - const infoRef = React.useRef(null); - function getSelectedProps(i: number) { - return { - selected: index === i, - sx: { '& svg': { opacity: index === i ? 1 : 0.5 } }, - }; - } - React.useEffect(() => { - if (infoRef.current) { - infoRef.current.scroll({ top: scrollTo[index], behavior: 'smooth' }); - } - }, [index]); - return ( -
- - - - Endless possibilities -
with a lightweight API - - } - description="With Base UI, you have the freedom to decide how much you want to customize a component's structure and style." - /> - - setIndex(0)}> - } - title="Applying custom CSS rules" - description="Your CSS, your rules. With Base UI there are no styles to override, so you can start with a clean slate." - /> - - setIndex(1)}> - } - title="Overriding subcomponents" - description="Default DOM structure doesn't suit your needs? Replace any node with the element you prefer using the render prop." - /> - - setIndex(2)}> - } - title="Creating custom components using hooks" - description="Base UI includes low-level hooks for adding functionality to your own fully custom-built components." - /> - - -
- - - ({ - overflow: 'auto', - flexGrow: 1, - height: '140px', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - backgroundSize: '100%, 72px', - background: `${(theme.vars || theme).palette.gradients.linearSubtle}`, - ...theme.applyDarkStyles({ - backgroundSize: '72px, 100%', - background: `${(theme.vars || theme).palette.gradients.linearSubtle}`, - }), - })} - > - }> - } /> - - - - - - - - - - - - - -
-
- ); -} diff --git a/docs/src/modules/home/BaseUIEnd.tsx b/docs/src/modules/home/BaseUIEnd.tsx deleted file mode 100644 index 9ccbb0b8c..000000000 --- a/docs/src/modules/home/BaseUIEnd.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import * as React from 'react'; -import { alpha } from '@mui/material/styles'; -import Grid from '@mui/material/Unstable_Grid2'; -import List from '@mui/material/List'; -import ListItem from '@mui/material/ListItem'; -import Typography from '@mui/material/Typography'; -import CompareIcon from '@mui/icons-material/Compare'; -import StyleRoundedIcon from '@mui/icons-material/StyleRounded'; -import { GlowingIconContainer } from '@mui/docs/InfoCard'; -import Section from 'docs/src/layouts/Section'; -import SectionHeadline from 'docs/src/components/typography/SectionHeadline'; -import GradientText from 'docs/src/components/typography/GradientText'; -import ROUTES from 'docs/src/route'; -import GetStartedButtons from './GetStartedButtons'; - -export default function BaseUIEnd() { - return ( -
- `linear-gradient(180deg, ${(theme.vars || theme).palette.primaryDark[900]} 50%, - ${alpha(theme.palette.primary[800], 0.2)} 100%), ${ - (theme.vars || theme).palette.primaryDark[900] - }`, - }} - > - - - - Join our global community - - } - description={ - - Base UI wouldn't be possible without our global community of contributors. Join - us today to get help when you need it, and lend a hand when you can. - - } - /> - - - - li': { alignItems: 'flex-start' } }}> - - } /> -
- - Base UI vs. Material UI - - - Base UI features many of the same components as Material UI, but without the - Material Design implementation. - -
-
- - } /> -
- - Does it come with styles? - - - Base UI is not packaged with any default theme or built-in style engine. - This makes it a great choice if you need complete control over how your app's - CSS is implemented. - -
-
-
-
-
-
- ); -} diff --git a/docs/src/modules/home/BaseUIHero.tsx b/docs/src/modules/home/BaseUIHero.tsx deleted file mode 100644 index e3f4b5dc6..000000000 --- a/docs/src/modules/home/BaseUIHero.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import * as React from 'react'; -import dynamic from 'next/dynamic'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; -import HeroContainer from 'docs/src/layouts/HeroContainer'; -import IconImage from 'docs/src/components/icon/IconImage'; -import GradientText from 'docs/src/components/typography/GradientText'; -import ROUTES from 'docs/src/route'; -import { Link } from '@mui/docs/Link'; -import GetStartedButtons from './GetStartedButtons'; - -const BaseUIThemesDemo = dynamic(() => import('./BaseUIThemesDemo'), { - ssr: false, - loading: function Loading() { - return ( - ({ - width: 338, - height: 557, - borderRadius: '12px', - bgcolor: 'grey.100', - ...theme.applyDarkStyles({ - bgcolor: 'primaryDark.800', - }), - }), - ]} - /> - ); - }, -}); - -export default function BaseUIHero() { - return ( - - ({ - color: 'primary.600', - display: 'flex', - alignItems: 'center', - gap: 1, - justifyContent: { xs: 'center', md: 'flex-start' }, - ...theme.applyDarkStyles({ - color: 'primary.300', - }), - })} - > - {' '} - MUI Core{' '} - - / - - - Base UI - - - - - A blank canvas for
- total flexibility -
- - Base UI gives you a set of foundational "headless" components that you can - build with using any styling solution you choose—no need to override any default style - engine or theme. - - -
- } - right={ - div': { margin: 'auto' }, - }} - > - - - } - /> - ); -} diff --git a/docs/src/modules/home/BaseUISummary.tsx b/docs/src/modules/home/BaseUISummary.tsx deleted file mode 100644 index 92e193e91..000000000 --- a/docs/src/modules/home/BaseUISummary.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; -import Grid from '@mui/material/Grid'; -import StyleRoundedIcon from '@mui/icons-material/StyleRounded'; -import AccessibilityNewRounded from '@mui/icons-material/AccessibilityNewRounded'; -import PhishingRoundedIcon from '@mui/icons-material/PhishingRounded'; -import Section from 'docs/src/layouts/Section'; -import SectionHeadline from 'docs/src/components/typography/SectionHeadline'; -import GradientText from 'docs/src/components/typography/GradientText'; -import { InfoCard } from '@mui/docs/InfoCard'; - -const content = [ - { - icon: , - title: 'Completely unstyled', - description: 'Nothing to override—start fresh with any style solution or design system.', - link: '/base-ui/getting-started/', - }, - { - icon: , - title: 'Low-level hooks', - description: - "When it's time to go fully custom, Base UI has you covered with low-level hooks for fine-grained flexibility in component design.", - link: '/base-ui/getting-started/usage/#components-vs-hooks', - }, - { - icon: , - title: 'Accessibility', - description: - 'We take accessibility seriously. The Base UI docs are loaded with guidelines and best practices.', - link: '/base-ui/getting-started/accessibility/', - }, -]; - -export default function BaseUISummary() { - return ( -
- - Essential building blocks -
for sleek and accessible UIs - - } - description="Base UI abstracts away the more frustrating aspects of UI development—like accessibility, cross-browser compatibility, and event handling—so you can skip ahead to design implementation." - /> - - - {content.map(({ icon, title, description, link }) => ( - - - - ))} - - - - Alternative to libraries such as: - - - ({ - background: 'url(/static/branding/base-ui/radix.svg)', - ...theme.applyDarkStyles({ - background: 'url(/static/branding/base-ui/radix-dark.svg)', - }), - })} - width={77} - height={37} - /> - - ({ - background: 'url(/static/branding/base-ui/react-aria.svg)', - ...theme.applyDarkStyles({ - background: 'url(/static/branding/base-ui/react-aria-dark.svg)', - }), - })} - width={113} - height={37} - /> - - ({ - background: 'url(/static/branding/base-ui/headless-ui.svg)', - ...theme.applyDarkStyles({ - background: 'url(/static/branding/base-ui/headless-ui-dark.svg)', - }), - })} - width={116} - height={37} - /> - -
- ); -} diff --git a/docs/src/modules/home/BaseUITestimonial.tsx b/docs/src/modules/home/BaseUITestimonial.tsx deleted file mode 100644 index c876ad162..000000000 --- a/docs/src/modules/home/BaseUITestimonial.tsx +++ /dev/null @@ -1,118 +0,0 @@ -/* eslint-disable material-ui/straight-quotes */ -import * as React from 'react'; -import { alpha } from '@mui/material/styles'; -import Avatar from '@mui/material/Avatar'; -import Box from '@mui/material/Box'; -import Grid from '@mui/material/Unstable_Grid2'; -import Divider from '@mui/material/Divider'; -import Typography from '@mui/material/Typography'; -import ChevronRightRoundedIcon from '@mui/icons-material/ChevronRightRounded'; -import { Link } from '@mui/docs/Link'; -import Section from 'docs/src/layouts/Section'; - -export default function BaseUITestimonial() { - return ( -
- - - - - Nhost's dashboard - - - - - Nhost's new dashboard, powered by Base UI    - - / - -    - - View the blog post - - - - - - “After considering various options, we decided to migrate our custom components to - Material UI, and that's when we discovered Base UI. As a set of headless - components, it offered exactly what we needed to implement our design system while - maintaining full customizability. The focus on accessibility was also a big plus, as it - ensured that our dashboard was usable by everyone. Low-level component hooks were just - the icing on the cake.†- - - - ({ - p: 0.5, - bgcolor: 'primary.50', - border: '1px solid', - borderColor: 'primary.200', - borderRadius: 99, - ...theme.applyDarkStyles({ - borderColor: 'primary.800', - bgcolor: alpha(theme.palette.primary[900], 0.5), - }), - })} - > - - - - - Szilárd Dóró - - - Senior Software Engineer - - - {/** icons from https://docs.nhost.io/introduction */} - ({ - width: '80px', - alignSelf: 'center', - ...theme.applyDarkStyles({ - content: 'url(/static/branding/base-ui/nhost-dark.svg)', - }), - })} - /> - - - -
- ); -} diff --git a/docs/src/modules/home/BaseUIThemesDemo.tsx b/docs/src/modules/home/BaseUIThemesDemo.tsx deleted file mode 100644 index 600568bea..000000000 --- a/docs/src/modules/home/BaseUIThemesDemo.tsx +++ /dev/null @@ -1,963 +0,0 @@ -import * as React from 'react'; -import clsx from 'clsx'; - -// Base UI imports -import { Badge, badgeClasses } from '@base_ui/react/Badge'; -import { Input, InputProps } from '@base_ui/react/Input'; -import { Dropdown } from '@base_ui/react/Dropdown'; -import { Menu } from '@base_ui/react/Menu'; -import { MenuItem, menuItemClasses } from '@base_ui/react/MenuItem'; -import { MenuButton } from '@base_ui/react/MenuButton'; -import { Modal, modalClasses } from '@base_ui/react/Modal'; -import { Option } from '@base_ui/react/Option'; -import { Select } from '@base_ui/react/Select'; -import { Slider, sliderClasses } from '@base_ui/react/Slider'; -import { Snackbar } from '@base_ui/react/Snackbar'; -import { SnackbarCloseReason } from '@base_ui/react/useSnackbar'; -import * as Tabs from '@base_ui/react/Tabs'; - -// Other packages -import { css, styled, keyframes } from '@mui/system'; - -import Box from '@mui/material/Box'; -import Fade from '@mui/material/Fade'; - -import ChevronRightRoundedIcon from '@mui/icons-material/ChevronRightRounded'; -import AutoAwesomeRounded from '@mui/icons-material/AutoAwesomeRounded'; -import SmartButtonRounded from '@mui/icons-material/SmartButtonRounded'; -import InputRounded from '@mui/icons-material/InputRounded'; -import PlaylistAddCheckRounded from '@mui/icons-material/PlaylistAddCheckRounded'; -import ToggleOnRoundedIcon from '@mui/icons-material/ToggleOnRounded'; -import LinearScaleRounded from '@mui/icons-material/LinearScaleRounded'; -import CircleNotificationsRounded from '@mui/icons-material/CircleNotificationsRounded'; -import ReportGmailerrorredRounded from '@mui/icons-material/ReportGmailerrorredRounded'; -import MenuOpenRounded from '@mui/icons-material/MenuOpenRounded'; -import FirstPageRounded from '@mui/icons-material/FirstPageRounded'; -import TabRounded from '@mui/icons-material/TabRounded'; -import CheckCircleRoundedIcon from '@mui/icons-material/CheckCircleRounded'; -import InterestsRoundedIcon from '@mui/icons-material/InterestsRounded'; -import RadioRoundedIcon from '@mui/icons-material/RadioRounded'; - -import ROUTES from 'docs/src/route'; -import { Link } from '@mui/docs/Link'; -import heroVariables from './heroVariables'; - -// DS imports -import Switch from './themed-controls/Switch'; - -const Panel = styled('div')({ - width: 340, - backgroundColor: 'var(--muidocs-palette-background-paper)', - borderRadius: 'min(var(--border-radius) * 2, 32px)', - border: 'var(--border-width) solid', - borderColor: 'var(--border-color)', - boxShadow: 'var(--Panel-shadow)', - overflow: 'hidden', -}); - -const StyledLabel = styled('label')({ - fontSize: 12, - fontWeight: 600, - color: 'var(--muidocs-palette-text-secondary)', - margin: '0.25rem 0', -}); - -const StyledLabelCategory = styled('label')({ - fontSize: 10, - fontWeight: 700, - textTransform: 'uppercase', - letterSpacing: '.08rem', - color: 'var(--muidocs-palette-text-secondary)', - margin: '0.5rem 0.4rem', -}); - -const StyledParagraph = styled('p')({ - margin: 0, - fontSize: 14, - fontWeight: 600, - color: 'text.primary', -}); - -const StyledSwitchLabel = styled('label')({ - margin: 0, - fontSize: 14, - fontWeight: 600, - color: 'text.primary', -}); - -const StyledTabsList = styled('div')({ - display: 'flex', - borderBottom: 'var(--border-width) solid var(--border-color)', - background: 'var(--TabsList-background)', - padding: '4px', -}); - -const StyledTab = styled('button')({ - display: 'flex', - alignItems: 'center', - cursor: 'pointer', - justifyContent: 'center', - gap: 6, - position: 'relative', - flex: 1, - maxHeight: 42, - padding: '0.75rem 0.875rem', - background: 'transparent', - border: 'none', - borderRadius: 'var(--Tab-radius)', - fontSize: 14, - fontWeight: 600, - color: 'var(--muidocs-palette-text-secondary)', - userSelect: 'none', - transition: 'all 100ms ease', - - '&:hover:not(.base--selected)': { - background: 'var(--Tab-hoverBackground)', - }, - - '&:focus-visible': { - outline: '3px solid var(--muidocs-palette-primary-300)', - outlineOffset: -4, - }, - - '&.base--selected': { - color: 'var(--color-primary)', - - '&::after': { - content: '""', - display: 'block', - height: 'max(2px, var(--border-width, 0px))', - left: 2, - right: 2, - bottom: 'var(--Tab-activeSelector)', - position: 'absolute', - backgroundColor: 'var(--color-primary)', - }, - }, -}); - -const StyledSelectButton = styled('button')({ - display: 'flex', - width: '100%', - padding: '8px 12px', - cursor: 'pointer', - backgroundColor: 'var(--Button-bg)', - border: 'var(--border-style)', - borderColor: 'var(--Button-border)', - borderRadius: 'var(--border-radius)', - boxShadow: 'var(--Button-shadow)', - fontFamily: 'var(--muidocs-font-family)', - fontSize: '0.875rem', - fontWeight: 500, - color: 'var(--Button-color)', - lineHeight: 21 / 14, - userSelect: 'none', - transition: 'all 100ms ease', - - '&:hover': { - backgroundColor: 'var(--Button-bg-hover)', - borderColor: 'var(--Button-border-hover)', - boxShadow: 'none', - }, - - '&:focus-visible': { - outline: '3px solid var(--muidocs-palette-primary-300)', - }, - - '& svg:last-child': { - marginLeft: 'auto', - }, - - '& svg:first-child': { - marginRight: 'var(--Select-spacing)', - }, -}); - -const StyledLinkButton = styled(Link)({ - display: 'flex', - justifyContent: 'center', - width: '100%', - padding: '8px 12px', - cursor: 'pointer', - backgroundColor: 'var(--LinkButton-bg)', - border: 'var(--border-style)', - borderColor: 'var(--LinkButton-border)', - borderRadius: 'var(--border-radius)', - boxShadow: 'var(--LinkButton-shadow)', - fontFamily: 'var(--muidocs-font-family)', - fontSize: '0.875rem', - fontWeight: 600, - color: 'var(--LinkButton-color) !important', - lineHeight: 21 / 14, - userSelect: 'none', - transition: 'all 100ms ease', - - '&:hover': { - backgroundColor: 'var(--LinkButton-bg-hover)', - borderColor: 'var(--LinkButton-border-hover)', - boxShadow: 'none', - }, - - '&:focus-visible': { - outline: '3px solid var(--muidocs-palette-primary-300)', - }, -}); - -const StyledButton = styled('button')({ - display: 'flex', - justifyContent: 'center', - width: '100%', - padding: '8px 12px', - cursor: 'pointer', - backgroundColor: 'var(--Button-bg)', - border: 'var(--border-style)', - borderColor: 'var(--Button-border)', - borderRadius: 'var(--border-radius)', - boxShadow: 'var(--Button-shadow)', - fontFamily: 'var(--muidocs-font-family)', - fontSize: '0.875rem', - fontWeight: 600, - color: 'var(--Button-color)', - lineHeight: 21 / 14, - userSelect: 'none', - transition: 'all 100ms ease', - - '&:hover': { - backgroundColor: 'var(--Button-bg-hover)', - borderColor: 'var(--Button-border-hover)', - boxShadow: 'none', - }, - - '&:focus-visible': { - outline: '3px solid var(--muidocs-palette-primary-300)', - }, -}); - -const Popup = styled('div')({ - zIndex: 1, -}); - -const MenuRoot = styled('div')({ - zIndex: 1, -}); - -const StyledListbox = styled('ul')({ - '--_listbox-radius': 'min(var(--border-radius), 12px)', - width: 'calc(320px - 1rem)', - maxHeight: 'calc(320px - 1rem)', - overflow: 'auto', - display: 'flex', - flexDirection: 'column', - border: 'var(--border-width) solid', - borderColor: 'var(--Select-ringColor, var(--border-color))', - borderRadius: 'var(--_listbox-radius)', - backgroundColor: 'var(--muidocs-palette-background-default)', - boxShadow: 'var(--Panel-shadow)', - padding: 'calc(var(--Select-spacing) * 0.5)', - gap: 'calc(var(--Select-spacing) * 0.2)', - fontFamily: 'var(--muidocs-font-family)', - fontSize: '0.875rem', - lineHeight: 21 / 14, - margin: '6px 0', - '& li': { - display: 'flex', - borderRadius: '12px', - '&[role="none"]': { - flexDirection: 'column', - padding: 0, - '& > ul': { - padding: 0, - }, - }, - '&[role="presentation"]': { - fontSize: '0.625rem', - color: 'var(--muidocs-palette-text-tertiary)', - fontWeight: 'bold', - textTransform: 'uppercase', - letterSpacing: '1px', - alignItems: 'center', - minHeight: 0, - paddingBottom: '0.5rem', - }, - '&[role="option"]': { - boxSizing: 'border-box', - border: 'var(--border-width) solid transparent', - padding: 'calc(var(--Select-spacing) * 0.5)', - fontSize: '0.875rem', - fontWeight: 500, - color: 'var(--muidocs-palette-text-secondary)', - alignItems: 'center', - cursor: 'pointer', - borderRadius: 'calc(var(--_listbox-radius) - var(--Select-spacing) * 0.05)', - - '&:hover, &.base-Option-highlighted': { - backgroundColor: 'var(--Option-hoverBackground, var(--muidocs-palette-grey-50))', - color: 'var(--muidocs-palette-text-primary)', - }, - - '&.base--selected': { - backgroundColor: 'var(--Option-selectedBackground, var(--muidocs-palette-grey-50))', - borderColor: 'var(--border-color)', - color: 'var(--muidocs-palette-text-primary)', - }, - - '& svg:first-child': { - color: 'var(--muidocs-palette-primary-main)', - marginRight: 'var(--Select-spacing)', - fontSize: '1.125rem', - }, - }, - }, -}); - -const marks = [ - { - value: 0, - label: '0°C', - }, - { - value: 25, - label: '25°C', - }, - { - value: 50, - label: '50°C', - }, - { - value: 75, - label: '75°C', - }, - { - value: 100, - label: '100°C', - }, -]; - -function valuetext(value: number) { - return `${value}°C`; -} - -const StyledSlider = styled(Slider)(` - --_margin: 4px; - color: var(--color-primary); - height: 8px; - width: 100%; - max-width: calc(100% - var(--_margin)); - padding: 16px 0; - margin: 0 var(--_margin); - display: inline-block; - position: relative; - cursor: pointer; - touch-action: none; - -webkit-tap-highlight-color: transparent; - - &:hover { - opacity: 1; - } - - & .${sliderClasses.rail} { - display: block; - position: absolute; - width: 100%; - height: 4px; - border-radius: var(--border-radius); - background-color: var(--color-primary-light) - } - - & .${sliderClasses.track} { - display: block; - position: absolute; - height: 4px; - border-radius: var(--border-radius); - background-color: currentColor; - } - - & .${sliderClasses.thumb} { - position: absolute; - width: 16px; - height: 16px; - margin-left: -6px; - margin-top: -6px; - box-sizing: border-box; - border-radius: var(--border-radius); - outline: 0; - background-color: var(--color-primary); - transition-property: box-shadow, transform; - transition-timing-function: ease; - transition-duration: 120ms; - transform-origin: center; - - :hover, - &.${sliderClasses.focusVisible} { - box-shadow: 0 0 0 6px var(--Slider-thumb-focus); - } - - &.${sliderClasses.active} { - box-shadow: 0 0 0 8px var(--Slider-thumb-focus); - outline: none; - transform: scale(1.2); - } - } - - & .${sliderClasses.mark} { - position: absolute; - width: 8px; - height: 8px; - border-radius: var(--border-radius); - background-color: var(--color-primary-light); - top: 44%; - transform: translateX(-50%); - } - - & .${sliderClasses.markActive} { - background-color: var(--color-primary); - } - - & .${sliderClasses.markLabel} { - font-weight: 600; - font-size: 10px; - position: absolute; - top: 24px; - transform: translateX(-50%); - margin-top: 8px; - &[data-index="0"] { - transform: translateX(calc(-1 * var(--_margin))); - } - &[data-index="4"] { - transform: translate(-100%); - } - } -`); - -const Backdrop = React.forwardRef( - (props, ref) => { - const { open, className, ...other } = props; - return
; - }, -); - -const StyledModal = styled(Modal)` - position: fixed; - z-index: 1300; - inset: 0; - display: flex; - align-items: center; - justify-content: center; - - &.${modalClasses.hidden} { - visibility: hidden; - } -`; - -const StyledBackdrop = styled(Backdrop)` - z-index: -1; - position: fixed; - inset: 0; - background-color: rgb(0 0 0 / 0.5); - -webkit-tap-highlight-color: transparent; - opacity: ${({ open }) => (open ? 1 : 0)}; - transition: opacity 0.3s ease; -`; - -const AnimatedElement = React.forwardRef(function AnimatedElement( - props: { - in?: boolean; - onEnter?: () => void; - onExited?: () => void; - children: React.ReactNode; - }, - ref: React.ForwardedRef, -) { - const { in: inProp, onEnter = () => {}, onExited = () => {}, ...other } = props; - - React.useEffect(() => { - if (inProp) { - onEnter(); - } - }, [inProp, onEnter]); - - const handleTransitionEnd = React.useCallback(() => { - if (!inProp) { - onExited(); - } - }, [inProp, onExited]); - - return
; -}); - -const Dialog = styled(AnimatedElement)({ - backgroundColor: 'var(--muidocs-palette-background-default)', - borderRadius: 'min(var(--border-radius) * 2, 32px)', - border: 'var(--border-width) solid', - borderColor: 'var(--border-color)', - overflow: 'hidden', - padding: '1.5rem', - textAlign: 'center', - outline: 'none', - maxWidth: 500, - width: 'auto', - transform: 'translateY(8px)', - opacity: 0, - transition: 'opacity 0.2s ease-out, transform 0.2s ease-out', - '&[data-open="true"]': { - transform: 'translateY(0)', - opacity: 1, - boxShadow: 'var(--Panel-shadow)', - transition: 'opacity 0.3s ease, transform 0.3s ease', - }, -}); - -const StyledBadge = styled(Badge)( - ({ theme }) => ` - box-sizing: border-box; - list-style: none; - font-family: 'IBM Plex Sans', sans-serif; - position: relative; - display: inline-block; - - & .${badgeClasses.badge} { - --_scale: 1.5em; - z-index: auto; - position: absolute; - top: 0; - right: 0; - font-size: 0.75rem; - border-radius: var(--_scale); - line-height: var(--_scale); - width: var(--_scale); - height: var(--_scale); - color: #fff; - font-weight: 600; - white-space: nowrap; - text-align: center; - background: var(--muidocs-palette-error-main); - outline: 3px solid ${ - theme.palette.mode === 'dark' ? 'var(--muidocs-palette-primaryDark-900)' : '#FFF' - }; - transform: translate(50%, -50%); - transform-origin: 100% 0; - } - `, -); - -const StyledMenuItem = styled(MenuItem)( - ({ theme }) => ` - list-style: none; - padding: 6px 8px; - margin: 4px 0; - border-radius: 8px; - cursor: default; - user-select: none; - border-radius: min(var(--border-radius), 8px); - font-weight: 500; - - &:last-of-type { - border-bottom: none; - } - - - &.${menuItemClasses.focusVisible} { - outline: 3px solid var(--muidocs-palette-primary-300); - background-color: ${ - theme.palette.mode === 'dark' - ? 'var(--muidocs-palette-grey-800)' - : 'var(--muidocs-palette-grey-50)' - }; - } - - &:hover:not(.${menuItemClasses.disabled}) { - background-color: ${ - theme.palette.mode === 'dark' - ? 'var(--muidocs-palette-primaryDark-700)' - : 'var(--muidocs-palette-grey-50)' - }; - color: ${ - theme.palette.mode === 'dark' - ? 'var(--muidocs-palette-grey-300)' - : 'var(--muidocs-palette-grey-900)' - }; - } - `, -); - -const StyledMenuListbox = styled('ul')(` - font-family: 'IBM Plex Sans', sans-serif; - font-size: 0.875rem; - box-sizing: border-box; - padding: 6px; - margin: 12px 0; - min-width: 230px; - border-radius: 12px; - overflow: auto; - outline: 0; - background-color: var(--muidocs-palette-background-default); - border-radius: min(var(--border-radius), 16px); - border: var(--border-width) solid; - border-color: var(--border-color); - box-shadow: var(--Panel-shadow); - `); - -const StyledMenuButton = styled(MenuButton)({ - padding: 0, - cursor: 'pointer', - border: 'none', - background: 'transparent', - borderRadius: 'var(--avatar-radius)', - transition: 'all 100ms ease', - - '&:focus-visible': { - outline: '3px solid var(--muidocs-palette-primary-300)', - }, -}); - -const snackbarInRight = keyframes` - from { - transform: translateX(100%); - } - - to { - transform: translateX(0); - } -`; - -const StyledSnackbar = styled(Snackbar)(css` - background-color: var(--muidocs-palette-background-default); - border-radius: min(var(--border-radius), 32px); - border: var(--border-width) solid; - border-color: var(--border-color); - box-shadow: var(--Panel-shadow); - position: fixed; - z-index: 1200; - display: flex; - justify-content: start; - align-items: center; - gap: 1rem; - right: 16px; - bottom: 16px; - left: auto; - max-width: 560px; - min-width: 300px; - padding: 0.75rem 1rem; - animation: ${snackbarInRight} 200ms; - transition: transform 0.2s ease-out; - - & svg { - color: var(--muidocs-palette-success-600); - } - - & [data-title] { - font-size: 0.875rem; - font-weight: 600; - } - - & [data-description] { - color: var(--muidocs-palette-text-secondary); - font-size: 0.75rem; - font-weight: 500; - } -`); - -const StyledInputElement = styled('input')({ - marginTop: '8px', - width: '100%', - maxWidth: '100%', - border: 'var(--border-width, 1px) solid', - borderColor: 'var(--Select-ringColor, var(--border-color))', - borderRadius: 'var(--border-radius)', - padding: '8px 12px', - backgroundColor: 'var(--Select-background)', - display: 'flex', - color: 'var(--muidocs-palette-text-secondary)', - alignItems: 'center', - fontSize: '0.875rem', - fontFamily: 'var(--muidocs-font-family)', - lineHeight: 21 / 14, - boxShadow: 'var(--formControl-shadow, 0px 2px 2px rgba(205, 210, 215, 0.3))', - - '&:hover': { - borderColor: 'var(--Input-border)', - }, - '&:focus': { - borderColor: 'var(--Input-border)', - boxShadow: 'var(--Input-focus-border)', - }, - '&:focus-visible': { - // Firefox - outline: 0, - }, -}); - -// Input -const CustomInput = React.forwardRef(function CustomInput( - props: InputProps, - ref: React.ForwardedRef, -) { - return ; -}); - -export default function BaseUIThemesDemo() { - const [design, setDesign] = React.useState(0); - // Modal - const [openModal, setOpenModal] = React.useState(false); - const handleOpenModal = () => setOpenModal(true); - const handleCloseModal = () => setOpenModal(false); - // Snackbar - const [openSnackbar, setOpenSnackbar] = React.useState(false); - - const handleCloseSnackbar = (_: any, reason: SnackbarCloseReason) => { - if (reason === 'clickaway') { - return; - } - - setOpenSnackbar(false); - }; - - const handleClickSnackbar = () => { - setOpenSnackbar(true); - }; - // Menu - const [isOpenMenu, setOpenMenu] = React.useState(false); - - return ( - - - setDesign(newValue as number)}> - }> - } value={0}> - - Sleek - - } value={1}> - - Retro - - } value={2}> - - Playful - - - - {/* Notification component */} - - Notifications - { - setOpenMenu(open); - }} - > - - - - - - - Notification menu - - Request a component - Get started - View all - - - - {/* Select component */} - - Select a component - - - {/* Slider component */} - - Choose a temperature - - - {/* Switch component */} - - - Make it your own - - - - Use every component - - - - {/* Modal and Snackbar component */} - button': { flex: 1 }, - }} - > - - View modal - - - - - Oh, hey, this is a Base UI modal. - - - Base UI modals manages modal stacking when more than one is needed, creates a - backdrop to disable interaction with the rest of the app, and a lot more. - - Close - - - - View snackbar - - - -
-
This is a Base UI snackbar.
-
Free to design as you want it.
-
-
-
- {/* Button "View all components" component */} - button': { flex: 1 } }}> - - View all components - - -
-
- ); -} diff --git a/docs/src/modules/home/GetStartedButtons.tsx b/docs/src/modules/home/GetStartedButtons.tsx deleted file mode 100644 index 0639b8ce5..000000000 --- a/docs/src/modules/home/GetStartedButtons.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import * as React from 'react'; -import copy from 'clipboard-copy'; -import Box, { BoxProps } from '@mui/material/Box'; -import Button from '@mui/material/Button'; -import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded'; -import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'; -import CheckRounded from '@mui/icons-material/CheckRounded'; -import { Link } from '@mui/docs/Link'; -import NpmCopyButton from 'docs/src/components/action/NpmCopyButton'; - -interface GetStartedButtonsProps extends BoxProps { - primaryLabel?: string; - primaryUrl: string; - primaryUrlTarget?: string; - secondaryLabel?: string; - secondaryUrl?: string; - secondaryUrlTarget?: string; - installation?: string; - altInstallation?: string; -} - -export default function GetStartedButtons(props: GetStartedButtonsProps) { - const [copied, setCopied] = React.useState(false); - const { - primaryLabel = 'Get started', - primaryUrl, - primaryUrlTarget = '_self', - secondaryLabel, - secondaryUrl, - secondaryUrlTarget = '_self', - installation, - altInstallation, - ...other - } = props; - - const handleCopy = () => { - setCopied(true); - copy(installation!).then(() => { - setTimeout(() => setCopied(false), 2000); - }); - }; - - return ( - - *': { - minWidth: { xs: '100%', md: '0%' }, - }, - ...other.sx, - }} - > - - {installation ? ( - - ) : null} - {secondaryLabel ? ( - - ) : null} - - {altInstallation && } - - ); -} diff --git a/docs/src/modules/home/componentDemos/BaseButtonDemo.tsx b/docs/src/modules/home/componentDemos/BaseButtonDemo.tsx deleted file mode 100644 index beeb27e27..000000000 --- a/docs/src/modules/home/componentDemos/BaseButtonDemo.tsx +++ /dev/null @@ -1,139 +0,0 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import { Button } from '@base_ui/react/Button'; -import { styled, GlobalStyles } from '@mui/system'; - -const buttonStyles = ` - font-family: 'IBM Plex Sans', sans-serif; - font-weight: 600; - font-size: 0.875rem; - line-height: 1.5; - background: var(--primary); - padding: 6px 12px; - border-radius: 8px; - color: white; - transition: all 150ms ease; - cursor: pointer; - border: none; - box-shadow: var(--solid-btn-shadow); - user-select: none; - - &:hover { - background: var(--primary-hover); - box-shadow: none; - } - - &.base--active { - background: var(--primary-active); - } - - &.base--focusVisible { - outline: 3px solid var(--focus-ring); - outline-offset: 2px; - } - - &.base--disabled { - opacity: 0.5; - cursor: not-allowed; - - &:hover { - background: var(--primary); - box-shadow: var(--solid-btn-shadow); - } - } -`; - -const StyledButton = styled('button')(buttonStyles); - -const buttonStylesTailwind = `cursor-pointer select-none rounded-[8px] border-none bg-[--primary] p-[6px_12px] text-[0.875rem] leading-[1.5] font-bold text-white [font-family:IBM_Plex_sans] hover:bg-[--primary-hover] ui-active:bg-[--primary-active] ui-disabled:cursor-not-allowed ui-disabled:opacity-50 ui-disabled:hover:bg-[--primary] ui-disabled:[box-shadow:var(--solid-btn-shadow)] ui-focus-visible:[outline:3px_solid_var(--focus-ring)] outline-offset-2 transition [box-shadow:var(--solid-btn-shadow)] hover:[box-shadow:none]`; - -export default function BaseButtonDemo({ - styling, -}: { - styling?: 'system' | 'tailwindcss' | 'css'; -}) { - return ( - - {styling === 'system' && ( - - - - - )} - {styling === 'css' && ( - - - - - - )} - {styling === 'tailwindcss' && ( - - - - - )} - - ); -} -BaseButtonDemo.getCode = (styling?: 'system' | 'tailwindcss' | 'css') => { - if (styling === 'system') { - return `import { Button } from '@base_ui/react/Button'; -import { styled } from '@mui/system'; - -const StyledButton = styled('button')\`${buttonStyles}\`; - - - -`; - } - if (styling === 'css') { - return `import { Button } from '@base_ui/react/Button'; -import './styles.css'; - - - - -/* styles.css */ -.base-Button-root {${buttonStyles}} -`; - } - if (styling === 'tailwindcss') { - return `import { Button } from '@base_ui/react/Button'; - - -`; - } - return ``; -}; diff --git a/docs/src/modules/home/componentDemos/BaseInputDemo.tsx b/docs/src/modules/home/componentDemos/BaseInputDemo.tsx deleted file mode 100644 index 708c7f8e7..000000000 --- a/docs/src/modules/home/componentDemos/BaseInputDemo.tsx +++ /dev/null @@ -1,309 +0,0 @@ -import * as React from 'react'; -import clsx from 'clsx'; -import { unstable_useId } from '@mui/material/utils'; -import Box from '@mui/material/Box'; -import { Input } from '@base_ui/react/Input'; -import { styled, GlobalStyles } from '@mui/system'; - -const fieldStyles = ` - --TextInput-height: 64px; - --TextInput-paddingTop: 2rem; - --TextInput-labelLineHeight: 20px; - --TextInput-labelScale: 0.75; - width: 320px; - padding: 0px 0.75rem; - display: inline-flex; - position: relative; - height: var(--TextInput-height); - background: var(--muidocs-palette-background-default); - border: 1px solid; - border-color: var(--muidocs-palette-grey-300); - border-radius: var(--muidocs-shape-borderRadius); - outline-color: transparent; - box-shadow: var(--shadow); - - &:hover { - border-color: var(--muidocs-palette-grey-400); - } - - &:focus-within { - border-color: var(--primary); - outline: 3px solid; - outline-color: var(--focus-ring); - & label { - color: var(--primary) !important; - } - } - & label { - line-height: var(--TextInput-labelLineHeight); - position: absolute; - display: flex; - align-items: center; - top: 50%; - left: 0.75rem; - overflow: hidden; - text-align: start; - text-overflow: ellipsis; - font-weight: 500; - color: var(--muidocs-palette-grey-600); - white-space: nowrap; - pointer-events: none; - transform-origin: 0 0; - transform: translateY(-50%); - transition: transform 0.1s ease-out; - } - - :where([data-mui-color-scheme='dark']) & { - border-color: var(--muidocs-palette-grey-800); - box-shadow: var(--shadow); - - &:hover { - border-color: var(--muidocs-palette-grey-700); - } - - &:focus-within { - border-color: var(--primary-hover); - outline-color: var(--focus-ring); - } - } -`; - -const Field = styled('div')(fieldStyles); - -const inputStyles = ` - border: none; - padding: var(--TextInput-paddingTop) 0 0.75rem; - height: 100%; - font-size: 1rem; - background: unset; - flex: 1; - &:focus { - outline: none; - } - &:not(:focus)::placeholder { - color: transparent; - } - &:not(:placeholder-shown) ~ label, - &:focus ~ label { - transform: translateY(-100%) scale(var(--TextInput-labelScale)); - font-weight: 600; - } -`; -const StyledInput = styled('input')(inputStyles); - -const CSS = `.base-Input-root {${fieldStyles}} - -.base-Input-input {${inputStyles}}`; - -const StyledFloatingLabelInput = React.forwardRef( - function StyledFloatingLabelInput(props, ref) { - const id = unstable_useId(props.id); - return ( - - - - - ); - }, -); - -const FloatingLabelInput = React.forwardRef( - function FloatingLabelInput(props, ref) { - const id = unstable_useId(props.id); - return ( - - - - - ); - }, -); - -const TailwindFloatingLabelInput = React.forwardRef< - HTMLInputElement, - JSX.IntrinsicElements['input'] - // @ts-ignore ->(function TailwindFloatingLabelInput({ ownerState, ...props }, ref) { - const id = unstable_useId(props.id); - return ( - - - - - ); -}); - -export default function BaseInputDemo({ styling }: { styling?: 'system' | 'tailwindcss' | 'css' }) { - return ( - - {styling === 'system' && ( - - )} - {styling === 'css' && ( - - - - - )} - {styling === 'tailwindcss' && ( - - )} - - ); -} - -BaseInputDemo.getCode = (styling?: 'system' | 'tailwindcss' | 'css') => { - if (styling === 'system') { - return `import { Input } from '@base_ui/react/Input'; - -const Field = styled('div')\`${fieldStyles}\`; -const StyledInput = styled('input')\`${inputStyles}/\`; - -const FloatingLabelInput = React.forwardRef< - HTMLInputElement, JSX.IntrinsicElements['input'] ->( - function FloatingLabelInput(props, ref) { - const id = unstable_useId(props.id); - return ( - - - - - ); - }, -); - - -`; - } - if (styling === 'css') { - return `import { Input } from '@base_ui/react/Input'; -import './styles.css'; - -const FloatingLabelInput = React.forwardRef< - HTMLInputElement, JSX.IntrinsicElements['input'] ->( - function FloatingLabelInput(props, ref) { - const id = unstable_useId(props.id); - return ( - - - - - ); - }, -); - - - -/* styles.css */ -${CSS} -`; - } - if (styling === 'tailwindcss') { - return `import { Input } from '@base_ui/react/Input'; - -const FloatingLabelInput = React.forwardRef( - function FloatingLabelInput({ ownerState, id, ...props }, ref) { - const id = id || 'floating-label'; - return ( - - - - - ); -}); - - -`; - } - return ''; -}; diff --git a/docs/src/modules/home/componentDemos/BaseMenuDemo.tsx b/docs/src/modules/home/componentDemos/BaseMenuDemo.tsx deleted file mode 100644 index c1ac55fed..000000000 --- a/docs/src/modules/home/componentDemos/BaseMenuDemo.tsx +++ /dev/null @@ -1,339 +0,0 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import { Dropdown } from '@base_ui/react/Dropdown'; -import { Menu } from '@base_ui/react/Menu'; -import { MenuButton } from '@base_ui/react/MenuButton'; -import { MenuItem } from '@base_ui/react/MenuItem'; -import { styled, GlobalStyles } from '@mui/system'; -import Person from '@mui/icons-material/Person'; - -const buttonStyles = ` - display: inline-flex; - align-items: center; - gap: 0.5rem; - font-family: 'IBM Plex Sans', sans-serif; - font-size: 0.875rem; - font-weight: 600; - box-sizing: border-box; - border-radius: 8px; - padding: 8px 12px 8px 6px; - line-height: 1.5; - background: var(--muidocs-palette-background-default); - box-shadow: var(--outlined-btn-shadow); - border: 1px solid; - border-color: var(--muidocs-palette-grey-200); - color: var(--muidocs-palette-text-primary); - transition: all 120ms ease; - outline-color: transparent; - user-select: none; - - & svg { - color: var(--primary); - } - - &:hover { - background: var(--muidocs-palette-grey-50); - border-color: var(--muidocs-palette-grey-300); - box-shadow: none; - } - - &:focus-visible { - outline: 4px solid var(--focus-ring); - border-color: var(--primary); - } - - :where([data-mui-color-scheme='dark']) & { - border-color: var(--muidocs-palette-primaryDark-700); - - &:hover { - background: var(--muidocs-palette-primaryDark-800); - border-color: var(--muidocs-palette-primaryDark-500); - } - } -`; - -const StyledMenuButton = styled('button')(buttonStyles); - -const popperStyles = ` - z-index: 1000; -`; -const StyledPopup = styled('div')(popperStyles); - -const listboxStyles = ` - margin: 8px 0; - padding: 4px; - display: flex; - flex-direction: column; - border-radius: 12px; - border: 1px solid; - border-color: var(--muidocs-palette-grey-200); - background: var(--muidocs-palette-background-default); - box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.2); - - :where([data-mui-color-scheme='dark']) & { - border-color: var(--muidocs-palette-primaryDark-700); - box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.8); - } -`; -const StyledListbox = styled('ul')(listboxStyles); - -const menuItemStyles = ` - display: flex; - align-items: center; - padding: 6px 8px; - min-height: 24px; - font-weight: 500; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 6px; - border: 1px solid transparent; - gap: 4px; - - &:hover, - &.base--focusVisible { - cursor: default; - outline: none; - color: var(--muidocs-palette-text-primary); - background: var(--muidocs-palette-grey-50); - border-color: var(--muidocs-palette-grey-100); - } - - :where([data-mui-color-scheme='dark']) & { - color: var(--muidocs-palette-grey-300); - &:hover, - &.base--focusVisible { - color: var(--muidocs-palette-text-primary); - background: var(--muidocs-palette-primaryDark-700); - border-color: var(--muidocs-palette-primaryDark-500); - } - } -`; -const StyledMenuItem = styled('li')(menuItemStyles); - -const CSS = `.Mui-base.base-MenuButton-root {${buttonStyles}} - -.Mui-base.base-Menu-root {${popperStyles}} - -.Mui-base.base-Menu-listbox {${listboxStyles}} - -.Mui-base.base-MenuItem-root {${menuItemStyles}}`; - -const menuItemStylesTailwind = `flex min-h-[24px] items-center gap-[4px] rounded-[6px] border border-solid border-transparent px-[8px] py-[6px] font-medium text-sm leading-[1.5] hover:cursor-default hover:border-[--muidocs-palette-grey-100] hover:color-[--muidocs-palette-text-primary] hover:bg-[--muidocs-palette-grey-50] dark:hover:bg-[--muidocs-palette-primaryDark-700] dark:hover:border-[--muidocs-palette-primaryDark-500] ui-focus-visible:cursor-default ui-focus-visible:border-[--muidocs-palette-grey-100] ui-focus-visible:bg-[--muidocs-palette-grey-50] ui-focus-visible:outline-none`; - -export default function BaseMenuDemo({ styling }: { styling?: 'system' | 'tailwindcss' | 'css' }) { - return ( - - {styling === 'css' && } - {styling === 'tailwindcss' && ( - - - - My account - - - Profile - Language settings - Log out - - - )} - {(styling === 'css' || styling === 'system') && ( - - - - My account - - - - Profile - - - Language settings - - - Log out - - - - )} - - ); -} - -BaseMenuDemo.getCode = (styling?: 'system' | 'tailwindcss' | 'css') => { - if (styling === 'system') { - return `import * as React from 'react'; -import styled from '@mui/system/styled'; -import { Dropdown } from '@base_ui/react/Dropdown'; -import { MenuButton } from '@base_ui/react/MenuButton'; -import { Menu } from '@base_ui/react/Menu'; -import { MenuItem } from '@base_ui/react/MenuItem'; - -const StyledMenuButton = styled('button')\`${buttonStyles}\`; -const StyledListbox = styled('ul')\`${listboxStyles}\`; -const StyledMenuItem = styled('li')\`${menuItemStyles}\`; - -function Demo() { - return ( - - My account - - Profile - Language settings - Log out - - - ); -} -`; - } - if (styling === 'css') { - return `import { Dropdown } from '@base_ui/react/Dropdown'; -import { MenuButton } from '@base_ui/react/MenuButton'; -import { Menu } from '@base_ui/react/Menu'; -import { MenuItem } from '@base_ui/react/MenuItem'; -import './styles.css'; - -function Demo() { - const [buttonElement, setButtonElement] = React.useState(null); - const updateAnchor = React.useCallback((node) => { - setButtonElement(node); - }, []); - return ( - - My account - - Profile - Language settings - Log out - - - ) -} - -/* styles.css */ -${CSS} -`; - } - if (styling === 'tailwindcss') { - return `import { Dropdown } from '@base_ui/react/Dropdown'; -import { MenuButton } from '@base_ui/react/MenuButton'; -import { Menu } from '@base_ui/react/Menu'; -import { MenuItem } from '@base_ui/react/MenuItem'; - -function Demo() { - return ( - - - - My account - - - - Profile - - - Language settings - - - Log out - - - - ) -} -`; - } - return ``; -}; diff --git a/docs/src/modules/home/componentDemos/BaseSliderDemo.tsx b/docs/src/modules/home/componentDemos/BaseSliderDemo.tsx deleted file mode 100644 index 4af1689a8..000000000 --- a/docs/src/modules/home/componentDemos/BaseSliderDemo.tsx +++ /dev/null @@ -1,259 +0,0 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import { Slider } from '@base_ui/react/Slider'; -import { styled, GlobalStyles } from '@mui/system'; - -const rootStyles = ` - color: var(--primary); - width: 100%; - padding: 16px 0; - display: inline-flex; - align-items: center; - position: relative; - cursor: pointer; - touch-action: none; - -webkit-tap-highlight-color: transparent; - - &:hover { - opacity: 1; - } - - &.base--disabled { - pointer-events: none; - cursor: default; - color: var(--primary); - opacity: 0.5; - } - - & .base-Slider-rail { - display: block; - position: absolute; - width: 100%; - height: 4px; - border-radius: 6px; - background-color: currentColor; - opacity: 0.4; - } - - & .base-Slider-track { - display: block; - position: absolute; - height: 4px; - border-radius: 6px; - background-color: currentColor; - } - - & .base-Slider-thumb { - position: absolute; - margin-left: -6px; - width: 20px; - height: 20px; - box-sizing: border-box; - border-radius: 50%; - outline: 0; - background-color: var(--primary); - transition-property: box-shadow, transform; - transition-timing-function: ease; - transition-duration: 120ms; - transform-origin: center; - - &:hover { - box-shadow: 0 0 0 4px var(--slider-ring); - } - - &.base--focusVisible, - &.base--active { - box-shadow: 0 0 0 8px var(--slider-ring); - outline: none; - transform: scale(1.2); - } - } -`; - -const StyledSlider = styled('span')(rootStyles); - -const CSS = `.base-Slider-root {${rootStyles}}`; - -export default function BaseTabsDemo({ styling }: { styling?: 'system' | 'tailwindcss' | 'css' }) { - return ( - - {styling === 'css' && } - {(styling === 'system' || styling === 'css') && ( - - - - - )} - {styling === 'tailwindcss' && ( - - - - - )} - - ); -} -BaseTabsDemo.getCode = (styling?: 'system' | 'tailwindcss' | 'css') => { - if (styling === 'system') { - return `import { Slider } from '@base_ui/react/Slider'; -import { styled } from '@mui/system'; - -const StyledSlider = styled('span')\`${rootStyles}\`; - - - -`; - } - if (styling === 'css') { - return `import { Slider } from '@base_ui/react/Slider'; -import './styles.css'; - - - - -/* styles.css */ -${CSS} -`; - } - if (styling === 'tailwindcss') { - return `import { Slider } from '@base_ui/react/Slider'; - - -`; - } - return ''; -}; diff --git a/docs/src/modules/home/componentDemos/BaseTabsDemo.tsx b/docs/src/modules/home/componentDemos/BaseTabsDemo.tsx deleted file mode 100644 index 98fbf5f91..000000000 --- a/docs/src/modules/home/componentDemos/BaseTabsDemo.tsx +++ /dev/null @@ -1,206 +0,0 @@ -import * as React from 'react'; -import Box from '@mui/material/Box'; -import * as Tabs from '@base_ui/react/Tabs'; -import { styled, GlobalStyles } from '@mui/system'; - -const tabListStyles = ` - min-width: 300px; - background-color: var(--primary); - border-radius: 12px; - margin-bottom: 16px; - display: flex; - align-items: center; - justify-content: center; - align-content: space-between; - box-shadow: var(--shadow); -`; - -const TabsList = styled(Tabs.List)(tabListStyles); - -const tabPanelStyles = ` - width: 100%; - font-family: 'IBM Plex Sans', sans-serif; - font-size: 0.875rem; -`; -const TabPanel = styled(Tabs.Panel)(tabPanelStyles); - -const tabStyles = ` - font-family: 'IBM Plex Sans', sans-serif; - color: white; - cursor: pointer; - font-size: 0.875rem; - font-weight: bold; - background-color: transparent; - width: 100%; - padding: 12px; - margin: 6px 6px; - border: none; - border-radius: 7px; - display: flex; - justify-content: center; - transition: all 120ms ease; - user-select: none; - - &:hover { - background-color: var(--primary-hover); - } - - &:focus-visible { - color: #FFF; - outline: 2px solid rgba(255,255,255,0.8); - outline-offset: 2px; - } - - &[data-selected="true"] { - background-color: #FFF; - color: var(--primary); - } -`; - -const Tab = styled(Tabs.Tab)(tabStyles); - -const CSS = `.base-TabsList-root {${tabListStyles}} - -.base-TabPanel-root {${tabPanelStyles}} - -.base-Tab-root {${tabStyles}}`; - -const tabStylesTailwind = `m-[6px] flex w-full cursor-pointer justify-center rounded-[7px] border-none bg-transparent p-[12px] text-[0.875rem] font-bold text-white [font-family:IBM_Plex_sans] hover:bg-[--primary-hover] focus:text-white focus-visible:[outline:2px_solid_rgba(255,255,255,0.8)] outline-offset-2 ui-selected:bg-white ui-selected:text-[--primary] transition select-none`; - -const tabPanelStylesTailwind = `text-[0.875rem] [font-family:IBM_Plex_sans]`; - -export default function BaseTabsDemo({ styling }: { styling: 'system' | 'tailwindcss' | 'css' }) { - return ( - - {styling === 'system' && ( - - - One - Two - Three - - First page - Second page - Third page - - )} - {styling === 'css' && ( - - - - One - Two - Three - - - First page - - - Second page - - - Third page - - - )} - {styling === 'tailwindcss' && ( // https://play.tailwindcss.com/8jGjUI7EWe - - - One - Two - Three - - - First page - - - Second page - - - Third page - - - )} - - ); -} -BaseTabsDemo.getCode = (styling: 'system' | 'tailwindcss' | 'css') => { - if (styling === 'system') { - return `import { Tabs } from '@base_ui/react/Tabs'; -import { styled } from '@mui/system'; - -const StyledTabsList = styled(Tabs.List)\`${tabListStyles}\`; - -const StyledTabPanel = styled(Tabs.Panel)\`${tabPanelStyles}\`; - -const StyledTab = styled(Tabs.Tab)\`${tabStyles}\`; - - - - One - Two - Three - - - First page - - - Second page - - - Third page - - -`; - } - if (styling === 'tailwindcss') { - return `import { Tabs } from '@base_ui/react/Tabs'; - - - - One - Two - Three - - - First page - - - Second page - - - Third page - -`; - } - if (styling === 'css') { - return `import { Tabs } from '@base_ui/react/Tabs'; -import { styled } from '@mui/system'; -import './styles.css'; - - - - One - Two - Three - - First page - Second page - Third page - - -/* styles.css */ -${CSS} -`; - } - return ''; -}; diff --git a/docs/src/modules/home/heroVariables.ts b/docs/src/modules/home/heroVariables.ts deleted file mode 100644 index 6086e2a29..000000000 --- a/docs/src/modules/home/heroVariables.ts +++ /dev/null @@ -1,195 +0,0 @@ -const sleek = { - // tokens - '--color-primary': 'var(--muidocs-palette-primary-main)', - '--color-primary-light': 'var(--muidocs-palette-primary-100)', - '--border-width': '1px', - '--border-style': '1px solid', - '--border-color': 'var(--muidocs-palette-grey-200)', - '--border-radius': '8px', - '--avatar-radius': '99px', - // components - '--Panel-shadow': '0 4px 24px 0 rgba(62, 80, 96, 0.2)', - '--Tab-radius': '12px', - '--Tab-hoverBackground': 'var(--muidocs-palette-grey-50)', - '--Tab-activeSelector': 'calc(-5 * min(2px, var(--border-width, 0px)))', - '--Select-radius': '12px', - '--Select-spacing': '12px', - '--Input-border': 'var(--muidocs-palette-primary-400)', - '--Input-focus-border': '0 0 0 3px var(--muidocs-palette-primary-200)', - '--Slider-thumb-focus': 'rgba(0, 127, 255, 0.2)', - '--formControl-shadow': '0px 2px 3px rgba(205, 210, 215, 0.3)', - '--Button-shadow': - '0 -2px 0.5px 0 var(--muidocs-palette-grey-50) inset, 0 1px 2px 0 rgba(205, 210, 215, 0.5)', - '--Button-border': 'var(--muidocs-palette-grey-200)', - '--Button-bg': '#FFF', - '--Button-color': 'var(--muidocs-palette-grey-900)', - '--Button-border-hover': 'var(--muidocs-palette-grey-300)', - '--Button-bg-hover': 'var(--muidocs-palette-grey-100)', - '--LinkButton-shadow': - '0 -2px 0.5px 0 var(--muidocs-palette-primary-100) inset, 0 1px 2px 0 rgba(205, 210, 215, 0.5)', - '--LinkButton-border': 'var(--muidocs-palette-primary-100)', - '--LinkButton-bg': 'var(--muidocs-palette-primary-50)', - '--LinkButton-color': 'var(--muidocs-palette-primary-600)', - '--LinkButton-border-hover': 'var(--muidocs-palette-primary-200)', - '--LinkButton-bg-hover': 'var(--muidocs-palette-primary-100)', - '[data-mui-color-scheme="dark"] &': { - // dark tokens - '--color-primary': 'var(--muidocs-palette-primary-light)', - '--color-primary-light': 'var(--muidocs-palette-primaryDark-600)', - '--border-color': 'var(--muidocs-palette-primaryDark-700)', - '--formControl-shadow': '0px 2px 3px rgba(0, 0, 0, 0.6)', - // dark components - '--Panel-shadow': '0 4px 24px 0 rgba(0, 0, 0, 0.4)', - '--Select-background': 'var(--muidocs-palette-primaryDark-800)', - '--Tab-hoverBackground': 'var(--muidocs-palette-primaryDark-700)', - '--Option-selectedBackground': 'var(--muidocs-palette-primaryDark-800)', - '--Option-hoverBackground': 'var(--muidocs-palette-grey-900)', - '--Switch-background': 'var(--muidocs-palette-grey-700)', - '--Switch-hoverBackground': 'var(--muidocs-palette-grey-800)', - '--Input-border': 'var(--muidocs-palette-primary-500)', - '--Input-focus-border': '0 0 0 3px var(--muidocs-palette-primary-600)', - '--Slider-thumb-focus': 'rgba(51, 153, 255, 0.4)', - '--Button-shadow': - '0 -2px 0.5px 0 var(--muidocs-palette-primaryDark-900) inset, 0 1px 2px 0 rgba(0, 0, 0, 0.5)', - '--Button-border': 'var(--muidocs-palette-grey-800)', - '--Button-bg': 'var(--muidocs-palette-grey-900)', - '--Button-color': 'var(--muidocs-palette-primary-100)', - '--Button-border-hover': 'var(--muidocs-palette-grey-700)', - '--Button-bg-hover': 'var(--muidocs-palette-primaryDark-700)', - '--LinkButton-shadow': - '0 -2px 0.5px 0 var(--muidocs-palette-primary-800) inset, 0 1px 2px 0 rgba(0, 0, 0, 0.5)', - '--LinkButton-border': 'var(--muidocs-palette-primary-800)', - '--LinkButton-bg': 'var(--muidocs-palette-primary-900)', - '--LinkButton-color': 'var(--muidocs-palette-primary-100)', - '--LinkButton-border-hover': 'var(--muidocs-palette-primary-700)', - '--LinkButton-bg-hover': 'var(--muidocs-palette-primary-700)', - }, -}; - -const retro = { - // tokens - '--color-primary': 'var(--muidocs-palette-primary-main)', - '--color-primary-light': 'var(--muidocs-palette-primary-100)', - '--border-width': '1px', - '--border-style': '1px solid', - '--border-color': 'var(--muidocs-palette-grey-900)', - '--avatar-radius': '2px', - // components - '--Panel-shadow': '-8px 8px 0 0 var(--muidocs-palette-grey-800)', - '--Tab-radius': '0', - '--TabsList-background': 'var(--muidocs-palette-primary-50)', - '--Tab-hoverBackground': 'var(--muidocs-palette-grey-100)', - '--Tab-activeSelector': 'calc(-5 * min(2px, var(--border-width, 0px)))', - '--Select-radius': '0px', - '--Select-spacing': '12px', - '--Select-background': 'var(--muidocs-palette-grey-50)', - '--Input-border': 'var(--muidocs-palette-primary-400)', - '--Input-focus-border': '0 0 0 3px var(--muidocs-palette-primary-200)', - '--Slider-thumb-focus': 'rgba(0, 127, 255, 0.2)', - '--Button-border': 'var(--muidocs-palette-grey-600)', - '--Button-bg': 'var(--muidocs-palette-grey-100)', - '--Button-color': 'var(--muidocs-palette-grey-900)', - '--Button-border-hover': 'var(--muidocs-palette-grey-900)', - '--Button-bg-hover': 'var(--muidocs-palette-grey-200)', - '--LinkButton-border': 'var(--muidocs-palette-primary-400)', - '--LinkButton-bg': 'var(--muidocs-palette-primary-100)', - '--LinkButton-color': 'var(--muidocs-palette-primary-900)', - '--LinkButton-border-hover': 'var(--muidocs-palette-primary-500)', - '--LinkButton-bg-hover': 'var(--muidocs-palette-primary-200)', - '& *': { - fontFamily: 'Menlo,Consolas,"Droid Sans Mono",monospace', - }, - '[data-mui-color-scheme="dark"] &': { - // dark tokens - '--color-primary': 'var(--muidocs-palette-primary-light)', - '--color-primary-light': 'var(--muidocs-palette-primaryDark-600)', - '--border-color': 'var(--muidocs-palette-primaryDark-500)', - '--formControl-shadow': '0px 2px 2px rgb(0 0 0 / 80%)', - // dark components - '--Panel-shadow': '-8px 8px 0 0 var(--muidocs-palette-primaryDark-700)', - '--TabsList-background': 'var(--muidocs-palette-primaryDark-700)', - '--Tab-hoverBackground': 'var(--muidocs-palette-primaryDark-600)', - '--Select-background': 'var(--muidocs-palette-grey-900)', - '--Option-selectedBackground': 'var(--muidocs-palette-grey-800)', - '--Option-hoverBackground': 'var(--muidocs-palette-grey-900)', - '--Switch-background': 'var(--muidocs-palette-grey-700)', - '--Input-border': 'var(--muidocs-palette-primary-500)', - '--Input-focus-border': '0 0 0 3px var(--muidocs-palette-primary-600)', - '--Slider-thumb-focus': 'rgba(51, 153, 255, 0.4)', - '--Button-border': 'var(--muidocs-palette-primaryDark-400)', - '--Button-bg': 'var(--muidocs-palette-primaryDark-700)', - '--Button-color': 'var(--muidocs-palette-grey-50)', - '--Button-border-hover': 'var(--muidocs-palette-primaryDark-300)', - '--Button-bg-hover': 'var(--muidocs-palette-primaryDark-600)', - '--LinkButton-border': 'var(--muidocs-palette-primary-300)', - '--LinkButton-bg': 'var(--muidocs-palette-primary-900)', - '--LinkButton-color': 'var(--muidocs-palette-primary-100)', - '--LinkButton-border-hover': 'var(--muidocs-palette-primary-200)', - '--LinkButton-bg-hover': 'var(--muidocs-palette-primary-800)', - }, -}; - -const playful = { - // tokens - '--color-primary': 'var(--muidocs-palette-primary-main)', - '--color-primary-light': 'var(--muidocs-palette-primary-100)', - '--border-radius': '24px', - '--border-style': '2px solid', - '--border-width': '2px', - '--border-color': 'var(--muidocs-palette-primary-200)', - '--avatar-radius': '999px', - // components - '--Panel-shadow': '0 4px 40px 0 rgba(51, 153, 255, 0.2)', - '--Tab-radius': '999px', - '--Tab-activeSelector': 'calc(-3 * min(2px, var(--border-width, 0px)))', - '--Select-spacing': '12px', - '--Select-ringColor': 'var(--muidocs-palette-grey-400)', - '--Option-selectedBackground': 'var(--muidocs-palette-primary-50)', - '--TabsList-background': 'var(--muidocs-palette-primary-50)', - '--Tab-hoverBackground': 'var(--muidocs-palette-primary-100)', - '--Input-border': 'var(--muidocs-palette-primary-400)', - '--Input-focus-border': '0 0 0 3px var(--muidocs-palette-primary-200)', - '--Slider-thumb-focus': 'rgba(0, 127, 255, 0.2)', - '--Button-border': 'var(--muidocs-palette-primary-300)', - '--Button-bg': 'var(--muidocs-palette-primary-50)', - '--Button-color': 'var(--muidocs-palette-primary-900)', - '--Button-border-hover': 'var(--muidocs-palette-primary-500)', - '--Button-bg-hover': 'var(--muidocs-palette-primary-100)', - '--LinkButton-border': 'var(--muidocs-palette-primary-400)', - '--LinkButton-bg': 'var(--muidocs-palette-primary-100)', - '--LinkButton-color': 'var(--muidocs-palette-primary-900)', - '--LinkButton-border-hover': 'var(--muidocs-palette-primary-500)', - '--LinkButton-bg-hover': 'var(--muidocs-palette-primary-200)', - '& *': { - fontFamily: 'Poppins, sans-serif', - }, - '[data-mui-color-scheme="dark"] &': { - // dark tokens - '--color-primary': 'var(--muidocs-palette-primary-light)', - '--color-primary-light': 'var(--muidocs-palette-primaryDark-600)', - '--border-color': 'var(--muidocs-palette-primary-700)', - '--formControl-shadow': '0px 2px 2px rgb(0 0 0 / 80%)', - // dark components - '--TabsList-background': 'var(--muidocs-palette-primary-900)', - '--Tab-hoverBackground': 'var(--muidocs-palette-primary-800)', - '--Select-ringColor': 'var(--muidocs-palette-grey-700)', - '--Option-selectedBackground': 'var(--muidocs-palette-primary-900)', - '--Option-hoverBackground': 'var(--muidocs-palette-grey-900)', - '--Switch-background': 'var(--muidocs-palette-grey-700)', - '--Input-border': 'var(--muidocs-palette-primary-500)', - '--Input-focus-border': '0 0 0 3px var(--muidocs-palette-primary-600)', - '--Slider-thumb-focus': 'rgba(51, 153, 255, 0.4)', - '--Button-border': 'var(--muidocs-palette-primary-800)', - '--Button-bg': 'var(--muidocs-palette-primaryDark-700)', - '--Button-color': 'var(--muidocs-palette-primary-100)', - '--Button-border-hover': 'var(--muidocs-palette-primary-500)', - '--Button-bg-hover': 'var(--muidocs-palette-primaryDark-600)', - '--LinkButton-border': 'var(--muidocs-palette-primary-700)', - '--LinkButton-bg': 'var(--muidocs-palette-primary-900)', - '--LinkButton-color': 'var(--muidocs-palette-primary-100)', - '--LinkButton-border-hover': 'var(--muidocs-palette-primary-600)', - '--LinkButton-bg-hover': 'var(--muidocs-palette-primary-800)', - }, -}; - -export default [sleek, retro, playful]; diff --git a/docs/src/modules/home/themed-controls/Switch.tsx b/docs/src/modules/home/themed-controls/Switch.tsx deleted file mode 100644 index 5f0fd26f9..000000000 --- a/docs/src/modules/home/themed-controls/Switch.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import * as React from 'react'; -import * as BaseSwitch from '@base_ui/react/Switch'; -import { css, styled } from '@mui/system'; - -const StyledSwitch = styled(BaseSwitch.Root)(css` - font-size: 0; - position: relative; - display: inline-block; - width: 34px; - height: 20px; - cursor: pointer; - background: var(--Switch-background, var(--muidocs-palette-grey-300)); - border-radius: max(2px, var(--border-radius) * 4); - transition: background-color ease 100ms; - border: none; - padding: 0; - - &[data-disabled] { - opacity: 0.4; - cursor: not-allowed; - } - - $:hover { - background: var(--Switch-hoverBackground, var(--muidocs-palette-grey-400)); - } - - &:focus-visible { - border-radius: max(2px, var(--border-radius) * 4); - outline: 3px solid var(--muidocs-palette-primary-300); - } - - &[data-state='checked'] { - background: var(--muidocs-palette-primary-500); - } -`); - -const StyledSwitchThumb = styled(BaseSwitch.Thumb)(css` - display: block; - width: 14px; - height: 14px; - left: 3px; - border-radius: max(2px, var(--border-radius)); - background-color: #fff; - position: relative; - transition-property: left; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 120ms; - - &[data-state='checked'] { - left: 17px; - background-color: #fff; - - &:hover { - background: var(--muidocs-palette-primary-700); - } - } -`); - -const Switch = React.forwardRef(function Switch( - props: BaseSwitch.RootProps, - ref: React.ForwardedRef, -) { - return ( - - - - ); -}); - -export default Switch; From aa72c3d837358f847ffcaedf7d0eba4ba13f9642 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:01:08 +0200 Subject: [PATCH 009/140] Bump @argos-ci/core to ^2.2.0 (#443) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 771081cdd..3043188de 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "inline-scripts": "tsx ./scripts/inlineScripts.mts" }, "devDependencies": { - "@argos-ci/core": "^2.1.0", + "@argos-ci/core": "^2.2.0", "@babel/cli": "^7.24.5", "@babel/core": "^7.24.5", "@babel/node": "^7.23.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dea05bcf3..dc34d070d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,8 +26,8 @@ importers: .: devDependencies: '@argos-ci/core': - specifier: ^2.1.0 - version: 2.1.0 + specifier: ^2.2.0 + version: 2.2.0 '@babel/cli': specifier: ^7.24.5 version: 7.24.5(@babel/core@7.24.5) @@ -840,8 +840,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@argos-ci/core@2.1.0': - resolution: {integrity: sha512-Av6eOaE0DZ3GstHn69GY++12ISUppkVhHwMxbYp0rUPqh2r+IZtSVAmo8U2D3K8eJK6+u1qUD75ROWmuQakCAQ==} + '@argos-ci/core@2.2.0': + resolution: {integrity: sha512-T5W37CZ6HZjRcVAXuPj0wUB/Fm4VdwLvKpQL9yqSwiJganeNz7u8AFYJ30ujSUJS1jdUViW5TNnmsgDjuvGyTQ==} engines: {node: '>=18.0.0'} '@argos-ci/util@2.0.0': @@ -8863,7 +8863,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@argos-ci/core@2.1.0': + '@argos-ci/core@2.2.0': dependencies: '@argos-ci/util': 2.0.0 axios: 1.6.8(debug@4.3.4) From 523e280c48386df53b5b90cde8c2aabfd2ef87d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:01:18 +0200 Subject: [PATCH 010/140] Bump styled-components to ^6.1.11 (#442) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- pnpm-lock.yaml | 53 ++++++++++++----------------------------------- test/package.json | 2 +- 3 files changed, 15 insertions(+), 42 deletions(-) diff --git a/docs/package.json b/docs/package.json index e4b8e382b..42bfae091 100644 --- a/docs/package.json +++ b/docs/package.json @@ -68,7 +68,7 @@ "react-simple-code-editor": "^0.13.1", "react-transition-group": "^4.4.5", "rimraf": "^5.0.5", - "styled-components": "^6.1.9", + "styled-components": "^6.1.11", "stylis": "4.3.2", "stylis-plugin-rtl": "^2.1.1", "webpack-bundle-analyzer": "^4.10.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc34d070d..4712e6ed3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -482,8 +482,8 @@ importers: specifier: ^5.0.5 version: 5.0.7 styled-components: - specifier: ^6.1.9 - version: 6.1.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^6.1.11 + version: 6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0) stylis: specifier: 4.3.2 version: 4.3.2 @@ -737,8 +737,8 @@ importers: specifier: ^17.0.1 version: 17.0.1 styled-components: - specifier: ^6.1.9 - version: 6.1.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^6.1.11 + version: 6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0) stylis: specifier: 4.3.2 version: 4.3.2 @@ -1577,9 +1577,6 @@ packages: '@emotion/hash@0.9.1': resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - '@emotion/is-prop-valid@1.2.1': - resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} - '@emotion/is-prop-valid@1.2.2': resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} @@ -2985,9 +2982,6 @@ packages: '@types/sinonjs__fake-timers@8.1.5': resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - '@types/stylis@4.2.0': - resolution: {integrity: sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==} - '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} @@ -4103,9 +4097,6 @@ packages: resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} engines: {node: '>=18'} - csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -7970,8 +7961,8 @@ packages: engines: {node: '>=4'} hasBin: true - styled-components@6.1.9: - resolution: {integrity: sha512-aBOqs0uMsYufFXSE4q6cA6Ty1fwZuMk4BJRHfiGSna59F1otnxiDelwhN4fEwmBtIymmF0ZqXHnpSigr2ps9Cg==} + styled-components@6.1.11: + resolution: {integrity: sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==} engines: {node: '>= 16'} peerDependencies: react: '>= 16.8.0' @@ -8015,9 +8006,6 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} - stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} @@ -8211,9 +8199,6 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -9766,10 +9751,6 @@ snapshots: '@emotion/hash@0.9.1': {} - '@emotion/is-prop-valid@1.2.1': - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/is-prop-valid@1.2.2': dependencies: '@emotion/memoize': 0.8.1 @@ -11383,8 +11364,6 @@ snapshots: '@types/sinonjs__fake-timers@8.1.5': {} - '@types/stylis@4.2.0': {} - '@types/stylis@4.2.5': {} '@types/tsscmp@1.0.2': {} @@ -12749,8 +12728,6 @@ snapshots: dependencies: rrweb-cssom: 0.6.0 - csstype@3.1.2: {} - csstype@3.1.3: {} custom-event@1.0.1: {} @@ -17435,19 +17412,19 @@ snapshots: minimist: 1.2.8 through: 2.3.8 - styled-components@6.1.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@emotion/is-prop-valid': 1.2.1 + '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 - '@types/stylis': 4.2.0 + '@types/stylis': 4.2.5 css-to-react-native: 3.2.0 - csstype: 3.1.2 - postcss: 8.4.31 + csstype: 3.1.3 + postcss: 8.4.38 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) shallowequal: 1.1.0 - stylis: 4.3.1 - tslib: 2.5.0 + 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): dependencies: @@ -17518,8 +17495,6 @@ snapshots: stylis@4.2.0: {} - stylis@4.3.1: {} - stylis@4.3.2: {} sucrase@3.35.0: @@ -17739,8 +17714,6 @@ snapshots: tslib@1.14.1: {} - tslib@2.5.0: {} - tslib@2.6.2: {} tsscmp@1.0.6: {} diff --git a/test/package.json b/test/package.json index fc35086e6..8c1c11457 100644 --- a/test/package.json +++ b/test/package.json @@ -33,7 +33,7 @@ "react-is": "^18.2.0", "react-router-dom": "^6.23.0", "sinon": "^17.0.1", - "styled-components": "^6.1.9", + "styled-components": "^6.1.11", "stylis": "4.3.2", "stylis-plugin-rtl": "^2.1.1", "stylis-plugin-rtl-sc": "npm:stylis-plugin-rtl@^2.1.1", From b70578d998904be4d3d9bf5ac944a7c1f12721d2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:01:27 +0200 Subject: [PATCH 011/140] Bump recast to ^0.23.9 (#440) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3043188de..37df24af3 100644 --- a/package.json +++ b/package.json @@ -149,7 +149,7 @@ "pretty-quick": "^4.0.0", "process": "^0.11.10", "react-docgen": "^5.4.3", - "recast": "^0.23.6", + "recast": "^0.23.9", "remark": "^13.0.0", "rimraf": "^5.0.5", "serve": "^14.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4712e6ed3..6506e22bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -275,8 +275,8 @@ importers: specifier: ^5.4.3 version: 5.4.3 recast: - specifier: ^0.23.6 - version: 0.23.6 + specifier: ^0.23.9 + version: 0.23.9 remark: specifier: ^13.0.0 version: 13.0.0 @@ -7426,8 +7426,8 @@ packages: resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} engines: {node: '>= 0.8.0'} - recast@0.23.6: - resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==} + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} rechoir@0.8.0: @@ -16743,7 +16743,7 @@ snapshots: readline-sync@1.4.10: {} - recast@0.23.6: + recast@0.23.9: dependencies: ast-types: 0.16.1 esprima: 4.0.1 From 7ba5612380bc6986528afe2c3be9df09e0893a3b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:01:43 +0200 Subject: [PATCH 012/140] Bump react-router-dom to ^6.23.1 (#439) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- pnpm-lock.yaml | 32 ++++++++++++++++---------------- test/package.json | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/package.json b/docs/package.json index 42bfae091..ad988eb01 100644 --- a/docs/package.json +++ b/docs/package.json @@ -63,7 +63,7 @@ "react-dom": "^18.2.0", "react-draggable": "^4.4.6", "react-is": "^18.2.0", - "react-router-dom": "^6.23.0", + "react-router-dom": "^6.23.1", "react-runner": "^1.0.3", "react-simple-code-editor": "^0.13.1", "react-transition-group": "^4.4.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6506e22bd..8384ec3db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -467,8 +467,8 @@ importers: specifier: ^18.2.0 version: 18.2.0 react-router-dom: - specifier: ^6.23.0 - version: 6.23.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^6.23.1 + version: 6.23.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-runner: specifier: ^1.0.3 version: 1.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -731,8 +731,8 @@ importers: specifier: ^18.2.0 version: 18.2.0 react-router-dom: - specifier: ^6.23.0 - version: 6.23.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^6.23.1 + version: 6.23.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) sinon: specifier: ^17.0.1 version: 17.0.1 @@ -2684,8 +2684,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@remix-run/router@1.16.0': - resolution: {integrity: sha512-Quz1KOffeEf/zwkCBM3kBtH4ZoZ+pT3xIXBG4PPW/XFtDP7EGhtTiC2+gpL9GnR7+Qdet5Oa6cYSvwKYg6kN9Q==} + '@remix-run/router@1.16.1': + resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==} engines: {node: '>=14.0.0'} '@sigstore/bundle@1.1.0': @@ -7318,15 +7318,15 @@ packages: peerDependencies: react: ^18.2.0 - react-router-dom@6.23.0: - resolution: {integrity: sha512-Q9YaSYvubwgbal2c9DJKfx6hTNoBp3iJDsl+Duva/DwxoJH+OTXkxGpql4iUK2sla/8z4RpjAm6EWx1qUDuopQ==} + react-router-dom@6.23.1: + resolution: {integrity: sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.23.0: - resolution: {integrity: sha512-wPMZ8S2TuPadH0sF5irFGjkNLIcRvOSaEe7v+JER8508dyJumm6XZB1u5kztlX0RVq6AzRVndzqcUh6sFIauzA==} + react-router@6.23.1: + resolution: {integrity: sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' @@ -10982,7 +10982,7 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@remix-run/router@1.16.0': {} + '@remix-run/router@1.16.1': {} '@sigstore/bundle@1.1.0': dependencies: @@ -16608,16 +16608,16 @@ snapshots: react: 18.2.0 scheduler: 0.23.0 - react-router-dom@6.23.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-router-dom@6.23.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@remix-run/router': 1.16.0 + '@remix-run/router': 1.16.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.23.0(react@18.2.0) + react-router: 6.23.1(react@18.2.0) - react-router@6.23.0(react@18.2.0): + react-router@6.23.1(react@18.2.0): dependencies: - '@remix-run/router': 1.16.0 + '@remix-run/router': 1.16.1 react: 18.2.0 react-runner@1.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): diff --git a/test/package.json b/test/package.json index 8c1c11457..b80c573b1 100644 --- a/test/package.json +++ b/test/package.json @@ -31,7 +31,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-is": "^18.2.0", - "react-router-dom": "^6.23.0", + "react-router-dom": "^6.23.1", "sinon": "^17.0.1", "styled-components": "^6.1.11", "stylis": "4.3.2", From 8b262333f8bddc386a19312af4d388b8c57862ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:01:55 +0200 Subject: [PATCH 013/140] Bump nx to ^18.3.5 (#438) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 118 ++++++++++++++++++++++++------------------------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index 37df24af3..d489196a2 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "lodash": "^4.17.21", "markdownlint-cli2": "^0.13.0", "mocha": "^10.4.0", - "nx": "^18.3.4", + "nx": "^18.3.5", "nyc": "^15.1.0", "piscina": "^4.4.0", "postcss-styled-syntax": "^0.6.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8384ec3db..20e79e040 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -251,8 +251,8 @@ importers: specifier: ^10.4.0 version: 10.4.0 nx: - specifier: ^18.3.4 - version: 18.3.4 + specifier: ^18.3.5 + version: 18.3.5 nyc: specifier: ^15.1.0 version: 15.1.0 @@ -2350,8 +2350,8 @@ packages: '@nrwl/devkit@18.3.3': resolution: {integrity: sha512-3zZLE1vfwsNie7qjVUt9lqaM1slU0RTr/dW+Yt/2lxe8Peu6f8bnCM1Pf3kSlzoxQroctfocRtVHFXJsAuAt4g==} - '@nrwl/tao@18.3.4': - resolution: {integrity: sha512-+7KsDYmGj1cvNaXZcjSYOPN1h17hsGFBtVX7MqnpJLLkQTUhKg2rQxqyluzshJ+RoDUVtYPGyHg1AizlB66RIA==} + '@nrwl/tao@18.3.5': + resolution: {integrity: sha512-gB7Vxa6FReZZEGva03Eh+84W8BSZOjsNyXboglOINu6d8iZZ0eotSXGziKgjpkj3feZ1ofKZMs0PRObVAOROVw==} hasBin: true '@nx/devkit@18.3.3': @@ -2359,62 +2359,62 @@ packages: peerDependencies: nx: '>= 16 <= 19' - '@nx/nx-darwin-arm64@18.3.4': - resolution: {integrity: sha512-MOGk9z4fIoOkJB68diH3bwoWrC8X9IzMNsz1mu0cbVfgCRAfIV3b+lMsiwQYzWal3UWW5DE5Rkss4F8whiV5Uw==} + '@nx/nx-darwin-arm64@18.3.5': + resolution: {integrity: sha512-4I5UpZ/x2WO9OQyETXKjaYhXiZKUTYcLPewruRMODWu6lgTM9hHci0SqMQB+TWe3f80K8VT8J8x3+uJjvllGlg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@18.3.4': - resolution: {integrity: sha512-tSzPRnNB3QdPM+KYiIuRCUtyCwcuIRC95FfP0ZB3WvfDeNxJChEAChNqmCMDE4iFvZhGuze8WqkJuIVdte+lyQ==} + '@nx/nx-darwin-x64@18.3.5': + resolution: {integrity: sha512-Drn6jOG237AD/s6OWPt06bsMj0coGKA5Ce1y5gfLhptOGk4S4UPE/Ay5YCjq+/yhTo1gDHzCHxH0uW2X9MN9Fg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@18.3.4': - resolution: {integrity: sha512-bjSPak/d+bcR95/pxHMRhnnpHc6MnrQcG6f5AjX15Esm4JdrdQKPBmG1RybuK0WKSyD5wgVhkAGc/QQUom9l8g==} + '@nx/nx-freebsd-x64@18.3.5': + resolution: {integrity: sha512-8tA8Yw0Iir4liFjffIFS5THTS3TtWY/No2tkVj91gwy/QQ/otvKbOyc5RCIPpbZU6GS3ZWfG92VyCSm06dtMFg==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@18.3.4': - resolution: {integrity: sha512-/1HnUL7jhH0S7PxJqf6R1pk3QlAU22GY89EQV9fd+RDUtp7IyzaTlkebijTIqfxlSjC4OO3bPizaxEaxdd3uKQ==} + '@nx/nx-linux-arm-gnueabihf@18.3.5': + resolution: {integrity: sha512-BrPGAHM9FCGkB9/hbvlJhe+qtjmvpjIjYixGIlUxL3gGc8E/ucTyCnz5pRFFPFQlBM7Z/9XmbHvGPoUi/LYn5A==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@18.3.4': - resolution: {integrity: sha512-g/2IaB2bZTKaBNPEf9LxtIXb1XHdhh3VO9PnePIrwkkixPMLN0dTxT5Sttt75lvLP3EU1AUR5w3Aaz2Q1mYtWA==} + '@nx/nx-linux-arm64-gnu@18.3.5': + resolution: {integrity: sha512-/Xd0Q3LBgJeigJqXC/Jck/9l5b+fK+FCM0nRFMXgPXrhZPhoxWouFkoYl2F1Ofr+AQf4jup4DkVTB5r98uxSCA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@18.3.4': - resolution: {integrity: sha512-MgfKLoEF6I1cCS+0ooFLEjJSSVdCYyCT9Q96IHRJntAEL8u/0GR2OUoBoLC+q1lnbIkJr/uqTJxA2Jh+sJTIbA==} + '@nx/nx-linux-arm64-musl@18.3.5': + resolution: {integrity: sha512-r18qd7pUrl1haAZ/e9Q+xaFTsLJnxGARQcf/Y76q+K2psKmiUXoRlqd3HAOw43KTllaUJ5HkzLq2pIwg3p+xBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@18.3.4': - resolution: {integrity: sha512-vbHxv7m3gjthBvw50EYCtgyY0Zg5nVTaQtX+wRsmKybV2i7wHbw5zIe1aL4zHUm6TcPGbIQK+utVM+hyCqKHVA==} + '@nx/nx-linux-x64-gnu@18.3.5': + resolution: {integrity: sha512-vYrikG6ff4I9cvr3Ysk3y3gjQ9cDcvr3iAr+4qqcQ4qVE+OLL2++JDS6xfPvG/TbS3GTQpyy2STRBwiHgxTeJw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@18.3.4': - resolution: {integrity: sha512-qIJKJCYFRLVSALsvg3avjReOjuYk91Q0hFXMJ2KaEM1Y3tdzcFN0fKBiaHexgbFIUk8zJuS4dJObTqSYMXowbg==} + '@nx/nx-linux-x64-musl@18.3.5': + resolution: {integrity: sha512-6np86lcYy3+x6kkW/HrBHIdNWbUu/MIsvMuNH5UXgyFs60l5Z7Cocay2f7WOaAbTLVAr0W7p4RxRPamHLRwWFA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@18.3.4': - resolution: {integrity: sha512-UxC8mRkFTPdZbKFprZkiBqVw8624xU38kI0xyooxKlFpt5lccTBwJ0B7+R8p1RoWyvh2DSyFI9VvfD7lczg1lA==} + '@nx/nx-win32-arm64-msvc@18.3.5': + resolution: {integrity: sha512-H3p2ZVhHV1WQWTICrQUTplOkNId0y3c23X3A2fXXFDbWSBs0UgW7m55LhMcA9p0XZ7wDHgh+yFtVgu55TXLjug==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@18.3.4': - resolution: {integrity: sha512-/RqEjNU9hxIBxRLafCNKoH3SaB2FShf+1ZnIYCdAoCZBxLJebDpnhiyrVs0lPnMj9248JbizEMdJj1+bs/bXig==} + '@nx/nx-win32-x64-msvc@18.3.5': + resolution: {integrity: sha512-xFwKVTIXSgjdfxkpriqHv5NpmmFILTrWLEkUGSoimuRaAm1u15YWx/VmaUQ+UWuJnmgqvB/so4SMHSfNkq3ijA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -6622,8 +6622,8 @@ packages: nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - nx@18.3.4: - resolution: {integrity: sha512-7rOHRyxpnZGJ3pHnwmpoAMHt9hNuwibWhOhPBJDhJVcbQJtGfwcWWyV/iSEnVXwKZ2lfHVE3TwE+gXFdT/GFiw==} + nx@18.3.5: + resolution: {integrity: sha512-wWcvwoTgiT5okdrG0RIWm1tepC17bDmSpw+MrOxnjfBjARQNTURkiq4U6cxjCVsCxNHxCrlAaBSQLZeBgJZTzQ==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -10088,7 +10088,7 @@ snapshots: '@lerna/create@8.1.2(encoding@0.1.13)(typescript@5.4.5)': dependencies: '@npmcli/run-script': 7.0.2 - '@nx/devkit': 18.3.3(nx@18.3.4) + '@nx/devkit': 18.3.3(nx@18.3.5) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) byte-size: 8.1.1 @@ -10125,7 +10125,7 @@ snapshots: npm-packlist: 5.1.1 npm-registry-fetch: 14.0.5 npmlog: 6.0.2 - nx: 18.3.4 + nx: 18.3.5 p-map: 4.0.0 p-map-series: 2.1.0 p-queue: 6.6.2 @@ -10586,61 +10586,61 @@ snapshots: transitivePeerDependencies: - supports-color - '@nrwl/devkit@18.3.3(nx@18.3.4)': + '@nrwl/devkit@18.3.3(nx@18.3.5)': dependencies: - '@nx/devkit': 18.3.3(nx@18.3.4) + '@nx/devkit': 18.3.3(nx@18.3.5) transitivePeerDependencies: - nx - '@nrwl/tao@18.3.4': + '@nrwl/tao@18.3.5': dependencies: - nx: 18.3.4 + nx: 18.3.5 tslib: 2.6.2 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug - '@nx/devkit@18.3.3(nx@18.3.4)': + '@nx/devkit@18.3.3(nx@18.3.5)': dependencies: - '@nrwl/devkit': 18.3.3(nx@18.3.4) + '@nrwl/devkit': 18.3.3(nx@18.3.5) ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.1 - nx: 18.3.4 + nx: 18.3.5 semver: 7.6.0 tmp: 0.2.3 tslib: 2.6.2 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@18.3.4': + '@nx/nx-darwin-arm64@18.3.5': optional: true - '@nx/nx-darwin-x64@18.3.4': + '@nx/nx-darwin-x64@18.3.5': optional: true - '@nx/nx-freebsd-x64@18.3.4': + '@nx/nx-freebsd-x64@18.3.5': optional: true - '@nx/nx-linux-arm-gnueabihf@18.3.4': + '@nx/nx-linux-arm-gnueabihf@18.3.5': optional: true - '@nx/nx-linux-arm64-gnu@18.3.4': + '@nx/nx-linux-arm64-gnu@18.3.5': optional: true - '@nx/nx-linux-arm64-musl@18.3.4': + '@nx/nx-linux-arm64-musl@18.3.5': optional: true - '@nx/nx-linux-x64-gnu@18.3.4': + '@nx/nx-linux-x64-gnu@18.3.5': optional: true - '@nx/nx-linux-x64-musl@18.3.4': + '@nx/nx-linux-x64-musl@18.3.5': optional: true - '@nx/nx-win32-arm64-msvc@18.3.4': + '@nx/nx-win32-arm64-msvc@18.3.5': optional: true - '@nx/nx-win32-x64-msvc@18.3.4': + '@nx/nx-win32-x64-msvc@18.3.5': optional: true '@octokit/auth-token@2.5.0': @@ -15009,7 +15009,7 @@ snapshots: dependencies: '@lerna/create': 8.1.2(encoding@0.1.13)(typescript@5.4.5) '@npmcli/run-script': 7.0.2 - '@nx/devkit': 18.3.3(nx@18.3.4) + '@nx/devkit': 18.3.3(nx@18.3.5) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) byte-size: 8.1.1 @@ -15052,7 +15052,7 @@ snapshots: npm-packlist: 5.1.1 npm-registry-fetch: 14.0.5 npmlog: 6.0.2 - nx: 18.3.4 + nx: 18.3.5 p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -15847,9 +15847,9 @@ snapshots: nwsapi@2.2.7: {} - nx@18.3.4: + nx@18.3.5: dependencies: - '@nrwl/tao': 18.3.4 + '@nrwl/tao': 18.3.5 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.6 @@ -15884,16 +15884,16 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 18.3.4 - '@nx/nx-darwin-x64': 18.3.4 - '@nx/nx-freebsd-x64': 18.3.4 - '@nx/nx-linux-arm-gnueabihf': 18.3.4 - '@nx/nx-linux-arm64-gnu': 18.3.4 - '@nx/nx-linux-arm64-musl': 18.3.4 - '@nx/nx-linux-x64-gnu': 18.3.4 - '@nx/nx-linux-x64-musl': 18.3.4 - '@nx/nx-win32-arm64-msvc': 18.3.4 - '@nx/nx-win32-x64-msvc': 18.3.4 + '@nx/nx-darwin-arm64': 18.3.5 + '@nx/nx-darwin-x64': 18.3.5 + '@nx/nx-freebsd-x64': 18.3.5 + '@nx/nx-linux-arm-gnueabihf': 18.3.5 + '@nx/nx-linux-arm64-gnu': 18.3.5 + '@nx/nx-linux-arm64-musl': 18.3.5 + '@nx/nx-linux-x64-gnu': 18.3.5 + '@nx/nx-linux-x64-musl': 18.3.5 + '@nx/nx-win32-arm64-msvc': 18.3.5 + '@nx/nx-win32-x64-msvc': 18.3.5 transitivePeerDependencies: - debug From de3c9c3204d701d1083971b678b6d073b6598b33 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:02:10 +0200 Subject: [PATCH 014/140] Bump lerna to ^8.1.3 (#437) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index d489196a2..ef35145c7 100644 --- a/package.json +++ b/package.json @@ -137,7 +137,7 @@ "karma-mocha": "^2.0.1", "karma-sourcemap-loader": "^0.4.0", "karma-webpack": "^5.0.1", - "lerna": "^8.1.2", + "lerna": "^8.1.3", "lodash": "^4.17.21", "markdownlint-cli2": "^0.13.0", "mocha": "^10.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20e79e040..454147b01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -239,8 +239,8 @@ importers: specifier: ^5.0.1 version: 5.0.1(webpack@5.91.0(webpack-cli@5.1.4)) lerna: - specifier: ^8.1.2 - version: 8.1.2(encoding@0.1.13) + specifier: ^8.1.3 + version: 8.1.3(encoding@0.1.13) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1988,8 +1988,8 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@lerna/create@8.1.2': - resolution: {integrity: sha512-GzScCIkAW3tg3+Yn/MKCH9963bzG+zpjGz2NdfYDlYWI7p0f/SH46v1dqpPpYmZ2E/m3JK8HjTNNNL8eIm8/YQ==} + '@lerna/create@8.1.3': + resolution: {integrity: sha512-JFvIYrlvR8Txa8h7VZx8VIQDltukEKOKaZL/muGO7Q/5aE2vjOKHsD/jkWYe/2uFy1xv37ubdx17O1UXQNadPg==} engines: {node: '>=18.0.0'} '@minh.nguyen/plugin-transform-destructuring@7.5.2': @@ -5939,8 +5939,8 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - lerna@8.1.2: - resolution: {integrity: sha512-RCyBAn3XsqqvHbz3TxLfD7ylqzCi1A2UJnFEZmhURgx589vM3qYWQa/uOMeEEf565q6cAdtmulITciX1wgkAtw==} + lerna@8.1.3: + resolution: {integrity: sha512-Dg/r1dGnRCXKsOUC3lol7o6ggYTA6WWiPQzZJNKqyygn4fzYGuA3Dro2d5677pajaqFnFA72mdCjzSyF16Vi2Q==} engines: {node: '>=18.0.0'} hasBin: true @@ -8068,9 +8068,9 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar@6.1.11: - resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} - engines: {node: '>= 10'} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} @@ -10085,7 +10085,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@lerna/create@8.1.2(encoding@0.1.13)(typescript@5.4.5)': + '@lerna/create@8.1.3(encoding@0.1.13)(typescript@5.4.5)': dependencies: '@npmcli/run-script': 7.0.2 '@nx/devkit': 18.3.3(nx@18.3.5) @@ -10141,7 +10141,7 @@ snapshots: slash: 3.0.0 ssri: 9.0.1 strong-log-transformer: 2.1.0 - tar: 6.1.11 + tar: 6.2.1 temp-dir: 1.0.0 upath: 2.0.1 uuid: 9.0.1 @@ -12193,7 +12193,7 @@ snapshots: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.5 - tar: 6.1.11 + tar: 6.2.1 unique-filename: 3.0.0 cacache@18.0.2: @@ -12208,7 +12208,7 @@ snapshots: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.5 - tar: 6.1.11 + tar: 6.2.1 unique-filename: 3.0.0 caching-transform@4.0.0: @@ -15005,9 +15005,9 @@ snapshots: dependencies: language-subtag-registry: 0.3.22 - lerna@8.1.2(encoding@0.1.13): + lerna@8.1.3(encoding@0.1.13): dependencies: - '@lerna/create': 8.1.2(encoding@0.1.13)(typescript@5.4.5) + '@lerna/create': 8.1.3(encoding@0.1.13)(typescript@5.4.5) '@npmcli/run-script': 7.0.2 '@nx/devkit': 18.3.3(nx@18.3.5) '@octokit/plugin-enterprise-rest': 6.0.1 @@ -15070,7 +15070,7 @@ snapshots: slash: 3.0.0 ssri: 9.0.1 strong-log-transformer: 2.1.0 - tar: 6.1.11 + tar: 6.2.1 temp-dir: 1.0.0 typescript: 5.4.5 upath: 2.0.1 @@ -15696,7 +15696,7 @@ snapshots: nopt: 7.2.0 proc-log: 3.0.0 semver: 7.6.0 - tar: 6.1.11 + tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: - supports-color @@ -16180,7 +16180,7 @@ snapshots: read-package-json-fast: 3.0.2 sigstore: 2.3.0 ssri: 10.0.5 - tar: 6.1.11 + tar: 6.2.1 transitivePeerDependencies: - bluebird - supports-color @@ -17584,11 +17584,11 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar@6.1.11: + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 - minipass: 3.3.6 + minipass: 5.0.0 minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 From 1ace18bb71cee6b7d6e3968df8d8ad7ed1187d34 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:02:20 +0200 Subject: [PATCH 015/140] Bump framer-motion to ^11.2.10 (#436) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/package.json b/docs/package.json index ad988eb01..2db09c90c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -88,7 +88,7 @@ "@types/stylis": "^4.2.5", "chai": "^4.4.1", "cross-fetch": "^4.0.0", - "framer-motion": "^11.2.5", + "framer-motion": "^11.2.10", "marked": "^12.0.2", "playwright": "^1.43.1", "prettier": "^3.2.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 454147b01..e658cfafc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -537,8 +537,8 @@ importers: specifier: ^4.0.0 version: 4.0.0(encoding@0.1.13) framer-motion: - specifier: ^11.2.5 - version: 11.2.5(@emotion/is-prop-valid@1.2.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^11.2.10 + version: 11.2.10(@emotion/is-prop-valid@1.2.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) marked: specifier: ^12.0.2 version: 12.0.2 @@ -4886,8 +4886,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.2.5: - resolution: {integrity: sha512-X22i42hWY423wx2C1TlQlC4UnWonD+udND0qX1Fkt0dDlreSmuNY76obO6Y2d/UdJPhqVd5Zn6g1jAIwF6Xx9A==} + framer-motion@11.2.10: + resolution: {integrity: sha512-/gr3PLZUVFCc86a9MqCUboVrALscrdluzTb3yew+2/qKBU8CX6nzs918/SRBRCqaPbx0TZP10CB6yFgK2C5cYQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -13816,7 +13816,7 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.2.5(@emotion/is-prop-valid@1.2.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + framer-motion@11.2.10(@emotion/is-prop-valid@1.2.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: tslib: 2.6.2 optionalDependencies: From 43981d3dbb43b905432e90d8ff8cc636f467b7f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:02:28 +0200 Subject: [PATCH 016/140] Bump eslint-plugin-react to ^7.34.2 (#435) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index ef35145c7..02e0c2702 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-material-ui": "workspace:^", "eslint-plugin-mocha": "^10.4.3", - "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react": "^7.34.2", "eslint-plugin-react-hooks": "^4.6.2", "execa": "^8.0.1", "fast-glob": "^3.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e658cfafc..ac0c12918 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -165,7 +165,7 @@ importers: version: 8.57.0 eslint-config-airbnb: specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.1(eslint@8.57.0))(eslint@8.57.0) + version: 19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.2(eslint@8.57.0))(eslint@8.57.0) eslint-config-airbnb-base: specifier: ^15.0.0 version: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0) @@ -197,8 +197,8 @@ importers: specifier: ^10.4.3 version: 10.4.3(eslint@8.57.0) eslint-plugin-react: - specifier: ^7.34.1 - version: 7.34.1(eslint@8.57.0) + specifier: ^7.34.2 + version: 7.34.2(eslint@8.57.0) eslint-plugin-react-hooks: specifier: ^4.6.2 version: 4.6.2(eslint@8.57.0) @@ -4459,8 +4459,8 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} es-module-lexer@1.5.0: @@ -4614,8 +4614,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.34.1: - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + eslint-plugin-react@7.34.2: + resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -13196,7 +13196,7 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - es-iterator-helpers@1.0.18: + es-iterator-helpers@1.0.19: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -13297,13 +13297,13 @@ snapshots: transitivePeerDependencies: - eslint-plugin-import - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.1(eslint@8.57.0))(eslint@8.57.0): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.2(eslint@8.57.0))(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) - eslint-plugin-react: 7.34.1(eslint@8.57.0) + eslint-plugin-react: 7.34.2(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) object.assign: 4.1.5 object.entries: 1.1.8 @@ -13400,7 +13400,7 @@ snapshots: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.18 + es-iterator-helpers: 1.0.19 eslint: 8.57.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -13420,7 +13420,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react@7.34.1(eslint@8.57.0): + eslint-plugin-react@7.34.2(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -13428,7 +13428,7 @@ snapshots: array.prototype.toreversed: 1.1.2 array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.18 + es-iterator-helpers: 1.0.19 eslint: 8.57.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 From f715751237d4cf7f984f591385543f8196c3a75d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:02:41 +0200 Subject: [PATCH 017/140] Bump GitHub Actions (#433) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- .github/workflows/codeql.yml | 6 +++--- .github/workflows/maintenance.yml | 2 +- .github/workflows/scorecards.yml | 6 +++--- .github/workflows/vale-action.yml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index abf1ff9ef..7d52de428 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - run: echo "${{ github.actor }}" - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: # fetch all tags which are required for `pnpm release:changelog` fetch-depth: 0 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 440aea646..ddbea1e24 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -16,10 +16,10 @@ jobs: security-events: write steps: - name: Checkout repository - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 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@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/analyze@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 diff --git a/.github/workflows/maintenance.yml b/.github/workflows/maintenance.yml index 487e4cb50..cfc975272 100644 --- a/.github/workflows/maintenance.yml +++ b/.github/workflows/maintenance.yml @@ -29,7 +29,7 @@ jobs: steps: - run: echo "${{ github.actor }}" - name: check if prs are dirty - uses: eps1lon/actions-label-merge-conflict@e62d7a53ff8be8b97684bffb6cfbbf3fc1115e2e # v3.0.0 + uses: eps1lon/actions-label-merge-conflict@1b1b1fcde06a9b3d089f3464c96417961dde1168 # v3.0.2 with: dirtyLabel: 'PR: out-of-date' removeOnDirtyLabel: 'PR: ready to ship' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 69f8a4604..e9669116b 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -22,12 +22,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: persist-credentials: false - name: Run analysis - uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 + uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3 with: results_file: results.sarif results_format: sarif @@ -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@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 with: sarif_file: results.sarif diff --git a/.github/workflows/vale-action.yml b/.github/workflows/vale-action.yml index 3fc7d562e..51eae2d26 100644 --- a/.github/workflows/vale-action.yml +++ b/.github/workflows/vale-action.yml @@ -12,7 +12,7 @@ jobs: contents: read pull-requests: write steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - uses: errata-ai/vale-action@38bf078c328061f59879b347ca344a718a736018 # v2.1.0 continue-on-error: true with: From 4b278977019711be12e5a068102fd07250cf305e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:02:54 +0200 Subject: [PATCH 018/140] Bump @types/node to ^18.19.33 (#431) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- package.json | 4 ++-- pnpm-lock.yaml | 54 +++++++++++++++++++++++------------------------ 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/package.json b/docs/package.json index 2db09c90c..4ae96c492 100644 --- a/docs/package.json +++ b/docs/package.json @@ -80,7 +80,7 @@ "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", "@types/autosuggest-highlight": "^3.2.3", "@types/chai": "^4.3.14", - "@types/node": "^18.19.31", + "@types/node": "^18.19.33", "@types/prop-types": "^15.7.12", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", diff --git a/package.json b/package.json index 02e0c2702..758d35dfe 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "@types/fs-extra": "^11.0.4", "@types/lodash": "^4.17.0", "@types/mocha": "^10.0.6", - "@types/node": "^18.19.31", + "@types/node": "^18.19.33", "@types/react": "^18.3.1", "@types/yargs": "^17.0.32", "@typescript-eslint/eslint-plugin": "^7.8.0", @@ -182,7 +182,7 @@ "@definitelytyped/header-parser": "^0.2.9", "@definitelytyped/typescript-versions": "^0.1.1", "@definitelytyped/utils": "^0.1.6", - "@types/node": "^18.19.31", + "@types/node": "^18.19.33", "@types/react": "^18.3.1", "@types/react-dom": "18.3.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac0c12918..5593e2cef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,7 +17,7 @@ overrides: '@definitelytyped/header-parser': ^0.2.9 '@definitelytyped/typescript-versions': ^0.1.1 '@definitelytyped/utils': ^0.1.6 - '@types/node': ^18.19.31 + '@types/node': ^18.19.33 '@types/react': ^18.3.1 '@types/react-dom': 18.3.0 @@ -101,8 +101,8 @@ importers: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^18.19.31 - version: 18.19.31 + specifier: ^18.19.33 + version: 18.19.33 '@types/react': specifier: ^18.3.1 version: 18.3.1 @@ -513,8 +513,8 @@ importers: specifier: ^4.3.14 version: 4.3.14 '@types/node': - specifier: ^18.19.31 - version: 18.19.31 + specifier: ^18.19.33 + version: 18.19.33 '@types/prop-types': specifier: ^15.7.12 version: 15.7.12 @@ -2928,8 +2928,8 @@ packages: '@types/mocha@10.0.6': resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - '@types/node@18.19.31': - resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + '@types/node@18.19.33': + resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -11088,18 +11088,18 @@ snapshots: '@slack/logger@3.0.0': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@slack/logger@4.0.0': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@slack/oauth@2.6.2': dependencies: '@slack/logger': 3.0.0 '@slack/web-api': 6.12.0 '@types/jsonwebtoken': 8.5.9 - '@types/node': 18.19.31 + '@types/node': 18.19.33 jsonwebtoken: 9.0.2 lodash.isstring: 4.0.1 transitivePeerDependencies: @@ -11109,7 +11109,7 @@ snapshots: dependencies: '@slack/logger': 3.0.0 '@slack/web-api': 6.12.0 - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/p-queue': 2.3.2 '@types/ws': 7.4.7 eventemitter3: 3.1.2 @@ -11129,7 +11129,7 @@ snapshots: '@slack/logger': 3.0.0 '@slack/types': 2.11.0 '@types/is-stream': 1.1.0 - '@types/node': 18.19.31 + '@types/node': 18.19.33 axios: 1.6.8(debug@4.3.4) eventemitter3: 3.1.2 form-data: 2.5.1 @@ -11214,7 +11214,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/chai-dom@1.11.3': dependencies: @@ -11224,17 +11224,17 @@ snapshots: '@types/cheerio@0.22.35': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/connect@3.4.38': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/cookie@0.4.1': {} '@types/cors@2.8.17': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/enzyme@3.10.18': dependencies: @@ -11255,7 +11255,7 @@ snapshots: '@types/express-serve-static-core@4.19.0': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11270,7 +11270,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/html-minifier-terser@6.1.0': {} @@ -11278,7 +11278,7 @@ snapshots: '@types/is-stream@1.1.0': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/istanbul-lib-coverage@2.0.6': {} @@ -11288,11 +11288,11 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/jsonwebtoken@8.5.9': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/lodash@4.17.0': {} @@ -11308,7 +11308,7 @@ snapshots: '@types/mocha@10.0.6': {} - '@types/node@18.19.31': + '@types/node@18.19.33': dependencies: undici-types: 5.26.5 @@ -11350,12 +11350,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/send': 0.17.4 '@types/sinon@17.0.3': @@ -11372,7 +11372,7 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 '@types/yargs-parser@21.0.3': {} @@ -13040,7 +13040,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 18.19.31 + '@types/node': 18.19.33 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -14718,7 +14718,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.33 merge-stream: 2.0.0 supports-color: 8.1.1 From d1a39cb3c8235e37a729498a2e92db5b6a11751e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:03:05 +0200 Subject: [PATCH 019/140] Bump @types/lodash to ^4.17.4 (#430) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 758d35dfe..ca167bcaf 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@playwright/test": "1.43.1", "@types/enzyme": "^3.10.18", "@types/fs-extra": "^11.0.4", - "@types/lodash": "^4.17.0", + "@types/lodash": "^4.17.4", "@types/mocha": "^10.0.6", "@types/node": "^18.19.33", "@types/react": "^18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5593e2cef..12feef5e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,8 +95,8 @@ importers: specifier: ^11.0.4 version: 11.0.4 '@types/lodash': - specifier: ^4.17.0 - version: 4.17.0 + specifier: ^4.17.4 + version: 4.17.4 '@types/mocha': specifier: ^10.0.6 version: 10.0.6 @@ -2910,8 +2910,8 @@ packages: '@types/jsonwebtoken@8.5.9': resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} - '@types/lodash@4.17.0': - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + '@types/lodash@4.17.4': + resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -11294,7 +11294,7 @@ snapshots: dependencies: '@types/node': 18.19.33 - '@types/lodash@4.17.0': {} + '@types/lodash@4.17.4': {} '@types/mdast@3.0.15': dependencies: From 655a0b9a2c368dc9b848bc125a7529854c9a06d3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:03:21 +0200 Subject: [PATCH 020/140] Bump @testing-library/react to ^15.0.7 (#428) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/mui-base/package.json | 2 +- pnpm-lock.yaml | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json index bc957e1b4..8d240d153 100644 --- a/packages/mui-base/package.json +++ b/packages/mui-base/package.json @@ -52,7 +52,7 @@ "devDependencies": { "@mui/internal-babel-macros": "^1.0.1", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", - "@testing-library/react": "^15.0.5", + "@testing-library/react": "^15.0.7", "@testing-library/user-event": "^14.5.2", "@types/chai": "^4.3.14", "@types/chai-dom": "^1.11.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12feef5e3..41186d26c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -607,8 +607,8 @@ importers: specifier: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.5)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/react': - specifier: ^15.0.5 - version: 15.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^15.0.7 + version: 15.0.7(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.1.0) @@ -2805,12 +2805,16 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 - '@testing-library/react@15.0.5': - resolution: {integrity: sha512-ttodVWYA2i2w4hRa6krKrmS1vKxAEkwDz34y+CwbcrbZUxFzUYN3a5xZyFKo+K6LBseCRCUkwcjATpaNn/UsIA==} + '@testing-library/react@15.0.7': + resolution: {integrity: sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==} engines: {node: '>=18'} peerDependencies: + '@types/react': ^18.3.1 react: ^18.0.0 react-dom: ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true '@testing-library/user-event@14.5.2': resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} @@ -11179,13 +11183,15 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@testing-library/react@15.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@testing-library/react@15.0.7(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.5 '@testing-library/dom': 10.1.0 '@types/react-dom': 18.3.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.1 '@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0)': dependencies: From faf99a1a4f9242ce8635505b7808d94d1f83f92f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:03:31 +0200 Subject: [PATCH 021/140] Bump @octokit/rest to ^20.1.1 (#427) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 82 +++++++++++++++++++++----------------------------- 2 files changed, 36 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index ca167bcaf..a338e1648 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "@mui/monorepo": "github:mui/material-ui#v6.0.0-alpha.8", "@mui/utils": "6.0.0-alpha.8", "@next/eslint-plugin-next": "^14.2.3", - "@octokit/rest": "^20.1.0", + "@octokit/rest": "^20.1.1", "@playwright/test": "1.43.1", "@types/enzyme": "^3.10.18", "@types/fs-extra": "^11.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41186d26c..d7b3d0458 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: ^14.2.3 version: 14.2.3 '@octokit/rest': - specifier: ^20.1.0 - version: 20.1.0 + specifier: ^20.1.1 + version: 20.1.1 '@playwright/test': specifier: 1.43.1 version: 1.43.1 @@ -2469,15 +2469,18 @@ packages: '@octokit/openapi-types@18.1.1': resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - '@octokit/openapi-types@20.0.0': - resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - - '@octokit/openapi-types@22.1.0': - resolution: {integrity: sha512-pGUdSP+eEPfZiQHNkZI0U01HLipxncisdJQB4G//OAmfeO8sqTQ9KRa0KF03TUPCziNsoXUrTg4B2Q1EX++T0Q==} + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} + '@octokit/plugin-paginate-rest@11.3.1': + resolution: {integrity: sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + '@octokit/plugin-paginate-rest@2.21.3': resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} peerDependencies: @@ -2489,12 +2492,6 @@ packages: peerDependencies: '@octokit/core': '>=4' - '@octokit/plugin-paginate-rest@9.2.1': - resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - '@octokit/plugin-request-log@1.0.4': resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} peerDependencies: @@ -2506,11 +2503,11 @@ packages: peerDependencies: '@octokit/core': '5' - '@octokit/plugin-rest-endpoint-methods@10.4.1': - resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} + '@octokit/plugin-rest-endpoint-methods@13.2.2': + resolution: {integrity: sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '5' + '@octokit/core': ^5 '@octokit/plugin-rest-endpoint-methods@5.16.2': resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} @@ -2552,8 +2549,8 @@ packages: resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==} engines: {node: '>= 14'} - '@octokit/rest@20.1.0': - resolution: {integrity: sha512-STVO3itHQLrp80lvcYB2UIKoeil5Ctsgd2s1AM+du3HqZIR35ZH7WE9HLwUOLXH0myA0y3AGNPo8gZtcgIbw0g==} + '@octokit/rest@20.1.1': + resolution: {integrity: sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==} engines: {node: '>= 18'} '@octokit/tsconfig@1.0.2': @@ -2562,11 +2559,8 @@ packages: '@octokit/types@10.0.0': resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} - '@octokit/types@12.6.0': - resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - - '@octokit/types@13.4.1': - resolution: {integrity: sha512-Y73oOAzRBAUzR/iRAbGULzpNkX8vaxKCqEtg6K74Ff3w9f5apFnWtE/2nade7dMWWW3bS5Kkd6DJS4HF04xreg==} + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} '@octokit/types@6.41.0': resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} @@ -10685,7 +10679,7 @@ snapshots: '@octokit/graphql': 7.1.0 '@octokit/request': 8.4.0 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 @@ -10703,7 +10697,7 @@ snapshots: '@octokit/endpoint@9.0.5': dependencies: - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 universal-user-agent: 6.0.1 '@octokit/graphql@4.8.0(encoding@0.1.13)': @@ -10725,19 +10719,22 @@ snapshots: '@octokit/graphql@7.1.0': dependencies: '@octokit/request': 8.4.0 - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 universal-user-agent: 6.0.1 '@octokit/openapi-types@12.11.0': {} '@octokit/openapi-types@18.1.1': {} - '@octokit/openapi-types@20.0.0': {} - - '@octokit/openapi-types@22.1.0': {} + '@octokit/openapi-types@22.2.0': {} '@octokit/plugin-enterprise-rest@6.0.1': {} + '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.2.0)': + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 13.5.0 + '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0(encoding@0.1.13))': dependencies: '@octokit/core': 3.6.0(encoding@0.1.13) @@ -10749,11 +10746,6 @@ snapshots: '@octokit/tsconfig': 1.0.2 '@octokit/types': 9.3.2 - '@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.2.0)': - dependencies: - '@octokit/core': 5.2.0 - '@octokit/types': 12.6.0 - '@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0(encoding@0.1.13))': dependencies: '@octokit/core': 3.6.0(encoding@0.1.13) @@ -10766,10 +10758,10 @@ snapshots: dependencies: '@octokit/core': 5.2.0 - '@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.0)': + '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.2.0)': dependencies: '@octokit/core': 5.2.0 - '@octokit/types': 12.6.0 + '@octokit/types': 13.5.0 '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0(encoding@0.1.13))': dependencies: @@ -10796,7 +10788,7 @@ snapshots: '@octokit/request-error@5.1.0': dependencies: - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 deprecation: 2.3.1 once: 1.4.0 @@ -10826,7 +10818,7 @@ snapshots: dependencies: '@octokit/endpoint': 9.0.5 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 universal-user-agent: 6.0.1 '@octokit/rest@18.12.0(encoding@0.1.13)': @@ -10847,12 +10839,12 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/rest@20.1.0': + '@octokit/rest@20.1.1': dependencies: '@octokit/core': 5.2.0 - '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0) + '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@5.2.0) '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.0) - '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.0) + '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@5.2.0) '@octokit/tsconfig@1.0.2': {} @@ -10860,13 +10852,9 @@ snapshots: dependencies: '@octokit/openapi-types': 18.1.1 - '@octokit/types@12.6.0': - dependencies: - '@octokit/openapi-types': 20.0.0 - - '@octokit/types@13.4.1': + '@octokit/types@13.5.0': dependencies: - '@octokit/openapi-types': 22.1.0 + '@octokit/openapi-types': 22.2.0 '@octokit/types@6.41.0': dependencies: From c9f2470399cea86a189611205ae1d7a9d1cdcca2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:04:41 +0200 Subject: [PATCH 022/140] Bump Public packages' dependencies (#423) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/mui-base/package.json | 8 ++++---- pnpm-lock.yaml | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json index 8d240d153..491e9e25d 100644 --- a/packages/mui-base/package.json +++ b/packages/mui-base/package.json @@ -39,10 +39,10 @@ "typescript:module-augmentation": "node scripts/testModuleAugmentation.js" }, "dependencies": { - "@babel/runtime": "^7.24.5", - "@floating-ui/react": "^0.26.12", - "@floating-ui/react-dom": "^2.0.8", - "@floating-ui/utils": "^0.2.1", + "@babel/runtime": "^7.24.6", + "@floating-ui/react": "^0.26.16", + "@floating-ui/react-dom": "^2.1.0", + "@floating-ui/utils": "^0.2.2", "@mui/types": "^7.2.14", "@mui/utils": "^5.15.14", "@popperjs/core": "^2.11.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7b3d0458..cd9e70c80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -576,13 +576,13 @@ importers: specifier: ^7.24.5 version: 7.24.5 '@floating-ui/react': - specifier: ^0.26.12 + specifier: ^0.26.16 version: 0.26.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@floating-ui/react-dom': - specifier: ^2.0.8 + specifier: ^2.1.0 version: 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@floating-ui/utils': - specifier: ^0.2.1 + specifier: ^0.2.2 version: 0.2.2 '@mui/types': specifier: ^7.2.14 From fd6840aae6cda5eb8c6fffa64ba000f6214d87c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:10:14 +0200 Subject: [PATCH 023/140] Bump @types/stylis to ^4.2.6 (#432) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- pnpm-lock.yaml | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/package.json b/docs/package.json index 4ae96c492..9c14b662a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -85,7 +85,7 @@ "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", "@types/react-transition-group": "^4.4.10", - "@types/stylis": "^4.2.5", + "@types/stylis": "^4.2.6", "chai": "^4.4.1", "cross-fetch": "^4.0.0", "framer-motion": "^11.2.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd9e70c80..ca5dd3ef7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -528,8 +528,8 @@ importers: specifier: ^4.4.10 version: 4.4.10 '@types/stylis': - specifier: ^4.2.5 - version: 4.2.5 + specifier: ^4.2.6 + version: 4.2.6 chai: specifier: ^4.4.1 version: 4.4.1 @@ -2983,6 +2983,9 @@ packages: '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} + '@types/stylis@4.2.6': + resolution: {integrity: sha512-4nebF2ZJGzQk0ka0O6+FZUWceyFv4vWq/0dXBMmrSeAwzOuOd/GxE5Pa64d/ndeNLG73dXoBsRzvtsVsYUv6Uw==} + '@types/tsscmp@1.0.2': resolution: {integrity: sha512-cy7BRSU8GYYgxjcx0Py+8lo5MthuDhlyu076KUcYzVNXL23luYgRHkMG2fIFEc6neckeh/ntP82mw+U4QjZq+g==} @@ -11360,6 +11363,8 @@ snapshots: '@types/stylis@4.2.5': {} + '@types/stylis@4.2.6': {} + '@types/tsscmp@1.0.2': {} '@types/unist@2.0.10': {} From 8dca258994aaacd786235a8f52888c603d9827ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:25:38 +0200 Subject: [PATCH 024/140] Bump @types/chai to ^4.3.16 (#429) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- packages/mui-base/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- test/package.json | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/package.json b/docs/package.json index 9c14b662a..b29cea5d1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -79,7 +79,7 @@ "@mui/internal-docs-utils": "^1.0.7", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", "@types/autosuggest-highlight": "^3.2.3", - "@types/chai": "^4.3.14", + "@types/chai": "^4.3.16", "@types/node": "^18.19.33", "@types/prop-types": "^15.7.12", "@types/react": "^18.3.1", diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json index 491e9e25d..0dd39f969 100644 --- a/packages/mui-base/package.json +++ b/packages/mui-base/package.json @@ -54,7 +54,7 @@ "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", "@testing-library/react": "^15.0.7", "@testing-library/user-event": "^14.5.2", - "@types/chai": "^4.3.14", + "@types/chai": "^4.3.16", "@types/chai-dom": "^1.11.3", "@types/prop-types": "^15.7.12", "@types/react": "^18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca5dd3ef7..5acd851ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -510,8 +510,8 @@ importers: specifier: ^3.2.3 version: 3.2.3 '@types/chai': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.16 + version: 4.3.16 '@types/node': specifier: ^18.19.33 version: 18.19.33 @@ -613,8 +613,8 @@ importers: specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.1.0) '@types/chai': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.16 + version: 4.3.16 '@types/chai-dom': specifier: ^1.11.3 version: 1.11.3 @@ -683,8 +683,8 @@ importers: specifier: ^10.1.0 version: 10.1.0 '@types/chai': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.16 + version: 4.3.16 '@types/react': specifier: ^18.3.1 version: 18.3.1 @@ -2848,8 +2848,8 @@ packages: '@types/chai-dom@1.11.3': resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} - '@types/chai@4.3.14': - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + '@types/chai@4.3.16': + resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} '@types/cheerio@0.22.35': resolution: {integrity: sha512-yD57BchKRvTV+JD53UZ6PD8KWY5g5rvvMLRnZR3EQBCZXiDT/HR+pKpMzFGlWNhFrXlo7VPZXtKvIEwZkAWOIA==} @@ -11215,9 +11215,9 @@ snapshots: '@types/chai-dom@1.11.3': dependencies: - '@types/chai': 4.3.14 + '@types/chai': 4.3.16 - '@types/chai@4.3.14': {} + '@types/chai@4.3.16': {} '@types/cheerio@0.22.35': dependencies: diff --git a/test/package.json b/test/package.json index b80c573b1..27c4502f9 100644 --- a/test/package.json +++ b/test/package.json @@ -15,7 +15,7 @@ "@mui/material": "6.0.0-alpha.8", "@playwright/test": "1.43.1", "@testing-library/dom": "^10.1.0", - "@types/chai": "^4.3.14", + "@types/chai": "^4.3.16", "@types/react": "^18.3.1", "@types/react-is": "^18.2.4", "@types/sinon": "^17.0.3", From e5cf562c539fdf3099e4269f8eb50371ed236d97 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:25:45 +0200 Subject: [PATCH 025/140] Bump babel to ^7.24.6 (#434) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 8 +- package.json | 34 +- pnpm-lock.yaml | 1957 +++++++++++++++++++++++---------------------- test/package.json | 2 +- 4 files changed, 1002 insertions(+), 999 deletions(-) diff --git a/docs/package.json b/docs/package.json index b29cea5d1..440ac5810 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,8 +15,8 @@ "link-check": "node ./scripts/reportBrokenLinks.js" }, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/runtime": "^7.24.5", + "@babel/core": "^7.24.6", + "@babel/runtime": "^7.24.6", "@babel/runtime-corejs3": "^7.24.6", "@base_ui/react": "workspace:*", "@docsearch/react": "^3.6.0", @@ -74,8 +74,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": "^1.0.7", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", "@types/autosuggest-highlight": "^3.2.3", diff --git a/package.json b/package.json index a338e1648..4a38a6dca 100644 --- a/package.json +++ b/package.json @@ -67,15 +67,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": "^1.0.7", "@mui/internal-markdown": "^1.0.4", @@ -170,15 +170,15 @@ "pnpm": "9.0.6" }, "resolutions": { - "@babel/core": "^7.24.5", - "@babel/code-frame": "^7.24.2", + "@babel/core": "^7.24.6", + "@babel/code-frame": "^7.24.6", "@babel/plugin-transform-destructuring": "npm:@minh.nguyen/plugin-transform-destructuring@^7.5.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/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/pnpm-lock.yaml b/pnpm-lock.yaml index 5acd851ff..b25b77673 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,15 +5,15 @@ settings: excludeLinksFromLockfile: false overrides: - '@babel/core': ^7.24.5 - '@babel/code-frame': ^7.24.2 + '@babel/core': ^7.24.6 + '@babel/code-frame': ^7.24.6 '@babel/plugin-transform-destructuring': npm:@minh.nguyen/plugin-transform-destructuring@^7.5.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/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 @@ -29,32 +29,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))(react@18.2.0) @@ -69,7 +69,7 @@ importers: version: 1.0.8 '@mui/internal-test-utils': specifier: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.5)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.6)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material': specifier: 6.0.0-alpha.8 version: 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -117,7 +117,7 @@ importers: version: 7.8.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(webpack-cli@5.1.4)) + version: 9.1.3(@babel/core@7.24.6)(webpack@5.91.0(webpack-cli@5.1.4)) babel-plugin-istanbul: specifier: ^6.1.1 version: 6.1.1 @@ -323,11 +323,11 @@ 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-corejs3': specifier: ^7.24.6 version: 7.24.6 @@ -351,7 +351,7 @@ importers: version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/docs': specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 6.0.0-alpha.8(@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@mui/icons-material': specifier: 6.0.0-alpha.8 version: 6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) @@ -369,7 +369,7 @@ importers: version: 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material-nextjs': specifier: 6.0.0-alpha.1 - version: 6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@mui/styles': specifier: 6.0.0-alpha.8 version: 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) @@ -441,7 +441,7 @@ importers: version: 1.5.0 next: specifier: ^14.2.3 - version: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -495,17 +495,17 @@ 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-docs-utils': specifier: ^1.0.7 version: 1.0.7 '@mui/internal-test-utils': specifier: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.5)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.6)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/autosuggest-highlight': specifier: ^3.2.3 version: 3.2.3 @@ -573,8 +573,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': specifier: ^0.26.16 version: 0.26.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -605,7 +605,7 @@ importers: version: 1.0.1(@mui/utils@5.15.14(@types/react@18.3.1)(react@18.2.0)) '@mui/internal-test-utils': specifier: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.5)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.6)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/react': specifier: ^15.0.7 version: 15.0.7(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -656,8 +656,8 @@ importers: test: devDependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@base_ui/react': specifier: workspace:* version: link:../packages/mui-base/build @@ -669,7 +669,7 @@ importers: version: 11.11.4(@types/react@18.3.1)(react@18.2.0) '@mui/internal-test-utils': specifier: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.5)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.6)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/joy': specifier: 5.0.0-beta.36 version: 5.0.0-beta.36(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -848,642 +848,642 @@ packages: resolution: {integrity: sha512-wnsNQOjcNfxOi8cHWSv8+GhzUeIitDJgjhuSNR9zrfHB0Y3nDVI57S/mHRo+EMAaWwghfbrxW1ypRCXVseN0GA==} engines: {node: '>=18.0.0'} - '@babel/cli@7.24.5': - resolution: {integrity: sha512-2qg1mYtJRsOOWF6IUwLP5jI42P8Cc0hQ5TmnjLrik/4DKouO8dFJN80HEz81VmVeUs97yuuf3vQ/9j7Elrcjlg==} + '@babel/cli@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 - '@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'} - '@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'} - '@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'} - '@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'} - '@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'} - '@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'} - '@babel/helper-create-class-features-plugin@7.24.5': - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + '@babel/helper-create-class-features-plugin@7.24.6': + resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + '@babel/helper-create-regexp-features-plugin@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 '@babel/helper-define-polyfill-provider@0.6.2': resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@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'} - '@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'} - '@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'} - '@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'} - '@babel/helper-module-transforms@7.24.5': - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + '@babel/helper-module-transforms@7.24.6': + resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^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'} - '@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': - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + '@babel/helper-remap-async-to-generator@7.24.6': + resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/helper-replace-supers@7.24.1': - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + '@babel/helper-replace-supers@7.24.6': + resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^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'} - '@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'} - '@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'} - '@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'} - '@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'} - '@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'} - '@babel/node@7.23.9': - resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==} + '@babel/node@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 - '@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 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5': - resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@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 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@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 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6': + resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6': + resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-async-generators@7.8.4': resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-class-properties@7.12.13': resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-class-static-block@7.14.5': resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-dynamic-import@7.8.3': resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-export-namespace-from@7.8.3': resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-syntax-import-assertions@7.24.1': - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + '@babel/plugin-syntax-import-assertions@7.24.6': + resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-syntax-import-attributes@7.24.1': - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + '@babel/plugin-syntax-import-attributes@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 '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-json-strings@7.8.3': resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-syntax-jsx@7.24.1': - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + '@babel/plugin-syntax-jsx@7.24.6': + resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-numeric-separator@7.10.4': resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-object-rest-spread@7.8.3': resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-optional-catch-binding@7.8.3': resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-optional-chaining@7.8.3': resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-private-property-in-object@7.14.5': resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-syntax-typescript@7.24.1': - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + '@babel/plugin-syntax-typescript@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 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + '@babel/plugin-transform-arrow-functions@7.24.6': + resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + '@babel/plugin-transform-async-generator-functions@7.24.6': + resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + '@babel/plugin-transform-async-to-generator@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 - '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + '@babel/plugin-transform-block-scoped-functions@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 - '@babel/plugin-transform-block-scoping@7.24.5': - resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + '@babel/plugin-transform-block-scoping@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 - '@babel/plugin-transform-class-properties@7.24.1': - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + '@babel/plugin-transform-class-properties@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 - '@babel/plugin-transform-class-static-block@7.24.4': - resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + '@babel/plugin-transform-class-static-block@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 - '@babel/plugin-transform-classes@7.24.5': - resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + '@babel/plugin-transform-classes@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 - '@babel/plugin-transform-computed-properties@7.24.1': - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + '@babel/plugin-transform-computed-properties@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 - '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + '@babel/plugin-transform-dotall-regex@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 - '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + '@babel/plugin-transform-duplicate-keys@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 - '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + '@babel/plugin-transform-dynamic-import@7.24.6': + resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + '@babel/plugin-transform-exponentiation-operator@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 - '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + '@babel/plugin-transform-export-namespace-from@7.24.6': + resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-for-of@7.24.1': - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + '@babel/plugin-transform-for-of@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 - '@babel/plugin-transform-function-name@7.24.1': - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + '@babel/plugin-transform-function-name@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 - '@babel/plugin-transform-json-strings@7.24.1': - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + '@babel/plugin-transform-json-strings@7.24.6': + resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-literals@7.24.1': - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + '@babel/plugin-transform-literals@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 - '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + '@babel/plugin-transform-logical-assignment-operators@7.24.6': + resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + '@babel/plugin-transform-member-expression-literals@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 - '@babel/plugin-transform-modules-amd@7.24.1': - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + '@babel/plugin-transform-modules-amd@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 - '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + '@babel/plugin-transform-modules-commonjs@7.24.6': + resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + '@babel/plugin-transform-modules-systemjs@7.24.6': + resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-modules-umd@7.24.1': - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + '@babel/plugin-transform-modules-umd@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 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + '@babel/plugin-transform-named-capturing-groups-regex@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 - '@babel/plugin-transform-new-target@7.24.1': - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + '@babel/plugin-transform-new-target@7.24.6': + resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + '@babel/plugin-transform-nullish-coalescing-operator@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 - '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + '@babel/plugin-transform-numeric-separator@7.24.6': + resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-object-rest-spread@7.24.5': - resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} + '@babel/plugin-transform-object-rest-spread@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 - '@babel/plugin-transform-object-super@7.24.1': - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + '@babel/plugin-transform-object-super@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 - '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + '@babel/plugin-transform-optional-catch-binding@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 - '@babel/plugin-transform-optional-chaining@7.24.5': - resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + '@babel/plugin-transform-optional-chaining@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 - '@babel/plugin-transform-parameters@7.24.5': - resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + '@babel/plugin-transform-parameters@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 - '@babel/plugin-transform-private-methods@7.24.1': - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + '@babel/plugin-transform-private-methods@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 - '@babel/plugin-transform-private-property-in-object@7.24.5': - resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} + '@babel/plugin-transform-private-property-in-object@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 - '@babel/plugin-transform-property-literals@7.24.1': - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + '@babel/plugin-transform-property-literals@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 - '@babel/plugin-transform-react-constant-elements@7.24.1': - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + '@babel/plugin-transform-react-constant-elements@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 - '@babel/plugin-transform-react-display-name@7.24.1': - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + '@babel/plugin-transform-react-display-name@7.24.6': + resolution: {integrity: sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-react-jsx-development@7.22.5': - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + '@babel/plugin-transform-react-jsx-development@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 - '@babel/plugin-transform-react-jsx@7.23.4': - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + '@babel/plugin-transform-react-jsx@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 - '@babel/plugin-transform-react-pure-annotations@7.24.1': - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + '@babel/plugin-transform-react-pure-annotations@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 - '@babel/plugin-transform-regenerator@7.24.1': - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + '@babel/plugin-transform-regenerator@7.24.6': + resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-reserved-words@7.24.1': - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + '@babel/plugin-transform-reserved-words@7.24.6': + resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-runtime@7.24.3': - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + '@babel/plugin-transform-runtime@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 - '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + '@babel/plugin-transform-shorthand-properties@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 - '@babel/plugin-transform-spread@7.24.1': - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + '@babel/plugin-transform-spread@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 - '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + '@babel/plugin-transform-sticky-regex@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 - '@babel/plugin-transform-template-literals@7.24.1': - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + '@babel/plugin-transform-template-literals@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 - '@babel/plugin-transform-typeof-symbol@7.24.5': - resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + '@babel/plugin-transform-typeof-symbol@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 - '@babel/plugin-transform-typescript@7.24.4': - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + '@babel/plugin-transform-typescript@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 - '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + '@babel/plugin-transform-unicode-escapes@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 - '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + '@babel/plugin-transform-unicode-property-regex@7.24.6': + resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + '@babel/plugin-transform-unicode-regex@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 - '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + '@babel/plugin-transform-unicode-sets-regex@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 - '@babel/preset-env@7.24.5': - resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} + '@babel/preset-env@7.24.6': + resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@babel/preset-modules@0.1.6-no-external-plugins': resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 - '@babel/preset-react@7.24.1': - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + '@babel/preset-react@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 - '@babel/preset-typescript@7.24.1': - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + '@babel/preset-typescript@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 - '@babel/register@7.23.7': - resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} + '@babel/register@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 '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -1492,20 +1492,20 @@ packages: resolution: {integrity: sha512-tbC3o8uHK9xMgMsvUm9qGqxVpbv6yborMBLbDteHIc7JDNHsTV0vDMQ5j1O1NXvO+BDELtL9KgoWYaUVIVGt8w==} engines: {node: '>=6.9.0'} - '@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'} - '@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'} - '@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'} - '@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'} '@bcoe/v8-coverage@0.2.3': @@ -1995,7 +1995,7 @@ packages: '@minh.nguyen/plugin-transform-destructuring@7.5.2': resolution: {integrity: sha512-DIzWFKl5nzSk9Hj9ZsEXAvvgHiyuAsw52queJMuKqfZOk1BOr9u1i2h0tc6tPF3rQieubP+eX4DPLTKSMpbyMg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 '@mnajdova/enzyme-adapter-react-18@0.2.0': resolution: {integrity: sha512-BOnjlVa7FHI1YUnYe+FdUtQu6szI1wLJ+C1lHyqmF3T9gu/J/WCYqqcD44dPkrU+8eYvvk/gQducsqna4HFiAg==} @@ -3486,7 +3486,7 @@ packages: resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 webpack: '>=5' babel-plugin-istanbul@6.1.1: @@ -3506,17 +3506,17 @@ packages: babel-plugin-polyfill-corejs2@0.4.11: resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 babel-plugin-polyfill-corejs3@0.10.4: resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 babel-plugin-polyfill-regenerator@0.6.2: resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 babel-plugin-react-remove-properties@0.3.0: resolution: {integrity: sha512-vbxegtXGyVcUkCvayLzftU95vuvpYFV85pRpeMpohMHeEY46Qe0VNWfkVVcCbaZ12CXHzDFOj0esumATcW83ng==} @@ -3877,6 +3877,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -8863,11 +8867,11 @@ snapshots: '@argos-ci/util@2.0.0': {} - '@babel/cli@7.24.5(@babel/core@7.24.5)': + '@babel/cli@7.24.6(@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 @@ -8877,25 +8881,25 @@ snapshots: '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 chokidar: 3.6.0 - '@babel/code-frame@7.24.2': + '@babel/code-frame@7.24.6': dependencies: - '@babel/highlight': 7.24.2 + '@babel/highlight': 7.24.6 picocolors: 1.0.0 - '@babel/compat-data@7.24.4': {} + '@babel/compat-data@7.24.6': {} - '@babel/core@7.24.5': + '@babel/core@7.24.6': 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 @@ -8904,742 +8908,739 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.5': + '@babel/generator@7.24.6': 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': + '@babel/helper-annotate-as-pure@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-compilation-targets@7.23.6': + '@babel/helper-compilation-targets@7.24.6': 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)': - 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/helper-create-class-features-plugin@7.24.6(@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)': + '@babel/helper-create-regexp-features-plugin@7.24.6(@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.2(@babel/core@7.24.5)': + '@babel/helper-define-polyfill-provider@0.6.2(@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': {} + '@babel/helper-environment-visitor@7.24.6': {} - '@babel/helper-function-name@7.23.0': + '@babel/helper-function-name@7.24.6': 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': + '@babel/helper-hoist-variables@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-member-expression-to-functions@7.24.5': + '@babel/helper-member-expression-to-functions@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-module-imports@7.24.3': + '@babel/helper-module-imports@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': + '@babel/helper-module-transforms@7.24.6(@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': + '@babel/helper-optimise-call-expression@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-plugin-utils@7.24.5': {} + '@babel/helper-plugin-utils@7.24.6': {} - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5)': + '@babel/helper-remap-async-to-generator@7.24.6(@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)': + '@babel/helper-replace-supers@7.24.6(@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': + '@babel/helper-simple-access@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + '@babel/helper-skip-transparent-expression-wrappers@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-split-export-declaration@7.24.5': + '@babel/helper-split-export-declaration@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-string-parser@7.24.1': {} + '@babel/helper-string-parser@7.24.6': {} - '@babel/helper-validator-identifier@7.24.5': {} + '@babel/helper-validator-identifier@7.24.6': {} - '@babel/helper-validator-option@7.23.5': {} + '@babel/helper-validator-option@7.24.6': {} - '@babel/helper-wrap-function@7.22.20': + '@babel/helper-wrap-function@7.24.6': 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': + '@babel/helpers@7.24.6': 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': + '@babel/highlight@7.24.6': 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)': + '@babel/node@7.24.6(@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.37.1 node-environment-flags: 1.0.6 regenerator-runtime: 0.14.1 v8flags: 3.2.0 - '@babel/parser@7.24.5': + '@babel/parser@7.24.6': 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)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@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)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@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)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@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)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@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-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)': 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)': 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)': 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)': 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)': 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-namespace-from@7.8.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@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-assertions@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-import-assertions@7.24.6(@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)': + '@babel/plugin-syntax-import-attributes@7.24.6(@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)': 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)': 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)': + '@babel/plugin-syntax-jsx@7.24.6(@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)': 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)': 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)': 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)': 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)': 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)': 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)': 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)': 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)': + '@babel/plugin-syntax-typescript@7.24.6(@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)': 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)': + '@babel/plugin-transform-arrow-functions@7.24.6(@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)': + '@babel/plugin-transform-async-generator-functions@7.24.6(@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)': + '@babel/plugin-transform-async-to-generator@7.24.6(@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)': + '@babel/plugin-transform-block-scoped-functions@7.24.6(@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)': + '@babel/plugin-transform-block-scoping@7.24.6(@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)': + '@babel/plugin-transform-class-properties@7.24.6(@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)': + '@babel/plugin-transform-class-static-block@7.24.6(@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)': + '@babel/plugin-transform-classes@7.24.6(@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)': + '@babel/plugin-transform-computed-properties@7.24.6(@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-dotall-regex@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-dotall-regex@7.24.6(@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)': + '@babel/plugin-transform-duplicate-keys@7.24.6(@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)': + '@babel/plugin-transform-dynamic-import@7.24.6(@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)': + '@babel/plugin-transform-exponentiation-operator@7.24.6(@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)': + '@babel/plugin-transform-export-namespace-from@7.24.6(@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-for-of@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-for-of@7.24.6(@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)': + '@babel/plugin-transform-function-name@7.24.6(@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)': + '@babel/plugin-transform-json-strings@7.24.6(@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)': + '@babel/plugin-transform-literals@7.24.6(@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)': + '@babel/plugin-transform-logical-assignment-operators@7.24.6(@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)': + '@babel/plugin-transform-member-expression-literals@7.24.6(@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)': + '@babel/plugin-transform-modules-amd@7.24.6(@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)': + '@babel/plugin-transform-modules-commonjs@7.24.6(@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)': + '@babel/plugin-transform-modules-systemjs@7.24.6(@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)': + '@babel/plugin-transform-modules-umd@7.24.6(@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)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@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)': + '@babel/plugin-transform-new-target@7.24.6(@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)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@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)': + '@babel/plugin-transform-numeric-separator@7.24.6(@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)': + '@babel/plugin-transform-object-rest-spread@7.24.6(@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)': + '@babel/plugin-transform-object-super@7.24.6(@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)': + '@babel/plugin-transform-optional-catch-binding@7.24.6(@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)': + '@babel/plugin-transform-optional-chaining@7.24.6(@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)': + '@babel/plugin-transform-parameters@7.24.6(@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)': + '@babel/plugin-transform-private-methods@7.24.6(@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)': + '@babel/plugin-transform-private-property-in-object@7.24.6(@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)': + '@babel/plugin-transform-property-literals@7.24.6(@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)': + '@babel/plugin-transform-react-constant-elements@7.24.6(@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-display-name@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-react-display-name@7.24.6(@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)': + '@babel/plugin-transform-react-jsx-development@7.24.6(@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) - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)': + '@babel/plugin-transform-react-jsx@7.24.6(@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)': + '@babel/plugin-transform-react-pure-annotations@7.24.6(@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 - '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-regenerator@7.24.6(@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)': + '@babel/plugin-transform-reserved-words@7.24.6(@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)': + '@babel/plugin-transform-runtime@7.24.6(@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.11(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.2(@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.11(@babel/core@7.24.6) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) + babel-plugin-polyfill-regenerator: 0.6.2(@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)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5)': - 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-sticky-regex@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.5)': - 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/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5)': - 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/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5)': - 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/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5)': - 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/preset-env@7.24.5(@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': '@minh.nguyen/plugin-transform-destructuring@7.5.2(@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.11(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) + '@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.6)': + dependencies: + '@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.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-template-literals@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-typeof-symbol@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-typescript@7.24.6(@babel/core@7.24.6)': + dependencies: + '@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.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-unicode-property-regex@7.24.6(@babel/core@7.24.6)': + dependencies: + '@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.6(@babel/core@7.24.6)': + dependencies: + '@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.6(@babel/core@7.24.6)': + dependencies: + '@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.6(@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': '@minh.nguyen/plugin-transform-destructuring@7.5.2(@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.11(@babel/core@7.24.6) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.6) core-js-compat: 3.37.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@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)': 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)': + '@babel/preset-react@7.24.6(@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) - '@babel/preset-typescript@7.24.1(@babel/core@7.24.5)': + '@babel/preset-typescript@7.24.6(@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.4(@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)': + '@babel/register@7.24.6(@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 @@ -9653,35 +9654,35 @@ snapshots: core-js-pure: 3.37.1 regenerator-runtime: 0.14.1 - '@babel/runtime@7.24.5': + '@babel/runtime@7.24.6': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.0': + '@babel/template@7.24.6': 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': + '@babel/traverse@7.24.6': 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': + '@babel/types@7.24.6': 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': {} @@ -9730,8 +9731,8 @@ snapshots: '@emotion/babel-plugin@11.11.0': 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 @@ -9760,7 +9761,7 @@ snapshots: '@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0)': 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 @@ -9791,7 +9792,7 @@ snapshots: '@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': 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.3.1)(react@18.2.0) @@ -10161,10 +10162,10 @@ snapshots: - supports-color - typescript - '@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.5)': + '@minh.nguyen/plugin-transform-destructuring@7.5.2(@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 '@mnajdova/enzyme-adapter-react-18@0.2.0(enzyme@3.11.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: @@ -10184,7 +10185,7 @@ snapshots: '@mui/base@5.0.0-beta.42(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) @@ -10198,7 +10199,7 @@ snapshots: '@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) @@ -10212,9 +10213,9 @@ snapshots: '@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {} - ? '@mui/docs@6.0.0-alpha.8(@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)' + ? '@mui/docs@6.0.0-alpha.8(@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)' : dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/base': 5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/icons-material': 6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/internal-markdown': 1.0.4 @@ -10222,7 +10223,7 @@ snapshots: '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) clipboard-copy: 4.0.1 clsx: 2.1.1 - next: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.2.0 @@ -10231,7 +10232,7 @@ snapshots: '@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/material': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 optionalDependencies: @@ -10239,8 +10240,8 @@ snapshots: '@mui/internal-babel-macros@1.0.1(@mui/utils@5.15.14(@types/react@18.3.1)(react@18.2.0))': 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 '@mui/utils': 5.15.14(@types/react@18.3.1)(react@18.2.0) babel-plugin-macros: 3.1.0 @@ -10251,18 +10252,18 @@ snapshots: '@mui/internal-markdown@1.0.4': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 lodash: 4.17.21 marked: 5.1.2 prismjs: 1.29.0 '@mui/internal-scripts@1.0.8': dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) + '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-typescript': 7.24.6(@babel/core@7.24.6) + '@babel/types': 7.24.6 '@mui/internal-docs-utils': 1.0.7 doctrine: 3.0.0 lodash: 4.17.21 @@ -10271,12 +10272,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.5)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.6)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/plugin-transform-modules-commonjs': 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/runtime': 7.24.5 + '@babel/plugin-transform-modules-commonjs': 7.24.6(@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/runtime': 7.24.6 '@emotion/cache': 11.11.0 '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.2.0) '@mnajdova/enzyme-adapter-react-18': 0.2.0(enzyme@3.11.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -10307,7 +10308,7 @@ snapshots: '@mui/joy@5.0.0-beta.36(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/base': 5.0.0-beta.42(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) @@ -10324,7 +10325,7 @@ snapshots: '@mui/joy@5.0.0-beta.41(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/base': 5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) @@ -10339,11 +10340,11 @@ snapshots: '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@types/react': 18.3.1 - '@mui/material-nextjs@6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': + '@mui/material-nextjs@6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/material': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - next: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 optionalDependencies: '@emotion/cache': 11.11.0 @@ -10352,7 +10353,7 @@ snapshots: '@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/base': 5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) @@ -10388,7 +10389,7 @@ snapshots: '@mui/private-theming@6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) prop-types: 15.8.1 react: 18.2.0 @@ -10397,7 +10398,7 @@ snapshots: '@mui/styled-engine@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(react@18.2.0)': 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 @@ -10408,7 +10409,7 @@ snapshots: '@mui/styles@6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@emotion/hash': 0.9.1 '@mui/private-theming': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) @@ -10431,7 +10432,7 @@ snapshots: '@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/private-theming': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) '@mui/styled-engine': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) @@ -10451,7 +10452,7 @@ snapshots: '@mui/utils@5.15.14(@types/react@18.3.1)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@types/prop-types': 15.7.12 prop-types: 15.8.1 react: 18.2.0 @@ -10461,7 +10462,7 @@ snapshots: '@mui/utils@6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@types/prop-types': 15.7.12 prop-types: 15.8.1 react: 18.2.0 @@ -11146,8 +11147,8 @@ snapshots: '@testing-library/dom@10.1.0': 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.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -11157,8 +11158,8 @@ snapshots: '@testing-library/dom@9.3.4': 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.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -11168,7 +11169,7 @@ snapshots: '@testing-library/react@14.2.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@testing-library/dom': 9.3.4 '@types/react-dom': 18.3.0 react: 18.2.0 @@ -11176,7 +11177,7 @@ snapshots: '@testing-library/react@15.0.7(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@testing-library/dom': 10.1.0 '@types/react-dom': 18.3.0 react: 18.2.0 @@ -11980,16 +11981,16 @@ snapshots: dependencies: dequal: 2.0.3 - babel-loader@9.1.3(@babel/core@7.24.5)(webpack@5.91.0(webpack-cli@5.1.4)): + babel-loader@9.1.3(@babel/core@7.24.6)(webpack@5.91.0(webpack-cli@5.1.4)): 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) babel-plugin-istanbul@6.1.1: 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.1 @@ -11999,7 +12000,7 @@ snapshots: babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 cosmiconfig: 7.1.0 resolve: 1.22.8 @@ -12013,34 +12014,34 @@ snapshots: babel-plugin-optimize-clsx@2.6.2: 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.11(@babel/core@7.24.5): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.6): dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.2(@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): dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.6) core-js-compat: 3.37.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.5): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.6): dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.6) transitivePeerDependencies: - supports-color @@ -12458,6 +12459,8 @@ snapshots: commander@4.1.1: {} + commander@6.2.1: {} + commander@7.2.0: {} commander@8.3.0: {} @@ -12714,7 +12717,7 @@ snapshots: css-vendor@2.0.8: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 is-in-browser: 1.1.3 css-what@6.1.0: {} @@ -12803,7 +12806,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 date-format@4.0.14: {} @@ -12941,7 +12944,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 csstype: 3.1.3 dom-serialize@2.2.1: @@ -13390,7 +13393,7 @@ snapshots: eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 aria-query: 5.3.0 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 @@ -13527,8 +13530,8 @@ snapshots: estree-to-babel@3.2.1: dependencies: - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 c8: 7.14.0 transitivePeerDependencies: - supports-color @@ -14623,7 +14626,7 @@ snapshots: istanbul-lib-instrument@4.0.3: dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -14632,8 +14635,8 @@ snapshots: istanbul-lib-instrument@5.2.1: 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.2 semver: 6.3.1 @@ -14827,46 +14830,46 @@ snapshots: jss-plugin-camel-case@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 hyphenate-style-name: 1.0.4 jss: 10.10.0 jss-plugin-default-unit@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 jss-plugin-global@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 jss-plugin-nested@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-props-sort@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 jss-plugin-rule-value-function@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-template@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-vendor-prefixer@10.10.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 css-vendor: 2.0.8 jss: 10.10.0 @@ -14877,7 +14880,7 @@ snapshots: jss@10.10.0: 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 @@ -15610,7 +15613,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@next/env': 14.2.3 '@swc/helpers': 0.5.5 @@ -15620,7 +15623,7 @@ snapshots: 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 @@ -16219,7 +16222,7 @@ snapshots: parse-json@5.2.0: 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 @@ -16569,9 +16572,9 @@ snapshots: react-docgen@5.4.3: 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 @@ -16645,7 +16648,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.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 @@ -16783,7 +16786,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 regexp.prototype.flags@1.5.2: dependencies: @@ -16926,7 +16929,7 @@ snapshots: rtl-css-js@1.16.1: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 run-async@2.4.1: {} @@ -17425,12 +17428,12 @@ snapshots: 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): dependencies: client-only: 0.0.1 react: 18.2.0 optionalDependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 babel-plugin-macros: 3.1.0 stylelint-config-recommended@14.0.0(stylelint@16.4.0(typescript@5.4.5)): diff --git a/test/package.json b/test/package.json index 27c4502f9..76e968d85 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", "@base_ui/react": "workspace:*", "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.4", From 08f5c8d79d2544deb542c2da106745aecd1927eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:26:09 +0200 Subject: [PATCH 026/140] Bump rimraf to ^5.0.7 (#441) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/package.json | 2 +- package.json | 2 +- pnpm-lock.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/package.json b/docs/package.json index 440ac5810..5e406015e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -67,7 +67,7 @@ "react-runner": "^1.0.3", "react-simple-code-editor": "^0.13.1", "react-transition-group": "^4.4.5", - "rimraf": "^5.0.5", + "rimraf": "^5.0.7", "styled-components": "^6.1.11", "stylis": "4.3.2", "stylis-plugin-rtl": "^2.1.1", diff --git a/package.json b/package.json index 4a38a6dca..86b07ce88 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "react-docgen": "^5.4.3", "recast": "^0.23.9", "remark": "^13.0.0", - "rimraf": "^5.0.5", + "rimraf": "^5.0.7", "serve": "^14.2.3", "stylelint": "^16.4.0", "stylelint-config-standard": "^36.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b25b77673..7775841b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -281,7 +281,7 @@ importers: specifier: ^13.0.0 version: 13.0.0 rimraf: - specifier: ^5.0.5 + specifier: ^5.0.7 version: 5.0.7 serve: specifier: ^14.2.3 @@ -479,7 +479,7 @@ importers: specifier: ^4.4.5 version: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rimraf: - specifier: ^5.0.5 + specifier: ^5.0.7 version: 5.0.7 styled-components: specifier: ^6.1.11 From 3d2afc057df739ad19bd68cb25adf38beb0ebec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dudak?= Date: Mon, 3 Jun 2024 14:56:00 +0200 Subject: [PATCH 027/140] [core] Allow Renovate to update pnpm (#446) --- renovate.json | 1 + 1 file changed, 1 insertion(+) diff --git a/renovate.json b/renovate.json index e5ff5e0fb..f01ce3193 100644 --- a/renovate.json +++ b/renovate.json @@ -88,6 +88,7 @@ }, { "matchDepTypes": ["engines"], + "matchFileNames": ["packages/*/package.json"], "enabled": false }, { From 9f5a41a7aee84e2f14b7c341f4002a6bc1dea0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dudak?= Date: Mon, 3 Jun 2024 18:20:19 +0200 Subject: [PATCH 028/140] [core] Add codeowners file (#447) --- .github/CODEOWNERS | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..2a367f864 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,5 @@ +* @atomiks @michaldudak +/docs/data/ @atomiks @colmtuite @michaldudak +/examples/ @atomiks @colmtuite @michaldudak +/packages/mui-base/ @atomiks @colmtuite @michaldudak +/scripts/ @michaldudak From 60c3efdc8168b61cfb423af9f4cc17a6b5399e81 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:35:35 +0200 Subject: [PATCH 029/140] Bump pnpm to 9.1.4 (#449) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 86b07ce88..bd2848d32 100644 --- a/package.json +++ b/package.json @@ -165,9 +165,9 @@ "webpack-cli": "^5.1.4", "yargs": "^17.7.2" }, - "packageManager": "pnpm@9.0.6", + "packageManager": "pnpm@9.1.4", "engines": { - "pnpm": "9.0.6" + "pnpm": "9.1.4" }, "resolutions": { "@babel/core": "^7.24.6", From 903d96bb2a383f14e932602a57144659940c2b1e Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Tue, 4 Jun 2024 08:07:00 -0300 Subject: [PATCH 030/140] [docs] Add the logo to the README (#448) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Dudak --- README.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0845d56a4..801cbc2fc 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@

- Base UI logo + + + + + Base UI + +

-

Base UI

- -[Base UI](https://mui.com/base-ui/) is a library of unstyled React UI components and hooks. With Base UI, you gain complete control over your app's CSS and accessibility features. +

+Base UI is an unstyled UI component library for building accessible user interfaces while maintaining complete control over styling. +

@@ -22,12 +28,14 @@
+--- + ## Documentation -Visit [https://mui.com/base-ui/](https://mui.com/base-ui/) to view the full documentation. +Visit [mui.com/base-ui/getting-started](https://mui.com/base-ui/getting-started/) to view the full documentation. -**Note**: Base UI's API is currently being revised; there will be no new features or components added to the current implementation. -Learn more about plans for Base UI in [this blog post](https://mui.com/blog/base-ui-2024-plans/). +> **Note**: Base UI's API is currently being revised; there will be no new features or components added to the current implementation. +> Learn more about the roadmap in [this blog post](https://mui.com/blog/base-ui-2024-plans/). ## Sponsors @@ -43,8 +51,6 @@ Diamond sponsors are those who have pledged \$1,500/month or more to MUI. ### Gold 🆠-via [Open Collective](https://opencollective.com/mui-org) or via [Patreon](https://www.patreon.com/oliviertassinari) -

tidelift.com Spotify @@ -57,6 +63,7 @@ via [Open Collective](https://opencollective.com/mui-org) or via [Patreon](http

Gold sponsors are those who have pledged \$500/month or more to MUI. +Via [Open Collective](https://opencollective.com/mui-org) or via [Patreon](https://www.patreon.com/oliviertassinari). ### More backers From 879052718df83b75bf06badee18ad40b4825612d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dudak?= Date: Wed, 5 Jun 2024 10:28:14 +0200 Subject: [PATCH 031/140] [docs] Fix the X link (#450) --- docs/data/base/getting-started/support/support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/base/getting-started/support/support.md b/docs/data/base/getting-started/support/support.md index 6fb26d6b7..85cde6510 100644 --- a/docs/data/base/getting-started/support/support.md +++ b/docs/data/base/getting-started/support/support.md @@ -73,7 +73,7 @@ This includes issues introduced by external sources, like browser upgrades or ch ### Social media -The Base UI community is active on both [X/Twitter](https://x.com/BaseUI) and [LinkedIn](https://www.linkedin.com/company/mui/). +The Base UI community is active on both [X/Twitter](https://x.com/Base_UI) and [LinkedIn](https://www.linkedin.com/company/mui/). These are great platforms to share what you're working on and connect with other developers. ### Discord From f85d13d3c998ade87ff21dfc409b45ce082e6b69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 14:41:04 +0200 Subject: [PATCH 032/140] Bump MUI (#453) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michał Dudak --- docs/package.json | 16 +- .../use-menu-item-context-stabilizer.json | 2 +- .../use-option-context-stabilizer.json | 2 +- package.json | 8 +- .../useMenuItemContextStabilizer.ts | 6 +- .../useOption/useOptionContextStabilizer.ts | 6 +- pnpm-lock.yaml | 304 ++++++++++++------ stylelint.config.js | 12 - stylelint.config.mjs | 1 + test/package.json | 2 +- 10 files changed, 233 insertions(+), 126 deletions(-) delete mode 100644 stylelint.config.js create mode 100644 stylelint.config.mjs diff --git a/docs/package.json b/docs/package.json index 5e406015e..bb725bb1e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -24,17 +24,17 @@ "@emotion/react": "^11.11.4", "@emotion/server": "^11.11.0", "@emotion/styled": "^11.11.5", - "@mui/docs": "6.0.0-alpha.8", - "@mui/icons-material": "6.0.0-alpha.8", + "@mui/docs": "6.0.0-alpha.10", + "@mui/icons-material": "6.0.0-alpha.10", "@mui/internal-markdown": "^1.0.4", - "@mui/internal-scripts": "^1.0.8", - "@mui/joy": "5.0.0-beta.41", - "@mui/material": "6.0.0-alpha.8", + "@mui/internal-scripts": "^1.0.9", + "@mui/joy": "5.0.0-beta.43", + "@mui/material": "6.0.0-alpha.10", "@mui/material-nextjs": "6.0.0-alpha.1", - "@mui/styles": "6.0.0-alpha.8", - "@mui/system": "6.0.0-alpha.8", + "@mui/styles": "6.0.0-alpha.10", + "@mui/system": "6.0.0-alpha.10", "@mui/types": "7.2.14", - "@mui/utils": "6.0.0-alpha.8", + "@mui/utils": "6.0.0-alpha.9", "@popperjs/core": "^2.11.8", "@react-spring/web": "^9.7.3", "autoprefixer": "^10.4.19", diff --git a/docs/translations/api-docs/use-menu-item-context-stabilizer/use-menu-item-context-stabilizer.json b/docs/translations/api-docs/use-menu-item-context-stabilizer/use-menu-item-context-stabilizer.json index d37623137..e9fb6768d 100644 --- a/docs/translations/api-docs/use-menu-item-context-stabilizer/use-menu-item-context-stabilizer.json +++ b/docs/translations/api-docs/use-menu-item-context-stabilizer/use-menu-item-context-stabilizer.json @@ -1,5 +1,5 @@ { - "hookDescription": "Stabilizes the ListContext value for the MenuItem component, so it doesn't change when sibling items update.\n\n@param id The id of the MenuItem. If undefined, it will be generated with useId.\n@returns The stable ListContext value and the id of the MenuItem.", + "hookDescription": "Stabilizes the ListContext value for the MenuItem component, so it doesn't change when sibling items update.", "parametersDescriptions": {}, "returnValueDescriptions": {} } diff --git a/docs/translations/api-docs/use-option-context-stabilizer/use-option-context-stabilizer.json b/docs/translations/api-docs/use-option-context-stabilizer/use-option-context-stabilizer.json index 6c507c071..9a29af899 100644 --- a/docs/translations/api-docs/use-option-context-stabilizer/use-option-context-stabilizer.json +++ b/docs/translations/api-docs/use-option-context-stabilizer/use-option-context-stabilizer.json @@ -1,5 +1,5 @@ { - "hookDescription": "Stabilizes the ListContext value for the Option component, so it doesn't change when sibling Options update.\n\n@param value The value of the Option.\n@returns The stable ListContext value.", + "hookDescription": "Stabilizes the ListContext value for the Option component, so it doesn't change when sibling Options update.", "parametersDescriptions": {}, "returnValueDescriptions": {} } diff --git a/package.json b/package.json index bd2848d32..7a3bb3ac2 100644 --- a/package.json +++ b/package.json @@ -79,11 +79,11 @@ "@mnajdova/enzyme-adapter-react-18": "^0.2.0", "@mui/internal-docs-utils": "^1.0.7", "@mui/internal-markdown": "^1.0.4", - "@mui/internal-scripts": "^1.0.8", + "@mui/internal-scripts": "^1.0.9", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", - "@mui/material": "6.0.0-alpha.8", - "@mui/monorepo": "github:mui/material-ui#v6.0.0-alpha.8", - "@mui/utils": "6.0.0-alpha.8", + "@mui/material": "6.0.0-alpha.10", + "@mui/monorepo": "github:mui/material-ui#v6.0.0-alpha.10", + "@mui/utils": "6.0.0-alpha.9", "@next/eslint-plugin-next": "^14.2.3", "@octokit/rest": "^20.1.1", "@playwright/test": "1.43.1", diff --git a/packages/mui-base/src/useMenuItem/useMenuItemContextStabilizer.ts b/packages/mui-base/src/useMenuItem/useMenuItemContextStabilizer.ts index fdcb643d4..43e8719d5 100644 --- a/packages/mui-base/src/useMenuItem/useMenuItemContextStabilizer.ts +++ b/packages/mui-base/src/useMenuItem/useMenuItemContextStabilizer.ts @@ -6,9 +6,6 @@ import { ListContext, ListContextValue, ListItemState } from '../useList'; /** * Stabilizes the ListContext value for the MenuItem component, so it doesn't change when sibling items update. * - * @param id The id of the MenuItem. If undefined, it will be generated with useId. - * @returns The stable ListContext value and the id of the MenuItem. - * * Demos: * * - [Menu](https://mui.com/base-ui/react-menu/#hooks) @@ -16,6 +13,9 @@ import { ListContext, ListContextValue, ListItemState } from '../useList'; * API: * * - [useMenuItemContextStabilizer API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-item-context-stabilizer) + * + * @param id - The id of the MenuItem. If undefined, it will be generated with useId. + * @returns The stable ListContext value and the id of the MenuItem. */ export function useMenuItemContextStabilizer(id: string | undefined) { const listContext = React.useContext(ListContext as React.Context>); diff --git a/packages/mui-base/src/useOption/useOptionContextStabilizer.ts b/packages/mui-base/src/useOption/useOptionContextStabilizer.ts index 520cb1b83..fe77b4e31 100644 --- a/packages/mui-base/src/useOption/useOptionContextStabilizer.ts +++ b/packages/mui-base/src/useOption/useOptionContextStabilizer.ts @@ -5,9 +5,6 @@ import { ListContext, ListContextValue } from '../useList'; /** * Stabilizes the ListContext value for the Option component, so it doesn't change when sibling Options update. * - * @param value The value of the Option. - * @returns The stable ListContext value. - * * Demos: * * - [Select](https://mui.com/base-ui/react-select/#hooks) @@ -15,6 +12,9 @@ import { ListContext, ListContextValue } from '../useList'; * API: * * - [useOptionContextStabilizer API](https://mui.com/base-ui/react-select/hooks-api/#use-option-context-stabilizer) + * + * @param value - The value of the Option. + * @returns The stable ListContext value. */ export function useOptionContextStabilizer(value: OptionValue) { const listContext = React.useContext(ListContext as React.Context>); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7775841b2..f6705de79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,20 +65,20 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@mui/internal-scripts': - specifier: ^1.0.8 - version: 1.0.8 + specifier: ^1.0.9 + version: 1.0.9 '@mui/internal-test-utils': specifier: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils version: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils(@babel/core@7.24.6)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/monorepo': - specifier: github:mui/material-ui#v6.0.0-alpha.8 - version: https://codeload.github.com/mui/material-ui/tar.gz/b948de7a7bb04261eb8401e838f9b65a61c89cec(@opentelemetry/api@1.8.0)(encoding@0.1.13) + specifier: github:mui/material-ui#v6.0.0-alpha.10 + version: https://codeload.github.com/mui/material-ui/tar.gz/b7e5998ec222200ca6283aebf7b9fc534ef7bafd(@opentelemetry/api@1.8.0)(encoding@0.1.13) '@mui/utils': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + specifier: 6.0.0-alpha.9 + version: 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) '@next/eslint-plugin-next': specifier: ^14.2.3 version: 14.2.3 @@ -350,38 +350,38 @@ importers: specifier: ^11.11.5 version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/docs': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@mui/base@5.0.0-beta.48(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.10(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@mui/icons-material': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/internal-markdown': specifier: ^1.0.4 version: 1.0.4 '@mui/internal-scripts': - specifier: ^1.0.8 - version: 1.0.8 + specifier: ^1.0.9 + version: 1.0.9 '@mui/joy': - specifier: 5.0.0-beta.41 - version: 5.0.0-beta.41(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 5.0.0-beta.43 + version: 5.0.0-beta.43(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material-nextjs': specifier: 6.0.0-alpha.1 - version: 6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@mui/styles': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@types/react@18.3.1)(react@18.2.0) '@mui/system': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/types': specifier: 7.2.14 version: 7.2.14(@types/react@18.3.1) '@mui/utils': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + specifier: 6.0.0-alpha.9 + version: 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -674,8 +674,8 @@ importers: specifier: 5.0.0-beta.36 version: 5.0.0-beta.36(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material': - specifier: 6.0.0-alpha.8 - version: 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 6.0.0-alpha.10 + version: 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@playwright/test': specifier: 1.43.1 version: 1.43.1 @@ -1819,8 +1819,8 @@ packages: resolution: {integrity: sha512-9KMSDtJ/sIov+5pcH+CAfiJXSiuYgN0KLKQFg0HHWR2DwcjGYkcbmhoZcWsaOWOqq4kihN1l7wX91UoRxxKKTQ==} engines: {node: '>=18.0.0'} - '@googleapis/sheets@5.0.5': - resolution: {integrity: sha512-XMoONmgAJm2jYeTYHX4054VcEkElxlgqmnHvt0wAurzEHoGJLdUHhTAJXGPLgSs4WVMPtgU8HLrmk7/U+Qlw7A==} + '@googleapis/sheets@7.0.1': + resolution: {integrity: sha512-n+ctnqtKd24Dd4X6yE2NSq47iodqxvaaRcxNdqLIkV+4GQs0u8UnF7Cj9Bqi8/sd9kdLZV70H5R7q/lzVEhpmw==} engines: {node: '>=12.0.0'} '@humanwhocodes/config-array@0.11.14': @@ -2015,8 +2015,8 @@ packages: '@types/react': optional: true - '@mui/base@5.0.0-beta.46': - resolution: {integrity: sha512-Fr7V59LPOVZ8IYwXIkGKOAn/iNrEcvQBpxJZwyLNLr+h+JlMuWKJVcfBYsIDo/ebEocbZRq8ptOBWvGuwLOw6g==} + '@mui/base@5.0.0-beta.48': + resolution: {integrity: sha512-po38+waGcGd+yXy0pWvnC/xTlOuUiiYT/o8PYm8XF1gWLJrRCKOzFT4k+nPI5y3AUQWbjC83CipDH12bzwL+ig==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^18.3.1 @@ -2029,8 +2029,8 @@ packages: '@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': resolution: {integrity: sha512-doh3M3U7HUGSBIWGe1yvesSbfDguMRjP0N09ogWSBM2hovXAlgULhMgcRTepAZLLwfRxFII0bCohq6B9NqoKuw==} - '@mui/docs@6.0.0-alpha.8': - resolution: {integrity: sha512-ycLOMLXijzfEKHH+6pxIZzdk5RKUsaptycFjviTV1Cn2iaDWNlvx6dgn/zNQcUjtnG669ixy8Dg8P38nLdaE4Q==} + '@mui/docs@6.0.0-alpha.10': + resolution: {integrity: sha512-L6KJ1XE+Nl+jQ0g5CUzZtveGuyZwbPksaGgbppi9bKhwBAvQiN4D8Hklbg5Zc6OvT32Ad2JxRhtx8iTcaHWFZg==} engines: {node: '>=12.0.0'} peerDependencies: '@mui/base': '*' @@ -2044,11 +2044,11 @@ packages: '@types/react': optional: true - '@mui/icons-material@6.0.0-alpha.8': - resolution: {integrity: sha512-SAzEkpCn9jwx5k+2DePHuBYNYn8yUNvdZp0LdQlI5BVxnYZEmPcCPrGHmRzARHtvZzwrjMrUJqANFVDbLsY+yQ==} + '@mui/icons-material@6.0.0-alpha.10': + resolution: {integrity: sha512-j9vDpwXVp4xMOxcW7dVquNSGgEFZIb3seCq+VBCkyRcXlC5vYqiEVemFhvM6qiSx0i0fOWB+T+nAYK8vOCFF4w==} engines: {node: '>=12.0.0'} peerDependencies: - '@mui/material': ^6.0.0-alpha.8 + '@mui/material': ^6.0.0-alpha.10 '@types/react': ^18.3.1 react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -2067,8 +2067,8 @@ packages: '@mui/internal-markdown@1.0.4': resolution: {integrity: sha512-wG9J76LpfknM5g30+xbaRmOYjxIJwt/d5S4qEniohcNp8cQuovPP0c3AhAhPTXsCyIn9xCsrc+qQwDne9kvxFg==} - '@mui/internal-scripts@1.0.8': - resolution: {integrity: sha512-oWiDtSZyFoqhft6V03/5rcwe0WHOY23A4yZ+CUbTV0anPjSb5/N1aws2Bgkc9m69aqyZqhRYRhLlTweVIxOCPw==} + '@mui/internal-scripts@1.0.9': + resolution: {integrity: sha512-HI4HTTBhrVUJlys6UirkbovcDKDR/qR/mZ7dyOE7lNa9PzxQam2V907kJdypWKAs/aPxGApl0wQufcrC9rwRRQ==} '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils': resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils} @@ -2094,8 +2094,8 @@ packages: '@types/react': optional: true - '@mui/joy@5.0.0-beta.41': - resolution: {integrity: sha512-lhTycWioAeilboZ8qOjFllWFQbQgjT2gb5Gx1e9YmljFiBF/sKgf6Yo8MOJHGbn2JksRFOFSOSTRmgkf5EabkA==} + '@mui/joy@5.0.0-beta.43': + resolution: {integrity: sha512-c9nVUEpAfXzvxSkIZ+4uzV5zXhTMCODgciBBaPMLwOpeJf/6MiYchp1/nLtgm9RzWdsPR9AdYG+DkKmcS0JzTA==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2129,8 +2129,8 @@ packages: '@types/react': optional: true - '@mui/material@6.0.0-alpha.8': - resolution: {integrity: sha512-fGuF/gDfHPkV2JaMnEpS+W4ri5enuC4V0I2X3d+gf7vXAU2Tqn0SSkK9s0w2cEarEiotHrcaqIGAbzzFTcIZkg==} + '@mui/material@6.0.0-alpha.10': + resolution: {integrity: sha512-2lhy00EAITJbzdnL5OufsH3Twdas2kfhngSwfcMqo2ntlN2WguR68JQJl0vUTFuVLyzse6yXpt5zwnD3igEQVQ==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2146,12 +2146,13 @@ packages: '@types/react': optional: true - '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/b948de7a7bb04261eb8401e838f9b65a61c89cec': - resolution: {tarball: https://codeload.github.com/mui/material-ui/tar.gz/b948de7a7bb04261eb8401e838f9b65a61c89cec} - version: 6.0.0-alpha.8 + '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/b7e5998ec222200ca6283aebf7b9fc534ef7bafd': + resolution: {tarball: https://codeload.github.com/mui/material-ui/tar.gz/b7e5998ec222200ca6283aebf7b9fc534ef7bafd} + version: 6.0.0-alpha.10 + engines: {pnpm: 8.15.8} - '@mui/private-theming@6.0.0-alpha.8': - resolution: {integrity: sha512-0iN+hK/OZTaiVfjFYDgWEc/frRB7Z1hfBsSJBniM4KPZnrdeHIArP+3TdYzRT0avh30O2KNkBNk0GG95BnUVEg==} + '@mui/private-theming@6.0.0-dev.20240529-082515-213b5e33ab': + resolution: {integrity: sha512-5AL+3TUSWaW2E9g+wIaD8jXHxFzqDInhNa3kNWJk2ZEqN2yG5msJLFr2BMp5/ev/x6V3AzTIIktkAV6qnlhOig==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^18.3.1 @@ -2160,8 +2161,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@6.0.0-alpha.8': - resolution: {integrity: sha512-7zJYgbjZRQpGN1SGmLDOgRpJZB26JjPSeqml5m+jA4wAsIONm2im+GHfki4nE3ay0uj1S555OMeNpaQ+sG9LkA==} + '@mui/styled-engine@6.0.0-dev.20240529-082515-213b5e33ab': + resolution: {integrity: sha512-+vpJBmaOPwp5fTjcin/MZ5umeqYAJD4RXxj0Ey+5KBp+j+7aXQBW5ZgehIZtM2eCg/VfUIfiVsB+i3SMFrfdFw==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -2173,8 +2174,8 @@ packages: '@emotion/styled': optional: true - '@mui/styles@6.0.0-alpha.8': - resolution: {integrity: sha512-n3ti4h+piXNNqjjXItwccxGmr7nj9Ciu58cGD5rrWVoW/nQm1Kb69r3rtLOpPhDStVSF6FF8vpF4cddD2njNCg==} + '@mui/styles@6.0.0-alpha.10': + resolution: {integrity: sha512-AFZUSqX0fPZy3C2Az05mDzWPaCJaiE6ySs1tDXZNdC1a6/uvCV/Z4MLNqWVn3zdAQn9azSR5mq4VwLLiSqPD3g==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^18.3.1 @@ -2183,8 +2184,8 @@ packages: '@types/react': optional: true - '@mui/system@6.0.0-alpha.8': - resolution: {integrity: sha512-Cg2/4yOH8F3HoECi+ToOOK2QBqsWdLKlQpxoFMdR9L0uhWYUdonfhVGGHFtGyvGAG5BVQYAI5XsMyxvBMVhVLw==} + '@mui/system@6.0.0-alpha.10': + resolution: {integrity: sha512-aJBTHu02fE2sYLkpRcncHmE76MSZfoEgNP7pMNh2zMrrDSX8gr9/Jjz3c3mJ6IsD2JyovC0eVuiMH6IseRWWHg==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2217,8 +2218,18 @@ packages: '@types/react': optional: true - '@mui/utils@6.0.0-alpha.8': - resolution: {integrity: sha512-X5lg0bh8B6uYt/0HXV+t82HXLTOVFEKcIBmIbJ5El1h9ykXaRTenr8mORxt5UC5w9DHFhkRoI8XiM5qyDuSJVw==} + '@mui/utils@6.0.0-alpha.9': + resolution: {integrity: sha512-fie2VEiVzpHCbcUIwgWx5lQT+SYjL3uHDCfutXzr7hTbnqDu9KSVEBPgADitFqZOGCIcBXfs4aE4LIn1FmmKjg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^18.3.1 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/utils@6.0.0-dev.20240529-082515-213b5e33ab': + resolution: {integrity: sha512-jyNcB0drDhYcoq5MHNTiEc63GfVE1GZK+CVUd8tlLzk5q631RPYJ5jONSOszLiUOXBmI8Uu1SBJUwrG3j2YG2A==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^18.3.1 @@ -2682,6 +2693,9 @@ packages: resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==} engines: {node: '>=14.0.0'} + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@sigstore/bundle@1.1.0': resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2729,6 +2743,10 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@sinonjs/commons@2.0.0': resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} @@ -4718,6 +4736,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + execa@9.1.0: + resolution: {integrity: sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==} + engines: {node: '>=18'} + expand-tilde@2.0.2: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} @@ -4774,6 +4796,10 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5021,6 +5047,10 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -5313,6 +5343,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + human-signals@7.0.0: + resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + engines: {node: '>=18.18.0'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -5552,6 +5586,10 @@ packages: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} @@ -5601,6 +5639,10 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -5627,6 +5669,10 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -6902,6 +6948,10 @@ packages: parse-link-header@2.0.0: resolution: {integrity: sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -7145,6 +7195,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-ms@9.0.0: + resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + engines: {node: '>=18'} + pretty-quick@4.0.0: resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} engines: {node: '>=14'} @@ -7949,6 +8003,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -8735,6 +8793,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yoctocolors@2.0.2: + resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} + engines: {node: '>=18'} + zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} @@ -9946,7 +10008,7 @@ snapshots: '@gitbeaker/core': 38.12.1 '@gitbeaker/requester-utils': 38.12.1 - '@googleapis/sheets@5.0.5(encoding@0.1.13)': + '@googleapis/sheets@7.0.1(encoding@0.1.13)': dependencies: googleapis-common: 7.1.0(encoding@0.1.13) transitivePeerDependencies: @@ -10188,7 +10250,7 @@ snapshots: '@babel/runtime': 7.24.6 '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 @@ -10197,12 +10259,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 - '@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/base@5.0.0-beta.48(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 @@ -10213,14 +10275,14 @@ snapshots: '@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {} - ? '@mui/docs@6.0.0-alpha.8(@mui/base@5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)' + ? '@mui/docs@6.0.0-alpha.10(@mui/base@5.0.0-beta.48(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-alpha.10(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/system@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)' : dependencies: '@babel/runtime': 7.24.6 - '@mui/base': 5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/icons-material': 6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + '@mui/base': 5.0.0-beta.48(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/icons-material': 6.0.0-alpha.10(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/internal-markdown': 1.0.4 - '@mui/material': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + '@mui/material': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/system': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) clipboard-copy: 4.0.1 clsx: 2.1.1 next: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -10230,10 +10292,10 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 - '@mui/icons-material@6.0.0-alpha.8(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': + '@mui/icons-material@6.0.0-alpha.10(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 - '@mui/material': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/material': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 optionalDependencies: '@types/react': 18.3.1 @@ -10257,7 +10319,7 @@ snapshots: marked: 5.1.2 prismjs: 1.29.0 - '@mui/internal-scripts@1.0.8': + '@mui/internal-scripts@1.0.9': dependencies: '@babel/core': 7.24.6 '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) @@ -10311,9 +10373,9 @@ snapshots: '@babel/runtime': 7.24.6 '@mui/base': 5.0.0-beta.42(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d - '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + '@mui/system': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) clsx: 2.1.1 prop-types: 15.8.1 react: 18.2.0 @@ -10323,14 +10385,14 @@ snapshots: '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@types/react': 18.3.1 - '@mui/joy@5.0.0-beta.41(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/joy@5.0.0-beta.43(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 - '@mui/base': 5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/base': 5.0.0-beta.48(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d - '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + '@mui/system': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) clsx: 2.1.1 prop-types: 15.8.1 react: 18.2.0 @@ -10340,10 +10402,10 @@ snapshots: '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@types/react': 18.3.1 - '@mui/material-nextjs@6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': + '@mui/material-nextjs@6.0.0-alpha.1(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 - '@mui/material': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/material': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 optionalDependencies: @@ -10351,14 +10413,14 @@ snapshots: '@emotion/server': 11.11.0 '@types/react': 18.3.1 - '@mui/material@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/material@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 - '@mui/base': 5.0.0-beta.46(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/base': 5.0.0-beta.48(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d - '@mui/system': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) + '@mui/system': 6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) '@types/react-transition-group': 4.4.10 clsx: 2.1.1 csstype: 3.1.3 @@ -10372,12 +10434,12 @@ snapshots: '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) '@types/react': 18.3.1 - '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/b948de7a7bb04261eb8401e838f9b65a61c89cec(@opentelemetry/api@1.8.0)(encoding@0.1.13)': + '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/b7e5998ec222200ca6283aebf7b9fc534ef7bafd(@opentelemetry/api@1.8.0)(encoding@0.1.13)': dependencies: - '@googleapis/sheets': 5.0.5(encoding@0.1.13) + '@googleapis/sheets': 7.0.1(encoding@0.1.13) '@netlify/functions': 2.7.0(@opentelemetry/api@1.8.0) '@slack/bolt': 3.18.0 - execa: 8.0.1 + execa: 9.1.0 google-auth-library: 9.10.0(encoding@0.1.13) transitivePeerDependencies: - '@opentelemetry/api' @@ -10387,16 +10449,16 @@ snapshots: - supports-color - utf-8-validate - '@mui/private-theming@6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0)': + '@mui/private-theming@6.0.0-dev.20240529-082515-213b5e33ab(@types/react@18.3.1)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-dev.20240529-082515-213b5e33ab(@types/react@18.3.1)(react@18.2.0) prop-types: 15.8.1 react: 18.2.0 optionalDependencies: '@types/react': 18.3.1 - '@mui/styled-engine@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(react@18.2.0)': + '@mui/styled-engine@6.0.0-dev.20240529-082515-213b5e33ab(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 '@emotion/cache': 11.11.0 @@ -10407,13 +10469,13 @@ snapshots: '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.2.0) '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0) - '@mui/styles@6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0)': + '@mui/styles@6.0.0-alpha.10(@types/react@18.3.1)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 '@emotion/hash': 0.9.1 - '@mui/private-theming': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/private-theming': 6.0.0-dev.20240529-082515-213b5e33ab(@types/react@18.3.1)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) clsx: 2.1.1 csstype: 3.1.3 hoist-non-react-statics: 3.3.2 @@ -10430,13 +10492,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 - '@mui/system@6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': + '@mui/system@6.0.0-alpha.10(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 - '@mui/private-theming': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) - '@mui/styled-engine': 6.0.0-alpha.8(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(react@18.2.0) + '@mui/private-theming': 6.0.0-dev.20240529-082515-213b5e33ab(@types/react@18.3.1)(react@18.2.0) + '@mui/styled-engine': 6.0.0-dev.20240529-082515-213b5e33ab(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0))(@types/react@18.3.1)(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.3.1) - '@mui/utils': 6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0) + '@mui/utils': 6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 @@ -10460,7 +10522,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 - '@mui/utils@6.0.0-alpha.8(@types/react@18.3.1)(react@18.2.0)': + '@mui/utils@6.0.0-alpha.9(@types/react@18.3.1)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.6 + '@types/prop-types': 15.7.12 + prop-types: 15.8.1 + react: 18.2.0 + react-is: 18.2.0 + optionalDependencies: + '@types/react': 18.3.1 + + '@mui/utils@6.0.0-dev.20240529-082515-213b5e33ab(@types/react@18.3.1)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.6 '@types/prop-types': 15.7.12 @@ -10980,6 +11052,8 @@ snapshots: '@remix-run/router@1.16.1': {} + '@sec-ant/readable-stream@0.4.1': {} + '@sigstore/bundle@1.1.0': dependencies: '@sigstore/protobuf-specs': 0.2.1 @@ -11035,6 +11109,8 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@sinonjs/commons@2.0.0': dependencies: type-detect: 4.0.8 @@ -13592,6 +13668,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + execa@9.1.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.3.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.0.2 + expand-tilde@2.0.2: dependencies: homedir-polyfill: 1.0.3 @@ -13678,6 +13769,10 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + figures@6.1.0: + dependencies: + is-unicode-supported: 2.0.0 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -13940,6 +14035,11 @@ snapshots: get-stream@8.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 @@ -14312,6 +14412,8 @@ snapshots: human-signals@5.0.0: {} + human-signals@7.0.0: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -14524,6 +14626,8 @@ snapshots: is-plain-obj@2.1.0: {} + is-plain-obj@4.1.0: {} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 @@ -14559,6 +14663,8 @@ snapshots: is-stream@3.0.0: {} + is-stream@4.0.1: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 @@ -14581,6 +14687,8 @@ snapshots: is-unicode-supported@0.1.0: {} + is-unicode-supported@2.0.0: {} + is-weakmap@2.0.2: {} is-weakref@1.0.2: @@ -16231,6 +16339,8 @@ snapshots: dependencies: xtend: 4.0.2 + parse-ms@4.0.0: {} + parse-passwd@1.0.0: {} parse-path@7.0.0: @@ -16434,6 +16544,10 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.2.0 + pretty-ms@9.0.0: + dependencies: + parse-ms: 4.0.0 + pretty-quick@4.0.0(prettier@3.2.5): dependencies: execa: 5.1.1 @@ -17400,6 +17514,8 @@ snapshots: strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -18329,4 +18445,6 @@ snapshots: yocto-queue@1.0.0: {} + yoctocolors@2.0.2: {} + zwitch@1.0.5: {} diff --git a/stylelint.config.js b/stylelint.config.js deleted file mode 100644 index 6006fbe42..000000000 --- a/stylelint.config.js +++ /dev/null @@ -1,12 +0,0 @@ -// TODO move to ESM -const baseline = require('@mui/monorepo/.stylelintrc'); - -// TODO remove. In theory, deleting these lines should just work. -delete baseline.rules['declaration-colon-newline-after']; -delete baseline.rules['function-parentheses-newline-inside']; -delete baseline.rules['no-missing-end-of-source-newline']; -delete baseline.rules['value-list-comma-newline-after']; - -module.exports = { - ...baseline, -}; diff --git a/stylelint.config.mjs b/stylelint.config.mjs new file mode 100644 index 000000000..4edd0ab68 --- /dev/null +++ b/stylelint.config.mjs @@ -0,0 +1 @@ +export { default } from '@mui/monorepo/stylelint.config.mjs'; diff --git a/test/package.json b/test/package.json index 76e968d85..a15d8ad9d 100644 --- a/test/package.json +++ b/test/package.json @@ -12,7 +12,7 @@ "@emotion/react": "^11.11.4", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/fb183624/@mui/internal-test-utils", "@mui/joy": "5.0.0-beta.36", - "@mui/material": "6.0.0-alpha.8", + "@mui/material": "6.0.0-alpha.10", "@playwright/test": "1.43.1", "@testing-library/dom": "^10.1.0", "@types/chai": "^4.3.16", From 67ab7062cfaf73ee6855eedd8f8104aae0e9b9fd Mon Sep 17 00:00:00 2001 From: Colm Date: Thu, 6 Jun 2024 09:53:51 +0100 Subject: [PATCH 033/140] [docs] Convert alpha component docs to new docs template (#392) --- .../data/base/components/checkbox/checkbox.md | 98 +++++------- .../components/number-field/number-field.md | 143 +++++++++--------- docs/data/base/components/switch/switch.md | 68 +++++---- docs/data/base/components/tabs/tabs.md | 24 +-- 4 files changed, 154 insertions(+), 179 deletions(-) diff --git a/docs/data/base/components/checkbox/checkbox.md b/docs/data/base/components/checkbox/checkbox.md index a3cb7f58f..26ff66e2f 100644 --- a/docs/data/base/components/checkbox/checkbox.md +++ b/docs/data/base/components/checkbox/checkbox.md @@ -10,108 +10,78 @@ packageName: '@base_ui/react' # Checkbox -

Checkboxes give users binary choices when presented with multiple options in a series.

+

Checkbox gives users a binary choice between multiple options in a series.

{{"component": "@mui/docs/ComponentLinkHeader", "design": false}} {{"component": "modules/components/ComponentPageTabs.js"}} -## Introduction - -The Checkbox component provides users with a checkbox for toggling a checked state. - {{"demo": "UnstyledCheckboxIntroduction", "defaultCodeOpen": false, "bg": "gradient"}} -## Component +## Installation -```jsx -import * as Checkbox from '@base_ui/react/Checkbox'; -``` +Base UI components are all available as a single package. -### Anatomy + -The `Checkbox` component is composed of a root component and an indicator child component: - -```tsx - - - +```bash npm +npm install @base_ui/react ``` -The indicator can contain children, such as an icon: - -```tsx - - - - - +```bash yarn +yarn add @base_ui/react ``` -The indicator conditionally unmounts its children when the checkbox is unchecked. For CSS animations, you can use the `keepMounted` prop to transition `visibility` and `opacity` for example: - -```tsx - - - - - +```bash pnpm +pnpm add @base_ui/react ``` -### Custom structure + -Use the `render` prop to override the rendered checkbox or indicator element with your own components: +Once you have the package installed, import the component. -```jsx - }> - } /> - +```ts +import * as Checkbox from '@base_ui/react/Checkbox'; ``` -To ensure behavior works as expected: +## Anatomy -- **Forward all props**: Your component should spread all props to the underlying element. -- **Forward the `ref`**: Your component should use [`forwardRef`](https://react.dev/reference/react/forwardRef) to ensure the Checkbox components can access the element via a ref. +Checkbox is composed of two components: -A custom component that adheres to these two principles looks like this: +- `` renders a `