From c38f63de5d3c575ea266f1138dc0e38e17645b06 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 26 Jul 2024 17:16:45 +0200
Subject: [PATCH 01/34] Bump Public packages' dependencies (#486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
packages/mui-base/package.json | 6 ++--
pnpm-lock.yaml | 51 +++++++++++++++++-----------------
2 files changed, 29 insertions(+), 28 deletions(-)
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index 68ade8b5fe..d161e1dc88 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -39,11 +39,11 @@
},
"dependencies": {
"@babel/runtime": "^7.24.8",
- "@floating-ui/react": "^0.26.19",
+ "@floating-ui/react": "^0.26.20",
"@floating-ui/react-dom": "^2.1.1",
- "@floating-ui/utils": "^0.2.4",
+ "@floating-ui/utils": "^0.2.5",
"@mui/types": "^7.2.15",
- "@mui/utils": "^5.16.4",
+ "@mui/utils": "^5.16.5",
"clsx": "^2.1.1",
"prop-types": "^15.8.1"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a6cd55be87..6c9663a13d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -561,20 +561,20 @@ importers:
specifier: ^7.24.6
version: 7.24.6
'@floating-ui/react':
- specifier: ^0.26.19
- version: 0.26.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^0.26.20
+ version: 0.26.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@floating-ui/react-dom':
specifier: ^2.1.1
version: 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@floating-ui/utils':
- specifier: ^0.2.4
- version: 0.2.4
+ specifier: ^0.2.5
+ version: 0.2.5
'@mui/types':
specifier: ^7.2.15
version: 7.2.15(@types/react@18.3.1)
'@mui/utils':
- specifier: ^5.16.4
- version: 5.16.4(@types/react@18.3.1)(react@18.2.0)
+ specifier: ^5.16.5
+ version: 5.16.5(@types/react@18.3.1)(react@18.2.0)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -584,7 +584,7 @@ importers:
devDependencies:
'@mui/internal-babel-macros':
specifier: ^1.0.1
- version: 1.0.1(@mui/utils@5.16.4(@types/react@18.3.1)(react@18.2.0))
+ version: 1.0.1(@mui/utils@5.16.5(@types/react@18.3.1)(react@18.2.0))
'@mui/internal-test-utils':
specifier: 1.0.5
version: 1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -1780,14 +1780,14 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- '@floating-ui/react@0.26.19':
- resolution: {integrity: sha512-Jk6zITdjjIvjO/VdQFvpRaD3qPwOHH6AoDHxjhpy+oK4KFgaSP871HYWUAPdnLmx1gQ+w/pB312co3tVml+BXA==}
+ '@floating-ui/react@0.26.20':
+ resolution: {integrity: sha512-RixKJJG92fcIsVoqrFr4Onpzh7hlOx4U7NV4aLhMLmtvjZ5oTB/WzXaANYUZATKqXvvW7t9sCxtzejip26N5Ag==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- '@floating-ui/utils@0.2.4':
- resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==}
+ '@floating-ui/utils@0.2.5':
+ resolution: {integrity: sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==}
'@gitbeaker/core@38.12.1':
resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==}
@@ -2213,8 +2213,8 @@ packages:
'@types/react':
optional: true
- '@mui/utils@5.16.4':
- resolution: {integrity: sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==}
+ '@mui/utils@5.16.5':
+ resolution: {integrity: sha512-CwhcA9y44XwK7k2joL3Y29mRUnoBt+gOZZdGyw7YihbEwEErJYBtDwbZwVgH68zAljGe/b+Kd5bzfl63Gi3R2A==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@types/react': ^18.3.1
@@ -9793,12 +9793,12 @@ snapshots:
'@floating-ui/core@1.6.3':
dependencies:
- '@floating-ui/utils': 0.2.4
+ '@floating-ui/utils': 0.2.5
'@floating-ui/dom@1.6.6':
dependencies:
'@floating-ui/core': 1.6.3
- '@floating-ui/utils': 0.2.4
+ '@floating-ui/utils': 0.2.5
'@floating-ui/react-dom@2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
@@ -9806,15 +9806,15 @@ snapshots:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- '@floating-ui/react@0.26.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@floating-ui/react@0.26.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
'@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- '@floating-ui/utils': 0.2.4
+ '@floating-ui/utils': 0.2.5
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
tabbable: 6.2.0
- '@floating-ui/utils@0.2.4': {}
+ '@floating-ui/utils@0.2.5': {}
'@gitbeaker/core@38.12.1':
dependencies:
@@ -10058,7 +10058,7 @@ snapshots:
'@babel/runtime': 7.24.6
'@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 5.16.4(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
'@popperjs/core': 2.11.8
clsx: 2.1.1
prop-types: 15.8.1
@@ -10111,11 +10111,11 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.4(@types/react@18.3.1)(react@18.2.0))':
+ '@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.5(@types/react@18.3.1)(react@18.2.0))':
dependencies:
'@babel/helper-module-imports': 7.24.7
'@babel/runtime': 7.24.6
- '@mui/utils': 5.16.4(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
babel-plugin-macros: 3.1.0
transitivePeerDependencies:
- supports-color
@@ -10187,7 +10187,7 @@ snapshots:
'@mui/core-downloads-tracker': 5.16.1
'@mui/system': 5.16.1(@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.15(@types/react@18.3.1)
- '@mui/utils': 5.16.4(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
clsx: 2.1.1
prop-types: 15.8.1
react: 18.2.0
@@ -10246,7 +10246,7 @@ snapshots:
'@mui/private-theming@5.16.1(@types/react@18.3.1)(react@18.2.0)':
dependencies:
'@babel/runtime': 7.24.6
- '@mui/utils': 5.16.4(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
prop-types: 15.8.1
react: 18.2.0
optionalDependencies:
@@ -10312,7 +10312,7 @@ snapshots:
'@mui/private-theming': 5.16.1(@types/react@18.3.1)(react@18.2.0)
'@mui/styled-engine': 5.16.1(@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.15(@types/react@18.3.1)
- '@mui/utils': 5.16.4(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
@@ -10342,9 +10342,10 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/utils@5.16.4(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/utils@5.16.5(@types/react@18.3.1)(react@18.2.0)':
dependencies:
'@babel/runtime': 7.24.6
+ '@mui/types': 7.2.15(@types/react@18.3.1)
'@types/prop-types': 15.7.12
clsx: 2.1.1
prop-types: 15.8.1
From e1e73b9f167035b4908008d103c702641253c1f6 Mon Sep 17 00:00:00 2001
From: Olivier Tassinari
Date: Sun, 28 Jul 2024 17:44:53 +0200
Subject: [PATCH 02/34] [docs] Fix page description line break
---
docs/data/base/components/slider/slider.md | 3 +--
docs/data/base/getting-started/accessibility/accessibility.md | 4 +---
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/docs/data/base/components/slider/slider.md b/docs/data/base/components/slider/slider.md
index 4c63db87ba..bbcc085ec8 100644
--- a/docs/data/base/components/slider/slider.md
+++ b/docs/data/base/components/slider/slider.md
@@ -10,8 +10,7 @@ packageName: '@base_ui/react'
# Slider
-The Slider component provides users with an input for a one or more numerical values within a given range.
-
+The Slider component provides users with an input for a one or more numerical values within a given range.
{{"component": "@mui/docs/ComponentLinkHeader", "design": false}}
diff --git a/docs/data/base/getting-started/accessibility/accessibility.md b/docs/data/base/getting-started/accessibility/accessibility.md
index 8d8195b2ee..f17480517a 100644
--- a/docs/data/base/getting-started/accessibility/accessibility.md
+++ b/docs/data/base/getting-started/accessibility/accessibility.md
@@ -1,8 +1,6 @@
# Accessibility
-
-Learn how to make the most of Base UI's accessibility features and guidelines.
-
+Learn how to make the most of Base UI's accessibility features and guidelines.
Accessibility is our top priority for Base UI components.
However, the library cannot make your application fully accessible on its own.
From ef8538f7fa997d84b8b7f17cbb39ab94f2bd293b Mon Sep 17 00:00:00 2001
From: Lukas Tyla
Date: Mon, 29 Jul 2024 10:10:10 +0300
Subject: [PATCH 03/34] [code-infra] Propagate API docs builder package
interface changes (#478)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Michał Dudak
---
scripts/buildApiDocs/config/generateApiLinks.ts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/scripts/buildApiDocs/config/generateApiLinks.ts b/scripts/buildApiDocs/config/generateApiLinks.ts
index 31ecd2feb3..664d973f60 100644
--- a/scripts/buildApiDocs/config/generateApiLinks.ts
+++ b/scripts/buildApiDocs/config/generateApiLinks.ts
@@ -1,6 +1,5 @@
import kebabCase from 'lodash/kebabCase';
-import { ReactApi as ComponentReactApi } from '@mui-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder';
-import { ReactApi as HookReactApi } from '@mui-internal/api-docs-builder/ApiBuilders/HookApiBuilder';
+import { ComponentReactApi, HookReactApi } from '@mui-internal/api-docs-builder';
/**
* Generates the api links, in a format that would point to the appropriate API tab
From 25eb16b271c6e704bb261bb4df71b6951c0a5585 Mon Sep 17 00:00:00 2001
From: Olivier Tassinari
Date: Mon, 29 Jul 2024 14:46:31 +0200
Subject: [PATCH 04/34] [core] Fix event naming convention
---
.../components/checkbox/UnstyledCheckboxIndeterminateGroup.js | 4 ++--
.../checkbox/UnstyledCheckboxIndeterminateGroup.tsx | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.js b/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.js
index a0304e6c9c..cf9ef46b15 100644
--- a/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.js
+++ b/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.js
@@ -30,7 +30,7 @@ export default function UnstyledCheckboxIndeterminateGroup() {
{isIndeterminate ? : }
- e.preventDefault()}>
+ event.preventDefault()}>
Colors
@@ -52,7 +52,7 @@ export default function UnstyledCheckboxIndeterminateGroup() {
e.preventDefault()}
+ onMouseDown={(event) => event.preventDefault()}
>
{color}
diff --git a/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.tsx b/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.tsx
index a0304e6c9c..cf9ef46b15 100644
--- a/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.tsx
+++ b/docs/data/base/components/checkbox/UnstyledCheckboxIndeterminateGroup.tsx
@@ -30,7 +30,7 @@ export default function UnstyledCheckboxIndeterminateGroup() {
{isIndeterminate ? : }
- e.preventDefault()}>
+ event.preventDefault()}>
Colors
@@ -52,7 +52,7 @@ export default function UnstyledCheckboxIndeterminateGroup() {
e.preventDefault()}
+ onMouseDown={(event) => event.preventDefault()}
>
{color}
From 3dd6ed5971433c96a1f9b84af06bc3fb077116f3 Mon Sep 17 00:00:00 2001
From: Olivier Tassinari
Date: Mon, 29 Jul 2024 16:23:41 +0200
Subject: [PATCH 05/34] [docs] Fix Vale errors (#492)
---
README.md | 4 ++--
docs/data/base/components/alert-dialog/alert-dialog.md | 4 ++--
docs/data/base/components/checkbox/checkbox.md | 2 +-
docs/data/base/components/dialog/dialog.md | 4 ++--
docs/data/base/components/number-field/number-field.md | 2 +-
docs/data/base/components/switch/switch.md | 2 +-
packages/mui-base/src/legacy/README.md | 2 +-
7 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 801cbc2fc9..717b477d51 100644
--- a/README.md
+++ b/README.md
@@ -4,13 +4,13 @@
-
+
-Base UI is an unstyled UI component library for building accessible user interfaces while maintaining complete control over styling.
+Base UI is an unstyled UI component library for building accessible user interfaces while maintaining complete control over styling.
diff --git a/docs/data/base/components/alert-dialog/alert-dialog.md b/docs/data/base/components/alert-dialog/alert-dialog.md
index ad67481d4b..0c7225a2e1 100644
--- a/docs/data/base/components/alert-dialog/alert-dialog.md
+++ b/docs/data/base/components/alert-dialog/alert-dialog.md
@@ -18,7 +18,7 @@ waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog/
## Installation
-Base UI components are all available as a single package.
+Base UI components are all available as a single package.
@@ -131,7 +131,7 @@ If a component has a transition or animation applied to it when it closes, it wi
As this detection of exit animations requires an extra render, you may opt out of it by setting the `animated` prop on Popup and Backdrop to `false`.
We also recommend doing so in automated tests, to avoid asynchronous behavior and make testing easier.
-Alternatively, you can use JS-based animations with a library like framer-motion, React Spring, or similar.
+Alternatively, you can use JavaScript-based animations with a library like framer-motion, React Spring, or similar.
With this approach set the `keepMounted` to `true` and let the animation library control mounting and unmounting.
### CSS transitions
diff --git a/docs/data/base/components/checkbox/checkbox.md b/docs/data/base/components/checkbox/checkbox.md
index 26ff66e2fd..859573f5a0 100644
--- a/docs/data/base/components/checkbox/checkbox.md
+++ b/docs/data/base/components/checkbox/checkbox.md
@@ -20,7 +20,7 @@ packageName: '@base_ui/react'
## Installation
-Base UI components are all available as a single package.
+Base UI components are all available as a single package.
diff --git a/docs/data/base/components/dialog/dialog.md b/docs/data/base/components/dialog/dialog.md
index ac4f7c7e66..4f53472391 100644
--- a/docs/data/base/components/dialog/dialog.md
+++ b/docs/data/base/components/dialog/dialog.md
@@ -19,7 +19,7 @@ waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
## Installation
-Base UI components are all available as a single package.
+Base UI components are all available as a single package.
@@ -153,7 +153,7 @@ If a component has a transition or animation applied to it when it closes, it wi
As this detection of exit animations requires an extra render, you may opt out of it by setting the `animated` prop on Root to `false`.
We also recommend doing so in automated tests, to avoid asynchronous behavior and make testing easier.
-Alternatively, you can use JS-based animations with a library like framer-motion, React Spring, or similar.
+Alternatively, you can use JavaScript-based animations with a library like framer-motion, React Spring, or similar.
With this approach set the `keepMounted` to `true` and let the animation library control mounting and unmounting.
### CSS transitions
diff --git a/docs/data/base/components/number-field/number-field.md b/docs/data/base/components/number-field/number-field.md
index f116e5d900..3b78fcd7b6 100644
--- a/docs/data/base/components/number-field/number-field.md
+++ b/docs/data/base/components/number-field/number-field.md
@@ -20,7 +20,7 @@ packageName: '@base_ui/react'
## Installation
-Base UI components are all available as a single package.
+Base UI components are all available as a single package.
diff --git a/docs/data/base/components/switch/switch.md b/docs/data/base/components/switch/switch.md
index dc5b3e8b7a..43c45567a8 100644
--- a/docs/data/base/components/switch/switch.md
+++ b/docs/data/base/components/switch/switch.md
@@ -20,7 +20,7 @@ packageName: '@base_ui/react'
## Installation
-Base UI components are all available as a single package.
+Base UI components are all available as a single package.
diff --git a/packages/mui-base/src/legacy/README.md b/packages/mui-base/src/legacy/README.md
index b75c3e2847..c107528834 100644
--- a/packages/mui-base/src/legacy/README.md
+++ b/packages/mui-base/src/legacy/README.md
@@ -1,4 +1,4 @@
-# Legacy Base UI components
+# Legacy Base UI components
The components and hooks in this directory expose an older version of the customization API.
They are kept in the repository to maintain history, but they are not published in the npm package.
From 0e60b910dc4347a48be124be557cdd2f07819da9 Mon Sep 17 00:00:00 2001
From: Albert Yu
Date: Tue, 30 Jul 2024 22:13:14 +0800
Subject: [PATCH 06/34] [Progress] New `Progress` components (#470)
---
.../progress/IndeterminateProgress.js | 75 ++++++
.../progress/IndeterminateProgress.tsx | 75 ++++++
.../IndeterminateProgress.tsx.preview | 8 +
.../base/components/progress/RtlProgress.js | 59 +++++
.../base/components/progress/RtlProgress.tsx | 59 +++++
.../progress/RtlProgress.tsx.preview | 8 +
.../UnstyledProgressIntroduction/css/index.js | 79 ++++++
.../css/index.tsx | 79 ++++++
.../css/index.tsx.preview | 9 +
.../system/index.js | 69 +++++
.../system/index.tsx | 69 +++++
.../system/index.tsx.preview | 6 +
.../tailwind/index.js | 104 ++++++++
.../tailwind/index.tsx | 91 +++++++
.../tailwind/index.tsx.preview | 6 +
.../data/base/components/progress/progress.md | 137 ++++++++++
docs/data/base/pages.ts | 2 +-
docs/data/base/pagesApi.js | 20 ++
.../pages/base-ui/api/progress-indicator.json | 19 ++
docs/pages/base-ui/api/progress-root.json | 43 ++++
docs/pages/base-ui/api/progress-track.json | 19 ++
.../base-ui/api/use-progress-indicator.json | 27 ++
docs/pages/base-ui/api/use-progress-root.json | 57 +++++
.../base-ui/react-progress/[docsTab]/index.js | 86 +++++++
docs/pages/base-ui/react-progress/index.js | 13 +
docs/pages/experiments/progress.tsx | 241 ++++++++++++++++++
.../progress-indicator.json | 10 +
.../api-docs/progress-root/progress-root.json | 31 +++
.../progress-track/progress-track.json | 10 +
.../use-progress-indicator.json | 12 +
.../use-progress-root/use-progress-root.json | 30 +++
docs/translations/translations.json | 1 +
.../Indicator/ProgressIndicator.test.tsx | 77 ++++++
.../Progress/Indicator/ProgressIndicator.tsx | 57 +++++
.../Indicator/ProgressIndicator.types.ts | 33 +++
.../Indicator/useProgressIndicator.ts | 57 +++++
.../src/Progress/Root/ProgressContext.tsx | 20 ++
.../src/Progress/Root/ProgressRoot.test.tsx | 64 +++++
.../src/Progress/Root/ProgressRoot.tsx | 141 ++++++++++
.../src/Progress/Root/ProgressRoot.types.ts | 89 +++++++
.../mui-base/src/Progress/Root/styleHooks.ts | 8 +
.../src/Progress/Root/useProgressRoot.ts | 81 ++++++
.../src/Progress/Track/ProgressTrack.test.tsx | 35 +++
.../src/Progress/Track/ProgressTrack.tsx | 48 ++++
.../src/Progress/Track/ProgressTrack.types.ts | 4 +
.../mui-base/src/Progress/index.barrel.ts | 15 ++
packages/mui-base/src/Progress/index.ts | 21 ++
packages/mui-base/src/index.ts | 1 +
48 files changed, 2304 insertions(+), 1 deletion(-)
create mode 100644 docs/data/base/components/progress/IndeterminateProgress.js
create mode 100644 docs/data/base/components/progress/IndeterminateProgress.tsx
create mode 100644 docs/data/base/components/progress/IndeterminateProgress.tsx.preview
create mode 100644 docs/data/base/components/progress/RtlProgress.js
create mode 100644 docs/data/base/components/progress/RtlProgress.tsx
create mode 100644 docs/data/base/components/progress/RtlProgress.tsx.preview
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.js
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx.preview
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.js
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx.preview
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.js
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx
create mode 100644 docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx.preview
create mode 100644 docs/data/base/components/progress/progress.md
create mode 100644 docs/pages/base-ui/api/progress-indicator.json
create mode 100644 docs/pages/base-ui/api/progress-root.json
create mode 100644 docs/pages/base-ui/api/progress-track.json
create mode 100644 docs/pages/base-ui/api/use-progress-indicator.json
create mode 100644 docs/pages/base-ui/api/use-progress-root.json
create mode 100644 docs/pages/base-ui/react-progress/[docsTab]/index.js
create mode 100644 docs/pages/base-ui/react-progress/index.js
create mode 100644 docs/pages/experiments/progress.tsx
create mode 100644 docs/translations/api-docs/progress-indicator/progress-indicator.json
create mode 100644 docs/translations/api-docs/progress-root/progress-root.json
create mode 100644 docs/translations/api-docs/progress-track/progress-track.json
create mode 100644 docs/translations/api-docs/use-progress-indicator/use-progress-indicator.json
create mode 100644 docs/translations/api-docs/use-progress-root/use-progress-root.json
create mode 100644 packages/mui-base/src/Progress/Indicator/ProgressIndicator.test.tsx
create mode 100644 packages/mui-base/src/Progress/Indicator/ProgressIndicator.tsx
create mode 100644 packages/mui-base/src/Progress/Indicator/ProgressIndicator.types.ts
create mode 100644 packages/mui-base/src/Progress/Indicator/useProgressIndicator.ts
create mode 100644 packages/mui-base/src/Progress/Root/ProgressContext.tsx
create mode 100644 packages/mui-base/src/Progress/Root/ProgressRoot.test.tsx
create mode 100644 packages/mui-base/src/Progress/Root/ProgressRoot.tsx
create mode 100644 packages/mui-base/src/Progress/Root/ProgressRoot.types.ts
create mode 100644 packages/mui-base/src/Progress/Root/styleHooks.ts
create mode 100644 packages/mui-base/src/Progress/Root/useProgressRoot.ts
create mode 100644 packages/mui-base/src/Progress/Track/ProgressTrack.test.tsx
create mode 100644 packages/mui-base/src/Progress/Track/ProgressTrack.tsx
create mode 100644 packages/mui-base/src/Progress/Track/ProgressTrack.types.ts
create mode 100644 packages/mui-base/src/Progress/index.barrel.ts
create mode 100644 packages/mui-base/src/Progress/index.ts
diff --git a/docs/data/base/components/progress/IndeterminateProgress.js b/docs/data/base/components/progress/IndeterminateProgress.js
new file mode 100644
index 0000000000..10d4917d24
--- /dev/null
+++ b/docs/data/base/components/progress/IndeterminateProgress.js
@@ -0,0 +1,75 @@
+import * as React from 'react';
+import { styled, keyframes, css, Box } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function IndeterminateProgress() {
+ return (
+
+
+
+ Uploading files
+
+
+
+
+
+
+ );
+}
+
+const Progress = styled(BaseProgress.Root)`
+ display: flex;
+ flex-flow: column nowrap;
+ gap: 1rem;
+`;
+
+const ProgressTrack = styled(BaseProgress.Track)(
+ ({ theme }) => `
+ position: relative;
+ width: 100%;
+ height: 4px;
+ border-radius: 9999px;
+ background-color: ${theme.palette.mode === 'dark' ? grey[400] : grey[400]};
+ display: flex;
+ overflow: hidden;
+ `,
+);
+
+const indeterminateProgress = keyframes`
+ from {
+ transform: translateX(-100%);
+ }
+
+ to {
+ transform: translateX(20rem);
+ }
+`;
+
+const ProgressIndicator = styled(BaseProgress.Indicator)(
+ ({ theme }) => css`
+ background-color: ${theme.palette.mode === 'dark' ? BLUE400 : BLUE500};
+ border-radius: inherit;
+
+ &[data-state='indeterminate'] {
+ width: 25%;
+ animation: ${indeterminateProgress} 1.5s infinite ease-in-out;
+ will-change: transform;
+ }
+ `,
+);
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
diff --git a/docs/data/base/components/progress/IndeterminateProgress.tsx b/docs/data/base/components/progress/IndeterminateProgress.tsx
new file mode 100644
index 0000000000..10d4917d24
--- /dev/null
+++ b/docs/data/base/components/progress/IndeterminateProgress.tsx
@@ -0,0 +1,75 @@
+import * as React from 'react';
+import { styled, keyframes, css, Box } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function IndeterminateProgress() {
+ return (
+
+
+
+ Uploading files
+
+
+
+
+
+
+ );
+}
+
+const Progress = styled(BaseProgress.Root)`
+ display: flex;
+ flex-flow: column nowrap;
+ gap: 1rem;
+`;
+
+const ProgressTrack = styled(BaseProgress.Track)(
+ ({ theme }) => `
+ position: relative;
+ width: 100%;
+ height: 4px;
+ border-radius: 9999px;
+ background-color: ${theme.palette.mode === 'dark' ? grey[400] : grey[400]};
+ display: flex;
+ overflow: hidden;
+ `,
+);
+
+const indeterminateProgress = keyframes`
+ from {
+ transform: translateX(-100%);
+ }
+
+ to {
+ transform: translateX(20rem);
+ }
+`;
+
+const ProgressIndicator = styled(BaseProgress.Indicator)(
+ ({ theme }) => css`
+ background-color: ${theme.palette.mode === 'dark' ? BLUE400 : BLUE500};
+ border-radius: inherit;
+
+ &[data-state='indeterminate'] {
+ width: 25%;
+ animation: ${indeterminateProgress} 1.5s infinite ease-in-out;
+ will-change: transform;
+ }
+ `,
+);
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
diff --git a/docs/data/base/components/progress/IndeterminateProgress.tsx.preview b/docs/data/base/components/progress/IndeterminateProgress.tsx.preview
new file mode 100644
index 0000000000..e45ea5cb8b
--- /dev/null
+++ b/docs/data/base/components/progress/IndeterminateProgress.tsx.preview
@@ -0,0 +1,8 @@
+
+
+ Uploading files
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/progress/RtlProgress.js b/docs/data/base/components/progress/RtlProgress.js
new file mode 100644
index 0000000000..8423137d3f
--- /dev/null
+++ b/docs/data/base/components/progress/RtlProgress.js
@@ -0,0 +1,59 @@
+import * as React from 'react';
+import { styled, Box } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function RtlProgress() {
+ return (
+
+
+
+ Uploading files (RTL)
+
+
+
+
+
+
+ );
+}
+
+const Progress = styled(BaseProgress.Root)`
+ display: flex;
+ flex-flow: column nowrap;
+ gap: 1rem;
+`;
+
+const ProgressTrack = styled(BaseProgress.Track)(
+ ({ theme }) => `
+ position: relative;
+ width: 100%;
+ height: 4px;
+ border-radius: 9999px;
+ background-color: ${theme.palette.mode === 'dark' ? grey[400] : grey[400]};
+ display: flex;
+ overflow: hidden;
+ `,
+);
+
+const ProgressIndicator = styled(BaseProgress.Indicator)(
+ ({ theme }) => `
+ background-color: ${theme.palette.mode === 'dark' ? BLUE400 : BLUE500};
+ border-radius: inherit;
+ `,
+);
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
diff --git a/docs/data/base/components/progress/RtlProgress.tsx b/docs/data/base/components/progress/RtlProgress.tsx
new file mode 100644
index 0000000000..8423137d3f
--- /dev/null
+++ b/docs/data/base/components/progress/RtlProgress.tsx
@@ -0,0 +1,59 @@
+import * as React from 'react';
+import { styled, Box } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function RtlProgress() {
+ return (
+
+
+
+ Uploading files (RTL)
+
+
+
+
+
+
+ );
+}
+
+const Progress = styled(BaseProgress.Root)`
+ display: flex;
+ flex-flow: column nowrap;
+ gap: 1rem;
+`;
+
+const ProgressTrack = styled(BaseProgress.Track)(
+ ({ theme }) => `
+ position: relative;
+ width: 100%;
+ height: 4px;
+ border-radius: 9999px;
+ background-color: ${theme.palette.mode === 'dark' ? grey[400] : grey[400]};
+ display: flex;
+ overflow: hidden;
+ `,
+);
+
+const ProgressIndicator = styled(BaseProgress.Indicator)(
+ ({ theme }) => `
+ background-color: ${theme.palette.mode === 'dark' ? BLUE400 : BLUE500};
+ border-radius: inherit;
+ `,
+);
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
diff --git a/docs/data/base/components/progress/RtlProgress.tsx.preview b/docs/data/base/components/progress/RtlProgress.tsx.preview
new file mode 100644
index 0000000000..daa832be54
--- /dev/null
+++ b/docs/data/base/components/progress/RtlProgress.tsx.preview
@@ -0,0 +1,8 @@
+
+
+ Uploading files (RTL)
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.js b/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.js
new file mode 100644
index 0000000000..850ee0c4a3
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.js
@@ -0,0 +1,79 @@
+import * as React from 'react';
+import { useTheme } from '@mui/system';
+import * as Progress from '@base_ui/react/Progress';
+
+export default function UnstyledProgressIntroduction() {
+ return (
+
+
+
+ Uploading files
+
+
+
+
+
+
+
+ );
+}
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+export function Styles() {
+ const isDarkMode = useIsDarkMode();
+ return (
+
+ );
+}
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx b/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx
new file mode 100644
index 0000000000..850ee0c4a3
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx
@@ -0,0 +1,79 @@
+import * as React from 'react';
+import { useTheme } from '@mui/system';
+import * as Progress from '@base_ui/react/Progress';
+
+export default function UnstyledProgressIntroduction() {
+ return (
+
+
+
+ Uploading files
+
+
+
+
+
+
+
+ );
+}
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+export function Styles() {
+ const isDarkMode = useIsDarkMode();
+ return (
+
+ );
+}
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx.preview b/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx.preview
new file mode 100644
index 0000000000..28317020bb
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/css/index.tsx.preview
@@ -0,0 +1,9 @@
+
+
+ Uploading files
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.js b/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.js
new file mode 100644
index 0000000000..26b00d4047
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.js
@@ -0,0 +1,69 @@
+import * as React from 'react';
+import { styled, useTheme, Box } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function UnstyledProgressIntroduction() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+ return (
+
+
+ Uploading files
+
+
+
+
+
+ );
+}
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
+
+const Progress = styled(BaseProgress.Root)`
+ display: flex;
+ flex-flow: column nowrap;
+ gap: 1rem;
+`;
+
+const ProgressTrack = styled(BaseProgress.Track)`
+ position: relative;
+ width: 100%;
+ height: 4px;
+ border-radius: 9999px;
+ background-color: ${grey[400]};
+ display: flex;
+ overflow: hidden;
+`;
+
+const ProgressIndicator = styled(BaseProgress.Indicator)`
+ background-color: ${BLUE500};
+ border-radius: inherit;
+
+ .dark & {
+ background-color: ${BLUE400};
+ }
+`;
+
+const Label = styled('span')`
+ cursor: unset;
+ font-weight: bold;
+`;
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx b/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx
new file mode 100644
index 0000000000..26b00d4047
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx
@@ -0,0 +1,69 @@
+import * as React from 'react';
+import { styled, useTheme, Box } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function UnstyledProgressIntroduction() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+ return (
+
+
+ Uploading files
+
+
+
+
+
+ );
+}
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
+
+const Progress = styled(BaseProgress.Root)`
+ display: flex;
+ flex-flow: column nowrap;
+ gap: 1rem;
+`;
+
+const ProgressTrack = styled(BaseProgress.Track)`
+ position: relative;
+ width: 100%;
+ height: 4px;
+ border-radius: 9999px;
+ background-color: ${grey[400]};
+ display: flex;
+ overflow: hidden;
+`;
+
+const ProgressIndicator = styled(BaseProgress.Indicator)`
+ background-color: ${BLUE500};
+ border-radius: inherit;
+
+ .dark & {
+ background-color: ${BLUE400};
+ }
+`;
+
+const Label = styled('span')`
+ cursor: unset;
+ font-weight: bold;
+`;
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx.preview b/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx.preview
new file mode 100644
index 0000000000..6b525100aa
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/system/index.tsx.preview
@@ -0,0 +1,6 @@
+
+ Uploading files
+
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.js b/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.js
new file mode 100644
index 0000000000..ba8b175251
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.js
@@ -0,0 +1,104 @@
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useTheme } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function UnstyledProgressIntroduction() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+ return (
+
+
+ Uploading files
+
+
+
+
+
+ );
+}
+
+const Progress = React.forwardRef(function Progress(props, ref) {
+ return (
+
+ classNames(
+ 'flex flex-col gap-4',
+ typeof props.className === 'function'
+ ? props.className(state)
+ : props.className,
+ )
+ }
+ />
+ );
+});
+
+Progress.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]),
+};
+
+const ProgressTrack = React.forwardRef(function ProgressTrack(props, ref) {
+ return (
+
+ classNames(
+ 'relative w-full h-1 rounded-full bg-gray-400 flex overflow-hidden',
+ typeof props.className === 'function'
+ ? props.className(state)
+ : props.className,
+ )
+ }
+ />
+ );
+});
+
+ProgressTrack.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]),
+};
+
+const ProgressIndicator = React.forwardRef(function ProgressIndicator(props, ref) {
+ return (
+
+ classNames(
+ 'bg-blue-500 dark:bg-blue-400 rounded-[inherit]',
+ typeof props.className === 'function'
+ ? props.className(state)
+ : props.className,
+ )
+ }
+ />
+ );
+});
+
+ProgressIndicator.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]),
+};
+
+function Label(props) {
+ return ;
+}
+
+function classNames(...classes) {
+ return classes.filter(Boolean).join(' ');
+}
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx b/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx
new file mode 100644
index 0000000000..f4581e7472
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx
@@ -0,0 +1,91 @@
+import * as React from 'react';
+import { useTheme } from '@mui/system';
+import * as BaseProgress from '@base_ui/react/Progress';
+
+export default function UnstyledProgressIntroduction() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+ return (
+
+
+ Uploading files
+
+
+
+
+
+ );
+}
+
+const Progress = React.forwardRef(function Progress(
+ props: BaseProgress.RootProps,
+ ref: React.ForwardedRef,
+) {
+ return (
+
+ classNames(
+ 'flex flex-col gap-4',
+ typeof props.className === 'function'
+ ? props.className(state)
+ : props.className,
+ )
+ }
+ />
+ );
+});
+
+const ProgressTrack = React.forwardRef(function ProgressTrack(
+ props: BaseProgress.TrackProps,
+ ref: React.ForwardedRef,
+) {
+ return (
+
+ classNames(
+ 'relative w-full h-1 rounded-full bg-gray-400 flex overflow-hidden',
+ typeof props.className === 'function'
+ ? props.className(state)
+ : props.className,
+ )
+ }
+ />
+ );
+});
+
+const ProgressIndicator = React.forwardRef(function ProgressIndicator(
+ props: BaseProgress.IndicatorProps,
+ ref: React.ForwardedRef,
+) {
+ return (
+
+ classNames(
+ 'bg-blue-500 dark:bg-blue-400 rounded-[inherit]',
+ typeof props.className === 'function'
+ ? props.className(state)
+ : props.className,
+ )
+ }
+ />
+ );
+});
+
+function Label(props: React.HTMLAttributes) {
+ return ;
+}
+
+function classNames(...classes: Array) {
+ return classes.filter(Boolean).join(' ');
+}
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
diff --git a/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx.preview b/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx.preview
new file mode 100644
index 0000000000..6b525100aa
--- /dev/null
+++ b/docs/data/base/components/progress/UnstyledProgressIntroduction/tailwind/index.tsx.preview
@@ -0,0 +1,6 @@
+
+ Uploading files
+
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/progress/progress.md b/docs/data/base/components/progress/progress.md
new file mode 100644
index 0000000000..066b269a54
--- /dev/null
+++ b/docs/data/base/components/progress/progress.md
@@ -0,0 +1,137 @@
+---
+productId: base-ui
+title: React Progress components
+components: ProgressRoot, ProgressTrack, ProgressIndicator
+hooks: useProgressRoot, useProgressIndicator
+githubLabel: 'component: progress'
+waiAria: https://www.w3.org/TR/wai-aria-1.2/#progressbar
+packageName: '@base_ui/react'
+---
+
+# Progress
+
+The Progress component displays the status of a task or operation over time.
+
+{{"component": "@mui/docs/ComponentLinkHeader", "design": false}}
+
+{{"component": "modules/components/ComponentPageTabs.js"}}
+
+{{"demo": "UnstyledProgressIntroduction", "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.
+
+```jsx
+import * as Progress from '@base_ui/react/Progress';
+```
+
+### Anatomy
+
+Progress
+
+- ` ` is a top-level component that wraps the other components.
+- ` ` renders the rail that represents the total length or duration of progress.
+- ` ` renders the filled portion of the track.
+
+```tsx
+
+
+
+
+
+```
+
+## Value
+
+### Determinate
+
+The `value` prop represents the percentage value of the Progress component. The default minimum and maximum values are `0` and `100`, and can be changed with the `min` and `max` props. When progress is determinate the `data-state` attribute is initially `'progressing'`, changing to `'complete'` when `value` equals `max`.
+
+```tsx
+function App() {
+ const [progressValue] = React.useState(25);
+ return (
+
+
+
+
+
+ );
+}
+```
+
+### Indeterminate
+
+Set `value` to `null` to configure an indeterminate progress bar. The `data-state` attribute will be set to `indeterminate`.
+
+```tsx
+
+
+
+
+
+```
+
+{{"demo": "IndeterminateProgress.js"}}
+
+## RTL
+
+Set the `direction` prop to `'rtl'` to change the direction that the `Indicator` fills towards for right-to-left languages:
+
+```jsx
+{/* Subcomponents */}
+```
+
+{{"demo": "RtlProgress.js"}}
+
+## Overriding default components
+
+Use the `render` prop to override the rendered element for all subcomponents:
+
+```jsx
+ } />
+// or
+ } />
+```
+
+## Accessibility
+
+The Progress component implements the [ARIA progressbar specification](https://www.w3.org/TR/wai-aria-1.2/#progressbar).
+
+When using Progress, ensure that it has a human-readable text label by using either the `aria-label`, `aria-labelledby`, or `getAriaLabel` prop:
+
+```tsx
+
+ Loading progress
+
+
+
+
+
+// or
+
+
+
+
+
+
+```
diff --git a/docs/data/base/pages.ts b/docs/data/base/pages.ts
index b48934353d..3990ab14cf 100644
--- a/docs/data/base/pages.ts
+++ b/docs/data/base/pages.ts
@@ -45,7 +45,7 @@ const pages: readonly MuiPage[] = [
children: [
{ pathname: '/base-ui/react-alert-dialog', title: 'Alert Dialog' },
{ pathname: '/base-ui/react-dialog', title: 'Dialog' },
- // { pathname: '/base-ui/react-snackbar', title: 'Snackbar' },
+ { pathname: '/base-ui/react-progress', title: 'Progress' },
],
},
{
diff --git a/docs/data/base/pagesApi.js b/docs/data/base/pagesApi.js
index 1216d5191b..c58afdd633 100644
--- a/docs/data/base/pagesApi.js
+++ b/docs/data/base/pagesApi.js
@@ -180,6 +180,18 @@ module.exports = [
pathname: '/base-ui/react-preview-card/components-api/#preview-card-trigger',
title: 'PreviewCardTrigger',
},
+ {
+ pathname: '/base-ui/react-progress/components-api/#progress-indicator',
+ title: 'ProgressIndicator',
+ },
+ {
+ pathname: '/base-ui/react-progress/components-api/#progress-root',
+ title: 'ProgressRoot',
+ },
+ {
+ pathname: '/base-ui/react-progress/components-api/#progress-track',
+ title: 'ProgressTrack',
+ },
{ pathname: '/base-ui/react-select/components-api/#select', title: 'Select' },
{
pathname: '/base-ui/react-slider/components-api/#slider-control',
@@ -305,6 +317,14 @@ module.exports = [
pathname: '/base-ui/react-select/hooks-api/#use-option-context-stabilizer',
title: 'useOptionContextStabilizer',
},
+ {
+ pathname: '/base-ui/react-progress/hooks-api/#use-progress-indicator',
+ title: 'useProgressIndicator',
+ },
+ {
+ pathname: '/base-ui/react-progress/hooks-api/#use-progress-root',
+ title: 'useProgressRoot',
+ },
{ pathname: '/base-ui/react-select/hooks-api/#use-select', title: 'useSelect' },
{
pathname: '/base-ui/react-slider/hooks-api/#use-slider-control',
diff --git a/docs/pages/base-ui/api/progress-indicator.json b/docs/pages/base-ui/api/progress-indicator.json
new file mode 100644
index 0000000000..aa7e0347eb
--- /dev/null
+++ b/docs/pages/base-ui/api/progress-indicator.json
@@ -0,0 +1,19 @@
+{
+ "props": {
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "render": { "type": { "name": "union", "description": "element | func" } }
+ },
+ "name": "ProgressIndicator",
+ "imports": [
+ "import * as Progress from '@base_ui/react/Progress';\nconst ProgressIndicator = Progress.Indicator;"
+ ],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "ProgressIndicator",
+ "forwardsRefTo": "HTMLSpanElement",
+ "filename": "/packages/mui-base/src/Progress/Indicator/ProgressIndicator.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/progress-root.json b/docs/pages/base-ui/api/progress-root.json
new file mode 100644
index 0000000000..3f19432036
--- /dev/null
+++ b/docs/pages/base-ui/api/progress-root.json
@@ -0,0 +1,43 @@
+{
+ "props": {
+ "aria-label": { "type": { "name": "string" } },
+ "aria-labelledby": { "type": { "name": "string" } },
+ "aria-valuetext": { "type": { "name": "string" } },
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "direction": {
+ "type": { "name": "enum", "description": "'ltr' | 'rtl'" },
+ "default": "'ltr'"
+ },
+ "getAriaLabel": {
+ "type": { "name": "func" },
+ "signature": {
+ "type": "function(value: number | null) => string",
+ "describedArgs": ["value"]
+ }
+ },
+ "getAriaValueText": {
+ "type": { "name": "func" },
+ "signature": {
+ "type": "function(value: number | null) => string",
+ "describedArgs": ["value"]
+ }
+ },
+ "max": { "type": { "name": "number" }, "default": "100" },
+ "min": { "type": { "name": "number" }, "default": "0" },
+ "render": { "type": { "name": "union", "description": "element | func" } },
+ "value": { "type": { "name": "number" }, "default": "null" }
+ },
+ "name": "ProgressRoot",
+ "imports": [
+ "import * as Progress from '@base_ui/react/Progress';\nconst ProgressRoot = Progress.Root;"
+ ],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "ProgressRoot",
+ "forwardsRefTo": "HTMLDivElement",
+ "filename": "/packages/mui-base/src/Progress/Root/ProgressRoot.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/progress-track.json b/docs/pages/base-ui/api/progress-track.json
new file mode 100644
index 0000000000..d3c67ca359
--- /dev/null
+++ b/docs/pages/base-ui/api/progress-track.json
@@ -0,0 +1,19 @@
+{
+ "props": {
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "render": { "type": { "name": "union", "description": "element | func" } }
+ },
+ "name": "ProgressTrack",
+ "imports": [
+ "import * as Progress from '@base_ui/react/Progress';\nconst ProgressTrack = Progress.Track;"
+ ],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "ProgressTrack",
+ "forwardsRefTo": "HTMLSpanElement",
+ "filename": "/packages/mui-base/src/Progress/Track/ProgressTrack.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/use-progress-indicator.json b/docs/pages/base-ui/api/use-progress-indicator.json
new file mode 100644
index 0000000000..7d06812894
--- /dev/null
+++ b/docs/pages/base-ui/api/use-progress-indicator.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "value": {
+ "type": { "name": "number | null", "description": "number | null" },
+ "required": true
+ },
+ "direction": {
+ "type": { "name": "ProgressDirection", "description": "ProgressDirection" },
+ "default": "'ltr'"
+ },
+ "max": { "type": { "name": "number", "description": "number" }, "default": "100" },
+ "min": { "type": { "name": "number", "description": "number" }, "default": "0" }
+ },
+ "returnValue": {
+ "getRootProps": {
+ "type": {
+ "name": "(externalProps?: React.ComponentPropsWithRef<'span'>) => React.ComponentPropsWithRef<'span'>",
+ "description": "(externalProps?: React.ComponentPropsWithRef<'span'>) => React.ComponentPropsWithRef<'span'>"
+ },
+ "required": true
+ }
+ },
+ "name": "useProgressIndicator",
+ "filename": "/packages/mui-base/src/Progress/Indicator/useProgressIndicator.ts",
+ "imports": ["import { useProgressIndicator } from '@base_ui/react/Progress';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/api/use-progress-root.json b/docs/pages/base-ui/api/use-progress-root.json
new file mode 100644
index 0000000000..bd60ccd8f7
--- /dev/null
+++ b/docs/pages/base-ui/api/use-progress-root.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "value": {
+ "type": { "name": "number | null", "description": "number | null" },
+ "default": "null",
+ "required": true
+ },
+ "aria-label": { "type": { "name": "string", "description": "string" } },
+ "aria-labelledby": { "type": { "name": "string", "description": "string" } },
+ "aria-valuetext": { "type": { "name": "string", "description": "string" } },
+ "direction": {
+ "type": { "name": "ProgressDirection", "description": "ProgressDirection" },
+ "default": "'ltr'"
+ },
+ "getAriaLabel": {
+ "type": {
+ "name": "(index: number | null) => string",
+ "description": "(index: number | null) => string"
+ }
+ },
+ "getAriaValueText": {
+ "type": {
+ "name": "(value: number | null) => string",
+ "description": "(value: number | null) => string"
+ }
+ },
+ "max": { "type": { "name": "number", "description": "number" }, "default": "100" },
+ "min": { "type": { "name": "number", "description": "number" }, "default": "0" }
+ },
+ "returnValue": {
+ "direction": {
+ "type": { "name": "ProgressDirection", "description": "ProgressDirection" },
+ "required": true
+ },
+ "getRootProps": {
+ "type": {
+ "name": "(externalProps?: React.ComponentPropsWithRef<'div'>) => React.ComponentPropsWithRef<'div'>",
+ "description": "(externalProps?: React.ComponentPropsWithRef<'div'>) => React.ComponentPropsWithRef<'div'>"
+ },
+ "required": true
+ },
+ "max": { "type": { "name": "number", "description": "number" }, "required": true },
+ "min": { "type": { "name": "number", "description": "number" }, "required": true },
+ "state": {
+ "type": { "name": "ProgressStatus", "description": "ProgressStatus" },
+ "required": true
+ },
+ "value": {
+ "type": { "name": "number | null", "description": "number | null" },
+ "required": true
+ }
+ },
+ "name": "useProgressRoot",
+ "filename": "/packages/mui-base/src/Progress/Root/useProgressRoot.ts",
+ "imports": ["import { useProgressRoot } from '@base_ui/react/Progress';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/react-progress/[docsTab]/index.js b/docs/pages/base-ui/react-progress/[docsTab]/index.js
new file mode 100644
index 0000000000..e96594e077
--- /dev/null
+++ b/docs/pages/base-ui/react-progress/[docsTab]/index.js
@@ -0,0 +1,86 @@
+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/progress/progress.md?@mui/markdown';
+import mapApiPageTranslations from 'docs/src/modules/utils/mapApiPageTranslations';
+import ProgressIndicatorApiJsonPageContent from '../../api/progress-indicator.json';
+import ProgressRootApiJsonPageContent from '../../api/progress-root.json';
+import ProgressTrackApiJsonPageContent from '../../api/progress-track.json';
+import useProgressIndicatorApiJsonPageContent from '../../api/use-progress-indicator.json';
+import useProgressRootApiJsonPageContent from '../../api/use-progress-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 ProgressIndicatorApiReq = require.context(
+ 'docs-base/translations/api-docs/progress-indicator',
+ false,
+ /\.\/progress-indicator.*.json$/,
+ );
+ const ProgressIndicatorApiDescriptions = mapApiPageTranslations(ProgressIndicatorApiReq);
+
+ const ProgressRootApiReq = require.context(
+ 'docs-base/translations/api-docs/progress-root',
+ false,
+ /\.\/progress-root.*.json$/,
+ );
+ const ProgressRootApiDescriptions = mapApiPageTranslations(ProgressRootApiReq);
+
+ const ProgressTrackApiReq = require.context(
+ 'docs-base/translations/api-docs/progress-track',
+ false,
+ /\.\/progress-track.*.json$/,
+ );
+ const ProgressTrackApiDescriptions = mapApiPageTranslations(ProgressTrackApiReq);
+
+ const useProgressIndicatorApiReq = require.context(
+ 'docs-base/translations/api-docs/use-progress-indicator',
+ false,
+ /\.\/use-progress-indicator.*.json$/,
+ );
+ const useProgressIndicatorApiDescriptions = mapApiPageTranslations(useProgressIndicatorApiReq);
+
+ const useProgressRootApiReq = require.context(
+ 'docs-base/translations/api-docs/use-progress-root',
+ false,
+ /\.\/use-progress-root.*.json$/,
+ );
+ const useProgressRootApiDescriptions = mapApiPageTranslations(useProgressRootApiReq);
+
+ return {
+ props: {
+ componentsApiDescriptions: {
+ ProgressIndicator: ProgressIndicatorApiDescriptions,
+ ProgressRoot: ProgressRootApiDescriptions,
+ ProgressTrack: ProgressTrackApiDescriptions,
+ },
+ componentsApiPageContents: {
+ ProgressIndicator: ProgressIndicatorApiJsonPageContent,
+ ProgressRoot: ProgressRootApiJsonPageContent,
+ ProgressTrack: ProgressTrackApiJsonPageContent,
+ },
+ hooksApiDescriptions: {
+ useProgressIndicator: useProgressIndicatorApiDescriptions,
+ useProgressRoot: useProgressRootApiDescriptions,
+ },
+ hooksApiPageContents: {
+ useProgressIndicator: useProgressIndicatorApiJsonPageContent,
+ useProgressRoot: useProgressRootApiJsonPageContent,
+ },
+ },
+ };
+};
diff --git a/docs/pages/base-ui/react-progress/index.js b/docs/pages/base-ui/react-progress/index.js
new file mode 100644
index 0000000000..ae0ef5d8da
--- /dev/null
+++ b/docs/pages/base-ui/react-progress/index.js
@@ -0,0 +1,13 @@
+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/progress/progress.md?@mui/markdown';
+
+export default function Page(props) {
+ const { userLanguage, ...other } = props;
+ return ;
+}
+
+Page.getLayout = (page) => {
+ return {page} ;
+};
diff --git a/docs/pages/experiments/progress.tsx b/docs/pages/experiments/progress.tsx
new file mode 100644
index 0000000000..f98f217bb4
--- /dev/null
+++ b/docs/pages/experiments/progress.tsx
@@ -0,0 +1,241 @@
+import * as React from 'react';
+import { useTheme } from '@mui/system';
+import * as Progress from '@base_ui/react/Progress';
+
+const VAL1 = 33;
+
+const CUSTOM_BUFFER_VAL = 77;
+
+export default function ProgressDemos() {
+ return (
+
+
+
+
+
+
+
+
+
+ Indeterminate Progress
+
+
+
+
+
+
+
+
+ Progress (RTL)
+
+
+
+
+
+
+
+
+ Indeterminate (RTL)
+
+
+
+
+
+
+
Customizations
+
+
`${value}% complete, ${CUSTOM_BUFFER_VAL}% buffered`}
+ max={Math.min(100, CUSTOM_BUFFER_VAL)}
+ >
+
+ Custom Buffer Component
+
+
+
+
+
+
+
+
`${value}% complete, ${CUSTOM_BUFFER_VAL}% buffered`}
+ max={Math.min(100, CUSTOM_BUFFER_VAL)}
+ direction="rtl"
+ >
+
+ Custom Buffer Component (RTL)
+
+
+
+
+
+
+
+
+ );
+}
+
+function MyBuffer(props: any) {
+ const { value, style, ...rest } = props;
+ const percentageValue = valueToPercent(value, 0, 100);
+ return (
+
+ );
+}
+
+function valueToPercent(value: number | undefined, min: number, max: number) {
+ if (value === undefined) {
+ return value;
+ }
+
+ return ((value - min) * 100) / (max - min);
+}
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const BLUE400 = '#3399FF';
+const BLUE500 = '#007FFF';
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+export function Styles() {
+ const isDarkMode = useIsDarkMode();
+ return (
+
+ );
+}
diff --git a/docs/translations/api-docs/progress-indicator/progress-indicator.json b/docs/translations/api-docs/progress-indicator/progress-indicator.json
new file mode 100644
index 0000000000..4bc12cf1e0
--- /dev/null
+++ b/docs/translations/api-docs/progress-indicator/progress-indicator.json
@@ -0,0 +1,10 @@
+{
+ "componentDescription": "",
+ "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/progress-root/progress-root.json b/docs/translations/api-docs/progress-root/progress-root.json
new file mode 100644
index 0000000000..cdac80157b
--- /dev/null
+++ b/docs/translations/api-docs/progress-root/progress-root.json
@@ -0,0 +1,31 @@
+{
+ "componentDescription": "",
+ "propDescriptions": {
+ "aria-label": { "description": "The label for the Indicator component." },
+ "aria-labelledby": {
+ "description": "An id or space-separated list of ids of elements that label the Indicator component."
+ },
+ "aria-valuetext": {
+ "description": "A string value that provides a human-readable text alternative for the current value of the progress indicator."
+ },
+ "className": {
+ "description": "Class names applied to the element or a function that returns them based on the component's state."
+ },
+ "direction": { "description": "The direction that progress bars fill in" },
+ "getAriaLabel": {
+ "description": "Accepts a function which returns a string value that provides an accessible name for the Indicator component",
+ "typeDescriptions": { "value": "The component's value" }
+ },
+ "getAriaValueText": {
+ "description": "Accepts a function which returns a string value that provides a human-readable text alternative for the current value of the progress indicator.",
+ "typeDescriptions": { "value": "The component's value to format" }
+ },
+ "max": { "description": "The maximum value" },
+ "min": { "description": "The minimum value" },
+ "render": { "description": "A function to customize rendering of the component." },
+ "value": {
+ "description": "The current value. The component is indeterminate when value is null
."
+ }
+ },
+ "classDescriptions": {}
+}
diff --git a/docs/translations/api-docs/progress-track/progress-track.json b/docs/translations/api-docs/progress-track/progress-track.json
new file mode 100644
index 0000000000..4bc12cf1e0
--- /dev/null
+++ b/docs/translations/api-docs/progress-track/progress-track.json
@@ -0,0 +1,10 @@
+{
+ "componentDescription": "",
+ "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-progress-indicator/use-progress-indicator.json b/docs/translations/api-docs/use-progress-indicator/use-progress-indicator.json
new file mode 100644
index 0000000000..3c787fafc5
--- /dev/null
+++ b/docs/translations/api-docs/use-progress-indicator/use-progress-indicator.json
@@ -0,0 +1,12 @@
+{
+ "hookDescription": "",
+ "parametersDescriptions": {
+ "direction": { "description": "The direction that progress bars fill in" },
+ "max": { "description": "The maximum value" },
+ "min": { "description": "The minimum value" },
+ "value": {
+ "description": "The current value. The component is indeterminate when value is null
."
+ }
+ },
+ "returnValueDescriptions": {}
+}
diff --git a/docs/translations/api-docs/use-progress-root/use-progress-root.json b/docs/translations/api-docs/use-progress-root/use-progress-root.json
new file mode 100644
index 0000000000..a9fdd3927f
--- /dev/null
+++ b/docs/translations/api-docs/use-progress-root/use-progress-root.json
@@ -0,0 +1,30 @@
+{
+ "hookDescription": "",
+ "parametersDescriptions": {
+ "aria-label": { "description": "The label for the Indicator component." },
+ "aria-labelledby": {
+ "description": "An id or space-separated list of ids of elements that label the Indicator component."
+ },
+ "aria-valuetext": {
+ "description": "A string value that provides a human-readable text alternative for the current value of the progress indicator."
+ },
+ "direction": { "description": "The direction that progress bars fill in" },
+ "getAriaLabel": {
+ "description": "Accepts a function which returns a string value that provides an accessible name for the Indicator component"
+ },
+ "getAriaValueText": {
+ "description": "Accepts a function which returns a string value that provides a human-readable text alternative for the current value of the progress indicator."
+ },
+ "max": { "description": "The maximum value" },
+ "min": { "description": "The minimum value" },
+ "value": {
+ "description": "The current value. The component is indeterminate when value is null
."
+ }
+ },
+ "returnValueDescriptions": {
+ "direction": { "description": "The direction that progress bars fill in" },
+ "max": { "description": "The maximum value" },
+ "min": { "description": "The minimum value" },
+ "value": { "description": "Value of the component" }
+ }
+}
diff --git a/docs/translations/translations.json b/docs/translations/translations.json
index 73c9038448..eb4c2c061d 100644
--- a/docs/translations/translations.json
+++ b/docs/translations/translations.json
@@ -231,6 +231,7 @@
"feedback": "Feedback",
"/base-ui/react-alert-dialog": "Alert Dialog",
"/base-ui/react-dialog": "Dialog",
+ "/base-ui/react-progress": "Progress",
"navigation": "Navigation",
"/base-ui/react-tabs": "Tabs",
"/base-ui/guides": "How-to guides",
diff --git a/packages/mui-base/src/Progress/Indicator/ProgressIndicator.test.tsx b/packages/mui-base/src/Progress/Indicator/ProgressIndicator.test.tsx
new file mode 100644
index 0000000000..90614e5172
--- /dev/null
+++ b/packages/mui-base/src/Progress/Indicator/ProgressIndicator.test.tsx
@@ -0,0 +1,77 @@
+import * as React from 'react';
+import { expect } from 'chai';
+import { createRenderer } from '@mui/internal-test-utils';
+import * as Progress from '@base_ui/react/Progress';
+import { ProgressContext } from '@base_ui/react/Progress';
+import { describeConformance } from '../../../test/describeConformance';
+import type { ProgressContextValue } from '../Root/ProgressRoot.types';
+
+const contextValue: ProgressContextValue = {
+ direction: 'ltr',
+ max: 100,
+ min: 0,
+ value: 30,
+ state: 'progressing',
+ ownerState: {
+ direction: 'ltr',
+ max: 100,
+ min: 0,
+ },
+};
+
+describe(' ', () => {
+ const { render } = createRenderer();
+
+ describeConformance( , () => ({
+ inheritComponent: 'span',
+ render: (node) => {
+ const { container, ...other } = render(
+ {node} ,
+ );
+
+ return { container, ...other };
+ },
+ refInstanceof: window.HTMLSpanElement,
+ }));
+
+ describe('internal styles', () => {
+ it('determinate', function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ this.skip();
+ }
+
+ const { getByTestId } = render(
+
+
+
+
+ ,
+ );
+
+ const indicator = getByTestId('indicator');
+
+ expect(indicator).toHaveComputedStyle({
+ left: '0px',
+ width: '33%',
+ });
+ });
+
+ it('indeterminate', function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ this.skip();
+ }
+
+ const { getByTestId } = render(
+
+
+
+
+ ,
+ );
+
+ const indicator = getByTestId('indicator');
+
+ expect(indicator).toHaveComputedStyle({});
+ });
+ });
+});
diff --git a/packages/mui-base/src/Progress/Indicator/ProgressIndicator.tsx b/packages/mui-base/src/Progress/Indicator/ProgressIndicator.tsx
new file mode 100644
index 0000000000..180072c34c
--- /dev/null
+++ b/packages/mui-base/src/Progress/Indicator/ProgressIndicator.tsx
@@ -0,0 +1,57 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useProgressIndicator } from './useProgressIndicator';
+import { useProgressContext } from '../Root/ProgressContext';
+import { progressStyleHookMapping } from '../Root/styleHooks';
+import { ProgressIndicatorProps } from './ProgressIndicator.types';
+
+const ProgressIndicator = React.forwardRef(function ProgressIndicator(
+ props: ProgressIndicatorProps,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { render, className, ...otherProps } = props;
+
+ const { direction, max, min, value, ownerState } = useProgressContext();
+
+ const { getRootProps } = useProgressIndicator({
+ direction,
+ max,
+ min,
+ value,
+ });
+
+ const { renderElement } = useComponentRenderer({
+ propGetter: getRootProps,
+ render: render ?? 'span',
+ ownerState,
+ className,
+ ref: forwardedRef,
+ extraProps: otherProps,
+ customStyleHookMapping: progressStyleHookMapping,
+ });
+
+ return renderElement();
+});
+
+ProgressIndicator.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]),
+} as any;
+
+export { ProgressIndicator };
diff --git a/packages/mui-base/src/Progress/Indicator/ProgressIndicator.types.ts b/packages/mui-base/src/Progress/Indicator/ProgressIndicator.types.ts
new file mode 100644
index 0000000000..dcdf95ae69
--- /dev/null
+++ b/packages/mui-base/src/Progress/Indicator/ProgressIndicator.types.ts
@@ -0,0 +1,33 @@
+import { BaseUIComponentProps } from '../../utils/types';
+import { ProgressDirection, ProgressRootOwnerState } from '../Root/ProgressRoot.types';
+
+export interface ProgressIndicatorProps
+ extends BaseUIComponentProps<'span', ProgressRootOwnerState> {}
+
+export interface UseProgressIndicatorParameters {
+ /**
+ * The direction that progress bars fill in
+ * @default 'ltr'
+ */
+ direction?: ProgressDirection;
+ /**
+ * The maximum value
+ * @default 100
+ */
+ max?: number;
+ /**
+ * The minimum value
+ * @default 0
+ */
+ min?: number;
+ /**
+ * The current value. The component is indeterminate when value is `null`.
+ */
+ value: number | null;
+}
+
+export interface UseProgressIndicatorReturnValue {
+ getRootProps: (
+ externalProps?: React.ComponentPropsWithRef<'span'>,
+ ) => React.ComponentPropsWithRef<'span'>;
+}
diff --git a/packages/mui-base/src/Progress/Indicator/useProgressIndicator.ts b/packages/mui-base/src/Progress/Indicator/useProgressIndicator.ts
new file mode 100644
index 0000000000..883501567a
--- /dev/null
+++ b/packages/mui-base/src/Progress/Indicator/useProgressIndicator.ts
@@ -0,0 +1,57 @@
+'use client';
+import * as React from 'react';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import {
+ UseProgressIndicatorParameters,
+ UseProgressIndicatorReturnValue,
+} from './ProgressIndicator.types';
+
+function valueToPercent(value: number, min: number, max: number) {
+ return ((value - min) * 100) / (max - min);
+}
+/**
+ *
+ * Demos:
+ *
+ * - [Progress](https://mui.com/base-ui/react-progress/#hooks)
+ *
+ * API:
+ *
+ * - [useProgressIndicator API](https://mui.com/base-ui/react-progress/hooks-api/#use-progress-indicator)
+ */
+function useProgressIndicator(
+ parameters: UseProgressIndicatorParameters,
+): UseProgressIndicatorReturnValue {
+ const { direction, max = 100, min = 0, value } = parameters;
+
+ const isRtl = direction === 'rtl';
+
+ const percentageValue =
+ Number.isFinite(value) && value !== null ? valueToPercent(value, min, max) : null;
+
+ const getStyles = React.useCallback(() => {
+ if (!percentageValue) {
+ return {};
+ }
+
+ return {
+ [isRtl ? 'right' : 'left']: 0,
+ height: 'inherit',
+ width: `${percentageValue}%`,
+ };
+ }, [isRtl, percentageValue]);
+
+ const getRootProps: UseProgressIndicatorReturnValue['getRootProps'] = React.useCallback(
+ (externalProps = {}) =>
+ mergeReactProps<'span'>(externalProps, {
+ style: getStyles(),
+ }),
+ [getStyles],
+ );
+
+ return {
+ getRootProps,
+ };
+}
+
+export { useProgressIndicator };
diff --git a/packages/mui-base/src/Progress/Root/ProgressContext.tsx b/packages/mui-base/src/Progress/Root/ProgressContext.tsx
new file mode 100644
index 0000000000..d0a2ebce69
--- /dev/null
+++ b/packages/mui-base/src/Progress/Root/ProgressContext.tsx
@@ -0,0 +1,20 @@
+'use client';
+import * as React from 'react';
+import { ProgressContextValue } from './ProgressRoot.types';
+
+/**
+ * @ignore - internal component.
+ */
+export const ProgressContext = React.createContext(undefined);
+
+if (process.env.NODE_ENV !== 'production') {
+ ProgressContext.displayName = 'ProgressContext';
+}
+
+export function useProgressContext() {
+ const context = React.useContext(ProgressContext);
+ if (context === undefined) {
+ throw new Error('useProgressContext must be used inside a Progress component');
+ }
+ return context;
+}
diff --git a/packages/mui-base/src/Progress/Root/ProgressRoot.test.tsx b/packages/mui-base/src/Progress/Root/ProgressRoot.test.tsx
new file mode 100644
index 0000000000..928b063f71
--- /dev/null
+++ b/packages/mui-base/src/Progress/Root/ProgressRoot.test.tsx
@@ -0,0 +1,64 @@
+import { expect } from 'chai';
+import * as React from 'react';
+import { createRenderer } from '@mui/internal-test-utils';
+import * as Progress from '@base_ui/react/Progress';
+import { describeConformance } from '../../../test/describeConformance';
+import type { ProgressRootProps } from './ProgressRoot.types';
+
+function TestProgress(props: ProgressRootProps) {
+ return (
+
+
+
+
+
+ );
+}
+
+describe(' ', () => {
+ const { render } = createRenderer();
+
+ describeConformance( , () => ({
+ inheritComponent: 'div',
+ render,
+ refInstanceof: window.HTMLDivElement,
+ }));
+
+ it('renders a progressbar', () => {
+ const { getByRole } = render(
+
+
+
+
+ ,
+ );
+
+ expect(getByRole('progressbar')).to.have.attribute('aria-valuenow', '30');
+ });
+
+ describe('ARIA attributes', () => {
+ it('sets the correct aria attributes', () => {
+ const { getByRole } = render(
+
+
+
+
+ ,
+ );
+
+ const progressbar = getByRole('progressbar');
+
+ expect(progressbar).to.have.attribute('aria-valuenow', '30');
+ expect(progressbar).to.have.attribute('aria-valuemin', '0');
+ expect(progressbar).to.have.attribute('aria-valuemax', '100');
+ expect(progressbar).to.have.attribute('aria-valuetext', '30%');
+ });
+
+ it('should update aria-valuenow when value changes', () => {
+ const { getByRole, setProps } = render( );
+ const progressbar = getByRole('progressbar');
+ setProps({ value: 77 });
+ expect(progressbar).to.have.attribute('aria-valuenow', '77');
+ });
+ });
+});
diff --git a/packages/mui-base/src/Progress/Root/ProgressRoot.tsx b/packages/mui-base/src/Progress/Root/ProgressRoot.tsx
new file mode 100644
index 0000000000..6e3787d3ba
--- /dev/null
+++ b/packages/mui-base/src/Progress/Root/ProgressRoot.tsx
@@ -0,0 +1,141 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useProgressRoot } from './useProgressRoot';
+import { ProgressContext } from './ProgressContext';
+import { progressStyleHookMapping } from './styleHooks';
+import {
+ ProgressContextValue,
+ ProgressRootOwnerState,
+ ProgressRootProps,
+} from './ProgressRoot.types';
+
+const ProgressRoot = React.forwardRef(function ProgressRoot(
+ props: ProgressRootProps,
+ forwardedRef: React.ForwardedRef,
+) {
+ const {
+ 'aria-label': ariaLabel,
+ 'aria-labelledby': ariaLabelledby,
+ 'aria-valuetext': ariaValuetext,
+ direction = 'ltr',
+ getAriaLabel,
+ getAriaValueText,
+ max = 100,
+ min = 0,
+ value,
+ render,
+ className,
+ ...otherProps
+ } = props;
+
+ const { getRootProps, ...progress } = useProgressRoot({
+ 'aria-label': ariaLabel,
+ 'aria-labelledby': ariaLabelledby,
+ 'aria-valuetext': ariaValuetext,
+ direction,
+ getAriaLabel,
+ getAriaValueText,
+ max,
+ min,
+ value,
+ });
+
+ const ownerState: ProgressRootOwnerState = React.useMemo(
+ () => ({
+ direction,
+ max,
+ min,
+ state: progress.state,
+ }),
+ [direction, max, min, progress.state],
+ );
+
+ const contextValue: ProgressContextValue = React.useMemo(
+ () => ({
+ ...progress,
+ ownerState,
+ }),
+ [progress, ownerState],
+ );
+
+ const { renderElement } = useComponentRenderer({
+ propGetter: getRootProps,
+ render: render ?? 'div',
+ ownerState,
+ className,
+ ref: forwardedRef,
+ extraProps: otherProps,
+ customStyleHookMapping: progressStyleHookMapping,
+ });
+
+ return (
+ {renderElement()}
+ );
+});
+
+ProgressRoot.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 label for the Indicator component.
+ */
+ 'aria-label': PropTypes.string,
+ /**
+ * An id or space-separated list of ids of elements that label the Indicator component.
+ */
+ 'aria-labelledby': PropTypes.string,
+ /**
+ * A string value that provides a human-readable text alternative for the current value of the progress indicator.
+ */
+ 'aria-valuetext': PropTypes.string,
+ /**
+ * @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 direction that progress bars fill in
+ * @default 'ltr'
+ */
+ direction: PropTypes.oneOf(['ltr', 'rtl']),
+ /**
+ * Accepts a function which returns a string value that provides an accessible name for the Indicator component
+ * @param {number | null} value The component's value
+ * @returns {string}
+ */
+ getAriaLabel: PropTypes.func,
+ /**
+ * Accepts a function which returns a string value that provides a human-readable text alternative for the current value of the progress indicator.
+ * @param {number | null} value The component's value to format
+ * @returns {string}
+ */
+ getAriaValueText: PropTypes.func,
+ /**
+ * The maximum value
+ * @default 100
+ */
+ max: PropTypes.number,
+ /**
+ * The minimum value
+ * @default 0
+ */
+ min: PropTypes.number,
+ /**
+ * A function to customize rendering of the component.
+ */
+ render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
+ /**
+ * The current value. The component is indeterminate when value is `null`.
+ * @default null
+ */
+ value: PropTypes.number,
+} as any;
+
+export { ProgressRoot };
diff --git a/packages/mui-base/src/Progress/Root/ProgressRoot.types.ts b/packages/mui-base/src/Progress/Root/ProgressRoot.types.ts
new file mode 100644
index 0000000000..19689829d3
--- /dev/null
+++ b/packages/mui-base/src/Progress/Root/ProgressRoot.types.ts
@@ -0,0 +1,89 @@
+import { BaseUIComponentProps } from '../../utils/types';
+
+export type ProgressContextValue = Omit & {
+ ownerState: ProgressRootOwnerState;
+};
+
+export type ProgressRootOwnerState = {
+ direction: ProgressDirection;
+ max: number;
+ min: number;
+};
+
+export interface ProgressRootProps
+ extends UseProgressRootParameters,
+ BaseUIComponentProps<'div', ProgressRootOwnerState> {}
+
+export type ProgressDirection = 'ltr' | 'rtl';
+
+export type ProgressStatus = 'indeterminate' | 'progressing' | 'complete';
+
+export interface UseProgressRootParameters {
+ /**
+ * The label for the Indicator component.
+ */
+ 'aria-label'?: string;
+ /**
+ * An id or space-separated list of ids of elements that label the Indicator component.
+ */
+ 'aria-labelledby'?: string;
+ /**
+ * A string value that provides a human-readable text alternative for the current value of the progress indicator.
+ */
+ 'aria-valuetext'?: string;
+ /**
+ * The direction that progress bars fill in
+ * @default 'ltr'
+ */
+ direction?: ProgressDirection;
+ /**
+ * Accepts a function which returns a string value that provides an accessible name for the Indicator component
+ * @param {number | null} value The component's value
+ * @returns {string}
+ */
+ getAriaLabel?: (index: number | null) => string;
+ /**
+ * Accepts a function which returns a string value that provides a human-readable text alternative for the current value of the progress indicator.
+ * @param {number | null} value The component's value to format
+ * @returns {string}
+ */
+ getAriaValueText?: (value: number | null) => string;
+ /**
+ * The maximum value
+ * @default 100
+ */
+ max?: number;
+ /**
+ * The minimum value
+ * @default 0
+ */
+ min?: number;
+ /**
+ * The current value. The component is indeterminate when value is `null`.
+ * @default null
+ */
+ value: number | null;
+}
+
+export interface UseProgressRootReturnValue {
+ getRootProps: (
+ externalProps?: React.ComponentPropsWithRef<'div'>,
+ ) => React.ComponentPropsWithRef<'div'>;
+ /**
+ * The direction that progress bars fill in
+ */
+ direction: ProgressDirection;
+ /**
+ * The maximum value
+ */
+ max: number;
+ /**
+ * The minimum value
+ */
+ min: number;
+ /**
+ * Value of the component
+ */
+ value: number | null;
+ state: ProgressStatus;
+}
diff --git a/packages/mui-base/src/Progress/Root/styleHooks.ts b/packages/mui-base/src/Progress/Root/styleHooks.ts
new file mode 100644
index 0000000000..808c29c561
--- /dev/null
+++ b/packages/mui-base/src/Progress/Root/styleHooks.ts
@@ -0,0 +1,8 @@
+import type { CustomStyleHookMapping } from '../../utils/getStyleHookProps';
+import type { ProgressRootOwnerState } from './ProgressRoot.types';
+
+export const progressStyleHookMapping: CustomStyleHookMapping = {
+ direction: () => null,
+ max: () => null,
+ min: () => null,
+};
diff --git a/packages/mui-base/src/Progress/Root/useProgressRoot.ts b/packages/mui-base/src/Progress/Root/useProgressRoot.ts
new file mode 100644
index 0000000000..6019ad2a2f
--- /dev/null
+++ b/packages/mui-base/src/Progress/Root/useProgressRoot.ts
@@ -0,0 +1,81 @@
+'use client';
+import * as React from 'react';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import {
+ ProgressStatus,
+ UseProgressRootParameters,
+ UseProgressRootReturnValue,
+} from './ProgressRoot.types';
+
+function getDefaultAriaValueText(value: number | null) {
+ if (value === null) {
+ return 'indeterminate progress';
+ }
+
+ return `${value}%`;
+} /**
+ *
+ * Demos:
+ *
+ * - [Progress](https://mui.com/base-ui/react-progress/#hooks)
+ *
+ * API:
+ *
+ * - [useProgressRoot API](https://mui.com/base-ui/react-progress/hooks-api/#use-progress-root)
+ */
+function useProgressRoot(parameters: UseProgressRootParameters): UseProgressRootReturnValue {
+ const {
+ 'aria-label': ariaLabel,
+ 'aria-labelledby': ariaLabelledby,
+ 'aria-valuetext': ariaValuetext,
+ direction = 'ltr',
+ getAriaLabel,
+ getAriaValueText,
+ max = 100,
+ min = 0,
+ value,
+ } = parameters;
+
+ let state: ProgressStatus = 'indeterminate';
+ if (Number.isFinite(value)) {
+ state = value === max ? 'complete' : 'progressing';
+ }
+
+ const getRootProps: UseProgressRootReturnValue['getRootProps'] = React.useCallback(
+ (externalProps = {}) =>
+ mergeReactProps<'div'>(externalProps, {
+ 'aria-label': getAriaLabel ? getAriaLabel(value) : ariaLabel,
+ 'aria-labelledby': ariaLabelledby,
+ 'aria-valuemax': max,
+ 'aria-valuemin': min,
+ 'aria-valuenow': value ?? undefined,
+ 'aria-valuetext': getAriaValueText
+ ? getAriaValueText(value)
+ : ariaValuetext ?? getDefaultAriaValueText(value),
+ dir: direction,
+ role: 'progressbar',
+ }),
+ [
+ ariaLabel,
+ ariaLabelledby,
+ ariaValuetext,
+ direction,
+ getAriaLabel,
+ getAriaValueText,
+ max,
+ min,
+ value,
+ ],
+ );
+
+ return {
+ getRootProps,
+ direction,
+ max,
+ min,
+ value,
+ state,
+ };
+}
+
+export { useProgressRoot };
diff --git a/packages/mui-base/src/Progress/Track/ProgressTrack.test.tsx b/packages/mui-base/src/Progress/Track/ProgressTrack.test.tsx
new file mode 100644
index 0000000000..f3b74cfc58
--- /dev/null
+++ b/packages/mui-base/src/Progress/Track/ProgressTrack.test.tsx
@@ -0,0 +1,35 @@
+import * as React from 'react';
+import { createRenderer } from '@mui/internal-test-utils';
+import * as Progress from '@base_ui/react/Progress';
+import { ProgressContext } from '@base_ui/react/Progress';
+import { describeConformance } from '../../../test/describeConformance';
+import type { ProgressContextValue } from '../Root/ProgressRoot.types';
+
+const contextValue: ProgressContextValue = {
+ direction: 'ltr',
+ max: 100,
+ min: 0,
+ value: 30,
+ state: 'progressing',
+ ownerState: {
+ direction: 'ltr',
+ max: 100,
+ min: 0,
+ },
+};
+
+describe(' ', () => {
+ const { render } = createRenderer();
+
+ describeConformance( , () => ({
+ inheritComponent: 'span',
+ render: (node) => {
+ const { container, ...other } = render(
+ {node} ,
+ );
+
+ return { container, ...other };
+ },
+ refInstanceof: window.HTMLSpanElement,
+ }));
+});
diff --git a/packages/mui-base/src/Progress/Track/ProgressTrack.tsx b/packages/mui-base/src/Progress/Track/ProgressTrack.tsx
new file mode 100644
index 0000000000..c18036eae8
--- /dev/null
+++ b/packages/mui-base/src/Progress/Track/ProgressTrack.tsx
@@ -0,0 +1,48 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useProgressContext } from '../Root/ProgressContext';
+import { progressStyleHookMapping } from '../Root/styleHooks';
+import { ProgressTrackProps } from './ProgressTrack.types';
+
+const ProgressTrack = React.forwardRef(function ProgressTrack(
+ props: ProgressTrackProps,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { render, className, ...otherProps } = props;
+
+ const { ownerState } = useProgressContext();
+
+ const { renderElement } = useComponentRenderer({
+ render: render ?? 'span',
+ ownerState,
+ className,
+ ref: forwardedRef,
+ extraProps: otherProps,
+ customStyleHookMapping: progressStyleHookMapping,
+ });
+
+ return renderElement();
+});
+
+ProgressTrack.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]),
+} as any;
+
+export { ProgressTrack };
diff --git a/packages/mui-base/src/Progress/Track/ProgressTrack.types.ts b/packages/mui-base/src/Progress/Track/ProgressTrack.types.ts
new file mode 100644
index 0000000000..3700c4dfbe
--- /dev/null
+++ b/packages/mui-base/src/Progress/Track/ProgressTrack.types.ts
@@ -0,0 +1,4 @@
+import { BaseUIComponentProps } from '../../utils/types';
+import { ProgressRootOwnerState } from '../Root/ProgressRoot.types';
+
+export interface ProgressTrackProps extends BaseUIComponentProps<'span', ProgressRootOwnerState> {}
diff --git a/packages/mui-base/src/Progress/index.barrel.ts b/packages/mui-base/src/Progress/index.barrel.ts
new file mode 100644
index 0000000000..a22c330c34
--- /dev/null
+++ b/packages/mui-base/src/Progress/index.barrel.ts
@@ -0,0 +1,15 @@
+export { ProgressRoot } from './Root/ProgressRoot';
+export type * from './Root/ProgressRoot.types';
+export { useProgressRoot } from './Root/useProgressRoot';
+export * from './Root/ProgressContext';
+
+export { ProgressTrack } from './Track/ProgressTrack';
+export type { ProgressTrackProps } from './Track/ProgressTrack.types';
+
+export { ProgressIndicator } from './Indicator/ProgressIndicator';
+export type {
+ ProgressIndicatorProps,
+ UseProgressIndicatorParameters,
+ UseProgressIndicatorReturnValue,
+} from './Indicator/ProgressIndicator.types';
+export { useProgressIndicator } from './Indicator/useProgressIndicator';
diff --git a/packages/mui-base/src/Progress/index.ts b/packages/mui-base/src/Progress/index.ts
new file mode 100644
index 0000000000..b0997635a6
--- /dev/null
+++ b/packages/mui-base/src/Progress/index.ts
@@ -0,0 +1,21 @@
+export { ProgressRoot as Root } from './Root/ProgressRoot';
+export {
+ ProgressRootOwnerState as ProgressOwnerState,
+ ProgressRootProps as RootProps,
+ UseProgressRootParameters,
+ UseProgressRootReturnValue,
+ ProgressContextValue,
+} from './Root/ProgressRoot.types';
+export { useProgressRoot } from './Root/useProgressRoot';
+export * from './Root/ProgressContext';
+
+export { ProgressTrack as Track } from './Track/ProgressTrack';
+export type { ProgressTrackProps as TrackProps } from './Track/ProgressTrack.types';
+
+export { ProgressIndicator as Indicator } from './Indicator/ProgressIndicator';
+export type {
+ ProgressIndicatorProps as IndicatorProps,
+ UseProgressIndicatorParameters,
+ UseProgressIndicatorReturnValue,
+} from './Indicator/ProgressIndicator.types';
+export { useProgressIndicator } from './Indicator/useProgressIndicator';
diff --git a/packages/mui-base/src/index.ts b/packages/mui-base/src/index.ts
index 9a78cfba56..7f29893f01 100644
--- a/packages/mui-base/src/index.ts
+++ b/packages/mui-base/src/index.ts
@@ -3,6 +3,7 @@ export * from './Checkbox/index.barrel';
export * from './Dialog/index.barrel';
export * from './NumberField/index.barrel';
export * from './Popover/index.barrel';
+export * from './Progress/index.barrel';
export * from './Slider/index.barrel';
export * from './Switch/index.barrel';
export * from './Tabs/index.barrel';
From 4fa59d436358e4c744b1e1c8c016958a019d658a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:47:28 +0200
Subject: [PATCH 07/34] Bump @definitelytyped tools (#495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 6 +++---
pnpm-lock.yaml | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index 797b6ee1f6..47e8944003 100644
--- a/package.json
+++ b/package.json
@@ -176,9 +176,9 @@
"@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",
+ "@definitelytyped/header-parser": "^0.2.11",
+ "@definitelytyped/typescript-versions": "^0.1.3",
+ "@definitelytyped/utils": "^0.1.7",
"@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 6c9663a13d..60dfd0eacf 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,9 +14,9 @@ overrides:
'@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
+ '@definitelytyped/header-parser': ^0.2.11
+ '@definitelytyped/typescript-versions': ^0.1.3
+ '@definitelytyped/utils': ^0.1.7
'@types/node': ^18.19.33
'@types/react': ^18.3.1
'@types/react-dom': 18.3.0
From fce7afaadbb5ffba47366486e0536dafeeff9fda Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:47:50 +0200
Subject: [PATCH 08/34] Bump @docsearch/react to ^3.6.1 (#496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
pnpm-lock.yaml | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index aa6214b292..2b98d474ec 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -19,7 +19,7 @@
"@babel/runtime": "^7.24.6",
"@babel/runtime-corejs3": "^7.24.6",
"@base_ui/react": "workspace:*",
- "@docsearch/react": "^3.6.0",
+ "@docsearch/react": "^3.6.1",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
"@emotion/server": "^11.11.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 60dfd0eacf..b7d3049f71 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -326,8 +326,8 @@ importers:
specifier: workspace:*
version: link:../packages/mui-base/build
'@docsearch/react':
- specifier: ^3.6.0
- version: 3.6.0(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.13.0)
+ specifier: ^3.6.1
+ version: 3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.13.0)
'@emotion/cache':
specifier: ^11.11.0
version: 11.11.0
@@ -1524,11 +1524,11 @@ packages:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
- '@docsearch/css@3.6.0':
- resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==}
+ '@docsearch/css@3.6.1':
+ resolution: {integrity: sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==}
- '@docsearch/react@3.6.0':
- resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==}
+ '@docsearch/react@3.6.1':
+ resolution: {integrity: sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==}
peerDependencies:
'@types/react': ^18.3.1
react: '>= 16.8.0 < 19.0.0'
@@ -9586,13 +9586,13 @@ snapshots:
'@discoveryjs/json-ext@0.5.7': {}
- '@docsearch/css@3.6.0': {}
+ '@docsearch/css@3.6.1': {}
- '@docsearch/react@3.6.0(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.13.0)':
+ '@docsearch/react@3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.13.0)':
dependencies:
'@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.2)(algoliasearch@4.23.2)(search-insights@2.13.0)
'@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.2)(algoliasearch@4.23.2)
- '@docsearch/css': 3.6.0
+ '@docsearch/css': 3.6.1
algoliasearch: 4.23.2
optionalDependencies:
'@types/react': 18.3.1
From 86b5419d073a9559134ab118aa9e6b1964ad02e0 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:48:07 +0200
Subject: [PATCH 09/34] Bump @next/eslint-plugin-next to ^14.2.5 (#497)
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 47e8944003..fec01a1d47 100644
--- a/package.json
+++ b/package.json
@@ -83,7 +83,7 @@
"@mui/material": "6.0.0-beta.2",
"@mui/monorepo": "github:mui/material-ui#v6.0.0-beta.2",
"@mui/utils": "6.0.0-beta.1",
- "@next/eslint-plugin-next": "^14.2.3",
+ "@next/eslint-plugin-next": "^14.2.5",
"@octokit/rest": "^20.1.1",
"@playwright/test": "1.45.1",
"@types/fs-extra": "^11.0.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b7d3049f71..c10de50123 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -77,8 +77,8 @@ importers:
specifier: 6.0.0-beta.1
version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
'@next/eslint-plugin-next':
- specifier: ^14.2.3
- version: 14.2.3
+ specifier: ^14.2.5
+ version: 14.2.5
'@octokit/rest':
specifier: ^20.1.1
version: 20.1.1
@@ -2258,8 +2258,8 @@ packages:
'@next/env@14.2.3':
resolution: {integrity: sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==}
- '@next/eslint-plugin-next@14.2.3':
- resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==}
+ '@next/eslint-plugin-next@14.2.5':
+ resolution: {integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==}
'@next/swc-darwin-arm64@14.2.3':
resolution: {integrity: sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==}
@@ -10388,7 +10388,7 @@ snapshots:
'@next/env@14.2.3': {}
- '@next/eslint-plugin-next@14.2.3':
+ '@next/eslint-plugin-next@14.2.5':
dependencies:
glob: 10.3.10
From 73adefa34ea95e8645e507e427b5f9e8053a19fe Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:48:24 +0200
Subject: [PATCH 10/34] Bump @react-spring/web to ^9.7.4 (#498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
pnpm-lock.yaml | 60 ++++++++++++++++++++++++++---------------------
2 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 2b98d474ec..08bb1b2e49 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -35,7 +35,7 @@
"@mui/system": "6.0.0-beta.1",
"@mui/types": "7.2.15",
"@mui/utils": "6.0.0-beta.1",
- "@react-spring/web": "^9.7.3",
+ "@react-spring/web": "^9.7.4",
"autoprefixer": "^10.4.19",
"autosuggest-highlight": "^3.3.4",
"babel-plugin-module-resolver": "^5.0.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c10de50123..f18834361b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -374,8 +374,8 @@ importers:
specifier: 6.0.0-beta.1
version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
'@react-spring/web':
- specifier: ^9.7.3
- version: 9.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^9.7.4
+ version: 9.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
autoprefixer:
specifier: ^10.4.19
version: 10.4.19(postcss@8.4.38)
@@ -2603,26 +2603,29 @@ packages:
'@popperjs/core@2.11.8':
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
- '@react-spring/animated@9.7.3':
- resolution: {integrity: sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==}
+ '@react-spring/animated@9.7.4':
+ resolution: {integrity: sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
- '@react-spring/core@9.7.3':
- resolution: {integrity: sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==}
+ '@react-spring/core@9.7.4':
+ resolution: {integrity: sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
- '@react-spring/shared@9.7.3':
- resolution: {integrity: sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==}
+ '@react-spring/rafz@9.7.4':
+ resolution: {integrity: sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA==}
+
+ '@react-spring/shared@9.7.4':
+ resolution: {integrity: sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
- '@react-spring/types@9.7.3':
- resolution: {integrity: sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==}
+ '@react-spring/types@9.7.4':
+ resolution: {integrity: sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g==}
- '@react-spring/web@9.7.3':
- resolution: {integrity: sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==}
+ '@react-spring/web@9.7.4':
+ resolution: {integrity: sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -10778,32 +10781,35 @@ snapshots:
'@popperjs/core@2.11.8': {}
- '@react-spring/animated@9.7.3(react@18.2.0)':
+ '@react-spring/animated@9.7.4(react@18.2.0)':
dependencies:
- '@react-spring/shared': 9.7.3(react@18.2.0)
- '@react-spring/types': 9.7.3
+ '@react-spring/shared': 9.7.4(react@18.2.0)
+ '@react-spring/types': 9.7.4
react: 18.2.0
- '@react-spring/core@9.7.3(react@18.2.0)':
+ '@react-spring/core@9.7.4(react@18.2.0)':
dependencies:
- '@react-spring/animated': 9.7.3(react@18.2.0)
- '@react-spring/shared': 9.7.3(react@18.2.0)
- '@react-spring/types': 9.7.3
+ '@react-spring/animated': 9.7.4(react@18.2.0)
+ '@react-spring/shared': 9.7.4(react@18.2.0)
+ '@react-spring/types': 9.7.4
react: 18.2.0
- '@react-spring/shared@9.7.3(react@18.2.0)':
+ '@react-spring/rafz@9.7.4': {}
+
+ '@react-spring/shared@9.7.4(react@18.2.0)':
dependencies:
- '@react-spring/types': 9.7.3
+ '@react-spring/rafz': 9.7.4
+ '@react-spring/types': 9.7.4
react: 18.2.0
- '@react-spring/types@9.7.3': {}
+ '@react-spring/types@9.7.4': {}
- '@react-spring/web@9.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@react-spring/web@9.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
- '@react-spring/animated': 9.7.3(react@18.2.0)
- '@react-spring/core': 9.7.3(react@18.2.0)
- '@react-spring/shared': 9.7.3(react@18.2.0)
- '@react-spring/types': 9.7.3
+ '@react-spring/animated': 9.7.4(react@18.2.0)
+ '@react-spring/core': 9.7.4(react@18.2.0)
+ '@react-spring/shared': 9.7.4(react@18.2.0)
+ '@react-spring/types': 9.7.4
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
From ef81104003e55274912405e59b5f0a0402757614 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:48:36 +0200
Subject: [PATCH 11/34] Bump @types/eslint to ^8.56.11 (#499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
packages/eslint-plugin-material-ui/package.json | 2 +-
pnpm-lock.yaml | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/packages/eslint-plugin-material-ui/package.json b/packages/eslint-plugin-material-ui/package.json
index 1f5615f2aa..b2e9edef00 100644
--- a/packages/eslint-plugin-material-ui/package.json
+++ b/packages/eslint-plugin-material-ui/package.json
@@ -5,7 +5,7 @@
"description": "Custom eslint rules for Base UI.",
"main": "src/index.js",
"devDependencies": {
- "@types/eslint": "^8.56.10",
+ "@types/eslint": "^8.56.11",
"@typescript-eslint/experimental-utils": "^5.62.0",
"@typescript-eslint/parser": "^7.8.0"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f18834361b..a164b38910 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -546,8 +546,8 @@ importers:
packages/eslint-plugin-material-ui:
devDependencies:
'@types/eslint':
- specifier: ^8.56.10
- version: 8.56.10
+ specifier: ^8.56.11
+ version: 8.56.11
'@typescript-eslint/experimental-utils':
specifier: ^5.62.0
version: 5.62.0(eslint@8.57.0)(typescript@5.4.5)
@@ -2826,8 +2826,8 @@ packages:
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
- '@types/eslint@8.56.10':
- resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==}
+ '@types/eslint@8.56.11':
+ resolution: {integrity: sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==}
'@types/estree@1.0.5':
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
@@ -11062,10 +11062,10 @@ snapshots:
'@types/eslint-scope@3.7.7':
dependencies:
- '@types/eslint': 8.56.10
+ '@types/eslint': 8.56.11
'@types/estree': 1.0.5
- '@types/eslint@8.56.10':
+ '@types/eslint@8.56.11':
dependencies:
'@types/estree': 1.0.5
'@types/json-schema': 7.0.15
From d6ddffa7d6d66fb9ef8ecfa0f972b085ff2ee6c0 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:48:52 +0200
Subject: [PATCH 12/34] Bump @types/lodash to ^4.17.7 (#500)
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 fec01a1d47..5f34cd7556 100644
--- a/package.json
+++ b/package.json
@@ -87,7 +87,7 @@
"@octokit/rest": "^20.1.1",
"@playwright/test": "1.45.1",
"@types/fs-extra": "^11.0.4",
- "@types/lodash": "^4.17.4",
+ "@types/lodash": "^4.17.7",
"@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 a164b38910..1d79411f7c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -89,8 +89,8 @@ importers:
specifier: ^11.0.4
version: 11.0.4
'@types/lodash':
- specifier: ^4.17.4
- version: 4.17.4
+ specifier: ^4.17.7
+ version: 4.17.7
'@types/mocha':
specifier: ^10.0.6
version: 10.0.6
@@ -2865,8 +2865,8 @@ packages:
'@types/jsonwebtoken@8.5.9':
resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==}
- '@types/lodash@4.17.4':
- resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==}
+ '@types/lodash@4.17.7':
+ resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==}
'@types/mdast@3.0.15':
resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
@@ -11113,7 +11113,7 @@ snapshots:
dependencies:
'@types/node': 18.19.34
- '@types/lodash@4.17.4': {}
+ '@types/lodash@4.17.7': {}
'@types/mdast@3.0.15':
dependencies:
From ff913ef62e0305bfc1baf47001d005e6f8a53d8b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:49:55 +0200
Subject: [PATCH 13/34] Bump GitHub Actions (#502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/ci.yml | 4 ++--
.github/workflows/codeql.yml | 6 +++---
.github/workflows/scorecards.yml | 6 +++---
.github/workflows/vale-action.yml | 2 +-
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b529321745..a0a67c01b8 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,14 +21,14 @@ jobs:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- run: echo "${{ github.actor }}"
- - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
# fetch all tags which are required for `pnpm release:changelog`
fetch-depth: 0
- name: Set up pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # v3.0.0
- name: Use Node.js 18.x
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18
cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index ddbea1e248..71c1bc1f9d 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@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
+ uses: github/codeql-action/init@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # v3.25.15
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@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
+ uses: github/codeql-action/analyze@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # v3.25.15
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index e9669116b5..d3252e8d2c 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -22,12 +22,12 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
persist-credentials: false
- name: Run analysis
- uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
+ uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
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@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
+ uses: github/codeql-action/upload-sarif@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # v3.25.15
with:
sarif_file: results.sarif
diff --git a/.github/workflows/vale-action.yml b/.github/workflows/vale-action.yml
index 51eae2d268..7a76e0d2c4 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@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: errata-ai/vale-action@38bf078c328061f59879b347ca344a718a736018 # v2.1.0
continue-on-error: true
with:
From 8313f57ac3c250c37d78758278bf61d7ba92344a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:50:19 +0200
Subject: [PATCH 14/34] Bump Playwright (#503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.circleci/config.yml | 8 +++----
package.json | 2 +-
pnpm-lock.yaml | 54 ++++++++++++++++++++++----------------------
test/package.json | 4 ++--
4 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index ac13e59efa..1e2b763f75 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -319,7 +319,7 @@ jobs:
<<: *default-job
resource_class: 'medium+'
docker:
- - image: mcr.microsoft.com/playwright:v1.45.1-focal
+ - image: mcr.microsoft.com/playwright:v1.45.3-focal
environment:
NODE_ENV: development # Needed if playwright is in `devDependencies`
steps:
@@ -350,7 +350,7 @@ jobs:
test_profile:
<<: *default-job
docker:
- - image: mcr.microsoft.com/playwright:v1.45.1-focal
+ - image: mcr.microsoft.com/playwright:v1.45.3-focal
environment:
NODE_ENV: development # Needed if playwright is in `devDependencies`
steps:
@@ -378,7 +378,7 @@ jobs:
test_regressions:
<<: *default-job
docker:
- - image: mcr.microsoft.com/playwright:v1.45.1-focal
+ - image: mcr.microsoft.com/playwright:v1.45.3-focal
environment:
NODE_ENV: development # Needed if playwright is in `devDependencies`
steps:
@@ -395,7 +395,7 @@ jobs:
test_e2e:
<<: *default-job
docker:
- - image: mcr.microsoft.com/playwright:v1.45.1-focal
+ - image: mcr.microsoft.com/playwright:v1.45.3-focal
environment:
NODE_ENV: development # Needed if playwright is in `devDependencies`
steps:
diff --git a/package.json b/package.json
index 5f34cd7556..57c7c6491e 100644
--- a/package.json
+++ b/package.json
@@ -85,7 +85,7 @@
"@mui/utils": "6.0.0-beta.1",
"@next/eslint-plugin-next": "^14.2.5",
"@octokit/rest": "^20.1.1",
- "@playwright/test": "1.45.1",
+ "@playwright/test": "1.45.3",
"@types/fs-extra": "^11.0.4",
"@types/lodash": "^4.17.7",
"@types/mocha": "^10.0.6",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1d79411f7c..fb7eeb77b3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -83,8 +83,8 @@ importers:
specifier: ^20.1.1
version: 20.1.1
'@playwright/test':
- specifier: 1.45.1
- version: 1.45.1
+ specifier: 1.45.3
+ version: 1.45.3
'@types/fs-extra':
specifier: ^11.0.4
version: 11.0.4
@@ -342,7 +342,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-beta.2
- version: 6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.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-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2
version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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)
@@ -360,7 +360,7 @@ importers:
version: 6.0.0-beta.2(@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.14
- version: 6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.45.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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.45.3)(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-beta.2
version: 6.0.0-beta.2(@types/react@18.3.1)(react@18.2.0)
@@ -429,7 +429,7 @@ importers:
version: 1.5.0
next:
specifier: ^14.2.3
- version: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.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.45.3)(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
@@ -659,8 +659,8 @@ importers:
specifier: 6.0.0-beta.2
version: 6.0.0-beta.2(@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.45.1
- version: 1.45.1
+ specifier: 1.45.3
+ version: 1.45.3
'@testing-library/dom':
specifier: ^10.1.0
version: 10.3.1
@@ -698,8 +698,8 @@ importers:
specifier: ^4.17.21
version: 4.17.21
playwright:
- specifier: ^1.45.1
- version: 1.45.1
+ specifier: ^1.45.3
+ version: 1.45.3
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -2592,8 +2592,8 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@playwright/test@1.45.1':
- resolution: {integrity: sha512-Wo1bWTzQvGA7LyKGIZc8nFSTFf2TkthGIFBR+QVNilvwouGzFd4PYukZe3rvf5PSqjHi1+1NyKSDZKcQWETzaA==}
+ '@playwright/test@1.45.3':
+ resolution: {integrity: sha512-UKF4XsBfy+u3MFWEH44hva1Q8Da28G6RFtR2+5saw+jgAFQV5yYnB1fu68Mz7fO+5GJF3wgwAIs0UelU8TxFrA==}
engines: {node: '>=18'}
hasBin: true
@@ -6928,13 +6928,13 @@ packages:
resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
engines: {node: '>=8'}
- playwright-core@1.45.1:
- resolution: {integrity: sha512-LF4CUUtrUu2TCpDw4mcrAIuYrEjVDfT1cHbJMfwnE2+1b8PZcFzPNgvZCvq2JfQ4aTjRCCHw5EJ2tmr2NSzdPg==}
+ playwright-core@1.45.3:
+ resolution: {integrity: sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==}
engines: {node: '>=18'}
hasBin: true
- playwright@1.45.1:
- resolution: {integrity: sha512-Hjrgae4kpSQBr98nhCj3IScxVeVUixqj+5oyif8TdIn2opTCPEzqAqNMeK42i3cWDCVu9MI+ZsGWw+gVR4ISBg==}
+ playwright@1.45.3:
+ resolution: {integrity: sha512-QhVaS+lpluxCaioejDZ95l4Y4jSFCsBvl2UZkpeXlzxmqS+aABr5c82YmfMHrL6x27nvrvykJAFpkzT2eWdJww==}
engines: {node: '>=18'}
hasBin: true
@@ -10088,7 +10088,7 @@ snapshots:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {}
- ? '@mui/docs@6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.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-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -10099,7 +10099,7 @@ snapshots:
chai: 4.4.1
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.45.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.45.3)(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
@@ -10169,7 +10169,7 @@ snapshots:
jsdom: 24.0.0
lodash: 4.17.21
mocha: 10.6.0
- playwright: 1.45.1
+ playwright: 1.45.3
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -10200,11 +10200,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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.45.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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.45.3)(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-beta.2(@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.45.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.45.3)(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
@@ -10773,9 +10773,9 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@playwright/test@1.45.1':
+ '@playwright/test@1.45.3':
dependencies:
- playwright: 1.45.1
+ playwright: 1.45.3
'@polka/url@1.0.0-next.25': {}
@@ -15284,7 +15284,7 @@ snapshots:
nested-error-stacks@2.1.1: {}
- next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.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.45.3)(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
@@ -15306,7 +15306,7 @@ snapshots:
'@next/swc-win32-ia32-msvc': 14.2.3
'@next/swc-win32-x64-msvc': 14.2.3
'@opentelemetry/api': 1.8.0
- '@playwright/test': 1.45.1
+ '@playwright/test': 1.45.3
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -15999,11 +15999,11 @@ snapshots:
dependencies:
find-up: 3.0.0
- playwright-core@1.45.1: {}
+ playwright-core@1.45.3: {}
- playwright@1.45.1:
+ playwright@1.45.3:
dependencies:
- playwright-core: 1.45.1
+ playwright-core: 1.45.3
optionalDependencies:
fsevents: 2.3.2
diff --git a/test/package.json b/test/package.json
index 0f4454578a..b112d9fdd7 100644
--- a/test/package.json
+++ b/test/package.json
@@ -13,7 +13,7 @@
"@mui/internal-test-utils": "1.0.5",
"@mui/joy": "5.0.0-beta.48",
"@mui/material": "6.0.0-beta.2",
- "@playwright/test": "1.45.1",
+ "@playwright/test": "1.45.3",
"@testing-library/dom": "^10.1.0",
"@types/chai": "^4.3.16",
"@types/react": "^18.3.1",
@@ -26,7 +26,7 @@
"html-webpack-plugin": "^5.6.0",
"is-wsl": "^3.1.0",
"lodash": "^4.17.21",
- "playwright": "^1.45.1",
+ "playwright": "^1.45.3",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
From 340a8c043bbc8b3a3e0060de9f79b7baf74ba42a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:50:56 +0200
Subject: [PATCH 15/34] Bump globby to ^14.0.2 (#505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 17 +++++++++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/package.json b/package.json
index 57c7c6491e..7cb145786f 100644
--- a/package.json
+++ b/package.json
@@ -125,7 +125,7 @@
"execa": "^8.0.1",
"fast-glob": "^3.3.2",
"fs-extra": "^11.2.0",
- "globby": "^14.0.1",
+ "globby": "^14.0.2",
"karma": "^6.4.3",
"karma-browserstack-launcher": "~1.6.0",
"karma-chrome-launcher": "^3.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fb7eeb77b3..ccbfcdcf72 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -203,8 +203,8 @@ importers:
specifier: ^11.2.0
version: 11.2.0
globby:
- specifier: ^14.0.1
- version: 14.0.1
+ specifier: ^14.0.2
+ version: 14.0.2
karma:
specifier: ^6.4.3
version: 6.4.3
@@ -5027,6 +5027,10 @@ packages:
resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
engines: {node: '>=18'}
+ globby@14.0.2:
+ resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
+ engines: {node: '>=18'}
+
globjoin@0.1.4:
resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
@@ -13777,6 +13781,15 @@ snapshots:
slash: 5.1.0
unicorn-magic: 0.1.0
+ globby@14.0.2:
+ dependencies:
+ '@sindresorhus/merge-streams': 2.3.0
+ fast-glob: 3.3.2
+ ignore: 5.3.1
+ path-type: 5.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.1.0
+
globjoin@0.1.4: {}
google-auth-library@9.11.0(encoding@0.1.13):
From a2474cc40c38992a68e260f31fc7776eacff1364 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:51:29 +0200
Subject: [PATCH 16/34] Bump lerna to ^8.1.7 (#507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 889 ++++++++++++++++++++-----------------------------
2 files changed, 362 insertions(+), 529 deletions(-)
diff --git a/package.json b/package.json
index 7cb145786f..3f2936adba 100644
--- a/package.json
+++ b/package.json
@@ -134,7 +134,7 @@
"karma-mocha": "^2.0.1",
"karma-sourcemap-loader": "^0.4.0",
"karma-webpack": "^5.0.1",
- "lerna": "^8.1.3",
+ "lerna": "^8.1.7",
"lodash": "^4.17.21",
"markdownlint-cli2": "^0.13.0",
"mocha": "^10.4.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ccbfcdcf72..b25a008837 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -230,8 +230,8 @@ importers:
specifier: ^5.0.1
version: 5.0.1(webpack@5.91.0(webpack-cli@5.1.4))
lerna:
- specifier: ^8.1.3
- version: 8.1.3(encoding@0.1.13)
+ specifier: ^8.1.7
+ version: 8.1.7(babel-plugin-macros@3.1.0)(encoding@0.1.13)
lodash:
specifier: ^4.17.21
version: 4.17.21
@@ -1939,6 +1939,9 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
+ '@isaacs/string-locale-compare@1.1.0':
+ resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==}
+
'@istanbuljs/load-nyc-config@1.1.0':
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
engines: {node: '>=8'}
@@ -1972,8 +1975,8 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
- '@lerna/create@8.1.3':
- resolution: {integrity: sha512-JFvIYrlvR8Txa8h7VZx8VIQDltukEKOKaZL/muGO7Q/5aE2vjOKHsD/jkWYe/2uFy1xv37ubdx17O1UXQNadPg==}
+ '@lerna/create@8.1.7':
+ resolution: {integrity: sha512-ch81CgU5pBNOiUCQx44F/ZtN4DxxJjUQtuytYRBFWJSHAJ+XPJtiC/yQ9zjr1I1yaUlmNYYblkopoOyziOdJ1w==}
engines: {node: '>=18.0.0'}
'@minh.nguyen/plugin-transform-destructuring@7.5.2':
@@ -2334,8 +2337,13 @@ packages:
resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@npmcli/fs@3.1.0':
- resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
+ '@npmcli/arborist@7.5.3':
+ resolution: {integrity: sha512-7gbMdDNSYUzi0j2mpb6FoXRg3BxXWplMQZH1MZlvNjSdWFObaUz2Ssvo0Nlh2xmWks1OPo+gpsE6qxpT/5M7lQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+ hasBin: true
+
+ '@npmcli/fs@3.1.1':
+ resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
'@npmcli/git@5.0.6':
@@ -2347,20 +2355,40 @@ packages:
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
hasBin: true
+ '@npmcli/map-workspaces@3.0.6':
+ resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ '@npmcli/metavuln-calculator@7.1.1':
+ resolution: {integrity: sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@npmcli/name-from-folder@2.0.0':
+ resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
'@npmcli/node-gyp@3.0.0':
resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ '@npmcli/package-json@5.2.0':
+ resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
'@npmcli/promise-spawn@7.0.1':
resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@npmcli/redact@1.1.0':
- resolution: {integrity: sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==}
+ '@npmcli/query@3.1.0':
+ resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ '@npmcli/redact@2.0.1':
+ resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@npmcli/run-script@7.0.2':
- resolution: {integrity: sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==}
+ '@npmcli/run-script@8.1.0':
+ resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==}
engines: {node: ^16.14.0 || >=18.0.0}
'@nrwl/devkit@18.3.3':
@@ -2637,10 +2665,6 @@ packages:
'@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}
-
'@sigstore/bundle@2.3.1':
resolution: {integrity: sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -2649,26 +2673,14 @@ packages:
resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@sigstore/protobuf-specs@0.2.1':
- resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
'@sigstore/protobuf-specs@0.3.1':
resolution: {integrity: sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@sigstore/sign@1.0.0':
- resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
'@sigstore/sign@2.3.0':
resolution: {integrity: sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@sigstore/tuf@1.0.3':
- resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
'@sigstore/tuf@2.3.2':
resolution: {integrity: sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -2783,18 +2795,10 @@ packages:
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
engines: {node: '>= 10'}
- '@tufjs/canonical-json@1.0.0':
- resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
'@tufjs/canonical-json@2.0.0':
resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==}
engines: {node: ^16.14.0 || >=18.0.0}
- '@tufjs/models@1.0.4':
- resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
'@tufjs/models@2.0.0':
resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -3188,10 +3192,6 @@ packages:
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
engines: {node: '>= 14'}
- agentkeepalive@4.5.0:
- resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
- engines: {node: '>= 8.0.0'}
-
aggregate-error@3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
@@ -3282,11 +3282,6 @@ packages:
archy@1.0.0:
resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
- are-we-there-yet@3.0.1:
- resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- deprecated: This package is no longer supported.
-
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@@ -3486,6 +3481,10 @@ packages:
bignumber.js@9.1.2:
resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==}
+ bin-links@4.0.4:
+ resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
@@ -3540,12 +3539,6 @@ packages:
buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
- builtins@1.0.3:
- resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
-
- builtins@5.1.0:
- resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==}
-
busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
@@ -3567,12 +3560,8 @@ packages:
engines: {node: '>=10.12.0'}
hasBin: true
- cacache@17.1.4:
- resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
- cacache@18.0.2:
- resolution: {integrity: sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==}
+ cacache@18.0.4:
+ resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==}
engines: {node: ^16.14.0 || >=18.0.0}
caching-transform@4.0.0:
@@ -3681,6 +3670,10 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
+ ci-info@4.0.0:
+ resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
+ engines: {node: '>=8'}
+
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -3749,8 +3742,8 @@ packages:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
- cmd-shim@6.0.1:
- resolution: {integrity: sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==}
+ cmd-shim@6.0.3:
+ resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
color-convert@1.9.3:
@@ -3818,6 +3811,9 @@ packages:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
+ common-ancestor-path@1.0.1:
+ resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
+
common-path-prefix@3.0.0:
resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
@@ -4116,8 +4112,13 @@ packages:
decimal.js@10.4.3:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
- dedent@0.7.0:
- resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
+ dedent@1.5.3:
+ resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
deep-eql@4.1.3:
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
@@ -4153,9 +4154,6 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
- delegates@1.0.0:
- resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
-
depd@2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
@@ -4324,13 +4322,8 @@ packages:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
- envinfo@7.12.0:
- resolution: {integrity: sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==}
- engines: {node: '>=4'}
- hasBin: true
-
- envinfo@7.8.1:
- resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==}
+ envinfo@7.13.0:
+ resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==}
engines: {node: '>=4'}
hasBin: true
@@ -4866,11 +4859,6 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
- gauge@4.0.4:
- resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- deprecated: This package is no longer supported.
-
gaxios@6.5.0:
resolution: {integrity: sha512-R9QGdv8j4/dlNoQbX3hSaK/S0rkMijqjVvW3YM06CoBdbU/VdKd159j4hePpng0KuE6Lh6JJ7UdmVGJZFcAG1w==}
engines: {node: '>=14'}
@@ -4955,8 +4943,8 @@ packages:
git-up@7.0.0:
resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==}
- git-url-parse@13.1.0:
- resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==}
+ git-url-parse@14.0.0:
+ resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==}
gitconfiglocal@1.0.0:
resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==}
@@ -5123,20 +5111,12 @@ packages:
hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
- hosted-git-info@3.0.8:
- resolution: {integrity: sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==}
- engines: {node: '>=10'}
-
hosted-git-info@4.1.0:
resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
engines: {node: '>=10'}
- hosted-git-info@6.1.1:
- resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
- hosted-git-info@7.0.1:
- resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==}
+ hosted-git-info@7.0.2:
+ resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
engines: {node: ^16.14.0 || >=18.0.0}
html-encoding-sniffer@4.0.0:
@@ -5217,9 +5197,6 @@ packages:
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==}
-
hyperlinker@1.0.0:
resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==}
engines: {node: '>=4'}
@@ -5238,10 +5215,6 @@ packages:
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- ignore-walk@5.0.1:
- resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
ignore-walk@6.0.4:
resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -5281,9 +5254,9 @@ packages:
ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
- init-package-json@5.0.0:
- resolution: {integrity: sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ init-package-json@6.0.3:
+ resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==}
+ engines: {node: ^16.14.0 || >=18.0.0}
inquirer@8.2.6:
resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
@@ -5705,8 +5678,8 @@ packages:
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- json-parse-even-better-errors@3.0.1:
- resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==}
+ json-parse-even-better-errors@3.0.2:
+ resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
json-schema-traverse@0.4.1:
@@ -5718,6 +5691,9 @@ packages:
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ json-stringify-nice@1.1.4:
+ resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
+
json-stringify-safe@5.0.1:
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
@@ -5794,6 +5770,12 @@ packages:
resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==}
engines: {node: '>=12.20'}
+ just-diff-apply@5.5.0:
+ resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==}
+
+ just-diff@6.0.2:
+ resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==}
+
just-extend@6.2.0:
resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
@@ -5857,8 +5839,8 @@ packages:
resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
engines: {node: '>=0.10'}
- lerna@8.1.3:
- resolution: {integrity: sha512-Dg/r1dGnRCXKsOUC3lol7o6ggYTA6WWiPQzZJNKqyygn4fzYGuA3Dro2d5677pajaqFnFA72mdCjzSyF16Vi2Q==}
+ lerna@8.1.7:
+ resolution: {integrity: sha512-v2kkBn8Vqtroo30Pr5/JQ9MygRhnCsoI1jSOf3DxWmcTbkpC5U7c6rGr+7NPK6QrxKbC0/Cj4kuIBMb/7f79sQ==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -5866,13 +5848,13 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- libnpmaccess@7.0.2:
- resolution: {integrity: sha512-vHBVMw1JFMTgEk15zRsJuSAg7QtGGHpUSEfnbcRL1/gTBag9iEfJbyjpDmdJmwMhvpoLoNBtdAUCdGnaP32hhw==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ libnpmaccess@8.0.6:
+ resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
- libnpmpublish@7.3.0:
- resolution: {integrity: sha512-fHUxw5VJhZCNSls0KLNEG0mCD2PN1i14gH5elGOgiVnU3VgTcRahagYP2LKI1m0tFCJ+XrAm0zVYyF5RCbXzcg==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ libnpmpublish@9.0.9:
+ resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==}
+ engines: {node: ^16.14.0 || >=18.0.0}
lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
@@ -6017,9 +5999,8 @@ packages:
lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
- lru-cache@10.2.0:
- resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
- engines: {node: 14 || >=16.14}
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -6028,10 +6009,6 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
- lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
- engines: {node: '>=12'}
-
lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@@ -6048,10 +6025,6 @@ packages:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
- make-fetch-happen@11.1.1:
- resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
make-fetch-happen@13.0.0:
resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -6227,10 +6200,6 @@ packages:
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- minipass-collect@1.0.2:
- resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
- engines: {node: '>= 8'}
-
minipass-collect@2.0.1:
resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -6243,9 +6212,6 @@ packages:
resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
engines: {node: '>= 8'}
- minipass-json-stream@1.0.1:
- resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==}
-
minipass-pipeline@1.2.4:
resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
engines: {node: '>=8'}
@@ -6422,8 +6388,8 @@ packages:
node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
- nopt@7.2.0:
- resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==}
+ nopt@7.2.1:
+ resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
hasBin: true
@@ -6434,12 +6400,8 @@ packages:
resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
engines: {node: '>=10'}
- normalize-package-data@5.0.0:
- resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
- normalize-package-data@6.0.0:
- resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==}
+ normalize-package-data@6.0.2:
+ resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
engines: {node: ^16.14.0 || >=18.0.0}
normalize-path@3.0.0:
@@ -6450,9 +6412,6 @@ packages:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
- npm-bundled@1.1.2:
- resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
-
npm-bundled@3.0.0:
resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -6461,44 +6420,24 @@ packages:
resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- npm-normalize-package-bin@1.0.1:
- resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
-
npm-normalize-package-bin@3.0.1:
resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- npm-package-arg@10.1.0:
- resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
npm-package-arg@11.0.2:
resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==}
engines: {node: ^16.14.0 || >=18.0.0}
- npm-package-arg@8.1.1:
- resolution: {integrity: sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==}
- engines: {node: '>=10'}
-
- npm-packlist@5.1.1:
- resolution: {integrity: sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- hasBin: true
-
npm-packlist@8.0.2:
resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- npm-pick-manifest@9.0.0:
- resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==}
+ npm-pick-manifest@9.1.0:
+ resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==}
engines: {node: ^16.14.0 || >=18.0.0}
- npm-registry-fetch@14.0.5:
- resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
- npm-registry-fetch@16.2.1:
- resolution: {integrity: sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==}
+ npm-registry-fetch@17.1.0:
+ resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==}
engines: {node: ^16.14.0 || >=18.0.0}
npm-run-path@4.0.1:
@@ -6509,11 +6448,6 @@ packages:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- npmlog@6.0.2:
- resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- deprecated: This package is no longer supported.
-
nprogress@0.2.0:
resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
@@ -6756,8 +6690,8 @@ packages:
resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==}
engines: {node: '>=8'}
- pacote@17.0.7:
- resolution: {integrity: sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==}
+ pacote@18.0.6:
+ resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==}
engines: {node: ^16.14.0 || >=18.0.0}
hasBin: true
@@ -6768,6 +6702,10 @@ packages:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
+ parse-conflict-json@3.0.1:
+ resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
parse-diff@0.7.1:
resolution: {integrity: sha512-1j3l8IKcy4yRK2W4o9EYvJLSzpAVwz4DXqCewYyx2vEwk2gcf3DBPqc8Fj4XV3K33OYJ08A8fWwyu/ykD/HUSg==}
@@ -7073,6 +7011,16 @@ packages:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
+ proggy@2.0.0:
+ resolution: {integrity: sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ promise-all-reject-late@1.0.1:
+ resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==}
+
+ promise-call-limit@3.0.1:
+ resolution: {integrity: sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg==}
+
promise-inflight@1.0.1:
resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
peerDependencies:
@@ -7248,16 +7196,6 @@ packages:
resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- read-package-json@6.0.4:
- resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- deprecated: This package is no longer supported. Please use @npmcli/package-json instead.
-
- read-package-json@7.0.0:
- resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==}
- engines: {node: ^16.14.0 || >=18.0.0}
- deprecated: This package is no longer supported. Please use @npmcli/package-json instead.
-
read-pkg-up@3.0.0:
resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
engines: {node: '>=4'}
@@ -7274,10 +7212,6 @@ packages:
resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
engines: {node: '>=8'}
- read@2.1.0:
- resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
read@3.0.1:
resolution: {integrity: sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -7595,11 +7529,6 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- sigstore@1.9.0:
- resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- hasBin: true
-
sigstore@2.3.0:
resolution: {integrity: sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -7652,10 +7581,6 @@ packages:
resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==}
engines: {node: '>=10.2.0'}
- socks-proxy-agent@7.0.0:
- resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
- engines: {node: '>= 10'}
-
socks-proxy-agent@8.0.3:
resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==}
engines: {node: '>= 14'}
@@ -7717,14 +7642,10 @@ packages:
sprintf-js@1.1.3:
resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
- ssri@10.0.5:
- resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
+ ssri@10.0.6:
+ resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- ssri@9.0.1:
- resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
statuses@1.5.0:
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
engines: {node: '>= 0.6'}
@@ -8037,6 +7958,10 @@ packages:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
+ treeverse@3.0.0:
+ resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
trim-newlines@3.0.1:
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
engines: {node: '>=8'}
@@ -8081,10 +8006,6 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
- tuf-js@1.1.7:
- resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
tuf-js@2.2.0:
resolution: {integrity: sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -8273,6 +8194,10 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ uuid@10.0.0:
+ resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -8292,11 +8217,8 @@ packages:
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
- validate-npm-package-name@3.0.0:
- resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
-
- validate-npm-package-name@5.0.0:
- resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
+ validate-npm-package-name@5.0.1:
+ resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
vary@1.1.2:
@@ -8317,6 +8239,9 @@ packages:
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
engines: {node: '>=18'}
+ walk-up-path@3.0.1:
+ resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==}
+
watchpack@2.4.1:
resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
engines: {node: '>=10.13.0'}
@@ -9944,6 +9869,8 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@isaacs/string-locale-compare@1.1.0': {}
+
'@istanbuljs/load-nyc-config@1.1.0':
dependencies:
camelcase: 5.3.1
@@ -9980,68 +9907,75 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
- '@lerna/create@8.1.3(encoding@0.1.13)(typescript@5.4.5)':
+ '@lerna/create@8.1.7(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.4.5)':
dependencies:
- '@npmcli/run-script': 7.0.2
+ '@npmcli/arborist': 7.5.3
+ '@npmcli/package-json': 5.2.0
+ '@npmcli/run-script': 8.1.0
'@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)
+ aproba: 2.0.0
byte-size: 8.1.1
chalk: 4.1.0
clone-deep: 4.0.1
- cmd-shim: 6.0.1
+ cmd-shim: 6.0.3
+ color-support: 1.1.3
columnify: 1.6.0
+ console-control-strings: 1.1.0
conventional-changelog-core: 5.0.1
conventional-recommended-bump: 7.0.1
cosmiconfig: 8.3.6(typescript@5.4.5)
- dedent: 0.7.0
+ dedent: 1.5.3(babel-plugin-macros@3.1.0)
execa: 5.0.0
fs-extra: 11.2.0
get-stream: 6.0.0
- git-url-parse: 13.1.0
- glob-parent: 5.1.2
+ git-url-parse: 14.0.0
+ glob-parent: 6.0.2
globby: 11.1.0
graceful-fs: 4.2.11
has-unicode: 2.0.1
ini: 1.3.8
- init-package-json: 5.0.0
+ init-package-json: 6.0.3
inquirer: 8.2.6
is-ci: 3.0.1
is-stream: 2.0.0
js-yaml: 4.1.0
- libnpmpublish: 7.3.0
+ libnpmpublish: 9.0.9
load-json-file: 6.2.0
lodash: 4.17.21
make-dir: 4.0.0
minimatch: 3.0.5
multimatch: 5.0.0
node-fetch: 2.6.7(encoding@0.1.13)
- npm-package-arg: 8.1.1
- npm-packlist: 5.1.1
- npm-registry-fetch: 14.0.5
- npmlog: 6.0.2
+ npm-package-arg: 11.0.2
+ npm-packlist: 8.0.2
+ npm-registry-fetch: 17.1.0
nx: 18.3.5
p-map: 4.0.0
p-map-series: 2.1.0
p-queue: 6.6.2
p-reduce: 2.1.0
- pacote: 17.0.7
+ pacote: 18.0.6
pify: 5.0.0
read-cmd-shim: 4.0.0
- read-package-json: 6.0.4
resolve-from: 5.0.0
rimraf: 4.4.1
semver: 7.6.0
+ set-blocking: 2.0.0
signal-exit: 3.0.7
slash: 3.0.0
- ssri: 9.0.1
+ ssri: 10.0.6
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
strong-log-transformer: 2.1.0
tar: 6.2.1
temp-dir: 1.0.0
upath: 2.0.1
- uuid: 9.0.1
+ uuid: 10.0.0
validate-npm-package-license: 3.0.4
- validate-npm-package-name: 5.0.0
+ validate-npm-package-name: 5.0.1
+ wide-align: 1.1.5
write-file-atomic: 5.0.1
write-pkg: 4.0.0
yargs: 17.7.2
@@ -10049,6 +9983,7 @@ snapshots:
transitivePeerDependencies:
- '@swc-node/register'
- '@swc/core'
+ - babel-plugin-macros
- bluebird
- debug
- encoding
@@ -10446,20 +10381,61 @@ snapshots:
agent-base: 7.1.1
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.4
- lru-cache: 10.2.0
+ lru-cache: 10.4.3
socks-proxy-agent: 8.0.3
transitivePeerDependencies:
- supports-color
- '@npmcli/fs@3.1.0':
+ '@npmcli/arborist@7.5.3':
+ dependencies:
+ '@isaacs/string-locale-compare': 1.1.0
+ '@npmcli/fs': 3.1.1
+ '@npmcli/installed-package-contents': 2.1.0
+ '@npmcli/map-workspaces': 3.0.6
+ '@npmcli/metavuln-calculator': 7.1.1
+ '@npmcli/name-from-folder': 2.0.0
+ '@npmcli/node-gyp': 3.0.0
+ '@npmcli/package-json': 5.2.0
+ '@npmcli/query': 3.1.0
+ '@npmcli/redact': 2.0.1
+ '@npmcli/run-script': 8.1.0
+ bin-links: 4.0.4
+ cacache: 18.0.4
+ common-ancestor-path: 1.0.1
+ hosted-git-info: 7.0.2
+ json-parse-even-better-errors: 3.0.2
+ json-stringify-nice: 1.1.4
+ lru-cache: 10.4.3
+ minimatch: 9.0.4
+ nopt: 7.2.1
+ npm-install-checks: 6.3.0
+ npm-package-arg: 11.0.2
+ npm-pick-manifest: 9.1.0
+ npm-registry-fetch: 17.1.0
+ pacote: 18.0.6
+ parse-conflict-json: 3.0.1
+ proc-log: 4.2.0
+ proggy: 2.0.0
+ promise-all-reject-late: 1.0.1
+ promise-call-limit: 3.0.1
+ read-package-json-fast: 3.0.2
+ semver: 7.6.0
+ ssri: 10.0.6
+ treeverse: 3.0.0
+ walk-up-path: 3.0.1
+ transitivePeerDependencies:
+ - bluebird
+ - supports-color
+
+ '@npmcli/fs@3.1.1':
dependencies:
semver: 7.6.0
'@npmcli/git@5.0.6':
dependencies:
'@npmcli/promise-spawn': 7.0.1
- lru-cache: 10.2.0
- npm-pick-manifest: 9.0.0
+ lru-cache: 10.4.3
+ npm-pick-manifest: 9.1.0
proc-log: 4.2.0
promise-inflight: 1.0.1
promise-retry: 2.0.1
@@ -10473,22 +10449,60 @@ snapshots:
npm-bundled: 3.0.0
npm-normalize-package-bin: 3.0.1
+ '@npmcli/map-workspaces@3.0.6':
+ dependencies:
+ '@npmcli/name-from-folder': 2.0.0
+ glob: 10.3.12
+ minimatch: 9.0.4
+ read-package-json-fast: 3.0.2
+
+ '@npmcli/metavuln-calculator@7.1.1':
+ dependencies:
+ cacache: 18.0.4
+ json-parse-even-better-errors: 3.0.2
+ pacote: 18.0.6
+ proc-log: 4.2.0
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - bluebird
+ - supports-color
+
+ '@npmcli/name-from-folder@2.0.0': {}
+
'@npmcli/node-gyp@3.0.0': {}
+ '@npmcli/package-json@5.2.0':
+ dependencies:
+ '@npmcli/git': 5.0.6
+ glob: 10.3.12
+ hosted-git-info: 7.0.2
+ json-parse-even-better-errors: 3.0.2
+ normalize-package-data: 6.0.2
+ proc-log: 4.2.0
+ semver: 7.6.0
+ transitivePeerDependencies:
+ - bluebird
+
'@npmcli/promise-spawn@7.0.1':
dependencies:
which: 4.0.0
- '@npmcli/redact@1.1.0': {}
+ '@npmcli/query@3.1.0':
+ dependencies:
+ postcss-selector-parser: 6.0.16
+
+ '@npmcli/redact@2.0.1': {}
- '@npmcli/run-script@7.0.2':
+ '@npmcli/run-script@8.1.0':
dependencies:
'@npmcli/node-gyp': 3.0.0
+ '@npmcli/package-json': 5.2.0
'@npmcli/promise-spawn': 7.0.1
node-gyp: 10.1.0
- read-package-json-fast: 3.0.2
+ proc-log: 4.2.0
which: 4.0.0
transitivePeerDependencies:
+ - bluebird
- supports-color
'@nrwl/devkit@18.3.3(nx@18.3.5)':
@@ -10821,28 +10835,14 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
- '@sigstore/bundle@1.1.0':
- dependencies:
- '@sigstore/protobuf-specs': 0.2.1
-
'@sigstore/bundle@2.3.1':
dependencies:
'@sigstore/protobuf-specs': 0.3.1
'@sigstore/core@1.1.0': {}
- '@sigstore/protobuf-specs@0.2.1': {}
-
'@sigstore/protobuf-specs@0.3.1': {}
- '@sigstore/sign@1.0.0':
- dependencies:
- '@sigstore/bundle': 1.1.0
- '@sigstore/protobuf-specs': 0.2.1
- make-fetch-happen: 11.1.1
- transitivePeerDependencies:
- - supports-color
-
'@sigstore/sign@2.3.0':
dependencies:
'@sigstore/bundle': 2.3.1
@@ -10852,13 +10852,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@sigstore/tuf@1.0.3':
- dependencies:
- '@sigstore/protobuf-specs': 0.2.1
- tuf-js: 1.1.7
- transitivePeerDependencies:
- - supports-color
-
'@sigstore/tuf@2.3.2':
dependencies:
'@sigstore/protobuf-specs': 0.3.1
@@ -11025,15 +11018,8 @@ snapshots:
'@tootallnate/once@2.0.0': {}
- '@tufjs/canonical-json@1.0.0': {}
-
'@tufjs/canonical-json@2.0.0': {}
- '@tufjs/models@1.0.4':
- dependencies:
- '@tufjs/canonical-json': 1.0.0
- minimatch: 9.0.4
-
'@tufjs/models@2.0.0':
dependencies:
'@tufjs/canonical-json': 2.0.0
@@ -11492,10 +11478,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- agentkeepalive@4.5.0:
- dependencies:
- humanize-ms: 1.2.1
-
aggregate-error@3.1.0:
dependencies:
clean-stack: 2.2.0
@@ -11594,11 +11576,6 @@ snapshots:
archy@1.0.0: {}
- are-we-there-yet@3.0.1:
- dependencies:
- delegates: 1.0.0
- readable-stream: 3.6.2
-
arg@5.0.2: {}
argparse@1.0.10:
@@ -11860,6 +11837,13 @@ snapshots:
bignumber.js@9.1.2: {}
+ bin-links@4.0.4:
+ dependencies:
+ cmd-shim: 6.0.3
+ npm-normalize-package-bin: 3.0.1
+ read-cmd-shim: 4.0.0
+ write-file-atomic: 5.0.1
+
binary-extensions@2.3.0: {}
bl@4.1.0:
@@ -11947,12 +11931,6 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
- builtins@1.0.3: {}
-
- builtins@5.1.0:
- dependencies:
- semver: 7.6.0
-
busboy@1.6.0:
dependencies:
streamsearch: 1.1.0
@@ -11978,33 +11956,18 @@ snapshots:
yargs: 16.2.0
yargs-parser: 20.2.9
- cacache@17.1.4:
- dependencies:
- '@npmcli/fs': 3.1.0
- fs-minipass: 3.0.3
- glob: 10.3.12
- lru-cache: 7.18.3
- minipass: 7.0.4
- minipass-collect: 1.0.2
- minipass-flush: 1.0.5
- minipass-pipeline: 1.2.4
- p-map: 4.0.0
- ssri: 10.0.5
- tar: 6.2.1
- unique-filename: 3.0.0
-
- cacache@18.0.2:
+ cacache@18.0.4:
dependencies:
- '@npmcli/fs': 3.1.0
+ '@npmcli/fs': 3.1.1
fs-minipass: 3.0.3
glob: 10.3.12
- lru-cache: 10.2.0
+ lru-cache: 10.4.3
minipass: 7.0.4
minipass-collect: 2.0.1
minipass-flush: 1.0.5
minipass-pipeline: 1.2.4
p-map: 4.0.0
- ssri: 10.0.5
+ ssri: 10.0.6
tar: 6.2.1
unique-filename: 3.0.0
@@ -12116,6 +12079,8 @@ snapshots:
ci-info@3.9.0: {}
+ ci-info@4.0.0: {}
+
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
@@ -12178,7 +12143,7 @@ snapshots:
clsx@2.1.1: {}
- cmd-shim@6.0.1: {}
+ cmd-shim@6.0.3: {}
color-convert@1.9.3:
dependencies:
@@ -12231,6 +12196,8 @@ snapshots:
commander@8.3.0: {}
+ common-ancestor-path@1.0.1: {}
+
common-path-prefix@3.0.0: {}
commondir@1.0.1: {}
@@ -12597,7 +12564,9 @@ snapshots:
decimal.js@10.4.3: {}
- dedent@0.7.0: {}
+ dedent@1.5.3(babel-plugin-macros@3.1.0):
+ optionalDependencies:
+ babel-plugin-macros: 3.1.0
deep-eql@4.1.3:
dependencies:
@@ -12631,8 +12600,6 @@ snapshots:
delayed-stream@1.0.0: {}
- delegates@1.0.0: {}
-
depd@2.0.0: {}
deprecation@2.3.1: {}
@@ -12795,9 +12762,7 @@ snapshots:
env-paths@2.2.1: {}
- envinfo@7.12.0: {}
-
- envinfo@7.8.1: {}
+ envinfo@7.13.0: {}
err-code@2.0.3: {}
@@ -13572,17 +13537,6 @@ snapshots:
functions-have-names@1.2.3: {}
- gauge@4.0.4:
- dependencies:
- aproba: 2.0.0
- color-support: 1.1.3
- console-control-strings: 1.1.0
- has-unicode: 2.0.1
- signal-exit: 3.0.7
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wide-align: 1.1.5
-
gaxios@6.5.0(encoding@0.1.13):
dependencies:
extend: 3.0.2
@@ -13677,7 +13631,7 @@ snapshots:
is-ssh: 1.4.0
parse-url: 8.1.0
- git-url-parse@13.1.0:
+ git-url-parse@14.0.0:
dependencies:
git-up: 7.0.0
@@ -13890,21 +13844,13 @@ snapshots:
hosted-git-info@2.8.9: {}
- hosted-git-info@3.0.8:
- dependencies:
- lru-cache: 6.0.0
-
hosted-git-info@4.1.0:
dependencies:
lru-cache: 6.0.0
- hosted-git-info@6.1.1:
- dependencies:
- lru-cache: 7.18.3
-
- hosted-git-info@7.0.1:
+ hosted-git-info@7.0.2:
dependencies:
- lru-cache: 10.2.0
+ lru-cache: 10.4.3
html-encoding-sniffer@4.0.0:
dependencies:
@@ -14009,10 +13955,6 @@ snapshots:
human-signals@7.0.0: {}
- humanize-ms@1.2.1:
- dependencies:
- ms: 2.1.3
-
hyperlinker@1.0.0: {}
hyphenate-style-name@1.0.4: {}
@@ -14027,10 +13969,6 @@ snapshots:
ieee754@1.2.1: {}
- ignore-walk@5.0.1:
- dependencies:
- minimatch: 5.1.6
-
ignore-walk@6.0.4:
dependencies:
minimatch: 9.0.4
@@ -14062,15 +14000,17 @@ snapshots:
ini@1.3.8: {}
- init-package-json@5.0.0:
+ init-package-json@6.0.3:
dependencies:
- npm-package-arg: 10.1.0
+ '@npmcli/package-json': 5.2.0
+ npm-package-arg: 11.0.2
promzard: 1.0.1
- read: 2.1.0
- read-package-json: 6.0.4
+ read: 3.0.1
semver: 7.6.0
validate-npm-package-license: 3.0.4
- validate-npm-package-name: 5.0.0
+ validate-npm-package-name: 5.0.1
+ transitivePeerDependencies:
+ - bluebird
inquirer@8.2.6:
dependencies:
@@ -14482,7 +14422,7 @@ snapshots:
json-parse-even-better-errors@2.3.1: {}
- json-parse-even-better-errors@3.0.1: {}
+ json-parse-even-better-errors@3.0.2: {}
json-schema-traverse@0.4.1: {}
@@ -14490,6 +14430,8 @@ snapshots:
json-stable-stringify-without-jsonify@1.0.1: {}
+ json-stringify-nice@1.1.4: {}
+
json-stringify-safe@5.0.1: {}
json5@1.0.2:
@@ -14595,6 +14537,10 @@ snapshots:
junk@4.0.1: {}
+ just-diff-apply@5.5.0: {}
+
+ just-diff@6.0.2: {}
+
just-extend@6.2.0: {}
jwa@1.4.1:
@@ -14708,53 +14654,57 @@ snapshots:
dependencies:
language-subtag-registry: 0.3.22
- lerna@8.1.3(encoding@0.1.13):
+ lerna@8.1.7(babel-plugin-macros@3.1.0)(encoding@0.1.13):
dependencies:
- '@lerna/create': 8.1.3(encoding@0.1.13)(typescript@5.4.5)
- '@npmcli/run-script': 7.0.2
+ '@lerna/create': 8.1.7(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.4.5)
+ '@npmcli/arborist': 7.5.3
+ '@npmcli/package-json': 5.2.0
+ '@npmcli/run-script': 8.1.0
'@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)
+ aproba: 2.0.0
byte-size: 8.1.1
chalk: 4.1.0
clone-deep: 4.0.1
- cmd-shim: 6.0.1
+ cmd-shim: 6.0.3
+ color-support: 1.1.3
columnify: 1.6.0
+ console-control-strings: 1.1.0
conventional-changelog-angular: 7.0.0
conventional-changelog-core: 5.0.1
conventional-recommended-bump: 7.0.1
cosmiconfig: 8.3.6(typescript@5.4.5)
- dedent: 0.7.0
- envinfo: 7.8.1
+ dedent: 1.5.3(babel-plugin-macros@3.1.0)
+ envinfo: 7.13.0
execa: 5.0.0
fs-extra: 11.2.0
get-port: 5.1.1
get-stream: 6.0.0
- git-url-parse: 13.1.0
- glob-parent: 5.1.2
+ git-url-parse: 14.0.0
+ glob-parent: 6.0.2
globby: 11.1.0
graceful-fs: 4.2.11
has-unicode: 2.0.1
import-local: 3.1.0
ini: 1.3.8
- init-package-json: 5.0.0
+ init-package-json: 6.0.3
inquirer: 8.2.6
is-ci: 3.0.1
is-stream: 2.0.0
jest-diff: 29.7.0
js-yaml: 4.1.0
- libnpmaccess: 7.0.2
- libnpmpublish: 7.3.0
+ libnpmaccess: 8.0.6
+ libnpmpublish: 9.0.9
load-json-file: 6.2.0
lodash: 4.17.21
make-dir: 4.0.0
minimatch: 3.0.5
multimatch: 5.0.0
node-fetch: 2.6.7(encoding@0.1.13)
- npm-package-arg: 8.1.1
- npm-packlist: 5.1.1
- npm-registry-fetch: 14.0.5
- npmlog: 6.0.2
+ npm-package-arg: 11.0.2
+ npm-packlist: 8.0.2
+ npm-registry-fetch: 17.1.0
nx: 18.3.5
p-map: 4.0.0
p-map-series: 2.1.0
@@ -14762,24 +14712,27 @@ snapshots:
p-queue: 6.6.2
p-reduce: 2.1.0
p-waterfall: 2.1.1
- pacote: 17.0.7
+ pacote: 18.0.6
pify: 5.0.0
read-cmd-shim: 4.0.0
- read-package-json: 6.0.4
resolve-from: 5.0.0
rimraf: 4.4.1
semver: 7.6.0
+ set-blocking: 2.0.0
signal-exit: 3.0.7
slash: 3.0.0
- ssri: 9.0.1
+ ssri: 10.0.6
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
strong-log-transformer: 2.1.0
tar: 6.2.1
temp-dir: 1.0.0
typescript: 5.4.5
upath: 2.0.1
- uuid: 9.0.1
+ uuid: 10.0.0
validate-npm-package-license: 3.0.4
- validate-npm-package-name: 5.0.0
+ validate-npm-package-name: 5.0.1
+ wide-align: 1.1.5
write-file-atomic: 5.0.1
write-pkg: 4.0.0
yargs: 17.7.2
@@ -14787,6 +14740,7 @@ snapshots:
transitivePeerDependencies:
- '@swc-node/register'
- '@swc/core'
+ - babel-plugin-macros
- bluebird
- debug
- encoding
@@ -14797,23 +14751,23 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- libnpmaccess@7.0.2:
+ libnpmaccess@8.0.6:
dependencies:
- npm-package-arg: 10.1.0
- npm-registry-fetch: 14.0.5
+ npm-package-arg: 11.0.2
+ npm-registry-fetch: 17.1.0
transitivePeerDependencies:
- supports-color
- libnpmpublish@7.3.0:
+ libnpmpublish@9.0.9:
dependencies:
- ci-info: 3.9.0
- normalize-package-data: 5.0.0
- npm-package-arg: 10.1.0
- npm-registry-fetch: 14.0.5
- proc-log: 3.0.0
+ ci-info: 4.0.0
+ normalize-package-data: 6.0.2
+ npm-package-arg: 11.0.2
+ npm-registry-fetch: 17.1.0
+ proc-log: 4.2.0
semver: 7.6.0
- sigstore: 1.9.0
- ssri: 10.0.5
+ sigstore: 2.3.0
+ ssri: 10.0.6
transitivePeerDependencies:
- supports-color
@@ -14944,7 +14898,7 @@ snapshots:
dependencies:
tslib: 2.6.2
- lru-cache@10.2.0: {}
+ lru-cache@10.4.3: {}
lru-cache@5.1.1:
dependencies:
@@ -14954,8 +14908,6 @@ snapshots:
dependencies:
yallist: 4.0.0
- lru-cache@7.18.3: {}
-
lz-string@1.5.0: {}
make-dir@2.1.0:
@@ -14971,30 +14923,10 @@ snapshots:
dependencies:
semver: 7.6.0
- make-fetch-happen@11.1.1:
- dependencies:
- agentkeepalive: 4.5.0
- cacache: 17.1.4
- http-cache-semantics: 4.1.1
- http-proxy-agent: 5.0.0
- https-proxy-agent: 5.0.1
- is-lambda: 1.0.1
- lru-cache: 7.18.3
- minipass: 5.0.0
- minipass-fetch: 3.0.4
- minipass-flush: 1.0.5
- minipass-pipeline: 1.2.4
- negotiator: 0.6.3
- promise-retry: 2.0.1
- socks-proxy-agent: 7.0.0
- ssri: 10.0.5
- transitivePeerDependencies:
- - supports-color
-
make-fetch-happen@13.0.0:
dependencies:
'@npmcli/agent': 2.2.2
- cacache: 18.0.2
+ cacache: 18.0.4
http-cache-semantics: 4.1.1
is-lambda: 1.0.1
minipass: 7.0.4
@@ -15003,7 +14935,7 @@ snapshots:
minipass-pipeline: 1.2.4
negotiator: 0.6.3
promise-retry: 2.0.1
- ssri: 10.0.5
+ ssri: 10.0.6
transitivePeerDependencies:
- supports-color
@@ -15175,10 +15107,6 @@ snapshots:
minimist@1.2.8: {}
- minipass-collect@1.0.2:
- dependencies:
- minipass: 3.3.6
-
minipass-collect@2.0.1:
dependencies:
minipass: 7.0.4
@@ -15195,11 +15123,6 @@ snapshots:
dependencies:
minipass: 3.3.6
- minipass-json-stream@1.0.1:
- dependencies:
- jsonparse: 1.3.1
- minipass: 3.3.6
-
minipass-pipeline@1.2.4:
dependencies:
minipass: 3.3.6
@@ -15379,7 +15302,7 @@ snapshots:
glob: 10.3.12
graceful-fs: 4.2.11
make-fetch-happen: 13.0.0
- nopt: 7.2.0
+ nopt: 7.2.1
proc-log: 3.0.0
semver: 7.6.0
tar: 6.2.1
@@ -15395,7 +15318,7 @@ snapshots:
node-releases@2.0.14: {}
- nopt@7.2.0:
+ nopt@7.2.1:
dependencies:
abbrev: 2.0.0
@@ -15413,17 +15336,9 @@ snapshots:
semver: 7.6.0
validate-npm-package-license: 3.0.4
- normalize-package-data@5.0.0:
+ normalize-package-data@6.0.2:
dependencies:
- hosted-git-info: 6.1.1
- is-core-module: 2.13.1
- semver: 7.6.0
- validate-npm-package-license: 3.0.4
-
- normalize-package-data@6.0.0:
- dependencies:
- hosted-git-info: 7.0.1
- is-core-module: 2.13.1
+ hosted-git-info: 7.0.2
semver: 7.6.0
validate-npm-package-license: 3.0.4
@@ -15431,10 +15346,6 @@ snapshots:
normalize-range@0.1.2: {}
- npm-bundled@1.1.2:
- dependencies:
- npm-normalize-package-bin: 1.0.1
-
npm-bundled@3.0.0:
dependencies:
npm-normalize-package-bin: 3.0.1
@@ -15443,67 +15354,33 @@ snapshots:
dependencies:
semver: 7.6.0
- npm-normalize-package-bin@1.0.1: {}
-
npm-normalize-package-bin@3.0.1: {}
- npm-package-arg@10.1.0:
- dependencies:
- hosted-git-info: 6.1.1
- proc-log: 3.0.0
- semver: 7.6.0
- validate-npm-package-name: 5.0.0
-
npm-package-arg@11.0.2:
dependencies:
- hosted-git-info: 7.0.1
+ hosted-git-info: 7.0.2
proc-log: 4.2.0
semver: 7.6.0
- validate-npm-package-name: 5.0.0
-
- npm-package-arg@8.1.1:
- dependencies:
- hosted-git-info: 3.0.8
- semver: 7.6.0
- validate-npm-package-name: 3.0.0
-
- npm-packlist@5.1.1:
- dependencies:
- glob: 8.1.0
- ignore-walk: 5.0.1
- npm-bundled: 1.1.2
- npm-normalize-package-bin: 1.0.1
+ validate-npm-package-name: 5.0.1
npm-packlist@8.0.2:
dependencies:
ignore-walk: 6.0.4
- npm-pick-manifest@9.0.0:
+ npm-pick-manifest@9.1.0:
dependencies:
npm-install-checks: 6.3.0
npm-normalize-package-bin: 3.0.1
npm-package-arg: 11.0.2
semver: 7.6.0
- npm-registry-fetch@14.0.5:
- dependencies:
- make-fetch-happen: 11.1.1
- minipass: 5.0.0
- minipass-fetch: 3.0.4
- minipass-json-stream: 1.0.1
- minizlib: 2.1.2
- npm-package-arg: 10.1.0
- proc-log: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
- npm-registry-fetch@16.2.1:
+ npm-registry-fetch@17.1.0:
dependencies:
- '@npmcli/redact': 1.1.0
+ '@npmcli/redact': 2.0.1
+ jsonparse: 1.3.1
make-fetch-happen: 13.0.0
minipass: 7.0.4
minipass-fetch: 3.0.4
- minipass-json-stream: 1.0.1
minizlib: 2.1.2
npm-package-arg: 11.0.2
proc-log: 4.2.0
@@ -15518,13 +15395,6 @@ snapshots:
dependencies:
path-key: 4.0.0
- npmlog@6.0.2:
- dependencies:
- are-we-there-yet: 3.0.1
- console-control-strings: 1.1.0
- gauge: 4.0.4
- set-blocking: 2.0.0
-
nprogress@0.2.0: {}
nth-check@2.1.1:
@@ -15842,25 +15712,24 @@ snapshots:
lodash.flattendeep: 4.4.0
release-zalgo: 1.0.0
- pacote@17.0.7:
+ pacote@18.0.6:
dependencies:
'@npmcli/git': 5.0.6
'@npmcli/installed-package-contents': 2.1.0
+ '@npmcli/package-json': 5.2.0
'@npmcli/promise-spawn': 7.0.1
- '@npmcli/run-script': 7.0.2
- cacache: 18.0.2
+ '@npmcli/run-script': 8.1.0
+ cacache: 18.0.4
fs-minipass: 3.0.3
minipass: 7.0.4
npm-package-arg: 11.0.2
npm-packlist: 8.0.2
- npm-pick-manifest: 9.0.0
- npm-registry-fetch: 16.2.1
+ npm-pick-manifest: 9.1.0
+ npm-registry-fetch: 17.1.0
proc-log: 4.2.0
promise-retry: 2.0.1
- read-package-json: 7.0.0
- read-package-json-fast: 3.0.2
sigstore: 2.3.0
- ssri: 10.0.5
+ ssri: 10.0.6
tar: 6.2.1
transitivePeerDependencies:
- bluebird
@@ -15875,6 +15744,12 @@ snapshots:
dependencies:
callsites: 3.1.0
+ parse-conflict-json@3.0.1:
+ dependencies:
+ json-parse-even-better-errors: 3.0.2
+ just-diff: 6.0.2
+ just-diff-apply: 5.5.0
+
parse-diff@0.7.1: {}
parse-entities@2.0.0:
@@ -15951,7 +15826,7 @@ snapshots:
path-scurry@1.10.2:
dependencies:
- lru-cache: 10.2.0
+ lru-cache: 10.4.3
minipass: 7.0.4
path-to-regexp@0.1.7: {}
@@ -16142,6 +16017,12 @@ snapshots:
process@0.11.10: {}
+ proggy@2.0.0: {}
+
+ promise-all-reject-late@1.0.1: {}
+
+ promise-call-limit@3.0.1: {}
+
promise-inflight@1.0.1: {}
promise-retry@2.0.1:
@@ -16309,21 +16190,7 @@ snapshots:
read-package-json-fast@3.0.2:
dependencies:
- json-parse-even-better-errors: 3.0.1
- npm-normalize-package-bin: 3.0.1
-
- read-package-json@6.0.4:
- dependencies:
- glob: 10.3.12
- json-parse-even-better-errors: 3.0.1
- normalize-package-data: 5.0.0
- npm-normalize-package-bin: 3.0.1
-
- read-package-json@7.0.0:
- dependencies:
- glob: 10.3.12
- json-parse-even-better-errors: 3.0.1
- normalize-package-data: 6.0.0
+ json-parse-even-better-errors: 3.0.2
npm-normalize-package-bin: 3.0.1
read-pkg-up@3.0.0:
@@ -16350,10 +16217,6 @@ snapshots:
parse-json: 5.2.0
type-fest: 0.6.0
- read@2.1.0:
- dependencies:
- mute-stream: 1.0.0
-
read@3.0.1:
dependencies:
mute-stream: 1.0.0
@@ -16755,16 +16618,6 @@ snapshots:
signal-exit@4.1.0: {}
- sigstore@1.9.0:
- dependencies:
- '@sigstore/bundle': 1.1.0
- '@sigstore/protobuf-specs': 0.2.1
- '@sigstore/sign': 1.0.0
- '@sigstore/tuf': 1.0.3
- make-fetch-happen: 11.1.1
- transitivePeerDependencies:
- - supports-color
-
sigstore@2.3.0:
dependencies:
'@sigstore/bundle': 2.3.1
@@ -16850,14 +16703,6 @@ snapshots:
- supports-color
- utf-8-validate
- socks-proxy-agent@7.0.0:
- dependencies:
- agent-base: 6.0.2
- debug: 4.3.5(supports-color@8.1.1)
- socks: 2.8.3
- transitivePeerDependencies:
- - supports-color
-
socks-proxy-agent@8.0.3:
dependencies:
agent-base: 7.1.1
@@ -16927,14 +16772,10 @@ snapshots:
sprintf-js@1.1.3: {}
- ssri@10.0.5:
+ ssri@10.0.6:
dependencies:
minipass: 7.0.4
- ssri@9.0.1:
- dependencies:
- minipass: 3.3.6
-
statuses@1.5.0: {}
statuses@2.0.1: {}
@@ -17322,6 +17163,8 @@ snapshots:
tree-kill@1.2.2: {}
+ treeverse@3.0.0: {}
+
trim-newlines@3.0.1: {}
trough@1.0.5: {}
@@ -17363,14 +17206,6 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- tuf-js@1.1.7:
- dependencies:
- '@tufjs/models': 1.0.4
- debug: 4.3.5(supports-color@8.1.1)
- make-fetch-happen: 11.1.1
- transitivePeerDependencies:
- - supports-color
-
tuf-js@2.2.0:
dependencies:
'@tufjs/models': 2.0.0
@@ -17558,6 +17393,8 @@ snapshots:
utils-merge@1.0.1: {}
+ uuid@10.0.0: {}
+
uuid@8.3.2: {}
uuid@9.0.1: {}
@@ -17577,13 +17414,7 @@ snapshots:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
- validate-npm-package-name@3.0.0:
- dependencies:
- builtins: 1.0.3
-
- validate-npm-package-name@5.0.0:
- dependencies:
- builtins: 5.1.0
+ validate-npm-package-name@5.0.1: {}
vary@1.1.2: {}
@@ -17605,6 +17436,8 @@ snapshots:
dependencies:
xml-name-validator: 5.0.0
+ walk-up-path@3.0.1: {}
+
watchpack@2.4.1:
dependencies:
glob-to-regexp: 0.4.1
@@ -17647,7 +17480,7 @@ snapshots:
colorette: 2.0.20
commander: 10.0.1
cross-spawn: 7.0.3
- envinfo: 7.12.0
+ envinfo: 7.13.0
fastest-levenshtein: 1.0.16
import-local: 3.1.0
interpret: 3.1.1
From 15f9e05fb1a05a17111a0b825f4686358990cd45 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:52:36 +0200
Subject: [PATCH 17/34] Bump react-runner to ^1.0.5 (#510)
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 08bb1b2e49..8619fc0079 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -63,7 +63,7 @@
"react-draggable": "^4.4.6",
"react-is": "^18.2.0",
"react-router-dom": "^6.23.1",
- "react-runner": "^1.0.3",
+ "react-runner": "^1.0.5",
"react-simple-code-editor": "^0.13.1",
"react-transition-group": "^4.4.5",
"rimraf": "^5.0.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b25a008837..c6d27cdc65 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -458,8 +458,8 @@ importers:
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)
+ specifier: ^1.0.5
+ version: 1.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react-simple-code-editor:
specifier: ^0.13.1
version: 0.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -7163,8 +7163,8 @@ packages:
peerDependencies:
react: '>=16.8'
- react-runner@1.0.3:
- resolution: {integrity: sha512-KyAzNzSVdrBc4A7aGW3FD0wVuujfgcBlyIGF0QVicJu0ucMpLYyTHE+PgBu82Iq698TPKRH+eEi6Mrq/e7OffA==}
+ react-runner@1.0.5:
+ resolution: {integrity: sha512-eCIybRpssp6ffjqXqId024esO9UP2lV838Lvm3fC7VgMQ/dQHhR0jJwOY2IPrYD3AaM/bcvMikmASIRZqNUHsw==}
peerDependencies:
react: ^16.0.0 || ^17 || ^18
react-dom: ^16.0.0 || ^17 || ^18
@@ -16158,7 +16158,7 @@ snapshots:
'@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):
+ react-runner@1.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
From c61ba762b67d8fa646329f4f175b28ad3def7050 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:52:52 +0200
Subject: [PATCH 18/34] Bump rimraf to ^5.0.10 (#511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
package.json | 2 +-
pnpm-lock.yaml | 17 ++++++++---------
3 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 8619fc0079..cb562fc194 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -66,7 +66,7 @@
"react-runner": "^1.0.5",
"react-simple-code-editor": "^0.13.1",
"react-transition-group": "^4.4.5",
- "rimraf": "^5.0.7",
+ "rimraf": "^5.0.10",
"styled-components": "^6.1.11",
"stylis": "4.3.2",
"stylis-plugin-rtl": "^2.1.1",
diff --git a/package.json b/package.json
index 3f2936adba..0d6866c489 100644
--- a/package.json
+++ b/package.json
@@ -148,7 +148,7 @@
"react-docgen": "^5.4.3",
"recast": "^0.23.9",
"remark": "^13.0.0",
- "rimraf": "^5.0.7",
+ "rimraf": "^5.0.10",
"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 c6d27cdc65..e66d4c9800 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -272,8 +272,8 @@ importers:
specifier: ^13.0.0
version: 13.0.0
rimraf:
- specifier: ^5.0.7
- version: 5.0.9
+ specifier: ^5.0.10
+ version: 5.0.10
serve:
specifier: ^14.2.3
version: 14.2.3
@@ -467,8 +467,8 @@ 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.7
- version: 5.0.9
+ specifier: ^5.0.10
+ version: 5.0.10
styled-components:
specifier: ^6.1.11
version: 6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -7391,9 +7391,8 @@ packages:
engines: {node: '>=14'}
hasBin: true
- rimraf@5.0.9:
- resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==}
- engines: {node: 14 >=14.20 || 16 >=16.20 || >=18}
+ rimraf@5.0.10:
+ resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==}
hasBin: true
rrweb-cssom@0.6.0:
@@ -10064,7 +10063,7 @@ snapshots:
'@mui/internal-docs-utils@1.0.8':
dependencies:
- rimraf: 5.0.9
+ rimraf: 5.0.10
typescript: 5.4.5
'@mui/internal-markdown@1.0.8':
@@ -16417,7 +16416,7 @@ snapshots:
dependencies:
glob: 9.3.5
- rimraf@5.0.9:
+ rimraf@5.0.10:
dependencies:
glob: 10.3.12
From b5117a2887b08be0815eb61936bcedfc84190fb1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:53:25 +0200
Subject: [PATCH 19/34] Bump stylelint-config-standard to ^36.0.1 (#513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 20 ++++++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/package.json b/package.json
index 0d6866c489..5d30036a52 100644
--- a/package.json
+++ b/package.json
@@ -151,7 +151,7 @@
"rimraf": "^5.0.10",
"serve": "^14.2.3",
"stylelint": "^16.4.0",
- "stylelint-config-standard": "^36.0.0",
+ "stylelint-config-standard": "^36.0.1",
"terser": "^5.31.0",
"terser-webpack-plugin": "^5.3.10",
"tsx": "^4.8.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e66d4c9800..4f2f94004a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -281,8 +281,8 @@ importers:
specifier: ^16.4.0
version: 16.4.0(typescript@5.4.5)
stylelint-config-standard:
- specifier: ^36.0.0
- version: 36.0.0(stylelint@16.4.0(typescript@5.4.5))
+ specifier: ^36.0.1
+ version: 36.0.1(stylelint@16.4.0(typescript@5.4.5))
terser:
specifier: ^5.31.0
version: 5.31.0
@@ -7765,14 +7765,14 @@ packages:
babel-plugin-macros:
optional: true
- stylelint-config-recommended@14.0.0:
- resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==}
+ stylelint-config-recommended@14.0.1:
+ resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==}
engines: {node: '>=18.12.0'}
peerDependencies:
- stylelint: ^16.0.0
+ stylelint: ^16.1.0
- stylelint-config-standard@36.0.0:
- resolution: {integrity: sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==}
+ stylelint-config-standard@36.0.1:
+ resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==}
engines: {node: '>=18.12.0'}
peerDependencies:
stylelint: ^16.1.0
@@ -16907,14 +16907,14 @@ snapshots:
'@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)):
+ stylelint-config-recommended@14.0.1(stylelint@16.4.0(typescript@5.4.5)):
dependencies:
stylelint: 16.4.0(typescript@5.4.5)
- stylelint-config-standard@36.0.0(stylelint@16.4.0(typescript@5.4.5)):
+ stylelint-config-standard@36.0.1(stylelint@16.4.0(typescript@5.4.5)):
dependencies:
stylelint: 16.4.0(typescript@5.4.5)
- stylelint-config-recommended: 14.0.0(stylelint@16.4.0(typescript@5.4.5))
+ stylelint-config-recommended: 14.0.1(stylelint@16.4.0(typescript@5.4.5))
stylelint@16.4.0(typescript@5.4.5):
dependencies:
From af6aa4bf8ad88a988070916cef8b5c2690a7f9da Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:54:08 +0200
Subject: [PATCH 20/34] Bump Public packages' dependencies (#494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
packages/mui-base/package.json | 4 ++--
pnpm-lock.yaml | 24 ++++++++++++------------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index d161e1dc88..ccb7fe7155 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -38,12 +38,12 @@
"typescript": "tsc -b tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.24.8",
+ "@babel/runtime": "^7.25.0",
"@floating-ui/react": "^0.26.20",
"@floating-ui/react-dom": "^2.1.1",
"@floating-ui/utils": "^0.2.5",
"@mui/types": "^7.2.15",
- "@mui/utils": "^5.16.5",
+ "@mui/utils": "^5.16.6",
"clsx": "^2.1.1",
"prop-types": "^15.8.1"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4f2f94004a..fd11c24247 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -573,8 +573,8 @@ importers:
specifier: ^7.2.15
version: 7.2.15(@types/react@18.3.1)
'@mui/utils':
- specifier: ^5.16.5
- version: 5.16.5(@types/react@18.3.1)(react@18.2.0)
+ specifier: ^5.16.6
+ version: 5.16.6(@types/react@18.3.1)(react@18.2.0)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -584,7 +584,7 @@ importers:
devDependencies:
'@mui/internal-babel-macros':
specifier: ^1.0.1
- version: 1.0.1(@mui/utils@5.16.5(@types/react@18.3.1)(react@18.2.0))
+ version: 1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0))
'@mui/internal-test-utils':
specifier: 1.0.5
version: 1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -2216,8 +2216,8 @@ packages:
'@types/react':
optional: true
- '@mui/utils@5.16.5':
- resolution: {integrity: sha512-CwhcA9y44XwK7k2joL3Y29mRUnoBt+gOZZdGyw7YihbEwEErJYBtDwbZwVgH68zAljGe/b+Kd5bzfl63Gi3R2A==}
+ '@mui/utils@5.16.6':
+ resolution: {integrity: sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@types/react': ^18.3.1
@@ -9999,7 +9999,7 @@ snapshots:
'@babel/runtime': 7.24.6
'@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
'@popperjs/core': 2.11.8
clsx: 2.1.1
prop-types: 15.8.1
@@ -10052,11 +10052,11 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.5(@types/react@18.3.1)(react@18.2.0))':
+ '@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0))':
dependencies:
'@babel/helper-module-imports': 7.24.7
'@babel/runtime': 7.24.6
- '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
babel-plugin-macros: 3.1.0
transitivePeerDependencies:
- supports-color
@@ -10128,7 +10128,7 @@ snapshots:
'@mui/core-downloads-tracker': 5.16.1
'@mui/system': 5.16.1(@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.15(@types/react@18.3.1)
- '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
clsx: 2.1.1
prop-types: 15.8.1
react: 18.2.0
@@ -10187,7 +10187,7 @@ snapshots:
'@mui/private-theming@5.16.1(@types/react@18.3.1)(react@18.2.0)':
dependencies:
'@babel/runtime': 7.24.6
- '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
prop-types: 15.8.1
react: 18.2.0
optionalDependencies:
@@ -10253,7 +10253,7 @@ snapshots:
'@mui/private-theming': 5.16.1(@types/react@18.3.1)(react@18.2.0)
'@mui/styled-engine': 5.16.1(@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.15(@types/react@18.3.1)
- '@mui/utils': 5.16.5(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
@@ -10283,7 +10283,7 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/utils@5.16.5(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0)':
dependencies:
'@babel/runtime': 7.24.6
'@mui/types': 7.2.15(@types/react@18.3.1)
From 44720c95b9e99639cbbebbcc0d9b333c2ba98350 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:02:05 +0200
Subject: [PATCH 21/34] Bump postcss to ^8.4.40 (#509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
pnpm-lock.yaml | 92 ++++++++++++++++++++++++++---------------------
2 files changed, 52 insertions(+), 42 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index cb562fc194..141ce89633 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -55,7 +55,7 @@
"lz-string": "^1.5.0",
"next": "^14.2.3",
"nprogress": "^0.2.0",
- "postcss": "^8.4.38",
+ "postcss": "^8.4.40",
"postcss-import": "^16.1.0",
"prop-types": "^15.8.1",
"react": "^18.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fd11c24247..fcbc1fd918 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -252,7 +252,7 @@ importers:
version: 4.4.0
postcss-styled-syntax:
specifier: ^0.6.4
- version: 0.6.4(postcss@8.4.38)
+ version: 0.6.4(postcss@8.4.40)
prettier:
specifier: ^3.2.5
version: 3.2.5
@@ -378,7 +378,7 @@ importers:
version: 9.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
autoprefixer:
specifier: ^10.4.19
- version: 10.4.19(postcss@8.4.38)
+ version: 10.4.19(postcss@8.4.40)
autosuggest-highlight:
specifier: ^3.3.4
version: 3.3.4
@@ -434,11 +434,11 @@ importers:
specifier: ^0.2.0
version: 0.2.0
postcss:
- specifier: ^8.4.38
- version: 8.4.38
+ specifier: ^8.4.40
+ version: 8.4.40
postcss-import:
specifier: ^16.1.0
- version: 16.1.0(postcss@8.4.38)
+ version: 16.1.0(postcss@8.4.40)
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -6817,8 +6817,8 @@ packages:
pause-stream@0.0.11:
resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==}
- picocolors@1.0.0:
- resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ picocolors@1.0.1:
+ resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@@ -6953,6 +6953,10 @@ packages:
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
engines: {node: ^10 || ^12 || >=14}
+ postcss@8.4.40:
+ resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==}
+ engines: {node: ^10 || ^12 || >=14}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -8667,7 +8671,7 @@ snapshots:
'@babel/code-frame@7.24.6':
dependencies:
'@babel/highlight': 7.24.6
- picocolors: 1.0.0
+ picocolors: 1.0.1
'@babel/compat-data@7.24.6': {}
@@ -8837,7 +8841,7 @@ snapshots:
'@babel/helper-validator-identifier': 7.24.7
chalk: 2.4.2
js-tokens: 4.0.0
- picocolors: 1.0.0
+ picocolors: 1.0.1
'@babel/node@7.24.6(@babel/core@7.24.6)':
dependencies:
@@ -11722,14 +11726,14 @@ snapshots:
asynckit@0.4.0: {}
- autoprefixer@10.4.19(postcss@8.4.38):
+ autoprefixer@10.4.19(postcss@8.4.40):
dependencies:
browserslist: 4.23.0
caniuse-lite: 1.0.30001605
fraction.js: 4.3.7
normalize-range: 0.1.2
- picocolors: 1.0.0
- postcss: 8.4.38
+ picocolors: 1.0.1
+ postcss: 8.4.40
postcss-value-parser: 4.2.0
autosuggest-highlight@3.3.4:
@@ -15848,7 +15852,7 @@ snapshots:
dependencies:
through: 2.3.8
- picocolors@1.0.0: {}
+ picocolors@1.0.1: {}
picomatch@2.3.1: {}
@@ -15900,51 +15904,51 @@ snapshots:
possible-typed-array-names@1.0.0: {}
- postcss-import@15.1.0(postcss@8.4.38):
+ postcss-import@15.1.0(postcss@8.4.40):
dependencies:
- postcss: 8.4.38
+ postcss: 8.4.40
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
- postcss-import@16.1.0(postcss@8.4.38):
+ postcss-import@16.1.0(postcss@8.4.40):
dependencies:
- postcss: 8.4.38
+ postcss: 8.4.40
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
- postcss-js@4.0.1(postcss@8.4.38):
+ postcss-js@4.0.1(postcss@8.4.40):
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.38
+ postcss: 8.4.40
- postcss-load-config@4.0.2(postcss@8.4.38):
+ postcss-load-config@4.0.2(postcss@8.4.40):
dependencies:
lilconfig: 3.1.1
yaml: 2.4.1
optionalDependencies:
- postcss: 8.4.38
+ postcss: 8.4.40
- postcss-nested@6.0.1(postcss@8.4.38):
+ postcss-nested@6.0.1(postcss@8.4.40):
dependencies:
- postcss: 8.4.38
+ postcss: 8.4.40
postcss-selector-parser: 6.0.16
postcss-resolve-nested-selector@0.1.1: {}
- postcss-safe-parser@7.0.0(postcss@8.4.38):
+ postcss-safe-parser@7.0.0(postcss@8.4.40):
dependencies:
- postcss: 8.4.38
+ postcss: 8.4.40
postcss-selector-parser@6.0.16:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
- postcss-styled-syntax@0.6.4(postcss@8.4.38):
+ postcss-styled-syntax@0.6.4(postcss@8.4.40):
dependencies:
- postcss: 8.4.38
+ postcss: 8.4.40
typescript: 5.4.5
postcss-value-parser@4.2.0: {}
@@ -15952,13 +15956,19 @@ snapshots:
postcss@8.4.31:
dependencies:
nanoid: 3.3.7
- picocolors: 1.0.0
+ picocolors: 1.0.1
source-map-js: 1.2.0
postcss@8.4.38:
dependencies:
nanoid: 3.3.7
- picocolors: 1.0.0
+ picocolors: 1.0.1
+ source-map-js: 1.2.0
+
+ postcss@8.4.40:
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.1
source-map-js: 1.2.0
prelude-ls@1.2.1: {}
@@ -15992,7 +16002,7 @@ snapshots:
find-up: 5.0.0
ignore: 5.3.1
mri: 1.2.0
- picocolors: 1.0.0
+ picocolors: 1.0.1
picomatch: 3.0.1
prettier: 3.2.5
tslib: 2.6.2
@@ -16944,10 +16954,10 @@ snapshots:
meow: 13.2.0
micromatch: 4.0.5
normalize-path: 3.0.0
- picocolors: 1.0.0
- postcss: 8.4.38
+ picocolors: 1.0.1
+ postcss: 8.4.40
postcss-resolve-nested-selector: 0.1.1
- postcss-safe-parser: 7.0.0(postcss@8.4.38)
+ postcss-safe-parser: 7.0.0(postcss@8.4.40)
postcss-selector-parser: 6.0.16
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
@@ -17033,12 +17043,12 @@ snapshots:
micromatch: 4.0.5
normalize-path: 3.0.0
object-hash: 3.0.0
- picocolors: 1.0.0
- postcss: 8.4.38
- postcss-import: 15.1.0(postcss@8.4.38)
- postcss-js: 4.0.1(postcss@8.4.38)
- postcss-load-config: 4.0.2(postcss@8.4.38)
- postcss-nested: 6.0.1(postcss@8.4.38)
+ picocolors: 1.0.1
+ postcss: 8.4.40
+ postcss-import: 15.1.0(postcss@8.4.40)
+ postcss-js: 4.0.1(postcss@8.4.40)
+ postcss-load-config: 4.0.2(postcss@8.4.40)
+ postcss-nested: 6.0.1(postcss@8.4.40)
postcss-selector-parser: 6.0.16
resolve: 1.22.8
sucrase: 3.35.0
@@ -17358,7 +17368,7 @@ snapshots:
dependencies:
browserslist: 4.23.0
escalade: 3.1.2
- picocolors: 1.0.0
+ picocolors: 1.0.1
update-check@1.5.4:
dependencies:
@@ -17463,7 +17473,7 @@ snapshots:
gzip-size: 6.0.0
html-escaper: 2.0.2
opener: 1.5.2
- picocolors: 1.0.0
+ picocolors: 1.0.1
sirv: 2.0.4
ws: 7.5.9
transitivePeerDependencies:
From 10fefadcc1729eca1c16644309b2bd65cfd34625 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:30:07 +0200
Subject: [PATCH 22/34] Bump next to ^14.2.5 (#508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
pnpm-lock.yaml | 102 +++++++++++++++++++++++-----------------------
2 files changed, 52 insertions(+), 52 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 141ce89633..0620060419 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -53,7 +53,7 @@
"jss-rtl": "^0.3.0",
"lodash": "^4.17.21",
"lz-string": "^1.5.0",
- "next": "^14.2.3",
+ "next": "^14.2.5",
"nprogress": "^0.2.0",
"postcss": "^8.4.40",
"postcss-import": "^16.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fcbc1fd918..b400272c6f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -342,7 +342,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-beta.2
- version: 6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2
version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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)
@@ -360,7 +360,7 @@ importers:
version: 6.0.0-beta.2(@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.14
- version: 6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.45.3)(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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2
version: 6.0.0-beta.2(@types/react@18.3.1)(react@18.2.0)
@@ -428,8 +428,8 @@ importers:
specifier: ^1.5.0
version: 1.5.0
next:
- specifier: ^14.2.3
- version: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^14.2.5
+ version: 14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
@@ -2258,62 +2258,62 @@ packages:
resolution: {integrity: sha512-2KYkyluThg1AKfd0JWI7FzpS4A/fzVVGYIf6AM4ydWyNj8eI/86GQVLeRgDoH7CNOxt243R5tutWlmHpVq0/Ew==}
engines: {node: '>=18.0.0'}
- '@next/env@14.2.3':
- resolution: {integrity: sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==}
+ '@next/env@14.2.5':
+ resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==}
'@next/eslint-plugin-next@14.2.5':
resolution: {integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==}
- '@next/swc-darwin-arm64@14.2.3':
- resolution: {integrity: sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==}
+ '@next/swc-darwin-arm64@14.2.5':
+ resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@14.2.3':
- resolution: {integrity: sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==}
+ '@next/swc-darwin-x64@14.2.5':
+ resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@14.2.3':
- resolution: {integrity: sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==}
+ '@next/swc-linux-arm64-gnu@14.2.5':
+ resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@14.2.3':
- resolution: {integrity: sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==}
+ '@next/swc-linux-arm64-musl@14.2.5':
+ resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-x64-gnu@14.2.3':
- resolution: {integrity: sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==}
+ '@next/swc-linux-x64-gnu@14.2.5':
+ resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@14.2.3':
- resolution: {integrity: sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==}
+ '@next/swc-linux-x64-musl@14.2.5':
+ resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-win32-arm64-msvc@14.2.3':
- resolution: {integrity: sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==}
+ '@next/swc-win32-arm64-msvc@14.2.5':
+ resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-ia32-msvc@14.2.3':
- resolution: {integrity: sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==}
+ '@next/swc-win32-ia32-msvc@14.2.5':
+ resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
- '@next/swc-win32-x64-msvc@14.2.3':
- resolution: {integrity: sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==}
+ '@next/swc-win32-x64-msvc@14.2.5':
+ resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -6310,8 +6310,8 @@ packages:
nested-error-stacks@2.1.1:
resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==}
- next@14.2.3:
- resolution: {integrity: sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==}
+ next@14.2.5:
+ resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==}
engines: {node: '>=18.17.0'}
hasBin: true
peerDependencies:
@@ -10030,7 +10030,7 @@ snapshots:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {}
- ? '@mui/docs@6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -10041,7 +10041,7 @@ snapshots:
chai: 4.4.1
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.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
@@ -10142,11 +10142,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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.45.3)(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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2(@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.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
@@ -10331,37 +10331,37 @@ snapshots:
'@netlify/node-cookies': 0.1.0
urlpattern-polyfill: 8.0.2
- '@next/env@14.2.3': {}
+ '@next/env@14.2.5': {}
'@next/eslint-plugin-next@14.2.5':
dependencies:
glob: 10.3.10
- '@next/swc-darwin-arm64@14.2.3':
+ '@next/swc-darwin-arm64@14.2.5':
optional: true
- '@next/swc-darwin-x64@14.2.3':
+ '@next/swc-darwin-x64@14.2.5':
optional: true
- '@next/swc-linux-arm64-gnu@14.2.3':
+ '@next/swc-linux-arm64-gnu@14.2.5':
optional: true
- '@next/swc-linux-arm64-musl@14.2.3':
+ '@next/swc-linux-arm64-musl@14.2.5':
optional: true
- '@next/swc-linux-x64-gnu@14.2.3':
+ '@next/swc-linux-x64-gnu@14.2.5':
optional: true
- '@next/swc-linux-x64-musl@14.2.3':
+ '@next/swc-linux-x64-musl@14.2.5':
optional: true
- '@next/swc-win32-arm64-msvc@14.2.3':
+ '@next/swc-win32-arm64-msvc@14.2.5':
optional: true
- '@next/swc-win32-ia32-msvc@14.2.3':
+ '@next/swc-win32-ia32-msvc@14.2.5':
optional: true
- '@next/swc-win32-x64-msvc@14.2.3':
+ '@next/swc-win32-x64-msvc@14.2.5':
optional: true
'@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3':
@@ -15223,9 +15223,9 @@ snapshots:
nested-error-stacks@2.1.1: {}
- next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
+ '@next/env': 14.2.5
'@swc/helpers': 0.5.5
busboy: 1.6.0
caniuse-lite: 1.0.30001605
@@ -15235,15 +15235,15 @@ snapshots:
react-dom: 18.2.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
- '@next/swc-linux-arm64-gnu': 14.2.3
- '@next/swc-linux-arm64-musl': 14.2.3
- '@next/swc-linux-x64-gnu': 14.2.3
- '@next/swc-linux-x64-musl': 14.2.3
- '@next/swc-win32-arm64-msvc': 14.2.3
- '@next/swc-win32-ia32-msvc': 14.2.3
- '@next/swc-win32-x64-msvc': 14.2.3
+ '@next/swc-darwin-arm64': 14.2.5
+ '@next/swc-darwin-x64': 14.2.5
+ '@next/swc-linux-arm64-gnu': 14.2.5
+ '@next/swc-linux-arm64-musl': 14.2.5
+ '@next/swc-linux-x64-gnu': 14.2.5
+ '@next/swc-linux-x64-musl': 14.2.5
+ '@next/swc-win32-arm64-msvc': 14.2.5
+ '@next/swc-win32-ia32-msvc': 14.2.5
+ '@next/swc-win32-x64-msvc': 14.2.5
'@opentelemetry/api': 1.8.0
'@playwright/test': 1.45.3
transitivePeerDependencies:
From 2556ec0ec20ff24120a2a0e5669ca99357b5b436 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:30:19 +0200
Subject: [PATCH 23/34] Bump karma to ^6.4.4 (#506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 16 ++++++++--------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/package.json b/package.json
index 5d30036a52..a6f7664b1e 100644
--- a/package.json
+++ b/package.json
@@ -126,7 +126,7 @@
"fast-glob": "^3.3.2",
"fs-extra": "^11.2.0",
"globby": "^14.0.2",
- "karma": "^6.4.3",
+ "karma": "^6.4.4",
"karma-browserstack-launcher": "~1.6.0",
"karma-chrome-launcher": "^3.2.0",
"karma-coverage-istanbul-reporter": "^3.0.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b400272c6f..278b27bd5a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -206,11 +206,11 @@ importers:
specifier: ^14.0.2
version: 14.0.2
karma:
- specifier: ^6.4.3
- version: 6.4.3
+ specifier: ^6.4.4
+ version: 6.4.4
karma-browserstack-launcher:
specifier: ~1.6.0
- version: 1.6.0(karma@6.4.3)
+ version: 1.6.0(karma@6.4.4)
karma-chrome-launcher:
specifier: ^3.2.0
version: 3.2.0
@@ -5817,8 +5817,8 @@ packages:
peerDependencies:
webpack: ^5.0.0
- karma@6.4.3:
- resolution: {integrity: sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==}
+ karma@6.4.4:
+ resolution: {integrity: sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==}
engines: {node: '>= 10'}
hasBin: true
@@ -14568,11 +14568,11 @@ snapshots:
jwa: 2.0.0
safe-buffer: 5.2.1
- karma-browserstack-launcher@1.6.0(karma@6.4.3):
+ karma-browserstack-launcher@1.6.0(karma@6.4.4):
dependencies:
browserstack: 1.5.3
browserstack-local: 1.5.5
- karma: 6.4.3
+ karma: 6.4.4
q: 1.5.1
transitivePeerDependencies:
- supports-color
@@ -14611,7 +14611,7 @@ snapshots:
webpack: 5.91.0(webpack-cli@5.1.4)
webpack-merge: 4.2.2
- karma@6.4.3:
+ karma@6.4.4:
dependencies:
'@colors/colors': 1.5.0
body-parser: 1.20.2
From 8c8190ecf0e53a939e980db3bc1572c64ede66e5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:30:32 +0200
Subject: [PATCH 24/34] Bump @types/node to ^18.19.42 (#501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
package.json | 4 ++--
pnpm-lock.yaml | 52 +++++++++++++++++++++++------------------------
3 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 0620060419..7d83ee7d50 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -79,7 +79,7 @@
"@mui/internal-test-utils": "1.0.5",
"@types/autosuggest-highlight": "^3.2.3",
"@types/chai": "^4.3.16",
- "@types/node": "^18.19.33",
+ "@types/node": "^18.19.42",
"@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 a6f7664b1e..6ad84f78d7 100644
--- a/package.json
+++ b/package.json
@@ -89,7 +89,7 @@
"@types/fs-extra": "^11.0.4",
"@types/lodash": "^4.17.7",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.33",
+ "@types/node": "^18.19.42",
"@types/react": "^18.3.1",
"@types/yargs": "^17.0.32",
"@typescript-eslint/eslint-plugin": "^7.8.0",
@@ -179,7 +179,7 @@
"@definitelytyped/header-parser": "^0.2.11",
"@definitelytyped/typescript-versions": "^0.1.3",
"@definitelytyped/utils": "^0.1.7",
- "@types/node": "^18.19.33",
+ "@types/node": "^18.19.42",
"@types/react": "^18.3.1",
"@types/react-dom": "18.3.0"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 278b27bd5a..669346d842 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,7 +17,7 @@ overrides:
'@definitelytyped/header-parser': ^0.2.11
'@definitelytyped/typescript-versions': ^0.1.3
'@definitelytyped/utils': ^0.1.7
- '@types/node': ^18.19.33
+ '@types/node': ^18.19.42
'@types/react': ^18.3.1
'@types/react-dom': 18.3.0
@@ -95,8 +95,8 @@ importers:
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.33
- version: 18.19.34
+ specifier: ^18.19.42
+ version: 18.19.42
'@types/react':
specifier: ^18.3.1
version: 18.3.1
@@ -501,8 +501,8 @@ importers:
specifier: ^4.3.16
version: 4.3.16
'@types/node':
- specifier: ^18.19.33
- version: 18.19.34
+ specifier: ^18.19.42
+ version: 18.19.42
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -2887,8 +2887,8 @@ packages:
'@types/mocha@10.0.6':
resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
- '@types/node@18.19.34':
- resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==}
+ '@types/node@18.19.42':
+ resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==}
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -10923,18 +10923,18 @@ snapshots:
'@slack/logger@3.0.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@slack/logger@4.0.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@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.34
+ '@types/node': 18.19.42
jsonwebtoken: 9.0.2
lodash.isstring: 4.0.1
transitivePeerDependencies:
@@ -10944,7 +10944,7 @@ snapshots:
dependencies:
'@slack/logger': 3.0.0
'@slack/web-api': 6.12.0
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/p-queue': 2.3.2
'@types/ws': 7.4.7
eventemitter3: 3.1.2
@@ -10964,7 +10964,7 @@ snapshots:
'@slack/logger': 3.0.0
'@slack/types': 2.11.0
'@types/is-stream': 1.1.0
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
axios: 1.6.8(debug@4.3.5)
eventemitter3: 3.1.2
form-data: 2.5.1
@@ -11035,7 +11035,7 @@ snapshots:
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/chai-dom@1.11.3':
dependencies:
@@ -11045,13 +11045,13 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/cookie@0.4.1': {}
'@types/cors@2.8.17':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/eslint-scope@3.7.7':
dependencies:
@@ -11067,7 +11067,7 @@ snapshots:
'@types/express-serve-static-core@4.19.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/qs': 6.9.15
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -11082,7 +11082,7 @@ snapshots:
'@types/fs-extra@11.0.4':
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/html-minifier-terser@6.1.0': {}
@@ -11090,7 +11090,7 @@ snapshots:
'@types/is-stream@1.1.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -11100,11 +11100,11 @@ snapshots:
'@types/jsonfile@6.1.4':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/jsonwebtoken@8.5.9':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/lodash@4.17.7': {}
@@ -11120,7 +11120,7 @@ snapshots:
'@types/mocha@10.0.6': {}
- '@types/node@18.19.34':
+ '@types/node@18.19.42':
dependencies:
undici-types: 5.26.5
@@ -11162,12 +11162,12 @@ snapshots:
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/serve-static@1.15.7':
dependencies:
'@types/http-errors': 2.0.4
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/send': 0.17.4
'@types/sinon@17.0.3':
@@ -11186,7 +11186,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
'@types/yargs-parser@21.0.3': {}
@@ -12729,7 +12729,7 @@ snapshots:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.17
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@@ -14364,7 +14364,7 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.42
merge-stream: 2.0.0
supports-color: 8.1.1
From 54185c406b9c0e5d498fb5e71e222c63ce2aa67e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:30:39 +0200
Subject: [PATCH 25/34] Bump styled-components to ^6.1.12 (#512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 2 +-
pnpm-lock.yaml | 14 +++++++-------
test/package.json | 2 +-
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 7d83ee7d50..67dbb5d456 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -67,7 +67,7 @@
"react-simple-code-editor": "^0.13.1",
"react-transition-group": "^4.4.5",
"rimraf": "^5.0.10",
- "styled-components": "^6.1.11",
+ "styled-components": "^6.1.12",
"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 669346d842..5999ea5c95 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -470,8 +470,8 @@ importers:
specifier: ^5.0.10
version: 5.0.10
styled-components:
- specifier: ^6.1.11
- version: 6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^6.1.12
+ version: 6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
stylis:
specifier: 4.3.2
version: 4.3.2
@@ -719,8 +719,8 @@ importers:
specifier: ^17.0.1
version: 17.0.1
styled-components:
- specifier: ^6.1.11
- version: 6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^6.1.12
+ version: 6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
stylis:
specifier: 4.3.2
version: 4.3.2
@@ -7749,8 +7749,8 @@ packages:
engines: {node: '>=4'}
hasBin: true
- styled-components@6.1.11:
- resolution: {integrity: sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==}
+ styled-components@6.1.12:
+ resolution: {integrity: sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA==}
engines: {node: '>= 16'}
peerDependencies:
react: '>= 16.8.0'
@@ -16895,7 +16895,7 @@ snapshots:
minimist: 1.2.8
through: 2.3.8
- styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ styled-components@6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
'@emotion/is-prop-valid': 1.2.2
'@emotion/unitless': 0.8.1
diff --git a/test/package.json b/test/package.json
index b112d9fdd7..2956c157f6 100644
--- a/test/package.json
+++ b/test/package.json
@@ -33,7 +33,7 @@
"react-is": "^18.2.0",
"react-router-dom": "^6.23.1",
"sinon": "^17.0.1",
- "styled-components": "^6.1.11",
+ "styled-components": "^6.1.12",
"stylis": "4.3.2",
"stylis-plugin-rtl": "^2.1.1",
"stylis-plugin-rtl-sc": "npm:stylis-plugin-rtl@^2.1.1",
From c5b097a8feb3def675e1b6560fb1a91cfa7d8a28 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:58:09 +0200
Subject: [PATCH 26/34] Bump babel (#504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
docs/package.json | 10 +-
package.json | 32 +-
pnpm-lock.yaml | 2028 +++++++++++++++++++++++----------------------
test/package.json | 2 +-
4 files changed, 1053 insertions(+), 1019 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 67dbb5d456..926f46863a 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -15,9 +15,9 @@
"link-check": "node ./scripts/reportBrokenLinks.js"
},
"dependencies": {
- "@babel/core": "^7.24.6",
- "@babel/runtime": "^7.24.6",
- "@babel/runtime-corejs3": "^7.24.6",
+ "@babel/core": "^7.25.2",
+ "@babel/runtime": "^7.25.0",
+ "@babel/runtime-corejs3": "^7.25.0",
"@base_ui/react": "workspace:*",
"@docsearch/react": "^3.6.1",
"@emotion/cache": "^11.11.0",
@@ -73,8 +73,8 @@
"webpack-bundle-analyzer": "^4.10.2"
},
"devDependencies": {
- "@babel/plugin-transform-react-constant-elements": "^7.24.6",
- "@babel/preset-typescript": "^7.24.6",
+ "@babel/plugin-transform-react-constant-elements": "^7.25.1",
+ "@babel/preset-typescript": "^7.24.7",
"@mui/internal-docs-utils": "^1.0.8",
"@mui/internal-test-utils": "1.0.5",
"@types/autosuggest-highlight": "^3.2.3",
diff --git a/package.json b/package.json
index 6ad84f78d7..62295494ee 100644
--- a/package.json
+++ b/package.json
@@ -67,14 +67,14 @@
},
"devDependencies": {
"@argos-ci/core": "^2.2.0",
- "@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/cli": "^7.24.8",
+ "@babel/core": "^7.25.2",
+ "@babel/node": "^7.25.0",
+ "@babel/plugin-transform-react-constant-elements": "^7.25.1",
+ "@babel/plugin-transform-runtime": "^7.24.7",
+ "@babel/preset-env": "^7.25.3",
+ "@babel/preset-react": "^7.24.7",
+ "@babel/preset-typescript": "^7.24.7",
"@babel/register": "^7.24.6",
"@mui/internal-docs-utils": "^1.0.8",
"@mui/internal-markdown": "^1.0.8",
@@ -167,15 +167,15 @@
"pnpm": "9.1.4"
},
"resolutions": {
- "@babel/core": "^7.24.6",
- "@babel/code-frame": "^7.24.6",
+ "@babel/core": "^7.25.2",
+ "@babel/code-frame": "^7.24.7",
"@babel/plugin-transform-destructuring": "npm:@minh.nguyen/plugin-transform-destructuring@^7.5.2",
- "@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",
+ "@babel/plugin-transform-runtime": "^7.24.7",
+ "@babel/preset-env": "^7.25.3",
+ "@babel/preset-react": "^7.24.7",
+ "@babel/preset-typescript": "^7.24.7",
+ "@babel/runtime": "^7.25.0",
+ "@babel/types": "^7.25.2",
"@definitelytyped/header-parser": "^0.2.11",
"@definitelytyped/typescript-versions": "^0.1.3",
"@definitelytyped/utils": "^0.1.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5999ea5c95..bcd8c91800 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,15 +5,15 @@ settings:
excludeLinksFromLockfile: false
overrides:
- '@babel/core': ^7.24.6
- '@babel/code-frame': ^7.24.6
+ '@babel/core': ^7.25.2
+ '@babel/code-frame': ^7.24.7
'@babel/plugin-transform-destructuring': npm:@minh.nguyen/plugin-transform-destructuring@^7.5.2
- '@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
+ '@babel/plugin-transform-runtime': ^7.24.7
+ '@babel/preset-env': ^7.25.3
+ '@babel/preset-react': ^7.24.7
+ '@babel/preset-typescript': ^7.24.7
+ '@babel/runtime': ^7.25.0
+ '@babel/types': ^7.25.2
'@definitelytyped/header-parser': ^0.2.11
'@definitelytyped/typescript-versions': ^0.1.3
'@definitelytyped/utils': ^0.1.7
@@ -29,32 +29,32 @@ importers:
specifier: ^2.2.0
version: 2.2.0
'@babel/cli':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.24.8
+ version: 7.24.8(@babel/core@7.25.2)
'@babel/core':
- specifier: ^7.24.6
- version: 7.24.6
+ specifier: ^7.25.2
+ version: 7.25.2
'@babel/node':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.25.0
+ version: 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-react-constant-elements':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.25.1
+ version: 7.25.1(@babel/core@7.25.2)
'@babel/plugin-transform-runtime':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.24.7
+ version: 7.24.7(@babel/core@7.25.2)
'@babel/preset-env':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.25.3
+ version: 7.25.3(@babel/core@7.25.2)
'@babel/preset-react':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.24.7
+ version: 7.24.7(@babel/core@7.25.2)
'@babel/preset-typescript':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.24.7
+ version: 7.24.7(@babel/core@7.25.2)
'@babel/register':
specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ version: 7.24.6(@babel/core@7.25.2)
'@mui/internal-docs-utils':
specifier: ^1.0.8
version: 1.0.8
@@ -66,7 +66,7 @@ importers:
version: 1.0.13
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.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-beta.2
version: 6.0.0-beta.2(@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)
@@ -111,7 +111,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.6)(webpack@5.91.0(webpack-cli@5.1.4))
+ version: 9.1.3(@babel/core@7.25.2)(webpack@5.91.0(webpack-cli@5.1.4))
babel-plugin-istanbul:
specifier: ^6.1.1
version: 6.1.1
@@ -314,14 +314,14 @@ importers:
docs:
dependencies:
'@babel/core':
- specifier: ^7.24.6
- version: 7.24.6
+ specifier: ^7.25.2
+ version: 7.25.2
'@babel/runtime':
- specifier: ^7.24.6
- version: 7.24.6
+ specifier: ^7.25.0
+ version: 7.25.0
'@babel/runtime-corejs3':
- specifier: ^7.24.6
- version: 7.24.6
+ specifier: ^7.25.0
+ version: 7.25.0
'@base_ui/react':
specifier: workspace:*
version: link:../packages/mui-base/build
@@ -342,7 +342,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-beta.2
- version: 6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2
version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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)
@@ -360,7 +360,7 @@ importers:
version: 6.0.0-beta.2(@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.14
- version: 6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2
version: 6.0.0-beta.2(@types/react@18.3.1)(react@18.2.0)
@@ -429,7 +429,7 @@ importers:
version: 1.5.0
next:
specifier: ^14.2.5
- version: 14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
@@ -483,17 +483,17 @@ importers:
version: 4.10.2
devDependencies:
'@babel/plugin-transform-react-constant-elements':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.25.1
+ version: 7.25.1(@babel/core@7.25.2)
'@babel/preset-typescript':
- specifier: ^7.24.6
- version: 7.24.6(@babel/core@7.24.6)
+ specifier: ^7.24.7
+ version: 7.24.7(@babel/core@7.25.2)
'@mui/internal-docs-utils':
specifier: ^1.0.8
version: 1.0.8
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@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
@@ -558,8 +558,8 @@ importers:
packages/mui-base:
dependencies:
'@babel/runtime':
- specifier: ^7.24.6
- version: 7.24.6
+ specifier: ^7.25.0
+ version: 7.25.0
'@floating-ui/react':
specifier: ^0.26.20
version: 0.26.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -587,7 +587,7 @@ importers:
version: 1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0))
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@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)
@@ -638,8 +638,8 @@ importers:
test:
devDependencies:
'@babel/runtime':
- specifier: ^7.24.6
- version: 7.24.6
+ specifier: ^7.25.0
+ version: 7.25.0
'@base_ui/react':
specifier: workspace:*
version: link:../packages/mui-base/build
@@ -651,7 +651,7 @@ importers:
version: 11.11.4(@types/react@18.3.1)(react@18.2.0)
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@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.48
version: 5.0.0-beta.48(@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)
@@ -830,664 +830,660 @@ packages:
resolution: {integrity: sha512-wnsNQOjcNfxOi8cHWSv8+GhzUeIitDJgjhuSNR9zrfHB0Y3nDVI57S/mHRo+EMAaWwghfbrxW1ypRCXVseN0GA==}
engines: {node: '>=18.0.0'}
- '@babel/cli@7.24.6':
- resolution: {integrity: sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==}
+ '@babel/cli@7.24.8':
+ resolution: {integrity: sha512-isdp+G6DpRyKc+3Gqxy2rjzgF7Zj9K0mzLNnxz+E/fgeag8qT3vVulX4gY9dGO1q0y+0lUv6V3a+uhUzMzrwXg==}
engines: {node: '>=6.9.0'}
hasBin: true
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/code-frame@7.24.6':
- resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==}
+ '@babel/code-frame@7.24.7':
+ resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.24.6':
- resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==}
+ '@babel/compat-data@7.25.2':
+ resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.24.6':
- resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==}
+ '@babel/core@7.25.2':
+ resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.24.7':
- resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==}
+ '@babel/generator@7.25.0':
+ resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-annotate-as-pure@7.24.6':
- resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==}
+ '@babel/helper-annotate-as-pure@7.24.7':
+ resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6':
- resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==}
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
+ resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-compilation-targets@7.24.6':
- resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==}
+ '@babel/helper-compilation-targets@7.25.2':
+ resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.24.6':
- resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==}
+ '@babel/helper-create-class-features-plugin@7.25.0':
+ resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/helper-create-regexp-features-plugin@7.24.6':
- resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==}
+ '@babel/helper-create-regexp-features-plugin@7.25.2':
+ resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/helper-define-polyfill-provider@0.6.2':
resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==}
peerDependencies:
- '@babel/core': ^7.24.6
-
- '@babel/helper-environment-visitor@7.24.7':
- resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-function-name@7.24.7':
- resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==}
- engines: {node: '>=6.9.0'}
+ '@babel/core': ^7.25.2
- '@babel/helper-hoist-variables@7.24.7':
- resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-member-expression-to-functions@7.24.6':
- resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==}
+ '@babel/helper-member-expression-to-functions@7.24.8':
+ resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.24.7':
resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-transforms@7.24.7':
- resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==}
+ '@babel/helper-module-transforms@7.25.2':
+ resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/helper-optimise-call-expression@7.24.6':
- resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==}
+ '@babel/helper-optimise-call-expression@7.24.7':
+ resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==}
engines: {node: '>=6.9.0'}
- '@babel/helper-plugin-utils@7.24.7':
- resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==}
+ '@babel/helper-plugin-utils@7.24.8':
+ resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-remap-async-to-generator@7.24.6':
- resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==}
+ '@babel/helper-remap-async-to-generator@7.25.0':
+ resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/helper-replace-supers@7.24.6':
- resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==}
+ '@babel/helper-replace-supers@7.25.0':
+ resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/helper-simple-access@7.24.7':
resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
engines: {node: '>=6.9.0'}
- '@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.7':
- resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
+ '@babel/helper-skip-transparent-expression-wrappers@7.24.7':
+ resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-string-parser@7.24.6':
- resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==}
+ '@babel/helper-string-parser@7.24.8':
+ resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.24.7':
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-option@7.24.6':
- resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==}
+ '@babel/helper-validator-option@7.24.8':
+ resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==}
engines: {node: '>=6.9.0'}
- '@babel/helper-wrap-function@7.24.6':
- resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==}
+ '@babel/helper-wrap-function@7.25.0':
+ resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.24.6':
- resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==}
+ '@babel/helpers@7.25.0':
+ resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==}
engines: {node: '>=6.9.0'}
- '@babel/highlight@7.24.6':
- resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==}
+ '@babel/highlight@7.24.7':
+ resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
engines: {node: '>=6.9.0'}
- '@babel/node@7.24.6':
- resolution: {integrity: sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==}
+ '@babel/node@7.25.0':
+ resolution: {integrity: sha512-fgdlIcf1vLeZ6gUHcl799Wbk6no5tnkGi6t1gpAb1a97ZB+KCRp8Sgb7acGTjnFhOzqzcsbJ4+wzewqb6JM0tA==}
engines: {node: '>=6.9.0'}
hasBin: true
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/parser@7.24.7':
- resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
+ '@babel/parser@7.25.3':
+ resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6':
- resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==}
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3':
+ resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.25.2
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0':
+ resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6':
- resolution: {integrity: sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==}
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0':
+ resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6':
- resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==}
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7':
+ resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6':
- resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0':
+ resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@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.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-async-generators@7.8.4':
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-class-properties@7.12.13':
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@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.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-dynamic-import@7.8.3':
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-export-namespace-from@7.8.3':
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-syntax-import-assertions@7.24.6':
- resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==}
+ '@babel/plugin-syntax-import-assertions@7.24.7':
+ resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-syntax-import-attributes@7.24.6':
- resolution: {integrity: sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==}
+ '@babel/plugin-syntax-import-attributes@7.24.7':
+ resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-import-meta@7.10.4':
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-json-strings@7.8.3':
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-jsx@7.24.7':
resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-logical-assignment-operators@7.10.4':
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-numeric-separator@7.10.4':
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-object-rest-spread@7.8.3':
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-optional-catch-binding@7.8.3':
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-optional-chaining@7.8.3':
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@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.6
+ '@babel/core': ^7.25.2
'@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.6
+ '@babel/core': ^7.25.2
'@babel/plugin-syntax-typescript@7.24.7':
resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@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.6
+ '@babel/core': ^7.25.2
+
+ '@babel/plugin-transform-arrow-functions@7.24.7':
+ resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-arrow-functions@7.24.6':
- resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==}
+ '@babel/plugin-transform-async-generator-functions@7.25.0':
+ resolution: {integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-async-generator-functions@7.24.6':
- resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==}
+ '@babel/plugin-transform-async-to-generator@7.24.7':
+ resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-async-to-generator@7.24.6':
- resolution: {integrity: sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==}
+ '@babel/plugin-transform-block-scoped-functions@7.24.7':
+ resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-block-scoped-functions@7.24.6':
- resolution: {integrity: sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==}
+ '@babel/plugin-transform-block-scoping@7.25.0':
+ resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-block-scoping@7.24.6':
- resolution: {integrity: sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==}
+ '@babel/plugin-transform-class-properties@7.24.7':
+ resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-class-properties@7.24.6':
- resolution: {integrity: sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==}
+ '@babel/plugin-transform-class-static-block@7.24.7':
+ resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-class-static-block@7.24.6':
- resolution: {integrity: sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==}
+ '@babel/plugin-transform-classes@7.25.0':
+ resolution: {integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-classes@7.24.6':
- resolution: {integrity: sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==}
+ '@babel/plugin-transform-computed-properties@7.24.7':
+ resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-computed-properties@7.24.6':
- resolution: {integrity: sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==}
+ '@babel/plugin-transform-dotall-regex@7.24.7':
+ resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-dotall-regex@7.24.6':
- resolution: {integrity: sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==}
+ '@babel/plugin-transform-duplicate-keys@7.24.7':
+ resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-duplicate-keys@7.24.6':
- resolution: {integrity: sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==}
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0':
+ resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-dynamic-import@7.24.6':
- resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==}
+ '@babel/plugin-transform-dynamic-import@7.24.7':
+ resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-exponentiation-operator@7.24.6':
- resolution: {integrity: sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==}
+ '@babel/plugin-transform-exponentiation-operator@7.24.7':
+ resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-export-namespace-from@7.24.6':
- resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==}
+ '@babel/plugin-transform-export-namespace-from@7.24.7':
+ resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-for-of@7.24.6':
- resolution: {integrity: sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==}
+ '@babel/plugin-transform-for-of@7.24.7':
+ resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-function-name@7.24.6':
- resolution: {integrity: sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==}
+ '@babel/plugin-transform-function-name@7.25.1':
+ resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-json-strings@7.24.6':
- resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==}
+ '@babel/plugin-transform-json-strings@7.24.7':
+ resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-literals@7.24.6':
- resolution: {integrity: sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==}
+ '@babel/plugin-transform-literals@7.25.2':
+ resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-logical-assignment-operators@7.24.6':
- resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==}
+ '@babel/plugin-transform-logical-assignment-operators@7.24.7':
+ resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-member-expression-literals@7.24.6':
- resolution: {integrity: sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==}
+ '@babel/plugin-transform-member-expression-literals@7.24.7':
+ resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-modules-amd@7.24.6':
- resolution: {integrity: sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==}
+ '@babel/plugin-transform-modules-amd@7.24.7':
+ resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-modules-commonjs@7.24.7':
- resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==}
+ '@babel/plugin-transform-modules-commonjs@7.24.8':
+ resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-modules-systemjs@7.24.6':
- resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==}
+ '@babel/plugin-transform-modules-systemjs@7.25.0':
+ resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-modules-umd@7.24.6':
- resolution: {integrity: sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==}
+ '@babel/plugin-transform-modules-umd@7.24.7':
+ resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-named-capturing-groups-regex@7.24.6':
- resolution: {integrity: sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==}
+ '@babel/plugin-transform-named-capturing-groups-regex@7.24.7':
+ resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-new-target@7.24.6':
- resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==}
+ '@babel/plugin-transform-new-target@7.24.7':
+ resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-nullish-coalescing-operator@7.24.6':
- resolution: {integrity: sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==}
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.7':
+ resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-numeric-separator@7.24.6':
- resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==}
+ '@babel/plugin-transform-numeric-separator@7.24.7':
+ resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-object-rest-spread@7.24.6':
- resolution: {integrity: sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==}
+ '@babel/plugin-transform-object-rest-spread@7.24.7':
+ resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-object-super@7.24.6':
- resolution: {integrity: sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==}
+ '@babel/plugin-transform-object-super@7.24.7':
+ resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-optional-catch-binding@7.24.6':
- resolution: {integrity: sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==}
+ '@babel/plugin-transform-optional-catch-binding@7.24.7':
+ resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-optional-chaining@7.24.6':
- resolution: {integrity: sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==}
+ '@babel/plugin-transform-optional-chaining@7.24.8':
+ resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-parameters@7.24.6':
- resolution: {integrity: sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==}
+ '@babel/plugin-transform-parameters@7.24.7':
+ resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-private-methods@7.24.6':
- resolution: {integrity: sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==}
+ '@babel/plugin-transform-private-methods@7.24.7':
+ resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-private-property-in-object@7.24.6':
- resolution: {integrity: sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==}
+ '@babel/plugin-transform-private-property-in-object@7.24.7':
+ resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-property-literals@7.24.6':
- resolution: {integrity: sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==}
+ '@babel/plugin-transform-property-literals@7.24.7':
+ resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-react-constant-elements@7.24.6':
- resolution: {integrity: sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg==}
+ '@babel/plugin-transform-react-constant-elements@7.25.1':
+ resolution: {integrity: sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-react-display-name@7.24.6':
- resolution: {integrity: sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==}
+ '@babel/plugin-transform-react-display-name@7.24.7':
+ resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-react-jsx-development@7.24.6':
- resolution: {integrity: sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==}
+ '@babel/plugin-transform-react-jsx-development@7.24.7':
+ resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-react-jsx@7.24.6':
- resolution: {integrity: sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==}
+ '@babel/plugin-transform-react-jsx@7.25.2':
+ resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-react-pure-annotations@7.24.6':
- resolution: {integrity: sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==}
+ '@babel/plugin-transform-react-pure-annotations@7.24.7':
+ resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-regenerator@7.24.6':
- resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==}
+ '@babel/plugin-transform-regenerator@7.24.7':
+ resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-reserved-words@7.24.6':
- resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==}
+ '@babel/plugin-transform-reserved-words@7.24.7':
+ resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-runtime@7.24.6':
- resolution: {integrity: sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==}
+ '@babel/plugin-transform-runtime@7.24.7':
+ resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-shorthand-properties@7.24.6':
- resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==}
+ '@babel/plugin-transform-shorthand-properties@7.24.7':
+ resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-spread@7.24.6':
- resolution: {integrity: sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==}
+ '@babel/plugin-transform-spread@7.24.7':
+ resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-sticky-regex@7.24.6':
- resolution: {integrity: sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==}
+ '@babel/plugin-transform-sticky-regex@7.24.7':
+ resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-template-literals@7.24.6':
- resolution: {integrity: sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==}
+ '@babel/plugin-transform-template-literals@7.24.7':
+ resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-typeof-symbol@7.24.6':
- resolution: {integrity: sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==}
+ '@babel/plugin-transform-typeof-symbol@7.24.8':
+ resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-typescript@7.24.6':
- resolution: {integrity: sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==}
+ '@babel/plugin-transform-typescript@7.25.2':
+ resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-unicode-escapes@7.24.6':
- resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==}
+ '@babel/plugin-transform-unicode-escapes@7.24.7':
+ resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-unicode-property-regex@7.24.6':
- resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==}
+ '@babel/plugin-transform-unicode-property-regex@7.24.7':
+ resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-unicode-regex@7.24.6':
- resolution: {integrity: sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==}
+ '@babel/plugin-transform-unicode-regex@7.24.7':
+ resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/plugin-transform-unicode-sets-regex@7.24.6':
- resolution: {integrity: sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==}
+ '@babel/plugin-transform-unicode-sets-regex@7.24.7':
+ resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/preset-env@7.24.6':
- resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==}
+ '@babel/preset-env@7.25.3':
+ resolution: {integrity: sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@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.6
+ '@babel/core': ^7.25.2
- '@babel/preset-react@7.24.6':
- resolution: {integrity: sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==}
+ '@babel/preset-react@7.24.7':
+ resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
- '@babel/preset-typescript@7.24.6':
- resolution: {integrity: sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==}
+ '@babel/preset-typescript@7.24.7':
+ resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/register@7.24.6':
resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@babel/regjsgen@0.8.0':
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
- '@babel/runtime-corejs3@7.24.6':
- resolution: {integrity: sha512-tbC3o8uHK9xMgMsvUm9qGqxVpbv6yborMBLbDteHIc7JDNHsTV0vDMQ5j1O1NXvO+BDELtL9KgoWYaUVIVGt8w==}
+ '@babel/runtime-corejs3@7.25.0':
+ resolution: {integrity: sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==}
engines: {node: '>=6.9.0'}
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.25.0':
+ resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==}
engines: {node: '>=6.9.0'}
- '@babel/template@7.24.7':
- resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
+ '@babel/template@7.25.0':
+ resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.24.7':
- resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==}
+ '@babel/traverse@7.25.3':
+ resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.24.6':
- resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==}
+ '@babel/types@7.25.2':
+ resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@0.2.3':
@@ -1982,7 +1978,7 @@ packages:
'@minh.nguyen/plugin-transform-destructuring@7.5.2':
resolution: {integrity: sha512-DIzWFKl5nzSk9Hj9ZsEXAvvgHiyuAsw52queJMuKqfZOk1BOr9u1i2h0tc6tPF3rQieubP+eX4DPLTKSMpbyMg==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
'@mui/base@5.0.0-beta.40':
resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==}
@@ -3421,7 +3417,7 @@ packages:
resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
engines: {node: '>= 14.15.0'}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
webpack: '>=5'
babel-plugin-istanbul@6.1.1:
@@ -3441,17 +3437,17 @@ packages:
babel-plugin-polyfill-corejs2@0.4.11:
resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
babel-plugin-polyfill-corejs3@0.10.4:
resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
babel-plugin-polyfill-regenerator@0.6.2:
resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==}
peerDependencies:
- '@babel/core': ^7.24.6
+ '@babel/core': ^7.25.2
babel-plugin-react-remove-properties@0.3.0:
resolution: {integrity: sha512-vbxegtXGyVcUkCvayLzftU95vuvpYFV85pRpeMpohMHeEY46Qe0VNWfkVVcCbaZ12CXHzDFOj0esumATcW83ng==}
@@ -3516,8 +3512,8 @@ packages:
browser-stdout@1.3.1:
resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
- browserslist@4.23.0:
- resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
+ browserslist@4.23.2:
+ resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -3602,8 +3598,8 @@ packages:
camelize@1.0.1:
resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
- caniuse-lite@1.0.30001605:
- resolution: {integrity: sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==}
+ caniuse-lite@1.0.30001646:
+ resolution: {integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==}
chai-dom@1.12.0:
resolution: {integrity: sha512-pLP8h6IBR8z1AdeQ+EMcJ7dXPdsax/1Q7gdGZjsnAmSBl3/gItQUYSCo32br1qOy4SlcBjvqId7ilAf3uJ2K1w==}
@@ -3923,8 +3919,8 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
- core-js-compat@3.37.0:
- resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==}
+ core-js-compat@3.37.1:
+ resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==}
core-js-pure@3.37.1:
resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==}
@@ -4269,8 +4265,8 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.4.723:
- resolution: {integrity: sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==}
+ electron-to-chromium@1.5.4:
+ resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -8163,8 +8159,8 @@ packages:
resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
engines: {node: '>=4'}
- update-browserslist-db@1.0.13:
- resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ update-browserslist-db@1.1.0:
+ resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -8654,9 +8650,9 @@ snapshots:
'@argos-ci/util@2.0.0': {}
- '@babel/cli@7.24.6(@babel/core@7.24.6)':
+ '@babel/cli@7.24.8(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
'@jridgewell/trace-mapping': 0.3.25
commander: 6.2.1
convert-source-map: 2.0.0
@@ -8668,25 +8664,25 @@ snapshots:
'@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3
chokidar: 3.6.0
- '@babel/code-frame@7.24.6':
+ '@babel/code-frame@7.24.7':
dependencies:
- '@babel/highlight': 7.24.6
+ '@babel/highlight': 7.24.7
picocolors: 1.0.1
- '@babel/compat-data@7.24.6': {}
+ '@babel/compat-data@7.25.2': {}
- '@babel/core@7.24.6':
+ '@babel/core@7.25.2':
dependencies:
'@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.24.6
- '@babel/generator': 7.24.7
- '@babel/helper-compilation-targets': 7.24.6
- '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.6)
- '@babel/helpers': 7.24.6
- '@babel/parser': 7.24.7
- '@babel/template': 7.24.7
- '@babel/traverse': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/code-frame': 7.24.7
+ '@babel/generator': 7.25.0
+ '@babel/helper-compilation-targets': 7.25.2
+ '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
+ '@babel/helpers': 7.25.0
+ '@babel/parser': 7.25.3
+ '@babel/template': 7.25.0
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
convert-source-map: 2.0.0
debug: 4.3.5(supports-color@8.1.1)
gensync: 1.0.0-beta.2
@@ -8695,767 +8691,808 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.24.7':
+ '@babel/generator@7.25.0':
dependencies:
- '@babel/types': 7.24.6
+ '@babel/types': 7.25.2
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
- '@babel/helper-annotate-as-pure@7.24.6':
+ '@babel/helper-annotate-as-pure@7.24.7':
dependencies:
- '@babel/types': 7.24.6
+ '@babel/types': 7.25.2
- '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6':
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
dependencies:
- '@babel/types': 7.24.6
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-compilation-targets@7.24.6':
+ '@babel/helper-compilation-targets@7.25.2':
dependencies:
- '@babel/compat-data': 7.24.6
- '@babel/helper-validator-option': 7.24.6
- browserslist: 4.23.0
+ '@babel/compat-data': 7.25.2
+ '@babel/helper-validator-option': 7.24.8
+ browserslist: 4.23.2
lru-cache: 5.1.1
semver: 6.3.1
- '@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.7
- '@babel/helper-function-name': 7.24.7
- '@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.7
+ '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-member-expression-to-functions': 7.24.8
+ '@babel/helper-optimise-call-expression': 7.24.7
+ '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/traverse': 7.25.3
semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.6)':
+ '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-annotate-as-pure': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
regexpu-core: 5.3.2
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.6)':
+ '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-compilation-targets': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
debug: 4.3.5(supports-color@8.1.1)
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
- supports-color
- '@babel/helper-environment-visitor@7.24.7':
- dependencies:
- '@babel/types': 7.24.6
-
- '@babel/helper-function-name@7.24.7':
- dependencies:
- '@babel/template': 7.24.7
- '@babel/types': 7.24.6
-
- '@babel/helper-hoist-variables@7.24.7':
+ '@babel/helper-member-expression-to-functions@7.24.8':
dependencies:
- '@babel/types': 7.24.6
-
- '@babel/helper-member-expression-to-functions@7.24.6':
- dependencies:
- '@babel/types': 7.24.6
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-module-imports@7.24.7':
dependencies:
- '@babel/traverse': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.6)':
+ '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-environment-visitor': 7.24.7
+ '@babel/core': 7.25.2
'@babel/helper-module-imports': 7.24.7
'@babel/helper-simple-access': 7.24.7
- '@babel/helper-split-export-declaration': 7.24.7
'@babel/helper-validator-identifier': 7.24.7
+ '@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
- '@babel/helper-optimise-call-expression@7.24.6':
+ '@babel/helper-optimise-call-expression@7.24.7':
dependencies:
- '@babel/types': 7.24.6
+ '@babel/types': 7.25.2
- '@babel/helper-plugin-utils@7.24.7': {}
+ '@babel/helper-plugin-utils@7.24.8': {}
- '@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.6)':
+ '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-annotate-as-pure': 7.24.6
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-wrap-function': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-wrap-function': 7.25.0
+ '@babel/traverse': 7.25.3
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6)':
+ '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-member-expression-to-functions': 7.24.6
- '@babel/helper-optimise-call-expression': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-member-expression-to-functions': 7.24.8
+ '@babel/helper-optimise-call-expression': 7.24.7
+ '@babel/traverse': 7.25.3
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-simple-access@7.24.7':
dependencies:
- '@babel/traverse': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
- '@babel/helper-skip-transparent-expression-wrappers@7.24.6':
- dependencies:
- '@babel/types': 7.24.6
-
- '@babel/helper-split-export-declaration@7.24.7':
+ '@babel/helper-skip-transparent-expression-wrappers@7.24.7':
dependencies:
- '@babel/types': 7.24.6
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-string-parser@7.24.6': {}
+ '@babel/helper-string-parser@7.24.8': {}
'@babel/helper-validator-identifier@7.24.7': {}
- '@babel/helper-validator-option@7.24.6': {}
+ '@babel/helper-validator-option@7.24.8': {}
- '@babel/helper-wrap-function@7.24.6':
+ '@babel/helper-wrap-function@7.25.0':
dependencies:
- '@babel/helper-function-name': 7.24.7
- '@babel/template': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/template': 7.25.0
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helpers@7.24.6':
+ '@babel/helpers@7.25.0':
dependencies:
- '@babel/template': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/template': 7.25.0
+ '@babel/types': 7.25.2
- '@babel/highlight@7.24.6':
+ '@babel/highlight@7.24.7':
dependencies:
'@babel/helper-validator-identifier': 7.24.7
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.0.1
- '@babel/node@7.24.6(@babel/core@7.24.6)':
+ '@babel/node@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/register': 7.24.6(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/register': 7.24.6(@babel/core@7.25.2)
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.7':
+ '@babel/parser@7.25.3':
dependencies:
- '@babel/types': 7.24.6
+ '@babel/types': 7.25.2
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/traverse': 7.25.3
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-skip-transparent-expression-wrappers': 7.24.6
- '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/traverse': 7.25.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-import-assertions@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.6)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)':
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.7
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-arrow-functions@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-async-generator-functions@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- '@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/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2)
+ '@babel/traverse': 7.25.3
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-async-to-generator@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
'@babel/helper-module-imports': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6)
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-block-scoped-functions@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-block-scoping@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-class-properties@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@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.7
+ '@babel/core': 7.25.2
+ '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-class-static-block@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@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.7
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-classes@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-classes@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@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.7
- '@babel/helper-function-name': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6)
- '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-compilation-targets': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2)
+ '@babel/traverse': 7.25.3
globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/template': 7.25.0
- '@babel/plugin-transform-computed-properties@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/template': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-dotall-regex@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)':
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.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-duplicate-keys@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-dynamic-import@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2)
- '@babel/plugin-transform-exponentiation-operator@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.8
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-export-namespace-from@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2)
- '@babel/plugin-transform-for-of@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-skip-transparent-expression-wrappers': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-function-name@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-compilation-targets': 7.24.6
- '@babel/helper-function-name': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/traverse': 7.25.3
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-json-strings@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2)
- '@babel/plugin-transform-literals@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-logical-assignment-operators@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2)
- '@babel/plugin-transform-member-expression-literals@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-modules-amd@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.6)
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.6)':
+ '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.6)
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
'@babel/helper-simple-access': 7.24.7
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-hoist-variables': 7.24.7
- '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.6)
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-identifier': 7.24.7
+ '@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.6)
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)':
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.7
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-new-target@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
- '@babel/plugin-transform-numeric-separator@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2)
- '@babel/plugin-transform-object-rest-spread@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-compilation-targets': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@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/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
- '@babel/plugin-transform-object-super@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-optional-catch-binding@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2)
- '@babel/plugin-transform-optional-chaining@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-skip-transparent-expression-wrappers': 7.24.6
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-parameters@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-private-methods@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@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.7
+ '@babel/core': 7.25.2
+ '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-private-property-in-object@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)':
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.7
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-property-literals@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-react-constant-elements@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-react-display-name@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-react-jsx-development@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-jsx@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-annotate-as-pure': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-module-imports': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.6)
- '@babel/types': 7.24.6
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
+ '@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-pure-annotations@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-annotate-as-pure': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
regenerator-transform: 0.15.2
- '@babel/plugin-transform-reserved-words@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-transform-runtime@7.24.6(@babel/core@7.24.6)':
+ '@babel/plugin-transform-runtime@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
'@babel/helper-module-imports': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- 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)
+ '@babel/helper-plugin-utils': 7.24.8
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2)
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@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.7
-
- '@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.6)':
- dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@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.7
-
- '@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.7
-
- '@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.7
-
- '@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.7
- '@babel/plugin-syntax-typescript': 7.24.7(@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.7
-
- '@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.7
-
- '@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.7
-
- '@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.7
-
- '@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.7
- '@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.7(@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
+ '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/preset-env@7.25.3(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/compat-data': 7.25.2
+ '@babel/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-validator-option': 7.24.8
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2)
+ '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-destructuring': '@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.25.2)'
+ '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2)
+ '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2)
+ '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2)
+ '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2)
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2)
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2)
+ core-js-compat: 3.37.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.6)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/types': 7.25.2
esutils: 2.0.3
- '@babel/preset-react@7.24.6(@babel/core@7.24.6)':
+ '@babel/preset-react@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@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/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-validator-option': 7.24.8
+ '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2)
+ '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
- '@babel/preset-typescript@7.24.6(@babel/core@7.24.6)':
+ '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-validator-option': 7.24.6
- '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.6)
- '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.6)
- '@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-validator-option': 7.24.8
+ '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
+ '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
- '@babel/register@7.24.6(@babel/core@7.24.6)':
+ '@babel/register@7.24.6(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
clone-deep: 4.0.1
find-cache-dir: 2.1.0
make-dir: 2.1.0
@@ -9464,39 +9501,36 @@ snapshots:
'@babel/regjsgen@0.8.0': {}
- '@babel/runtime-corejs3@7.24.6':
+ '@babel/runtime-corejs3@7.25.0':
dependencies:
core-js-pure: 3.37.1
regenerator-runtime: 0.14.1
- '@babel/runtime@7.24.6':
+ '@babel/runtime@7.25.0':
dependencies:
regenerator-runtime: 0.14.1
- '@babel/template@7.24.7':
+ '@babel/template@7.25.0':
dependencies:
- '@babel/code-frame': 7.24.6
- '@babel/parser': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/code-frame': 7.24.7
+ '@babel/parser': 7.25.3
+ '@babel/types': 7.25.2
- '@babel/traverse@7.24.7':
+ '@babel/traverse@7.25.3':
dependencies:
- '@babel/code-frame': 7.24.6
- '@babel/generator': 7.24.7
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-function-name': 7.24.7
- '@babel/helper-hoist-variables': 7.24.7
- '@babel/helper-split-export-declaration': 7.24.7
- '@babel/parser': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/code-frame': 7.24.7
+ '@babel/generator': 7.25.0
+ '@babel/parser': 7.25.3
+ '@babel/template': 7.25.0
+ '@babel/types': 7.25.2
debug: 4.3.5(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- '@babel/types@7.24.6':
+ '@babel/types@7.25.2':
dependencies:
- '@babel/helper-string-parser': 7.24.6
+ '@babel/helper-string-parser': 7.24.8
'@babel/helper-validator-identifier': 7.24.7
to-fast-properties: 2.0.0
@@ -9547,7 +9581,7 @@ snapshots:
'@emotion/babel-plugin@11.11.0':
dependencies:
'@babel/helper-module-imports': 7.24.7
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@emotion/hash': 0.9.1
'@emotion/memoize': 0.8.1
'@emotion/serialize': 1.1.4
@@ -9578,7 +9612,7 @@ snapshots:
'@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@emotion/babel-plugin': 11.11.0
'@emotion/cache': 11.11.0
'@emotion/serialize': 1.1.4
@@ -9611,7 +9645,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.6
+ '@babel/runtime': 7.25.0
'@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)
@@ -9993,14 +10027,14 @@ snapshots:
- supports-color
- typescript
- '@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.6)':
+ '@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.25.2)':
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-plugin-utils': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
'@mui/base@5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/types': 7.2.15(@types/react@18.3.1)
'@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
@@ -10014,7 +10048,7 @@ snapshots:
'@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/types': 7.2.15(@types/react@18.3.1)
'@mui/utils': 6.0.0-beta.0(@types/react@18.3.1)(react@18.2.0)
@@ -10030,9 +10064,9 @@ snapshots:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {}
- ? '@mui/docs@6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
+ '@babel/runtime': 7.25.0
'@mui/base': 5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/icons-material': 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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.8
@@ -10041,7 +10075,7 @@ snapshots:
chai: 4.4.1
clipboard-copy: 4.0.1
clsx: 2.1.1
- next: 14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
@@ -10050,7 +10084,7 @@ snapshots:
'@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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
+ '@babel/runtime': 7.25.0
'@mui/material': 6.0.0-beta.2(@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:
@@ -10059,7 +10093,7 @@ snapshots:
'@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0))':
dependencies:
'@babel/helper-module-imports': 7.24.7
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
babel-plugin-macros: 3.1.0
transitivePeerDependencies:
@@ -10072,18 +10106,18 @@ snapshots:
'@mui/internal-markdown@1.0.8':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
lodash: 4.17.21
marked: 13.0.2
prismjs: 1.29.0
'@mui/internal-scripts@1.0.13':
dependencies:
- '@babel/core': 7.24.6
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6)
- '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.6)
- '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.6)
- '@babel/types': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2)
+ '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
+ '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2)
+ '@babel/types': 7.25.2
'@mui/internal-docs-utils': 1.0.8
doctrine: 3.0.0
lodash: 4.17.21
@@ -10092,12 +10126,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@mui/internal-test-utils@1.0.5(@babel/core@7.24.6)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@mui/internal-test-utils@1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@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.7(@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
+ '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
+ '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
+ '@babel/register': 7.24.6(@babel/core@7.25.2)
+ '@babel/runtime': 7.25.0
'@emotion/cache': 11.11.0
'@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.2.0)
'@testing-library/dom': 10.3.1
@@ -10127,7 +10161,7 @@ snapshots:
'@mui/joy@5.0.0-beta.48(@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
+ '@babel/runtime': 7.25.0
'@mui/base': 5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/core-downloads-tracker': 5.16.1
'@mui/system': 5.16.1(@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)
@@ -10142,11 +10176,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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
+ '@babel/runtime': 7.25.0
'@mui/material': 6.0.0-beta.2(@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.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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
@@ -10155,7 +10189,7 @@ snapshots:
'@mui/material@6.0.0-beta.2(@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
+ '@babel/runtime': 7.25.0
'@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d
'@mui/system': 6.0.0-beta.1(@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.15(@types/react@18.3.1)
@@ -10190,7 +10224,7 @@ snapshots:
'@mui/private-theming@5.16.1(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
prop-types: 15.8.1
react: 18.2.0
@@ -10199,7 +10233,7 @@ snapshots:
'@mui/private-theming@6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
prop-types: 15.8.1
react: 18.2.0
@@ -10208,7 +10242,7 @@ snapshots:
'@mui/styled-engine@5.16.1(@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
+ '@babel/runtime': 7.25.0
'@emotion/cache': 11.11.0
csstype: 3.1.3
prop-types: 15.8.1
@@ -10219,7 +10253,7 @@ snapshots:
'@mui/styled-engine@6.0.0-beta.1(@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
+ '@babel/runtime': 7.25.0
'@emotion/cache': 11.11.0
csstype: 3.1.3
prop-types: 15.8.1
@@ -10230,7 +10264,7 @@ snapshots:
'@mui/styles@6.0.0-beta.2(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@emotion/hash': 0.9.1
'@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
'@mui/types': 7.2.15(@types/react@18.3.1)
@@ -10253,7 +10287,7 @@ snapshots:
'@mui/system@5.16.1(@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
+ '@babel/runtime': 7.25.0
'@mui/private-theming': 5.16.1(@types/react@18.3.1)(react@18.2.0)
'@mui/styled-engine': 5.16.1(@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.15(@types/react@18.3.1)
@@ -10269,7 +10303,7 @@ snapshots:
'@mui/system@6.0.0-beta.1(@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
+ '@babel/runtime': 7.25.0
'@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
'@mui/styled-engine': 6.0.0-beta.1(@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.15(@types/react@18.3.1)
@@ -10289,7 +10323,7 @@ snapshots:
'@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@mui/types': 7.2.15(@types/react@18.3.1)
'@types/prop-types': 15.7.12
clsx: 2.1.1
@@ -10301,7 +10335,7 @@ snapshots:
'@mui/utils@6.0.0-beta.0(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@types/prop-types': 15.7.12
prop-types: 15.8.1
react: 18.2.0
@@ -10311,7 +10345,7 @@ snapshots:
'@mui/utils@6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)':
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
'@types/prop-types': 15.7.12
clsx: 2.1.1
prop-types: 15.8.1
@@ -10986,8 +11020,8 @@ snapshots:
'@testing-library/dom@10.3.1':
dependencies:
- '@babel/code-frame': 7.24.6
- '@babel/runtime': 7.24.6
+ '@babel/code-frame': 7.24.7
+ '@babel/runtime': 7.25.0
'@types/aria-query': 5.0.4
aria-query: 5.3.0
chalk: 4.1.2
@@ -10997,7 +11031,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.6
+ '@babel/runtime': 7.25.0
'@testing-library/dom': 10.3.1
'@types/react-dom': 18.3.0
react: 18.2.0
@@ -11007,7 +11041,7 @@ snapshots:
'@testing-library/react@16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.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
+ '@babel/runtime': 7.25.0
'@testing-library/dom': 10.3.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -11728,8 +11762,8 @@ snapshots:
autoprefixer@10.4.19(postcss@8.4.40):
dependencies:
- browserslist: 4.23.0
- caniuse-lite: 1.0.30001605
+ browserslist: 4.23.2
+ caniuse-lite: 1.0.30001646
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.0.1
@@ -11758,16 +11792,16 @@ snapshots:
dependencies:
dequal: 2.0.3
- babel-loader@9.1.3(@babel/core@7.24.6)(webpack@5.91.0(webpack-cli@5.1.4)):
+ babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.91.0(webpack-cli@5.1.4)):
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
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.7
+ '@babel/helper-plugin-utils': 7.24.8
'@istanbuljs/load-nyc-config': 1.1.0
'@istanbuljs/schema': 0.1.3
istanbul-lib-instrument: 5.2.1
@@ -11777,7 +11811,7 @@ snapshots:
babel-plugin-macros@3.1.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
cosmiconfig: 7.1.0
resolve: 1.22.8
@@ -11791,34 +11825,34 @@ snapshots:
babel-plugin-optimize-clsx@2.6.2:
dependencies:
- '@babel/generator': 7.24.7
- '@babel/template': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/generator': 7.25.0
+ '@babel/template': 7.25.0
+ '@babel/types': 7.25.2
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.6):
+ babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2):
dependencies:
- '@babel/compat-data': 7.24.6
- '@babel/core': 7.24.6
- '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.6)
+ '@babel/compat-data': 7.25.2
+ '@babel/core': 7.25.2
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.6):
+ babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2):
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.6)
- core-js-compat: 3.37.0
+ '@babel/core': 7.25.2
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2)
+ core-js-compat: 3.37.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.6):
+ babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2):
dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.6)
+ '@babel/core': 7.25.2
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
@@ -11900,12 +11934,12 @@ snapshots:
browser-stdout@1.3.1: {}
- browserslist@4.23.0:
+ browserslist@4.23.2:
dependencies:
- caniuse-lite: 1.0.30001605
- electron-to-chromium: 1.4.723
+ caniuse-lite: 1.0.30001646
+ electron-to-chromium: 1.5.4
node-releases: 2.0.14
- update-browserslist-db: 1.0.13(browserslist@4.23.0)
+ update-browserslist-db: 1.1.0(browserslist@4.23.2)
browserstack-local@1.5.5:
dependencies:
@@ -12012,7 +12046,7 @@ snapshots:
camelize@1.0.1: {}
- caniuse-lite@1.0.30001605: {}
+ caniuse-lite@1.0.30001646: {}
chai-dom@1.12.0(chai@4.4.1):
dependencies:
@@ -12341,9 +12375,9 @@ snapshots:
cookie@0.6.0: {}
- core-js-compat@3.37.0:
+ core-js-compat@3.37.1:
dependencies:
- browserslist: 4.23.0
+ browserslist: 4.23.2
core-js-pure@3.37.1: {}
@@ -12445,7 +12479,7 @@ snapshots:
css-vendor@2.0.8:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
is-in-browser: 1.1.3
css-what@6.1.0: {}
@@ -12534,7 +12568,7 @@ snapshots:
date-fns@2.30.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
date-format@4.0.14: {}
@@ -12647,7 +12681,7 @@ snapshots:
dom-helpers@5.2.1:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
csstype: 3.1.3
dom-serialize@2.2.1:
@@ -12706,7 +12740,7 @@ snapshots:
dependencies:
jake: 10.8.7
- electron-to-chromium@1.4.723: {}
+ electron-to-chromium@1.5.4: {}
emoji-regex@8.0.0: {}
@@ -13037,7 +13071,7 @@ snapshots:
eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
aria-query: 5.3.0
array-includes: 3.1.8
array.prototype.flatmap: 1.3.2
@@ -13174,8 +13208,8 @@ snapshots:
estree-to-babel@3.2.1:
dependencies:
- '@babel/traverse': 7.24.7
- '@babel/types': 7.24.6
+ '@babel/traverse': 7.25.3
+ '@babel/types': 7.25.2
c8: 7.14.0
transitivePeerDependencies:
- supports-color
@@ -14270,7 +14304,7 @@ snapshots:
istanbul-lib-instrument@4.0.3:
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.25.2
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -14279,8 +14313,8 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- '@babel/core': 7.24.6
- '@babel/parser': 7.24.7
+ '@babel/core': 7.25.2
+ '@babel/parser': 7.25.3
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -14476,46 +14510,46 @@ snapshots:
jss-plugin-camel-case@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
hyphenate-style-name: 1.0.4
jss: 10.10.0
jss-plugin-default-unit@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
jss: 10.10.0
jss-plugin-global@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
jss: 10.10.0
jss-plugin-nested@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
jss: 10.10.0
tiny-warning: 1.0.3
jss-plugin-props-sort@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
jss: 10.10.0
jss-plugin-rule-value-function@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
jss: 10.10.0
tiny-warning: 1.0.3
jss-plugin-template@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
jss: 10.10.0
tiny-warning: 1.0.3
jss-plugin-vendor-prefixer@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
css-vendor: 2.0.8
jss: 10.10.0
@@ -14526,7 +14560,7 @@ snapshots:
jss@10.10.0:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
csstype: 3.1.3
is-in-browser: 1.1.3
tiny-warning: 1.0.3
@@ -15223,17 +15257,17 @@ snapshots:
nested-error-stacks@2.1.1: {}
- next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
'@next/env': 14.2.5
'@swc/helpers': 0.5.5
busboy: 1.6.0
- caniuse-lite: 1.0.30001605
+ caniuse-lite: 1.0.30001646
graceful-fs: 4.2.11
postcss: 8.4.31
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react@18.2.0)
+ styled-jsx: 5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.2.0)
optionalDependencies:
'@next/swc-darwin-arm64': 14.2.5
'@next/swc-darwin-x64': 14.2.5
@@ -15779,7 +15813,7 @@ snapshots:
parse-json@5.2.0:
dependencies:
- '@babel/code-frame': 7.24.6
+ '@babel/code-frame': 7.24.7
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
@@ -16123,9 +16157,9 @@ snapshots:
react-docgen@5.4.3:
dependencies:
- '@babel/core': 7.24.6
- '@babel/generator': 7.24.7
- '@babel/runtime': 7.24.6
+ '@babel/core': 7.25.2
+ '@babel/generator': 7.25.0
+ '@babel/runtime': 7.25.0
ast-types: 0.14.2
commander: 2.20.3
doctrine: 3.0.0
@@ -16180,7 +16214,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.6
+ '@babel/runtime': 7.25.0
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
@@ -16298,7 +16332,7 @@ snapshots:
regenerator-transform@0.15.2:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
regexp.prototype.flags@1.5.2:
dependencies:
@@ -16434,7 +16468,7 @@ snapshots:
rtl-css-js@1.16.1:
dependencies:
- '@babel/runtime': 7.24.6
+ '@babel/runtime': 7.25.0
run-async@2.4.1: {}
@@ -16909,12 +16943,12 @@ snapshots:
stylis: 4.3.2
tslib: 2.6.2
- styled-jsx@5.1.1(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react@18.2.0):
+ styled-jsx@5.1.1(@babel/core@7.25.2)(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.6
+ '@babel/core': 7.25.2
babel-plugin-macros: 3.1.0
stylelint-config-recommended@14.0.1(stylelint@16.4.0(typescript@5.4.5)):
@@ -17364,9 +17398,9 @@ snapshots:
upath@2.0.1: {}
- update-browserslist-db@1.0.13(browserslist@4.23.0):
+ update-browserslist-db@1.1.0(browserslist@4.23.2):
dependencies:
- browserslist: 4.23.0
+ browserslist: 4.23.2
escalade: 3.1.2
picocolors: 1.0.1
@@ -17520,7 +17554,7 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.12.1
acorn: 8.11.3
acorn-import-assertions: 1.9.0(acorn@8.11.3)
- browserslist: 4.23.0
+ browserslist: 4.23.2
chrome-trace-event: 1.0.3
enhanced-resolve: 5.16.0
es-module-lexer: 1.5.0
@@ -17553,7 +17587,7 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.12.1
acorn: 8.11.3
acorn-import-assertions: 1.9.0(acorn@8.11.3)
- browserslist: 4.23.0
+ browserslist: 4.23.2
chrome-trace-event: 1.0.3
enhanced-resolve: 5.16.0
es-module-lexer: 1.5.0
diff --git a/test/package.json b/test/package.json
index 2956c157f6..383ad1cea3 100644
--- a/test/package.json
+++ b/test/package.json
@@ -6,7 +6,7 @@
"typescript": "tsc -p tsconfig.json"
},
"devDependencies": {
- "@babel/runtime": "^7.24.6",
+ "@babel/runtime": "^7.25.0",
"@base_ui/react": "workspace:*",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
From fa9f3fa71320d40a409d0318229ec6521fe52e54 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:08:09 +0000
Subject: [PATCH 27/34] Bump pnpm to 9.6.0 (#514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 4 ++--
pnpm-lock.yaml | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 62295494ee..6442df8a9e 100644
--- a/package.json
+++ b/package.json
@@ -162,9 +162,9 @@
"webpack-cli": "^5.1.4",
"yargs": "^17.7.2"
},
- "packageManager": "pnpm@9.1.4",
+ "packageManager": "pnpm@9.6.0",
"engines": {
- "pnpm": "9.1.4"
+ "pnpm": "9.6.0"
},
"resolutions": {
"@babel/core": "^7.25.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bcd8c91800..edeb5d9ff7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -342,7 +342,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-beta.2
- version: 6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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-beta.2(zofz3nxyhvt4ajdv3dpnpcd7gm)
'@mui/icons-material':
specifier: 6.0.0-beta.2
version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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)
@@ -10064,8 +10064,8 @@ snapshots:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {}
- ? '@mui/docs@6.0.0-beta.2(@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@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-beta.1(@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)(chai@4.4.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)'
- : dependencies:
+ '@mui/docs@6.0.0-beta.2(zofz3nxyhvt4ajdv3dpnpcd7gm)':
+ dependencies:
'@babel/runtime': 7.25.0
'@mui/base': 5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@mui/icons-material': 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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)
From eb4c4bb8bbd16851949de61058464ab6e8779394 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 14:27:19 +0200
Subject: [PATCH 28/34] Bump React to ^18.3.1 (#387)
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 | 6 +-
packages/mui-base/package.json | 4 +-
.../useAutocomplete/useAutocomplete.test.js | 50 +-
pnpm-lock.yaml | 444 +++++++++---------
renovate.json | 9 +-
test/package.json | 8 +-
6 files changed, 252 insertions(+), 269 deletions(-)
diff --git a/docs/package.json b/docs/package.json
index 926f46863a..710a1d8a46 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -58,10 +58,10 @@
"postcss": "^8.4.40",
"postcss-import": "^16.1.0",
"prop-types": "^15.8.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
"react-draggable": "^4.4.6",
- "react-is": "^18.2.0",
+ "react-is": "^18.3.1",
"react-router-dom": "^6.23.1",
"react-runner": "^1.0.5",
"react-simple-code-editor": "^0.13.1",
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index ccb7fe7155..2d69924dc0 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -61,8 +61,8 @@
"chai": "^4.4.1",
"fast-glob": "^3.3.2",
"lodash": "^4.17.21",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
"sinon": "^17.0.1",
"typescript": "^5.4.5"
},
diff --git a/packages/mui-base/src/legacy/useAutocomplete/useAutocomplete.test.js b/packages/mui-base/src/legacy/useAutocomplete/useAutocomplete.test.js
index 0a5f91eda1..491671f3c3 100644
--- a/packages/mui-base/src/legacy/useAutocomplete/useAutocomplete.test.js
+++ b/packages/mui-base/src/legacy/useAutocomplete/useAutocomplete.test.js
@@ -263,9 +263,9 @@ describe('useAutocomplete', () => {
{groupedOptions.length > 0 ? (
{groupedOptions.map((option, index) => {
- const { key, ...other } = getOptionProps({ option, index });
+ const { key, ...optionProps } = getOptionProps({ option, index });
return (
-
+
{option}
);
@@ -277,52 +277,28 @@ describe('useAutocomplete', () => {
}
const node16ErrorMessage =
- "TypeError: Cannot read properties of null (reading 'removeAttribute')";
- const olderNodeErrorMessage = "TypeError: Cannot read property 'removeAttribute' of null";
+ "Error: Uncaught [TypeError: Cannot read properties of null (reading 'removeAttribute')]";
+ const olderNodeErrorMessage =
+ "Error: Uncaught [TypeError: Cannot read property 'removeAttribute' of null]";
const nodeVersion = Number(process.versions.node.split('.')[0]);
const errorMessage = nodeVersion >= 16 ? node16ErrorMessage : olderNodeErrorMessage;
- const wrappedErrorMessage = `Error: Uncaught [${errorMessage}]`;
-
- const react17ErrorMessages = [
- wrappedErrorMessage,
- 'MUI: Unable to find the input element.',
- wrappedErrorMessage,
- 'The above error occurred in the component',
- 'The above error occurred in the component',
- ];
-
- const react182ErrorMessages = [
- wrappedErrorMessage,
+ const devErrorMessages = [
+ errorMessage,
'MUI: Unable to find the input element.',
- wrappedErrorMessage,
+ errorMessage,
// strict effects runs effects twice
- 'MUI: Unable to find the input element.',
- wrappedErrorMessage,
+ React.version.startsWith('18') && 'MUI: Unable to find the input element.',
+ React.version.startsWith('18') && errorMessage,
'The above error occurred in the component',
+ React.version.startsWith('16') && 'The above error occurred in the component',
'The above error occurred in the component',
// strict effects runs effects twice
- 'The above error occurred in the component',
- ];
-
- const react183ErrorMessages = [
- 'MUI: Unable to find the input element.',
- 'MUI: Unable to find the input element.',
- errorMessage,
- errorMessage,
- errorMessage,
+ React.version.startsWith('18') && 'The above error occurred in the component',
+ React.version.startsWith('16') && 'The above error occurred in the component',
];
- let devErrorMessages;
- if (React.version.startsWith('18.3')) {
- devErrorMessages = react183ErrorMessages;
- } else if (React.version.startsWith('18')) {
- devErrorMessages = react182ErrorMessages;
- } else {
- devErrorMessages = react17ErrorMessages;
- }
-
expect(() => {
render(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index edeb5d9ff7..a5a63a880d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -66,16 +66,16 @@ importers:
version: 1.0.13
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material':
specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@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)
+ version: 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/monorepo':
specifier: github:mui/material-ui#v6.0.0-beta.2
version: https://codeload.github.com/mui/material-ui/tar.gz/18056e14de623cab995db4bc01c879467aeb273e(encoding@0.1.13)
'@mui/utils':
specifier: 6.0.0-beta.1
- version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
'@next/eslint-plugin-next':
specifier: ^14.2.5
version: 14.2.5
@@ -327,25 +327,25 @@ importers:
version: link:../packages/mui-base/build
'@docsearch/react':
specifier: ^3.6.1
- version: 3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.13.0)
+ version: 3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)
'@emotion/cache':
specifier: ^11.11.0
version: 11.11.0
'@emotion/react':
specifier: ^11.11.4
- version: 11.11.4(@types/react@18.3.1)(react@18.2.0)
+ version: 11.11.4(@types/react@18.3.1)(react@18.3.1)
'@emotion/server':
specifier: ^11.11.0
version: 11.11.0
'@emotion/styled':
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)
+ version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/docs':
specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(zofz3nxyhvt4ajdv3dpnpcd7gm)
+ version: 6.0.0-beta.2(ggmzxrcvcmdis7luqgwn7ko5o4)
'@mui/icons-material':
specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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)
+ version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/internal-markdown':
specifier: ^1.0.8
version: 1.0.8
@@ -354,28 +354,28 @@ importers:
version: 1.0.13
'@mui/joy':
specifier: 5.0.0-beta.48
- version: 5.0.0-beta.48(@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)
+ version: 5.0.0-beta.48(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material':
specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@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)
+ version: 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material-nextjs':
specifier: 6.0.0-alpha.14
- version: 6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
'@mui/styles':
specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@types/react@18.3.1)(react@18.2.0)
+ version: 6.0.0-beta.2(@types/react@18.3.1)(react@18.3.1)
'@mui/system':
specifier: 6.0.0-beta.1
- version: 6.0.0-beta.1(@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)
+ version: 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/types':
specifier: 7.2.15
version: 7.2.15(@types/react@18.3.1)
'@mui/utils':
specifier: 6.0.0-beta.1
- version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
'@react-spring/web':
specifier: ^9.7.4
- version: 9.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 9.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
autoprefixer:
specifier: ^10.4.19
version: 10.4.19(postcss@8.4.40)
@@ -429,7 +429,7 @@ importers:
version: 1.5.0
next:
specifier: ^14.2.5
- version: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
nprogress:
specifier: ^0.2.0
version: 0.2.0
@@ -443,35 +443,35 @@ importers:
specifier: ^15.8.1
version: 15.8.1
react:
- specifier: ^18.2.0
- version: 18.2.0
+ specifier: ^18.3.1
+ version: 18.3.1
react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.3.1)
react-draggable:
specifier: ^4.4.6
- version: 4.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-is:
- specifier: ^18.2.0
+ specifier: ^18.3.1
version: 18.3.1
react-router-dom:
specifier: ^6.23.1
- version: 6.23.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-runner:
specifier: ^1.0.5
- version: 1.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-simple-code-editor:
specifier: ^0.13.1
- version: 0.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 0.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-transition-group:
specifier: ^4.4.5
- version: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rimraf:
specifier: ^5.0.10
version: 5.0.10
styled-components:
specifier: ^6.1.12
- version: 6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 6.1.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
stylis:
specifier: 4.3.2
version: 4.3.2
@@ -493,7 +493,7 @@ importers:
version: 1.0.8
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/autosuggest-highlight':
specifier: ^3.2.3
version: 3.2.3
@@ -526,7 +526,7 @@ importers:
version: 4.0.0(encoding@0.1.13)
framer-motion:
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)
+ version: 11.2.10(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
marked:
specifier: ^12.0.2
version: 12.0.2
@@ -562,10 +562,10 @@ importers:
version: 7.25.0
'@floating-ui/react':
specifier: ^0.26.20
- version: 0.26.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 0.26.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@floating-ui/react-dom':
specifier: ^2.1.1
- version: 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@floating-ui/utils':
specifier: ^0.2.5
version: 0.2.5
@@ -574,7 +574,7 @@ importers:
version: 7.2.15(@types/react@18.3.1)
'@mui/utils':
specifier: ^5.16.6
- version: 5.16.6(@types/react@18.3.1)(react@18.2.0)
+ version: 5.16.6(@types/react@18.3.1)(react@18.3.1)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -584,13 +584,13 @@ importers:
devDependencies:
'@mui/internal-babel-macros':
specifier: ^1.0.1
- version: 1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0))
+ version: 1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.3.1))
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@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)
+ version: 15.0.7(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@testing-library/user-event':
specifier: ^14.5.2
version: 14.5.2(@testing-library/dom@10.3.1)
@@ -622,11 +622,11 @@ importers:
specifier: ^4.17.21
version: 4.17.21
react:
- specifier: ^18.2.0
- version: 18.2.0
+ specifier: ^18.3.1
+ version: 18.3.1
react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.3.1)
sinon:
specifier: ^17.0.1
version: 17.0.1
@@ -648,16 +648,16 @@ importers:
version: 11.11.0
'@emotion/react':
specifier: ^11.11.4
- version: 11.11.4(@types/react@18.3.1)(react@18.2.0)
+ version: 11.11.4(@types/react@18.3.1)(react@18.3.1)
'@mui/internal-test-utils':
specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/joy':
specifier: 5.0.0-beta.48
- version: 5.0.0-beta.48(@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)
+ version: 5.0.0-beta.48(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material':
specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@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)
+ version: 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@playwright/test':
specifier: 1.45.3
version: 1.45.3
@@ -671,8 +671,8 @@ importers:
specifier: ^18.3.1
version: 18.3.1
'@types/react-is':
- specifier: ^18.2.4
- version: 18.2.4
+ specifier: ^18.3.0
+ version: 18.3.0
'@types/sinon':
specifier: ^17.0.3
version: 17.0.3
@@ -704,23 +704,23 @@ importers:
specifier: ^15.8.1
version: 15.8.1
react:
- specifier: ^18.2.0
- version: 18.2.0
+ specifier: ^18.3.1
+ version: 18.3.1
react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.3.1)
react-is:
- specifier: ^18.2.0
+ specifier: ^18.3.1
version: 18.3.1
react-router-dom:
specifier: ^6.23.1
- version: 6.23.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
sinon:
specifier: ^17.0.1
version: 17.0.1
styled-components:
specifier: ^6.1.12
- version: 6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 6.1.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
stylis:
specifier: 4.3.2
version: 4.3.2
@@ -2910,8 +2910,8 @@ packages:
'@types/react-dom@18.3.0':
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
- '@types/react-is@18.2.4':
- resolution: {integrity: sha512-wBc7HgmbCcrvw0fZjxbgz/xrrlZKzEqmABBMeSvpTvdm25u6KI6xdIi9pRE2G0C1Lw5ETFdcn4UbYZ4/rpqUYw==}
+ '@types/react-is@18.3.0':
+ resolution: {integrity: sha512-KZJpHUkAdzyKj/kUHJDc6N7KyidftICufJfOFpiG6haL/BDQNQt5i4n1XDUL/nDZAtGLHDSWRYpLzKTAKSvX6w==}
'@types/react-transition-group@4.4.10':
resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==}
@@ -7130,10 +7130,10 @@ packages:
engines: {node: '>=8.10.0'}
hasBin: true
- react-dom@18.2.0:
- resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
- react: ^18.2.0
+ react: ^18.3.1
react-draggable@4.4.6:
resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==}
@@ -7181,8 +7181,8 @@ packages:
react: '>=16.6.0'
react-dom: '>=16.6.0'
- react@18.2.0:
- resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
read-cache@1.0.0:
@@ -7432,8 +7432,8 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
- scheduler@0.23.0:
- resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
schema-utils@3.3.0:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
@@ -9557,7 +9557,7 @@ snapshots:
'@docsearch/css@3.6.1': {}
- '@docsearch/react@3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.13.0)':
+ '@docsearch/react@3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)':
dependencies:
'@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.2)(algoliasearch@4.23.2)(search-insights@2.13.0)
'@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.2)(algoliasearch@4.23.2)
@@ -9565,8 +9565,8 @@ snapshots:
algoliasearch: 4.23.2
optionalDependencies:
'@types/react': 18.3.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
search-insights: 2.13.0
transitivePeerDependencies:
- '@algolia/client-search'
@@ -9610,17 +9610,17 @@ snapshots:
'@emotion/memoize@0.8.1': {}
- '@emotion/react@11.11.4(@types/react@18.3.1)(react@18.2.0)':
+ '@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@emotion/babel-plugin': 11.11.0
'@emotion/cache': 11.11.0
'@emotion/serialize': 1.1.4
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
+ '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
'@emotion/utils': 1.2.1
'@emotion/weak-memoize': 0.3.1
hoist-non-react-statics: 3.3.2
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
transitivePeerDependencies:
@@ -9643,16 +9643,16 @@ snapshots:
'@emotion/sheet@1.2.2': {}
- '@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)':
+ '@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
'@emotion/serialize': 1.1.4
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
+ '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
'@emotion/utils': 1.2.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
transitivePeerDependencies:
@@ -9660,9 +9660,9 @@ snapshots:
'@emotion/unitless@0.8.1': {}
- '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)':
+ '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)':
dependencies:
- react: 18.2.0
+ react: 18.3.1
'@emotion/utils@1.2.1': {}
@@ -9769,18 +9769,18 @@ snapshots:
'@floating-ui/core': 1.6.3
'@floating-ui/utils': 0.2.5
- '@floating-ui/react-dom@2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/dom': 1.6.6
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
- '@floating-ui/react@0.26.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@floating-ui/react@0.26.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@floating-ui/utils': 0.2.5
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
tabbable: 6.2.0
'@floating-ui/utils@0.2.5': {}
@@ -10032,31 +10032,31 @@ snapshots:
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
- '@mui/base@5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@mui/base@5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
'@popperjs/core': 2.11.8
clsx: 2.1.1
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.1
- '@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@mui/base@5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.0(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 6.0.0-beta.0(@types/react@18.3.1)(react@18.3.1)
'@popperjs/core': 2.11.8
clsx: 2.1.1
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.1
@@ -10064,37 +10064,37 @@ snapshots:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {}
- '@mui/docs@6.0.0-beta.2(zofz3nxyhvt4ajdv3dpnpcd7gm)':
+ '@mui/docs@6.0.0-beta.2(ggmzxrcvcmdis7luqgwn7ko5o4)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/base': 5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- '@mui/icons-material': 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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.53(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mui/icons-material': 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/internal-markdown': 1.0.8
- '@mui/material': 6.0.0-beta.2(@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-beta.1(@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-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mui/system': 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
chai: 4.4.1
clipboard-copy: 4.0.1
clsx: 2.1.1
- next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
nprogress: 0.2.0
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@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-beta.2(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/material': 6.0.0-beta.2(@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
+ '@mui/material': 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0))':
+ '@mui/internal-babel-macros@1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.3.1))':
dependencies:
'@babel/helper-module-imports': 7.24.7
'@babel/runtime': 7.25.0
- '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
babel-plugin-macros: 3.1.0
transitivePeerDependencies:
- supports-color
@@ -10126,16 +10126,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@mui/internal-test-utils@1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@mui/internal-test-utils@1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
'@babel/register': 7.24.6(@babel/core@7.25.2)
'@babel/runtime': 7.25.0
'@emotion/cache': 11.11.0
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.2.0)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
'@testing-library/dom': 10.3.1
- '@testing-library/react': 16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@testing-library/react': 16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@testing-library/user-event': 14.5.2(@testing-library/dom@10.3.1)
chai: 4.4.1
chai-dom: 1.12.0(chai@4.4.1)
@@ -10147,8 +10147,8 @@ snapshots:
mocha: 10.6.0
playwright: 1.45.3
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
sinon: 16.1.3
transitivePeerDependencies:
- '@babel/core'
@@ -10159,53 +10159,53 @@ snapshots:
- supports-color
- utf-8-validate
- '@mui/joy@5.0.0-beta.48(@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.48(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/base': 5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@mui/base': 5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/core-downloads-tracker': 5.16.1
- '@mui/system': 5.16.1(@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': 5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
- '@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
- '@mui/material-nextjs@6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@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.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/material': 6.0.0-beta.2(@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.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(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': 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
optionalDependencies:
'@emotion/cache': 11.11.0
'@emotion/server': 11.11.0
'@types/react': 18.3.1
- '@mui/material@6.0.0-beta.2(@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-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d
- '@mui/system': 6.0.0-beta.1(@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-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
'@popperjs/core': 2.11.8
'@types/react-transition-group': 4.4.10
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
react-is: 18.3.1
- react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
optionalDependencies:
- '@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
'@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/18056e14de623cab995db4bc01c879467aeb273e(encoding@0.1.13)':
@@ -10222,53 +10222,53 @@ snapshots:
- supports-color
- utf-8-validate
- '@mui/private-theming@5.16.1(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/private-theming@5.16.1(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/private-theming@6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/private-theming@6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/styled-engine@5.16.1(@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@5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@emotion/cache': 11.11.0
csstype: 3.1.3
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
- '@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
- '@mui/styled-engine@6.0.0-beta.1(@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-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@emotion/cache': 11.11.0
csstype: 3.1.3
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
- '@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
- '@mui/styles@6.0.0-beta.2(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/styles@6.0.0-beta.2(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@emotion/hash': 0.9.1
- '@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ '@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
csstype: 3.1.3
hoist-non-react-statics: 3.3.2
@@ -10281,75 +10281,75 @@ snapshots:
jss-plugin-rule-value-function: 10.10.0
jss-plugin-vendor-prefixer: 10.10.0
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/system@5.16.1(@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@5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/private-theming': 5.16.1(@types/react@18.3.1)(react@18.2.0)
- '@mui/styled-engine': 5.16.1(@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': 5.16.1(@types/react@18.3.1)(react@18.3.1)
+ '@mui/styled-engine': 5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
- '@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
- '@mui/system@6.0.0-beta.1(@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-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
- '@mui/styled-engine': 6.0.0-beta.1(@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-beta.1(@types/react@18.3.1)(react@18.3.1)
+ '@mui/styled-engine': 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)
+ '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
- '@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)
+ '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
'@mui/types@7.2.15(@types/react@18.3.1)':
optionalDependencies:
'@types/react': 18.3.1
- '@mui/utils@5.16.6(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/utils@5.16.6(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@mui/types': 7.2.15(@types/react@18.3.1)
'@types/prop-types': 15.7.12
clsx: 2.1.1
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
react-is: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/utils@6.0.0-beta.0(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/utils@6.0.0-beta.0(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@types/prop-types': 15.7.12
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
react-is: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/utils@6.0.0-beta.1(@types/react@18.3.1)(react@18.2.0)':
+ '@mui/utils@6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@types/prop-types': 15.7.12
clsx: 2.1.1
prop-types: 15.8.1
- react: 18.2.0
+ react: 18.3.1
react-is: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
@@ -10836,37 +10836,37 @@ snapshots:
'@popperjs/core@2.11.8': {}
- '@react-spring/animated@9.7.4(react@18.2.0)':
+ '@react-spring/animated@9.7.4(react@18.3.1)':
dependencies:
- '@react-spring/shared': 9.7.4(react@18.2.0)
+ '@react-spring/shared': 9.7.4(react@18.3.1)
'@react-spring/types': 9.7.4
- react: 18.2.0
+ react: 18.3.1
- '@react-spring/core@9.7.4(react@18.2.0)':
+ '@react-spring/core@9.7.4(react@18.3.1)':
dependencies:
- '@react-spring/animated': 9.7.4(react@18.2.0)
- '@react-spring/shared': 9.7.4(react@18.2.0)
+ '@react-spring/animated': 9.7.4(react@18.3.1)
+ '@react-spring/shared': 9.7.4(react@18.3.1)
'@react-spring/types': 9.7.4
- react: 18.2.0
+ react: 18.3.1
'@react-spring/rafz@9.7.4': {}
- '@react-spring/shared@9.7.4(react@18.2.0)':
+ '@react-spring/shared@9.7.4(react@18.3.1)':
dependencies:
'@react-spring/rafz': 9.7.4
'@react-spring/types': 9.7.4
- react: 18.2.0
+ react: 18.3.1
'@react-spring/types@9.7.4': {}
- '@react-spring/web@9.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@react-spring/web@9.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@react-spring/animated': 9.7.4(react@18.2.0)
- '@react-spring/core': 9.7.4(react@18.2.0)
- '@react-spring/shared': 9.7.4(react@18.2.0)
+ '@react-spring/animated': 9.7.4(react@18.3.1)
+ '@react-spring/core': 9.7.4(react@18.3.1)
+ '@react-spring/shared': 9.7.4(react@18.3.1)
'@react-spring/types': 9.7.4
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
'@remix-run/router@1.16.1': {}
@@ -11029,22 +11029,22 @@ snapshots:
lz-string: 1.5.0
pretty-format: 27.5.1
- '@testing-library/react@15.0.7(@types/react@18.3.1)(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.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@testing-library/dom': 10.3.1
'@types/react-dom': 18.3.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.1
- '@testing-library/react@16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@testing-library/react@16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@testing-library/dom': 10.3.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.1
'@types/react-dom': 18.3.0
@@ -11176,7 +11176,7 @@ snapshots:
dependencies:
'@types/react': 18.3.1
- '@types/react-is@18.2.4':
+ '@types/react-is@18.3.0':
dependencies:
'@types/react': 18.3.1
@@ -13515,13 +13515,13 @@ snapshots:
fraction.js@4.3.7: {}
- 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):
+ framer-motion@11.2.10(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
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)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
fresh@0.5.2: {}
@@ -15257,7 +15257,7 @@ snapshots:
nested-error-stacks@2.1.1: {}
- next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@next/env': 14.2.5
'@swc/helpers': 0.5.5
@@ -15265,9 +15265,9 @@ snapshots:
caniuse-lite: 1.0.30001646
graceful-fs: 4.2.11
postcss: 8.4.31
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ styled-jsx: 5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.3.1)
optionalDependencies:
'@next/swc-darwin-arm64': 14.2.5
'@next/swc-darwin-x64': 14.2.5
@@ -16170,18 +16170,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
- react-dom@18.2.0(react@18.2.0):
+ react-dom@18.3.1(react@18.3.1):
dependencies:
loose-envify: 1.4.0
- react: 18.2.0
- scheduler: 0.23.0
+ react: 18.3.1
+ scheduler: 0.23.2
- react-draggable@4.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ react-draggable@4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
clsx: 1.2.1
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
react-is@16.13.1: {}
@@ -16189,39 +16189,39 @@ snapshots:
react-is@18.3.1: {}
- react-router-dom@6.23.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ react-router-dom@6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@remix-run/router': 1.16.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-router: 6.23.1(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-router: 6.23.1(react@18.3.1)
- react-router@6.23.1(react@18.2.0):
+ react-router@6.23.1(react@18.3.1):
dependencies:
'@remix-run/router': 1.16.1
- react: 18.2.0
+ react: 18.3.1
- react-runner@1.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ react-runner@1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
sucrase: 3.35.0
- react-simple-code-editor@0.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ react-simple-code-editor@0.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
- react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.25.0
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
- react@18.2.0:
+ react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -16503,7 +16503,7 @@ snapshots:
dependencies:
xmlchars: 2.2.0
- scheduler@0.23.0:
+ scheduler@0.23.2:
dependencies:
loose-envify: 1.4.0
@@ -16929,7 +16929,7 @@ snapshots:
minimist: 1.2.8
through: 2.3.8
- styled-components@6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ styled-components@6.1.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@emotion/is-prop-valid': 1.2.2
'@emotion/unitless': 0.8.1
@@ -16937,16 +16937,16 @@ snapshots:
css-to-react-native: 3.2.0
csstype: 3.1.3
postcss: 8.4.38
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
shallowequal: 1.1.0
stylis: 4.3.2
tslib: 2.6.2
- styled-jsx@5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.2.0):
+ styled-jsx@5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.3.1):
dependencies:
client-only: 0.0.1
- react: 18.2.0
+ react: 18.3.1
optionalDependencies:
'@babel/core': 7.25.2
babel-plugin-macros: 3.1.0
diff --git a/renovate.json b/renovate.json
index 1febf49534..6f39e97826 100644
--- a/renovate.json
+++ b/renovate.json
@@ -68,7 +68,14 @@
},
{
"groupName": "React",
- "matchPackageNames": ["react", "react-dom", "react-is", "@types/react", "@types/react-dom"]
+ "matchPackageNames": [
+ "react",
+ "react-dom",
+ "react-is",
+ "@types/react",
+ "@types/react-dom",
+ "@types/react-is"
+ ]
},
{
"groupName": "typescript-eslint",
diff --git a/test/package.json b/test/package.json
index 383ad1cea3..47f143c830 100644
--- a/test/package.json
+++ b/test/package.json
@@ -17,7 +17,7 @@
"@testing-library/dom": "^10.1.0",
"@types/chai": "^4.3.16",
"@types/react": "^18.3.1",
- "@types/react-is": "^18.2.4",
+ "@types/react-is": "^18.3.0",
"@types/sinon": "^17.0.3",
"chai": "^4.4.1",
"docs": "workspace:^",
@@ -28,9 +28,9 @@
"lodash": "^4.17.21",
"playwright": "^1.45.3",
"prop-types": "^15.8.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "react-is": "^18.2.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-is": "^18.3.1",
"react-router-dom": "^6.23.1",
"sinon": "^17.0.1",
"styled-components": "^6.1.12",
From e8053b788f9f99fc746d1c49889040487206a0d2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 14:33:45 +0200
Subject: [PATCH 29/34] Lock file maintenance (#390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pnpm-lock.yaml | 197 ++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 169 insertions(+), 28 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a5a63a880d..b17b04f5c9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -550,10 +550,10 @@ importers:
version: 8.56.11
'@typescript-eslint/experimental-utils':
specifier: ^5.62.0
- version: 5.62.0(eslint@8.57.0)(typescript@5.4.5)
+ version: 5.62.0(eslint@9.8.0)(typescript@5.4.5)
'@typescript-eslint/parser':
specifier: ^7.8.0
- version: 7.8.0(eslint@8.57.0)(typescript@5.4.5)
+ version: 7.8.0(eslint@9.8.0)(typescript@5.4.5)
packages/mui-base:
dependencies:
@@ -1752,18 +1752,34 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- '@eslint-community/regexpp@4.10.0':
- resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
+ '@eslint-community/regexpp@4.11.0':
+ resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ '@eslint/config-array@0.17.1':
+ resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@eslint/eslintrc@2.1.4':
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/eslintrc@3.1.0':
+ resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@eslint/js@8.57.0':
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/js@9.8.0':
+ resolution: {integrity: sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@floating-ui/core@1.6.3':
resolution: {integrity: sha512-1ZpCvYf788/ZXOhRQGFxnYQOVgeU+pi0i+d0Ow34La7qjIXETi6RNswGVKkA6KcDO8/+Ysu2E/CeUmmeEBDvTg==}
@@ -1814,6 +1830,10 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
+ '@humanwhocodes/retry@0.3.0':
+ resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
+ engines: {node: '>=18.18'}
+
'@hutson/parse-repository-url@3.0.2':
resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
engines: {node: '>=6.9.0'}
@@ -3168,8 +3188,8 @@ packages:
resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
engines: {node: '>=0.4.0'}
- acorn@8.11.3:
- resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ acorn@8.12.1:
+ resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -4520,6 +4540,10 @@ packages:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-scope@8.0.2:
+ resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint-utils@3.0.0:
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
@@ -4534,11 +4558,24 @@ packages:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-visitor-keys@4.0.0:
+ resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint@8.57.0:
resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
+ eslint@9.8.0:
+ resolution: {integrity: sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+
+ espree@10.1.0:
+ resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -4995,6 +5032,10 @@ packages:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
globalthis@1.0.3:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'}
@@ -9742,7 +9783,20 @@ snapshots:
eslint: 8.57.0
eslint-visitor-keys: 3.4.3
- '@eslint-community/regexpp@4.10.0': {}
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.8.0)':
+ dependencies:
+ eslint: 9.8.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.11.0': {}
+
+ '@eslint/config-array@0.17.1':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.5(supports-color@8.1.1)
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
'@eslint/eslintrc@2.1.4':
dependencies:
@@ -9758,8 +9812,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@eslint/eslintrc@3.1.0':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.5(supports-color@8.1.1)
+ espree: 10.1.0
+ globals: 14.0.0
+ ignore: 5.3.1
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
'@eslint/js@8.57.0': {}
+ '@eslint/js@9.8.0': {}
+
+ '@eslint/object-schema@2.1.4': {}
+
'@floating-ui/core@1.6.3':
dependencies:
'@floating-ui/utils': 0.2.5
@@ -9820,6 +9892,8 @@ snapshots:
'@humanwhocodes/object-schema@2.0.3': {}
+ '@humanwhocodes/retry@0.3.0': {}
+
'@hutson/parse-repository-url@3.0.2': {}
'@img/sharp-darwin-arm64@0.33.3':
@@ -11230,7 +11304,7 @@ snapshots:
'@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
- '@eslint-community/regexpp': 4.10.0
+ '@eslint-community/regexpp': 4.11.0
'@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/scope-manager': 7.8.0
'@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
@@ -11248,10 +11322,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/experimental-utils@5.62.0(eslint@9.8.0)(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5)
- eslint: 8.57.0
+ '@typescript-eslint/utils': 5.62.0(eslint@9.8.0)(typescript@5.4.5)
+ eslint: 9.8.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -11269,6 +11343,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/parser@7.8.0(eslint@9.8.0)(typescript@5.4.5)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 7.8.0
+ '@typescript-eslint/types': 7.8.0
+ '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.8.0
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.8.0
+ optionalDependencies:
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/scope-manager@5.62.0':
dependencies:
'@typescript-eslint/types': 5.62.0
@@ -11324,15 +11411,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/utils@5.62.0(eslint@9.8.0)(typescript@5.4.5)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5)
- eslint: 8.57.0
+ eslint: 9.8.0
eslint-scope: 5.1.1
semver: 7.6.0
transitivePeerDependencies:
@@ -11485,17 +11572,17 @@ snapshots:
mime-types: 2.1.35
negotiator: 0.6.3
- acorn-import-assertions@1.9.0(acorn@8.11.3):
+ acorn-import-assertions@1.9.0(acorn@8.12.1):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.1
- acorn-jsx@5.3.2(acorn@8.11.3):
+ acorn-jsx@5.3.2(acorn@8.12.1):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.1
acorn-walk@8.3.2: {}
- acorn@8.11.3: {}
+ acorn@8.12.1: {}
add-stream@1.0.0: {}
@@ -13134,6 +13221,11 @@ snapshots:
esrecurse: 4.3.0
estraverse: 5.3.0
+ eslint-scope@8.0.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
eslint-utils@3.0.0(eslint@8.57.0):
dependencies:
eslint: 8.57.0
@@ -13143,10 +13235,12 @@ snapshots:
eslint-visitor-keys@3.4.3: {}
+ eslint-visitor-keys@4.0.0: {}
+
eslint@8.57.0:
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@eslint-community/regexpp': 4.10.0
+ '@eslint-community/regexpp': 4.11.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.57.0
'@humanwhocodes/config-array': 0.11.14
@@ -13186,10 +13280,55 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ eslint@9.8.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0)
+ '@eslint-community/regexpp': 4.11.0
+ '@eslint/config-array': 0.17.1
+ '@eslint/eslintrc': 3.1.0
+ '@eslint/js': 9.8.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.3.0
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.5(supports-color@8.1.1)
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.0.2
+ eslint-visitor-keys: 4.0.0
+ espree: 10.1.0
+ esquery: 1.5.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.1
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.3
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.1.0:
+ dependencies:
+ acorn: 8.12.1
+ acorn-jsx: 5.3.2(acorn@8.12.1)
+ eslint-visitor-keys: 4.0.0
+
espree@9.6.1:
dependencies:
- acorn: 8.11.3
- acorn-jsx: 5.3.2(acorn@8.11.3)
+ acorn: 8.12.1
+ acorn-jsx: 5.3.2(acorn@8.12.1)
eslint-visitor-keys: 3.4.3
esprima@4.0.1: {}
@@ -13742,6 +13881,8 @@ snapshots:
dependencies:
type-fest: 0.20.2
+ globals@14.0.0: {}
+
globalthis@1.0.3:
dependencies:
define-properties: 1.2.1
@@ -17137,7 +17278,7 @@ snapshots:
terser@5.31.0:
dependencies:
'@jridgewell/source-map': 0.3.6
- acorn: 8.11.3
+ acorn: 8.12.1
commander: 2.20.3
source-map-support: 0.5.21
@@ -17499,7 +17640,7 @@ snapshots:
webpack-bundle-analyzer@4.10.2:
dependencies:
'@discoveryjs/json-ext': 0.5.7
- acorn: 8.11.3
+ acorn: 8.12.1
acorn-walk: 8.3.2
commander: 7.2.0
debounce: 1.2.1
@@ -17552,8 +17693,8 @@ snapshots:
'@webassemblyjs/ast': 1.12.1
'@webassemblyjs/wasm-edit': 1.12.1
'@webassemblyjs/wasm-parser': 1.12.1
- acorn: 8.11.3
- acorn-import-assertions: 1.9.0(acorn@8.11.3)
+ acorn: 8.12.1
+ acorn-import-assertions: 1.9.0(acorn@8.12.1)
browserslist: 4.23.2
chrome-trace-event: 1.0.3
enhanced-resolve: 5.16.0
@@ -17585,8 +17726,8 @@ snapshots:
'@webassemblyjs/ast': 1.12.1
'@webassemblyjs/wasm-edit': 1.12.1
'@webassemblyjs/wasm-parser': 1.12.1
- acorn: 8.11.3
- acorn-import-assertions: 1.9.0(acorn@8.11.3)
+ acorn: 8.12.1
+ acorn-import-assertions: 1.9.0(acorn@8.12.1)
browserslist: 4.23.2
chrome-trace-event: 1.0.3
enhanced-resolve: 5.16.0
From f6effde82ae560ba0f90899d7700c139488663dd Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 12:54:09 +0000
Subject: [PATCH 30/34] Bump MUI (#493)
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/.link-check-errors.txt | 6 +
docs/package.json | 18 +-
package.json | 10 +-
packages/mui-base/package.json | 2 +-
pnpm-lock.yaml | 399 +++++++++++++++++----------------
test/package.json | 4 +-
6 files changed, 229 insertions(+), 210 deletions(-)
diff --git a/docs/.link-check-errors.txt b/docs/.link-check-errors.txt
index 0b8d083f4a..1d822a9dde 100644
--- a/docs/.link-check-errors.txt
+++ b/docs/.link-check-errors.txt
@@ -1,2 +1,8 @@
Broken links found by `pnpm docs:link-check` that exist:
+- https://mui.com/material-ui/customization/css-theme-variables/configuration/#advanced-configuration
+- https://mui.com/material-ui/customization/css-theme-variables/configuration/#changing-variable-prefixes
+- https://mui.com/material-ui/customization/theme-components/#creating-new-component-variants
+- https://mui.com/material-ui/customization/theme-components/#overrides-based-on-props
+- https://mui.com/material-ui/migrating-to-v6/
+- https://mui.com/material-ui/react-grid2/#whats-changed
diff --git a/docs/package.json b/docs/package.json
index 710a1d8a46..f9ced48539 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-beta.2",
- "@mui/icons-material": "6.0.0-beta.2",
+ "@mui/docs": "6.0.0-beta.4",
+ "@mui/icons-material": "6.0.0-beta.4",
"@mui/internal-markdown": "^1.0.8",
- "@mui/internal-scripts": "^1.0.13",
+ "@mui/internal-scripts": "^1.0.14",
"@mui/joy": "5.0.0-beta.48",
- "@mui/material": "6.0.0-beta.2",
- "@mui/material-nextjs": "6.0.0-alpha.14",
- "@mui/styles": "6.0.0-beta.2",
- "@mui/system": "6.0.0-beta.1",
+ "@mui/material": "6.0.0-beta.4",
+ "@mui/material-nextjs": "6.0.0-beta.4",
+ "@mui/styles": "6.0.0-beta.4",
+ "@mui/system": "6.0.0-beta.4",
"@mui/types": "7.2.15",
- "@mui/utils": "6.0.0-beta.1",
+ "@mui/utils": "6.0.0-beta.4",
"@react-spring/web": "^9.7.4",
"autoprefixer": "^10.4.19",
"autosuggest-highlight": "^3.3.4",
@@ -76,7 +76,7 @@
"@babel/plugin-transform-react-constant-elements": "^7.25.1",
"@babel/preset-typescript": "^7.24.7",
"@mui/internal-docs-utils": "^1.0.8",
- "@mui/internal-test-utils": "1.0.5",
+ "@mui/internal-test-utils": "1.0.6",
"@types/autosuggest-highlight": "^3.2.3",
"@types/chai": "^4.3.16",
"@types/node": "^18.19.42",
diff --git a/package.json b/package.json
index 6442df8a9e..1d69b148b6 100644
--- a/package.json
+++ b/package.json
@@ -78,11 +78,11 @@
"@babel/register": "^7.24.6",
"@mui/internal-docs-utils": "^1.0.8",
"@mui/internal-markdown": "^1.0.8",
- "@mui/internal-scripts": "^1.0.13",
- "@mui/internal-test-utils": "1.0.5",
- "@mui/material": "6.0.0-beta.2",
- "@mui/monorepo": "github:mui/material-ui#v6.0.0-beta.2",
- "@mui/utils": "6.0.0-beta.1",
+ "@mui/internal-scripts": "^1.0.14",
+ "@mui/internal-test-utils": "1.0.6",
+ "@mui/material": "6.0.0-beta.4",
+ "@mui/monorepo": "github:mui/material-ui#v6.0.0-beta.4",
+ "@mui/utils": "6.0.0-beta.4",
"@next/eslint-plugin-next": "^14.2.5",
"@octokit/rest": "^20.1.1",
"@playwright/test": "1.45.3",
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index 2d69924dc0..ab08b27b90 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -49,7 +49,7 @@
},
"devDependencies": {
"@mui/internal-babel-macros": "^1.0.1",
- "@mui/internal-test-utils": "1.0.5",
+ "@mui/internal-test-utils": "1.0.6",
"@testing-library/react": "^15.0.7",
"@testing-library/user-event": "^14.5.2",
"@types/chai": "^4.3.16",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b17b04f5c9..98a88e1849 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -62,20 +62,20 @@ importers:
specifier: ^1.0.8
version: 1.0.8
'@mui/internal-scripts':
- specifier: ^1.0.13
- version: 1.0.13
+ specifier: ^1.0.14
+ version: 1.0.14
'@mui/internal-test-utils':
- specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 1.0.6
+ version: 1.0.6(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material':
- specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/monorepo':
- specifier: github:mui/material-ui#v6.0.0-beta.2
- version: https://codeload.github.com/mui/material-ui/tar.gz/18056e14de623cab995db4bc01c879467aeb273e(encoding@0.1.13)
+ specifier: github:mui/material-ui#v6.0.0-beta.4
+ version: https://codeload.github.com/mui/material-ui/tar.gz/4f0c10d0b40327e672bdb28ca05651d037b47a08(encoding@0.1.13)
'@mui/utils':
- specifier: 6.0.0-beta.1
- version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
'@next/eslint-plugin-next':
specifier: ^14.2.5
version: 14.2.5
@@ -330,49 +330,49 @@ importers:
version: 3.6.1(@algolia/client-search@4.23.2)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)
'@emotion/cache':
specifier: ^11.11.0
- version: 11.11.0
+ version: 11.13.1
'@emotion/react':
specifier: ^11.11.4
- version: 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ version: 11.13.0(@types/react@18.3.1)(react@18.3.1)
'@emotion/server':
specifier: ^11.11.0
version: 11.11.0
'@emotion/styled':
specifier: ^11.11.5
- version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ version: 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/docs':
- specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(ggmzxrcvcmdis7luqgwn7ko5o4)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(vunuo4wz5aeoo5x5zjit7veshq)
'@mui/icons-material':
- specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@mui/material@6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/internal-markdown':
specifier: ^1.0.8
version: 1.0.8
'@mui/internal-scripts':
- specifier: ^1.0.13
- version: 1.0.13
+ specifier: ^1.0.14
+ version: 1.0.14
'@mui/joy':
specifier: 5.0.0-beta.48
- version: 5.0.0-beta.48(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.0.0-beta.48(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material':
- specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material-nextjs':
- specifier: 6.0.0-alpha.14
- version: 6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@emotion/cache@11.13.1)(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
'@mui/styles':
- specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@types/react@18.3.1)(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
'@mui/system':
- specifier: 6.0.0-beta.1
- version: 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/types':
specifier: 7.2.15
version: 7.2.15(@types/react@18.3.1)
'@mui/utils':
- specifier: 6.0.0-beta.1
- version: 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
'@react-spring/web':
specifier: ^9.7.4
version: 9.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -492,8 +492,8 @@ importers:
specifier: ^1.0.8
version: 1.0.8
'@mui/internal-test-utils':
- specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 1.0.6
+ version: 1.0.6(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/autosuggest-highlight':
specifier: ^3.2.3
version: 3.2.3
@@ -586,14 +586,14 @@ importers:
specifier: ^1.0.1
version: 1.0.1(@mui/utils@5.16.6(@types/react@18.3.1)(react@18.3.1))
'@mui/internal-test-utils':
- specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 1.0.6
+ version: 1.0.6(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@testing-library/react':
specifier: ^15.0.7
version: 15.0.7(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@testing-library/user-event':
specifier: ^14.5.2
- version: 14.5.2(@testing-library/dom@10.3.1)
+ version: 14.5.2(@testing-library/dom@10.4.0)
'@types/chai':
specifier: ^4.3.16
version: 4.3.16
@@ -645,25 +645,25 @@ importers:
version: link:../packages/mui-base/build
'@emotion/cache':
specifier: ^11.11.0
- version: 11.11.0
+ version: 11.13.1
'@emotion/react':
specifier: ^11.11.4
- version: 11.11.4(@types/react@18.3.1)(react@18.3.1)
+ version: 11.13.0(@types/react@18.3.1)(react@18.3.1)
'@mui/internal-test-utils':
- specifier: 1.0.5
- version: 1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 1.0.6
+ version: 1.0.6(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/joy':
specifier: 5.0.0-beta.48
- version: 5.0.0-beta.48(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.0.0-beta.48(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/material':
- specifier: 6.0.0-beta.2
- version: 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 6.0.0-beta.4
+ version: 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@playwright/test':
specifier: 1.45.3
version: 1.45.3
'@testing-library/dom':
specifier: ^10.1.0
- version: 10.3.1
+ version: 10.4.0
'@types/chai':
specifier: ^4.3.16
version: 4.3.16
@@ -1546,14 +1546,14 @@ packages:
'@emnapi/runtime@1.1.1':
resolution: {integrity: sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==}
- '@emotion/babel-plugin@11.11.0':
- resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==}
+ '@emotion/babel-plugin@11.12.0':
+ resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==}
- '@emotion/cache@11.11.0':
- resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==}
+ '@emotion/cache@11.13.1':
+ resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==}
- '@emotion/hash@0.9.1':
- resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==}
+ '@emotion/hash@0.9.2':
+ resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
'@emotion/is-prop-valid@1.2.2':
resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==}
@@ -1561,8 +1561,11 @@ packages:
'@emotion/memoize@0.8.1':
resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==}
- '@emotion/react@11.11.4':
- resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==}
+ '@emotion/memoize@0.9.0':
+ resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==}
+
+ '@emotion/react@11.13.0':
+ resolution: {integrity: sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==}
peerDependencies:
'@types/react': '*'
react: '>=16.8.0'
@@ -1570,8 +1573,8 @@ packages:
'@types/react':
optional: true
- '@emotion/serialize@1.1.4':
- resolution: {integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==}
+ '@emotion/serialize@1.3.0':
+ resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==}
'@emotion/server@11.11.0':
resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==}
@@ -1581,8 +1584,8 @@ packages:
'@emotion/css':
optional: true
- '@emotion/sheet@1.2.2':
- resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==}
+ '@emotion/sheet@1.4.0':
+ resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==}
'@emotion/styled@11.11.5':
resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==}
@@ -1597,16 +1600,19 @@ packages:
'@emotion/unitless@0.8.1':
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
- '@emotion/use-insertion-effect-with-fallbacks@1.0.1':
- resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==}
+ '@emotion/unitless@0.9.0':
+ resolution: {integrity: sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.1.0':
+ resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==}
peerDependencies:
react: '>=16.8.0'
- '@emotion/utils@1.2.1':
- resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==}
+ '@emotion/utils@1.4.0':
+ resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==}
- '@emotion/weak-memoize@0.3.1':
- resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==}
+ '@emotion/weak-memoize@0.4.0':
+ resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==}
'@esbuild/aix-ppc64@0.20.2':
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
@@ -2028,9 +2034,9 @@ packages:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d':
resolution: {integrity: sha512-doh3M3U7HUGSBIWGe1yvesSbfDguMRjP0N09ogWSBM2hovXAlgULhMgcRTepAZLLwfRxFII0bCohq6B9NqoKuw==}
- '@mui/docs@6.0.0-beta.2':
- resolution: {integrity: sha512-VLSVlYs09wVyhxrjIEMoyHcJV60mMePjszbzOcGImbRgCdaSw1cwCTzntmB09dRkaDsMhRul1I+poFyQu0nCAA==}
- engines: {node: '>=12.0.0'}
+ '@mui/docs@6.0.0-beta.4':
+ resolution: {integrity: sha512-zQ/0CPWRmNBDYwLE10FrBm4wnLUCm5200ZsyqFowcHr2Utajmlsby4BIkhjlZ7/XurQr2SW67bA+VIWT+GKvDQ==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
'@mui/base': '*'
'@mui/icons-material': ^5.0.0
@@ -2038,17 +2044,18 @@ packages:
'@mui/system': ^5.0.0
'@types/react': ^18.3.1
chai: ^4.4.1
+ csstype: ^3.1.3
next: ^13.5.1 || ^14
react: ^17.0.0 || ^18.0.0
peerDependenciesMeta:
'@types/react':
optional: true
- '@mui/icons-material@6.0.0-beta.2':
- resolution: {integrity: sha512-TPY6Tnpc9Va71pRSwPvkuLZUW7n5J7ue5IH6A9juxBLcTN5Vo1AKPmx2cf7BMDGVJPkjtIzLqwmIHvGQQuvNQw==}
- engines: {node: '>=12.0.0'}
+ '@mui/icons-material@6.0.0-beta.4':
+ resolution: {integrity: sha512-04lX8JqiKEZYUO2PZSksWt6bvecCmSkBolk6XiCIjjnCX95sGUdhoGFrnIwldBwEyn5N1/M4zUeBPkn09CrFrQ==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
- '@mui/material': 6.0.0-beta.2
+ '@mui/material': 6.0.0-beta.4
'@types/react': ^18.3.1
react: ^17.0.0 || ^18.0.0
peerDependenciesMeta:
@@ -2067,11 +2074,11 @@ packages:
'@mui/internal-markdown@1.0.8':
resolution: {integrity: sha512-OU/ieH8HhRbciy3fR5i8vSU/Z4wlfE+iwEFvrqP578jBeqg7X0gvev/uvv9d+FSgRnvgmWJzCYXEPlzlI3MmFA==}
- '@mui/internal-scripts@1.0.13':
- resolution: {integrity: sha512-3g8kl1UEFK6WxoHfstWMDZCW8DimVgfRDh/j2D0CNaKbupfmfdC5e6Of9KDKXV45ATs5LaYfozAKbxMQK7xyhA==}
+ '@mui/internal-scripts@1.0.14':
+ resolution: {integrity: sha512-v2HQWzssX8l+WAZh4JpgAtnxvwi4ZEm7+spi3e/1zxTXz/k3aWlcc50lpfeAtD6TGbegN2/j0OCORfDHTDQdbQ==}
- '@mui/internal-test-utils@1.0.5':
- resolution: {integrity: sha512-5reErcYMSi+PbcuHigno150UDii4pC9TYfL9sY1YcQUtDhQMdNkByvblQZw3X0K2h5puiBYs/cnj670J1JKztA==}
+ '@mui/internal-test-utils@1.0.6':
+ resolution: {integrity: sha512-S2I9ytriELHH3kr+RNRQ9On0wRMVTNTSQagD7H6/rwoQC8BDs1J72etjamjItagEFXAyuUXX2FzWwhUTZFJHlg==}
peerDependencies:
react: ^18.2.0
react-dom: ^18.2.0
@@ -2093,13 +2100,13 @@ packages:
'@types/react':
optional: true
- '@mui/material-nextjs@6.0.0-alpha.14':
- resolution: {integrity: sha512-Ie8YwRmGGwsL9mEzYR3U7BAqYjaC52BVhtOYoVIISj8RhfGI44O3qUyUzKHi3GHhyXjGM7Ozi735qm0oVfyvNQ==}
- engines: {node: '>=12.0.0'}
+ '@mui/material-nextjs@6.0.0-beta.4':
+ resolution: {integrity: sha512-GSI/tX32T5iYtqjpbt0AbSMWvRX0yLdyCIYt8AB5HOHNYXlP7kDd+9INhReTbjdg8ZJqWeH87mxzKQ3/gbStGg==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/cache': ^11.11.0
+ '@emotion/react': ^11.11.4
'@emotion/server': ^11.11.0
- '@mui/material': 6.0.0-beta.1
'@types/react': ^18.3.1
next: ^13.0.0 || ^14.0.0
react: ^17.0.0 || ^18.0.0
@@ -2111,13 +2118,13 @@ packages:
'@types/react':
optional: true
- '@mui/material@6.0.0-beta.2':
- resolution: {integrity: sha512-2LJ+o8VY1sV7ntld1xv9jjp+kRkogPfNw+7h/OuZs546N4L7ewwVVl6RwZiXc2d9adulTCevvDOKXOZp+XexGg==}
+ '@mui/material@6.0.0-beta.4':
+ resolution: {integrity: sha512-TqETyQcwH6+3MdsZbTyJK8y41j//xeWKG9kvH4CEGeYDXConBc4TFS/2t+lf1w051Vd74/GiyGaDqlSX1Fn3dQ==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
'@emotion/styled': ^11.3.0
- '@mui/material-pigment-css': ^6.0.0-beta.1
+ '@mui/material-pigment-css': ^6.0.0-beta.4
'@types/react': ^18.3.1
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
@@ -2131,9 +2138,9 @@ packages:
'@types/react':
optional: true
- '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/18056e14de623cab995db4bc01c879467aeb273e':
- resolution: {tarball: https://codeload.github.com/mui/material-ui/tar.gz/18056e14de623cab995db4bc01c879467aeb273e}
- version: 6.0.0-beta.2
+ '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/4f0c10d0b40327e672bdb28ca05651d037b47a08':
+ resolution: {tarball: https://codeload.github.com/mui/material-ui/tar.gz/4f0c10d0b40327e672bdb28ca05651d037b47a08}
+ version: 6.0.0-beta.4
engines: {pnpm: 9.5.0}
'@mui/private-theming@5.16.1':
@@ -2146,9 +2153,9 @@ packages:
'@types/react':
optional: true
- '@mui/private-theming@6.0.0-beta.1':
- resolution: {integrity: sha512-IY4JMVmNuxeXm7yvKsMt+F+cejM0FjD1VTykjTQaYQA//JXpyphQK+oj8ML/n2NJUDkoE4O+aqW0nm/sBjyEQw==}
- engines: {node: '>=12.0.0'}
+ '@mui/private-theming@6.0.0-beta.4':
+ resolution: {integrity: sha512-mHt4NH6KD1dOc/Y9yG5xkVtKRTmo2khLiJrbgfU1BLTKD++jAoadnZihQvEubQQzw0+dcBP/5mI9Gv5udTSdiA==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
'@types/react': ^18.3.1
react: ^17.0.0 || ^18.0.0
@@ -2169,9 +2176,9 @@ packages:
'@emotion/styled':
optional: true
- '@mui/styled-engine@6.0.0-beta.1':
- resolution: {integrity: sha512-Q2Hrt0BRJ6kSq0BYjIZHwHoEwmIZAyxBf15k6Vt0kkrqMGPKqDZxpg/miO0Mh/gkfXL/C0NfUO9XYti5DOVEsA==}
- engines: {node: '>=12.0.0'}
+ '@mui/styled-engine@6.0.0-beta.4':
+ resolution: {integrity: sha512-L3twZGfmRk+qkkDZY+c8yWkYdRI0cGs5kyquqVUg1z4KZbFP/hDd2uDTpT/oZ0vJdPbwF9+INPexzkQG1KzlQg==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.4.1
'@emotion/styled': ^11.3.0
@@ -2182,9 +2189,9 @@ packages:
'@emotion/styled':
optional: true
- '@mui/styles@6.0.0-beta.2':
- resolution: {integrity: sha512-1QxqwaPVTvkUqZ5jW9COZNdyJlWtfLcCpNGKANIRsZvLoTVHrc0QwZO6aAgJl94oSHF89jv8NZx3wTqb8wQYvA==}
- engines: {node: '>=12.0.0'}
+ '@mui/styles@6.0.0-beta.4':
+ resolution: {integrity: sha512-YNN7jqgRZJFXkuVP4bjCGgt/thAOaBTPLZkEzonDdoKfU4N85yEEy/GFpwZUNTlVN5akfg9wpFWeMKxyFe8DEg==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
'@types/react': ^18.3.1
react: ^17.0.0
@@ -2208,9 +2215,9 @@ packages:
'@types/react':
optional: true
- '@mui/system@6.0.0-beta.1':
- resolution: {integrity: sha512-gqp++9yZ91gXt9b8BrI8LelrnLnIcYWR0pxVSR+3OXwepOC17gONO3w5KOCpJcR8f0irmIccNg3a5LeaLWt1KA==}
- engines: {node: '>=12.0.0'}
+ '@mui/system@6.0.0-beta.4':
+ resolution: {integrity: sha512-0tKYCXOIQILKTkU6m6gjIQ3f9gU1qBa7vZFkTiyi2t3BTGRgOHduNaddQrAZYrTYGEBypaoOeCfllmtEW+dVmQ==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
'@emotion/styled': ^11.3.0
@@ -2252,8 +2259,8 @@ packages:
'@types/react':
optional: true
- '@mui/utils@6.0.0-beta.1':
- resolution: {integrity: sha512-NpvigKbCf90GaDb57Pmiuc0SmctyKpvABxFJa0d6Clri3tW5KYoZaVUZrWtqvuLkQEl9LvrLC/rhwX8NkbCzkg==}
+ '@mui/utils@6.0.0-beta.4':
+ resolution: {integrity: sha512-tJsYnoUh0d9JeEcz70jbF9S2uLviBDgu1FNWJUDvuz31a/ClaJsGY0sodHPhamvob3XrPjzdQX2xSZ91m9Jzag==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@types/react': ^18.3.1
@@ -2771,8 +2778,8 @@ packages:
'@swc/helpers@0.5.5':
resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
- '@testing-library/dom@10.3.1':
- resolution: {integrity: sha512-q/WL+vlXMpC0uXDyfsMtc1rmotzLV8Y0gq6q1gfrrDjQeHoeLrqHbxdPvPNAh1i+xuJl7+BezywcXArz7vLqKQ==}
+ '@testing-library/dom@10.4.0':
+ resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==}
engines: {node: '>=18'}
'@testing-library/react@15.0.7':
@@ -5059,8 +5066,8 @@ packages:
globjoin@0.1.4:
resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
- google-auth-library@9.11.0:
- resolution: {integrity: sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==}
+ google-auth-library@9.13.0:
+ resolution: {integrity: sha512-p9Y03Uzp/Igcs36zAaB0XTSwZ8Y0/tpYiz5KIde5By+H9DCVUSYtDWZu6aFXsWTqENMb8BD/pDT3hR8NVrPkfA==}
engines: {node: '>=14'}
googleapis-common@7.1.0:
@@ -9619,13 +9626,13 @@ snapshots:
tslib: 2.6.2
optional: true
- '@emotion/babel-plugin@11.11.0':
+ '@emotion/babel-plugin@11.12.0':
dependencies:
'@babel/helper-module-imports': 7.24.7
'@babel/runtime': 7.25.0
- '@emotion/hash': 0.9.1
- '@emotion/memoize': 0.8.1
- '@emotion/serialize': 1.1.4
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/serialize': 1.3.0
babel-plugin-macros: 3.1.0
convert-source-map: 1.9.0
escape-string-regexp: 4.0.0
@@ -9635,15 +9642,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@emotion/cache@11.11.0':
+ '@emotion/cache@11.13.1':
dependencies:
- '@emotion/memoize': 0.8.1
- '@emotion/sheet': 1.2.2
- '@emotion/utils': 1.2.1
- '@emotion/weak-memoize': 0.3.1
+ '@emotion/memoize': 0.9.0
+ '@emotion/sheet': 1.4.0
+ '@emotion/utils': 1.4.0
+ '@emotion/weak-memoize': 0.4.0
stylis: 4.2.0
- '@emotion/hash@0.9.1': {}
+ '@emotion/hash@0.9.2': {}
'@emotion/is-prop-valid@1.2.2':
dependencies:
@@ -9651,15 +9658,17 @@ snapshots:
'@emotion/memoize@0.8.1': {}
- '@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1)':
+ '@emotion/memoize@0.9.0': {}
+
+ '@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@emotion/babel-plugin': 11.11.0
- '@emotion/cache': 11.11.0
- '@emotion/serialize': 1.1.4
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
- '@emotion/utils': 1.2.1
- '@emotion/weak-memoize': 0.3.1
+ '@emotion/babel-plugin': 11.12.0
+ '@emotion/cache': 11.13.1
+ '@emotion/serialize': 1.3.0
+ '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1)
+ '@emotion/utils': 1.4.0
+ '@emotion/weak-memoize': 0.4.0
hoist-non-react-statics: 3.3.2
react: 18.3.1
optionalDependencies:
@@ -9667,32 +9676,32 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@emotion/serialize@1.1.4':
+ '@emotion/serialize@1.3.0':
dependencies:
- '@emotion/hash': 0.9.1
- '@emotion/memoize': 0.8.1
- '@emotion/unitless': 0.8.1
- '@emotion/utils': 1.2.1
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/unitless': 0.9.0
+ '@emotion/utils': 1.4.0
csstype: 3.1.3
'@emotion/server@11.11.0':
dependencies:
- '@emotion/utils': 1.2.1
+ '@emotion/utils': 1.4.0
html-tokenize: 2.0.1
multipipe: 1.0.2
through: 2.3.8
- '@emotion/sheet@1.2.2': {}
+ '@emotion/sheet@1.4.0': {}
- '@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
+ '@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@emotion/babel-plugin': 11.11.0
+ '@emotion/babel-plugin': 11.12.0
'@emotion/is-prop-valid': 1.2.2
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/serialize': 1.1.4
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
- '@emotion/utils': 1.2.1
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/serialize': 1.3.0
+ '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1)
+ '@emotion/utils': 1.4.0
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
@@ -9701,13 +9710,15 @@ snapshots:
'@emotion/unitless@0.8.1': {}
- '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)':
+ '@emotion/unitless@0.9.0': {}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)':
dependencies:
react: 18.3.1
- '@emotion/utils@1.2.1': {}
+ '@emotion/utils@1.4.0': {}
- '@emotion/weak-memoize@0.3.1': {}
+ '@emotion/weak-memoize@0.4.0': {}
'@esbuild/aix-ppc64@0.20.2':
optional: true
@@ -10138,17 +10149,18 @@ snapshots:
'@mui/core-downloads-tracker@6.0.0-dev.240424162023-9968b4889d': {}
- '@mui/docs@6.0.0-beta.2(ggmzxrcvcmdis7luqgwn7ko5o4)':
+ '@mui/docs@6.0.0-beta.4(vunuo4wz5aeoo5x5zjit7veshq)':
dependencies:
'@babel/runtime': 7.25.0
'@mui/base': 5.0.0-beta.53(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mui/icons-material': 6.0.0-beta.2(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@mui/icons-material': 6.0.0-beta.4(@mui/material@6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/internal-markdown': 1.0.8
- '@mui/material': 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mui/system': 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@mui/material': 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mui/system': 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
chai: 4.4.1
clipboard-copy: 4.0.1
clsx: 2.1.1
+ csstype: 3.1.3
next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
nprogress: 0.2.0
prop-types: 15.8.1
@@ -10156,10 +10168,10 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/icons-material@6.0.0-beta.2(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
+ '@mui/icons-material@6.0.0-beta.4(@mui/material@6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/material': 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mui/material': 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
@@ -10185,7 +10197,7 @@ snapshots:
marked: 13.0.2
prismjs: 1.29.0
- '@mui/internal-scripts@1.0.13':
+ '@mui/internal-scripts@1.0.14':
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2)
@@ -10200,17 +10212,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@mui/internal-test-utils@1.0.5(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mui/internal-test-utils@1.0.6(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
'@babel/register': 7.24.6(@babel/core@7.25.2)
'@babel/runtime': 7.25.0
- '@emotion/cache': 11.11.0
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@testing-library/dom': 10.3.1
- '@testing-library/react': 16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@testing-library/user-event': 14.5.2(@testing-library/dom@10.3.1)
+ '@emotion/cache': 11.13.1
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@testing-library/dom': 10.4.0
+ '@testing-library/react': 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0)
chai: 4.4.1
chai-dom: 1.12.0(chai@4.4.1)
dom-accessibility-api: 0.6.3
@@ -10233,12 +10245,12 @@ snapshots:
- supports-color
- utf-8-validate
- '@mui/joy@5.0.0-beta.48(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mui/joy@5.0.0-beta.48(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@mui/base': 5.0.0-beta.40(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/core-downloads-tracker': 5.16.1
- '@mui/system': 5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@mui/system': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
'@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
@@ -10246,28 +10258,28 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
- '@mui/material-nextjs@6.0.0-alpha.14(@emotion/cache@11.11.0)(@emotion/server@11.11.0)(@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
+ '@mui/material-nextjs@6.0.0-beta.4(@emotion/cache@11.13.1)(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.1)(next@14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/material': 6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
next: 14.2.5(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.45.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
optionalDependencies:
- '@emotion/cache': 11.11.0
+ '@emotion/cache': 11.13.1
'@emotion/server': 11.11.0
'@types/react': 18.3.1
- '@mui/material@6.0.0-beta.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@mui/material@6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@mui/core-downloads-tracker': 6.0.0-dev.240424162023-9968b4889d
- '@mui/system': 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@mui/system': 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ '@mui/utils': 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
'@popperjs/core': 2.11.8
'@types/react-transition-group': 4.4.10
clsx: 2.1.1
@@ -10278,17 +10290,17 @@ snapshots:
react-is: 18.3.1
react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
optionalDependencies:
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
- '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/18056e14de623cab995db4bc01c879467aeb273e(encoding@0.1.13)':
+ '@mui/monorepo@https://codeload.github.com/mui/material-ui/tar.gz/4f0c10d0b40327e672bdb28ca05651d037b47a08(encoding@0.1.13)':
dependencies:
'@googleapis/sheets': 8.0.0(encoding@0.1.13)
'@netlify/functions': 2.8.1
'@slack/bolt': 3.19.0
execa: 9.3.0
- google-auth-library: 9.11.0(encoding@0.1.13)
+ google-auth-library: 9.13.0(encoding@0.1.13)
transitivePeerDependencies:
- bufferutil
- debug
@@ -10305,44 +10317,44 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/private-theming@6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)':
+ '@mui/private-theming@6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ '@mui/utils': 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.1
- '@mui/styled-engine@5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)':
+ '@mui/styled-engine@5.16.1(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@emotion/cache': 11.11.0
+ '@emotion/cache': 11.13.1
csstype: 3.1.3
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
- '@mui/styled-engine@6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)':
+ '@mui/styled-engine@6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@emotion/cache': 11.11.0
+ '@emotion/cache': 11.13.1
csstype: 3.1.3
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
- '@mui/styles@6.0.0-beta.2(@types/react@18.3.1)(react@18.3.1)':
+ '@mui/styles@6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@emotion/hash': 0.9.1
- '@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/hash': 0.9.2
+ '@mui/private-theming': 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ '@mui/utils': 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
csstype: 3.1.3
hoist-non-react-statics: 3.3.2
@@ -10359,11 +10371,11 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/system@5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
+ '@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
'@mui/private-theming': 5.16.1(@types/react@18.3.1)(react@18.3.1)
- '@mui/styled-engine': 5.16.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)
+ '@mui/styled-engine': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
'@mui/utils': 5.16.6(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
@@ -10371,24 +10383,24 @@ snapshots:
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
- '@mui/system@6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
+ '@mui/system@6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@mui/private-theming': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
- '@mui/styled-engine': 6.0.0-beta.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)
+ '@mui/private-theming': 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
+ '@mui/styled-engine': 6.0.0-beta.4(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.15(@types/react@18.3.1)
- '@mui/utils': 6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)
+ '@mui/utils': 6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
- '@emotion/react': 11.11.4(@types/react@18.3.1)(react@18.3.1)
- '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/react': 11.13.0(@types/react@18.3.1)(react@18.3.1)
+ '@emotion/styled': 11.11.5(@emotion/react@11.13.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)
'@types/react': 18.3.1
'@mui/types@7.2.15(@types/react@18.3.1)':
@@ -10417,9 +10429,10 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.1
- '@mui/utils@6.0.0-beta.1(@types/react@18.3.1)(react@18.3.1)':
+ '@mui/utils@6.0.0-beta.4(@types/react@18.3.1)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
+ '@mui/types': 7.2.15(@types/react@18.3.1)
'@types/prop-types': 15.7.12
clsx: 2.1.1
prop-types: 15.8.1
@@ -11092,7 +11105,7 @@ snapshots:
'@swc/counter': 0.1.3
tslib: 2.6.2
- '@testing-library/dom@10.3.1':
+ '@testing-library/dom@10.4.0':
dependencies:
'@babel/code-frame': 7.24.7
'@babel/runtime': 7.25.0
@@ -11106,26 +11119,26 @@ snapshots:
'@testing-library/react@15.0.7(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@testing-library/dom': 10.3.1
+ '@testing-library/dom': 10.4.0
'@types/react-dom': 18.3.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.1
- '@testing-library/react@16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@testing-library/react@16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
- '@testing-library/dom': 10.3.1
+ '@testing-library/dom': 10.4.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.1
'@types/react-dom': 18.3.0
- '@testing-library/user-event@14.5.2(@testing-library/dom@10.3.1)':
+ '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)':
dependencies:
- '@testing-library/dom': 10.3.1
+ '@testing-library/dom': 10.4.0
'@tootallnate/once@2.0.0': {}
@@ -13924,7 +13937,7 @@ snapshots:
globjoin@0.1.4: {}
- google-auth-library@9.11.0(encoding@0.1.13):
+ google-auth-library@9.13.0(encoding@0.1.13):
dependencies:
base64-js: 1.5.1
ecdsa-sig-formatter: 1.0.11
@@ -13940,7 +13953,7 @@ snapshots:
dependencies:
extend: 3.0.2
gaxios: 6.5.0(encoding@0.1.13)
- google-auth-library: 9.11.0(encoding@0.1.13)
+ google-auth-library: 9.13.0(encoding@0.1.13)
qs: 6.12.1
url-template: 2.0.8
uuid: 9.0.1
diff --git a/test/package.json b/test/package.json
index 47f143c830..d2b5d11e28 100644
--- a/test/package.json
+++ b/test/package.json
@@ -10,9 +10,9 @@
"@base_ui/react": "workspace:*",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
- "@mui/internal-test-utils": "1.0.5",
+ "@mui/internal-test-utils": "1.0.6",
"@mui/joy": "5.0.0-beta.48",
- "@mui/material": "6.0.0-beta.2",
+ "@mui/material": "6.0.0-beta.4",
"@playwright/test": "1.45.3",
"@testing-library/dom": "^10.1.0",
"@types/chai": "^4.3.16",
From a71c0993ef9f1f70e1e6c3a10804c30013897993 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Dudak?=
Date: Fri, 2 Aug 2024 13:54:26 +0200
Subject: [PATCH 31/34] [Menu] Overhaul the component API (#468)
---
.eslintrc.js | 2 +
.../menu/MenuIntroduction/css/index.js | 174 +++++
.../menu/MenuIntroduction/css/index.tsx | 174 +++++
.../menu/MenuIntroduction/system/index.js | 185 +++++
.../menu/MenuIntroduction/system/index.tsx | 185 +++++
.../MenuIntroduction/system/index.tsx.preview | 13 +
.../menu/MenuIntroduction/tailwind/index.js | 75 ++
.../menu/MenuIntroduction/tailwind/index.tsx | 81 ++
.../tailwind/index.tsx.preview | 12 +
docs/data/base/components/menu/NestedMenu.js | 261 +++++++
docs/data/base/components/menu/NestedMenu.tsx | 261 +++++++
docs/data/base/components/menu/menu.md | 353 ++++++++-
.../accessibility/KeyboardNavigation.js | 54 +-
.../accessibility/KeyboardNavigation.tsx | 54 +-
docs/data/base/pages.ts | 2 +-
docs/data/base/pagesApi.js | 30 +-
docs/pages/base-ui/api/dropdown.json | 17 -
docs/pages/base-ui/api/menu-arrow.json | 18 +
docs/pages/base-ui/api/menu-button.json | 27 -
docs/pages/base-ui/api/menu-item.json | 20 +-
docs/pages/base-ui/api/menu-popup.json | 18 +
docs/pages/base-ui/api/menu-positioner.json | 64 ++
docs/pages/base-ui/api/menu-root.json | 31 +
docs/pages/base-ui/api/menu-trigger.json | 20 +
docs/pages/base-ui/api/menu.json | 34 -
docs/pages/base-ui/api/submenu-trigger.json | 17 +
docs/pages/base-ui/api/use-dropdown.json | 8 -
docs/pages/base-ui/api/use-menu-arrow.json | 8 +
docs/pages/base-ui/api/use-menu-button.json | 8 -
.../api/use-menu-item-context-stabilizer.json | 8 -
docs/pages/base-ui/api/use-menu-item.json | 6 +-
docs/pages/base-ui/api/use-menu-popup.json | 8 +
.../base-ui/api/use-menu-positioner.json | 8 +
docs/pages/base-ui/api/use-menu-root.json | 8 +
docs/pages/base-ui/api/use-menu-trigger.json | 8 +
docs/pages/base-ui/api/use-menu.json | 8 -
.../base-ui/api/use-submenu-trigger.json | 8 +
.../base-ui/react-menu/[docsTab]/index.js | 112 ++-
.../api-docs/dropdown/dropdown.json | 13 -
.../api-docs/menu-arrow/menu-arrow.json | 13 +
.../api-docs/menu-item/menu-item.json | 12 +-
.../api-docs/menu-popup/menu-popup.json | 11 +
.../menu-positioner/menu-positioner.json | 43 ++
.../api-docs/menu-root/menu-root.json | 31 +
.../menu-trigger.json} | 9 +-
docs/translations/api-docs/menu/menu.json | 17 -
.../submenu-trigger/submenu-trigger.json | 17 +
.../use-menu-arrow.json} | 0
.../use-menu-item-context-stabilizer.json | 5 -
.../use-menu-popup.json} | 0
.../use-menu-positioner.json} | 0
.../api-docs/use-menu-root/use-menu-root.json | 1 +
.../use-menu-trigger/use-menu-trigger.json | 1 +
.../use-submenu-trigger.json | 1 +
docs/translations/translations.json | 1 +
.../src/Menu/Arrow/MenuArrow.test.tsx | 21 +
.../mui-base/src/Menu/Arrow/MenuArrow.tsx | 104 +++
.../mui-base/src/Menu/Arrow/useMenuArrow.ts | 41 ++
.../mui-base/src/Menu/Item/MenuItem.test.tsx | 156 ++++
packages/mui-base/src/Menu/Item/MenuItem.tsx | 175 +++++
.../mui-base/src/Menu/Item/useMenuItem.ts | 103 +++
.../src/Menu/Popup/MenuPopup.test.tsx | 58 ++
.../mui-base/src/Menu/Popup/MenuPopup.tsx | 101 +++
.../mui-base/src/Menu/Popup/useMenuPopup.ts | 40 +
.../Menu/Positioner/MenuPositioner.test.tsx | 177 +++++
.../src/Menu/Positioner/MenuPositioner.tsx | 277 +++++++
.../Menu/Positioner/MenuPositionerContext.ts | 31 +
.../src/Menu/Positioner/useMenuPositioner.ts | 204 +++++
.../mui-base/src/Menu/Root/MenuRoot.test.tsx | 609 +++++++++++++++
packages/mui-base/src/Menu/Root/MenuRoot.tsx | 226 ++++++
.../mui-base/src/Menu/Root/MenuRootContext.ts | 30 +
.../mui-base/src/Menu/Root/useMenuRoot.ts | 277 +++++++
.../Menu/SubmenuTrigger/SubmenuTrigger.tsx | 133 ++++
.../Menu/SubmenuTrigger/useSubmenuTrigger.ts | 89 +++
.../src/Menu/Trigger/MenuTrigger.test.tsx | 167 +++++
.../mui-base/src/Menu/Trigger/MenuTrigger.tsx | 111 +++
.../src/Menu/Trigger/useMenuTrigger.ts | 142 ++++
packages/mui-base/src/Menu/index.ts | 25 +
.../src/Menu/utils/commonStyleHooks.ts | 3 +
.../src/legacy/Dropdown/Dropdown.test.tsx | 176 -----
.../mui-base/src/legacy/Dropdown/Dropdown.tsx | 59 --
.../src/legacy/Dropdown/Dropdown.types.ts | 19 -
.../mui-base/src/legacy/Dropdown/index.ts | 2 -
.../mui-base/src/legacy/Menu/Menu.spec.tsx | 59 --
.../mui-base/src/legacy/Menu/Menu.test.tsx | 694 ------------------
packages/mui-base/src/legacy/Menu/Menu.tsx | 160 ----
.../mui-base/src/legacy/Menu/Menu.types.ts | 96 ---
packages/mui-base/src/legacy/Menu/index.tsx | 5 -
.../mui-base/src/legacy/Menu/menuClasses.ts | 25 -
.../src/legacy/MenuButton/MenuButton.test.tsx | 237 ------
.../src/legacy/MenuButton/MenuButton.tsx | 122 ---
.../src/legacy/MenuButton/MenuButton.types.ts | 52 --
.../mui-base/src/legacy/MenuButton/index.ts | 5 -
.../legacy/MenuButton/menuButtonClasses.ts | 28 -
.../src/legacy/MenuItem/MenuItem.spec.tsx | 59 --
.../src/legacy/MenuItem/MenuItem.test.tsx | 42 --
.../mui-base/src/legacy/MenuItem/MenuItem.tsx | 149 ----
.../src/legacy/MenuItem/MenuItem.types.ts | 84 ---
.../mui-base/src/legacy/MenuItem/index.ts | 4 -
.../src/legacy/MenuItem/menuItemClasses.ts | 25 -
.../src/legacy/useDropdown/DropdownContext.ts | 15 -
.../src/legacy/useDropdown/dropdownReducer.ts | 18 -
.../mui-base/src/legacy/useDropdown/index.ts | 4 -
.../src/legacy/useDropdown/useDropdown.ts | 77 --
.../legacy/useDropdown/useDropdown.types.ts | 82 ---
.../src/legacy/useMenu/MenuProvider.tsx | 48 --
packages/mui-base/src/legacy/useMenu/index.ts | 4 -
.../src/legacy/useMenu/menuReducer.ts | 58 --
.../src/legacy/useMenu/useMenu.test.js | 61 --
.../mui-base/src/legacy/useMenu/useMenu.ts | 221 ------
.../src/legacy/useMenu/useMenu.types.ts | 96 ---
.../src/legacy/useMenuButton/index.ts | 3 -
.../useMenuButton/useMenuButton.test.tsx | 68 --
.../src/legacy/useMenuButton/useMenuButton.ts | 103 ---
.../useMenuButton/useMenuButton.types.ts | 55 --
.../mui-base/src/legacy/useMenuItem/index.ts | 4 -
.../legacy/useMenuItem/useMenuItem.test.tsx | 59 --
.../src/legacy/useMenuItem/useMenuItem.ts | 143 ----
.../legacy/useMenuItem/useMenuItem.types.ts | 70 --
.../useMenuItemContextStabilizer.ts | 77 --
.../src/utils/mergeReactProps.test.ts | 44 ++
.../mui-base/src/utils/mergeReactProps.ts | 20 +-
.../src/utils/useAnchorPositioning.ts | 3 +
tsconfig.base.json | 2 +-
124 files changed, 5622 insertions(+), 3670 deletions(-)
create mode 100644 docs/data/base/components/menu/MenuIntroduction/css/index.js
create mode 100644 docs/data/base/components/menu/MenuIntroduction/css/index.tsx
create mode 100644 docs/data/base/components/menu/MenuIntroduction/system/index.js
create mode 100644 docs/data/base/components/menu/MenuIntroduction/system/index.tsx
create mode 100644 docs/data/base/components/menu/MenuIntroduction/system/index.tsx.preview
create mode 100644 docs/data/base/components/menu/MenuIntroduction/tailwind/index.js
create mode 100644 docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx
create mode 100644 docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx.preview
create mode 100644 docs/data/base/components/menu/NestedMenu.js
create mode 100644 docs/data/base/components/menu/NestedMenu.tsx
delete mode 100644 docs/pages/base-ui/api/dropdown.json
create mode 100644 docs/pages/base-ui/api/menu-arrow.json
delete mode 100644 docs/pages/base-ui/api/menu-button.json
create mode 100644 docs/pages/base-ui/api/menu-popup.json
create mode 100644 docs/pages/base-ui/api/menu-positioner.json
create mode 100644 docs/pages/base-ui/api/menu-root.json
create mode 100644 docs/pages/base-ui/api/menu-trigger.json
delete mode 100644 docs/pages/base-ui/api/menu.json
create mode 100644 docs/pages/base-ui/api/submenu-trigger.json
delete mode 100644 docs/pages/base-ui/api/use-dropdown.json
create mode 100644 docs/pages/base-ui/api/use-menu-arrow.json
delete mode 100644 docs/pages/base-ui/api/use-menu-button.json
delete mode 100644 docs/pages/base-ui/api/use-menu-item-context-stabilizer.json
create mode 100644 docs/pages/base-ui/api/use-menu-popup.json
create mode 100644 docs/pages/base-ui/api/use-menu-positioner.json
create mode 100644 docs/pages/base-ui/api/use-menu-root.json
create mode 100644 docs/pages/base-ui/api/use-menu-trigger.json
delete mode 100644 docs/pages/base-ui/api/use-menu.json
create mode 100644 docs/pages/base-ui/api/use-submenu-trigger.json
delete mode 100644 docs/translations/api-docs/dropdown/dropdown.json
create mode 100644 docs/translations/api-docs/menu-arrow/menu-arrow.json
create mode 100644 docs/translations/api-docs/menu-popup/menu-popup.json
create mode 100644 docs/translations/api-docs/menu-positioner/menu-positioner.json
create mode 100644 docs/translations/api-docs/menu-root/menu-root.json
rename docs/translations/api-docs/{menu-button/menu-button.json => menu-trigger/menu-trigger.json} (53%)
delete mode 100644 docs/translations/api-docs/menu/menu.json
create mode 100644 docs/translations/api-docs/submenu-trigger/submenu-trigger.json
rename docs/translations/api-docs/{use-dropdown/use-dropdown.json => use-menu-arrow/use-menu-arrow.json} (100%)
delete mode 100644 docs/translations/api-docs/use-menu-item-context-stabilizer/use-menu-item-context-stabilizer.json
rename docs/translations/api-docs/{use-menu-button/use-menu-button.json => use-menu-popup/use-menu-popup.json} (100%)
rename docs/translations/api-docs/{use-menu/use-menu.json => use-menu-positioner/use-menu-positioner.json} (100%)
create mode 100644 docs/translations/api-docs/use-menu-root/use-menu-root.json
create mode 100644 docs/translations/api-docs/use-menu-trigger/use-menu-trigger.json
create mode 100644 docs/translations/api-docs/use-submenu-trigger/use-submenu-trigger.json
create mode 100644 packages/mui-base/src/Menu/Arrow/MenuArrow.test.tsx
create mode 100644 packages/mui-base/src/Menu/Arrow/MenuArrow.tsx
create mode 100644 packages/mui-base/src/Menu/Arrow/useMenuArrow.ts
create mode 100644 packages/mui-base/src/Menu/Item/MenuItem.test.tsx
create mode 100644 packages/mui-base/src/Menu/Item/MenuItem.tsx
create mode 100644 packages/mui-base/src/Menu/Item/useMenuItem.ts
create mode 100644 packages/mui-base/src/Menu/Popup/MenuPopup.test.tsx
create mode 100644 packages/mui-base/src/Menu/Popup/MenuPopup.tsx
create mode 100644 packages/mui-base/src/Menu/Popup/useMenuPopup.ts
create mode 100644 packages/mui-base/src/Menu/Positioner/MenuPositioner.test.tsx
create mode 100644 packages/mui-base/src/Menu/Positioner/MenuPositioner.tsx
create mode 100644 packages/mui-base/src/Menu/Positioner/MenuPositionerContext.ts
create mode 100644 packages/mui-base/src/Menu/Positioner/useMenuPositioner.ts
create mode 100644 packages/mui-base/src/Menu/Root/MenuRoot.test.tsx
create mode 100644 packages/mui-base/src/Menu/Root/MenuRoot.tsx
create mode 100644 packages/mui-base/src/Menu/Root/MenuRootContext.ts
create mode 100644 packages/mui-base/src/Menu/Root/useMenuRoot.ts
create mode 100644 packages/mui-base/src/Menu/SubmenuTrigger/SubmenuTrigger.tsx
create mode 100644 packages/mui-base/src/Menu/SubmenuTrigger/useSubmenuTrigger.ts
create mode 100644 packages/mui-base/src/Menu/Trigger/MenuTrigger.test.tsx
create mode 100644 packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx
create mode 100644 packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts
create mode 100644 packages/mui-base/src/Menu/index.ts
create mode 100644 packages/mui-base/src/Menu/utils/commonStyleHooks.ts
delete mode 100644 packages/mui-base/src/legacy/Dropdown/Dropdown.test.tsx
delete mode 100644 packages/mui-base/src/legacy/Dropdown/Dropdown.tsx
delete mode 100644 packages/mui-base/src/legacy/Dropdown/Dropdown.types.ts
delete mode 100644 packages/mui-base/src/legacy/Dropdown/index.ts
delete mode 100644 packages/mui-base/src/legacy/Menu/Menu.spec.tsx
delete mode 100644 packages/mui-base/src/legacy/Menu/Menu.test.tsx
delete mode 100644 packages/mui-base/src/legacy/Menu/Menu.tsx
delete mode 100644 packages/mui-base/src/legacy/Menu/Menu.types.ts
delete mode 100644 packages/mui-base/src/legacy/Menu/index.tsx
delete mode 100644 packages/mui-base/src/legacy/Menu/menuClasses.ts
delete mode 100644 packages/mui-base/src/legacy/MenuButton/MenuButton.test.tsx
delete mode 100644 packages/mui-base/src/legacy/MenuButton/MenuButton.tsx
delete mode 100644 packages/mui-base/src/legacy/MenuButton/MenuButton.types.ts
delete mode 100644 packages/mui-base/src/legacy/MenuButton/index.ts
delete mode 100644 packages/mui-base/src/legacy/MenuButton/menuButtonClasses.ts
delete mode 100644 packages/mui-base/src/legacy/MenuItem/MenuItem.spec.tsx
delete mode 100644 packages/mui-base/src/legacy/MenuItem/MenuItem.test.tsx
delete mode 100644 packages/mui-base/src/legacy/MenuItem/MenuItem.tsx
delete mode 100644 packages/mui-base/src/legacy/MenuItem/MenuItem.types.ts
delete mode 100644 packages/mui-base/src/legacy/MenuItem/index.ts
delete mode 100644 packages/mui-base/src/legacy/MenuItem/menuItemClasses.ts
delete mode 100644 packages/mui-base/src/legacy/useDropdown/DropdownContext.ts
delete mode 100644 packages/mui-base/src/legacy/useDropdown/dropdownReducer.ts
delete mode 100644 packages/mui-base/src/legacy/useDropdown/index.ts
delete mode 100644 packages/mui-base/src/legacy/useDropdown/useDropdown.ts
delete mode 100644 packages/mui-base/src/legacy/useDropdown/useDropdown.types.ts
delete mode 100644 packages/mui-base/src/legacy/useMenu/MenuProvider.tsx
delete mode 100644 packages/mui-base/src/legacy/useMenu/index.ts
delete mode 100644 packages/mui-base/src/legacy/useMenu/menuReducer.ts
delete mode 100644 packages/mui-base/src/legacy/useMenu/useMenu.test.js
delete mode 100644 packages/mui-base/src/legacy/useMenu/useMenu.ts
delete mode 100644 packages/mui-base/src/legacy/useMenu/useMenu.types.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuButton/index.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuButton/useMenuButton.test.tsx
delete mode 100644 packages/mui-base/src/legacy/useMenuButton/useMenuButton.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuButton/useMenuButton.types.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuItem/index.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuItem/useMenuItem.test.tsx
delete mode 100644 packages/mui-base/src/legacy/useMenuItem/useMenuItem.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuItem/useMenuItem.types.ts
delete mode 100644 packages/mui-base/src/legacy/useMenuItem/useMenuItemContextStabilizer.ts
diff --git a/.eslintrc.js b/.eslintrc.js
index b5d903b7ff..a1e99d0f51 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -23,6 +23,7 @@ module.exports = {
...baseline.rules,
// TODO move to @mui/monorepo, codebase is moving away from default exports https://github.com/mui/material-ui/issues/21862
'import/prefer-default-export': 'off',
+ 'import/export': 'off', // Mostly handled by Typescript itself. ESLint produces false positives with declaration merging.
'no-restricted-imports': [
'error',
{
@@ -43,6 +44,7 @@ module.exports = {
],
},
],
+ '@typescript-eslint/no-redeclare': 'off',
},
overrides: [
...baseline.overrides,
diff --git a/docs/data/base/components/menu/MenuIntroduction/css/index.js b/docs/data/base/components/menu/MenuIntroduction/css/index.js
new file mode 100644
index 0000000000..b30fd457ef
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/css/index.js
@@ -0,0 +1,174 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { useTheme } from '@mui/system';
+
+export default function MenuIntroduction() {
+ const createHandleMenuClick = (menuItem) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+ My account
+
+
+
+
+ Profile
+
+
+ Language settings
+
+
+ Log out
+
+
+
+
+
+ );
+}
+
+const cyan = {
+ 50: '#E9F8FC',
+ 100: '#BDEBF4',
+ 200: '#99D8E5',
+ 300: '#66BACC',
+ 400: '#1F94AD',
+ 500: '#0D5463',
+ 600: '#094855',
+ 700: '#063C47',
+ 800: '#043039',
+ 900: '#022127',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+function Styles() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+
+ return (
+
+ );
+}
diff --git a/docs/data/base/components/menu/MenuIntroduction/css/index.tsx b/docs/data/base/components/menu/MenuIntroduction/css/index.tsx
new file mode 100644
index 0000000000..dccfabe449
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/css/index.tsx
@@ -0,0 +1,174 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { useTheme } from '@mui/system';
+
+export default function MenuIntroduction() {
+ const createHandleMenuClick = (menuItem: string) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+ My account
+
+
+
+
+ Profile
+
+
+ Language settings
+
+
+ Log out
+
+
+
+
+
+ );
+}
+
+const cyan = {
+ 50: '#E9F8FC',
+ 100: '#BDEBF4',
+ 200: '#99D8E5',
+ 300: '#66BACC',
+ 400: '#1F94AD',
+ 500: '#0D5463',
+ 600: '#094855',
+ 700: '#063C47',
+ 800: '#043039',
+ 900: '#022127',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+function Styles() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+
+ return (
+
+ );
+}
diff --git a/docs/data/base/components/menu/MenuIntroduction/system/index.js b/docs/data/base/components/menu/MenuIntroduction/system/index.js
new file mode 100644
index 0000000000..1b4655a3f5
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/system/index.js
@@ -0,0 +1,185 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { styled } from '@mui/system';
+
+export default function MenuIntroduction() {
+ const createHandleMenuClick = (menuItem) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+ My account
+
+
+ Profile
+
+ Language settings
+
+ Log out
+
+
+
+
+ );
+}
+
+const blue = {
+ 50: '#F0F7FF',
+ 100: '#C2E0FF',
+ 200: '#99CCF3',
+ 300: '#66B2FF',
+ 400: '#3399FF',
+ 500: '#007FFF',
+ 600: '#0072E6',
+ 700: '#0059B3',
+ 800: '#004C99',
+ 900: '#003A75',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const MenuPopup = styled(Menu.Popup)(
+ ({ theme }) => `
+ position: relative;
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-size: 0.875rem;
+ box-sizing: border-box;
+ padding: 6px;
+ min-width: 200px;
+ border-radius: 12px;
+ 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]};
+ box-shadow: 0px 4px 30px ${theme.palette.mode === 'dark' ? grey[900] : grey[200]};
+ z-index: 1;
+ transform-origin: var(--transform-origin);
+ opacity: 1;
+ transform: scale(1, 1);
+ transition: opacity 100ms ease-in, transform 100ms ease-in;
+
+ @starting-style {
+ & {
+ opacity: 0;
+ transform: scale(0.8);
+ }
+ }
+
+ &[data-exiting] {
+ opacity: 0;
+ transform: scale(0.8);
+ transition: opacity 200ms ease-in, transform 200ms ease-in;
+ }
+ `,
+);
+
+const MenuItem = styled(Menu.Item)(
+ ({ theme }) => `
+ list-style: none;
+ padding: 8px;
+ border-radius: 8px;
+ cursor: default;
+ user-select: none;
+
+ &:last-of-type {
+ border-bottom: none;
+ }
+
+ &:focus {
+ outline: 3px solid ${theme.palette.mode === 'dark' ? blue[600] : blue[200]};
+ background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &.[data-disabled] {
+ color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
+ }
+ `,
+);
+
+const MenuButton = styled(Menu.Trigger)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-weight: 600;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 8px 16px;
+ border-radius: 8px;
+ color: white;
+ transition: all 150ms ease;
+ cursor: pointer;
+ 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[200] : grey[900]};
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+
+ &:hover {
+ background: ${theme.palette.mode === 'dark' ? grey[800] : grey[50]};
+ border-color: ${theme.palette.mode === 'dark' ? grey[600] : grey[300]};
+ }
+
+ &:active {
+ background: ${theme.palette.mode === 'dark' ? grey[700] : grey[100]};
+ }
+
+ &:focus-visible {
+ box-shadow: 0 0 0 4px ${theme.palette.mode === 'dark' ? blue[300] : blue[200]};
+ outline: none;
+ }
+ `,
+);
+
+const MenuPositioner = styled(Menu.Positioner)`
+ &:focus-visible {
+ outline: 0;
+ }
+
+ &[data-state='closed'] {
+ pointer-events: none;
+ }
+`;
+
+export const MenuArrow = styled(Menu.Arrow)(
+ ({ theme }) => `
+ width: 10px;
+ height: 10px;
+ transform: rotate(45deg);
+ background: white;
+ z-index: -1;
+ border: 1px ${theme.palette.mode === 'dark' ? grey[700] : grey[200]};
+
+ &[data-side='top'] {
+ border-style: none solid solid none;
+ bottom: -6px;
+ }
+
+ &[data-side='right'] {
+ border-style: none none solid solid;
+ left: -6px;
+ }
+
+ &[data-side='bottom'] {
+ border-style: solid none none solid;
+ top: -6px;
+ }
+
+ &[data-side='left'] {
+ border-style: solid solid none none;
+ right: -6px;
+ }
+`,
+);
diff --git a/docs/data/base/components/menu/MenuIntroduction/system/index.tsx b/docs/data/base/components/menu/MenuIntroduction/system/index.tsx
new file mode 100644
index 0000000000..0ba533b00d
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/system/index.tsx
@@ -0,0 +1,185 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { styled } from '@mui/system';
+
+export default function MenuIntroduction() {
+ const createHandleMenuClick = (menuItem: string) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+ My account
+
+
+ Profile
+
+ Language settings
+
+ Log out
+
+
+
+
+ );
+}
+
+const blue = {
+ 50: '#F0F7FF',
+ 100: '#C2E0FF',
+ 200: '#99CCF3',
+ 300: '#66B2FF',
+ 400: '#3399FF',
+ 500: '#007FFF',
+ 600: '#0072E6',
+ 700: '#0059B3',
+ 800: '#004C99',
+ 900: '#003A75',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const MenuPopup = styled(Menu.Popup)(
+ ({ theme }) => `
+ position: relative;
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-size: 0.875rem;
+ box-sizing: border-box;
+ padding: 6px;
+ min-width: 200px;
+ border-radius: 12px;
+ 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]};
+ box-shadow: 0px 4px 30px ${theme.palette.mode === 'dark' ? grey[900] : grey[200]};
+ z-index: 1;
+ transform-origin: var(--transform-origin);
+ opacity: 1;
+ transform: scale(1, 1);
+ transition: opacity 100ms ease-in, transform 100ms ease-in;
+
+ @starting-style {
+ & {
+ opacity: 0;
+ transform: scale(0.8);
+ }
+ }
+
+ &[data-exiting] {
+ opacity: 0;
+ transform: scale(0.8);
+ transition: opacity 200ms ease-in, transform 200ms ease-in;
+ }
+ `,
+);
+
+const MenuItem = styled(Menu.Item)(
+ ({ theme }) => `
+ list-style: none;
+ padding: 8px;
+ border-radius: 8px;
+ cursor: default;
+ user-select: none;
+
+ &:last-of-type {
+ border-bottom: none;
+ }
+
+ &:focus {
+ outline: 3px solid ${theme.palette.mode === 'dark' ? blue[600] : blue[200]};
+ background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &.[data-disabled] {
+ color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
+ }
+ `,
+);
+
+const MenuButton = styled(Menu.Trigger)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-weight: 600;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 8px 16px;
+ border-radius: 8px;
+ color: white;
+ transition: all 150ms ease;
+ cursor: pointer;
+ 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[200] : grey[900]};
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+
+ &:hover {
+ background: ${theme.palette.mode === 'dark' ? grey[800] : grey[50]};
+ border-color: ${theme.palette.mode === 'dark' ? grey[600] : grey[300]};
+ }
+
+ &:active {
+ background: ${theme.palette.mode === 'dark' ? grey[700] : grey[100]};
+ }
+
+ &:focus-visible {
+ box-shadow: 0 0 0 4px ${theme.palette.mode === 'dark' ? blue[300] : blue[200]};
+ outline: none;
+ }
+ `,
+);
+
+const MenuPositioner = styled(Menu.Positioner)`
+ &:focus-visible {
+ outline: 0;
+ }
+
+ &[data-state='closed'] {
+ pointer-events: none;
+ }
+`;
+
+export const MenuArrow = styled(Menu.Arrow)(
+ ({ theme }) => `
+ width: 10px;
+ height: 10px;
+ transform: rotate(45deg);
+ background: white;
+ z-index: -1;
+ border: 1px ${theme.palette.mode === 'dark' ? grey[700] : grey[200]};
+
+ &[data-side='top'] {
+ border-style: none solid solid none;
+ bottom: -6px;
+ }
+
+ &[data-side='right'] {
+ border-style: none none solid solid;
+ left: -6px;
+ }
+
+ &[data-side='bottom'] {
+ border-style: solid none none solid;
+ top: -6px;
+ }
+
+ &[data-side='left'] {
+ border-style: solid solid none none;
+ right: -6px;
+ }
+`,
+);
diff --git a/docs/data/base/components/menu/MenuIntroduction/system/index.tsx.preview b/docs/data/base/components/menu/MenuIntroduction/system/index.tsx.preview
new file mode 100644
index 0000000000..4e68fd1f26
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/system/index.tsx.preview
@@ -0,0 +1,13 @@
+
+ My account
+
+
+ Profile
+
+ Language settings
+
+ Log out
+
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/menu/MenuIntroduction/tailwind/index.js b/docs/data/base/components/menu/MenuIntroduction/tailwind/index.js
new file mode 100644
index 0000000000..08751452b6
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/tailwind/index.js
@@ -0,0 +1,75 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { useTheme } from '@mui/system';
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+export default function MenuIntroduction() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+
+ const createHandleMenuClick = (menuItem) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+
+ My account
+
+
+ Profile
+
+ Language settings
+
+ Log out
+
+
+
+
+ );
+}
+
+const MenuPopup = React.forwardRef((props, ref) => {
+ const classes = `
+ text-sm box-border font-sans p-1.5 my-3 mx-0 rounded-xl overflow-auto outline-0
+ bg-white dark:bg-slate-900 border border-solid border-slate-200 dark:border-slate-700 text-slate-900 dark:text-slate-300
+ min-w-listbox shadow-md dark:shadow-slate-900
+ [.open_&]:opacity-100 [.open_&]:scale-100 [.closed_&]:opacity-0 [.closed_&]:scale-90
+ transition-[opacity,transform] [.placement-top_&]:origin-bottom [.placement-bottom_&]:origin-top`;
+
+ return ;
+});
+
+const MenuButton = React.forwardRef((props, ref) => {
+ const classes = `
+ cursor-pointer text-sm font-sans box-border rounded-lg font-semibold px-4 py-2 bg-white dark:bg-slate-900
+ border border-solid border-slate-200 dark:border-slate-700 text-slate-900 dark:text-slate-200 hover:bg-slate-50 hover:dark:bg-slate-800 hover:border-slate-300 dark:hover:border-slate-600
+ focus-visible:shadow-[0_0_0_4px_#ddd6fe] dark:focus-visible:shadow-[0_0_0_4px_#a78bfa] focus-visible:outline-none shadow-sm
+ `;
+
+ return ;
+});
+
+const MenuItem = React.forwardRef((props, ref) => {
+ const classes = `
+ list-none p-2 rounded-lg cursor-default select-none last-of-type:border-b-0 focus:shadow-outline-purple
+ focus:outline-0 focus:bg-slate-100 focus:dark:bg-slate-800 focus:text-slate-900 focus:dark:text-slate-300 disabled:text-slate-400 disabled:dark:text-slate-700 disabled:hover:text-slate-400 disabled:hover:dark:text-slate-700
+ `;
+ return ;
+});
+
+const MenuPositioner = React.forwardRef((props, ref) => {
+ return (
+
+ );
+});
diff --git a/docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx b/docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx
new file mode 100644
index 0000000000..6bf012ba31
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx
@@ -0,0 +1,81 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { useTheme } from '@mui/system';
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+export default function MenuIntroduction() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+
+ const createHandleMenuClick = (menuItem: string) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+
+ My account
+
+
+ Profile
+
+ Language settings
+
+ Log out
+
+
+
+
+ );
+}
+
+const MenuPopup = React.forwardRef(
+ (props, ref) => {
+ const classes = `
+ text-sm box-border font-sans p-1.5 my-3 mx-0 rounded-xl overflow-auto outline-0
+ bg-white dark:bg-slate-900 border border-solid border-slate-200 dark:border-slate-700 text-slate-900 dark:text-slate-300
+ min-w-listbox shadow-md dark:shadow-slate-900
+ [.open_&]:opacity-100 [.open_&]:scale-100 [.closed_&]:opacity-0 [.closed_&]:scale-90
+ transition-[opacity,transform] [.placement-top_&]:origin-bottom [.placement-bottom_&]:origin-top`;
+
+ return ;
+ },
+);
+
+const MenuButton = React.forwardRef(
+ (props, ref) => {
+ const classes = `
+ cursor-pointer text-sm font-sans box-border rounded-lg font-semibold px-4 py-2 bg-white dark:bg-slate-900
+ border border-solid border-slate-200 dark:border-slate-700 text-slate-900 dark:text-slate-200 hover:bg-slate-50 hover:dark:bg-slate-800 hover:border-slate-300 dark:hover:border-slate-600
+ focus-visible:shadow-[0_0_0_4px_#ddd6fe] dark:focus-visible:shadow-[0_0_0_4px_#a78bfa] focus-visible:outline-none shadow-sm
+ `;
+
+ return ;
+ },
+);
+
+const MenuItem = React.forwardRef((props, ref) => {
+ const classes = `
+ list-none p-2 rounded-lg cursor-default select-none last-of-type:border-b-0 focus:shadow-outline-purple
+ focus:outline-0 focus:bg-slate-100 focus:dark:bg-slate-800 focus:text-slate-900 focus:dark:text-slate-300 disabled:text-slate-400 disabled:dark:text-slate-700 disabled:hover:text-slate-400 disabled:hover:dark:text-slate-700
+ `;
+ return ;
+});
+
+const MenuPositioner = React.forwardRef(
+ (props, ref) => {
+ return (
+
+ );
+ },
+);
diff --git a/docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx.preview b/docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx.preview
new file mode 100644
index 0000000000..03ba6c96c4
--- /dev/null
+++ b/docs/data/base/components/menu/MenuIntroduction/tailwind/index.tsx.preview
@@ -0,0 +1,12 @@
+
+ My account
+
+
+ Profile
+
+ Language settings
+
+ Log out
+
+
+
\ No newline at end of file
diff --git a/docs/data/base/components/menu/NestedMenu.js b/docs/data/base/components/menu/NestedMenu.js
new file mode 100644
index 0000000000..7dc96d13fe
--- /dev/null
+++ b/docs/data/base/components/menu/NestedMenu.js
@@ -0,0 +1,261 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { styled } from '@mui/system';
+
+export default function NestedMenu() {
+ const createHandleMenuClick = (menuItem) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+ Format
+
+
+
+ Text color
+
+
+
+ Black
+
+
+ Dark grey
+
+
+ Accent
+
+
+
+
+
+
+ Style
+
+
+
+ Heading
+
+
+
+ Level 1
+
+
+ Level 2
+
+
+ Level 3
+
+
+
+
+
+ Paragraph
+
+
+ List
+
+
+
+ Ordered
+
+
+ Unordered
+
+
+
+
+
+
+
+
+
+ Clear formatting
+
+
+
+
+ );
+}
+
+const blue = {
+ 50: '#F0F7FF',
+ 100: '#C2E0FF',
+ 200: '#99CCF3',
+ 300: '#66B2FF',
+ 400: '#3399FF',
+ 500: '#007FFF',
+ 600: '#0072E6',
+ 700: '#0059B3',
+ 800: '#004C99',
+ 900: '#003A75',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const MenuPopup = styled(Menu.Popup)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-size: 0.875rem;
+ box-sizing: border-box;
+ padding: 6px;
+ margin: 12px 0;
+ min-width: 200px;
+ border-radius: 12px;
+ overflow: auto;
+ 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]};
+ box-shadow: 0px 4px 30px ${theme.palette.mode === 'dark' ? grey[900] : grey[200]};
+ z-index: 1;
+ transform-origin: var(--transform-origin);
+ opacity: 1;
+ transform: scale(1, 1);
+ transition: opacity 100ms ease-in, transform 100ms ease-in;
+
+ @starting-style {
+ & {
+ opacity: 0;
+ transform: scale(0.8);
+ }
+ }
+
+ &[data-exiting] {
+ opacity: 0;
+ transform: scale(0.8);
+ transition: opacity 200ms ease-in, transform 200ms ease-in;
+ }
+ `,
+);
+
+const MenuPositioner = styled(Menu.Positioner)`
+ &:focus-visible {
+ outline: 0;
+ }
+
+ &[data-state='closed'] {
+ pointer-events: none;
+ }
+`;
+
+const MenuItem = styled(Menu.Item)(
+ ({ theme }) => `
+ list-style: none;
+ padding: 8px;
+ border-radius: 8px;
+ cursor: default;
+ user-select: none;
+
+ &:last-of-type {
+ border-bottom: none;
+ }
+
+ &:focus,
+ &:hover {
+ background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &:focus-visible {
+ outline: none;
+ }
+
+ &[data-disabled] {
+ color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
+ }
+ `,
+);
+
+const SubmenuTrigger = styled(Menu.SubmenuTrigger)(
+ ({ theme }) => `
+ list-style: none;
+ padding: 8px;
+ border-radius: 8px;
+ cursor: default;
+ user-select: none;
+
+ &:last-of-type {
+ border-bottom: none;
+ }
+
+ &::after {
+ content: '›';
+ float: right;
+ }
+
+ &[data-state='open'] {
+ background-color: ${theme.palette.mode === 'dark' ? grey[900] : grey[50]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &:focus,
+ &:hover {
+ background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &:focus-visible {
+ outline: none;
+ }
+
+ &[data-disabled] {
+ color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
+ }
+ `,
+);
+
+const MenuButton = styled(Menu.Trigger)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-weight: 600;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 8px 16px;
+ border-radius: 8px;
+ color: white;
+ transition: all 150ms ease;
+ cursor: pointer;
+ 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[200] : grey[900]};
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+
+ &:hover {
+ background: ${theme.palette.mode === 'dark' ? grey[800] : grey[50]};
+ border-color: ${theme.palette.mode === 'dark' ? grey[600] : grey[300]};
+ }
+
+ &:active {
+ background: ${theme.palette.mode === 'dark' ? grey[700] : grey[100]};
+ }
+
+ &:focus-visible {
+ box-shadow: 0 0 0 4px ${theme.palette.mode === 'dark' ? blue[300] : blue[200]};
+ outline: none;
+ }
+ `,
+);
diff --git a/docs/data/base/components/menu/NestedMenu.tsx b/docs/data/base/components/menu/NestedMenu.tsx
new file mode 100644
index 0000000000..6c8efdb370
--- /dev/null
+++ b/docs/data/base/components/menu/NestedMenu.tsx
@@ -0,0 +1,261 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { styled } from '@mui/system';
+
+export default function NestedMenu() {
+ const createHandleMenuClick = (menuItem: string) => {
+ return () => {
+ console.log(`Clicked on ${menuItem}`);
+ };
+ };
+
+ return (
+
+ Format
+
+
+
+ Text color
+
+
+
+ Black
+
+
+ Dark grey
+
+
+ Accent
+
+
+
+
+
+
+ Style
+
+
+
+ Heading
+
+
+
+ Level 1
+
+
+ Level 2
+
+
+ Level 3
+
+
+
+
+
+ Paragraph
+
+
+ List
+
+
+
+ Ordered
+
+
+ Unordered
+
+
+
+
+
+
+
+
+
+ Clear formatting
+
+
+
+
+ );
+}
+
+const blue = {
+ 50: '#F0F7FF',
+ 100: '#C2E0FF',
+ 200: '#99CCF3',
+ 300: '#66B2FF',
+ 400: '#3399FF',
+ 500: '#007FFF',
+ 600: '#0072E6',
+ 700: '#0059B3',
+ 800: '#004C99',
+ 900: '#003A75',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E5EAF2',
+ 200: '#DAE2ED',
+ 300: '#C7D0DD',
+ 400: '#B0B8C4',
+ 500: '#9DA8B7',
+ 600: '#6B7A90',
+ 700: '#434D5B',
+ 800: '#303740',
+ 900: '#1C2025',
+};
+
+const MenuPopup = styled(Menu.Popup)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-size: 0.875rem;
+ box-sizing: border-box;
+ padding: 6px;
+ margin: 12px 0;
+ min-width: 200px;
+ border-radius: 12px;
+ overflow: auto;
+ 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]};
+ box-shadow: 0px 4px 30px ${theme.palette.mode === 'dark' ? grey[900] : grey[200]};
+ z-index: 1;
+ transform-origin: var(--transform-origin);
+ opacity: 1;
+ transform: scale(1, 1);
+ transition: opacity 100ms ease-in, transform 100ms ease-in;
+
+ @starting-style {
+ & {
+ opacity: 0;
+ transform: scale(0.8);
+ }
+ }
+
+ &[data-exiting] {
+ opacity: 0;
+ transform: scale(0.8);
+ transition: opacity 200ms ease-in, transform 200ms ease-in;
+ }
+ `,
+);
+
+const MenuPositioner = styled(Menu.Positioner)`
+ &:focus-visible {
+ outline: 0;
+ }
+
+ &[data-state='closed'] {
+ pointer-events: none;
+ }
+`;
+
+const MenuItem = styled(Menu.Item)(
+ ({ theme }) => `
+ list-style: none;
+ padding: 8px;
+ border-radius: 8px;
+ cursor: default;
+ user-select: none;
+
+ &:last-of-type {
+ border-bottom: none;
+ }
+
+ &:focus,
+ &:hover {
+ background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &:focus-visible {
+ outline: none;
+ }
+
+ &[data-disabled] {
+ color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
+ }
+ `,
+);
+
+const SubmenuTrigger = styled(Menu.SubmenuTrigger)(
+ ({ theme }) => `
+ list-style: none;
+ padding: 8px;
+ border-radius: 8px;
+ cursor: default;
+ user-select: none;
+
+ &:last-of-type {
+ border-bottom: none;
+ }
+
+ &::after {
+ content: '›';
+ float: right;
+ }
+
+ &[data-state='open'] {
+ background-color: ${theme.palette.mode === 'dark' ? grey[900] : grey[50]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &:focus,
+ &:hover {
+ background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ }
+
+ &:focus-visible {
+ outline: none;
+ }
+
+ &[data-disabled] {
+ color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
+ }
+ `,
+);
+
+const MenuButton = styled(Menu.Trigger)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-weight: 600;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 8px 16px;
+ border-radius: 8px;
+ color: white;
+ transition: all 150ms ease;
+ cursor: pointer;
+ 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[200] : grey[900]};
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+
+ &:hover {
+ background: ${theme.palette.mode === 'dark' ? grey[800] : grey[50]};
+ border-color: ${theme.palette.mode === 'dark' ? grey[600] : grey[300]};
+ }
+
+ &:active {
+ background: ${theme.palette.mode === 'dark' ? grey[700] : grey[100]};
+ }
+
+ &:focus-visible {
+ box-shadow: 0 0 0 4px ${theme.palette.mode === 'dark' ? blue[300] : blue[200]};
+ outline: none;
+ }
+ `,
+);
diff --git a/docs/data/base/components/menu/menu.md b/docs/data/base/components/menu/menu.md
index 08e6396062..43813505f4 100644
--- a/docs/data/base/components/menu/menu.md
+++ b/docs/data/base/components/menu/menu.md
@@ -1,16 +1,363 @@
---
productId: base-ui
title: React Menu components and hooks
-components: Menu, MenuItem, MenuButton, Dropdown
-hooks: useMenu, useMenuItem, useMenuButton, useDropdown, useMenuItemContextStabilizer
+components: MenuItem, MenuPositioner, MenuPopup, MenuRoot, MenuTrigger, SubmenuTrigger, MenuArrow
githubLabel: 'component: menu'
waiAria: https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/
---
# Menu
-The Dropdown Menu components provide end users with a list of options on temporary surfaces.
+The Menu component provide end users with a list of options on temporary surfaces.
{{"component": "@mui/docs/ComponentLinkHeader", "design": false}}
{{"component": "modules/components/ComponentPageTabs.js"}}
+
+{{"demo": "MenuIntroduction", "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 Menu from '@base_ui/react/Menu';
+```
+
+## Anatomy
+
+Menus are implemented using a collection of related components:
+
+- ` ` is a top-level component that facilitates communication between other components. It does not render to the DOM.
+- ` ` is an optional component (a button by default) that, when clicked, shows the menu. When not used, menu can be shown programmatically using the `open` prop.
+- ` ` renders the element responsible for positioning the popup.
+- ` ` is the menu popup.
+- ` ` is the menu item.
+- ` ` renders an optional pointing arrow, placed inside the popup.
+- ` ` is a menu item that opens a submenu. See [Nested menu](#nested-menu) for more details.
+
+```tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## Placement
+
+By default, the menu is placed on the bottom side of its trigger, the default anchor. To change this, use the `side` prop:
+
+```jsx
+
+
+
+
+ Item 1
+
+
+
+```
+
+You can also change the alignment of the menu in relation to its anchor. By default, aligned to the leading edge of an anchor, but it can be configured otherwise using the `alignment` prop:
+
+```jsx
+
+
+
+
+ Item 1
+
+
+
+```
+
+Due to collision detection, the menu 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 menu element receives data attributes:
+
+```jsx
+// Rendered HTML (simplified)
+
+```
+
+This allows you to conditionally style the menu based on its rendered side or alignment.
+
+## Offset
+
+The `sideOffset` prop creates a gap between the anchor and menu popup, while `alignmentOffset` slides the menu popup from its alignment, acting logically for `start` and `end` alignments.
+
+```jsx
+
+```
+
+## Orientation
+
+By default, menus are vertical, so the up/down arrow keys navigate through options and left/right keys open and close submenus.
+You can change this with the `orientation` prop"
+
+```jsx
+
+
+
+
+ Item 1
+
+
+
+```
+
+## Hover
+
+To open the Menu on hover, add the `openOnHover` prop:
+
+```jsx
+
+```
+
+By default submenus are opened on hover, but top-level menus aren't.
+
+### Delay
+
+To change how long the menu waits until it opens or closes when `openOnHover` is enabled, use the `delay` prop, which represent how long the Menu waits after the cursor enters the trigger, in milliseconds:
+
+```jsx
+
+```
+
+## Nested menu
+
+Menu items can open submenus.
+To make this happen, place the `` with all its required children where a submenu trigger has to be placed, but instead of ``, use ``, as on the demo below.
+
+{{"demo": "NestedMenu.js"}}
+
+### Escape key behavior
+
+You can control if pressing the Escape key closes just the current submenu or the whole tree.
+By default, the whole menu closes, but setting the `closeParentOnEsc` prop modifies this behavior:
+
+```jsx
+
+
+
+
+ Item 1
+
+ Submenu
+
+
+
+ Submenu item 1
+ Submenu item 2
+
+
+
+
+
+
+```
+
+## Arrow
+
+To add an arrow (caret or triangle) inside the menu popup that points toward the center of the anchor element, use the `Menu.Arrow` component:
+
+```jsx
+
+
+
+ Item 1
+ Item 2
+
+
+```
+
+It automatically positions a wrapper element that can be styled or contain a custom SVG shape.
+
+## Animations
+
+The menu 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
+
+ Item 1
+
+```
+
+```css
+.MenuPopup {
+ 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 */
+.MenuPopup[data-state='open'] {
+ opacity: 1;
+ transform: scale(1);
+}
+
+/* Represents the initial styles when entering */
+.MenuPopup[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]`
+
+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 */
+.MenuPopup[data-entering] {
+ opacity: 0;
+ transform: scale(0.9);
+}
+
+/* Official Browser API - no Firefox support as of May 2024 */
+@starting-style {
+ .MenuPopup[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);
+ }
+}
+
+.MenuPopup {
+ animation: scale-in 0.2s forwards;
+}
+
+.MenuPopup[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 && (
+
+
+ }
+ >
+ Item 1
+ Item 2
+
+
+ )}
+
+
+ );
+}
+```
+
+### 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.
+
+## 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/getting-started/accessibility/KeyboardNavigation.js b/docs/data/base/getting-started/accessibility/KeyboardNavigation.js
index 88fbc842b6..4349b64e60 100644
--- a/docs/data/base/getting-started/accessibility/KeyboardNavigation.js
+++ b/docs/data/base/getting-started/accessibility/KeyboardNavigation.js
@@ -2,13 +2,7 @@ import * as React from 'react';
import PropTypes from 'prop-types';
import { Select as BaseSelect, selectClasses } from '@base_ui/react/legacy/Select';
import { Option as BaseOption, optionClasses } from '@base_ui/react/legacy/Option';
-import { Dropdown } from '@base_ui/react/legacy/Dropdown';
-import { Menu } from '@base_ui/react/legacy/Menu';
-import { MenuButton as BaseMenuButton } from '@base_ui/react/legacy/MenuButton';
-import {
- MenuItem as BaseMenuItem,
- menuItemClasses,
-} from '@base_ui/react/legacy/MenuItem';
+import * as Menu from '@base_ui/react/Menu';
import { styled, alpha } from '@mui/system';
import UnfoldMoreRoundedIcon from '@mui/icons-material/UnfoldMoreRounded';
@@ -27,14 +21,16 @@ export default function KeyboardNavigation() {
Source Code Pro
-
+
Open menu
-
- Cut
- Copy
- Paste
-
-
+
+
+ Cut
+ Copy
+ Paste
+
+
+
);
}
@@ -193,7 +189,27 @@ const Option = styled(BaseOption)(
`,
);
-const MenuItem = styled(BaseMenuItem)(
+const MenuPopup = styled(Menu.Popup)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-size: 0.875rem;
+ box-sizing: border-box;
+ padding: 6px;
+ margin: 12px 0;
+ min-width: 200px;
+ border-radius: 12px;
+ overflow: auto;
+ 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]};
+ box-shadow: 0px 2px 6px ${
+ theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.50)' : 'rgba(0,0,0, 0.05)'
+ };
+ `,
+);
+
+const MenuItem = styled(Menu.Item)(
({ theme }) => `
list-style: none;
padding: 8px;
@@ -205,24 +221,24 @@ const MenuItem = styled(BaseMenuItem)(
border-bottom: none;
}
- &.${menuItemClasses.focusVisible} {
+ &:focus-visible {
outline: 3px solid ${theme.palette.mode === 'dark' ? blue[600] : blue[200]};
background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
}
- &.${menuItemClasses.disabled} {
+ &[data-disabled='true'] {
color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
}
- &:hover:not(.${menuItemClasses.disabled}) {
+ &:hover:not([data-disabled='true']) {
background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
}
`,
);
-const MenuButton = styled(BaseMenuButton)(
+const MenuButton = styled(Menu.Trigger)(
({ theme }) => `
font-family: 'IBM Plex Sans', sans-serif;
font-weight: 600;
diff --git a/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx b/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx
index 9efe51b0f7..d3c1a35e42 100644
--- a/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx
+++ b/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx
@@ -6,13 +6,7 @@ import {
selectClasses,
} from '@base_ui/react/legacy/Select';
import { Option as BaseOption, optionClasses } from '@base_ui/react/legacy/Option';
-import { Dropdown } from '@base_ui/react/legacy/Dropdown';
-import { Menu } from '@base_ui/react/legacy/Menu';
-import { MenuButton as BaseMenuButton } from '@base_ui/react/legacy/MenuButton';
-import {
- MenuItem as BaseMenuItem,
- menuItemClasses,
-} from '@base_ui/react/legacy/MenuItem';
+import * as Menu from '@base_ui/react/Menu';
import { styled, alpha } from '@mui/system';
import UnfoldMoreRoundedIcon from '@mui/icons-material/UnfoldMoreRounded';
@@ -31,14 +25,16 @@ export default function KeyboardNavigation() {
Source Code Pro
-
+
Open menu
-
- Cut
- Copy
- Paste
-
-
+
+
+ Cut
+ Copy
+ Paste
+
+
+
);
}
@@ -203,7 +199,27 @@ const Option = styled(BaseOption)(
`,
);
-const MenuItem = styled(BaseMenuItem)(
+const MenuPopup = styled(Menu.Popup)(
+ ({ theme }) => `
+ font-family: 'IBM Plex Sans', sans-serif;
+ font-size: 0.875rem;
+ box-sizing: border-box;
+ padding: 6px;
+ margin: 12px 0;
+ min-width: 200px;
+ border-radius: 12px;
+ overflow: auto;
+ 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]};
+ box-shadow: 0px 2px 6px ${
+ theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.50)' : 'rgba(0,0,0, 0.05)'
+ };
+ `,
+);
+
+const MenuItem = styled(Menu.Item)(
({ theme }) => `
list-style: none;
padding: 8px;
@@ -215,24 +231,24 @@ const MenuItem = styled(BaseMenuItem)(
border-bottom: none;
}
- &.${menuItemClasses.focusVisible} {
+ &:focus-visible {
outline: 3px solid ${theme.palette.mode === 'dark' ? blue[600] : blue[200]};
background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
}
- &.${menuItemClasses.disabled} {
+ &[data-disabled='true'] {
color: ${theme.palette.mode === 'dark' ? grey[700] : grey[400]};
}
- &:hover:not(.${menuItemClasses.disabled}) {
+ &:hover:not([data-disabled='true']) {
background-color: ${theme.palette.mode === 'dark' ? grey[800] : grey[100]};
color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
}
`,
);
-const MenuButton = styled(BaseMenuButton)(
+const MenuButton = styled(Menu.Trigger)(
({ theme }) => `
font-family: 'IBM Plex Sans', sans-serif;
font-weight: 600;
diff --git a/docs/data/base/pages.ts b/docs/data/base/pages.ts
index 3990ab14cf..4a770cbf10 100644
--- a/docs/data/base/pages.ts
+++ b/docs/data/base/pages.ts
@@ -52,7 +52,7 @@ const pages: readonly MuiPage[] = [
pathname: '/base-ui/components/navigation',
subheader: 'navigation',
children: [
- // { pathname: '/base-ui/react-menu', title: 'Menu' },
+ { pathname: '/base-ui/react-menu', title: 'Menu' },
// { pathname: '/base-ui/react-table-pagination', title: 'Table Pagination' },
{ pathname: '/base-ui/react-tabs', title: 'Tabs' },
],
diff --git a/docs/data/base/pagesApi.js b/docs/data/base/pagesApi.js
index c58afdd633..1f62a5d773 100644
--- a/docs/data/base/pagesApi.js
+++ b/docs/data/base/pagesApi.js
@@ -68,7 +68,6 @@ module.exports = [
pathname: '/base-ui/react-dialog/components-api/#dialog-trigger',
title: 'DialogTrigger',
},
- { pathname: '/base-ui/react-menu/components-api/#dropdown', title: 'Dropdown' },
{
pathname: '/base-ui/react-focus-trap/components-api/#focus-trap',
title: 'FocusTrap',
@@ -77,12 +76,18 @@ module.exports = [
pathname: '/base-ui/react-form-control/components-api/#form-control',
title: 'FormControl',
},
- { pathname: '/base-ui/react-menu/components-api/#menu', title: 'Menu' },
+ { pathname: '/base-ui/react-menu/components-api/#menu-arrow', title: 'MenuArrow' },
+ { pathname: '/base-ui/react-menu/components-api/#menu-item', title: 'MenuItem' },
+ { pathname: '/base-ui/react-menu/components-api/#menu-popup', title: 'MenuPopup' },
{
- pathname: '/base-ui/react-menu/components-api/#menu-button',
- title: 'MenuButton',
+ pathname: '/base-ui/react-menu/components-api/#menu-positioner',
+ title: 'MenuPositioner',
+ },
+ { pathname: '/base-ui/react-menu/components-api/#menu-root', title: 'MenuRoot' },
+ {
+ pathname: '/base-ui/react-menu/components-api/#menu-trigger',
+ title: 'MenuTrigger',
},
- { pathname: '/base-ui/react-menu/components-api/#menu-item', title: 'MenuItem' },
{ pathname: '/base-ui/react-no-ssr/components-api/#no-ssr', title: 'NoSsr' },
{
pathname: '/base-ui/react-number-field/components-api/#number-field-decrement',
@@ -221,6 +226,10 @@ module.exports = [
pathname: '/base-ui/react-snackbar/components-api/#snackbar',
title: 'Snackbar',
},
+ {
+ pathname: '/base-ui/react-menu/components-api/#submenu-trigger',
+ title: 'SubmenuTrigger',
+ },
{
pathname: '/base-ui/react-switch/components-api/#switch-root',
title: 'SwitchRoot',
@@ -293,21 +302,10 @@ module.exports = [
pathname: '/base-ui/react-dialog/hooks-api/#use-dialog-trigger',
title: 'useDialogTrigger',
},
- { pathname: '/base-ui/react-menu/hooks-api/#use-dropdown', title: 'useDropdown' },
{
pathname: '/base-ui/react-form-control/hooks-api/#use-form-control-context',
title: 'useFormControlContext',
},
- { pathname: '/base-ui/react-menu/hooks-api/#use-menu', title: 'useMenu' },
- {
- pathname: '/base-ui/react-menu/hooks-api/#use-menu-button',
- title: 'useMenuButton',
- },
- { pathname: '/base-ui/react-menu/hooks-api/#use-menu-item', title: 'useMenuItem' },
- {
- pathname: '/base-ui/react-menu/hooks-api/#use-menu-item-context-stabilizer',
- title: 'useMenuItemContextStabilizer',
- },
{
pathname: '/base-ui/react-number-field/hooks-api/#use-number-field-root',
title: 'useNumberFieldRoot',
diff --git a/docs/pages/base-ui/api/dropdown.json b/docs/pages/base-ui/api/dropdown.json
deleted file mode 100644
index 0f2455835b..0000000000
--- a/docs/pages/base-ui/api/dropdown.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "props": {
- "defaultOpen": { "type": { "name": "bool" } },
- "onOpenChange": { "type": { "name": "func" } },
- "open": { "type": { "name": "bool" } }
- },
- "name": "Dropdown",
- "imports": ["import { Dropdown } from '@base_ui/react/legacy/Dropdown';"],
- "classes": [],
- "spread": false,
- "themeDefaultProps": null,
- "muiName": "Dropdown",
- "filename": "/packages/mui-base/src/legacy/Dropdown/Dropdown.tsx",
- "inheritance": null,
- "demos": "",
- "cssComponent": false
-}
diff --git a/docs/pages/base-ui/api/menu-arrow.json b/docs/pages/base-ui/api/menu-arrow.json
new file mode 100644
index 0000000000..e03d97c5e5
--- /dev/null
+++ b/docs/pages/base-ui/api/menu-arrow.json
@@ -0,0 +1,18 @@
+{
+ "props": {
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "hideWhenUncentered": { "type": { "name": "bool" }, "default": "false" },
+ "render": { "type": { "name": "union", "description": "element | func" } }
+ },
+ "name": "MenuArrow",
+ "imports": ["import * as Menu from '@base_ui/react/Menu';\nconst MenuArrow = Menu.Arrow;"],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "MenuArrow",
+ "forwardsRefTo": "HTMLDivElement",
+ "filename": "/packages/mui-base/src/Menu/Arrow/MenuArrow.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/menu-button.json b/docs/pages/base-ui/api/menu-button.json
deleted file mode 100644
index 0111ac0f14..0000000000
--- a/docs/pages/base-ui/api/menu-button.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "props": {
- "className": { "type": { "name": "string" } },
- "disabled": { "type": { "name": "bool" }, "default": "false" },
- "focusableWhenDisabled": { "type": { "name": "bool" }, "default": "false" },
- "label": { "type": { "name": "string" } },
- "slotProps": {
- "type": { "name": "shape", "description": "{ root?: func | object }" },
- "default": "{}"
- },
- "slots": {
- "type": { "name": "shape", "description": "{ root?: elementType }" },
- "default": "{}",
- "additionalInfo": { "slotsApi": true }
- }
- },
- "name": "MenuButton",
- "imports": ["import { MenuButton } from '@base_ui/react/legacy/MenuButton';"],
- "classes": [],
- "spread": true,
- "muiName": "MenuButton",
- "forwardsRefTo": "HTMLButtonElement",
- "filename": "/packages/mui-base/src/legacy/MenuButton/MenuButton.tsx",
- "inheritance": null,
- "demos": "",
- "cssComponent": false
-}
diff --git a/docs/pages/base-ui/api/menu-item.json b/docs/pages/base-ui/api/menu-item.json
index b0a6b3cfdb..33242a8ebd 100644
--- a/docs/pages/base-ui/api/menu-item.json
+++ b/docs/pages/base-ui/api/menu-item.json
@@ -1,25 +1,19 @@
{
"props": {
+ "closeOnClick": { "type": { "name": "bool" }, "default": "true" },
"disabled": { "type": { "name": "bool" }, "default": "false" },
- "disableFocusOnHover": { "type": { "name": "bool" }, "default": "false" },
+ "id": { "type": { "name": "string" } },
"label": { "type": { "name": "string" } },
- "slotProps": {
- "type": { "name": "shape", "description": "{ root?: func | object }" },
- "default": "{}"
- },
- "slots": {
- "type": { "name": "shape", "description": "{ root?: elementType }" },
- "default": "{}",
- "additionalInfo": { "slotsApi": true }
- }
+ "onClick": { "type": { "name": "func" } }
},
"name": "MenuItem",
- "imports": ["import { MenuItem } from '@base_ui/react/legacy/MenuItem';"],
+ "imports": ["import * as Menu from '@base_ui/react/Menu';\nconst MenuItem = Menu.Item;"],
"classes": [],
"spread": true,
+ "themeDefaultProps": true,
"muiName": "MenuItem",
- "forwardsRefTo": "HTMLLIElement",
- "filename": "/packages/mui-base/src/legacy/MenuItem/MenuItem.tsx",
+ "forwardsRefTo": "HTMLDivElement",
+ "filename": "/packages/mui-base/src/Menu/Item/MenuItem.tsx",
"inheritance": null,
"demos": "",
"cssComponent": false
diff --git a/docs/pages/base-ui/api/menu-popup.json b/docs/pages/base-ui/api/menu-popup.json
new file mode 100644
index 0000000000..b9877029ee
--- /dev/null
+++ b/docs/pages/base-ui/api/menu-popup.json
@@ -0,0 +1,18 @@
+{
+ "props": {
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "id": { "type": { "name": "string" } },
+ "render": { "type": { "name": "union", "description": "element | func" } }
+ },
+ "name": "MenuPopup",
+ "imports": ["import * as Menu from '@base_ui/react/Menu';\nconst MenuPopup = Menu.Popup;"],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "MenuPopup",
+ "forwardsRefTo": "HTMLDivElement",
+ "filename": "/packages/mui-base/src/Menu/Popup/MenuPopup.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/menu-positioner.json b/docs/pages/base-ui/api/menu-positioner.json
new file mode 100644
index 0000000000..3a18b00470
--- /dev/null
+++ b/docs/pages/base-ui/api/menu-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": "'bottom'"
+ },
+ "sideOffset": { "type": { "name": "number" }, "default": "0" },
+ "sticky": { "type": { "name": "bool" }, "default": "false" }
+ },
+ "name": "MenuPositioner",
+ "imports": [
+ "import * as Menu from '@base_ui/react/Menu';\nconst MenuPositioner = Menu.Positioner;"
+ ],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "MenuPositioner",
+ "forwardsRefTo": "HTMLDivElement",
+ "filename": "/packages/mui-base/src/Menu/Positioner/MenuPositioner.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/menu-root.json b/docs/pages/base-ui/api/menu-root.json
new file mode 100644
index 0000000000..d09796e5eb
--- /dev/null
+++ b/docs/pages/base-ui/api/menu-root.json
@@ -0,0 +1,31 @@
+{
+ "props": {
+ "animated": { "type": { "name": "bool" }, "default": "true" },
+ "closeParentOnEsc": { "type": { "name": "bool" }, "default": "true" },
+ "defaultOpen": { "type": { "name": "bool" }, "default": "false" },
+ "delay": { "type": { "name": "number" }, "default": "100" },
+ "dir": {
+ "type": { "name": "enum", "description": "'ltr' | 'rtl'" },
+ "default": "'ltr'"
+ },
+ "disabled": { "type": { "name": "bool" }, "default": "false" },
+ "loop": { "type": { "name": "bool" }, "default": "true" },
+ "onOpenChange": { "type": { "name": "func" } },
+ "open": { "type": { "name": "bool" } },
+ "openOnHover": { "type": { "name": "bool" }, "default": "nested" },
+ "orientation": {
+ "type": { "name": "enum", "description": "'horizontal' | 'vertical'" },
+ "default": "'vertical'"
+ }
+ },
+ "name": "MenuRoot",
+ "imports": ["import * as Menu from '@base_ui/react/Menu';\nconst MenuRoot = Menu.Root;"],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": null,
+ "muiName": "MenuRoot",
+ "filename": "/packages/mui-base/src/Menu/Root/MenuRoot.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/menu-trigger.json b/docs/pages/base-ui/api/menu-trigger.json
new file mode 100644
index 0000000000..231b072df3
--- /dev/null
+++ b/docs/pages/base-ui/api/menu-trigger.json
@@ -0,0 +1,20 @@
+{
+ "props": {
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "disabled": { "type": { "name": "bool" }, "default": "false" },
+ "focusableWhenDisabled": { "type": { "name": "bool" }, "default": "false" },
+ "label": { "type": { "name": "string" } },
+ "render": { "type": { "name": "union", "description": "element | func" } }
+ },
+ "name": "MenuTrigger",
+ "imports": ["import * as Menu from '@base_ui/react/Menu';\nconst MenuTrigger = Menu.Trigger;"],
+ "classes": [],
+ "spread": true,
+ "themeDefaultProps": true,
+ "muiName": "MenuTrigger",
+ "forwardsRefTo": "HTMLButtonElement",
+ "filename": "/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/menu.json b/docs/pages/base-ui/api/menu.json
deleted file mode 100644
index 86e9c7ae90..0000000000
--- a/docs/pages/base-ui/api/menu.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "props": {
- "actions": { "type": { "name": "custom", "description": "ref" } },
- "anchor": {
- "type": {
- "name": "union",
- "description": "HTML element | object | func"
- }
- },
- "onItemsChange": { "type": { "name": "func" } },
- "slotProps": {
- "type": {
- "name": "shape",
- "description": "{ listbox?: func | object, root?: func | object }"
- },
- "default": "{}"
- },
- "slots": {
- "type": { "name": "shape", "description": "{ listbox?: elementType, root?: elementType }" },
- "default": "{}",
- "additionalInfo": { "slotsApi": true }
- }
- },
- "name": "Menu",
- "imports": ["import { Menu } from '@base_ui/react/legacy/Menu';"],
- "classes": [],
- "spread": true,
- "muiName": "Menu",
- "forwardsRefTo": "HTMLDivElement",
- "filename": "/packages/mui-base/src/legacy/Menu/Menu.tsx",
- "inheritance": null,
- "demos": "",
- "cssComponent": false
-}
diff --git a/docs/pages/base-ui/api/submenu-trigger.json b/docs/pages/base-ui/api/submenu-trigger.json
new file mode 100644
index 0000000000..fc5a0e413f
--- /dev/null
+++ b/docs/pages/base-ui/api/submenu-trigger.json
@@ -0,0 +1,17 @@
+{
+ "props": {
+ "className": { "type": { "name": "union", "description": "func | string" } },
+ "disabled": { "type": { "name": "bool" }, "default": "false" },
+ "disableFocusOnHover": { "type": { "name": "bool" }, "default": "false" },
+ "label": { "type": { "name": "string" } },
+ "render": { "type": { "name": "union", "description": "element | func" } }
+ },
+ "name": "SubmenuTrigger",
+ "imports": ["import { SubmenuTrigger } from '@base_ui/react/Menu';"],
+ "classes": [],
+ "muiName": "SubmenuTrigger",
+ "filename": "/packages/mui-base/src/Menu/SubmenuTrigger/SubmenuTrigger.tsx",
+ "inheritance": null,
+ "demos": "",
+ "cssComponent": false
+}
diff --git a/docs/pages/base-ui/api/use-dropdown.json b/docs/pages/base-ui/api/use-dropdown.json
deleted file mode 100644
index 33286c2758..0000000000
--- a/docs/pages/base-ui/api/use-dropdown.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "parameters": {},
- "returnValue": {},
- "name": "useDropdown",
- "filename": "/packages/mui-base/src/legacy/useDropdown/useDropdown.ts",
- "imports": ["import { useDropdown } from '@base_ui/react/legacy/useDropdown';"],
- "demos": ""
-}
diff --git a/docs/pages/base-ui/api/use-menu-arrow.json b/docs/pages/base-ui/api/use-menu-arrow.json
new file mode 100644
index 0000000000..2caebb442c
--- /dev/null
+++ b/docs/pages/base-ui/api/use-menu-arrow.json
@@ -0,0 +1,8 @@
+{
+ "parameters": {},
+ "returnValue": {},
+ "name": "useMenuArrow",
+ "filename": "/packages/mui-base/src/Menu/Arrow/useMenuArrow.ts",
+ "imports": ["import { useMenuArrow } from '@base_ui/react/Menu';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/api/use-menu-button.json b/docs/pages/base-ui/api/use-menu-button.json
deleted file mode 100644
index 5fe1443dd4..0000000000
--- a/docs/pages/base-ui/api/use-menu-button.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "parameters": {},
- "returnValue": {},
- "name": "useMenuButton",
- "filename": "/packages/mui-base/src/legacy/useMenuButton/useMenuButton.ts",
- "imports": ["import { useMenuButton } from '@base_ui/react/legacy/useMenuButton';"],
- "demos": ""
-}
diff --git a/docs/pages/base-ui/api/use-menu-item-context-stabilizer.json b/docs/pages/base-ui/api/use-menu-item-context-stabilizer.json
deleted file mode 100644
index 8e062090c7..0000000000
--- a/docs/pages/base-ui/api/use-menu-item-context-stabilizer.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "parameters": {},
- "returnValue": {},
- "name": "useMenuItemContextStabilizer",
- "filename": "/packages/mui-base/src/legacy/useMenuItem/useMenuItemContextStabilizer.ts",
- "imports": ["import { useMenuItemContextStabilizer } from '@base_ui/react/legacy/useMenuItem';"],
- "demos": ""
-}
diff --git a/docs/pages/base-ui/api/use-menu-item.json b/docs/pages/base-ui/api/use-menu-item.json
index 40b8bda287..447e11f141 100644
--- a/docs/pages/base-ui/api/use-menu-item.json
+++ b/docs/pages/base-ui/api/use-menu-item.json
@@ -2,7 +2,7 @@
"parameters": {},
"returnValue": {},
"name": "useMenuItem",
- "filename": "/packages/mui-base/src/legacy/useMenuItem/useMenuItem.ts",
- "imports": ["import { useMenuItem } from '@base_ui/react/legacy/useMenuItem';"],
- "demos": ""
+ "filename": "/packages/mui-base/src/Menu/Item/useMenuItem.ts",
+ "imports": ["import { useMenuItem } from '@base_ui/react/Menu';"],
+ "demos": ""
}
diff --git a/docs/pages/base-ui/api/use-menu-popup.json b/docs/pages/base-ui/api/use-menu-popup.json
new file mode 100644
index 0000000000..d0a0a34d06
--- /dev/null
+++ b/docs/pages/base-ui/api/use-menu-popup.json
@@ -0,0 +1,8 @@
+{
+ "parameters": {},
+ "returnValue": {},
+ "name": "useMenuPopup",
+ "filename": "/packages/mui-base/src/Menu/Popup/useMenuPopup.ts",
+ "imports": ["import { useMenuPopup } from '@base_ui/react/Menu';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/api/use-menu-positioner.json b/docs/pages/base-ui/api/use-menu-positioner.json
new file mode 100644
index 0000000000..307a3ac646
--- /dev/null
+++ b/docs/pages/base-ui/api/use-menu-positioner.json
@@ -0,0 +1,8 @@
+{
+ "parameters": {},
+ "returnValue": {},
+ "name": "useMenuPositioner",
+ "filename": "/packages/mui-base/src/Menu/Positioner/useMenuPositioner.ts",
+ "imports": ["import { useMenuPositioner } from '@base_ui/react/Menu';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/api/use-menu-root.json b/docs/pages/base-ui/api/use-menu-root.json
new file mode 100644
index 0000000000..e93c096533
--- /dev/null
+++ b/docs/pages/base-ui/api/use-menu-root.json
@@ -0,0 +1,8 @@
+{
+ "parameters": {},
+ "returnValue": {},
+ "name": "useMenuRoot",
+ "filename": "/packages/mui-base/src/Menu/Root/useMenuRoot.ts",
+ "imports": ["import { useMenuRoot } from '@base_ui/react/Menu';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/api/use-menu-trigger.json b/docs/pages/base-ui/api/use-menu-trigger.json
new file mode 100644
index 0000000000..f83b4b083e
--- /dev/null
+++ b/docs/pages/base-ui/api/use-menu-trigger.json
@@ -0,0 +1,8 @@
+{
+ "parameters": {},
+ "returnValue": {},
+ "name": "useMenuTrigger",
+ "filename": "/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts",
+ "imports": ["import { useMenuTrigger } from '@base_ui/react/Menu';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/api/use-menu.json b/docs/pages/base-ui/api/use-menu.json
deleted file mode 100644
index 76ef066b9f..0000000000
--- a/docs/pages/base-ui/api/use-menu.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "parameters": {},
- "returnValue": {},
- "name": "useMenu",
- "filename": "/packages/mui-base/src/legacy/useMenu/useMenu.ts",
- "imports": ["import { useMenu } from '@base_ui/react/legacy/useMenu';"],
- "demos": ""
-}
diff --git a/docs/pages/base-ui/api/use-submenu-trigger.json b/docs/pages/base-ui/api/use-submenu-trigger.json
new file mode 100644
index 0000000000..11e7831041
--- /dev/null
+++ b/docs/pages/base-ui/api/use-submenu-trigger.json
@@ -0,0 +1,8 @@
+{
+ "parameters": {},
+ "returnValue": {},
+ "name": "useSubmenuTrigger",
+ "filename": "/packages/mui-base/src/Menu/SubmenuTrigger/useSubmenuTrigger.ts",
+ "imports": ["import { useSubmenuTrigger } from '@base_ui/react/Menu';"],
+ "demos": ""
+}
diff --git a/docs/pages/base-ui/react-menu/[docsTab]/index.js b/docs/pages/base-ui/react-menu/[docsTab]/index.js
index 01c21cb53f..06242862d2 100644
--- a/docs/pages/base-ui/react-menu/[docsTab]/index.js
+++ b/docs/pages/base-ui/react-menu/[docsTab]/index.js
@@ -3,15 +3,13 @@ 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/menu/menu.md?@mui/markdown';
import mapApiPageTranslations from 'docs/src/modules/utils/mapApiPageTranslations';
-import DropdownApiJsonPageContent from '../../api/dropdown.json';
-import MenuApiJsonPageContent from '../../api/menu.json';
-import MenuButtonApiJsonPageContent from '../../api/menu-button.json';
+import MenuArrowApiJsonPageContent from '../../api/menu-arrow.json';
import MenuItemApiJsonPageContent from '../../api/menu-item.json';
-import useDropdownApiJsonPageContent from '../../api/use-dropdown.json';
-import useMenuApiJsonPageContent from '../../api/use-menu.json';
-import useMenuButtonApiJsonPageContent from '../../api/use-menu-button.json';
-import useMenuItemApiJsonPageContent from '../../api/use-menu-item.json';
-import useMenuItemContextStabilizerApiJsonPageContent from '../../api/use-menu-item-context-stabilizer.json';
+import MenuPopupApiJsonPageContent from '../../api/menu-popup.json';
+import MenuPositionerApiJsonPageContent from '../../api/menu-positioner.json';
+import MenuRootApiJsonPageContent from '../../api/menu-root.json';
+import MenuTriggerApiJsonPageContent from '../../api/menu-trigger.json';
+import SubmenuTriggerApiJsonPageContent from '../../api/submenu-trigger.json';
export default function Page(props) {
const { userLanguage, ...other } = props;
@@ -30,26 +28,12 @@ export const getStaticPaths = () => {
};
export const getStaticProps = () => {
- const DropdownApiReq = require.context(
- 'docs-base/translations/api-docs/dropdown',
+ const MenuArrowApiReq = require.context(
+ 'docs-base/translations/api-docs/menu-arrow',
false,
- /\.\/dropdown.*.json$/,
+ /\.\/menu-arrow.*.json$/,
);
- const DropdownApiDescriptions = mapApiPageTranslations(DropdownApiReq);
-
- const MenuApiReq = require.context(
- 'docs-base/translations/api-docs/menu',
- false,
- /\.\/menu.*.json$/,
- );
- const MenuApiDescriptions = mapApiPageTranslations(MenuApiReq);
-
- const MenuButtonApiReq = require.context(
- 'docs-base/translations/api-docs/menu-button',
- false,
- /\.\/menu-button.*.json$/,
- );
- const MenuButtonApiDescriptions = mapApiPageTranslations(MenuButtonApiReq);
+ const MenuArrowApiDescriptions = mapApiPageTranslations(MenuArrowApiReq);
const MenuItemApiReq = require.context(
'docs-base/translations/api-docs/menu-item',
@@ -58,71 +42,63 @@ export const getStaticProps = () => {
);
const MenuItemApiDescriptions = mapApiPageTranslations(MenuItemApiReq);
- const useDropdownApiReq = require.context(
- 'docs-base/translations/api-docs/use-dropdown',
+ const MenuPopupApiReq = require.context(
+ 'docs-base/translations/api-docs/menu-popup',
false,
- /\.\/use-dropdown.*.json$/,
+ /\.\/menu-popup.*.json$/,
);
- const useDropdownApiDescriptions = mapApiPageTranslations(useDropdownApiReq);
+ const MenuPopupApiDescriptions = mapApiPageTranslations(MenuPopupApiReq);
- const useMenuApiReq = require.context(
- 'docs-base/translations/api-docs/use-menu',
+ const MenuPositionerApiReq = require.context(
+ 'docs-base/translations/api-docs/menu-positioner',
false,
- /\.\/use-menu.*.json$/,
+ /\.\/menu-positioner.*.json$/,
);
- const useMenuApiDescriptions = mapApiPageTranslations(useMenuApiReq);
+ const MenuPositionerApiDescriptions = mapApiPageTranslations(MenuPositionerApiReq);
- const useMenuButtonApiReq = require.context(
- 'docs-base/translations/api-docs/use-menu-button',
+ const MenuRootApiReq = require.context(
+ 'docs-base/translations/api-docs/menu-root',
false,
- /\.\/use-menu-button.*.json$/,
+ /\.\/menu-root.*.json$/,
);
- const useMenuButtonApiDescriptions = mapApiPageTranslations(useMenuButtonApiReq);
+ const MenuRootApiDescriptions = mapApiPageTranslations(MenuRootApiReq);
- const useMenuItemApiReq = require.context(
- 'docs-base/translations/api-docs/use-menu-item',
+ const MenuTriggerApiReq = require.context(
+ 'docs-base/translations/api-docs/menu-trigger',
false,
- /\.\/use-menu-item.*.json$/,
+ /\.\/menu-trigger.*.json$/,
);
- const useMenuItemApiDescriptions = mapApiPageTranslations(useMenuItemApiReq);
+ const MenuTriggerApiDescriptions = mapApiPageTranslations(MenuTriggerApiReq);
- const useMenuItemContextStabilizerApiReq = require.context(
- 'docs-base/translations/api-docs/use-menu-item-context-stabilizer',
+ const SubmenuTriggerApiReq = require.context(
+ 'docs-base/translations/api-docs/submenu-trigger',
false,
- /\.\/use-menu-item-context-stabilizer.*.json$/,
- );
- const useMenuItemContextStabilizerApiDescriptions = mapApiPageTranslations(
- useMenuItemContextStabilizerApiReq,
+ /\.\/submenu-trigger.*.json$/,
);
+ const SubmenuTriggerApiDescriptions = mapApiPageTranslations(SubmenuTriggerApiReq);
return {
props: {
componentsApiDescriptions: {
- Dropdown: DropdownApiDescriptions,
- Menu: MenuApiDescriptions,
- MenuButton: MenuButtonApiDescriptions,
+ MenuArrow: MenuArrowApiDescriptions,
MenuItem: MenuItemApiDescriptions,
+ MenuPopup: MenuPopupApiDescriptions,
+ MenuPositioner: MenuPositionerApiDescriptions,
+ MenuRoot: MenuRootApiDescriptions,
+ MenuTrigger: MenuTriggerApiDescriptions,
+ SubmenuTrigger: SubmenuTriggerApiDescriptions,
},
componentsApiPageContents: {
- Dropdown: DropdownApiJsonPageContent,
- Menu: MenuApiJsonPageContent,
- MenuButton: MenuButtonApiJsonPageContent,
+ MenuArrow: MenuArrowApiJsonPageContent,
MenuItem: MenuItemApiJsonPageContent,
+ MenuPopup: MenuPopupApiJsonPageContent,
+ MenuPositioner: MenuPositionerApiJsonPageContent,
+ MenuRoot: MenuRootApiJsonPageContent,
+ MenuTrigger: MenuTriggerApiJsonPageContent,
+ SubmenuTrigger: SubmenuTriggerApiJsonPageContent,
},
- hooksApiDescriptions: {
- useDropdown: useDropdownApiDescriptions,
- useMenu: useMenuApiDescriptions,
- useMenuButton: useMenuButtonApiDescriptions,
- useMenuItem: useMenuItemApiDescriptions,
- useMenuItemContextStabilizer: useMenuItemContextStabilizerApiDescriptions,
- },
- hooksApiPageContents: {
- useDropdown: useDropdownApiJsonPageContent,
- useMenu: useMenuApiJsonPageContent,
- useMenuButton: useMenuButtonApiJsonPageContent,
- useMenuItem: useMenuItemApiJsonPageContent,
- useMenuItemContextStabilizer: useMenuItemContextStabilizerApiJsonPageContent,
- },
+ hooksApiDescriptions: {},
+ hooksApiPageContents: {},
},
};
};
diff --git a/docs/translations/api-docs/dropdown/dropdown.json b/docs/translations/api-docs/dropdown/dropdown.json
deleted file mode 100644
index 2a8cab7592..0000000000
--- a/docs/translations/api-docs/dropdown/dropdown.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "componentDescription": "",
- "propDescriptions": {
- "defaultOpen": { "description": "If true
, the dropdown is initially open." },
- "onOpenChange": {
- "description": "Callback fired when the component requests to be opened or closed."
- },
- "open": {
- "description": "Allows to control whether the dropdown is open. This is a controlled counterpart of defaultOpen
."
- }
- },
- "classDescriptions": {}
-}
diff --git a/docs/translations/api-docs/menu-arrow/menu-arrow.json b/docs/translations/api-docs/menu-arrow/menu-arrow.json
new file mode 100644
index 0000000000..ab725d8495
--- /dev/null
+++ b/docs/translations/api-docs/menu-arrow/menu-arrow.json
@@ -0,0 +1,13 @@
+{
+ "componentDescription": "Renders an arrow that points to the center of the anchor 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 is 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/menu-item/menu-item.json b/docs/translations/api-docs/menu-item/menu-item.json
index b394c325a0..46541ccb2f 100644
--- a/docs/translations/api-docs/menu-item/menu-item.json
+++ b/docs/translations/api-docs/menu-item/menu-item.json
@@ -1,17 +1,15 @@
{
"componentDescription": "An unstyled menu item to be used within a Menu.",
"propDescriptions": {
- "disabled": { "description": "If true
, the menu item will be disabled." },
- "disableFocusOnHover": {
- "description": "If true
, the menu item won't receive focus when the mouse moves over it."
+ "closeOnClick": {
+ "description": "If true
, the menu will close when the menu item is clicked."
},
+ "disabled": { "description": "If true
, the menu item will be disabled." },
+ "id": { "description": "The id of the menu item." },
"label": {
"description": "A text representation of the menu item's content. Used for keyboard text navigation matching."
},
- "slotProps": { "description": "The props used for each slot inside the MenuItem." },
- "slots": {
- "description": "The components used for each slot inside the MenuItem. Either a string to use a HTML element or a component."
- }
+ "onClick": { "description": "The click handler for the menu item." }
},
"classDescriptions": {}
}
diff --git a/docs/translations/api-docs/menu-popup/menu-popup.json b/docs/translations/api-docs/menu-popup/menu-popup.json
new file mode 100644
index 0000000000..4a1c0a2068
--- /dev/null
+++ b/docs/translations/api-docs/menu-popup/menu-popup.json
@@ -0,0 +1,11 @@
+{
+ "componentDescription": "",
+ "propDescriptions": {
+ "className": {
+ "description": "Class names applied to the element or a function that returns them based on the component's state."
+ },
+ "id": { "description": "The id of the popup element." },
+ "render": { "description": "A function to customize rendering of the component." }
+ },
+ "classDescriptions": {}
+}
diff --git a/docs/translations/api-docs/menu-positioner/menu-positioner.json b/docs/translations/api-docs/menu-positioner/menu-positioner.json
new file mode 100644
index 0000000000..23fd5b5ac1
--- /dev/null
+++ b/docs/translations/api-docs/menu-positioner/menu-positioner.json
@@ -0,0 +1,43 @@
+{
+ "componentDescription": "Renders the element that positions the Menu popup.",
+ "propDescriptions": {
+ "alignment": {
+ "description": "The alignment of the Menu element to the anchor element along its cross axis."
+ },
+ "alignmentOffset": {
+ "description": "The offset of the Menu element along its alignment axis."
+ },
+ "anchor": { "description": "The anchor element to which the Menu popup will be placed at." },
+ "arrowPadding": {
+ "description": "Determines the padding between the arrow and the Menu popup's edges. Useful when the popover 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 Menu element should be constrained to."
+ },
+ "collisionPadding": { "description": "The padding of the collision boundary." },
+ "container": {
+ "description": "The container element to which the Menu popup will be appended to."
+ },
+ "hideWhenDetached": {
+ "description": "If true
, the Menu will be hidden if it is detached from its anchor element due to differing clipping contexts."
+ },
+ "keepMounted": {
+ "description": "Whether the menu popup remains mounted in the DOM while closed."
+ },
+ "positionStrategy": {
+ "description": "The CSS position strategy for positioning the Menu popup element."
+ },
+ "render": { "description": "A function to customize rendering of the component." },
+ "side": {
+ "description": "The side of the anchor element that the Menu element should align to."
+ },
+ "sideOffset": { "description": "The gap between the anchor element and the Menu element." },
+ "sticky": {
+ "description": "If true
, allow the Menu to remain in stuck view while the anchor element is scrolled out of view."
+ }
+ },
+ "classDescriptions": {}
+}
diff --git a/docs/translations/api-docs/menu-root/menu-root.json b/docs/translations/api-docs/menu-root/menu-root.json
new file mode 100644
index 0000000000..303ba55e4d
--- /dev/null
+++ b/docs/translations/api-docs/menu-root/menu-root.json
@@ -0,0 +1,31 @@
+{
+ "componentDescription": "",
+ "propDescriptions": {
+ "animated": {
+ "description": "If true
, the Menu supports CSS-based animations and transitions. It is kept in the DOM until the animation completes."
+ },
+ "closeParentOnEsc": {
+ "description": "Determines if pressing the Esc key closes the parent menus. This is only applicable for nested menus. If set to false
pressing Esc closes only the current menu."
+ },
+ "defaultOpen": { "description": "If true
, the Menu is initially open." },
+ "delay": {
+ "description": "The delay in milliseconds until the menu popup is opened when openOnHover
is true
."
+ },
+ "dir": { "description": "The direction of the Menu (left-to-right or right-to-left)." },
+ "disabled": { "description": "If true
, the Menu is disabled." },
+ "loop": {
+ "description": "If true
, using keyboard navigation will wrap focus to the other end of the list once the end is reached."
+ },
+ "onOpenChange": {
+ "description": "Callback fired when the component requests to be opened or closed."
+ },
+ "open": {
+ "description": "Allows to control whether the dropdown is open. This is a controlled counterpart of defaultOpen
."
+ },
+ "openOnHover": {
+ "description": "Whether the menu popup opens when the trigger is hovered after the provided delay
."
+ },
+ "orientation": { "description": "The orientation of the Menu (horizontal or vertical)." }
+ },
+ "classDescriptions": {}
+}
diff --git a/docs/translations/api-docs/menu-button/menu-button.json b/docs/translations/api-docs/menu-trigger/menu-trigger.json
similarity index 53%
rename from docs/translations/api-docs/menu-button/menu-button.json
rename to docs/translations/api-docs/menu-trigger/menu-trigger.json
index b8483773fb..814aa3e491 100644
--- a/docs/translations/api-docs/menu-button/menu-button.json
+++ b/docs/translations/api-docs/menu-trigger/menu-trigger.json
@@ -1,16 +1,15 @@
{
"componentDescription": "",
"propDescriptions": {
- "className": { "description": "Class name applied to the root element." },
+ "className": {
+ "description": "Class names applied to the element or a function that returns them based on the component's state."
+ },
"disabled": { "description": "If true
, the component is disabled." },
"focusableWhenDisabled": {
"description": "If true
, allows a disabled button to receive focus."
},
"label": { "description": "Label of the button" },
- "slotProps": {
- "description": "The components used for each slot inside the MenuButton. Either a string to use a HTML element or a component."
- },
- "slots": { "description": "The props used for each slot inside the MenuButton." }
+ "render": { "description": "A function to customize rendering of the component." }
},
"classDescriptions": {}
}
diff --git a/docs/translations/api-docs/menu/menu.json b/docs/translations/api-docs/menu/menu.json
deleted file mode 100644
index 8a099d8f0a..0000000000
--- a/docs/translations/api-docs/menu/menu.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "componentDescription": "",
- "propDescriptions": {
- "actions": {
- "description": "A ref with imperative actions that can be performed on the menu."
- },
- "anchor": { "description": "The element based on which the menu is positioned." },
- "onItemsChange": {
- "description": "Function called when the items displayed in the menu change."
- },
- "slotProps": { "description": "The props used for each slot inside the Menu." },
- "slots": {
- "description": "The components used for each slot inside the Menu. Either a string to use a HTML element or a component."
- }
- },
- "classDescriptions": {}
-}
diff --git a/docs/translations/api-docs/submenu-trigger/submenu-trigger.json b/docs/translations/api-docs/submenu-trigger/submenu-trigger.json
new file mode 100644
index 0000000000..fc150adb6b
--- /dev/null
+++ b/docs/translations/api-docs/submenu-trigger/submenu-trigger.json
@@ -0,0 +1,17 @@
+{
+ "componentDescription": "",
+ "propDescriptions": {
+ "className": {
+ "description": "Class names applied to the element or a function that returns them based on the component's state."
+ },
+ "disabled": { "description": "If true
, the menu item will be disabled." },
+ "disableFocusOnHover": {
+ "description": "If true
, the menu item won't receive focus when the mouse moves over it."
+ },
+ "label": {
+ "description": "A text representation of the menu item's content. Used for keyboard text navigation matching."
+ },
+ "render": { "description": "A function to customize rendering of the component." }
+ },
+ "classDescriptions": {}
+}
diff --git a/docs/translations/api-docs/use-dropdown/use-dropdown.json b/docs/translations/api-docs/use-menu-arrow/use-menu-arrow.json
similarity index 100%
rename from docs/translations/api-docs/use-dropdown/use-dropdown.json
rename to docs/translations/api-docs/use-menu-arrow/use-menu-arrow.json
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
deleted file mode 100644
index e9fb6768d1..0000000000
--- a/docs/translations/api-docs/use-menu-item-context-stabilizer/use-menu-item-context-stabilizer.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "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-menu-button/use-menu-button.json b/docs/translations/api-docs/use-menu-popup/use-menu-popup.json
similarity index 100%
rename from docs/translations/api-docs/use-menu-button/use-menu-button.json
rename to docs/translations/api-docs/use-menu-popup/use-menu-popup.json
diff --git a/docs/translations/api-docs/use-menu/use-menu.json b/docs/translations/api-docs/use-menu-positioner/use-menu-positioner.json
similarity index 100%
rename from docs/translations/api-docs/use-menu/use-menu.json
rename to docs/translations/api-docs/use-menu-positioner/use-menu-positioner.json
diff --git a/docs/translations/api-docs/use-menu-root/use-menu-root.json b/docs/translations/api-docs/use-menu-root/use-menu-root.json
new file mode 100644
index 0000000000..e3eb65c6e4
--- /dev/null
+++ b/docs/translations/api-docs/use-menu-root/use-menu-root.json
@@ -0,0 +1 @@
+{ "hookDescription": "", "parametersDescriptions": {}, "returnValueDescriptions": {} }
diff --git a/docs/translations/api-docs/use-menu-trigger/use-menu-trigger.json b/docs/translations/api-docs/use-menu-trigger/use-menu-trigger.json
new file mode 100644
index 0000000000..e3eb65c6e4
--- /dev/null
+++ b/docs/translations/api-docs/use-menu-trigger/use-menu-trigger.json
@@ -0,0 +1 @@
+{ "hookDescription": "", "parametersDescriptions": {}, "returnValueDescriptions": {} }
diff --git a/docs/translations/api-docs/use-submenu-trigger/use-submenu-trigger.json b/docs/translations/api-docs/use-submenu-trigger/use-submenu-trigger.json
new file mode 100644
index 0000000000..e3eb65c6e4
--- /dev/null
+++ b/docs/translations/api-docs/use-submenu-trigger/use-submenu-trigger.json
@@ -0,0 +1 @@
+{ "hookDescription": "", "parametersDescriptions": {}, "returnValueDescriptions": {} }
diff --git a/docs/translations/translations.json b/docs/translations/translations.json
index eb4c2c061d..fc91ba4b6e 100644
--- a/docs/translations/translations.json
+++ b/docs/translations/translations.json
@@ -233,6 +233,7 @@
"/base-ui/react-dialog": "Dialog",
"/base-ui/react-progress": "Progress",
"navigation": "Navigation",
+ "/base-ui/react-menu": "Menu",
"/base-ui/react-tabs": "Tabs",
"/base-ui/guides": "How-to guides",
"/base-ui/guides/next-js-app-router": "Next.js App Router"
diff --git a/packages/mui-base/src/Menu/Arrow/MenuArrow.test.tsx b/packages/mui-base/src/Menu/Arrow/MenuArrow.test.tsx
new file mode 100644
index 0000000000..b121e8e80d
--- /dev/null
+++ b/packages/mui-base/src/Menu/Arrow/MenuArrow.test.tsx
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { createRenderer, describeConformance } from '../../../test';
+
+describe(' ', () => {
+ const { render } = createRenderer();
+
+ describeConformance( , () => ({
+ inheritComponent: 'div',
+ refInstanceof: window.HTMLDivElement,
+ render(node) {
+ return render(
+
+
+ {node}
+
+ ,
+ );
+ },
+ }));
+});
diff --git a/packages/mui-base/src/Menu/Arrow/MenuArrow.tsx b/packages/mui-base/src/Menu/Arrow/MenuArrow.tsx
new file mode 100644
index 0000000000..dcf8bb5719
--- /dev/null
+++ b/packages/mui-base/src/Menu/Arrow/MenuArrow.tsx
@@ -0,0 +1,104 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useMenuArrow } from './useMenuArrow';
+import { useMenuPositionerContext } from '../Positioner/MenuPositionerContext';
+import { useMenuRootContext } from '../Root/MenuRootContext';
+import { commonStyleHooks } from '../utils/commonStyleHooks';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useForkRef } from '../../utils/useForkRef';
+import type { Side, Alignment } from '../../utils/useAnchorPositioning';
+import type { BaseUIComponentProps } from '../../utils/types';
+
+/**
+ * Renders an arrow that points to the center of the anchor element.
+ *
+ * Demos:
+ *
+ * - [Menu](https://mui.com/base-ui/react-menu/)
+ *
+ * API:
+ *
+ * - [MenuArrow API](https://mui.com/base-ui/react-menu/components-api/#menu-arrow)
+ */
+const MenuArrow = React.forwardRef(function MenuArrow(
+ props: MenuArrow.Props,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { className, render, hideWhenUncentered = false, ...otherProps } = props;
+
+ const { open } = useMenuRootContext();
+ const { arrowRef, side, alignment, arrowUncentered, arrowStyles } = useMenuPositionerContext();
+
+ const { getArrowProps } = useMenuArrow({
+ arrowStyles,
+ hidden: hideWhenUncentered && arrowUncentered,
+ });
+
+ const ownerState: MenuArrow.OwnerState = React.useMemo(
+ () => ({
+ open,
+ side,
+ alignment,
+ arrowUncentered,
+ }),
+ [open, side, alignment, arrowUncentered],
+ );
+
+ const mergedRef = useForkRef(arrowRef, forwardedRef);
+
+ const { renderElement } = useComponentRenderer({
+ propGetter: getArrowProps,
+ render: render ?? 'div',
+ className,
+ ownerState,
+ ref: mergedRef,
+ extraProps: otherProps,
+ customStyleHookMapping: commonStyleHooks,
+ });
+
+ return renderElement();
+});
+
+namespace MenuArrow {
+ export type OwnerState = {
+ open: boolean;
+ side: Side;
+ alignment: Alignment;
+ arrowUncentered: boolean;
+ };
+
+ export interface Props extends BaseUIComponentProps<'div', OwnerState> {
+ /**
+ * If `true`, the arrow is hidden when it can't point to the center of the anchor element.
+ * @default false
+ */
+ hideWhenUncentered?: boolean;
+ }
+}
+
+MenuArrow.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 is 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]),
+} as any;
+
+export { MenuArrow };
diff --git a/packages/mui-base/src/Menu/Arrow/useMenuArrow.ts b/packages/mui-base/src/Menu/Arrow/useMenuArrow.ts
new file mode 100644
index 0000000000..becddbf0ba
--- /dev/null
+++ b/packages/mui-base/src/Menu/Arrow/useMenuArrow.ts
@@ -0,0 +1,41 @@
+'use client';
+import * as React from 'react';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import type { GenericHTMLProps } from '../../utils/types';
+
+/**
+ *
+ * API:
+ *
+ * - [useMenuArrow API](https://mui.com/base-ui/api/use-menu-arrow/)
+ */
+export function useMenuArrow(params: useMenuArrow.Parameters): useMenuArrow.ReturnValue {
+ const { arrowStyles } = params;
+
+ const getArrowProps = React.useCallback(
+ (externalProps = {}) => {
+ return mergeReactProps<'div'>(externalProps, {
+ style: arrowStyles,
+ });
+ },
+ [arrowStyles],
+ );
+
+ return React.useMemo(
+ () => ({
+ getArrowProps,
+ }),
+ [getArrowProps],
+ );
+}
+
+export namespace useMenuArrow {
+ export interface Parameters {
+ arrowStyles: React.CSSProperties;
+ hidden?: boolean;
+ }
+
+ export interface ReturnValue {
+ getArrowProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ }
+}
diff --git a/packages/mui-base/src/Menu/Item/MenuItem.test.tsx b/packages/mui-base/src/Menu/Item/MenuItem.test.tsx
new file mode 100644
index 0000000000..99bbbb0ed2
--- /dev/null
+++ b/packages/mui-base/src/Menu/Item/MenuItem.test.tsx
@@ -0,0 +1,156 @@
+import * as React from 'react';
+import { expect } from 'chai';
+import { spy } from 'sinon';
+import userEvent from '@testing-library/user-event';
+import { fireEvent, act, waitFor } from '@mui/internal-test-utils';
+import { FloatingRootContext, FloatingTree } from '@floating-ui/react';
+import * as Menu from '@base_ui/react/Menu';
+import { MenuRootContext } from '@base_ui/react/Menu';
+import { describeConformance, createRenderer } from '../../../test';
+
+const testRootContext: MenuRootContext = {
+ floatingRootContext: {} as FloatingRootContext,
+ getPositionerProps: (p) => ({ ...p }),
+ getTriggerProps: (p) => ({ ...p }),
+ getItemProps: (p) => ({ ...p }),
+ parentContext: null,
+ nested: false,
+ triggerElement: null,
+ setTriggerElement: () => {},
+ setPositionerElement: () => {},
+ activeIndex: null,
+ disabled: false,
+ itemDomElements: { current: [] },
+ itemLabels: { current: [] },
+ open: true,
+ setOpen: () => {},
+ clickAndDragEnabled: false,
+ setClickAndDragEnabled: () => {},
+ popupRef: { current: null },
+ mounted: true,
+ transitionStatus: undefined,
+};
+
+describe(' ', () => {
+ const { render } = createRenderer();
+ const user = userEvent.setup();
+
+ describeConformance( , () => ({
+ render: (node) => {
+ return render(
+
+ {node}
+ ,
+ );
+ },
+ refInstanceof: window.HTMLDivElement,
+ }));
+
+ it('perf: does not rerender menu items unnecessarily', async () => {
+ const renderItem1Spy = spy();
+ const renderItem2Spy = spy();
+ const renderItem3Spy = spy();
+ const renderItem4Spy = spy();
+
+ const LoggingRoot = React.forwardRef(function LoggingRoot(
+ props: any & { renderSpy: () => void },
+ ref: React.ForwardedRef,
+ ) {
+ const { renderSpy, ownerState, ...other } = props;
+ renderSpy();
+ return ;
+ });
+
+ const { getAllByRole } = await render(
+
+
+
+ } id="item-1">
+ 1
+
+ } id="item-2">
+ 2
+
+ } id="item-3">
+ 3
+
+ } id="item-4">
+ 4
+
+
+
+ ,
+ );
+
+ const menuItems = getAllByRole('menuitem');
+ await act(() => {
+ menuItems[0].focus();
+ });
+
+ renderItem1Spy.resetHistory();
+ renderItem2Spy.resetHistory();
+ renderItem3Spy.resetHistory();
+ renderItem4Spy.resetHistory();
+
+ expect(renderItem1Spy.callCount).to.equal(0);
+
+ fireEvent.keyDown(menuItems[0], { key: 'ArrowDown' }); // highlights '2'
+
+ // React renders twice in strict mode, so we expect twice the number of spy calls
+ // Also, useButton's focusVisible polyfill causes an extra render when focus is gained/lost.
+
+ await waitFor(() => {
+ expect(renderItem1Spy.callCount).to.equal(4); // '1' rerenders as it loses highlight
+ expect(renderItem2Spy.callCount).to.equal(4); // '2' rerenders as it receives highlight
+ });
+
+ // neither the highlighted nor the selected state of these options changed,
+ // so they don't need to rerender:
+ expect(renderItem3Spy.callCount).to.equal(0);
+ expect(renderItem4Spy.callCount).to.equal(0);
+ });
+
+ describe('prop: closeOnClick', () => {
+ it('closes the menu when the item is clicked by default', async () => {
+ const { getByRole, queryByRole } = await render(
+
+ Open
+
+
+ Item
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Open' });
+ await user.click(trigger);
+
+ const item = getByRole('menuitem');
+ await user.click(item);
+
+ expect(queryByRole('menu')).to.equal(null);
+ });
+
+ it('when `closeOnClick=false` does not close the menu when the item is clicked', async () => {
+ const { getByRole, queryByRole } = await render(
+
+ Open
+
+
+ Item
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Open' });
+ await user.click(trigger);
+
+ const item = getByRole('menuitem');
+ await user.click(item);
+
+ expect(queryByRole('menu')).not.to.equal(null);
+ });
+ });
+});
diff --git a/packages/mui-base/src/Menu/Item/MenuItem.tsx b/packages/mui-base/src/Menu/Item/MenuItem.tsx
new file mode 100644
index 0000000000..e758a7d14f
--- /dev/null
+++ b/packages/mui-base/src/Menu/Item/MenuItem.tsx
@@ -0,0 +1,175 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { FloatingEvents, useFloatingTree, useListItem } from '@floating-ui/react';
+import { useMenuItem } from './useMenuItem';
+import { useMenuRootContext } from '../Root/MenuRootContext';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useId } from '../../utils/useId';
+import type { BaseUIComponentProps, GenericHTMLProps } from '../../utils/types';
+import { useForkRef } from '../../utils/useForkRef';
+
+const InnerMenuItem = React.memo(
+ React.forwardRef(function InnerMenuItem(
+ props: InnerMenuItemProps,
+ forwardedRef: React.ForwardedRef,
+ ) {
+ const {
+ className,
+ closeOnClick = true,
+ disabled = false,
+ highlighted,
+ id,
+ menuEvents,
+ propGetter,
+ render,
+ treatMouseupAsClick,
+ ...other
+ } = props;
+
+ const { getRootProps } = useMenuItem({
+ closeOnClick,
+ disabled,
+ highlighted,
+ id,
+ menuEvents,
+ ref: forwardedRef,
+ treatMouseupAsClick,
+ });
+
+ const ownerState: MenuItem.OwnerState = { disabled, highlighted };
+
+ const { renderElement } = useComponentRenderer({
+ render: render || 'div',
+ className,
+ ownerState,
+ propGetter: (externalProps) => propGetter(getRootProps(externalProps)),
+ extraProps: other,
+ });
+
+ return renderElement();
+ }),
+);
+
+/**
+ * An unstyled menu item to be used within a Menu.
+ *
+ * Demos:
+ *
+ * - [Menu](https://mui.com/base-ui/react-menu/)
+ *
+ * API:
+ *
+ * - [MenuItem API](https://mui.com/base-ui/react-menu/components-api/#menu-item)
+ */
+const MenuItem = React.forwardRef(function MenuItem(
+ props: MenuItem.Props,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { id: idProp, label, ...other } = props;
+
+ const itemRef = React.useRef(null);
+ const listItem = useListItem({ label: label ?? itemRef.current?.innerText });
+ const mergedRef = useForkRef(forwardedRef, listItem.ref, itemRef);
+
+ const { getItemProps, activeIndex, clickAndDragEnabled } = useMenuRootContext();
+ const id = useId(idProp);
+
+ const highlighted = listItem.index === activeIndex;
+ const { events: menuEvents } = useFloatingTree()!;
+
+ // This wrapper component is used as a performance optimization.
+ // MenuItem reads the context and re-renders the actual MenuItem
+ // only when it needs to.
+
+ return (
+
+ );
+});
+
+interface InnerMenuItemProps extends MenuItem.Props {
+ highlighted: boolean;
+ propGetter: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ menuEvents: FloatingEvents;
+ treatMouseupAsClick: boolean;
+}
+
+namespace MenuItem {
+ export type OwnerState = {
+ disabled: boolean;
+ highlighted: boolean;
+ };
+
+ export interface Props extends BaseUIComponentProps<'div', OwnerState> {
+ children?: React.ReactNode;
+ /**
+ * The click handler for the menu item.
+ */
+ onClick?: React.MouseEventHandler;
+ /**
+ * If `true`, the menu item will be disabled.
+ * @default false
+ */
+ disabled?: boolean;
+ /**
+ * A text representation of the menu item's content.
+ * Used for keyboard text navigation matching.
+ */
+ label?: string;
+ /**
+ * The id of the menu item.
+ */
+ id?: string;
+ /**
+ * If `true`, the menu will close when the menu item is clicked.
+ *
+ * @default true
+ */
+ closeOnClick?: boolean;
+ }
+}
+
+MenuItem.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,
+ /**
+ * If `true`, the menu will close when the menu item is clicked.
+ *
+ * @default true
+ */
+ closeOnClick: PropTypes.bool,
+ /**
+ * If `true`, the menu item will be disabled.
+ * @default false
+ */
+ disabled: PropTypes.bool,
+ /**
+ * The id of the menu item.
+ */
+ id: PropTypes.string,
+ /**
+ * A text representation of the menu item's content.
+ * Used for keyboard text navigation matching.
+ */
+ label: PropTypes.string,
+ /**
+ * The click handler for the menu item.
+ */
+ onClick: PropTypes.func,
+} as any;
+
+export { MenuItem };
diff --git a/packages/mui-base/src/Menu/Item/useMenuItem.ts b/packages/mui-base/src/Menu/Item/useMenuItem.ts
new file mode 100644
index 0000000000..ee72abddbb
--- /dev/null
+++ b/packages/mui-base/src/Menu/Item/useMenuItem.ts
@@ -0,0 +1,103 @@
+'use client';
+import * as React from 'react';
+import { FloatingEvents } from '@floating-ui/react';
+import { useButton } from '../../useButton';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import { GenericHTMLProps } from '../../utils/types';
+
+/**
+ *
+ * API:
+ *
+ * - [useMenuItem API](https://mui.com/base-ui/api/use-menu-item/)
+ */
+export function useMenuItem(params: useMenuItem.Parameters): useMenuItem.ReturnValue {
+ const {
+ closeOnClick,
+ disabled = false,
+ highlighted,
+ id,
+ menuEvents,
+ ref: externalRef,
+ treatMouseupAsClick,
+ } = params;
+
+ const { getRootProps: getButtonProps, rootRef: mergedRef } = useButton({
+ disabled,
+ focusableWhenDisabled: true,
+ rootRef: externalRef,
+ });
+
+ const getRootProps = React.useCallback(
+ (externalProps?: GenericHTMLProps): GenericHTMLProps => {
+ return getButtonProps(
+ mergeReactProps(externalProps, {
+ 'data-handle-mouseup': treatMouseupAsClick || undefined,
+ id,
+ role: 'menuitem',
+ tabIndex: highlighted ? 0 : -1,
+ onClick: (event: React.MouseEvent) => {
+ if (closeOnClick) {
+ menuEvents.emit('close', event);
+ }
+ },
+ }),
+ );
+ },
+ [closeOnClick, getButtonProps, highlighted, id, menuEvents, treatMouseupAsClick],
+ );
+
+ return React.useMemo(
+ () => ({
+ getRootProps,
+ rootRef: mergedRef,
+ }),
+ [getRootProps, mergedRef],
+ );
+}
+
+export namespace useMenuItem {
+ export interface Parameters {
+ /**
+ * If `true`, the menu will close when the menu item is clicked.
+ */
+ closeOnClick: boolean;
+ /**
+ * If `true`, the menu item will be disabled.
+ */
+ disabled: boolean;
+ /**
+ * Determines if the menu item is highlighted.
+ */
+ highlighted: boolean;
+ /**
+ * The id of the menu item.
+ */
+ id: string | undefined;
+ /**
+ * The FloatingEvents instance of the menu's root.
+ */
+ menuEvents: FloatingEvents;
+ /**
+ * The ref of the trigger element.
+ */
+ ref?: React.Ref;
+ /**
+ * If `true`, the menu item will listen for mouseup events and treat them as clicks.
+ */
+ treatMouseupAsClick: boolean;
+ }
+
+ export interface ReturnValue {
+ /**
+ * Resolver for the root slot's props.
+ * @param externalProps event handlers for the root slot
+ * @returns props that should be spread on the root slot
+ */
+ getRootProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ /**
+ * The ref to the component's root DOM element.
+ */
+ rootRef: React.RefCallback | null;
+ }
+}
diff --git a/packages/mui-base/src/Menu/Popup/MenuPopup.test.tsx b/packages/mui-base/src/Menu/Popup/MenuPopup.test.tsx
new file mode 100644
index 0000000000..04a4141ca7
--- /dev/null
+++ b/packages/mui-base/src/Menu/Popup/MenuPopup.test.tsx
@@ -0,0 +1,58 @@
+import * as React from 'react';
+import * as Menu from '@base_ui/react/Menu';
+import { MenuRootContext } from '@base_ui/react/Menu';
+import { FloatingRootContext, FloatingTree } from '@floating-ui/react';
+import { createRenderer, describeConformance } from '../../../test';
+import { MenuPositionerContext } from '../Positioner/MenuPositionerContext';
+
+const testRootContext: MenuRootContext = {
+ floatingRootContext: {} as FloatingRootContext,
+ getPositionerProps: (p) => ({ ...p }),
+ getTriggerProps: (p) => ({ ...p }),
+ getItemProps: (p) => ({ ...p }),
+ parentContext: null,
+ nested: false,
+ triggerElement: null,
+ setTriggerElement: () => {},
+ setPositionerElement: () => {},
+ activeIndex: null,
+ disabled: false,
+ itemDomElements: { current: [] },
+ itemLabels: { current: [] },
+ open: true,
+ setOpen: () => {},
+ clickAndDragEnabled: false,
+ setClickAndDragEnabled: () => {},
+ popupRef: { current: null },
+ mounted: true,
+ transitionStatus: undefined,
+};
+
+const testPositionerContext: MenuPositionerContext = {
+ side: 'bottom',
+ alignment: 'start',
+ arrowRef: { current: null },
+ arrowStyles: {},
+ arrowUncentered: false,
+};
+
+describe(' ', () => {
+ const { render } = createRenderer();
+
+ describeConformance( , () => ({
+ inheritComponent: 'div',
+ render: (node) => {
+ return render(
+
+
+
+ {node}
+
+
+ ,
+ ,
+ );
+ },
+ refInstanceof: window.HTMLDivElement,
+ }));
+});
diff --git a/packages/mui-base/src/Menu/Popup/MenuPopup.tsx b/packages/mui-base/src/Menu/Popup/MenuPopup.tsx
new file mode 100644
index 0000000000..ad77be5a40
--- /dev/null
+++ b/packages/mui-base/src/Menu/Popup/MenuPopup.tsx
@@ -0,0 +1,101 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { Side, useFloatingTree } from '@floating-ui/react';
+import { useMenuPopup } from './useMenuPopup';
+import { useMenuRootContext } from '../Root/MenuRootContext';
+import { useMenuPositionerContext } from '../Positioner/MenuPositionerContext';
+import { commonStyleHooks } from '../utils/commonStyleHooks';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useForkRef } from '../../utils/useForkRef';
+import { BaseUIComponentProps } from '../../utils/types';
+import { CustomStyleHookMapping } from '../../utils/getStyleHookProps';
+
+const customStyleHookMapping: CustomStyleHookMapping = {
+ ...commonStyleHooks,
+ entering(value) {
+ return value ? { 'data-menu-entering': '' } : null;
+ },
+ exiting(value) {
+ return value ? { 'data-menu-exiting': '' } : null;
+ },
+};
+
+const MenuPopup = React.forwardRef(function MenuPopup(
+ props: MenuPopup.Props,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { render, className, ...other } = props;
+ const { open, setOpen, popupRef, transitionStatus } = useMenuRootContext();
+ const { side, alignment } = useMenuPositionerContext();
+ const { events: menuEvents } = useFloatingTree()!;
+
+ useMenuPopup({
+ setOpen,
+ menuEvents,
+ });
+
+ const mergedRef = useForkRef(forwardedRef, popupRef);
+
+ const ownerState: MenuPopup.OwnerState = {
+ entering: transitionStatus === 'entering',
+ exiting: transitionStatus === 'exiting',
+ side,
+ alignment,
+ open,
+ };
+
+ const { renderElement } = useComponentRenderer({
+ render: render || 'div',
+ className,
+ ownerState,
+ extraProps: other,
+ customStyleHookMapping,
+ ref: mergedRef,
+ });
+
+ return renderElement();
+});
+
+namespace MenuPopup {
+ export interface Props extends BaseUIComponentProps<'div', OwnerState> {
+ children?: React.ReactNode;
+ /**
+ * The id of the popup element.
+ */
+ id?: string;
+ }
+
+ export type OwnerState = {
+ entering: boolean;
+ exiting: boolean;
+ side: Side;
+ alignment: 'start' | 'end' | 'center';
+ open: boolean;
+ };
+}
+
+MenuPopup.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]),
+ /**
+ * The id of the popup element.
+ */
+ id: PropTypes.string,
+ /**
+ * A function to customize rendering of the component.
+ */
+ render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
+} as any;
+
+export { MenuPopup };
diff --git a/packages/mui-base/src/Menu/Popup/useMenuPopup.ts b/packages/mui-base/src/Menu/Popup/useMenuPopup.ts
new file mode 100644
index 0000000000..a7e200919a
--- /dev/null
+++ b/packages/mui-base/src/Menu/Popup/useMenuPopup.ts
@@ -0,0 +1,40 @@
+'use client';
+import * as React from 'react';
+import { FloatingEvents } from '@floating-ui/react';
+
+/**
+ *
+ * API:
+ *
+ * - [useMenuPopup API](https://mui.com/base-ui/api/use-menu-popup/)
+ */
+export function useMenuPopup(parameters: useMenuPopup.Parameters): useMenuPopup.ReturnValue {
+ const { menuEvents, setOpen } = parameters;
+
+ React.useEffect(() => {
+ function handleClose(event: Event | undefined) {
+ setOpen(false, event);
+ }
+
+ menuEvents.on('close', handleClose);
+
+ return () => {
+ menuEvents.off('close', handleClose);
+ };
+ }, [menuEvents, setOpen]);
+}
+
+export namespace useMenuPopup {
+ export interface Parameters {
+ /**
+ * The FloatingEvents instance of the menu's root.
+ */
+ menuEvents: FloatingEvents;
+ /**
+ * Callback to set the open state of the menu.
+ */
+ setOpen: (open: boolean, event: Event | undefined) => void;
+ }
+
+ export type ReturnValue = void;
+}
diff --git a/packages/mui-base/src/Menu/Positioner/MenuPositioner.test.tsx b/packages/mui-base/src/Menu/Positioner/MenuPositioner.test.tsx
new file mode 100644
index 0000000000..64e61b80b9
--- /dev/null
+++ b/packages/mui-base/src/Menu/Positioner/MenuPositioner.test.tsx
@@ -0,0 +1,177 @@
+import * as React from 'react';
+import { expect } from 'chai';
+import { FloatingRootContext, FloatingTree } from '@floating-ui/react';
+import userEvent from '@testing-library/user-event';
+import { flushMicrotasks } from '@mui/internal-test-utils';
+import * as Menu from '@base_ui/react/Menu';
+import { MenuRootContext } from '@base_ui/react/Menu';
+import { describeConformance, createRenderer } from '../../../test';
+
+const testRootContext: MenuRootContext = {
+ floatingRootContext: undefined as unknown as FloatingRootContext,
+ getPositionerProps: (p) => ({ ...p }),
+ getTriggerProps: (p) => ({ ...p }),
+ getItemProps: (p) => ({ ...p }),
+ parentContext: null,
+ nested: false,
+ triggerElement: null,
+ setTriggerElement: () => {},
+ setPositionerElement: () => {},
+ activeIndex: null,
+ disabled: false,
+ itemDomElements: { current: [] },
+ itemLabels: { current: [] },
+ open: true,
+ setOpen: () => {},
+ clickAndDragEnabled: false,
+ setClickAndDragEnabled: () => {},
+ popupRef: { current: null },
+ mounted: true,
+ transitionStatus: undefined,
+};
+
+describe(' ', () => {
+ const { render } = createRenderer();
+
+ describeConformance( , () => ({
+ render: (node) => {
+ return render(
+
+ {node}
+ ,
+ );
+ },
+ refInstanceof: window.HTMLDivElement,
+ }));
+
+ describe('prop: anchor', () => {
+ it('should be placed near the specified element', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ this.skip();
+ }
+
+ function TestComponent() {
+ const anchor = React.useRef(null);
+
+ return (
+
+ );
+ }
+
+ const { getByRole, getByTestId } = await render( );
+
+ const popup = getByRole('menu');
+ const anchor = getByTestId('anchor');
+
+ const anchorPosition = anchor.getBoundingClientRect();
+
+ await flushMicrotasks();
+
+ expect(popup.style.getPropertyValue('transform')).to.equal(
+ `translate(${anchorPosition.left}px, ${anchorPosition.bottom}px)`,
+ );
+ });
+
+ it('should be placed at the specified position', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ this.skip();
+ }
+
+ const boundingRect = {
+ x: 200,
+ y: 100,
+ top: 100,
+ left: 200,
+ bottom: 100,
+ right: 200,
+ height: 0,
+ width: 0,
+ toJSON: () => {},
+ };
+
+ const virtualElement = { getBoundingClientRect: () => boundingRect };
+
+ const { getByRole } = await render(
+
+
+
+ 1
+ 2
+
+
+ ,
+ );
+
+ const popup = getByRole('menu');
+ expect(popup.style.getPropertyValue('transform')).to.equal(`translate(200px, 100px)`);
+ });
+ });
+
+ describe('prop: keepMounted', () => {
+ const user = userEvent.setup();
+
+ it('when keepMounted=true, should keep the content mounted when closed', async () => {
+ const { getByRole, queryByRole } = await render(
+
+ Toggle
+
+
+ 1
+ 2
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+
+ expect(queryByRole('menu', { hidden: true })).not.to.equal(null);
+ expect(queryByRole('menu', { hidden: true })).toBeInaccessible();
+
+ await user.click(trigger);
+ await flushMicrotasks();
+ expect(queryByRole('menu', { hidden: false })).not.to.equal(null);
+ expect(queryByRole('menu', { hidden: false })).not.toBeInaccessible();
+
+ await user.click(trigger);
+ expect(queryByRole('menu', { hidden: true })).not.to.equal(null);
+ expect(queryByRole('menu', { hidden: true })).toBeInaccessible();
+ });
+
+ it('when keepMounted=false, should unmount the content when closed', async () => {
+ const { getByRole, queryByRole } = await render(
+
+ Toggle
+
+
+ 1
+ 2
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+
+ expect(queryByRole('menu', { hidden: true })).to.equal(null);
+
+ await user.click(trigger);
+ await flushMicrotasks();
+ expect(queryByRole('menu', { hidden: false })).not.to.equal(null);
+ expect(queryByRole('menu', { hidden: false })).not.toBeInaccessible();
+
+ await user.click(trigger);
+ expect(queryByRole('menu', { hidden: true })).to.equal(null);
+ });
+ });
+});
diff --git a/packages/mui-base/src/Menu/Positioner/MenuPositioner.tsx b/packages/mui-base/src/Menu/Positioner/MenuPositioner.tsx
new file mode 100644
index 0000000000..48baa4ce14
--- /dev/null
+++ b/packages/mui-base/src/Menu/Positioner/MenuPositioner.tsx
@@ -0,0 +1,277 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import {
+ FloatingFocusManager,
+ FloatingList,
+ FloatingNode,
+ FloatingPortal,
+ Side,
+ useFloatingNodeId,
+} from '@floating-ui/react';
+import { MenuPositionerContext } from './MenuPositionerContext';
+import { useMenuRootContext } from '../Root/MenuRootContext';
+import { commonStyleHooks } from '../utils/commonStyleHooks';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useForkRef } from '../../utils/useForkRef';
+import { useMenuPositioner } from './useMenuPositioner';
+import { HTMLElementType } from '../../utils/proptypes';
+import { BaseUIComponentProps, GenericHTMLProps } from '../../utils/types';
+
+/**
+ * Renders the element that positions the Menu popup.
+ *
+ * Demos:
+ *
+ * - [Menu](https://mui.com/base-ui/react-Menu/)
+ *
+ * API:
+ *
+ * - [MenuPositioner API](https://mui.com/base-ui/react-Menu/components-api/#Menu-positioner)
+ */
+const MenuPositioner = React.forwardRef(function MenuPositioner(
+ props: MenuPositioner.Props,
+ forwardedRef: React.ForwardedRef,
+) {
+ const {
+ anchor,
+ positionStrategy = 'absolute',
+ className,
+ render,
+ keepMounted = false,
+ side = 'bottom',
+ alignment = 'center',
+ sideOffset = 0,
+ alignmentOffset = 0,
+ collisionBoundary,
+ collisionPadding = 5,
+ arrowPadding = 5,
+ hideWhenDetached = false,
+ sticky = false,
+ container,
+ ...otherProps
+ } = props;
+
+ const {
+ open,
+ floatingRootContext,
+ getPositionerProps,
+ setPositionerElement,
+ nested,
+ itemDomElements,
+ itemLabels,
+ triggerElement,
+ mounted,
+ } = useMenuRootContext();
+
+ const nodeId = useFloatingNodeId();
+
+ const positioner = useMenuPositioner({
+ anchor: anchor || triggerElement,
+ floatingRootContext,
+ positionStrategy,
+ container,
+ open,
+ mounted,
+ side,
+ sideOffset,
+ alignment,
+ alignmentOffset,
+ arrowPadding,
+ collisionBoundary,
+ collisionPadding,
+ hideWhenDetached,
+ sticky,
+ nodeId,
+ });
+
+ const ownerState: MenuPositioner.OwnerState = React.useMemo(
+ () => ({
+ open,
+ side: positioner.side,
+ alignment: positioner.alignment,
+ }),
+ [open, positioner.side, positioner.alignment],
+ );
+
+ const contextValue: MenuPositionerContext = React.useMemo(
+ () => ({
+ side: positioner.side,
+ alignment: positioner.alignment,
+ arrowRef: positioner.arrowRef,
+ arrowUncentered: positioner.arrowUncentered,
+ arrowStyles: positioner.arrowStyles,
+ floatingContext: positioner.floatingContext,
+ }),
+ [
+ positioner.side,
+ positioner.alignment,
+ positioner.arrowRef,
+ positioner.arrowUncentered,
+ positioner.arrowStyles,
+ positioner.floatingContext,
+ ],
+ );
+
+ const mergedRef = useForkRef(forwardedRef, setPositionerElement);
+
+ const { renderElement } = useComponentRenderer({
+ propGetter: (externalProps: GenericHTMLProps) =>
+ positioner.getPositionerProps(getPositionerProps(externalProps)),
+ render: render ?? 'div',
+ className,
+ ownerState,
+ customStyleHookMapping: commonStyleHooks,
+ ref: mergedRef,
+ extraProps: otherProps,
+ });
+
+ const shouldRender = keepMounted || mounted;
+ if (!shouldRender) {
+ return null;
+ }
+
+ return (
+
+
+
+
+
+ {renderElement()}
+
+
+
+
+
+ );
+});
+
+export { MenuPositioner };
+
+export namespace MenuPositioner {
+ export type OwnerState = {
+ open: boolean;
+ side: Side;
+ alignment: 'start' | 'end' | 'center';
+ };
+
+ export interface Props
+ extends useMenuPositioner.SharedParameters,
+ BaseUIComponentProps<'div', OwnerState> {}
+}
+
+MenuPositioner.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 Menu element to the anchor element along its cross axis.
+ * @default 'center'
+ */
+ alignment: PropTypes.oneOf(['center', 'end', 'start']),
+ /**
+ * The offset of the Menu element along its alignment axis.
+ * @default 0
+ */
+ alignmentOffset: PropTypes.number,
+ /**
+ * The anchor element to which the Menu popup will be placed at.
+ */
+ anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([
+ HTMLElementType,
+ PropTypes.object,
+ PropTypes.func,
+ ]),
+ /**
+ * Determines the padding between the arrow and the Menu popup's edges. Useful when the popover
+ * 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 Menu 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.
+ * @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 Menu popup will be appended to.
+ */
+ container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([
+ HTMLElementType,
+ PropTypes.func,
+ ]),
+ /**
+ * If `true`, the Menu will be hidden if it is detached from its anchor element due to
+ * differing clipping contexts.
+ * @default false
+ */
+ hideWhenDetached: PropTypes.bool,
+ /**
+ * Whether the menu popup remains mounted in the DOM while closed.
+ * @default false
+ */
+ keepMounted: PropTypes.bool,
+ /**
+ * The CSS position strategy for positioning the Menu 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 Menu element should align to.
+ * @default 'bottom'
+ */
+ side: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
+ /**
+ * The gap between the anchor element and the Menu element.
+ * @default 0
+ */
+ sideOffset: PropTypes.number,
+ /**
+ * If `true`, allow the Menu to remain in stuck view while the anchor element is scrolled out
+ * of view.
+ * @default false
+ */
+ sticky: PropTypes.bool,
+} as any;
diff --git a/packages/mui-base/src/Menu/Positioner/MenuPositionerContext.ts b/packages/mui-base/src/Menu/Positioner/MenuPositionerContext.ts
new file mode 100644
index 0000000000..8e3ad8a1c2
--- /dev/null
+++ b/packages/mui-base/src/Menu/Positioner/MenuPositionerContext.ts
@@ -0,0 +1,31 @@
+'use client';
+import * as React from 'react';
+import type { Side } from '@floating-ui/react';
+
+export interface MenuPositionerContext {
+ /**
+ * The side of the anchor element the popup is positioned relative to.
+ */
+ side: Side;
+ /**
+ * The alignment of the anchor element the popup is positioned relative to.
+ */
+ alignment: 'start' | 'end' | 'center';
+ arrowRef: React.MutableRefObject;
+ arrowUncentered: boolean;
+ arrowStyles: React.CSSProperties;
+}
+
+export const MenuPositionerContext = React.createContext(null);
+
+if (process.env.NODE_ENV !== 'production') {
+ MenuPositionerContext.displayName = 'MenuPositionerContext';
+}
+
+export function useMenuPositionerContext() {
+ const context = React.useContext(MenuPositionerContext);
+ if (context === null) {
+ throw new Error(' must be used within the component');
+ }
+ return context;
+}
diff --git a/packages/mui-base/src/Menu/Positioner/useMenuPositioner.ts b/packages/mui-base/src/Menu/Positioner/useMenuPositioner.ts
new file mode 100644
index 0000000000..781b27c83f
--- /dev/null
+++ b/packages/mui-base/src/Menu/Positioner/useMenuPositioner.ts
@@ -0,0 +1,204 @@
+'use client';
+import * as React from 'react';
+import type {
+ Boundary,
+ Padding,
+ VirtualElement,
+ FloatingContext,
+ Side,
+ FloatingRootContext,
+} from '@floating-ui/react';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import { useAnchorPositioning } from '../../utils/useAnchorPositioning';
+import type { GenericHTMLProps } from '../../utils/types';
+
+/**
+ *
+ * API:
+ *
+ * - [useMenuPositioner API](https://mui.com/base-ui/api/use-menu-positioner/)
+ */
+export function useMenuPositioner(
+ params: useMenuPositioner.Parameters,
+): useMenuPositioner.ReturnValue {
+ const { open = false, keepMounted } = params;
+
+ const {
+ positionerStyles,
+ arrowStyles,
+ hidden,
+ arrowRef,
+ arrowUncentered,
+ renderedSide,
+ renderedAlignment,
+ positionerContext: floatingContext,
+ } = useAnchorPositioning(params);
+
+ const getPositionerProps: useMenuPositioner.ReturnValue['getPositionerProps'] = React.useCallback(
+ (externalProps = {}) => {
+ const hiddenStyles: React.CSSProperties = {};
+
+ if ((keepMounted && !open) || hidden) {
+ hiddenStyles.pointerEvents = 'none';
+ }
+
+ return mergeReactProps(externalProps, {
+ style: {
+ ...positionerStyles,
+ ...hiddenStyles,
+ zIndex: 2147483647, // max z-index
+ },
+ 'aria-hidden': !open || undefined,
+ });
+ },
+ [positionerStyles, open, keepMounted, hidden],
+ );
+
+ return React.useMemo(
+ () => ({
+ getPositionerProps,
+ arrowRef,
+ arrowUncentered,
+ arrowStyles,
+ side: renderedSide,
+ alignment: renderedAlignment,
+ floatingContext,
+ }),
+ [
+ getPositionerProps,
+ arrowRef,
+ arrowUncentered,
+ arrowStyles,
+ renderedSide,
+ renderedAlignment,
+ floatingContext,
+ ],
+ );
+}
+
+export namespace useMenuPositioner {
+ export interface SharedParameters {
+ /**
+ * If `true`, the Menu is open.
+ */
+ open?: boolean;
+ /**
+ * The anchor element to which the Menu popup will be placed at.
+ */
+ anchor?:
+ | Element
+ | null
+ | VirtualElement
+ | React.MutableRefObject
+ | (() => Element | VirtualElement | null);
+ /**
+ * The CSS position strategy for positioning the Menu popup element.
+ * @default 'absolute'
+ */
+ positionStrategy?: 'absolute' | 'fixed';
+ /**
+ * The container element to which the Menu popup will be appended to.
+ */
+ container?: HTMLElement | null | React.MutableRefObject;
+ /**
+ * The side of the anchor element that the Menu element should align to.
+ * @default 'bottom'
+ */
+ side?: Side;
+ /**
+ * The gap between the anchor element and the Menu element.
+ * @default 0
+ */
+ sideOffset?: number;
+ /**
+ * The alignment of the Menu element to the anchor element along its cross axis.
+ * @default 'center'
+ */
+ alignment?: 'start' | 'end' | 'center';
+ /**
+ * The offset of the Menu element along its alignment axis.
+ * @default 0
+ */
+ alignmentOffset?: number;
+ /**
+ * The boundary that the Menu element should be constrained to.
+ * @default 'clippingAncestors'
+ */
+ collisionBoundary?: Boundary;
+ /**
+ * The padding of the collision boundary.
+ * @default 5
+ */
+ collisionPadding?: Padding;
+ /**
+ * If `true`, the Menu will be hidden if it is detached from its anchor element due to
+ * differing clipping contexts.
+ * @default false
+ */
+ hideWhenDetached?: boolean;
+ /**
+ * Whether the menu popup remains mounted in the DOM while closed.
+ * @default false
+ */
+ keepMounted?: boolean;
+ /**
+ * If `true`, allow the Menu to remain in stuck view while the anchor element is scrolled out
+ * of view.
+ * @default false
+ */
+ sticky?: boolean;
+ /**
+ * Determines the padding between the arrow and the Menu popup's edges. Useful when the popover
+ * popup has rounded corners via `border-radius`.
+ * @default 5
+ */
+ arrowPadding?: number;
+ }
+
+ export interface Parameters extends SharedParameters {
+ /**
+ * If `true`, the Menu is mounted.
+ * @default true
+ */
+ mounted?: boolean;
+ /**
+ * The Menu root context.
+ */
+ floatingRootContext?: FloatingRootContext;
+ /**
+ * Floating node id.
+ */
+ nodeId?: string;
+ }
+
+ export interface ReturnValue {
+ /**
+ * Props to spread on the Menu positioner element.
+ */
+ getPositionerProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ /**
+ * The ref of the Menu arrow element.
+ */
+ arrowRef: React.MutableRefObject;
+ /**
+ * Determines if the arrow cannot be centered.
+ */
+ arrowUncentered: boolean;
+ /**
+ * The rendered side of the Menu element.
+ */
+ side: 'top' | 'right' | 'bottom' | 'left';
+ /**
+ * The rendered alignment of the Menu element.
+ */
+ alignment: 'start' | 'end' | 'center';
+ /**
+ * The styles to apply to the Menu arrow element.
+ */
+ arrowStyles: React.CSSProperties;
+ /**
+ * The floating context.
+ */
+ floatingContext: FloatingContext;
+ }
+}
diff --git a/packages/mui-base/src/Menu/Root/MenuRoot.test.tsx b/packages/mui-base/src/Menu/Root/MenuRoot.test.tsx
new file mode 100644
index 0000000000..2bc1bee771
--- /dev/null
+++ b/packages/mui-base/src/Menu/Root/MenuRoot.test.tsx
@@ -0,0 +1,609 @@
+import * as React from 'react';
+import { expect } from 'chai';
+import { act, waitFor } from '@mui/internal-test-utils';
+import * as Menu from '@base_ui/react/Menu';
+import userEvent from '@testing-library/user-event';
+import { createRenderer } from '../../../test';
+
+describe(' ', () => {
+ const { render } = createRenderer();
+ const user = userEvent.setup();
+
+ describe('keyboard navigation', () => {
+ it('changes the highlighted item using the arrow keys', async () => {
+ const { getByRole, getByTestId } = await render(
+
+ Toggle
+
+
+ 1
+ 2
+ 3
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await userEvent.keyboard('[Enter]');
+
+ const item1 = getByTestId('item-1');
+ const item2 = getByTestId('item-2');
+ const item3 = getByTestId('item-3');
+
+ await waitFor(() => {
+ expect(item1).toHaveFocus();
+ });
+
+ await userEvent.keyboard('{ArrowDown}');
+ await waitFor(() => {
+ expect(item2).toHaveFocus();
+ });
+
+ await userEvent.keyboard('{ArrowDown}');
+ await waitFor(() => {
+ expect(item3).toHaveFocus();
+ });
+
+ await userEvent.keyboard('{ArrowUp}');
+ await waitFor(() => {
+ expect(item2).toHaveFocus();
+ });
+ });
+
+ it('changes the highlighted item using the Home and End keys', async () => {
+ const { getByRole, getByTestId } = await render(
+
+ Toggle
+
+
+ 1
+ 2
+ 3
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await userEvent.keyboard('[Enter]');
+ const item1 = getByTestId('item-1');
+ const item3 = getByTestId('item-3');
+
+ await waitFor(() => {
+ expect(item1).toHaveFocus();
+ });
+
+ await userEvent.keyboard('{End}');
+ await waitFor(() => {
+ expect(item3).toHaveFocus();
+ });
+
+ await userEvent.keyboard('{Home}');
+ await waitFor(() => {
+ expect(item1).toHaveFocus();
+ });
+ });
+
+ it('includes disabled items during keyboard navigation', async () => {
+ const { getByRole, getByTestId } = await render(
+
+ Toggle
+
+
+ 1
+
+ 2
+
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await userEvent.keyboard('[Enter]');
+
+ const item1 = getByTestId('item-1');
+ const item2 = getByTestId('item-2');
+
+ await waitFor(() => {
+ expect(item1).toHaveFocus();
+ });
+
+ await userEvent.keyboard('[ArrowDown]');
+
+ await waitFor(() => {
+ expect(item2).toHaveFocus();
+ expect(item2).to.have.attribute('aria-disabled', 'true');
+ });
+ });
+
+ describe('text navigation', () => {
+ it('changes the highlighted item', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ // useMenuPopup Text navigation match menu items using HTMLElement.innerText
+ // innerText is not supported by JsDom
+ this.skip();
+ }
+
+ const { getByText, getAllByRole } = await render(
+
+
+
+ Aa
+ Ba
+ Bb
+ Ca
+ Cb
+ Cd
+
+
+ ,
+ );
+
+ const items = getAllByRole('menuitem');
+
+ await act(() => {
+ items[0].focus();
+ });
+
+ await user.keyboard('c');
+ await waitFor(() => {
+ expect(document.activeElement).to.equal(getByText('Ca'));
+ expect(getByText('Ca')).to.have.attribute('tabindex', '0');
+ });
+
+ await user.keyboard('d');
+ await waitFor(() => {
+ expect(document.activeElement).to.equal(getByText('Cd'));
+ expect(getByText('Cd')).to.have.attribute('tabindex', '0');
+ });
+ });
+
+ it('changes the highlighted item using text navigation on label prop', async () => {
+ const { getByRole, getAllByRole } = await render(
+
+ Toggle
+
+
+ 1
+ 2
+ 3
+ 4
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+ await user.click(trigger);
+
+ const items = getAllByRole('menuitem');
+
+ await user.keyboard('b');
+ await waitFor(() => {
+ expect(items[1]).toHaveFocus();
+ expect(items[1]).to.have.attribute('tabindex', '0');
+ });
+
+ await user.keyboard('b');
+ await waitFor(() => {
+ expect(items[2]).toHaveFocus();
+ expect(items[2]).to.have.attribute('tabindex', '0');
+ });
+
+ await user.keyboard('b');
+ await waitFor(() => {
+ expect(items[2]).toHaveFocus();
+ expect(items[2]).to.have.attribute('tabindex', '0');
+ });
+ });
+
+ it('skips the non-stringifiable items', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ // useMenuPopup Text navigation match menu items using HTMLElement.innerText
+ // innerText is not supported by JsDom
+ this.skip();
+ }
+
+ const { getByText, getAllByRole } = await render(
+
+
+
+ Aa
+ Ba
+
+
+ Nested Content
+
+ {undefined}
+ {null}
+ Bc
+
+
+ ,
+ );
+
+ const items = getAllByRole('menuitem');
+
+ await act(() => {
+ items[0].focus();
+ });
+
+ await user.keyboard('b');
+ await waitFor(() => {
+ expect(getByText('Ba')).toHaveFocus();
+ expect(getByText('Ba')).to.have.attribute('tabindex', '0');
+ });
+
+ await user.keyboard('c');
+ await waitFor(() => {
+ expect(getByText('Bc')).toHaveFocus();
+ expect(getByText('Bc')).to.have.attribute('tabindex', '0');
+ });
+ });
+
+ it('navigate to options with diacritic characters', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ // useMenuPopup Text navigation match menu items using HTMLElement.innerText
+ // innerText is not supported by JsDom
+ this.skip();
+ }
+
+ const { getByText, getAllByRole } = await render(
+
+
+
+ Aa
+ Ba
+ Bb
+ Bą
+
+
+ ,
+ );
+
+ const items = getAllByRole('menuitem');
+
+ await act(() => {
+ items[0].focus();
+ });
+
+ await user.keyboard('b');
+ await waitFor(() => {
+ expect(getByText('Ba')).toHaveFocus();
+ expect(getByText('Ba')).to.have.attribute('tabindex', '0');
+ });
+
+ await user.keyboard('ą');
+ await waitFor(() => {
+ expect(getByText('Bą')).toHaveFocus();
+ expect(getByText('Bą')).to.have.attribute('tabindex', '0');
+ });
+ });
+
+ it('navigate to next options beginning with diacritic characters', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ // useMenuPopup Text navigation match menu items using HTMLElement.innerText
+ // innerText is not supported by JsDom
+ this.skip();
+ }
+
+ const { getByText, getAllByRole } = await render(
+
+
+
+ Aa
+ ąa
+ ąb
+ ąc
+
+
+ ,
+ );
+
+ const items = getAllByRole('menuitem');
+
+ await act(() => {
+ items[0].focus();
+ });
+
+ await user.keyboard('ą');
+ await waitFor(() => {
+ expect(getByText('ąa')).toHaveFocus();
+ expect(getByText('ąa')).to.have.attribute('tabindex', '0');
+ });
+ });
+ });
+ });
+
+ describe('nested menus', () => {
+ (
+ [
+ ['vertical', 'ltr', 'ArrowRight', 'ArrowLeft'],
+ ['vertical', 'rtl', 'ArrowLeft', 'ArrowRight'],
+ ['horizontal', 'ltr', 'ArrowDown', 'ArrowUp'],
+ ['horizontal', 'rtl', 'ArrowDown', 'ArrowUp'],
+ ] as const
+ ).forEach(([orientation, direction, openKey, closeKey]) => {
+ it(`opens a nested menu of a ${orientation} ${direction.toUpperCase()} menu with ${openKey} key and closes it with ${closeKey}`, async () => {
+ const { getByTestId, queryByTestId } = await render(
+
+
+
+ 1
+
+ 2
+
+
+ 2.1
+ 2.2
+
+
+
+
+
+ ,
+ );
+
+ const submenuTrigger = getByTestId('submenu-trigger');
+
+ await act(() => {
+ submenuTrigger.focus();
+ });
+
+ await user.keyboard(`[${openKey}]`);
+
+ let submenu = queryByTestId('submenu');
+ expect(submenu).not.to.equal(null);
+
+ const submenuItem1 = queryByTestId('submenu-item-1');
+ expect(submenuItem1).not.to.equal(null);
+ await waitFor(() => {
+ expect(submenuItem1).toHaveFocus();
+ });
+
+ await user.keyboard(`[${closeKey}]`);
+
+ submenu = queryByTestId('submenu');
+ expect(submenu).to.equal(null);
+
+ expect(submenuTrigger).toHaveFocus();
+ });
+ });
+ });
+
+ describe('focus management', () => {
+ function Test() {
+ return (
+
+ Toggle
+
+
+ 1
+ 2
+ 3
+
+
+
+ );
+ }
+
+ it('focuses the first item after the menu is opened by keyboard', async () => {
+ const { getAllByRole, getByRole } = await render( );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await userEvent.keyboard('[Enter]');
+
+ const [firstItem, ...otherItems] = getAllByRole('menuitem');
+ expect(firstItem.tabIndex).to.equal(0);
+ otherItems.forEach((item) => {
+ expect(item.tabIndex).to.equal(-1);
+ });
+ });
+
+ it('focuses the first item when down arrow key opens the menu', async () => {
+ const { getByRole, getAllByRole } = await render( );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await user.keyboard('[ArrowDown]');
+
+ const [firstItem, ...otherItems] = getAllByRole('menuitem');
+ await waitFor(() => expect(firstItem).toHaveFocus());
+ expect(firstItem.tabIndex).to.equal(0);
+ otherItems.forEach((item) => {
+ expect(item.tabIndex).to.equal(-1);
+ });
+ });
+
+ it('focuses the last item when up arrow key opens the menu', async () => {
+ const { getByRole, getAllByRole } = await render( );
+
+ const trigger = getByRole('button', { name: 'Toggle' });
+
+ await act(() => {
+ trigger.focus();
+ });
+
+ await user.keyboard('[ArrowUp]');
+
+ const [firstItem, secondItem, lastItem] = getAllByRole('menuitem');
+ await waitFor(() => {
+ expect(lastItem).toHaveFocus();
+ });
+
+ expect(lastItem.tabIndex).to.equal(0);
+ [firstItem, secondItem].forEach((item) => {
+ expect(item.tabIndex).to.equal(-1);
+ });
+ });
+
+ it('focuses the trigger after the menu is closed', async () => {
+ const { getByRole } = await render(
+
+
+
+ Toggle
+
+
+ Close
+
+
+
+
+ ,
+ );
+
+ const button = getByRole('button', { name: 'Toggle' });
+ await user.click(button);
+
+ const menuItem = getByRole('menuitem');
+ await user.click(menuItem);
+
+ expect(button).toHaveFocus();
+ });
+
+ it('focuses the trigger after the menu is closed but not unmounted', async () => {
+ const { getByRole } = await render(
+
+
+
+ Toggle
+
+
+ Close
+
+
+
+
+ ,
+ );
+
+ const button = getByRole('button', { name: 'Toggle' });
+ await user.click(button);
+
+ const menuItem = getByRole('menuitem');
+ await user.click(menuItem);
+
+ expect(button).toHaveFocus();
+ });
+ });
+
+ describe('prop: closeParentOnEsc', () => {
+ it('closes the parent menu when the Escape key is pressed by default', async () => {
+ const { getByRole, queryByRole } = await render(
+
+ Open
+
+
+ 1
+
+ 2
+
+
+ 2.1
+ 2.2
+
+
+
+
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Open' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await user.keyboard('[ArrowDown]');
+ await waitFor(() => {
+ expect(getByRole('menuitem', { name: '1' })).toHaveFocus();
+ });
+
+ await user.keyboard('[ArrowDown]');
+ await waitFor(() => {
+ expect(getByRole('menuitem', { name: '2' })).toHaveFocus();
+ });
+
+ await user.keyboard('[ArrowRight]');
+ await waitFor(() => {
+ expect(getByRole('menuitem', { name: '2.1' })).toHaveFocus();
+ });
+
+ await user.keyboard('[Escape]');
+ await act(async () => {});
+
+ expect(queryByRole('menu', { hidden: false })).to.equal(null);
+ });
+
+ it('does not close the parent menu when the Escape key is pressed if `closeParentOnEsc=false`', async () => {
+ const { getByRole, queryAllByRole } = await render(
+
+ Open
+
+ ,
+ );
+
+ const trigger = getByRole('button', { name: 'Open' });
+ await act(() => {
+ trigger.focus();
+ });
+
+ await user.keyboard('[ArrowDown]');
+ await waitFor(() => {
+ expect(getByRole('menuitem', { name: '1' })).toHaveFocus();
+ });
+
+ await user.keyboard('[ArrowDown]');
+ await waitFor(() => {
+ expect(getByRole('menuitem', { name: '2' })).toHaveFocus();
+ });
+
+ await user.keyboard('[ArrowRight]');
+ await waitFor(() => {
+ expect(getByRole('menuitem', { name: '2.1' })).toHaveFocus();
+ });
+
+ await user.keyboard('[Escape]');
+ await waitFor(() => {
+ const menus = queryAllByRole('menu', { hidden: false });
+ expect(menus.length).to.equal(1);
+ expect(menus[0].id).to.equal('parent-menu');
+ });
+ });
+ });
+});
diff --git a/packages/mui-base/src/Menu/Root/MenuRoot.tsx b/packages/mui-base/src/Menu/Root/MenuRoot.tsx
new file mode 100644
index 0000000000..e487da8a1a
--- /dev/null
+++ b/packages/mui-base/src/Menu/Root/MenuRoot.tsx
@@ -0,0 +1,226 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { FloatingTree } from '@floating-ui/react';
+import { MenuRootContext, useMenuRootContext } from './MenuRootContext';
+import { MenuDirection, MenuOrientation, useMenuRoot } from './useMenuRoot';
+
+function MenuRoot(props: MenuRoot.Props) {
+ const {
+ animated = true,
+ children,
+ defaultOpen = false,
+ dir: direction = 'ltr',
+ disabled = false,
+ closeParentOnEsc = true,
+ loop = true,
+ onOpenChange,
+ open,
+ orientation = 'vertical',
+ delay = 100,
+ openOnHover: openOnHoverProp,
+ } = props;
+
+ const parentContext = useMenuRootContext(true);
+ const nested = parentContext != null;
+
+ const openOnHover = openOnHoverProp ?? nested;
+
+ const menuRoot = useMenuRoot({
+ animated,
+ direction,
+ disabled,
+ closeParentOnEsc,
+ onOpenChange,
+ loop,
+ defaultOpen,
+ open,
+ orientation,
+ nested,
+ openOnHover,
+ delay,
+ });
+
+ const [localClickAndDragEnabled, setLocalClickAndDragEnabled] = React.useState(false);
+ let clickAndDragEnabled = localClickAndDragEnabled;
+ let setClickAndDragEnabled = setLocalClickAndDragEnabled;
+
+ if (parentContext != null) {
+ clickAndDragEnabled = parentContext.clickAndDragEnabled;
+ setClickAndDragEnabled = parentContext.setClickAndDragEnabled;
+ }
+
+ const context: MenuRootContext = React.useMemo(
+ () => ({
+ ...menuRoot,
+ nested,
+ parentContext,
+ disabled,
+ clickAndDragEnabled,
+ setClickAndDragEnabled,
+ }),
+ [menuRoot, nested, parentContext, disabled, clickAndDragEnabled, setClickAndDragEnabled],
+ );
+
+ if (!nested) {
+ // set up a FloatingTree to provide the context to nested menus
+ return (
+
+ {children}
+
+ );
+ }
+
+ return {children} ;
+}
+
+namespace MenuRoot {
+ export interface Props {
+ /**
+ * If `true`, the Menu supports CSS-based animations and transitions.
+ * It is kept in the DOM until the animation completes.
+ *
+ * @default true
+ */
+ animated?: boolean;
+ children: React.ReactNode;
+ /**
+ * If `true`, the Menu is initially open.
+ *
+ * @default false
+ */
+ defaultOpen?: boolean;
+ /**
+ * If `true`, using keyboard navigation will wrap focus to the other end of the list once the end is reached.
+ * @default true
+ */
+ loop?: boolean;
+ /**
+ * Callback fired when the component requests to be opened or closed.
+ */
+ onOpenChange?: (open: boolean, event: Event | undefined) => void;
+ /**
+ * Allows to control whether the dropdown is open.
+ * This is a controlled counterpart of `defaultOpen`.
+ */
+ open?: boolean;
+ /**
+ * The orientation of the Menu (horizontal or vertical).
+ *
+ * @default 'vertical'
+ */
+ orientation?: MenuOrientation;
+ /**
+ * The direction of the Menu (left-to-right or right-to-left).
+ *
+ * @default 'ltr'
+ */
+ dir?: MenuDirection;
+ /**
+ * If `true`, the Menu is disabled.
+ *
+ * @default false
+ */
+ disabled?: boolean;
+ /**
+ * Determines if pressing the Esc key closes the parent menus.
+ * This is only applicable for nested menus.
+ *
+ * If set to `false` pressing Esc closes only the current menu.
+ *
+ * @default true
+ */
+ closeParentOnEsc?: boolean;
+ /**
+ * The delay in milliseconds until the menu popup is opened when `openOnHover` is `true`.
+ *
+ * @default 100
+ */
+ delay?: number;
+ /**
+ * Whether the menu popup opens when the trigger is hovered after the provided `delay`.
+ *
+ * @default nested
+ */
+ openOnHover?: boolean;
+ }
+}
+
+MenuRoot.propTypes /* remove-proptypes */ = {
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
+ // │ These PropTypes are generated from the TypeScript type definitions. │
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
+ // └─────────────────────────────────────────────────────────────────────┘
+ /**
+ * If `true`, the Menu supports CSS-based animations and transitions.
+ * It is kept in the DOM until the animation completes.
+ *
+ * @default true
+ */
+ animated: PropTypes.bool,
+ /**
+ * @ignore
+ */
+ children: PropTypes.node,
+ /**
+ * Determines if pressing the Esc key closes the parent menus.
+ * This is only applicable for nested menus.
+ *
+ * If set to `false` pressing Esc closes only the current menu.
+ *
+ * @default true
+ */
+ closeParentOnEsc: PropTypes.bool,
+ /**
+ * If `true`, the Menu is initially open.
+ *
+ * @default false
+ */
+ defaultOpen: PropTypes.bool,
+ /**
+ * The delay in milliseconds until the menu popup is opened when `openOnHover` is `true`.
+ *
+ * @default 100
+ */
+ delay: PropTypes.number,
+ /**
+ * The direction of the Menu (left-to-right or right-to-left).
+ *
+ * @default 'ltr'
+ */
+ dir: PropTypes.oneOf(['ltr', 'rtl']),
+ /**
+ * If `true`, the Menu is disabled.
+ *
+ * @default false
+ */
+ disabled: PropTypes.bool,
+ /**
+ * If `true`, using keyboard navigation will wrap focus to the other end of the list once the end is reached.
+ * @default true
+ */
+ loop: PropTypes.bool,
+ /**
+ * Callback fired when the component requests to be opened or closed.
+ */
+ onOpenChange: PropTypes.func,
+ /**
+ * Allows to control whether the dropdown is open.
+ * This is a controlled counterpart of `defaultOpen`.
+ */
+ open: PropTypes.bool,
+ /**
+ * Whether the menu popup opens when the trigger is hovered after the provided `delay`.
+ *
+ * @default nested
+ */
+ openOnHover: PropTypes.bool,
+ /**
+ * The orientation of the Menu (horizontal or vertical).
+ *
+ * @default 'vertical'
+ */
+ orientation: PropTypes.oneOf(['horizontal', 'vertical']),
+} as any;
+
+export { MenuRoot };
diff --git a/packages/mui-base/src/Menu/Root/MenuRootContext.ts b/packages/mui-base/src/Menu/Root/MenuRootContext.ts
new file mode 100644
index 0000000000..94e5f741e3
--- /dev/null
+++ b/packages/mui-base/src/Menu/Root/MenuRootContext.ts
@@ -0,0 +1,30 @@
+'use client';
+import * as React from 'react';
+import type { useMenuRoot } from './useMenuRoot';
+
+export interface MenuRootContext extends useMenuRoot.ReturnValue {
+ clickAndDragEnabled: boolean;
+ disabled: boolean;
+ nested: boolean;
+ parentContext: MenuRootContext | null;
+ setClickAndDragEnabled: React.Dispatch>;
+}
+
+export const MenuRootContext = React.createContext(null);
+
+if (process.env.NODE_ENV !== 'production') {
+ MenuRootContext.displayName = 'MenuRootContext';
+}
+
+function useMenuRootContext(optional?: false): MenuRootContext;
+function useMenuRootContext(optional: true): MenuRootContext | null;
+function useMenuRootContext(optional?: boolean) {
+ const context = React.useContext(MenuRootContext);
+ if (context === null && !optional) {
+ throw new Error('Base UI: MenuRootContext is not defined.');
+ }
+
+ return context;
+}
+
+export { useMenuRootContext };
diff --git a/packages/mui-base/src/Menu/Root/useMenuRoot.ts b/packages/mui-base/src/Menu/Root/useMenuRoot.ts
new file mode 100644
index 0000000000..954d5cc71e
--- /dev/null
+++ b/packages/mui-base/src/Menu/Root/useMenuRoot.ts
@@ -0,0 +1,277 @@
+'use client';
+import * as React from 'react';
+import {
+ safePolygon,
+ useClick,
+ useDismiss,
+ useFloatingRootContext,
+ useHover,
+ useInteractions,
+ useListNavigation,
+ useRole,
+ useTypeahead,
+ FloatingRootContext,
+} from '@floating-ui/react';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import { GenericHTMLProps } from '../../utils/types';
+import { useTransitionStatus } from '../../utils/useTransitionStatus';
+import { useEventCallback } from '../../utils/useEventCallback';
+import { useAnimationsFinished } from '../../utils/useAnimationsFinished';
+import { useControlled } from '../../utils/useControlled';
+
+const EMPTY_ARRAY: never[] = [];
+
+/**
+ *
+ * API:
+ *
+ * - [useMenuRoot API](https://mui.com/base-ui/api/use-menu-root/)
+ */
+export function useMenuRoot(parameters: useMenuRoot.Parameters): useMenuRoot.ReturnValue {
+ const {
+ animated,
+ open: openParam,
+ defaultOpen,
+ onOpenChange,
+ orientation,
+ direction,
+ disabled,
+ nested,
+ closeParentOnEsc,
+ loop,
+ delay,
+ openOnHover,
+ } = parameters;
+
+ const [triggerElement, setTriggerElement] = React.useState(null);
+ const [positionerElement, setPositionerElement] = React.useState(null);
+ const popupRef = React.useRef(null);
+ const [hoverEnabled, setHoverEnabled] = React.useState(true);
+ const [activeIndex, setActiveIndex] = React.useState(null);
+
+ const [open, setOpenUnwrapped] = useControlled({
+ controlled: openParam,
+ default: defaultOpen,
+ name: 'useMenuRoot',
+ state: 'open',
+ });
+
+ const { mounted, setMounted, transitionStatus } = useTransitionStatus(open, animated);
+
+ const runOnceAnimationsFinish = useAnimationsFinished(popupRef);
+ const setOpen = useEventCallback((nextOpen: boolean, event?: Event) => {
+ onOpenChange?.(nextOpen, event);
+ setOpenUnwrapped(nextOpen);
+ if (!nextOpen) {
+ if (animated) {
+ runOnceAnimationsFinish(() => setMounted(false));
+ } else {
+ setMounted(false);
+ }
+ }
+ });
+
+ const floatingRootContext = useFloatingRootContext({
+ elements: {
+ reference: triggerElement,
+ floating: positionerElement,
+ },
+ open,
+ onOpenChange: setOpen,
+ });
+
+ const hover = useHover(floatingRootContext, {
+ enabled: hoverEnabled && openOnHover && !disabled,
+ handleClose: safePolygon({ blockPointerEvents: true }),
+ mouseOnly: true,
+ delay: {
+ open: delay,
+ },
+ });
+
+ const click = useClick(floatingRootContext, {
+ enabled: !disabled,
+ event: 'mousedown',
+ toggle: !nested,
+ ignoreMouse: nested,
+ });
+
+ const dismiss = useDismiss(floatingRootContext, { bubbles: closeParentOnEsc });
+
+ const role = useRole(floatingRootContext, {
+ role: 'menu',
+ });
+
+ const itemDomElements = React.useRef<(HTMLElement | null)[]>([]);
+ const itemLabels = React.useRef<(string | null)[]>([]);
+
+ const listNavigation = useListNavigation(floatingRootContext, {
+ enabled: !disabled,
+ listRef: itemDomElements,
+ activeIndex,
+ nested,
+ loop,
+ orientation,
+ rtl: direction === 'rtl',
+ disabledIndices: EMPTY_ARRAY,
+ onNavigate: setActiveIndex,
+ });
+
+ const typeahead = useTypeahead(floatingRootContext, {
+ listRef: itemLabels,
+ activeIndex,
+ resetMs: 350,
+ onMatch: (index) => {
+ if (open && index !== activeIndex) {
+ setActiveIndex(index);
+ }
+ },
+ });
+
+ const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([
+ hover,
+ click,
+ dismiss,
+ role,
+ listNavigation,
+ typeahead,
+ ]);
+
+ const getTriggerProps = React.useCallback(
+ (externalProps?: GenericHTMLProps) =>
+ getReferenceProps(
+ mergeReactProps(externalProps, {
+ onMouseEnter: () => {
+ setHoverEnabled(true);
+ },
+ }),
+ ),
+ [getReferenceProps],
+ );
+
+ const getPositionerProps = React.useCallback(
+ (externalProps?: GenericHTMLProps) =>
+ getFloatingProps(
+ mergeReactProps(externalProps, {
+ onMouseEnter: () => {
+ setHoverEnabled(false);
+ },
+ }),
+ ),
+ [getFloatingProps],
+ );
+
+ return React.useMemo(
+ () => ({
+ activeIndex,
+ floatingRootContext,
+ triggerElement,
+ setTriggerElement,
+ getTriggerProps,
+ setPositionerElement,
+ getPositionerProps,
+ getItemProps,
+ itemDomElements,
+ itemLabels,
+ mounted,
+ transitionStatus,
+ popupRef,
+ open,
+ setOpen,
+ }),
+ [
+ activeIndex,
+ floatingRootContext,
+ triggerElement,
+ getTriggerProps,
+ getPositionerProps,
+ getItemProps,
+ itemDomElements,
+ itemLabels,
+ mounted,
+ transitionStatus,
+ open,
+ setOpen,
+ ],
+ );
+}
+
+export type MenuOrientation = 'horizontal' | 'vertical';
+
+export type MenuDirection = 'ltr' | 'rtl';
+
+export namespace useMenuRoot {
+ export interface Parameters {
+ /**
+ * If `true`, the Menu supports CSS-based animations and transitions.
+ * It is kept in the DOM until the animation completes.
+ */
+ animated: boolean;
+ /**
+ * Allows to control whether the Menu is open.
+ * This is a controlled counterpart of `defaultOpen`.
+ */
+ open: boolean | undefined;
+ /**
+ * Callback fired when the component requests to be opened or closed.
+ */
+ onOpenChange: ((open: boolean, event: Event | undefined) => void) | undefined;
+ /**
+ * If `true`, the Menu is initially open.
+ */
+ defaultOpen: boolean;
+ /**
+ * If `true`, using keyboard navigation will wrap focus to the other end of the list once the end is reached.
+ */
+ loop: boolean;
+ /**
+ * The delay in milliseconds until the menu popup is opened when `openOnHover` is `true`.
+ */
+ delay: number;
+ /**
+ * The orientation of the Menu (horizontal or vertical).
+ */
+ orientation: MenuOrientation;
+ /**
+ * The direction of the Menu (left-to-right or right-to-left).
+ */
+ direction: MenuDirection;
+ /**
+ * If `true`, the Menu is disabled.
+ */
+ disabled: boolean;
+ /**
+ * Determines if the Menu is nested inside another Menu.
+ */
+ nested: boolean;
+ /**
+ * Determines if pressing the Esc key closes the parent menus.
+ * This is only applicable for nested menus.
+ *
+ * If set to `false` pressing Esc closes only the current menu.
+ */
+ closeParentOnEsc: boolean;
+ /**
+ * Whether the menu popup opens when the trigger is hovered after the provided `delay`.
+ */
+ openOnHover: boolean;
+ }
+
+ export interface ReturnValue {
+ activeIndex: number | null;
+ floatingRootContext: FloatingRootContext;
+ getItemProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ getPositionerProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ getTriggerProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ itemDomElements: React.MutableRefObject<(HTMLElement | null)[]>;
+ itemLabels: React.MutableRefObject<(string | null)[]>;
+ mounted: boolean;
+ open: boolean;
+ popupRef: React.RefObject;
+ setOpen: (open: boolean, event: Event | undefined) => void;
+ setPositionerElement: (element: HTMLElement | null) => void;
+ setTriggerElement: (element: HTMLElement | null) => void;
+ transitionStatus: 'entering' | 'exiting' | undefined;
+ triggerElement: HTMLElement | null;
+ }
+}
diff --git a/packages/mui-base/src/Menu/SubmenuTrigger/SubmenuTrigger.tsx b/packages/mui-base/src/Menu/SubmenuTrigger/SubmenuTrigger.tsx
new file mode 100644
index 0000000000..a2160de2af
--- /dev/null
+++ b/packages/mui-base/src/Menu/SubmenuTrigger/SubmenuTrigger.tsx
@@ -0,0 +1,133 @@
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useFloatingTree, useListItem } from '@floating-ui/react';
+import { BaseUIComponentProps, GenericHTMLProps } from '../../utils/types';
+import { useMenuRootContext } from '../Root/MenuRootContext';
+import { commonStyleHooks } from '../utils/commonStyleHooks';
+import { useId } from '../../utils/useId';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { useSubmenuTrigger } from './useSubmenuTrigger';
+import { useForkRef } from '../../utils/useForkRef';
+
+const SubmenuTrigger = React.forwardRef(function SubmenuTriggerComponent(
+ props: SubmenuTrigger.Props,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { render, className, disabled = false, label, id: idProp, ...other } = props;
+ const id = useId(idProp);
+
+ const { getTriggerProps, parentContext, setTriggerElement, clickAndDragEnabled, open } =
+ useMenuRootContext();
+
+ if (parentContext === null) {
+ throw new Error('Base UI: ItemTrigger must be placed in a nested Menu.');
+ }
+
+ const { activeIndex, getItemProps } = parentContext;
+ const item = useListItem();
+
+ const highlighted = activeIndex === item.index;
+
+ const mergedRef = useForkRef(forwardedRef, item.ref);
+
+ const { events: menuEvents } = useFloatingTree()!;
+
+ const { getRootProps } = useSubmenuTrigger({
+ id,
+ highlighted,
+ ref: mergedRef,
+ disabled,
+ menuEvents,
+ setTriggerElement,
+ treatMouseupAsClick: clickAndDragEnabled,
+ });
+
+ const ownerState: SubmenuTrigger.OwnerState = { disabled, highlighted, open };
+
+ const { renderElement } = useComponentRenderer({
+ render: render || 'div',
+ className,
+ ownerState,
+ propGetter: (externalProps: GenericHTMLProps) =>
+ getTriggerProps(getItemProps(getRootProps(externalProps))),
+ customStyleHookMapping: commonStyleHooks,
+ extraProps: other,
+ });
+
+ return renderElement();
+});
+
+namespace SubmenuTrigger {
+ export interface Props extends BaseUIComponentProps<'div', OwnerState> {
+ children?: React.ReactNode;
+ onClick?: React.MouseEventHandler;
+ /**
+ * If `true`, the menu item will be disabled.
+ * @default false
+ */
+ disabled?: boolean;
+ /**
+ * A text representation of the menu item's content.
+ * Used for keyboard text navigation matching.
+ */
+ label?: string;
+ /**
+ * If `true`, the menu item won't receive focus when the mouse moves over it.
+ *
+ * @default false
+ */
+ disableFocusOnHover?: boolean;
+ id?: string;
+ }
+
+ export interface OwnerState {
+ disabled: boolean;
+ highlighted: boolean;
+ open: boolean;
+ }
+}
+
+SubmenuTrigger.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 menu item will be disabled.
+ * @default false
+ */
+ disabled: PropTypes.bool,
+ /**
+ * If `true`, the menu item won't receive focus when the mouse moves over it.
+ *
+ * @default false
+ */
+ disableFocusOnHover: PropTypes.bool,
+ /**
+ * @ignore
+ */
+ id: PropTypes.string,
+ /**
+ * A text representation of the menu item's content.
+ * Used for keyboard text navigation matching.
+ */
+ label: PropTypes.string,
+ /**
+ * @ignore
+ */
+ onClick: PropTypes.func,
+ /**
+ * A function to customize rendering of the component.
+ */
+ render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
+} as any;
+
+export { SubmenuTrigger };
diff --git a/packages/mui-base/src/Menu/SubmenuTrigger/useSubmenuTrigger.ts b/packages/mui-base/src/Menu/SubmenuTrigger/useSubmenuTrigger.ts
new file mode 100644
index 0000000000..5ecb534017
--- /dev/null
+++ b/packages/mui-base/src/Menu/SubmenuTrigger/useSubmenuTrigger.ts
@@ -0,0 +1,89 @@
+import * as React from 'react';
+import { FloatingEvents } from '@floating-ui/react';
+import { useMenuItem } from '../Item/useMenuItem';
+import { useForkRef } from '../../utils/useForkRef';
+import { GenericHTMLProps } from '../../utils/types';
+
+/**
+ *
+ * API:
+ *
+ * - [useSubmenuTrigger API](https://mui.com/base-ui/api/use-submenu-trigger/)
+ */
+export function useSubmenuTrigger(
+ parameters: useSubmenuTrigger.Parameters,
+): useSubmenuTrigger.ReturnValue {
+ const {
+ id,
+ highlighted,
+ disabled,
+ ref: externalRef,
+ menuEvents,
+ setTriggerElement,
+ treatMouseupAsClick,
+ } = parameters;
+
+ const { getRootProps: getMenuItemProps, rootRef: menuItemRef } = useMenuItem({
+ closeOnClick: false,
+ disabled,
+ highlighted,
+ id,
+ menuEvents,
+ ref: externalRef,
+ treatMouseupAsClick,
+ });
+
+ const menuTriggerRef = useForkRef(menuItemRef, setTriggerElement);
+
+ const getRootProps = React.useCallback(
+ (externalProps?: GenericHTMLProps) => {
+ return {
+ ...getMenuItemProps({
+ 'aria-haspopup': 'menu' as const,
+ ...externalProps,
+ }),
+ ref: menuTriggerRef,
+ };
+ },
+ [getMenuItemProps, menuTriggerRef],
+ );
+
+ return React.useMemo(
+ () => ({
+ getRootProps,
+ rootRef: menuTriggerRef,
+ }),
+ [getRootProps, menuTriggerRef],
+ );
+}
+
+export namespace useSubmenuTrigger {
+ export interface Parameters {
+ id: string | undefined;
+ highlighted: boolean;
+ /**
+ * If `true`, the menu item will be disabled.
+ */
+ disabled: boolean;
+ /**
+ * The ref of the item.
+ */
+ ref?: React.Ref;
+ /**
+ * The FloatingEvents instance of the menu's root.
+ */
+ menuEvents: FloatingEvents;
+ /**
+ * A callback to set the trigger element whenever it's mounted.
+ */
+ setTriggerElement: (element: HTMLElement | null) => void;
+ /**
+ * If `true`, the menu item will listen for mouseup events and treat them as clicks.
+ */
+ treatMouseupAsClick: boolean;
+ }
+
+ export interface ReturnValue {
+ getRootProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ }
+}
diff --git a/packages/mui-base/src/Menu/Trigger/MenuTrigger.test.tsx b/packages/mui-base/src/Menu/Trigger/MenuTrigger.test.tsx
new file mode 100644
index 0000000000..15236d2c1d
--- /dev/null
+++ b/packages/mui-base/src/Menu/Trigger/MenuTrigger.test.tsx
@@ -0,0 +1,167 @@
+import * as React from 'react';
+import { expect } from 'chai';
+import { FloatingRootContext, FloatingTree } from '@floating-ui/react';
+import userEvent from '@testing-library/user-event';
+import { act } from '@mui/internal-test-utils';
+import * as Menu from '@base_ui/react/Menu';
+import { MenuRootContext } from '@base_ui/react/Menu';
+import { describeConformance, createRenderer } from '../../../test';
+
+const testRootContext: MenuRootContext = {
+ floatingRootContext: {} as FloatingRootContext,
+ getPositionerProps: (p) => ({ ...p }),
+ getTriggerProps: (p) => ({ ...p }),
+ getItemProps: (p) => ({ ...p }),
+ parentContext: null,
+ nested: false,
+ triggerElement: null,
+ setTriggerElement: () => {},
+ setPositionerElement: () => {},
+ activeIndex: null,
+ disabled: false,
+ itemDomElements: { current: [] },
+ itemLabels: { current: [] },
+ open: true,
+ setOpen: () => {},
+ clickAndDragEnabled: false,
+ setClickAndDragEnabled: () => {},
+ popupRef: { current: null },
+ mounted: true,
+ transitionStatus: undefined,
+};
+
+describe(' ', () => {
+ const { render } = createRenderer();
+ const user = userEvent.setup();
+
+ describeConformance( , () => ({
+ render: (node) => {
+ return render(
+
+ {node}
+ ,
+ );
+ },
+ refInstanceof: window.HTMLButtonElement,
+ }));
+
+ describe('prop: disabled', () => {
+ it('should render a disabled button', async () => {
+ const { getByRole } = await render(
+
+
+ ,
+ );
+
+ const button = getByRole('button');
+ expect(button).to.have.property('disabled', true);
+ });
+
+ it('should not open the menu when clicked', async () => {
+ const { getByRole, queryByRole } = await render(
+
+
+
+
+
+ ,
+ );
+
+ const button = getByRole('button');
+ await user.click(button);
+
+ expect(queryByRole('menu', { hidden: false })).to.equal(null);
+ });
+ });
+
+ it('toggles the menu state when clicked', async () => {
+ const { getByRole, queryByRole } = await render(
+
+ Open
+
+
+
+ ,
+ );
+
+ const button = getByRole('button', { name: 'Open' });
+ await user.click(button);
+
+ const menuPopup = queryByRole('menu', { hidden: false });
+ expect(menuPopup).not.to.equal(null);
+
+ expect(menuPopup).to.have.attribute('data-menu', 'open');
+ });
+
+ describe('keyboard navigation', () => {
+ [
+ Open ,
+ }>Open,
+ ].forEach((buttonComponent) => {
+ const buttonType = buttonComponent.props.slots?.root ? 'non-native' : 'native';
+ ['ArrowUp', 'ArrowDown', 'Enter', ' '].forEach((key) => {
+ if (buttonType === 'native' && (key === ' ' || key === 'Enter')) {
+ return;
+ }
+
+ it(`opens the menu when pressing "${key}" on a ${buttonType} button`, async () => {
+ const { getByRole, queryByRole } = await render(
+
+ {buttonComponent}
+
+
+ 1
+
+
+ ,
+ );
+
+ const button = getByRole('button', { name: 'Open' });
+ await act(() => {
+ button.focus();
+ });
+
+ await user.keyboard(`[${key}]`);
+
+ const menuPopup = queryByRole('menu', { hidden: false });
+ expect(menuPopup).not.to.equal(null);
+ });
+ });
+ });
+ });
+
+ describe('accessibility attributes', () => {
+ it('has the aria-haspopup attribute', async () => {
+ const { getByRole } = await render(
+
+
+ ,
+ );
+
+ const button = getByRole('button');
+ expect(button).to.have.attribute('aria-haspopup');
+ });
+
+ it('has the aria-expanded=false attribute when closed', async () => {
+ const { getByRole } = await render(
+
+
+ ,
+ );
+
+ const button = getByRole('button');
+ expect(button).to.have.attribute('aria-expanded', 'false');
+ });
+
+ it('has the aria-expanded=true attribute when open', async () => {
+ const { getByRole } = await render(
+
+
+ ,
+ );
+
+ const button = getByRole('button');
+ expect(button).to.have.attribute('aria-expanded', 'true');
+ });
+ });
+});
diff --git a/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx b/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx
new file mode 100644
index 0000000000..a73a95d25c
--- /dev/null
+++ b/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx
@@ -0,0 +1,111 @@
+'use client';
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { useFloatingTree } from '@floating-ui/react';
+import { useMenuTrigger } from './useMenuTrigger';
+import { useMenuRootContext } from '../Root/MenuRootContext';
+import { commonStyleHooks } from '../utils/commonStyleHooks';
+import { useComponentRenderer } from '../../utils/useComponentRenderer';
+import { BaseUIComponentProps } from '../../utils/types';
+
+const MenuTrigger = React.forwardRef(function MenuTrigger(
+ props: MenuTrigger.Props,
+ forwardedRef: React.ForwardedRef,
+) {
+ const { render, className, disabled = false, label, ...other } = props;
+
+ const {
+ getTriggerProps,
+ disabled: menuDisabled,
+ setTriggerElement,
+ open,
+ setOpen,
+ setClickAndDragEnabled,
+ } = useMenuRootContext();
+
+ const { events: menuEvents } = useFloatingTree()!;
+
+ const { getRootProps } = useMenuTrigger({
+ disabled: disabled || menuDisabled,
+ rootRef: forwardedRef,
+ menuEvents,
+ setTriggerElement,
+ open,
+ setOpen,
+ setClickAndDragEnabled,
+ });
+
+ const ownerState: MenuTrigger.OwnerState = {
+ open,
+ };
+
+ const { renderElement } = useComponentRenderer({
+ render: render || 'button',
+ className,
+ ownerState,
+ propGetter: (externalProps) => getTriggerProps(getRootProps(externalProps)),
+ customStyleHookMapping: commonStyleHooks,
+ extraProps: other,
+ });
+
+ return renderElement();
+});
+
+namespace MenuTrigger {
+ export interface Props extends BaseUIComponentProps<'button', OwnerState> {
+ children?: React.ReactNode;
+ /**
+ * If `true`, the component is disabled.
+ * @default false
+ */
+ disabled?: boolean;
+ /**
+ * If `true`, allows a disabled button to receive focus.
+ * @default false
+ */
+ focusableWhenDisabled?: boolean;
+ /**
+ * Label of the button
+ */
+ label?: string;
+ }
+
+ export type OwnerState = {
+ open: boolean;
+ };
+}
+
+MenuTrigger.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 component is disabled.
+ * @default false
+ */
+ disabled: PropTypes.bool,
+ /**
+ * If `true`, allows a disabled button to receive focus.
+ * @default false
+ */
+ focusableWhenDisabled: PropTypes.bool,
+ /**
+ * Label of the button
+ */
+ label: PropTypes.string,
+ /**
+ * A function to customize rendering of the component.
+ */
+ render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
+} as any;
+
+export { MenuTrigger };
diff --git a/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts b/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts
new file mode 100644
index 0000000000..90c3045892
--- /dev/null
+++ b/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts
@@ -0,0 +1,142 @@
+'use client';
+import * as React from 'react';
+import { unstable_useForkRef as useForkRef } from '@mui/utils';
+import { FloatingEvents } from '@floating-ui/react';
+import { useButton } from '../../useButton/useButton';
+import { GenericHTMLProps } from '../../utils/types';
+import { mergeReactProps } from '../../utils/mergeReactProps';
+import { ownerDocument } from '../../utils/owner';
+
+/**
+ *
+ * API:
+ *
+ * - [useMenuTrigger API](https://mui.com/base-ui/api/use-menu-trigger/)
+ */
+export function useMenuTrigger(parameters: useMenuTrigger.Parameters): useMenuTrigger.ReturnValue {
+ const {
+ disabled = false,
+ rootRef: externalRef,
+ open,
+ setOpen,
+ setTriggerElement,
+ setClickAndDragEnabled,
+ } = parameters;
+
+ const triggerRef = React.useRef(null);
+
+ const mergedRef = useForkRef(externalRef, triggerRef);
+
+ const { getRootProps: getButtonRootProps, rootRef: buttonRootRef } = useButton({
+ disabled,
+ focusableWhenDisabled: false,
+ rootRef: mergedRef,
+ });
+
+ const handleRef = useForkRef(buttonRootRef, setTriggerElement);
+ const ignoreNextClick = React.useRef(false);
+
+ const getRootProps = React.useCallback(
+ (externalProps?: GenericHTMLProps): GenericHTMLProps => {
+ return mergeReactProps(
+ externalProps,
+ {
+ 'aria-haspopup': 'menu' as const,
+ tabIndex: 0, // this is needed to make the button focused after click in Safari
+ ref: handleRef,
+ onMouseDown: (event: MouseEvent) => {
+ if (open) {
+ return;
+ }
+
+ // prevents closing the menu right after it was opened
+ ignoreNextClick.current = true;
+ event.preventDefault();
+
+ setClickAndDragEnabled(true);
+ const mousedownTarget = event.target as Element;
+
+ function handleDocumentMouseUp(mouseUpEvent: MouseEvent) {
+ const mouseupTarget = mouseUpEvent.target as HTMLElement;
+ if (mouseupTarget?.dataset?.handleMouseup === 'true') {
+ mouseupTarget.click();
+ } else if (
+ mouseupTarget !== triggerRef.current &&
+ !triggerRef.current?.contains(mouseupTarget)
+ ) {
+ setOpen(false, mouseUpEvent);
+ }
+
+ setClickAndDragEnabled(false);
+ ownerDocument(mousedownTarget).removeEventListener('mouseup', handleDocumentMouseUp);
+ }
+
+ ownerDocument(mousedownTarget).addEventListener('mouseup', handleDocumentMouseUp);
+ },
+ onClick: () => {
+ if (ignoreNextClick.current) {
+ ignoreNextClick.current = false;
+ }
+ },
+ },
+ getButtonRootProps(),
+ );
+ },
+ [getButtonRootProps, handleRef, open, setOpen, setClickAndDragEnabled],
+ );
+
+ return React.useMemo(
+ () => ({
+ getRootProps,
+ rootRef: handleRef,
+ }),
+ [getRootProps, handleRef],
+ );
+}
+
+export namespace useMenuTrigger {
+ export interface Parameters {
+ /**
+ * If `true`, the component is disabled.
+ * @default false
+ */
+ disabled?: boolean;
+ /**
+ * The ref to the root element.
+ */
+ rootRef?: React.Ref;
+ /**
+ * A callback to set the trigger element whenever it's mounted.
+ */
+ setTriggerElement: (element: HTMLElement | null) => void;
+ /**
+ * If `true`, the Menu is open.
+ */
+ open: boolean;
+ /**
+ * A callback to set the open state of the Menu.
+ */
+ setOpen: (open: boolean, event: Event | undefined) => void;
+ /**
+ * The FloatingEvents instance of the menu's root.
+ */
+ menuEvents: FloatingEvents;
+ /**
+ * A callback to enable/disable click and drag functionality.
+ */
+ setClickAndDragEnabled: (enabled: boolean) => void;
+ }
+
+ export interface ReturnValue {
+ /**
+ * Resolver for the root slot's props.
+ * @param externalProps props for the root slot
+ * @returns props that should be spread on the root slot
+ */
+ getRootProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
+ /**
+ * The ref to the root element.
+ */
+ rootRef: React.RefCallback | null;
+ }
+}
diff --git a/packages/mui-base/src/Menu/index.ts b/packages/mui-base/src/Menu/index.ts
new file mode 100644
index 0000000000..33250fa387
--- /dev/null
+++ b/packages/mui-base/src/Menu/index.ts
@@ -0,0 +1,25 @@
+export { MenuArrow as Arrow } from './Arrow/MenuArrow';
+export { useMenuArrow } from './Arrow/useMenuArrow';
+
+export { MenuItem as Item } from './Item/MenuItem';
+export { useMenuItem } from './Item/useMenuItem';
+
+export { MenuPopup as Popup } from './Popup/MenuPopup';
+export { useMenuPopup } from './Popup/useMenuPopup';
+
+export { MenuPositioner as Positioner } from './Positioner/MenuPositioner';
+export { useMenuPositioner } from './Positioner/useMenuPositioner';
+export {
+ MenuPositionerContext,
+ useMenuPositionerContext,
+} from './Positioner/MenuPositionerContext';
+
+export { MenuRoot as Root } from './Root/MenuRoot';
+export { useMenuRoot } from './Root/useMenuRoot';
+export { MenuRootContext, useMenuRootContext } from './Root/MenuRootContext';
+
+export { MenuTrigger as Trigger } from './Trigger/MenuTrigger';
+export { useMenuTrigger } from './Trigger/useMenuTrigger';
+
+export { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';
+export { useSubmenuTrigger } from './SubmenuTrigger/useSubmenuTrigger';
diff --git a/packages/mui-base/src/Menu/utils/commonStyleHooks.ts b/packages/mui-base/src/Menu/utils/commonStyleHooks.ts
new file mode 100644
index 0000000000..ca6997419e
--- /dev/null
+++ b/packages/mui-base/src/Menu/utils/commonStyleHooks.ts
@@ -0,0 +1,3 @@
+export const commonStyleHooks = {
+ open: (value: boolean) => ({ 'data-menu': value ? 'open' : 'closed' }),
+};
diff --git a/packages/mui-base/src/legacy/Dropdown/Dropdown.test.tsx b/packages/mui-base/src/legacy/Dropdown/Dropdown.test.tsx
deleted file mode 100644
index 5dcba8589b..0000000000
--- a/packages/mui-base/src/legacy/Dropdown/Dropdown.test.tsx
+++ /dev/null
@@ -1,176 +0,0 @@
-import * as React from 'react';
-import { expect } from 'chai';
-import {
- act,
- createRenderer,
- flushMicrotasks,
- MuiRenderResult,
- RenderOptions,
-} from '@mui/internal-test-utils';
-import { Dropdown } from '@base_ui/react/legacy/Dropdown';
-import { DropdownContext } from '@base_ui/react/legacy/useDropdown';
-import { MenuButton } from '@base_ui/react/legacy/MenuButton';
-import { MenuItem } from '@base_ui/react/legacy/MenuItem';
-import { Menu } from '@base_ui/react/legacy/Menu';
-import { MenuProvider, useMenu } from '@base_ui/react/legacy/useMenu';
-import { Unstable_Popup as Popup } from '@base_ui/react/legacy/Unstable_Popup';
-
-describe(' ', () => {
- const { render: internalRender } = createRenderer();
-
- async function render(
- element: React.ReactElement>,
- options?: RenderOptions,
- ): Promise {
- const rendered = internalRender(element, options);
- await flushMicrotasks();
- return rendered;
- }
-
- it('registers a popup id correctly', async () => {
- function TestComponent() {
- const { registerPopup, popupId } = React.useContext(DropdownContext)!;
- expect(context).not.to.equal(null);
-
- React.useEffect(() => {
- registerPopup('test-popup');
- }, [registerPopup]);
-
- return {popupId}
;
- }
-
- const { container } = await render(
-
-
- ,
- );
-
- expect(container.innerHTML).to.equal('test-popup
');
- });
-
- it('registers a trigger element correctly', async () => {
- const trigger = document.createElement('button');
- trigger.setAttribute('data-testid', 'test-button');
-
- function TestComponent() {
- const { registerTrigger, triggerElement } = React.useContext(DropdownContext)!;
- expect(context).not.to.equal(null);
-
- React.useEffect(() => {
- registerTrigger(trigger);
- }, [registerTrigger]);
-
- return {triggerElement?.getAttribute('data-testid')}
;
- }
-
- const { container } = await render(
-
-
- ,
- );
-
- expect(container.innerHTML).to.equal('test-button
');
- });
-
- it('focuses the first item after the menu is opened', async () => {
- const { getByRole, getAllByRole } = await render(
-
-
- Toggle
-
- One
- Two
- Three
-
-
-
,
- );
-
- const button = getByRole('button');
- act(() => {
- button.click();
- });
-
- const menuItems = getAllByRole('menuitem');
-
- await flushMicrotasks();
-
- expect(menuItems[0]).toHaveFocus();
- });
-
- it('should focus on second item when 1st item is disabled and disabledItemsFocusable set to false', async () => {
- const CustomMenu = React.forwardRef(function CustomMenu(
- props: React.ComponentPropsWithoutRef<'ul'>,
- ref: React.Ref,
- ) {
- const { children, ...other } = props;
-
- const { open, triggerElement, contextValue, getListboxProps } = useMenu({
- listboxRef: ref,
- disabledItemsFocusable: false,
- });
-
- return (
-
-
-
- );
- });
-
- const { getByRole, getAllByRole } = await render(
-
-
- Toggle
-
- One
- Two
- Three
-
-
-
,
- );
-
- const button = getByRole('button');
- act(() => {
- button.click();
- });
-
- const menuItems = getAllByRole('menuitem');
-
- await flushMicrotasks();
-
- expect(menuItems[1]).toHaveFocus();
- });
-
- it('focuses the trigger after the menu is closed', async () => {
- const { getByRole } = await render(
-
-
-
- Toggle
-
- Close
-
-
-
-
,
- );
-
- const button = getByRole('button');
- act(() => {
- button.click();
- });
-
- const menuItem = getByRole('menuitem');
-
- await flushMicrotasks();
-
- act(() => {
- menuItem.click();
- });
-
- expect(button).toHaveFocus();
- });
-});
diff --git a/packages/mui-base/src/legacy/Dropdown/Dropdown.tsx b/packages/mui-base/src/legacy/Dropdown/Dropdown.tsx
deleted file mode 100644
index 0419a72ce3..0000000000
--- a/packages/mui-base/src/legacy/Dropdown/Dropdown.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-'use client';
-import * as React from 'react';
-import PropTypes from 'prop-types';
-import { exactProp } from '@mui/utils';
-import { DropdownProps } from './Dropdown.types';
-import { DropdownContext } from '../useDropdown/DropdownContext';
-import { useDropdown } from '../useDropdown/useDropdown';
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/)
- *
- * API:
- *
- * - [Dropdown API](https://mui.com/base-ui/react-menu/components-api/#dropdown)
- */
-function Dropdown(props: DropdownProps) {
- const { children, open, defaultOpen, onOpenChange } = props;
-
- const { contextValue } = useDropdown({
- defaultOpen,
- onOpenChange,
- open,
- });
-
- return {children} ;
-}
-
-Dropdown.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,
- /**
- * If `true`, the dropdown is initially open.
- */
- defaultOpen: PropTypes.bool,
- /**
- * Callback fired when the component requests to be opened or closed.
- */
- onOpenChange: PropTypes.func,
- /**
- * Allows to control whether the dropdown is open.
- * This is a controlled counterpart of `defaultOpen`.
- */
- open: PropTypes.bool,
-} as any;
-
-if (process.env.NODE_ENV !== 'production') {
- // eslint-disable-next-line
- (Dropdown as any)['propTypes' + ''] = exactProp(Dropdown.propTypes);
-}
-
-export { Dropdown };
diff --git a/packages/mui-base/src/legacy/Dropdown/Dropdown.types.ts b/packages/mui-base/src/legacy/Dropdown/Dropdown.types.ts
deleted file mode 100644
index 58ca0c668a..0000000000
--- a/packages/mui-base/src/legacy/Dropdown/Dropdown.types.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-export interface DropdownProps {
- children: React.ReactNode;
- /**
- * If `true`, the dropdown is initially open.
- */
- defaultOpen?: boolean;
- /**
- * Callback fired when the component requests to be opened or closed.
- */
- onOpenChange?: (
- event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null,
- open: boolean,
- ) => void;
- /**
- * Allows to control whether the dropdown is open.
- * This is a controlled counterpart of `defaultOpen`.
- */
- open?: boolean;
-}
diff --git a/packages/mui-base/src/legacy/Dropdown/index.ts b/packages/mui-base/src/legacy/Dropdown/index.ts
deleted file mode 100644
index 7b97b2e607..0000000000
--- a/packages/mui-base/src/legacy/Dropdown/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './Dropdown';
-export * from './Dropdown.types';
diff --git a/packages/mui-base/src/legacy/Menu/Menu.spec.tsx b/packages/mui-base/src/legacy/Menu/Menu.spec.tsx
deleted file mode 100644
index 5f49cce301..0000000000
--- a/packages/mui-base/src/legacy/Menu/Menu.spec.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import * as React from 'react';
-import { expectType } from '@mui/types';
-import { Menu } from '@base_ui/react/legacy/Menu';
-
-const polymorphicComponentTest = () => {
- const CustomComponent: React.FC<{ stringProp: string; numberProp: number }> =
- function CustomComponent() {
- return
;
- };
-
- return (
-
- {/* @ts-expect-error */}
-
-
-
- slots={{
- root: 'a',
- }}
- href="#"
- />
-
-
- slots={{
- root: CustomComponent,
- }}
- stringProp="test"
- numberProp={0}
- />
-
- {/* @ts-expect-error required props not specified */}
-
- slots={{
- root: CustomComponent,
- }}
- />
-
-
- slots={{
- root: 'button',
- }}
- onClick={(e: React.MouseEvent) => e.currentTarget.checkValidity()}
- />
-
-
- slots={{
- root: 'button',
- }}
- ref={(elem) => {
- expectType(elem);
- }}
- onMouseDown={(e) => {
- expectType, typeof e>(e);
- e.currentTarget.checkValidity();
- }}
- />
-
- );
-};
diff --git a/packages/mui-base/src/legacy/Menu/Menu.test.tsx b/packages/mui-base/src/legacy/Menu/Menu.test.tsx
deleted file mode 100644
index 6427056987..0000000000
--- a/packages/mui-base/src/legacy/Menu/Menu.test.tsx
+++ /dev/null
@@ -1,694 +0,0 @@
-import * as React from 'react';
-import { expect } from 'chai';
-import { spy } from 'sinon';
-import {
- createRenderer,
- fireEvent,
- act,
- MuiRenderResult,
- RenderOptions,
- flushMicrotasks,
-} from '@mui/internal-test-utils';
-import { Menu, menuClasses } from '@base_ui/react/legacy/Menu';
-import { MenuItem, MenuItemRootSlotProps } from '@base_ui/react/legacy/MenuItem';
-import { DropdownContext, DropdownContextValue } from '@base_ui/react/legacy/useDropdown';
-import { Unstable_Popup as Popup } from '@base_ui/react/legacy/Unstable_Popup';
-import { MenuProvider, useMenu } from '@base_ui/react/legacy/useMenu';
-import { describeConformanceUnstyled } from '../../../test/describeConformanceUnstyled';
-
-function createAnchor() {
- const anchor = document.createElement('div');
- document.body.appendChild(anchor);
- return anchor;
-}
-
-const testContext: DropdownContextValue = {
- dispatch: () => {},
- popupId: 'menu-popup',
- registerPopup: () => {},
- registerTrigger: () => {},
- state: { open: true, changeReason: null },
- triggerElement: null,
-};
-
-describe(' ', () => {
- const { render: internalRender } = createRenderer();
-
- async function render(
- element: React.ReactElement>,
- options?: RenderOptions,
- ): Promise {
- const rendered = await internalRender(element, options);
- await flushMicrotasks();
- return rendered;
- }
-
- describeConformanceUnstyled( , () => ({
- inheritComponent: 'div',
- render: (node) => {
- return render(
- {node} ,
- );
- },
- refInstanceof: window.HTMLDivElement,
- slots: {
- root: {
- expectedClassName: menuClasses.root,
- },
- listbox: {
- expectedClassName: menuClasses.listbox,
- },
- },
- skip: ['componentProp', 'slotsProp'],
- }));
-
- describe('after initialization', () => {
- function Test() {
- return (
-
-
- 1
- 2
- 3
-
-
- );
- }
-
- it('highlights the first item when the menu is opened', async () => {
- const { getAllByRole } = await render( );
- const [firstItem, ...otherItems] = getAllByRole('menuitem');
-
- expect(firstItem.tabIndex).to.equal(0);
- otherItems.forEach((item) => {
- expect(item.tabIndex).to.equal(-1);
- });
- });
-
- it('highlights first item when down arrow key opens the menu', async () => {
- const context: DropdownContextValue = {
- ...testContext,
- state: {
- ...testContext.state,
- open: true,
- changeReason: {
- type: 'keydown',
- key: 'ArrowDown',
- } as React.KeyboardEvent,
- },
- };
- const { getAllByRole } = await render(
-
-
- 1
- 2
- 3
-
- ,
- );
- const [firstItem, ...otherItems] = getAllByRole('menuitem');
-
- expect(firstItem.tabIndex).to.equal(0);
- otherItems.forEach((item) => {
- expect(item.tabIndex).to.equal(-1);
- });
- });
-
- it('highlights last item when up arrow key opens the menu', async () => {
- const context: DropdownContextValue = {
- ...testContext,
- state: {
- ...testContext.state,
- open: true,
- changeReason: {
- key: 'ArrowUp',
- type: 'keydown',
- } as React.KeyboardEvent,
- },
- };
- const { getAllByRole } = await render(
-
-
- 1
- 2
- 3
-
- ,
- );
-
- const [firstItem, secondItem, lastItem] = getAllByRole('menuitem');
-
- expect(lastItem.tabIndex).to.equal(0);
- [firstItem, secondItem].forEach((item) => {
- expect(item.tabIndex).to.equal(-1);
- });
- });
-
- it('highlights last non-disabled item when disabledItemsFocusable is set to false', async () => {
- const CustomMenu = React.forwardRef(function CustomMenu(
- props: React.ComponentPropsWithoutRef<'ul'>,
- ref: React.Ref,
- ) {
- const { children, ...other } = props;
-
- const { open, triggerElement, contextValue, getListboxProps } = useMenu({
- listboxRef: ref,
- disabledItemsFocusable: false,
- });
-
- const anchorEl = triggerElement ?? createAnchor();
-
- return (
-
-
-
- );
- });
-
- const context: DropdownContextValue = {
- ...testContext,
- state: {
- ...testContext.state,
- open: true,
- changeReason: {
- key: 'ArrowUp',
- type: 'keydown',
- } as React.KeyboardEvent,
- },
- };
- const { getAllByRole } = await render(
-
-
- 1
- 2
- 3
-
- ,
- );
- const [firstItem, secondItem, lastItem] = getAllByRole('menuitem');
-
- expect(secondItem.tabIndex).to.equal(0);
- [firstItem, lastItem].forEach((item) => {
- expect(item.tabIndex).to.equal(-1);
- });
- });
- });
-
- describe('keyboard navigation', () => {
- it('changes the highlighted item using the arrow keys', async () => {
- const { getByTestId } = await render(
-
-
- 1
- 2
- 3
-
- ,
- );
-
- const item1 = getByTestId('item-1');
- const item2 = getByTestId('item-2');
- const item3 = getByTestId('item-3');
-
- act(() => {
- item1.focus();
- });
-
- fireEvent.keyDown(item1, { key: 'ArrowDown' });
- expect(document.activeElement).to.equal(item2);
-
- fireEvent.keyDown(item2, { key: 'ArrowDown' });
- expect(document.activeElement).to.equal(item3);
-
- fireEvent.keyDown(item3, { key: 'ArrowUp' });
- expect(document.activeElement).to.equal(item2);
- });
-
- it('changes the highlighted item using the Home and End keys', async () => {
- const { getByTestId } = await render(
-
-
- 1
- 2
- 3
-
- ,
- );
-
- const item1 = getByTestId('item-1');
- const item3 = getByTestId('item-3');
-
- act(() => {
- item1.focus();
- });
-
- fireEvent.keyDown(item1, { key: 'End' });
- expect(document.activeElement).to.equal(getByTestId('item-3'));
-
- fireEvent.keyDown(item3, { key: 'Home' });
- expect(document.activeElement).to.equal(getByTestId('item-1'));
- });
-
- it('includes disabled items during keyboard navigation', async () => {
- const { getByTestId } = await render(
-
-
- 1
-
- 2
-
-
- ,
- );
-
- const item1 = getByTestId('item-1');
- const item2 = getByTestId('item-2');
-
- act(() => {
- item1.focus();
- });
-
- fireEvent.keyDown(item1, { key: 'ArrowDown' });
- expect(document.activeElement).to.equal(item2);
-
- expect(item2).to.have.attribute('aria-disabled', 'true');
- });
-
- describe('text navigation', () => {
- it('changes the highlighted item', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- // useMenu Text navigation match menu items using HTMLElement.innerText
- // innerText is not supported by JsDom
- this.skip();
- }
-
- const { getByText, getAllByRole } = await render(
-
-
- Aa
- Ba
- Bb
- Ca
- Cb
- Cd
-
- ,
- );
-
- const items = getAllByRole('menuitem');
-
- act(() => {
- items[0].focus();
- });
-
- fireEvent.keyDown(items[0], { key: 'c' });
- expect(document.activeElement).to.equal(getByText('Ca'));
- expect(getByText('Ca')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[3], { key: 'd' });
- expect(document.activeElement).to.equal(getByText('Cd'));
- expect(getByText('Cd')).to.have.attribute('tabindex', '0');
- });
-
- it('repeated keys circulate all items starting with that letter', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- // useMenu Text navigation match menu items using HTMLElement.innerText
- // innerText is not supported by JsDom
- this.skip();
- }
-
- const { getByText, getAllByRole } = await render(
-
-
- Aa
- Ba
- Bb
- Ca
-
- ,
- );
-
- const items = getAllByRole('menuitem');
-
- act(() => {
- items[0].focus();
- });
-
- fireEvent.keyDown(items[0], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Ba'));
- expect(getByText('Ba')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[1], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Bb'));
- expect(getByText('Bb')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[2], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Ba'));
- expect(getByText('Ba')).to.have.attribute('tabindex', '0');
- });
-
- it('changes the highlighted item using text navigation on label prop', async () => {
- const { getAllByRole } = await render(
-
-
- 1
- 2
- 3
- 4
-
- ,
- );
-
- const items = getAllByRole('menuitem');
-
- act(() => {
- items[0].focus();
- });
-
- fireEvent.keyDown(items[0], { key: 'b' });
- expect(document.activeElement).to.equal(items[1]);
- expect(items[1]).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[1], { key: 'b' });
- expect(document.activeElement).to.equal(items[2]);
- expect(items[2]).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[2], { key: 'b' });
- expect(document.activeElement).to.equal(items[1]);
- expect(items[1]).to.have.attribute('tabindex', '0');
- });
-
- it('skips the non-stringifiable items', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- // useMenu Text navigation match menu items using HTMLElement.innerText
- // innerText is not supported by JsDom
- this.skip();
- }
-
- const { getByText, getAllByRole } = await render(
-
-
- Aa
- Ba
-
-
- Nested Content
-
- {undefined}
- {null}
- Bc
-
- ,
- );
-
- const items = getAllByRole('menuitem');
-
- act(() => {
- items[0].focus();
- });
-
- fireEvent.keyDown(items[0], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Ba'));
- expect(getByText('Ba')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[1], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Bc'));
- expect(getByText('Bc')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[6], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Ba'));
- expect(getByText('Ba')).to.have.attribute('tabindex', '0');
- });
-
- it('navigate to options with diacritic characters', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- // useMenu Text navigation match menu items using HTMLElement.innerText
- // innerText is not supported by JsDom
- this.skip();
- }
-
- const { getByText, getAllByRole } = await render(
-
-
- Aa
- Ba
- Bb
- Bą
-
- ,
- );
-
- const items = getAllByRole('menuitem');
-
- act(() => {
- items[0].focus();
- });
-
- fireEvent.keyDown(items[0], { key: 'b' });
- expect(document.activeElement).to.equal(getByText('Ba'));
- expect(getByText('Ba')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[1], { key: 'Control' });
- fireEvent.keyDown(items[1], { key: 'Alt' });
- fireEvent.keyDown(items[1], { key: 'ą' });
- expect(document.activeElement).to.equal(getByText('Bą'));
- expect(getByText('Bą')).to.have.attribute('tabindex', '0');
- });
-
- it('navigate to next options with beginning diacritic characters', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- // useMenu Text navigation match menu items using HTMLElement.innerText
- // innerText is not supported by JsDom
- this.skip();
- }
-
- const { getByText, getAllByRole } = await render(
-
-
- Aa
- ąa
- ąb
- ąc
-
- ,
- );
-
- const items = getAllByRole('menuitem');
-
- act(() => {
- items[0].focus();
- });
-
- fireEvent.keyDown(items[0], { key: 'Control' });
- fireEvent.keyDown(items[0], { key: 'Alt' });
- fireEvent.keyDown(items[0], { key: 'ą' });
- expect(document.activeElement).to.equal(getByText('ąa'));
- expect(getByText('ąa')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[1], { key: 'Alt' });
- fireEvent.keyDown(items[1], { key: 'Control' });
- fireEvent.keyDown(items[1], { key: 'ą' });
- expect(document.activeElement).to.equal(getByText('ąb'));
- expect(getByText('ąb')).to.have.attribute('tabindex', '0');
-
- fireEvent.keyDown(items[2], { key: 'Control' });
- fireEvent.keyDown(items[2], { key: 'AltGraph' });
- fireEvent.keyDown(items[2], { key: 'ą' });
- expect(document.activeElement).to.equal(getByText('ąc'));
- expect(getByText('ąc')).to.have.attribute('tabindex', '0');
- });
- });
- });
-
- describe('prop: onItemsChange', () => {
- it('should be called when the menu items change', async () => {
- const handleItemsChange = spy();
-
- const { setProps } = await render(
-
-
- 1
- 2
-
- ,
- );
-
- // The first call is the initial render.
- expect(handleItemsChange.callCount).to.equal(1);
-
- setProps({
- children: (
-
- 1
- 3
-
- ),
- });
-
- expect(handleItemsChange.callCount).to.equal(2);
- });
- });
-
- describe('prop: anchor', () => {
- it('should be placed near the specified element', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- this.skip();
- }
-
- function TestComponent() {
- const [anchor, setAnchor] = React.useState(null);
-
- return (
-
- );
- }
-
- const { getByTestId } = await render( );
-
- const popup = getByTestId('popup');
- const anchor = getByTestId('anchor');
-
- const anchorPosition = anchor.getBoundingClientRect();
-
- await new Promise((resolve) => {
- // position gets updated in the next frame
- requestAnimationFrame(() => {
- expect(popup.style.getPropertyValue('transform')).to.equal(
- `translate(${anchorPosition.left}px, ${anchorPosition.bottom}px)`,
- );
- resolve();
- });
- });
- });
-
- it('should be placed at the specified position', async function test() {
- if (/jsdom/.test(window.navigator.userAgent)) {
- this.skip();
- }
-
- const boundingRect = {
- x: 200,
- y: 100,
- top: 100,
- left: 200,
- bottom: 100,
- right: 200,
- height: 0,
- width: 0,
- toJSON: () => {},
- };
-
- const virtualElement = { getBoundingClientRect: () => boundingRect };
-
- const { getByTestId } = await render(
-
-
- 1
- 2
-
- ,
- );
- const popup = getByTestId('popup');
-
- await new Promise((resolve) => {
- // position gets updated in the next frame
- requestAnimationFrame(() => {
- expect(popup.style.getPropertyValue('transform')).to.equal(`translate(200px, 100px)`);
- resolve();
- });
- });
- });
- });
-
- it('perf: does not rerender menu items unnecessarily', async () => {
- const renderItem1Spy = spy();
- const renderItem2Spy = spy();
- const renderItem3Spy = spy();
- const renderItem4Spy = spy();
-
- const LoggingRoot = React.forwardRef(function LoggingRoot(
- props: MenuItemRootSlotProps & { renderSpy: () => void },
- ref: React.ForwardedRef,
- ) {
- const { renderSpy, ownerState, ...other } = props;
- renderSpy();
- return ;
- });
-
- const { getAllByRole } = await render(
-
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- ,
- );
-
- const menuItems = getAllByRole('menuitem');
- act(() => {
- menuItems[0].focus();
- });
-
- renderItem1Spy.resetHistory();
- renderItem2Spy.resetHistory();
- renderItem3Spy.resetHistory();
- renderItem4Spy.resetHistory();
-
- expect(renderItem1Spy.callCount).to.equal(0);
-
- fireEvent.keyDown(menuItems[0], { key: 'ArrowDown' }); // highlights '2'
-
- // React renders twice in strict mode, so we expect twice the number of spy calls
- // Also, useButton's focusVisible polyfill causes an extra render when focus is gained/lost.
-
- expect(renderItem1Spy.callCount).to.equal(4); // '1' rerenders as it loses highlight
- expect(renderItem2Spy.callCount).to.equal(4); // '2' rerenders as it receives highlight
-
- // neither the highlighted nor the selected state of these options changed,
- // so they don't need to rerender:
- expect(renderItem3Spy.callCount).to.equal(0);
- expect(renderItem4Spy.callCount).to.equal(0);
- });
-});
diff --git a/packages/mui-base/src/legacy/Menu/Menu.tsx b/packages/mui-base/src/legacy/Menu/Menu.tsx
deleted file mode 100644
index 4c46516eea..0000000000
--- a/packages/mui-base/src/legacy/Menu/Menu.tsx
+++ /dev/null
@@ -1,160 +0,0 @@
-'use client';
-import * as React from 'react';
-import PropTypes from 'prop-types';
-import { HTMLElementType, refType } from '@mui/utils';
-import { PolymorphicComponent } from '../utils/PolymorphicComponent';
-import { MenuOwnerState, MenuProps, MenuRootSlotProps, MenuTypeMap } from './Menu.types';
-import { getMenuUtilityClass } from './menuClasses';
-import { useMenu } from '../useMenu';
-import { MenuProvider } from '../useMenu/MenuProvider';
-import { unstable_composeClasses as composeClasses } from '../composeClasses';
-import { Unstable_Popup as Popup } from '../Unstable_Popup';
-import { useSlotProps } from '../utils/useSlotProps';
-import { useClassNamesOverride } from '../utils/ClassNameConfigurator';
-import { WithOptionalOwnerState } from '../utils/types';
-import { ListActionTypes } from '../../useList';
-
-function useUtilityClasses(ownerState: MenuOwnerState) {
- const { open } = ownerState;
- const slots = {
- root: ['root', open && 'expanded'],
- listbox: ['listbox', open && 'expanded'],
- };
-
- return composeClasses(slots, useClassNamesOverride(getMenuUtilityClass));
-}
-
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/)
- *
- * API:
- *
- * - [Menu API](https://mui.com/base-ui/react-menu/components-api/#menu)
- */
-const Menu = React.forwardRef(function Menu(
- props: MenuProps,
- forwardedRef: React.ForwardedRef,
-) {
- const {
- actions,
- anchor: anchorProp,
- children,
- onItemsChange,
- slotProps = {},
- slots = {},
- ...other
- } = props;
-
- const { contextValue, getListboxProps, dispatch, open, triggerElement } = useMenu({
- onItemsChange,
- componentName: 'Menu',
- });
-
- const anchor = anchorProp ?? triggerElement;
-
- React.useImperativeHandle(
- actions,
- () => ({
- dispatch,
- resetHighlight: () => dispatch({ type: ListActionTypes.resetHighlight, event: null }),
- }),
- [dispatch],
- );
-
- const ownerState: MenuOwnerState = { ...props, open };
-
- const classes = useUtilityClasses(ownerState);
-
- const Root = slots.root ?? 'div';
- const rootProps = useSlotProps({
- elementType: Root,
- externalSlotProps: slotProps.root,
- externalForwardedProps: other,
- additionalProps: {
- ref: forwardedRef,
- role: undefined,
- },
- className: classes.root,
- ownerState,
- });
-
- const Listbox = slots.listbox ?? 'ul';
- const listboxProps: WithOptionalOwnerState = useSlotProps({
- elementType: Listbox,
- getSlotProps: getListboxProps,
- externalSlotProps: slotProps.listbox,
- className: classes.listbox,
- ownerState,
- });
-
- if (open === true && anchor == null) {
- return (
-
-
- {children}
-
-
- );
- }
-
- return (
-
-
- {children}
-
-
- );
-}) as PolymorphicComponent;
-
-Menu.propTypes /* remove-proptypes */ = {
- // ┌────────────────────────────── Warning ──────────────────────────────┐
- // │ These PropTypes are generated from the TypeScript type definitions. │
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
- // └─────────────────────────────────────────────────────────────────────┘
- /**
- * A ref with imperative actions that can be performed on the menu.
- */
- actions: refType,
- /**
- * The element based on which the menu is positioned.
- */
- anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([
- HTMLElementType,
- PropTypes.object,
- PropTypes.func,
- ]),
- /**
- * @ignore
- */
- children: PropTypes.node,
- /**
- * @ignore
- */
- className: PropTypes.string,
- /**
- * Function called when the items displayed in the menu change.
- */
- onItemsChange: PropTypes.func,
- /**
- * The props used for each slot inside the Menu.
- * @default {}
- */
- slotProps: PropTypes.shape({
- listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
- root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
- }),
- /**
- * The components used for each slot inside the Menu.
- * Either a string to use a HTML element or a component.
- * @default {}
- */
- slots: PropTypes.shape({
- listbox: PropTypes.elementType,
- root: PropTypes.elementType,
- }),
-} as any;
-
-export { Menu };
diff --git a/packages/mui-base/src/legacy/Menu/Menu.types.ts b/packages/mui-base/src/legacy/Menu/Menu.types.ts
deleted file mode 100644
index 4dfacfe21a..0000000000
--- a/packages/mui-base/src/legacy/Menu/Menu.types.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import * as React from 'react';
-import { Simplify } from '@mui/types';
-import { PolymorphicProps } from '../utils/PolymorphicComponent';
-import { SlotComponentProps } from '../utils/types';
-import { UseMenuListboxSlotProps } from '../useMenu';
-import { ListAction } from '../../useList';
-import { PopupProps } from '../Unstable_Popup';
-
-export interface MenuRootSlotPropsOverrides {}
-export interface MenuListboxSlotPropsOverrides {}
-
-export interface MenuActions {
- /**
- * Dispatches an action that can cause a change to the menu's internal state.
- */
- dispatch: (action: ListAction) => void;
- /**
- * Resets the highlighted item.
- */
- resetHighlight: () => void;
-}
-
-export interface MenuOwnProps {
- /**
- * A ref with imperative actions that can be performed on the menu.
- */
- actions?: React.Ref;
- /**
- * The element based on which the menu is positioned.
- */
- anchor?: PopupProps['anchor'];
- children?: React.ReactNode;
- className?: string;
- /**
- * Function called when the items displayed in the menu change.
- */
- onItemsChange?: (items: string[]) => void;
- /**
- * The props used for each slot inside the Menu.
- * @default {}
- */
- slotProps?: {
- root?: SlotComponentProps<'div', MenuRootSlotPropsOverrides & PopupProps, MenuOwnerState>;
- listbox?: SlotComponentProps<'ul', MenuListboxSlotPropsOverrides, MenuOwnerState>;
- };
- /**
- * The components used for each slot inside the Menu.
- * Either a string to use a HTML element or a component.
- * @default {}
- */
- slots?: MenuSlots;
-}
-
-export interface MenuSlots {
- /**
- * The component that renders the popup element.
- * @default 'div'
- */
- root?: React.ElementType;
- /**
- * The component that renders the listbox.
- * @default 'ul'
- */
- listbox?: React.ElementType;
-}
-
-export interface MenuTypeMap<
- AdditionalProps = {},
- RootComponentType extends React.ElementType = 'div',
-> {
- props: MenuOwnProps & AdditionalProps;
- defaultComponent: RootComponentType;
-}
-
-export type MenuProps<
- RootComponentType extends React.ElementType = MenuTypeMap['defaultComponent'],
-> = PolymorphicProps, RootComponentType>;
-
-export type MenuOwnerState = Simplify<
- MenuOwnProps & {
- open: boolean;
- }
->;
-
-export type MenuRootSlotProps = {
- children?: React.ReactNode;
- className?: string;
- ownerState: MenuOwnerState;
- ref: React.Ref;
-};
-
-export type MenuListboxSlotProps = UseMenuListboxSlotProps & {
- children?: React.ReactNode;
- className?: string;
- ownerState: MenuOwnerState;
-};
diff --git a/packages/mui-base/src/legacy/Menu/index.tsx b/packages/mui-base/src/legacy/Menu/index.tsx
deleted file mode 100644
index a57130128b..0000000000
--- a/packages/mui-base/src/legacy/Menu/index.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-export { Menu } from './Menu';
-
-export * from './menuClasses';
-
-export * from './Menu.types';
diff --git a/packages/mui-base/src/legacy/Menu/menuClasses.ts b/packages/mui-base/src/legacy/Menu/menuClasses.ts
deleted file mode 100644
index 53110b6024..0000000000
--- a/packages/mui-base/src/legacy/Menu/menuClasses.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { generateUtilityClass } from '../generateUtilityClass';
-import { generateUtilityClasses } from '../generateUtilityClasses';
-
-const COMPONENT_NAME = 'Menu';
-
-export interface MenuClasses {
- /** Class name applied to the root element. */
- root: string;
- /** Class name applied to the listbox element. */
- listbox: string;
- /** State class applied to the root element if `open={true}`. */
- expanded: string;
-}
-
-export type MenuClassKey = keyof MenuClasses;
-
-export function getMenuUtilityClass(slot: string): string {
- return generateUtilityClass(COMPONENT_NAME, slot);
-}
-
-export const menuClasses: MenuClasses = generateUtilityClasses(COMPONENT_NAME, [
- 'root',
- 'listbox',
- 'expanded',
-]);
diff --git a/packages/mui-base/src/legacy/MenuButton/MenuButton.test.tsx b/packages/mui-base/src/legacy/MenuButton/MenuButton.test.tsx
deleted file mode 100644
index c69d08ee3b..0000000000
--- a/packages/mui-base/src/legacy/MenuButton/MenuButton.test.tsx
+++ /dev/null
@@ -1,237 +0,0 @@
-import * as React from 'react';
-import { expect } from 'chai';
-import { spy } from 'sinon';
-import userEvent from '@testing-library/user-event';
-import { act, createRenderer } from '@mui/internal-test-utils';
-import { MenuButton, menuButtonClasses } from '@base_ui/react/legacy/MenuButton';
-import {
- DropdownContext,
- DropdownContextValue,
- DropdownActionTypes,
-} from '@base_ui/react/legacy/useDropdown';
-import { describeConformanceUnstyled } from '../../../test/describeConformanceUnstyled';
-
-const testContext: DropdownContextValue = {
- dispatch: () => {},
- popupId: 'menu-popup',
- registerPopup: () => {},
- registerTrigger: () => {},
- state: { open: true, changeReason: null },
- triggerElement: null,
-};
-
-describe(' ', () => {
- const { render } = createRenderer();
-
- describeConformanceUnstyled( , () => ({
- inheritComponent: 'button',
- render: (node) => {
- return render(
- {node} ,
- );
- },
- refInstanceof: window.HTMLButtonElement,
- slots: {
- root: {
- expectedClassName: menuButtonClasses.root,
- testWithElement: null,
- },
- },
- skip: ['componentProp'],
- }));
-
- describe('prop: disabled', () => {
- it('should render a disabled button', () => {
- const { getByRole } = render(
-
-
- ,
- );
-
- const button = getByRole('button');
- expect(button).to.have.property('disabled', true);
- });
-
- it('should not open the menu when clicked', () => {
- const dispatchSpy = spy();
- const context = {
- ...testContext,
- state: { open: false, changeReason: null },
- dispatch: dispatchSpy,
- };
-
- const { getByRole } = render(
-
-
- ,
- );
-
- const button = getByRole('button');
- button.click();
-
- expect(dispatchSpy.called).to.equal(false);
- });
- });
-
- describe('prop: focusableWhenDisabled', () => {
- it('has the aria-disabled instead of disabled attribute when disabled', () => {
- const { getByRole } = render(
-
-
- ,
- );
-
- const button = getByRole('button');
- expect(button).to.have.attribute('aria-disabled');
- expect(button).not.to.have.attribute('disabled');
- });
-
- it('can receive focus when focusableWhenDisabled is set', () => {
- const { getByRole } = render(
-
-
- ,
- );
-
- const button = getByRole('button');
- act(() => {
- button.focus();
- });
-
- expect(document.activeElement).to.equal(button);
- });
- });
-
- it('toggles the menu state when clicked', () => {
- const dispatchSpy = spy();
- const context = {
- ...testContext,
- state: { open: false, changeReason: null },
- dispatch: dispatchSpy,
- };
-
- const { getByRole } = render(
-
-
- ,
- );
-
- const button = getByRole('button');
- button.click();
-
- expect(dispatchSpy.calledOnce).to.equal(true);
- expect(dispatchSpy.args[0][0]).to.contain({ type: DropdownActionTypes.toggle });
- });
-
- describe('keyboard navigation', () => {
- [ , ].forEach((buttonComponent) => {
- const buttonType = buttonComponent.props.slots?.root ? 'non-native' : 'native';
- ['ArrowUp', 'ArrowDown'].forEach((key) =>
- it(`opens the menu when pressing "${key}" on a ${buttonType} button`, async () => {
- const dispatchSpy = spy();
- const context = {
- ...testContext,
- state: { open: false, changeReason: null },
- dispatch: dispatchSpy,
- };
-
- const user = userEvent.setup();
-
- const { getByRole } = render(
- {buttonComponent} ,
- );
-
- const button = getByRole('button');
- act(() => {
- button.focus();
- });
-
- await user.keyboard(`{${key}}`);
-
- expect(dispatchSpy.calledOnce).to.equal(true);
- expect(dispatchSpy.args[0][0]).to.contain({ type: DropdownActionTypes.open });
- }),
- );
-
- ['Enter', ' '].forEach((key) =>
- it(`opens the menu when pressing "${key}" on a ${buttonType} button`, async () => {
- const dispatchSpy = spy();
- const context = {
- ...testContext,
- state: { open: false, changeReason: null },
- dispatch: dispatchSpy,
- };
-
- const user = userEvent.setup();
-
- const { getByRole } = render(
- {buttonComponent} ,
- );
-
- const button = getByRole('button');
- act(() => {
- button.focus();
- });
-
- await user.keyboard(`{${key}}`);
-
- expect(dispatchSpy.calledOnce).to.equal(true);
- expect(dispatchSpy.args[0][0]).to.contain({ type: DropdownActionTypes.toggle });
- }),
- );
- });
- });
-
- describe('accessibility attributes', () => {
- it('has the aria-haspopup attribute', () => {
- const { getByRole } = render(
-
-
- ,
- );
-
- const button = getByRole('button');
- expect(button).to.have.attribute('aria-haspopup');
- });
-
- it('has the aria-expanded=false attribute when closed', () => {
- const context = {
- ...testContext,
- state: { open: false, changeReason: null },
- };
-
- const { getByRole } = render(
-
-
- ,
- );
- const button = getByRole('button');
- expect(button).to.have.attribute('aria-expanded', 'false');
- });
-
- it('has the aria-expanded=true attribute when open', () => {
- const context = {
- ...testContext,
- state: { open: true, changeReason: null },
- };
-
- const { getByRole } = render(
-
-
- ,
- );
- const button = getByRole('button');
- expect(button).to.have.attribute('aria-expanded', 'true');
- });
-
- it('has the aria-controls attribute', () => {
- const { getByRole } = render(
-
-
- ,
- );
- const button = getByRole('button');
- expect(button).to.have.attribute('aria-controls', 'menu-popup');
- });
- });
-});
diff --git a/packages/mui-base/src/legacy/MenuButton/MenuButton.tsx b/packages/mui-base/src/legacy/MenuButton/MenuButton.tsx
deleted file mode 100644
index a62dc97a75..0000000000
--- a/packages/mui-base/src/legacy/MenuButton/MenuButton.tsx
+++ /dev/null
@@ -1,122 +0,0 @@
-'use client';
-import * as React from 'react';
-import PropTypes from 'prop-types';
-import { MenuButtonOwnerState, MenuButtonProps } from './MenuButton.types';
-import { useSlotProps } from '../utils/useSlotProps';
-import { useMenuButton } from '../useMenuButton';
-import { unstable_composeClasses as composeClasses } from '../composeClasses';
-import { useClassNamesOverride } from '../utils/ClassNameConfigurator';
-import { getMenuButtonUtilityClass } from './menuButtonClasses';
-
-const useUtilityClasses = (ownerState: MenuButtonOwnerState) => {
- const { active, disabled, open } = ownerState;
-
- const slots = {
- root: ['root', disabled && 'disabled', active && 'active', open && 'expanded'],
- };
-
- return composeClasses(slots, useClassNamesOverride(getMenuButtonUtilityClass));
-};
-
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/)
- *
- * API:
- *
- * - [MenuButton API](https://mui.com/base-ui/react-menu/components-api/#menu-button)
- */
-const MenuButton = React.forwardRef(function MenuButton(
- props: MenuButtonProps,
- forwardedRef: React.ForwardedRef,
-) {
- const {
- children,
- disabled = false,
- label,
- slots = {},
- slotProps = {},
- focusableWhenDisabled = false,
- ...other
- } = props;
-
- const { getRootProps, open, active } = useMenuButton({
- disabled,
- focusableWhenDisabled,
- rootRef: forwardedRef,
- });
-
- const ownerState: MenuButtonOwnerState = {
- ...props,
- open,
- active,
- disabled,
- focusableWhenDisabled,
- };
-
- const classes = useUtilityClasses(ownerState);
-
- const Root = slots.root || 'button';
- const rootProps = useSlotProps({
- elementType: Root,
- getSlotProps: getRootProps,
- externalForwardedProps: other,
- externalSlotProps: slotProps.root,
- additionalProps: {
- ref: forwardedRef,
- type: 'button',
- },
- ownerState,
- className: classes.root,
- });
-
- return {children} ;
-});
-
-MenuButton.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 name applied to the root element.
- */
- className: PropTypes.string,
- /**
- * If `true`, the component is disabled.
- * @default false
- */
- disabled: PropTypes.bool,
- /**
- * If `true`, allows a disabled button to receive focus.
- * @default false
- */
- focusableWhenDisabled: PropTypes.bool,
- /**
- * Label of the button
- */
- label: PropTypes.string,
- /**
- * The components used for each slot inside the MenuButton.
- * Either a string to use a HTML element or a component.
- * @default {}
- */
- slotProps: PropTypes.shape({
- root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
- }),
- /**
- * The props used for each slot inside the MenuButton.
- * @default {}
- */
- slots: PropTypes.shape({
- root: PropTypes.elementType,
- }),
-} as any;
-
-export { MenuButton };
diff --git a/packages/mui-base/src/legacy/MenuButton/MenuButton.types.ts b/packages/mui-base/src/legacy/MenuButton/MenuButton.types.ts
deleted file mode 100644
index 5d1d951824..0000000000
--- a/packages/mui-base/src/legacy/MenuButton/MenuButton.types.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { SlotComponentProps } from '../utils/types';
-
-export interface MenuButtonRootSlotPropsOverrides {}
-
-export interface MenuButtonProps {
- children?: React.ReactNode;
- /**
- * Class name applied to the root element.
- */
- className?: string;
- /**
- * If `true`, the component is disabled.
- * @default false
- */
- disabled?: boolean;
- /**
- * If `true`, allows a disabled button to receive focus.
- * @default false
- */
- focusableWhenDisabled?: boolean;
- /**
- * Label of the button
- */
- label?: string;
- /**
- * The props used for each slot inside the MenuButton.
- * @default {}
- */
- slots?: MenuButtonSlots;
- /**
- * The components used for each slot inside the MenuButton.
- * Either a string to use a HTML element or a component.
- * @default {}
- */
- slotProps?: {
- root?: SlotComponentProps<'button', MenuButtonRootSlotPropsOverrides, MenuButtonOwnerState>;
- };
-}
-
-export interface MenuButtonSlots {
- /**
- * The component that renders the root.
- * @default 'button'
- */
- root?: React.ElementType;
-}
-
-export type MenuButtonOwnerState = MenuButtonProps & {
- active: boolean;
- focusableWhenDisabled: boolean;
- open: boolean;
-};
diff --git a/packages/mui-base/src/legacy/MenuButton/index.ts b/packages/mui-base/src/legacy/MenuButton/index.ts
deleted file mode 100644
index 721bc436d4..0000000000
--- a/packages/mui-base/src/legacy/MenuButton/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-'use client';
-export { MenuButton } from './MenuButton';
-export * from './MenuButton.types';
-
-export * from './menuButtonClasses';
diff --git a/packages/mui-base/src/legacy/MenuButton/menuButtonClasses.ts b/packages/mui-base/src/legacy/MenuButton/menuButtonClasses.ts
deleted file mode 100644
index c0da95d392..0000000000
--- a/packages/mui-base/src/legacy/MenuButton/menuButtonClasses.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { generateUtilityClass } from '../generateUtilityClass';
-import { generateUtilityClasses } from '../generateUtilityClasses';
-
-const COMPONENT_NAME = 'MenuButton';
-
-export interface MenuButtonClasses {
- /** Class name applied to the root element. */
- root: string;
- /** State class applied to the root element if `active={true}`. */
- active: string;
- /** State class applied to the root element if `disabled={true}`. */
- disabled: string;
- /** State class applied to the root element if the associated menu is open. */
- expanded: string;
-}
-
-export type MenuButtonClassKey = keyof MenuButtonClasses;
-
-export function getMenuButtonUtilityClass(slot: string): string {
- return generateUtilityClass(COMPONENT_NAME, slot);
-}
-
-export const menuButtonClasses: MenuButtonClasses = generateUtilityClasses(COMPONENT_NAME, [
- 'root',
- 'active',
- 'disabled',
- 'expanded',
-]);
diff --git a/packages/mui-base/src/legacy/MenuItem/MenuItem.spec.tsx b/packages/mui-base/src/legacy/MenuItem/MenuItem.spec.tsx
deleted file mode 100644
index 3a009cf2b2..0000000000
--- a/packages/mui-base/src/legacy/MenuItem/MenuItem.spec.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import * as React from 'react';
-import { expectType } from '@mui/types';
-import { MenuItem } from '@base_ui/react/legacy/MenuItem';
-
-const polymorphicComponentTest = () => {
- const CustomComponent: React.FC<{ stringProp: string; numberProp: number }> =
- function CustomComponent() {
- return
;
- };
-
- return (
-
- {/* @ts-expect-error */}
-
-
-
- slots={{
- root: 'a',
- }}
- href="#"
- />
-
-
- slots={{
- root: CustomComponent,
- }}
- stringProp="test"
- numberProp={0}
- />
-
- {/* @ts-expect-error required props not specified */}
-
- slots={{
- root: CustomComponent,
- }}
- />
-
-
- slots={{
- root: 'button',
- }}
- onClick={(e: React.MouseEvent) => e.currentTarget.checkValidity()}
- />
-
-
- slots={{
- root: 'button',
- }}
- ref={(elem) => {
- expectType(elem);
- }}
- onMouseDown={(e) => {
- expectType, typeof e>(e);
- e.currentTarget.checkValidity();
- }}
- />
-
- );
-};
diff --git a/packages/mui-base/src/legacy/MenuItem/MenuItem.test.tsx b/packages/mui-base/src/legacy/MenuItem/MenuItem.test.tsx
deleted file mode 100644
index e04dd75c4c..0000000000
--- a/packages/mui-base/src/legacy/MenuItem/MenuItem.test.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import * as React from 'react';
-import { createRenderer } from '@mui/internal-test-utils';
-import { MenuItem, menuItemClasses } from '@base_ui/react/legacy/MenuItem';
-import { MenuProvider } from '@base_ui/react/legacy/useMenu';
-import { describeConformanceUnstyled } from '../../../test/describeConformanceUnstyled';
-
-const dummyGetItemState = () => ({
- disabled: false,
- highlighted: false,
- selected: false,
- index: 0,
- focusable: true,
-});
-
-const testContext = {
- dispatch: () => {},
- getItemIndex: () => 0,
- getItemProps: () => ({}),
- getItemState: dummyGetItemState,
- open: false,
- registerItem: () => ({ id: '', deregister: () => {} }),
- totalSubitemCount: 0,
-};
-
-describe(' ', () => {
- const { render } = createRenderer();
-
- describeConformanceUnstyled( , () => ({
- inheritComponent: 'li',
- render: (node) => {
- return render({node} );
- },
- refInstanceof: window.HTMLLIElement,
- testComponentPropWith: 'span',
- slots: {
- root: {
- expectedClassName: menuItemClasses.root,
- },
- },
- skip: ['componentProp'],
- }));
-});
diff --git a/packages/mui-base/src/legacy/MenuItem/MenuItem.tsx b/packages/mui-base/src/legacy/MenuItem/MenuItem.tsx
deleted file mode 100644
index 071603751e..0000000000
--- a/packages/mui-base/src/legacy/MenuItem/MenuItem.tsx
+++ /dev/null
@@ -1,149 +0,0 @@
-'use client';
-import * as React from 'react';
-import PropTypes from 'prop-types';
-import { PolymorphicComponent } from '../utils/PolymorphicComponent';
-import {
- MenuItemOwnerState,
- MenuItemProps,
- MenuItemRootSlotProps,
- MenuItemTypeMap,
-} from './MenuItem.types';
-import { getMenuItemUtilityClass } from './menuItemClasses';
-import { useMenuItem, useMenuItemContextStabilizer } from '../useMenuItem';
-import { unstable_composeClasses as composeClasses } from '../composeClasses';
-import { useSlotProps } from '../utils/useSlotProps';
-import { useClassNamesOverride } from '../utils/ClassNameConfigurator';
-import { WithOptionalOwnerState } from '../utils/types';
-import { ListContext } from '../../useList';
-
-function useUtilityClasses(ownerState: MenuItemOwnerState) {
- const { disabled, focusVisible } = ownerState;
-
- const slots = {
- root: ['root', disabled && 'disabled', focusVisible && 'focusVisible'],
- };
-
- return composeClasses(slots, useClassNamesOverride(getMenuItemUtilityClass));
-}
-
-const InnerMenuItem = React.memo(
- React.forwardRef(function MenuItem(
- props: MenuItemProps,
- forwardedRef: React.ForwardedRef,
- ) {
- const {
- children,
- disabled: disabledProp = false,
- label,
- id,
- slotProps = {},
- slots = {},
- ...other
- } = props;
-
- const { getRootProps, disabled, focusVisible, highlighted } = useMenuItem({
- id,
- disabled: disabledProp,
- rootRef: forwardedRef,
- label,
- });
-
- const ownerState: MenuItemOwnerState = { ...props, disabled, focusVisible, highlighted };
-
- const classes = useUtilityClasses(ownerState);
-
- const Root = slots.root ?? 'li';
- const rootProps: WithOptionalOwnerState = useSlotProps({
- elementType: Root,
- getSlotProps: getRootProps,
- externalSlotProps: slotProps.root,
- externalForwardedProps: other,
- className: classes.root,
- ownerState,
- });
-
- return {children} ;
- }),
-);
-
-/**
- * An unstyled menu item to be used within a Menu.
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/)
- *
- * API:
- *
- * - [MenuItem API](https://mui.com/base-ui/react-menu/components-api/#menu-item)
- */
-const MenuItem = React.forwardRef(function MenuItem(
- props: MenuItemProps,
- ref: React.ForwardedRef,
-) {
- const { id: idProp } = props;
-
- // This wrapper component is used as a performance optimization.
- // `useMenuItemContextStabilizer` ensures that the context value
- // is stable across renders, so that the actual MenuItem re-renders
- // only when it needs to.
- const { contextValue, id } = useMenuItemContextStabilizer(idProp);
-
- return (
-
-
-
- );
-}) as PolymorphicComponent;
-
-MenuItem.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,
- /**
- * @ignore
- */
- className: PropTypes.string,
- /**
- * If `true`, the menu item will be disabled.
- * @default false
- */
- disabled: PropTypes.bool,
- /**
- * If `true`, the menu item won't receive focus when the mouse moves over it.
- *
- * @default false
- */
- disableFocusOnHover: PropTypes.bool,
- /**
- * A text representation of the menu item's content.
- * Used for keyboard text navigation matching.
- */
- label: PropTypes.string,
- /**
- * @ignore
- */
- onClick: PropTypes.func,
- /**
- * The props used for each slot inside the MenuItem.
- * @default {}
- */
- slotProps: PropTypes.shape({
- root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
- }),
- /**
- * The components used for each slot inside the MenuItem.
- * Either a string to use a HTML element or a component.
- * @default {}
- */
- slots: PropTypes.shape({
- root: PropTypes.elementType,
- }),
-} as any;
-
-export { MenuItem };
diff --git a/packages/mui-base/src/legacy/MenuItem/MenuItem.types.ts b/packages/mui-base/src/legacy/MenuItem/MenuItem.types.ts
deleted file mode 100644
index 3c40da64b8..0000000000
--- a/packages/mui-base/src/legacy/MenuItem/MenuItem.types.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-import * as React from 'react';
-import { Simplify } from '@mui/types';
-import { PolymorphicProps } from '../utils/PolymorphicComponent';
-import { SlotComponentProps } from '../utils/types';
-import { UseMenuItemRootSlotProps } from '../useMenuItem';
-
-export interface MenuItemRootSlotPropsOverrides {}
-
-export type MenuItemOwnerState = Simplify<
- MenuItemOwnProps & {
- disabled: boolean;
- focusVisible: boolean;
- highlighted: boolean;
- }
->;
-
-export interface MenuItemOwnProps {
- children?: React.ReactNode;
- className?: string;
- onClick?: React.MouseEventHandler;
- /**
- * If `true`, the menu item will be disabled.
- * @default false
- */
- disabled?: boolean;
- /**
- * The components used for each slot inside the MenuItem.
- * Either a string to use a HTML element or a component.
- * @default {}
- */
- slots?: MenuItemSlots;
- /**
- * The props used for each slot inside the MenuItem.
- * @default {}
- */
- slotProps?: {
- root?: SlotComponentProps<'li', MenuItemRootSlotPropsOverrides, MenuItemOwnerState>;
- };
- /**
- * A text representation of the menu item's content.
- * Used for keyboard text navigation matching.
- */
- label?: string;
- /**
- * If `true`, the menu item won't receive focus when the mouse moves over it.
- *
- * @default false
- */
- disableFocusOnHover?: boolean;
-}
-
-export interface MenuItemSlots {
- /**
- * The component that renders the root.
- * @default 'li'
- */
- root?: React.ElementType;
-}
-
-export interface MenuItemTypeMap<
- AdditionalProps = {},
- RootComponentType extends React.ElementType = 'li',
-> {
- props: MenuItemOwnProps & AdditionalProps;
- defaultComponent: RootComponentType;
-}
-
-export type MenuItemProps<
- RootComponentType extends React.ElementType = MenuItemTypeMap['defaultComponent'],
-> = PolymorphicProps, RootComponentType>;
-
-export interface MenuItemState {
- disabled: boolean;
- highlighted: boolean;
-}
-
-export type MenuItemRootSlotProps = Simplify<
- UseMenuItemRootSlotProps & {
- children?: React.ReactNode;
- className: string;
- ref: React.Ref;
- ownerState: MenuItemOwnerState;
- }
->;
diff --git a/packages/mui-base/src/legacy/MenuItem/index.ts b/packages/mui-base/src/legacy/MenuItem/index.ts
deleted file mode 100644
index c24ff54e41..0000000000
--- a/packages/mui-base/src/legacy/MenuItem/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-'use client';
-export * from './MenuItem';
-export * from './MenuItem.types';
-export * from './menuItemClasses';
diff --git a/packages/mui-base/src/legacy/MenuItem/menuItemClasses.ts b/packages/mui-base/src/legacy/MenuItem/menuItemClasses.ts
deleted file mode 100644
index 00e802225d..0000000000
--- a/packages/mui-base/src/legacy/MenuItem/menuItemClasses.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { generateUtilityClass } from '../generateUtilityClass';
-import { generateUtilityClasses } from '../generateUtilityClasses';
-
-const COMPONENT_NAME = 'MenuItem';
-
-export interface MenuItemClasses {
- /** Class name applied to the root element. */
- root: string;
- /** State class applied to the root `button` element if `disabled={true}`. */
- disabled: string;
- /** State class applied to the root `button` element if `focusVisible={true}`. */
- focusVisible: string;
-}
-
-export type MenuItemClassKey = keyof MenuItemClasses;
-
-export function getMenuItemUtilityClass(slot: string): string {
- return generateUtilityClass(COMPONENT_NAME, slot);
-}
-
-export const menuItemClasses: MenuItemClasses = generateUtilityClasses(COMPONENT_NAME, [
- 'root',
- 'disabled',
- 'focusVisible',
-]);
diff --git a/packages/mui-base/src/legacy/useDropdown/DropdownContext.ts b/packages/mui-base/src/legacy/useDropdown/DropdownContext.ts
deleted file mode 100644
index 059a7c4c0d..0000000000
--- a/packages/mui-base/src/legacy/useDropdown/DropdownContext.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import * as React from 'react';
-import { DropdownAction, DropdownState } from './useDropdown.types';
-
-export interface DropdownContextValue {
- dispatch: React.Dispatch;
- popupId: string;
- registerPopup: (popupId: string) => void;
- registerTrigger: (element: HTMLElement | null) => void;
- state: DropdownState;
- triggerElement: HTMLElement | null;
-}
-
-const DropdownContext = React.createContext(null);
-
-export { DropdownContext };
diff --git a/packages/mui-base/src/legacy/useDropdown/dropdownReducer.ts b/packages/mui-base/src/legacy/useDropdown/dropdownReducer.ts
deleted file mode 100644
index 66ee1a28aa..0000000000
--- a/packages/mui-base/src/legacy/useDropdown/dropdownReducer.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { DropdownAction, DropdownActionTypes, DropdownState } from './useDropdown.types';
-
-export function dropdownReducer(state: DropdownState, action: DropdownAction): DropdownState {
- switch (action.type) {
- case DropdownActionTypes.blur:
- return { open: false, changeReason: action.event };
- case DropdownActionTypes.escapeKeyDown:
- return { open: false, changeReason: action.event };
- case DropdownActionTypes.toggle:
- return { open: !state.open, changeReason: action.event };
- case DropdownActionTypes.open:
- return { open: true, changeReason: action.event };
- case DropdownActionTypes.close:
- return { open: false, changeReason: action.event };
- default:
- throw new Error(`Unhandled action`);
- }
-}
diff --git a/packages/mui-base/src/legacy/useDropdown/index.ts b/packages/mui-base/src/legacy/useDropdown/index.ts
deleted file mode 100644
index 79fc0ef7f3..0000000000
--- a/packages/mui-base/src/legacy/useDropdown/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-'use client';
-export * from './useDropdown';
-export * from './useDropdown.types';
-export * from './DropdownContext';
diff --git a/packages/mui-base/src/legacy/useDropdown/useDropdown.ts b/packages/mui-base/src/legacy/useDropdown/useDropdown.ts
deleted file mode 100644
index 06aa213433..0000000000
--- a/packages/mui-base/src/legacy/useDropdown/useDropdown.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-'use client';
-import * as React from 'react';
-import type { DropdownContextValue } from './DropdownContext';
-import { useControllableReducer } from '../../utils/useControllableReducer';
-import { StateChangeCallback } from '../../utils/useControllableReducer.types';
-import { DropdownActionTypes, DropdownState, UseDropdownParameters } from './useDropdown.types';
-import { dropdownReducer } from './dropdownReducer';
-
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/#hooks)
- *
- * API:
- *
- * - [useDropdown API](https://mui.com/base-ui/react-menu/hooks-api/#use-dropdown)
- */
-export function useDropdown(parameters: UseDropdownParameters = {}) {
- const { defaultOpen, onOpenChange, open: openProp, componentName = 'useDropdown' } = parameters;
- const [popupId, setPopupId] = React.useState('');
- const [triggerElement, setTriggerElement] = React.useState(null);
- const lastActionType = React.useRef(null);
-
- const handleStateChange: StateChangeCallback = React.useCallback(
- (event, field, value, reason) => {
- if (field === 'open') {
- onOpenChange?.(
- event as React.MouseEvent | React.KeyboardEvent | React.FocusEvent,
- value as boolean,
- );
- }
-
- lastActionType.current = reason;
- },
- [onOpenChange],
- );
-
- const controlledProps = React.useMemo(
- () => (openProp !== undefined ? { open: openProp } : {}),
- [openProp],
- );
-
- const [state, dispatch] = useControllableReducer({
- controlledProps,
- initialState: defaultOpen
- ? { open: true, changeReason: null }
- : { open: false, changeReason: null },
- onStateChange: handleStateChange,
- reducer: dropdownReducer,
- componentName,
- });
-
- React.useEffect(() => {
- if (
- !state.open &&
- lastActionType.current !== null &&
- lastActionType.current !== DropdownActionTypes.blur
- ) {
- triggerElement?.focus();
- }
- }, [state.open, triggerElement]);
-
- const contextValue: DropdownContextValue = {
- state,
- dispatch,
- popupId,
- registerPopup: setPopupId,
- registerTrigger: setTriggerElement,
- triggerElement,
- };
-
- return {
- contextValue,
- open: state.open,
- };
-}
diff --git a/packages/mui-base/src/legacy/useDropdown/useDropdown.types.ts b/packages/mui-base/src/legacy/useDropdown/useDropdown.types.ts
deleted file mode 100644
index 3118ca9791..0000000000
--- a/packages/mui-base/src/legacy/useDropdown/useDropdown.types.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import type { DropdownContextValue } from './DropdownContext';
-
-export interface UseDropdownParameters {
- /**
- * If `true`, the dropdown is initially open.
- */
- defaultOpen?: boolean;
- /**
- * Callback fired when the component requests to be opened or closed.
- */
- onOpenChange?: (
- event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null,
- open: boolean,
- ) => void;
- /**
- * Allows to control whether the dropdown is open.
- * This is a controlled counterpart of `defaultOpen`.
- */
- open?: boolean;
- /**
- * The name of the component using useDropdown.
- * For debugging purposes.
- * @default 'useDropdown'
- */
- componentName?: string;
-}
-
-export interface UseDropdownReturnValue {
- /**
- * The value to be passed into the DropdownContext provider.
- */
- contextValue: DropdownContextValue;
- /**
- * If `true`, the dropdown is open.
- */
- open: boolean;
-}
-
-export const DropdownActionTypes = {
- blur: 'dropdown:blur',
- escapeKeyDown: 'dropdown:escapeKeyDown',
- toggle: 'dropdown:toggle',
- open: 'dropdown:open',
- close: 'dropdown:close',
-} as const;
-
-interface DropdownBlurAction {
- type: typeof DropdownActionTypes.blur;
- event: React.FocusEvent;
-}
-
-interface DropdownEscapeKeyDownAction {
- type: typeof DropdownActionTypes.escapeKeyDown;
- event: React.KeyboardEvent;
-}
-
-interface DropdownToggleAction {
- type: typeof DropdownActionTypes.toggle;
- event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null;
-}
-
-interface DropdownOpenAction {
- type: typeof DropdownActionTypes.open;
- event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null;
-}
-
-interface DropdownCloseAction {
- type: typeof DropdownActionTypes.close;
- event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null;
-}
-
-export type DropdownAction =
- | DropdownBlurAction
- | DropdownEscapeKeyDownAction
- | DropdownToggleAction
- | DropdownOpenAction
- | DropdownCloseAction;
-
-export type DropdownState = {
- open: boolean;
- changeReason: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null;
-};
diff --git a/packages/mui-base/src/legacy/useMenu/MenuProvider.tsx b/packages/mui-base/src/legacy/useMenu/MenuProvider.tsx
deleted file mode 100644
index e3d8d93083..0000000000
--- a/packages/mui-base/src/legacy/useMenu/MenuProvider.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-'use client';
-import * as React from 'react';
-import { ListContext, ListContextValue } from '../../useList/ListContext';
-import { MenuItemMetadata } from '../useMenuItem';
-import { CompoundComponentContext, CompoundComponentContextValue } from '../../useCompound';
-
-export type MenuProviderValue = CompoundComponentContextValue &
- ListContextValue;
-
-export interface MenuProviderProps {
- value: MenuProviderValue;
- children: React.ReactNode;
-}
-
-/**
- * Sets up the contexts for the underlying MenuItem components.
- *
- * @ignore - do not document.
- */
-export function MenuProvider(props: MenuProviderProps) {
- const { value, children } = props;
- const { dispatch, getItemIndex, getItemState, registerItem, totalSubitemCount } = value;
-
- const listContextValue: ListContextValue = React.useMemo(
- () => ({
- dispatch,
- getItemState,
- getItemIndex,
- }),
- [dispatch, getItemIndex, getItemState],
- );
-
- const compoundComponentContextValue: CompoundComponentContextValue =
- React.useMemo(
- () => ({
- getItemIndex,
- registerItem,
- totalSubitemCount,
- }),
- [registerItem, getItemIndex, totalSubitemCount],
- );
-
- return (
-
- {children}
-
- );
-}
diff --git a/packages/mui-base/src/legacy/useMenu/index.ts b/packages/mui-base/src/legacy/useMenu/index.ts
deleted file mode 100644
index 0d08ba73cf..0000000000
--- a/packages/mui-base/src/legacy/useMenu/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-'use client';
-export { useMenu } from './useMenu';
-export * from './useMenu.types';
-export * from './MenuProvider';
diff --git a/packages/mui-base/src/legacy/useMenu/menuReducer.ts b/packages/mui-base/src/legacy/useMenu/menuReducer.ts
deleted file mode 100644
index 77c44afcd7..0000000000
--- a/packages/mui-base/src/legacy/useMenu/menuReducer.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { ListAction, ListActionContext, ListActionTypes, listReducer } from '../../useList';
-import { ActionWithContext } from '../../utils/useControllableReducer.types';
-import { MenuInternalState } from './useMenu.types';
-
-export type MenuActionContext = ListActionContext & {
- listboxRef: React.RefObject;
-};
-
-export function menuReducer(
- state: MenuInternalState,
- action: ActionWithContext, MenuActionContext>,
-) {
- if (action.type === ListActionTypes.itemHover) {
- return {
- ...state,
- highlightedValue: action.item,
- };
- }
-
- const newState = listReducer(state, action);
-
- // make sure an item is always highlighted
- if (newState.highlightedValue === null && action.context.items.length > 0) {
- return {
- ...newState,
- highlightedValue: action.context.items[0],
- };
- }
-
- if (action.type === ListActionTypes.keyDown) {
- if (action.event.key === 'Escape') {
- return {
- ...newState,
- open: false,
- };
- }
- }
-
- if (action.type === ListActionTypes.blur) {
- if (!action.context.listboxRef.current?.contains(action.event.relatedTarget)) {
- // To prevent the menu from closing when the focus leaves the menu to the button.
- // For more details, see https://github.com/mui/material-ui/pull/36917#issuecomment-1566992698
- const listboxId = action.context.listboxRef.current?.getAttribute('id');
- const controlledBy = action.event.relatedTarget?.getAttribute('aria-controls');
- if (listboxId && controlledBy && listboxId === controlledBy) {
- return newState;
- }
-
- return {
- ...newState,
- open: false,
- highlightedValue: action.context.items[0],
- };
- }
- }
-
- return newState;
-}
diff --git a/packages/mui-base/src/legacy/useMenu/useMenu.test.js b/packages/mui-base/src/legacy/useMenu/useMenu.test.js
deleted file mode 100644
index 6a07680a6e..0000000000
--- a/packages/mui-base/src/legacy/useMenu/useMenu.test.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import * as React from 'react';
-import { expect } from 'chai';
-import { spy } from 'sinon';
-import { createRenderer, screen, fireEvent } from '@mui/internal-test-utils';
-import { MenuItem } from '../MenuItem';
-import { useMenu } from './useMenu';
-
-describe('useMenu', () => {
- const { render } = createRenderer();
-
- describe('getListboxProps', () => {
- it('returns props for root slot', () => {
- function TestMenu() {
- const listboxRef = React.createRef();
- const { getListboxProps } = useMenu({ listboxRef });
- return
;
- }
-
- function Test() {
- return (
-
-
-
- );
- }
-
- const { getByRole } = render( );
-
- const menu = getByRole('menu');
- expect(menu).not.to.equal(null);
- });
-
- it('forwards external props including event handlers', () => {
- const handleClick = spy();
-
- function TestMenu() {
- const listboxRef = React.createRef();
- const { getListboxProps } = useMenu({ listboxRef });
- return (
-
- );
- }
-
- function Test() {
- return (
-
-
-
- );
- }
-
- render( );
-
- const listbox = screen.getByTestId('test-listbox');
- expect(listbox).not.to.equal(null);
-
- fireEvent.click(listbox);
- expect(handleClick.callCount).to.equal(1);
- });
- });
-});
diff --git a/packages/mui-base/src/legacy/useMenu/useMenu.ts b/packages/mui-base/src/legacy/useMenu/useMenu.ts
deleted file mode 100644
index 13c20ce7c5..0000000000
--- a/packages/mui-base/src/legacy/useMenu/useMenu.ts
+++ /dev/null
@@ -1,221 +0,0 @@
-'use client';
-import * as React from 'react';
-import {
- unstable_useForkRef as useForkRef,
- unstable_useId as useId,
- unstable_useEnhancedEffect as useEnhancedEffect,
-} from '@mui/utils';
-import { UseMenuListboxSlotProps, UseMenuParameters, UseMenuReturnValue } from './useMenu.types';
-import { menuReducer } from './menuReducer';
-import { DropdownContext, DropdownContextValue } from '../useDropdown/DropdownContext';
-import { ListActionTypes, useList } from '../../useList';
-import { MenuItemMetadata } from '../useMenuItem';
-import { DropdownActionTypes } from '../useDropdown';
-import { EventHandlers } from '../../utils/types';
-import { useCompoundParent } from '../../useCompound';
-import { MuiCancellableEvent } from '../../utils/MuiCancellableEvent';
-import { combineHooksSlotProps } from '../utils/combineHooksSlotProps';
-import { extractEventHandlers } from '../../utils/extractEventHandlers';
-
-const FALLBACK_MENU_CONTEXT: DropdownContextValue = {
- dispatch: () => {},
- popupId: '',
- registerPopup: () => {},
- registerTrigger: () => {},
- state: { open: true, changeReason: null },
- triggerElement: null,
-};
-
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/#hooks)
- *
- * API:
- *
- * - [useMenu API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu)
- */
-export function useMenu(parameters: UseMenuParameters = {}): UseMenuReturnValue {
- const {
- listboxRef: listboxRefProp,
- onItemsChange,
- id: idParam,
- disabledItemsFocusable = true,
- disableListWrap = false,
- autoFocus = true,
- componentName = 'useMenu',
- } = parameters;
-
- const rootRef = React.useRef(null);
- const handleRef = useForkRef(rootRef, listboxRefProp);
-
- const listboxId = useId(idParam) ?? '';
-
- const {
- state: { open, changeReason },
- dispatch: menuDispatch,
- triggerElement,
- registerPopup,
- } = React.useContext(DropdownContext) ?? FALLBACK_MENU_CONTEXT;
-
- // store the initial open state to prevent focus stealing
- // (the first menu items gets focued only when the menu is opened by the user)
- const isInitiallyOpen = React.useRef(open);
-
- const { subitems, contextValue: compoundComponentContextValue } = useCompoundParent<
- string,
- MenuItemMetadata
- >();
-
- const subitemKeys = React.useMemo(() => Array.from(subitems.keys()), [subitems]);
-
- const getItemDomElement = React.useCallback(
- (itemId: string) => {
- if (itemId == null) {
- return null;
- }
-
- return subitems.get(itemId)?.ref.current ?? null;
- },
- [subitems],
- );
-
- const isItemDisabled = React.useCallback(
- (id: string) => subitems?.get(id)?.disabled || false,
- [subitems],
- );
-
- const getItemAsString = React.useCallback(
- (id: string) => subitems.get(id)?.label || subitems.get(id)?.ref.current?.innerText,
- [subitems],
- );
-
- const reducerActionContext = React.useMemo(() => ({ listboxRef: rootRef }), [rootRef]);
-
- const {
- dispatch: listDispatch,
- getRootProps: getListRootProps,
- contextValue: listContextValue,
- state: { highlightedValue },
- rootRef: mergedListRef,
- } = useList({
- disabledItemsFocusable,
- disableListWrap,
- focusManagement: 'DOM',
- getItemDomElement,
- getInitialState: () => ({
- selectedValues: [],
- highlightedValue: null,
- }),
- isItemDisabled,
- items: subitemKeys,
- getItemAsString,
- rootRef: handleRef,
- onItemsChange,
- reducerActionContext,
- selectionMode: 'none',
- stateReducer: menuReducer,
- componentName,
- });
-
- useEnhancedEffect(() => {
- registerPopup(listboxId);
- }, [listboxId, registerPopup]);
-
- useEnhancedEffect(() => {
- if (
- open &&
- changeReason?.type === 'keydown' &&
- (changeReason as React.KeyboardEvent).key === 'ArrowUp'
- ) {
- listDispatch({
- type: ListActionTypes.highlightLast,
- event: changeReason as React.KeyboardEvent,
- });
- }
- }, [open, changeReason, listDispatch]);
-
- React.useEffect(() => {
- if (open && autoFocus && highlightedValue && !isInitiallyOpen.current) {
- subitems.get(highlightedValue)?.ref?.current?.focus();
- }
- }, [open, autoFocus, highlightedValue, subitems, subitemKeys]);
-
- React.useEffect(() => {
- // set focus to the highlighted item (but prevent stealing focus from other elements on the page)
- if (rootRef.current?.contains(document.activeElement) && highlightedValue !== null) {
- subitems?.get(highlightedValue)?.ref.current?.focus();
- }
- }, [highlightedValue, subitems]);
-
- const createHandleBlur =
- (otherHandlers: EventHandlers) => (event: React.FocusEvent & MuiCancellableEvent) => {
- otherHandlers.onBlur?.(event);
- if (event.defaultMuiPrevented) {
- return;
- }
-
- if (
- rootRef.current?.contains(event.relatedTarget as HTMLElement) ||
- event.relatedTarget === triggerElement
- ) {
- return;
- }
-
- menuDispatch({
- type: DropdownActionTypes.blur,
- event,
- });
- };
-
- const createHandleKeyDown =
- (otherHandlers: EventHandlers) => (event: React.KeyboardEvent & MuiCancellableEvent) => {
- otherHandlers.onKeyDown?.(event);
- if (event.defaultMuiPrevented) {
- return;
- }
-
- if (event.key === 'Escape') {
- menuDispatch({
- type: DropdownActionTypes.escapeKeyDown,
- event,
- });
- }
- };
-
- const getOwnListboxHandlers = (otherHandlers: EventHandlers = {}) => ({
- onBlur: createHandleBlur(otherHandlers),
- onKeyDown: createHandleKeyDown(otherHandlers),
- });
-
- const getListboxProps = >(
- externalProps: ExternalProps = {} as ExternalProps,
- ): UseMenuListboxSlotProps => {
- const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListRootProps);
- const externalEventHandlers = extractEventHandlers(externalProps);
- return {
- ...externalProps,
- ...externalEventHandlers,
- ...getCombinedRootProps(externalEventHandlers),
- id: listboxId,
- role: 'menu',
- };
- };
-
- React.useDebugValue({ subitems, highlightedValue });
-
- return {
- contextValue: {
- ...compoundComponentContextValue,
- ...listContextValue,
- },
- dispatch: listDispatch,
- getListboxProps,
- highlightedValue,
- listboxRef: mergedListRef,
- menuItems: subitems,
- open,
- triggerElement,
- };
-}
diff --git a/packages/mui-base/src/legacy/useMenu/useMenu.types.ts b/packages/mui-base/src/legacy/useMenu/useMenu.types.ts
deleted file mode 100644
index 7a0429db63..0000000000
--- a/packages/mui-base/src/legacy/useMenu/useMenu.types.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import * as React from 'react';
-import { ListAction, ListState, UseListRootSlotProps } from '../../useList';
-import { MenuItemMetadata } from '../useMenuItem';
-import { MenuProviderValue } from './MenuProvider';
-
-export interface UseMenuParameters {
- /**
- * If `true` (Default) will focus the highligted item. If you set this prop to `false`
- * the focus will not be moved inside the Menu component. This has severe accessibility implications
- * and should only be considered if you manage focus otherwise.
- * @default true
- */
- autoFocus?: boolean;
- /**
- * The id of the menu. If not provided, it will be generated.
- */
- id?: string;
- /**
- * If `true`, it will be possible to highlight disabled items.
- * @default true
- */
- disabledItemsFocusable?: boolean;
- /**
- * If `true`, the highlight will not wrap around the list if arrow keys are used.
- * @default false
- */
- disableListWrap?: boolean;
- /**
- * Callback fired when the menu items change.
- */
- onItemsChange?: (items: string[]) => void;
- /**
- * The ref to the menu's listbox node.
- */
- listboxRef?: React.Ref;
- /**
- * The name of the component using useMenu.
- * For debugging purposes.
- * @default 'useMenu'
- */
- componentName?: string;
-}
-
-export interface UseMenuReturnValue {
- /**
- * The value to be passed into the MenuProvider.
- */
- contextValue: MenuProviderValue;
- /**
- * Action dispatcher for the menu component.
- * Allows to programmatically control the menu.
- */
- dispatch: (action: ListAction) => void;
- /**
- * Resolver for the listbox slot's props.
- * @param externalProps additional props for the listbox component
- * @returns props that should be spread on the listbox component
- */
- getListboxProps: = {}>(
- externalProps?: ExternalProps,
- ) => UseMenuListboxSlotProps;
- /**
- * The highlighted option in the menu listbox.
- */
- highlightedValue: string | null;
- /**
- * The ref to the menu's listbox node.
- */
- listboxRef: React.RefCallback | null;
- /**
- * Items in the menu listbox.
- */
- menuItems: Map;
- /**
- * If `true`, the menu is open.
- */
- open: boolean;
- /**
- * An element that triggers the visibility of the menu.
- */
- triggerElement: HTMLElement | null;
-}
-
-interface UseMenuListboxSlotEventHandlers {
- onBlur: React.FocusEventHandler;
- onKeyDown: React.KeyboardEventHandler;
-}
-
-export type UseMenuListboxSlotProps = UseListRootSlotProps<
- Omit & UseMenuListboxSlotEventHandlers
-> & {
- ref: React.RefCallback | null;
- role: React.AriaRole;
-};
-
-export interface MenuInternalState extends ListState {}
diff --git a/packages/mui-base/src/legacy/useMenuButton/index.ts b/packages/mui-base/src/legacy/useMenuButton/index.ts
deleted file mode 100644
index 0f9d874d50..0000000000
--- a/packages/mui-base/src/legacy/useMenuButton/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-'use client';
-export { useMenuButton } from './useMenuButton';
-export * from './useMenuButton.types';
diff --git a/packages/mui-base/src/legacy/useMenuButton/useMenuButton.test.tsx b/packages/mui-base/src/legacy/useMenuButton/useMenuButton.test.tsx
deleted file mode 100644
index fe175a708a..0000000000
--- a/packages/mui-base/src/legacy/useMenuButton/useMenuButton.test.tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import * as React from 'react';
-import { expect } from 'chai';
-import { spy } from 'sinon';
-import { createRenderer, screen, fireEvent } from '@mui/internal-test-utils';
-import { DropdownContext, DropdownContextValue } from '@base_ui/react/legacy/useDropdown';
-import { useMenuButton } from './useMenuButton';
-
-const testContext: DropdownContextValue = {
- dispatch: () => {},
- popupId: 'menu-popup',
- registerPopup: () => {},
- registerTrigger: () => {},
- state: { open: true, changeReason: null },
- triggerElement: null,
-};
-
-describe('useMenuButton', () => {
- const { render } = createRenderer();
-
- describe('getRootProps', () => {
- it('returns props for root slot', () => {
- function TestMenuButton() {
- const { getRootProps } = useMenuButton();
- return
;
- }
-
- function Test() {
- return (
-
-
-
- );
- }
-
- const { getByRole } = render( );
-
- const button = getByRole('button');
- expect(button).not.to.equal(null);
- });
-
- it('forwards external props including event handlers', () => {
- const handleClick = spy();
-
- function TestMenuButton() {
- const { getRootProps } = useMenuButton();
- return (
-
- );
- }
-
- function Test() {
- return (
-
-
-
- );
- }
-
- render( );
-
- const button = screen.getByTestId('test-menu-button');
- expect(button).not.to.equal(null);
-
- fireEvent.click(button);
- expect(handleClick.callCount).to.equal(1);
- });
- });
-});
diff --git a/packages/mui-base/src/legacy/useMenuButton/useMenuButton.ts b/packages/mui-base/src/legacy/useMenuButton/useMenuButton.ts
deleted file mode 100644
index 415894c478..0000000000
--- a/packages/mui-base/src/legacy/useMenuButton/useMenuButton.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-'use client';
-import * as React from 'react';
-import { unstable_useForkRef as useForkRef } from '@mui/utils';
-import { UseMenuButtonParameters, UseMenuButtonReturnValue } from './useMenuButton.types';
-import { DropdownContext } from '../useDropdown/DropdownContext';
-import { DropdownActionTypes } from '../useDropdown/useDropdown.types';
-import { useButton } from '../../useButton/useButton';
-import { EventHandlers } from '../../utils/types';
-import { MuiCancellableEvent } from '../../utils/MuiCancellableEvent';
-import { combineHooksSlotProps } from '../utils/combineHooksSlotProps';
-import { extractEventHandlers } from '../../utils/extractEventHandlers';
-
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/#hooks)
- *
- * API:
- *
- * - [useMenuButton API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-button)
- */
-export function useMenuButton(parameters: UseMenuButtonParameters = {}): UseMenuButtonReturnValue {
- const { disabled = false, focusableWhenDisabled, rootRef: externalRef } = parameters;
-
- const menuContext = React.useContext(DropdownContext);
- if (menuContext === null) {
- throw new Error('useMenuButton: no menu context available.');
- }
-
- const { state, dispatch, registerTrigger, popupId } = menuContext;
-
- const {
- getRootProps: getButtonRootProps,
- rootRef: buttonRootRef,
- active,
- } = useButton({
- disabled,
- focusableWhenDisabled,
- rootRef: externalRef,
- });
-
- const handleRef = useForkRef(buttonRootRef, registerTrigger);
-
- const createHandleClick =
- (otherHandlers: EventHandlers) => (event: React.MouseEvent & MuiCancellableEvent) => {
- otherHandlers.onClick?.(event);
- if (event.defaultMuiPrevented) {
- return;
- }
-
- dispatch({
- type: DropdownActionTypes.toggle,
- event,
- });
- };
-
- const createHandleKeyDown =
- (otherHandlers: EventHandlers) => (event: React.KeyboardEvent & MuiCancellableEvent) => {
- otherHandlers.onKeyDown?.(event);
- if (event.defaultMuiPrevented) {
- return;
- }
-
- if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
- event.preventDefault();
- dispatch({
- type: DropdownActionTypes.open,
- event,
- });
- }
- };
-
- const getOwnRootProps = (otherHandlers: EventHandlers = {}) => ({
- onClick: createHandleClick(otherHandlers),
- onKeyDown: createHandleKeyDown(otherHandlers),
- });
-
- const getRootProps = = {}>(
- externalProps: ExternalProps = {} as ExternalProps,
- ) => {
- const externalEventHandlers = extractEventHandlers(externalProps);
- const getCombinedProps = combineHooksSlotProps(getOwnRootProps, getButtonRootProps);
-
- return {
- 'aria-haspopup': 'menu' as const,
- 'aria-expanded': state.open,
- 'aria-controls': popupId,
- ...externalProps,
- ...externalEventHandlers,
- ...getCombinedProps(externalEventHandlers),
- tabIndex: 0, // this is needed to make the button focused after click in Safari
- ref: handleRef,
- };
- };
-
- return {
- active,
- getRootProps,
- open: state.open,
- rootRef: handleRef,
- };
-}
diff --git a/packages/mui-base/src/legacy/useMenuButton/useMenuButton.types.ts b/packages/mui-base/src/legacy/useMenuButton/useMenuButton.types.ts
deleted file mode 100644
index 3ae91422c4..0000000000
--- a/packages/mui-base/src/legacy/useMenuButton/useMenuButton.types.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-export interface UseMenuButtonParameters {
- /**
- * If `true`, the component is disabled.
- * @default false
- */
- disabled?: boolean;
- /**
- * If `true`, allows a disabled button to receive focus.
- * @default false
- */
- focusableWhenDisabled?: boolean;
- /**
- * The ref to the root element.
- */
- rootRef?: React.Ref;
-}
-
-type UseMenuButtonRootSlotProps = ExternalProps & UseMenuButtonRootSlotOwnProps;
-
-interface UseMenuButtonRootSlotOwnProps {
- 'aria-haspopup': 'menu';
- 'aria-expanded': boolean;
- 'aria-controls': string;
- /**
- * Callback fired when the button is clicked.
- */
- onClick: React.MouseEventHandler;
- /**
- * The ref to the button element.
- */
- ref: React.RefCallback | null;
-}
-
-export interface UseMenuButtonReturnValue {
- /**
- * If `true`, the component is active (pressed).
- */
- active: boolean;
- /**
- * Resolver for the root slot's props.
- * @param externalProps props for the root slot
- * @returns props that should be spread on the root slot
- */
- getRootProps: = {}>(
- externalProps?: ExternalProps,
- ) => UseMenuButtonRootSlotProps;
- /*
- * If `true`, the menu is open.
- */
- open: boolean;
- /**
- * The ref to the root element.
- */
- rootRef: React.RefCallback | null;
-}
diff --git a/packages/mui-base/src/legacy/useMenuItem/index.ts b/packages/mui-base/src/legacy/useMenuItem/index.ts
deleted file mode 100644
index f480bce7a2..0000000000
--- a/packages/mui-base/src/legacy/useMenuItem/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-'use client';
-export { useMenuItem } from './useMenuItem';
-export * from './useMenuItem.types';
-export * from './useMenuItemContextStabilizer';
diff --git a/packages/mui-base/src/legacy/useMenuItem/useMenuItem.test.tsx b/packages/mui-base/src/legacy/useMenuItem/useMenuItem.test.tsx
deleted file mode 100644
index 0da80599a0..0000000000
--- a/packages/mui-base/src/legacy/useMenuItem/useMenuItem.test.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import * as React from 'react';
-import { expect } from 'chai';
-import { spy } from 'sinon';
-import { createRenderer, screen, fireEvent } from '@mui/internal-test-utils';
-import { Menu } from '../Menu';
-import { useMenuItem } from './useMenuItem';
-
-describe('useMenuItem', () => {
- const { render } = createRenderer();
-
- describe('getRootProps', () => {
- it('returns props for root slot', () => {
- function TestMenuItem() {
- const rootRef = React.createRef();
- const { getRootProps } = useMenuItem({ rootRef });
- return
;
- }
-
- function Test() {
- return (
-
-
-
- );
- }
-
- const { getByRole } = render( );
-
- const menuItem = getByRole('menuitem');
- expect(menuItem).not.to.equal(null);
- });
-
- it('forwards external props including event handlers', () => {
- const handleClick = spy();
-
- function TestMenuItem() {
- const rootRef = React.createRef();
- const { getRootProps } = useMenuItem({ rootRef, id: 'test-menu-item-1' });
- return
;
- }
-
- function Test() {
- return (
-
-
-
- );
- }
-
- render( );
-
- const menuItem = screen.getByTestId('test-menu-item');
- expect(menuItem).not.to.equal(null);
-
- fireEvent.click(menuItem);
- expect(handleClick.callCount).to.equal(1);
- });
- });
-});
diff --git a/packages/mui-base/src/legacy/useMenuItem/useMenuItem.ts b/packages/mui-base/src/legacy/useMenuItem/useMenuItem.ts
deleted file mode 100644
index 64abc655ba..0000000000
--- a/packages/mui-base/src/legacy/useMenuItem/useMenuItem.ts
+++ /dev/null
@@ -1,143 +0,0 @@
-'use client';
-import * as React from 'react';
-import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';
-import { useButton } from '../../useButton';
-import type {
- MenuItemMetadata,
- UseMenuItemParameters,
- UseMenuItemReturnValue,
- UseMenuItemRootSlotProps,
-} from './useMenuItem.types';
-import { useListItem } from '../../useList';
-import { DropdownActionTypes } from '../useDropdown';
-import { DropdownContext, DropdownContextValue } from '../useDropdown/DropdownContext';
-import { combineHooksSlotProps } from '../utils/combineHooksSlotProps';
-import { useCompoundItem } from '../../useCompound';
-import { MuiCancellableEvent } from '../../utils/MuiCancellableEvent';
-import { EventHandlers } from '../../utils/types';
-import { extractEventHandlers } from '../../utils/extractEventHandlers';
-
-function idGenerator(existingKeys: Set) {
- return `menu-item-${existingKeys.size}`;
-}
-
-const FALLBACK_MENU_CONTEXT: DropdownContextValue = {
- dispatch: () => {},
- popupId: '',
- registerPopup: () => {},
- registerTrigger: () => {},
- state: { open: true, changeReason: null },
- triggerElement: null,
-};
-
-/**
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/#hooks)
- *
- * API:
- *
- * - [useMenuItem API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-item)
- */
-export function useMenuItem(params: UseMenuItemParameters): UseMenuItemReturnValue {
- const {
- disabled = false,
- id: idParam,
- rootRef: externalRef,
- label,
- disableFocusOnHover = false,
- } = params;
-
- const id = useId(idParam);
- const itemRef = React.useRef(null);
-
- const itemMetadata: MenuItemMetadata = React.useMemo(
- () => ({ disabled, id: id ?? '', label, ref: itemRef }),
- [disabled, id, label],
- );
-
- const { dispatch } = React.useContext(DropdownContext) ?? FALLBACK_MENU_CONTEXT;
-
- const { getRootProps: getListRootProps, highlighted } = useListItem({
- item: id,
- handlePointerOverEvents: !disableFocusOnHover,
- });
-
- const { index, totalItemCount } = useCompoundItem(id ?? idGenerator, itemMetadata);
-
- const {
- getRootProps: getButtonProps,
- focusVisible,
- rootRef: buttonRefHandler,
- } = useButton({
- disabled,
- focusableWhenDisabled: true,
- });
-
- const handleRef = useForkRef(buttonRefHandler, externalRef, itemRef);
-
- React.useDebugValue({ id, highlighted, disabled, label });
-
- const createHandleClick =
- (otherHandlers: EventHandlers) => (event: React.MouseEvent & MuiCancellableEvent) => {
- otherHandlers.onClick?.(event);
- if (event.defaultMuiPrevented) {
- return;
- }
-
- dispatch({
- type: DropdownActionTypes.close,
- event,
- });
- };
-
- const getOwnHandlers = (
- otherHandlers: ExternalProps = {} as ExternalProps,
- ) => ({
- ...otherHandlers,
- onClick: createHandleClick(otherHandlers),
- });
-
- function getRootProps = {}>(
- externalProps: ExternalProps = {} as ExternalProps,
- ): UseMenuItemRootSlotProps {
- const externalEventHandlers = extractEventHandlers(externalProps);
- const getCombinedRootProps = combineHooksSlotProps(
- getOwnHandlers,
- combineHooksSlotProps(getButtonProps, getListRootProps),
- );
- return {
- ...externalProps,
- ...externalEventHandlers,
- ...getCombinedRootProps(externalEventHandlers),
- id,
- ref: handleRef,
- role: 'menuitem',
- };
- }
-
- // If `id` is undefined (during SSR in React < 18), we fall back to rendering a simplified menu item
- // which does not have access to infortmation about its position or highlighted state.
- if (id === undefined) {
- return {
- getRootProps,
- disabled: false,
- focusVisible,
- highlighted: false,
- index: -1,
- totalItemCount: 0,
- rootRef: handleRef,
- };
- }
-
- return {
- getRootProps,
- disabled,
- focusVisible,
- highlighted,
- index,
- totalItemCount,
- rootRef: handleRef,
- };
-}
diff --git a/packages/mui-base/src/legacy/useMenuItem/useMenuItem.types.ts b/packages/mui-base/src/legacy/useMenuItem/useMenuItem.types.ts
deleted file mode 100644
index fc10bf4045..0000000000
--- a/packages/mui-base/src/legacy/useMenuItem/useMenuItem.types.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import { UseButtonRootSlotProps } from '../../useButton';
-import { MuiCancellableEventHandler } from '../../utils/MuiCancellableEvent';
-
-interface UseMenuItemRootSlotOwnProps {
- id: string | undefined;
- role: 'menuitem';
- ref: React.RefCallback | null;
-}
-
-export interface MenuItemMetadata {
- id: string;
- disabled: boolean;
- label?: string;
- ref: React.RefObject;
-}
-
-export type UseMenuItemRootSlotProps = ExternalProps &
- UseMenuItemRootSlotOwnProps &
- UseButtonRootSlotProps & {
- onClick: MuiCancellableEventHandler;
- };
-
-export interface UseMenuItemParameters {
- disabled?: boolean;
- id?: string;
- label?: string;
- onClick?: React.MouseEventHandler;
- rootRef: React.Ref;
- /**
- * If `true`, the menu item won't receive focus when the mouse moves over it.
- *
- * @default false
- */
- disableFocusOnHover?: boolean;
-}
-
-export interface UseMenuItemReturnValue {
- /**
- * Resolver for the root slot's props.
- * @param externalProps event handlers for the root slot
- * @returns props that should be spread on the root slot
- */
- getRootProps: = {}>(
- externalProps?: ExternalProps,
- ) => UseMenuItemRootSlotProps;
- /**
- * If `true`, the component is disabled.
- */
- disabled: boolean;
- /**
- * If `true`, the component is being focused using keyboard.
- */
- focusVisible: boolean;
- /**
- * If `true`, the component is being highlighted.
- */
- highlighted: boolean;
- /**
- * 0-based index of the item in the menu.
- */
- index: number;
- /**
- * The ref to the component's root DOM element.
- */
- rootRef: React.RefCallback | null;
- /**
- * Total number of items in the menu.
- */
- totalItemCount: number;
-}
diff --git a/packages/mui-base/src/legacy/useMenuItem/useMenuItemContextStabilizer.ts b/packages/mui-base/src/legacy/useMenuItem/useMenuItemContextStabilizer.ts
deleted file mode 100644
index 0a8310cf40..0000000000
--- a/packages/mui-base/src/legacy/useMenuItem/useMenuItemContextStabilizer.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-'use client';
-import * as React from 'react';
-import { unstable_useId as useId } from '@mui/utils';
-import { ListContext, ListContextValue, ListItemState } from '../../useList';
-
-/**
- * Stabilizes the ListContext value for the MenuItem component, so it doesn't change when sibling items update.
- *
- * Demos:
- *
- * - [Menu](https://mui.com/base-ui/react-menu/#hooks)
- *
- * 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>);
-
- if (!listContext) {
- throw new Error('MenuItem: ListContext was not found.');
- }
- const itemId = useId(id);
-
- const { getItemState, dispatch } = listContext;
-
- let itemState: ListItemState;
- if (itemId != null) {
- itemState = getItemState(itemId);
- } else {
- itemState = { focusable: true, highlighted: false, selected: false };
- }
-
- const { highlighted, selected, focusable } = itemState;
-
- // The local version of getItemState can be only called with the current Option's value.
- // It doesn't make much sense to render an Option depending on other Options' state anyway.
- const localGetItemState = React.useCallback(
- (itemValue: string) => {
- if (itemValue !== itemId) {
- throw new Error(
- [
- 'Base UI MenuItem: Tried to access the state of another MenuItem.',
- `itemValue: ${itemValue} | id: ${itemId}`,
- 'This is unsupported when the MenuItem uses the MenuItemContextStabilizer as a performance optimization.',
- ].join('/n'),
- );
- }
-
- return {
- highlighted,
- selected,
- focusable,
- };
- },
- [highlighted, selected, focusable, itemId],
- );
-
- // Create a local (per MenuItem) instance of the ListContext that changes only when
- // the getItemState's return value changes.
- // This makes MenuItems re-render only when their state actually change, not when any MenuItem's state changes.
- const localContextValue = React.useMemo(
- () => ({
- dispatch,
- getItemState: localGetItemState,
- }),
- [dispatch, localGetItemState],
- );
-
- return {
- contextValue: localContextValue,
- id: itemId,
- };
-}
diff --git a/packages/mui-base/src/utils/mergeReactProps.test.ts b/packages/mui-base/src/utils/mergeReactProps.test.ts
index a97595fb33..e8e2e9efc3 100644
--- a/packages/mui-base/src/utils/mergeReactProps.test.ts
+++ b/packages/mui-base/src/utils/mergeReactProps.test.ts
@@ -25,6 +25,31 @@ describe('mergeReactProps', () => {
expect(ourProps.onPaste.callCount).to.equal(1);
});
+ it('merges multiple event handlers', () => {
+ const log: string[] = [];
+
+ const mergedProps = mergeReactProps<'button'>(
+ {
+ onClick() {
+ log.push('1');
+ },
+ },
+ {
+ onClick() {
+ log.push('2');
+ },
+ },
+ {
+ onClick() {
+ log.push('3');
+ },
+ },
+ );
+
+ mergedProps.onClick?.({} as any);
+ expect(log).to.deep.equal(['1', '2', '3']);
+ });
+
it('merges styles', () => {
const theirProps = {
style: { color: 'red' },
@@ -99,10 +124,29 @@ describe('mergeReactProps', () => {
ran = true;
},
},
+ {
+ onClick() {
+ ran = true;
+ },
+ },
);
mergedProps.onClick?.({} as any);
expect(ran).to.equal(false);
});
+
+ it('merges internal event handlers so that the ones defined first override the ones defined later', () => {
+ const mergedProps = mergeReactProps<'button'>(
+ {},
+ {
+ title: 'internal title 1',
+ },
+ {
+ title: 'internal title 2',
+ },
+ );
+
+ expect(mergedProps.title).to.equal('internal title 1');
+ });
});
diff --git a/packages/mui-base/src/utils/mergeReactProps.ts b/packages/mui-base/src/utils/mergeReactProps.ts
index 2396f8ff9e..61cac24252 100644
--- a/packages/mui-base/src/utils/mergeReactProps.ts
+++ b/packages/mui-base/src/utils/mergeReactProps.ts
@@ -2,7 +2,7 @@ import type * as React from 'react';
import type { BaseUIEvent, WithBaseUIEvent } from './types';
/**
- * Merges two sets of React props such that their event handlers are called in sequence (the user's
+ * Merges multiple sets of React props such that their event handlers are called in sequence (the user's
* before our internal ones), and allows the user to prevent the internal event handlers from being
* executed by attaching a `preventBaseUIHandler` method. It also merges the `style` prop, whereby
* the user's styles overwrite the internal ones.
@@ -12,9 +12,25 @@ import type { BaseUIEvent, WithBaseUIEvent } from './types';
* @returns the merged props.
*/
export function mergeReactProps(
- externalProps: WithBaseUIEvent>,
+ externalProps: WithBaseUIEvent> | undefined,
+ ...internalProps: React.ComponentPropsWithRef[]
+): WithBaseUIEvent> {
+ let mergedInternalProps: WithBaseUIEvent> = internalProps[0];
+ for (let i = 1; i < internalProps.length; i += 1) {
+ mergedInternalProps = merge(mergedInternalProps, internalProps[i]);
+ }
+
+ return merge(externalProps, mergedInternalProps as React.ComponentPropsWithRef);
+}
+
+function merge(
+ externalProps: WithBaseUIEvent> | undefined,
internalProps: React.ComponentPropsWithRef,
): WithBaseUIEvent> {
+ if (!externalProps) {
+ return internalProps;
+ }
+
return Object.entries(externalProps).reduce(
(acc, [key, value]) => {
if (
diff --git a/packages/mui-base/src/utils/useAnchorPositioning.ts b/packages/mui-base/src/utils/useAnchorPositioning.ts
index dc9c4b8ad0..6e2f329ff6 100644
--- a/packages/mui-base/src/utils/useAnchorPositioning.ts
+++ b/packages/mui-base/src/utils/useAnchorPositioning.ts
@@ -47,6 +47,7 @@ interface UseAnchorPositioningParameters {
arrowPadding?: number;
floatingRootContext?: FloatingRootContext;
mounted?: boolean;
+ nodeId?: string;
}
interface UseAnchorPositioningReturnValue {
@@ -85,6 +86,7 @@ export function useAnchorPositioning(
keepMounted = false,
arrowPadding = 5,
mounted = true,
+ nodeId,
} = params;
const placement = alignment === 'center' ? side : (`${side}-${alignment}` as Placement);
@@ -198,6 +200,7 @@ export function useAnchorPositioning(
middleware,
strategy: positionStrategy,
whileElementsMounted: keepMounted ? undefined : autoUpdate,
+ nodeId,
});
// We can assume that element anchors are stable across renders, and thus can be reactive.
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 82acd61f79..9a3e6cab30 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -24,5 +24,5 @@
"docs/*": ["./node_modules/@mui/monorepo/docs/*"]
}
},
- "exclude": ["**/.*/", "**/build", "**/node_modules", "docs/export"]
+ "exclude": ["**/.*/", "**/build", "**/build-tests", "**/node_modules", "docs/export"]
}
From 7b0e6840621c4093f9155462a03077620b783434 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Dudak?=
Date: Fri, 2 Aug 2024 16:41:06 +0200
Subject: [PATCH 32/34] [dependencies] Do not try to update eslint (#515)
---
renovate.json | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/renovate.json b/renovate.json
index 6f39e97826..623022d4f9 100644
--- a/renovate.json
+++ b/renovate.json
@@ -136,6 +136,11 @@
"groupName": "react-docgen - incompatible versions",
"matchPackageNames": ["react-docgen"],
"allowedVersions": "< 6.0.0"
+ },
+ {
+ "groupName": "eslint - incompatible versions",
+ "matchPackageNames": ["eslint"],
+ "allowedVersions": "< 9.0.0"
}
],
"postUpdateOptions": ["pnpmDedupe"],
From dfeef6e229b7a94dbb879a70d52a316c40041d96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Dudak?=
Date: Fri, 2 Aug 2024 20:03:18 +0200
Subject: [PATCH 33/34] [NumberField] Fix tests on non-English locale machines
(#524)
---
.../NumberField/Input/NumberFieldInput.test.tsx | 2 +-
.../NumberField/Root/NumberFieldRoot.test.tsx | 16 ++++++++++------
.../src/NumberField/utils/format.test.ts | 6 +++++-
.../mui-base/src/NumberField/utils/parse.test.ts | 5 +++--
4 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/packages/mui-base/src/NumberField/Input/NumberFieldInput.test.tsx b/packages/mui-base/src/NumberField/Input/NumberFieldInput.test.tsx
index ca3f9fed26..97d2efc226 100644
--- a/packages/mui-base/src/NumberField/Input/NumberFieldInput.test.tsx
+++ b/packages/mui-base/src/NumberField/Input/NumberFieldInput.test.tsx
@@ -133,7 +133,7 @@ describe(' ', () => {
fireEvent.change(input, { target: { value: '1234' } });
expect(input).to.have.value('1234');
fireEvent.blur(input);
- expect(input).to.have.value('1,234');
+ expect(input).to.have.value((1234).toLocaleString());
});
it('should commit validated number on blur (min)', () => {
diff --git a/packages/mui-base/src/NumberField/Root/NumberFieldRoot.test.tsx b/packages/mui-base/src/NumberField/Root/NumberFieldRoot.test.tsx
index 85823173a3..5de1231753 100644
--- a/packages/mui-base/src/NumberField/Root/NumberFieldRoot.test.tsx
+++ b/packages/mui-base/src/NumberField/Root/NumberFieldRoot.test.tsx
@@ -373,7 +373,7 @@ describe(' ', () => {
const input = screen.getByRole('textbox');
fireEvent.keyDown(document.body, { altKey: true });
fireEvent.pointerDown(screen.getByLabelText('Increase'));
- expect(input).to.have.value('5.1');
+ expect(input).to.have.value((5.1).toLocaleString());
});
it('should decrement the value by the default `smallStep` prop of 0.1 while holding the alt key', () => {
@@ -381,7 +381,7 @@ describe(' ', () => {
const input = screen.getByRole('textbox');
fireEvent.keyDown(document.body, { altKey: true });
fireEvent.pointerDown(screen.getByLabelText('Decrease'));
- expect(input).to.have.value('5.9');
+ expect(input).to.have.value((5.9).toLocaleString());
});
it('should use explicit `smallStep` value if provided while holding the alt key', () => {
@@ -389,7 +389,7 @@ describe(' ', () => {
const input = screen.getByRole('textbox');
fireEvent.keyDown(document.body, { altKey: true });
fireEvent.pointerDown(screen.getByLabelText('Increase'));
- expect(input).to.have.value('5.5');
+ expect(input).to.have.value((5.5).toLocaleString());
});
it('should not use the `smallStep` prop if no longer holding the alt key', () => {
@@ -398,10 +398,10 @@ describe(' ', () => {
const button = screen.getByLabelText('Increase');
fireEvent.keyDown(document.body, { altKey: true });
fireEvent.pointerDown(button);
- expect(input).to.have.value('5.5');
+ expect(input).to.have.value((5.5).toLocaleString());
fireEvent.keyUp(input, { altKey: false });
fireEvent.pointerDown(button);
- expect(input).to.have.value('6.5');
+ expect(input).to.have.value((6.5).toLocaleString());
});
});
@@ -409,7 +409,11 @@ describe(' ', () => {
it('should format the value using the provided options', () => {
render( );
const input = screen.getByRole('textbox');
- expect(input).to.have.value('$1,000.00');
+ const expectedValue = new Intl.NumberFormat(undefined, {
+ style: 'currency',
+ currency: 'USD',
+ }).format(1000);
+ expect(input).to.have.value(expectedValue);
});
});
diff --git a/packages/mui-base/src/NumberField/utils/format.test.ts b/packages/mui-base/src/NumberField/utils/format.test.ts
index 9d151a3d9a..c60eb7d7c5 100644
--- a/packages/mui-base/src/NumberField/utils/format.test.ts
+++ b/packages/mui-base/src/NumberField/utils/format.test.ts
@@ -19,7 +19,11 @@ describe('NumberField format', () => {
describe('formatNumber', () => {
it('formats a number', () => {
- expect(getFormatter(undefined, getOptions()).format(1234.56)).to.equal('$1,234.56');
+ const expected = new Intl.NumberFormat(undefined, {
+ style: 'currency',
+ currency: 'USD',
+ }).format(1234.56);
+ expect(getFormatter(undefined, getOptions()).format(1234.56)).to.equal(expected);
});
it('formats a number with different options', () => {
diff --git a/packages/mui-base/src/NumberField/utils/parse.test.ts b/packages/mui-base/src/NumberField/utils/parse.test.ts
index 2d6b41c79b..caace5e18e 100644
--- a/packages/mui-base/src/NumberField/utils/parse.test.ts
+++ b/packages/mui-base/src/NumberField/utils/parse.test.ts
@@ -4,7 +4,7 @@ import { getNumberLocaleDetails, parseNumber } from './parse';
describe('NumberField parse', () => {
describe('getNumberLocaleDetails', () => {
it('returns the number locale details', () => {
- const details = getNumberLocaleDetails();
+ const details = getNumberLocaleDetails('en-US');
expect(details.decimal).to.equal('.');
expect(details.group).to.equal(',');
expect(details.currency).to.equal(undefined);
@@ -16,7 +16,8 @@ describe('NumberField parse', () => {
describe('parseNumber', () => {
it('parses a number', () => {
- expect(parseNumber('1,234.56')).to.equal(1234.56);
+ const numberString = new Intl.NumberFormat().format(1234.56);
+ expect(parseNumber(numberString)).to.equal(1234.56);
});
it('parses a number with different options', () => {
From 79d39974a829ccafa4ea204046c9d71d7e6d139f Mon Sep 17 00:00:00 2001
From: atomiks
Date: Mon, 5 Aug 2024 07:10:45 +1000
Subject: [PATCH 34/34] [core] Add `trackAnchor` prop for anchor positioning
(#519)
---
docs/pages/experiments/anchor-positioning.tsx | 104 ++++++++++--------
.../Positioner/usePopoverPositioner.types.ts | 6 +
.../usePreviewCardPositioner.types.ts | 6 +
.../Positioner/useTooltipPositioner.types.ts | 6 +
.../src/utils/useAnchorPositioning.ts | 4 +-
5 files changed, 82 insertions(+), 44 deletions(-)
diff --git a/docs/pages/experiments/anchor-positioning.tsx b/docs/pages/experiments/anchor-positioning.tsx
index c76218ba46..4b79201888 100644
--- a/docs/pages/experiments/anchor-positioning.tsx
+++ b/docs/pages/experiments/anchor-positioning.tsx
@@ -1,4 +1,5 @@
import * as React from 'react';
+import * as ReactDOM from 'react-dom';
import { useAnchorPositioning } from '../../../packages/mui-base/src/utils/useAnchorPositioning';
@@ -26,6 +27,7 @@ export default function AnchorPositioning() {
const [sticky, setSticky] = React.useState(false);
const [constrainSize, setConstrainSize] = React.useState(false);
const [visible, setVisible] = React.useState(false);
+ const [trackAnchor, setTrackAnchor] = React.useState(true);
const { refs, positionerStyles, arrowStyles, arrowRef, renderedSide, arrowUncentered } =
useAnchorPositioning({
@@ -37,6 +39,7 @@ export default function AnchorPositioning() {
hideWhenDetached,
sticky,
arrowPadding,
+ trackAnchor,
});
const handleInitialScroll = React.useCallback((node: HTMLDivElement | null) => {
@@ -55,6 +58,54 @@ export default function AnchorPositioning() {
xl: 250,
}[anchorSize];
+ const popup = (
+
+
+ {`Content `.repeat(
+ {
+ xs: 1,
+ s: 3,
+ m: 10,
+ l: 50,
+ xl: 200,
+ }[popupSize],
+ )}
+
+ {arrow && (
+
}
+ style={{
+ ...arrowStyles,
+ background: 'rgba(0, 0, 255, 0.5)',
+ width: 20,
+ height: 20,
+ [oppositeSideMap[renderedSide]]: -10,
+ ...(arrowUncentered && hideArrowWhenUncentered && { visibility: 'hidden' }),
+ }}
+ />
+ )}
+
+ );
+
+ const popupNode = trackAnchor ? popup : ReactDOM.createPortal(popup, document.body);
+
return (
Anchor Positioning Playground
@@ -88,49 +139,7 @@ export default function AnchorPositioning() {
>
{anchorSize !== 'xs' ? 'A' : null}
-
-
- {`Content `.repeat(
- {
- xs: 1,
- s: 3,
- m: 10,
- l: 50,
- xl: 200,
- }[popupSize],
- )}
-
- {arrow && (
-
}
- style={{
- ...arrowStyles,
- background: 'rgba(0, 0, 255, 0.5)',
- width: 20,
- height: 20,
- [oppositeSideMap[renderedSide]]: -10,
- ...(arrowUncentered && hideArrowWhenUncentered && { visibility: 'hidden' }),
- }}
- />
- )}
-
+ {popupNode}
@@ -273,6 +282,15 @@ export default function AnchorPositioning() {
setSticky((prev) => !prev)} />
Sticky
+
+
+ setTrackAnchor((prev) => !prev)}
+ />
+ Track anchor
+
diff --git a/packages/mui-base/src/Popover/Positioner/usePopoverPositioner.types.ts b/packages/mui-base/src/Popover/Positioner/usePopoverPositioner.types.ts
index 15b7a7b5fe..edeb248e30 100644
--- a/packages/mui-base/src/Popover/Positioner/usePopoverPositioner.types.ts
+++ b/packages/mui-base/src/Popover/Positioner/usePopoverPositioner.types.ts
@@ -82,6 +82,12 @@ export interface PopoverPositionerParameters {
* @default false
*/
keepMounted?: boolean;
+ /**
+ * Whether the popover popup continuously tracks its anchor after the initial positioning upon
+ * mount.
+ * @default true
+ */
+ trackAnchor?: boolean;
}
export interface UsePopoverPositionerParameters extends PopoverPositionerParameters {
diff --git a/packages/mui-base/src/PreviewCard/Positioner/usePreviewCardPositioner.types.ts b/packages/mui-base/src/PreviewCard/Positioner/usePreviewCardPositioner.types.ts
index cae609c8b5..f4c8685e38 100644
--- a/packages/mui-base/src/PreviewCard/Positioner/usePreviewCardPositioner.types.ts
+++ b/packages/mui-base/src/PreviewCard/Positioner/usePreviewCardPositioner.types.ts
@@ -85,6 +85,12 @@ export interface PreviewCardPositionerParameters {
* @default false
*/
keepMounted?: boolean;
+ /**
+ * Whether the preview card popup continuously tracks its anchor after the initial positioning
+ * upon mount.
+ * @default true
+ */
+ trackAnchor?: boolean;
}
export interface UsePreviewCardPositionerParameters extends PreviewCardPositionerParameters {
diff --git a/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts b/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts
index b3f2e0ce78..e0d13e6355 100644
--- a/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts
+++ b/packages/mui-base/src/Tooltip/Positioner/useTooltipPositioner.types.ts
@@ -76,6 +76,12 @@ export interface TooltipPositionerParameters {
* @default false
*/
keepMounted?: boolean;
+ /**
+ * Whether the tooltip popup continuously tracks its anchor after the initial positioning upon
+ * mount.
+ * @default true
+ */
+ trackAnchor?: boolean;
}
export interface UseTooltipPositionerParameters extends TooltipPositionerParameters {
diff --git a/packages/mui-base/src/utils/useAnchorPositioning.ts b/packages/mui-base/src/utils/useAnchorPositioning.ts
index 6e2f329ff6..ee15ef9585 100644
--- a/packages/mui-base/src/utils/useAnchorPositioning.ts
+++ b/packages/mui-base/src/utils/useAnchorPositioning.ts
@@ -47,6 +47,7 @@ interface UseAnchorPositioningParameters {
arrowPadding?: number;
floatingRootContext?: FloatingRootContext;
mounted?: boolean;
+ trackAnchor?: boolean;
nodeId?: string;
}
@@ -86,6 +87,7 @@ export function useAnchorPositioning(
keepMounted = false,
arrowPadding = 5,
mounted = true,
+ trackAnchor = true,
nodeId,
} = params;
@@ -199,7 +201,7 @@ export function useAnchorPositioning(
placement,
middleware,
strategy: positionStrategy,
- whileElementsMounted: keepMounted ? undefined : autoUpdate,
+ whileElementsMounted: keepMounted || !trackAnchor ? undefined : autoUpdate,
nodeId,
});