diff --git a/.eslintrc.js b/.eslintrc.js
index 3afad759075e..f4762cac6c02 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,6 +1,19 @@
const baseline = require('@mui/monorepo/.eslintrc');
const path = require('path');
+const chartsPackages = ['x-charts', 'x-charts-pro'];
+
+const dataGridPackages = [
+ 'x-data-grid',
+ 'x-data-grid-pro',
+ 'x-data-grid-premium',
+ 'x-data-grid-generator',
+];
+
+const datePickersPackages = ['x-date-pickers', 'x-date-pickers-pro'];
+
+const treeViewPackages = ['x-tree-view', 'x-tree-view-pro'];
+
// Enable React Compiler Plugin rules globally
const ENABLE_REACT_COMPILER_PLUGIN = process.env.ENABLE_REACT_COMPILER_PLUGIN ?? false;
@@ -139,6 +152,18 @@ module.exports = {
...(ENABLE_REACT_COMPILER_PLUGIN ? { 'react-compiler/react-compiler': 'error' } : {}),
// TODO move to @mui/monorepo/.eslintrc, codebase is moving away from default exports
'import/prefer-default-export': 'off',
+ 'import/no-restricted-paths': [
+ 'error',
+ {
+ zones: [...chartsPackages, ...datePickersPackages, ...treeViewPackages].map(
+ (packageName) => ({
+ target: `./packages/${packageName}/src/**/!(*.test.*|*.spec.*)`,
+ from: `./packages/${packageName}/src/internals/index.ts`,
+ message: `Use a more specific import instead. E.g. import { MyInternal } from '../internals/MyInternal';`,
+ }),
+ ),
+ },
+ ],
// TODO move rule into the main repo once it has upgraded
'@typescript-eslint/return-await': 'off',
'no-restricted-imports': 'off',
@@ -167,7 +192,7 @@ module.exports = {
// TODO move to @mui/monorepo/.eslintrc
// TODO Fix props names to not conflict
'react/jsx-no-duplicate-props': [1, { ignoreCase: false }],
- // TOOD move to @mui/monorepo/.eslintrc, these are false positive
+ // TODO move to @mui/monorepo/.eslintrc, these are false positive
'react/no-unstable-nested-components': ['error', { allowAsProps: true }],
},
overrides: [
@@ -257,18 +282,9 @@ module.exports = {
...buildPackageRestrictedImports('@mui/x-tree-view-pro', 'x-tree-view-pro', false),
...buildPackageRestrictedImports('@mui/x-license', 'x-license'),
- ...addReactCompilerRule(['x-charts', 'x-charts-pro'], ENABLE_REACT_COMPILER_PLUGIN_CHARTS),
- ...addReactCompilerRule(
- ['x-data-grid', 'x-data-grid-pro', 'x-data-grid-premium', 'x-data-grid-generator'],
- ENABLE_REACT_COMPILER_PLUGIN_DATA_GRID,
- ),
- ...addReactCompilerRule(
- ['x-date-pickers', 'x-date-pickers-pro'],
- ENABLE_REACT_COMPILER_PLUGIN_DATE_PICKERS,
- ),
- ...addReactCompilerRule(
- ['x-tree-view', 'x-tree-view-pro'],
- ENABLE_REACT_COMPILER_PLUGIN_TREE_VIEW,
- ),
+ ...addReactCompilerRule(chartsPackages, ENABLE_REACT_COMPILER_PLUGIN_CHARTS),
+ ...addReactCompilerRule(dataGridPackages, ENABLE_REACT_COMPILER_PLUGIN_DATA_GRID),
+ ...addReactCompilerRule(datePickersPackages, ENABLE_REACT_COMPILER_PLUGIN_DATE_PICKERS),
+ ...addReactCompilerRule(treeViewPackages, ENABLE_REACT_COMPILER_PLUGIN_TREE_VIEW),
],
};
diff --git a/docs/data/data-grid/components/CustomEmptyOverlayGrid.js b/docs/data/data-grid/components/CustomEmptyOverlayGrid.js
deleted file mode 100644
index 7bff6c5033d8..000000000000
--- a/docs/data/data-grid/components/CustomEmptyOverlayGrid.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import * as React from 'react';
-import Box from '@mui/material/Box';
-import { DataGrid } from '@mui/x-data-grid';
-import { useDemoData } from '@mui/x-data-grid-generator';
-import { styled } from '@mui/material/styles';
-
-const StyledGridOverlay = styled('div')(({ theme }) => ({
- display: 'flex',
- flexDirection: 'column',
- alignItems: 'center',
- justifyContent: 'center',
- height: '100%',
- '& .ant-empty-img-1': {
- fill: theme.palette.mode === 'light' ? '#aeb8c2' : '#262626',
- },
- '& .ant-empty-img-2': {
- fill: theme.palette.mode === 'light' ? '#f5f5f7' : '#595959',
- },
- '& .ant-empty-img-3': {
- fill: theme.palette.mode === 'light' ? '#dce0e6' : '#434343',
- },
- '& .ant-empty-img-4': {
- fill: theme.palette.mode === 'light' ? '#fff' : '#1c1c1c',
- },
- '& .ant-empty-img-5': {
- fillOpacity: theme.palette.mode === 'light' ? '0.8' : '0.08',
- fill: theme.palette.mode === 'light' ? '#f5f5f5' : '#fff',
- },
-}));
-
-function CustomNoRowsOverlay() {
- return (
-
-
- No Rows
-
- );
-}
-
-export default function CustomEmptyOverlayGrid() {
- const { data } = useDemoData({
- dataSet: 'Commodity',
- rowLength: 100,
- maxColumns: 6,
- });
-
- return (
-
-
-
- );
-}
diff --git a/docs/data/data-grid/components/CustomEmptyOverlayGrid.tsx b/docs/data/data-grid/components/CustomEmptyOverlayGrid.tsx
deleted file mode 100644
index 7bff6c5033d8..000000000000
--- a/docs/data/data-grid/components/CustomEmptyOverlayGrid.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-import * as React from 'react';
-import Box from '@mui/material/Box';
-import { DataGrid } from '@mui/x-data-grid';
-import { useDemoData } from '@mui/x-data-grid-generator';
-import { styled } from '@mui/material/styles';
-
-const StyledGridOverlay = styled('div')(({ theme }) => ({
- display: 'flex',
- flexDirection: 'column',
- alignItems: 'center',
- justifyContent: 'center',
- height: '100%',
- '& .ant-empty-img-1': {
- fill: theme.palette.mode === 'light' ? '#aeb8c2' : '#262626',
- },
- '& .ant-empty-img-2': {
- fill: theme.palette.mode === 'light' ? '#f5f5f7' : '#595959',
- },
- '& .ant-empty-img-3': {
- fill: theme.palette.mode === 'light' ? '#dce0e6' : '#434343',
- },
- '& .ant-empty-img-4': {
- fill: theme.palette.mode === 'light' ? '#fff' : '#1c1c1c',
- },
- '& .ant-empty-img-5': {
- fillOpacity: theme.palette.mode === 'light' ? '0.8' : '0.08',
- fill: theme.palette.mode === 'light' ? '#f5f5f5' : '#fff',
- },
-}));
-
-function CustomNoRowsOverlay() {
- return (
-
-
- No Rows
-
- );
-}
-
-export default function CustomEmptyOverlayGrid() {
- const { data } = useDemoData({
- dataSet: 'Commodity',
- rowLength: 100,
- maxColumns: 6,
- });
-
- return (
-
-
-
- );
-}
diff --git a/docs/data/data-grid/components/components.md b/docs/data/data-grid/components/components.md
index b94195c7f74a..6d78d7487beb 100644
--- a/docs/data/data-grid/components/components.md
+++ b/docs/data/data-grid/components/components.md
@@ -128,23 +128,6 @@ The next demo reuses `GridPagination` but replaces the previous and next page bu
{{"demo": "CustomPaginationGrid.js", "bg": "inline"}}
-### Loading overlay
-
-By default, the loading overlay displays a circular progress.
-This demo replaces it with a linear progress.
-
-{{"demo": "CustomLoadingOverlayGrid.js", "bg": "inline"}}
-
-### No rows overlay
-
-In the following demo, an illustration is added on top of the default "No Rows" message.
-
-{{"demo": "CustomEmptyOverlayGrid.js", "bg": "inline"}}
-
-:::info
-As with the no-rows overlay, the Data Grid also lets you override the no-results overlay using the `NoResultsOverlay` slot.
-:::
-
### Row
The `slotProps.row` prop can be used to pass additional props to the row component.
@@ -166,6 +149,10 @@ As any component slot, every icon can be customized. However, it is not yet poss
{{"demo": "CustomSortIcons.js", "bg": "inline"}}
+### Overlays
+
+See the [Overlays](/x/react-data-grid/overlays/) documentation on how to customize the `loadingOverlay`, `noRowsOverlay`, and `noResultsOverlay`.
+
## Slot props
To override default props or pass custom props to slot components, use the `slotProps` prop.
diff --git a/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.js b/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.js
index 0f9b9382f16e..b52f36d8eb20 100644
--- a/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.js
+++ b/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.js
@@ -9,21 +9,11 @@ const StyledGridOverlay = styled('div')(({ theme }) => ({
alignItems: 'center',
justifyContent: 'center',
height: '100%',
- '& .ant-empty-img-1': {
- fill: theme.palette.mode === 'light' ? '#aeb8c2' : '#262626',
+ '& .no-rows-primary': {
+ fill: theme.palette.mode === 'light' ? '#AEB8C2' : '#3D4751',
},
- '& .ant-empty-img-2': {
- fill: theme.palette.mode === 'light' ? '#f5f5f7' : '#595959',
- },
- '& .ant-empty-img-3': {
- fill: theme.palette.mode === 'light' ? '#dce0e6' : '#434343',
- },
- '& .ant-empty-img-4': {
- fill: theme.palette.mode === 'light' ? '#fff' : '#1c1c1c',
- },
- '& .ant-empty-img-5': {
- fillOpacity: theme.palette.mode === 'light' ? '0.8' : '0.08',
- fill: theme.palette.mode === 'light' ? '#f5f5f5' : '#fff',
+ '& .no-rows-secondary': {
+ fill: theme.palette.mode === 'light' ? '#E8EAED' : '#1D2126',
},
}));
@@ -31,46 +21,31 @@ function CustomNoRowsOverlay() {
return (
- No Rows
+ No rows
);
}
diff --git a/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.tsx b/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.tsx
index 0f9b9382f16e..b52f36d8eb20 100644
--- a/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.tsx
+++ b/docs/data/data-grid/layout/AutoHeightOverlayNoSnap.tsx
@@ -9,21 +9,11 @@ const StyledGridOverlay = styled('div')(({ theme }) => ({
alignItems: 'center',
justifyContent: 'center',
height: '100%',
- '& .ant-empty-img-1': {
- fill: theme.palette.mode === 'light' ? '#aeb8c2' : '#262626',
+ '& .no-rows-primary': {
+ fill: theme.palette.mode === 'light' ? '#AEB8C2' : '#3D4751',
},
- '& .ant-empty-img-2': {
- fill: theme.palette.mode === 'light' ? '#f5f5f7' : '#595959',
- },
- '& .ant-empty-img-3': {
- fill: theme.palette.mode === 'light' ? '#dce0e6' : '#434343',
- },
- '& .ant-empty-img-4': {
- fill: theme.palette.mode === 'light' ? '#fff' : '#1c1c1c',
- },
- '& .ant-empty-img-5': {
- fillOpacity: theme.palette.mode === 'light' ? '0.8' : '0.08',
- fill: theme.palette.mode === 'light' ? '#f5f5f5' : '#fff',
+ '& .no-rows-secondary': {
+ fill: theme.palette.mode === 'light' ? '#E8EAED' : '#1D2126',
},
}));
@@ -31,46 +21,31 @@ function CustomNoRowsOverlay() {
return (
- No Rows
+ No rows
);
}
diff --git a/docs/data/data-grid/layout/layout.md b/docs/data/data-grid/layout/layout.md
index 67ff5ce52e17..1c960eb659dd 100644
--- a/docs/data/data-grid/layout/layout.md
+++ b/docs/data/data-grid/layout/layout.md
@@ -33,9 +33,9 @@ This is not recommended for large datasets as row virtualization will not be abl
### Overlay height
-When `autoHeight` is enabled but there are no rows, grid overlays (such as
-["Loading"](/x/react-data-grid/components/#loading-overlay) or
-["No rows"](/x/react-data-grid/components/#no-rows-overlay))
+When `autoHeight` is enabled, grid overlays (such as
+["Loading"](/x/react-data-grid/overlays/#loading-overlay) or
+["No rows"](/x/react-data-grid/overlays/#no-rows-overlay))
take the height of two rows by default.
To customize the overlay height, use the `--DataGrid-overlayHeight` CSS variable.
diff --git a/docs/data/data-grid/overlays/LoadingOverlay.js b/docs/data/data-grid/overlays/LoadingOverlay.js
new file mode 100644
index 000000000000..0c65d421df94
--- /dev/null
+++ b/docs/data/data-grid/overlays/LoadingOverlay.js
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+
+export default function LoadingOverlay() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 6,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/LoadingOverlay.tsx b/docs/data/data-grid/overlays/LoadingOverlay.tsx
new file mode 100644
index 000000000000..0c65d421df94
--- /dev/null
+++ b/docs/data/data-grid/overlays/LoadingOverlay.tsx
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+
+export default function LoadingOverlay() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 6,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/LoadingOverlay.tsx.preview b/docs/data/data-grid/overlays/LoadingOverlay.tsx.preview
new file mode 100644
index 000000000000..0948ca9faeec
--- /dev/null
+++ b/docs/data/data-grid/overlays/LoadingOverlay.tsx.preview
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/data/data-grid/components/CustomLoadingOverlayGrid.js b/docs/data/data-grid/overlays/LoadingOverlayCustom.js
similarity index 90%
rename from docs/data/data-grid/components/CustomLoadingOverlayGrid.js
rename to docs/data/data-grid/overlays/LoadingOverlayCustom.js
index fef9a8145a76..481a8a5949d2 100644
--- a/docs/data/data-grid/components/CustomLoadingOverlayGrid.js
+++ b/docs/data/data-grid/overlays/LoadingOverlayCustom.js
@@ -3,7 +3,7 @@ import { DataGrid } from '@mui/x-data-grid';
import LinearProgress from '@mui/material/LinearProgress';
import { useDemoData } from '@mui/x-data-grid-generator';
-export default function CustomLoadingOverlayGrid() {
+export default function LoadingOverlayCustom() {
const { data } = useDemoData({
dataSet: 'Commodity',
rowLength: 100,
diff --git a/docs/data/data-grid/components/CustomLoadingOverlayGrid.tsx b/docs/data/data-grid/overlays/LoadingOverlayCustom.tsx
similarity index 91%
rename from docs/data/data-grid/components/CustomLoadingOverlayGrid.tsx
rename to docs/data/data-grid/overlays/LoadingOverlayCustom.tsx
index c278f02c68a4..2c5c59462777 100644
--- a/docs/data/data-grid/components/CustomLoadingOverlayGrid.tsx
+++ b/docs/data/data-grid/overlays/LoadingOverlayCustom.tsx
@@ -3,7 +3,7 @@ import { DataGrid, GridSlots } from '@mui/x-data-grid';
import LinearProgress from '@mui/material/LinearProgress';
import { useDemoData } from '@mui/x-data-grid-generator';
-export default function CustomLoadingOverlayGrid() {
+export default function LoadingOverlayCustom() {
const { data } = useDemoData({
dataSet: 'Commodity',
rowLength: 100,
diff --git a/docs/data/data-grid/components/CustomLoadingOverlayGrid.tsx.preview b/docs/data/data-grid/overlays/LoadingOverlayCustom.tsx.preview
similarity index 100%
rename from docs/data/data-grid/components/CustomLoadingOverlayGrid.tsx.preview
rename to docs/data/data-grid/overlays/LoadingOverlayCustom.tsx.preview
diff --git a/docs/data/data-grid/overlays/NoResultsOverlay.js b/docs/data/data-grid/overlays/NoResultsOverlay.js
new file mode 100644
index 000000000000..e112ec11cd38
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoResultsOverlay.js
@@ -0,0 +1,35 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid, GridToolbar } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+
+export default function NoResultsOverlay() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 6,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoResultsOverlay.tsx b/docs/data/data-grid/overlays/NoResultsOverlay.tsx
new file mode 100644
index 000000000000..e112ec11cd38
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoResultsOverlay.tsx
@@ -0,0 +1,35 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid, GridToolbar } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+
+export default function NoResultsOverlay() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 6,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoResultsOverlayCustom.js b/docs/data/data-grid/overlays/NoResultsOverlayCustom.js
new file mode 100644
index 000000000000..d477966544aa
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoResultsOverlayCustom.js
@@ -0,0 +1,85 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid, GridToolbar } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+import { styled } from '@mui/material/styles';
+
+const StyledGridOverlay = styled('div')(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
+ height: '100%',
+ '& .no-results-primary': {
+ fill: theme.palette.mode === 'light' ? '#AEB8C2' : '#`3D4751`',
+ },
+ '& .no-results-secondary': {
+ fill: theme.palette.mode === 'light' ? '#E8EAED' : '#`1D2126`',
+ },
+}));
+
+function CustomNoResultsOverlay() {
+ return (
+
+
+ No results found.
+
+ );
+}
+
+export default function NoResultsOverlayCustom() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 6,
+ maxColumns: 6,
+ });
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoResultsOverlayCustom.tsx b/docs/data/data-grid/overlays/NoResultsOverlayCustom.tsx
new file mode 100644
index 000000000000..d477966544aa
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoResultsOverlayCustom.tsx
@@ -0,0 +1,85 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid, GridToolbar } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+import { styled } from '@mui/material/styles';
+
+const StyledGridOverlay = styled('div')(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
+ height: '100%',
+ '& .no-results-primary': {
+ fill: theme.palette.mode === 'light' ? '#AEB8C2' : '#`3D4751`',
+ },
+ '& .no-results-secondary': {
+ fill: theme.palette.mode === 'light' ? '#E8EAED' : '#`1D2126`',
+ },
+}));
+
+function CustomNoResultsOverlay() {
+ return (
+
+
+ No results found.
+
+ );
+}
+
+export default function NoResultsOverlayCustom() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 6,
+ maxColumns: 6,
+ });
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoRowsOverlay.js b/docs/data/data-grid/overlays/NoRowsOverlay.js
new file mode 100644
index 000000000000..d748985be91a
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoRowsOverlay.js
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+
+export default function NoRowsOverlay() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 0,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoRowsOverlay.tsx b/docs/data/data-grid/overlays/NoRowsOverlay.tsx
new file mode 100644
index 000000000000..d748985be91a
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoRowsOverlay.tsx
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+
+export default function NoRowsOverlay() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 0,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoRowsOverlay.tsx.preview b/docs/data/data-grid/overlays/NoRowsOverlay.tsx.preview
new file mode 100644
index 000000000000..364fac54f80c
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoRowsOverlay.tsx.preview
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/data/data-grid/overlays/NoRowsOverlayCustom.js b/docs/data/data-grid/overlays/NoRowsOverlayCustom.js
new file mode 100644
index 000000000000..bfe5090c0466
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoRowsOverlayCustom.js
@@ -0,0 +1,72 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+import { styled } from '@mui/material/styles';
+
+const StyledGridOverlay = styled('div')(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
+ height: '100%',
+ '& .no-rows-primary': {
+ fill: theme.palette.mode === 'light' ? '#AEB8C2' : '#3D4751',
+ },
+ '& .no-rows-secondary': {
+ fill: theme.palette.mode === 'light' ? '#E8EAED' : '#1D2126',
+ },
+}));
+
+function CustomNoRowsOverlay() {
+ return (
+
+
+ No rows
+
+ );
+}
+
+export default function NoRowsOverlayCustom() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 100,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/overlays/NoRowsOverlayCustom.tsx b/docs/data/data-grid/overlays/NoRowsOverlayCustom.tsx
new file mode 100644
index 000000000000..bfe5090c0466
--- /dev/null
+++ b/docs/data/data-grid/overlays/NoRowsOverlayCustom.tsx
@@ -0,0 +1,72 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { DataGrid } from '@mui/x-data-grid';
+import { useDemoData } from '@mui/x-data-grid-generator';
+import { styled } from '@mui/material/styles';
+
+const StyledGridOverlay = styled('div')(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
+ height: '100%',
+ '& .no-rows-primary': {
+ fill: theme.palette.mode === 'light' ? '#AEB8C2' : '#3D4751',
+ },
+ '& .no-rows-secondary': {
+ fill: theme.palette.mode === 'light' ? '#E8EAED' : '#1D2126',
+ },
+}));
+
+function CustomNoRowsOverlay() {
+ return (
+
+
+ No rows
+
+ );
+}
+
+export default function NoRowsOverlayCustom() {
+ const { data } = useDemoData({
+ dataSet: 'Commodity',
+ rowLength: 100,
+ maxColumns: 6,
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/docs/data/data-grid/components/CustomEmptyOverlayGrid.tsx.preview b/docs/data/data-grid/overlays/NoRowsOverlayCustom.tsx.preview
similarity index 100%
rename from docs/data/data-grid/components/CustomEmptyOverlayGrid.tsx.preview
rename to docs/data/data-grid/overlays/NoRowsOverlayCustom.tsx.preview
diff --git a/docs/data/data-grid/overlays/overlays.md b/docs/data/data-grid/overlays/overlays.md
new file mode 100644
index 000000000000..c99392620d52
--- /dev/null
+++ b/docs/data/data-grid/overlays/overlays.md
@@ -0,0 +1,45 @@
+# Data Grid - Overlays
+
+The various data grid overlays.
+
+## Loading overlay
+
+To display a loading overlay and signify that the data grid is in a loading state, set the `loading` prop to `true`.
+
+{{"demo": "LoadingOverlay.js", "bg": "inline"}}
+
+### Custom component
+
+If you want to customize the no rows overlay, a component can be passed to the `loadingOverlay` slot. In the following demo, a [LinearProgress](/material-ui/react-progress/#linear) component is rendered in place of the default circular loading spinner.
+
+{{"demo": "LoadingOverlayCustom.js", "bg": "inline"}}
+
+## No rows overlay
+
+The no rows overlay is displayed when the data grid has no rows.
+
+{{"demo": "NoRowsOverlay.js", "bg": "inline"}}
+
+### Custom component
+
+If you want to customize the no rows overlay, a component can be passed to the `noRowsOverlay` slot and rendered in place. In the following demo, an illustration is added on top of the default "No rows" message.
+
+{{"demo": "NoRowsOverlayCustom.js", "bg": "inline"}}
+
+## No results overlay
+
+The no results overlay is displayed when the data grid has no results after filtering.
+
+{{"demo": "NoResultsOverlay.js", "bg": "inline"}}
+
+### Custom component
+
+If you want to customize the no results overlay, a component can be passed to the `noResults` slot and rendered in place. In the following demo, an illustration is added on top of the default "No results found" message.
+
+{{"demo": "NoResultsOverlayCustom.js", "bg": "inline"}}
+
+## API
+
+- [DataGrid](/x/api/data-grid/data-grid/)
+- [DataGridPro](/x/api/data-grid/data-grid-pro/)
+- [DataGridPremium](/x/api/data-grid/data-grid-premium/)
diff --git a/docs/data/date-pickers/adapters-locale/adapters-locale.md b/docs/data/date-pickers/adapters-locale/adapters-locale.md
index 6ab1f2944f39..26b4113d0f7b 100644
--- a/docs/data/date-pickers/adapters-locale/adapters-locale.md
+++ b/docs/data/date-pickers/adapters-locale/adapters-locale.md
@@ -79,6 +79,14 @@ import { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon';
{{"demo": "LocalizationLuxon.js"}}
+:::warning
+`AdapterLuxon` does not support `Settings.throwOnInvalid = true` [setting](https://moment.github.io/luxon/api-docs/index.html#settingsthrowoninvalid).
+
+👍 Upvote [issue #11853](https://github.com/mui/mui-x/issues/11853) if you need support for it.
+
+Don't hesitate to leave feedback on how you would like the data entry to behave.
+:::
+
### With `moment`
For `moment`, import the locale and then pass its name to `LocalizationProvider`:
diff --git a/docs/data/pages.ts b/docs/data/pages.ts
index cf3462208a94..ea9eb355a871 100644
--- a/docs/data/pages.ts
+++ b/docs/data/pages.ts
@@ -87,6 +87,7 @@ const pages: MuiPage[] = [
},
{ pathname: '/x/react-data-grid/export' },
{ pathname: '/x/react-data-grid/clipboard', title: 'Copy and paste', newFeature: true },
+ { pathname: '/x/react-data-grid/overlays', title: 'Overlays' },
{ pathname: '/x/react-data-grid/components', title: 'Custom subcomponents' },
{
pathname: '/x/react-data-grid/style-group',
diff --git a/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.tsx.preview b/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.tsx.preview
deleted file mode 100644
index 660542f7bf2c..000000000000
--- a/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.tsx.preview
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/data/tree-view/rich-tree-view/customization/customization.md b/docs/data/tree-view/rich-tree-view/customization/customization.md
index 8f1552b6f0df..4bedda31d764 100644
--- a/docs/data/tree-view/rich-tree-view/customization/customization.md
+++ b/docs/data/tree-view/rich-tree-view/customization/customization.md
@@ -64,12 +64,6 @@ The demo below shows how to add an avatar and custom typography elements.
## Common examples
-### Limit expansion to icon container
-
-The demo below shows how to trigger the expansion interaction just by clicking on the icon container instead of the whole Tree Item surface.
-
-{{"demo": "IconExpansionTreeView.js", "defaultCodeOpen": false}}
-
### File explorer
:::warning
diff --git a/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.js b/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.js
similarity index 55%
rename from docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.js
rename to docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.js
index fa2935769a63..db2d29f0fcfa 100644
--- a/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.js
+++ b/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.js
@@ -1,9 +1,6 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import { RichTreeView } from '@mui/x-tree-view/RichTreeView';
-import { useTreeItem2Utils } from '@mui/x-tree-view/hooks';
-
-import { TreeItem2 } from '@mui/x-tree-view/TreeItem2';
const MUI_X_PRODUCTS = [
{
@@ -35,37 +32,10 @@ const MUI_X_PRODUCTS = [
},
];
-const CustomTreeItem = React.forwardRef(function MyTreeItem(props, ref) {
- const { interactions } = useTreeItem2Utils({
- itemId: props.itemId,
- children: props.children,
- });
-
- const handleContentClick = (event) => {
- event.defaultMuiPrevented = true;
- interactions.handleSelection(event);
- };
-
- const handleIconContainerClick = (event) => {
- interactions.handleExpansion(event);
- };
-
- return (
-
- );
-});
-
export default function IconExpansionTreeView() {
return (
-
+
);
}
diff --git a/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.tsx b/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.tsx
similarity index 51%
rename from docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.tsx
rename to docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.tsx
index 0d7345a1047d..94b9816b9a89 100644
--- a/docs/data/tree-view/rich-tree-view/customization/IconExpansionTreeView.tsx
+++ b/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.tsx
@@ -1,9 +1,6 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import { RichTreeView } from '@mui/x-tree-view/RichTreeView';
-import { useTreeItem2Utils } from '@mui/x-tree-view/hooks';
-import { UseTreeItem2ContentSlotOwnProps } from '@mui/x-tree-view/useTreeItem2';
-import { TreeItem2, TreeItem2Props } from '@mui/x-tree-view/TreeItem2';
import { TreeViewBaseItem } from '@mui/x-tree-view/models';
const MUI_X_PRODUCTS: TreeViewBaseItem[] = [
@@ -36,40 +33,10 @@ const MUI_X_PRODUCTS: TreeViewBaseItem[] = [
},
];
-const CustomTreeItem = React.forwardRef(function MyTreeItem(
- props: TreeItem2Props,
- ref: React.Ref,
-) {
- const { interactions } = useTreeItem2Utils({
- itemId: props.itemId,
- children: props.children,
- });
-
- const handleContentClick: UseTreeItem2ContentSlotOwnProps['onClick'] = (event) => {
- event.defaultMuiPrevented = true;
- interactions.handleSelection(event);
- };
-
- const handleIconContainerClick = (event: React.MouseEvent) => {
- interactions.handleExpansion(event);
- };
-
- return (
-
- );
-});
-
export default function IconExpansionTreeView() {
return (
-
+
);
}
diff --git a/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.tsx.preview b/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.tsx.preview
new file mode 100644
index 000000000000..49f8c4e18162
--- /dev/null
+++ b/docs/data/tree-view/rich-tree-view/expansion/IconExpansionTreeView.tsx.preview
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/data/tree-view/rich-tree-view/expansion/expansion.md b/docs/data/tree-view/rich-tree-view/expansion/expansion.md
index e36fe65d20c1..47897f4c9170 100644
--- a/docs/data/tree-view/rich-tree-view/expansion/expansion.md
+++ b/docs/data/tree-view/rich-tree-view/expansion/expansion.md
@@ -33,6 +33,12 @@ Use the `onItemExpansionToggle` prop if you want to react to an item expansion c
{{"demo": "TrackItemExpansionToggle.js"}}
+## Limit expansion to icon container
+
+You can use the `expansionTrigger` prop to decide if the expansion interaction should be triggered by clicking on the icon container instead of the whole Tree Item content.
+
+{{"demo": "IconExpansionTreeView.js"}}
+
## Imperative API
:::success
diff --git a/docs/data/tree-view/simple-tree-view/customization/IconExpansionTreeView.js b/docs/data/tree-view/simple-tree-view/customization/IconExpansionTreeView.js
deleted file mode 100644
index 36e9e200da11..000000000000
--- a/docs/data/tree-view/simple-tree-view/customization/IconExpansionTreeView.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import * as React from 'react';
-import Box from '@mui/material/Box';
-import { SimpleTreeView } from '@mui/x-tree-view/SimpleTreeView';
-import { useTreeItem2Utils } from '@mui/x-tree-view/hooks';
-
-import { TreeItem2 } from '@mui/x-tree-view/TreeItem2';
-
-const CustomTreeItem = React.forwardRef(function MyTreeItem(props, ref) {
- const { interactions } = useTreeItem2Utils({
- itemId: props.itemId,
- children: props.children,
- });
-
- const handleContentClick = (event) => {
- event.defaultMuiPrevented = true;
- interactions.handleSelection(event);
- };
-
- const handleIconContainerClick = (event) => {
- interactions.handleExpansion(event);
- };
-
- return (
-
- );
-});
-
-export default function IconExpansionTreeView() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/docs/data/tree-view/simple-tree-view/customization/IconExpansionTreeView.tsx b/docs/data/tree-view/simple-tree-view/customization/IconExpansionTreeView.tsx
deleted file mode 100644
index f0a5de292e60..000000000000
--- a/docs/data/tree-view/simple-tree-view/customization/IconExpansionTreeView.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import * as React from 'react';
-import Box from '@mui/material/Box';
-import { SimpleTreeView } from '@mui/x-tree-view/SimpleTreeView';
-import { useTreeItem2Utils } from '@mui/x-tree-view/hooks';
-import { UseTreeItem2ContentSlotOwnProps } from '@mui/x-tree-view/useTreeItem2';
-import { TreeItem2, TreeItem2Props } from '@mui/x-tree-view/TreeItem2';
-
-const CustomTreeItem = React.forwardRef(function MyTreeItem(
- props: TreeItem2Props,
- ref: React.Ref,
-) {
- const { interactions } = useTreeItem2Utils({
- itemId: props.itemId,
- children: props.children,
- });
-
- const handleContentClick: UseTreeItem2ContentSlotOwnProps['onClick'] = (event) => {
- event.defaultMuiPrevented = true;
- interactions.handleSelection(event);
- };
-
- const handleIconContainerClick = (event: React.MouseEvent) => {
- interactions.handleExpansion(event);
- };
-
- return (
-
- );
-});
-
-export default function IconExpansionTreeView() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/docs/data/tree-view/simple-tree-view/customization/customization.md b/docs/data/tree-view/simple-tree-view/customization/customization.md
index e5e70b9e4aa8..7cf009836436 100644
--- a/docs/data/tree-view/simple-tree-view/customization/customization.md
+++ b/docs/data/tree-view/simple-tree-view/customization/customization.md
@@ -70,19 +70,6 @@ Target the `treeItemClasses.groupTransition` class to add connection borders bet
{{"demo": "BorderedTreeView.js", "defaultCodeOpen": false}}
-### Limit expansion to icon container
-
-:::warning
-This example is built using the new `TreeItem2` component
-which adds several slots to modify the content of the Tree Item or change its behavior.
-
-You can learn more about this new component in the [Overview page](/x/react-tree-view/#tree-item-components).
-:::
-
-The demo below shows how to trigger the expansion interaction just by clicking on the icon container instead of the whole Tree Item surface.
-
-{{"demo": "IconExpansionTreeView.js", "defaultCodeOpen": false}}
-
### Gmail clone
:::warning
diff --git a/docs/data/tree-view/simple-tree-view/expansion/IconExpansionTreeView.js b/docs/data/tree-view/simple-tree-view/expansion/IconExpansionTreeView.js
new file mode 100644
index 000000000000..3a046031d357
--- /dev/null
+++ b/docs/data/tree-view/simple-tree-view/expansion/IconExpansionTreeView.js
@@ -0,0 +1,28 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { SimpleTreeView } from '@mui/x-tree-view/SimpleTreeView';
+import { TreeItem } from '@mui/x-tree-view/TreeItem';
+
+export default function IconExpansionTreeView() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/data/tree-view/simple-tree-view/expansion/IconExpansionTreeView.tsx b/docs/data/tree-view/simple-tree-view/expansion/IconExpansionTreeView.tsx
new file mode 100644
index 000000000000..3a046031d357
--- /dev/null
+++ b/docs/data/tree-view/simple-tree-view/expansion/IconExpansionTreeView.tsx
@@ -0,0 +1,28 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import { SimpleTreeView } from '@mui/x-tree-view/SimpleTreeView';
+import { TreeItem } from '@mui/x-tree-view/TreeItem';
+
+export default function IconExpansionTreeView() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/data/tree-view/simple-tree-view/expansion/expansion.md b/docs/data/tree-view/simple-tree-view/expansion/expansion.md
index a6b0a3f4e46a..a3648bd3697f 100644
--- a/docs/data/tree-view/simple-tree-view/expansion/expansion.md
+++ b/docs/data/tree-view/simple-tree-view/expansion/expansion.md
@@ -32,6 +32,12 @@ Use the `onItemExpansionToggle` prop to trigger an action upon an item being exp
{{"demo": "TrackItemExpansionToggle.js"}}
+## Limit expansion to icon container
+
+You can use the `expansionTrigger` prop to decide if the expansion interaction should be triggered by clicking on the icon container instead of the whole Tree Item content.
+
+{{"demo": "IconExpansionTreeView.js"}}
+
## Imperative API
:::success
diff --git a/docs/package.json b/docs/package.json
index 253758eebcdc..8fd77423b9ad 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -65,14 +65,14 @@
"doctrine": "^3.0.0",
"exceljs": "^4.4.0",
"fg-loadcss": "^3.1.0",
- "jscodeshift": "0.13.1",
+ "jscodeshift": "0.15.2",
"lodash": "^4.17.21",
"luxon": "^3.4.4",
"lz-string": "^1.5.0",
"markdown-to-jsx": "^7.4.7",
"moment": "^2.30.1",
"moment-hijri": "^2.1.2",
- "moment-jalaali": "^0.10.0",
+ "moment-jalaali": "^0.10.1",
"moment-timezone": "^0.5.45",
"next": "^14.2.4",
"nprogress": "^0.2.0",
diff --git a/docs/pages/x/api/charts/axis-config.json b/docs/pages/x/api/charts/axis-config.json
index 8f826848b286..a3b887bf9d81 100644
--- a/docs/pages/x/api/charts/axis-config.json
+++ b/docs/pages/x/api/charts/axis-config.json
@@ -3,8 +3,10 @@
"imports": ["import { AxisConfig } from '@mui/x-charts'"],
"properties": {
"id": { "type": { "description": "AxisId" }, "required": true },
- "scaleType": { "type": { "description": "'linear'" }, "required": true },
- "colorMap": { "type": { "description": "ContinuousColorConfig | PiecewiseColorConfig" } },
+ "scaleType": { "type": { "description": "'band'" }, "required": true },
+ "colorMap": {
+ "type": { "description": "OrdinalColorConfig | ContinuousColorConfig | PiecewiseColorConfig" }
+ },
"data": { "type": { "description": "V[]" } },
"dataKey": { "type": { "description": "string" } },
"hideTooltip": { "type": { "description": "boolean" } },
diff --git a/docs/pages/x/api/tree-view/rich-tree-view.json b/docs/pages/x/api/tree-view/rich-tree-view.json
index 7da4e28d56f0..302a091490e7 100644
--- a/docs/pages/x/api/tree-view/rich-tree-view.json
+++ b/docs/pages/x/api/tree-view/rich-tree-view.json
@@ -16,6 +16,10 @@
"disabledItemsFocusable": { "type": { "name": "bool" }, "default": "false" },
"disableSelection": { "type": { "name": "bool" }, "default": "false" },
"expandedItems": { "type": { "name": "arrayOf", "description": "Array<string>" } },
+ "expansionTrigger": {
+ "type": { "name": "enum", "description": "'content'
| 'iconContainer'" },
+ "default": "'content'"
+ },
"experimentalFeatures": {
"type": { "name": "shape", "description": "{ indentationAtItemLevel?: bool }" }
},
diff --git a/docs/pages/x/api/tree-view/simple-tree-view.json b/docs/pages/x/api/tree-view/simple-tree-view.json
index 1c52f9e03646..24df95176eb5 100644
--- a/docs/pages/x/api/tree-view/simple-tree-view.json
+++ b/docs/pages/x/api/tree-view/simple-tree-view.json
@@ -17,6 +17,10 @@
"disabledItemsFocusable": { "type": { "name": "bool" }, "default": "false" },
"disableSelection": { "type": { "name": "bool" }, "default": "false" },
"expandedItems": { "type": { "name": "arrayOf", "description": "Array<string>" } },
+ "expansionTrigger": {
+ "type": { "name": "enum", "description": "'content'
| 'iconContainer'" },
+ "default": "'content'"
+ },
"experimentalFeatures": {
"type": { "name": "shape", "description": "{ indentationAtItemLevel?: bool }" }
},
diff --git a/docs/pages/x/api/tree-view/tree-view.json b/docs/pages/x/api/tree-view/tree-view.json
index a528b9927844..b2eead268281 100644
--- a/docs/pages/x/api/tree-view/tree-view.json
+++ b/docs/pages/x/api/tree-view/tree-view.json
@@ -17,6 +17,10 @@
"disabledItemsFocusable": { "type": { "name": "bool" }, "default": "false" },
"disableSelection": { "type": { "name": "bool" }, "default": "false" },
"expandedItems": { "type": { "name": "arrayOf", "description": "Array<string>" } },
+ "expansionTrigger": {
+ "type": { "name": "enum", "description": "'content'
| 'iconContainer'" },
+ "default": "'content'"
+ },
"experimentalFeatures": {
"type": { "name": "shape", "description": "{ indentationAtItemLevel?: bool }" }
},
diff --git a/docs/pages/x/react-data-grid/overlays.js b/docs/pages/x/react-data-grid/overlays.js
new file mode 100644
index 000000000000..eecf19cc11c3
--- /dev/null
+++ b/docs/pages/x/react-data-grid/overlays.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
+import * as pageProps from 'docsx/data/data-grid/overlays/overlays.md?muiMarkdown';
+
+export default function Page() {
+ return ;
+}
diff --git a/docs/translations/api-docs/tree-view/rich-tree-view/rich-tree-view.json b/docs/translations/api-docs/tree-view/rich-tree-view/rich-tree-view.json
index b866f4dcc07a..42345574e68d 100644
--- a/docs/translations/api-docs/tree-view/rich-tree-view/rich-tree-view.json
+++ b/docs/translations/api-docs/tree-view/rich-tree-view/rich-tree-view.json
@@ -21,6 +21,9 @@
"expandedItems": {
"description": "Expanded item ids. Used when the item's expansion is controlled."
},
+ "expansionTrigger": {
+ "description": "The slot that triggers the item's expansion when clicked."
+ },
"experimentalFeatures": {
"description": "Unstable features, breaking changes might be introduced. For each feature, if the flag is not explicitly set to true
, the feature will be fully disabled and any property / method call will not have any effect."
},
diff --git a/docs/translations/api-docs/tree-view/simple-tree-view/simple-tree-view.json b/docs/translations/api-docs/tree-view/simple-tree-view/simple-tree-view.json
index a12a98351778..8d0b15e73d6a 100644
--- a/docs/translations/api-docs/tree-view/simple-tree-view/simple-tree-view.json
+++ b/docs/translations/api-docs/tree-view/simple-tree-view/simple-tree-view.json
@@ -22,6 +22,9 @@
"expandedItems": {
"description": "Expanded item ids. Used when the item's expansion is controlled."
},
+ "expansionTrigger": {
+ "description": "The slot that triggers the item's expansion when clicked."
+ },
"experimentalFeatures": {
"description": "Unstable features, breaking changes might be introduced. For each feature, if the flag is not explicitly set to true
, the feature will be fully disabled and any property / method call will not have any effect."
},
diff --git a/docs/translations/api-docs/tree-view/tree-view/tree-view.json b/docs/translations/api-docs/tree-view/tree-view/tree-view.json
index c29df2121733..f61dba71a60a 100644
--- a/docs/translations/api-docs/tree-view/tree-view/tree-view.json
+++ b/docs/translations/api-docs/tree-view/tree-view/tree-view.json
@@ -22,6 +22,9 @@
"expandedItems": {
"description": "Expanded item ids. Used when the item's expansion is controlled."
},
+ "expansionTrigger": {
+ "description": "The slot that triggers the item's expansion when clicked."
+ },
"experimentalFeatures": {
"description": "Unstable features, breaking changes might be introduced. For each feature, if the flag is not explicitly set to true
, the feature will be fully disabled and any property / method call will not have any effect."
},
diff --git a/package.json b/package.json
index 284c07a585a6..4d22395d3ea5 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
"clean:node_modules": "rimraf --glob \"**/node_modules\""
},
"devDependencies": {
- "@argos-ci/core": "^2.2.0",
+ "@argos-ci/core": "^2.3.0",
"@babel/cli": "^7.24.7",
"@babel/core": "^7.24.7",
"@babel/node": "^7.24.7",
@@ -93,8 +93,8 @@
"@mui/monorepo": "github:mui/material-ui#22c5206a9e8191b2f81131d6978a0958e55b7032",
"@mui/utils": "^5.15.20",
"@next/eslint-plugin-next": "14.2.4",
- "@octokit/plugin-retry": "^6.0.1",
- "@octokit/rest": "^20.1.1",
+ "@octokit/plugin-retry": "^7.1.1",
+ "@octokit/rest": "^21.0.0",
"@playwright/test": "^1.44.1",
"@types/babel__traverse": "^7.20.6",
"@types/babel__core": "^7.20.5",
@@ -104,8 +104,8 @@
"@types/fs-extra": "^11.0.4",
"@types/karma": "^6.3.8",
"@types/lodash": "^4.17.5",
- "@types/mocha": "^10.0.6",
- "@types/node": "^18.19.34",
+ "@types/mocha": "^10.0.7",
+ "@types/node": "^18.19.39",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@types/react-test-renderer": "^18.3.0",
@@ -130,7 +130,7 @@
"concurrently": "^8.2.2",
"cpy-cli": "^5.0.0",
"cross-env": "^7.0.3",
- "danger": "^12.3.1",
+ "danger": "^12.3.3",
"date-fns-jalali-v3": "npm:date-fns-jalali@3.6.0-0",
"date-fns-v3": "npm:date-fns@3.6.0",
"enzyme": "^3.11.0",
@@ -141,12 +141,12 @@
"eslint-import-resolver-webpack": "^0.13.8",
"eslint-plugin-filenames": "^1.3.2",
"eslint-plugin-import": "^2.29.1",
- "eslint-plugin-jsdoc": "^48.2.12",
- "eslint-plugin-jsx-a11y": "^6.8.0",
+ "eslint-plugin-jsdoc": "^48.4.0",
+ "eslint-plugin-jsx-a11y": "^6.9.0",
"eslint-plugin-material-ui": "workspace:^",
"eslint-plugin-mocha": "^10.4.3",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-react": "^7.34.2",
+ "eslint-plugin-react": "^7.34.3",
"eslint-plugin-react-compiler": "0.0.0-experimental-51a85ea-20240601",
"eslint-plugin-react-hooks": "^4.6.2",
"fast-glob": "^3.3.2",
@@ -168,7 +168,7 @@
"lerna": "^8.1.3",
"lodash": "^4.17.21",
"markdownlint-cli2": "^0.13.0",
- "mocha": "^10.4.0",
+ "mocha": "^10.5.1",
"moment": "^2.30.1",
"moment-timezone": "^0.5.45",
"nyc": "^17.0.0",
@@ -184,8 +184,8 @@
"stream-browserify": "^3.0.0",
"string-replace-loader": "^3.1.0",
"terser-webpack-plugin": "^5.3.10",
- "tsx": "^4.15.5",
- "typescript": "^5.4.5",
+ "tsx": "^4.15.7",
+ "typescript": "^5.5.2",
"unist-util-visit": "^2.0.3",
"util": "^0.12.5",
"webpack": "^5.92.1",
@@ -195,7 +195,7 @@
},
"resolutions": {
"react-is": "^18.3.1",
- "@types/node": "^18.19.34"
+ "@types/node": "^18.19.39"
},
"packageManager": "pnpm@9.4.0",
"engines": {
diff --git a/packages/x-charts/src/ChartsAxisHighlight/ChartsAxisHighlight.tsx b/packages/x-charts/src/ChartsAxisHighlight/ChartsAxisHighlight.tsx
index 6485c9c3f4d6..ba52a0470815 100644
--- a/packages/x-charts/src/ChartsAxisHighlight/ChartsAxisHighlight.tsx
+++ b/packages/x-charts/src/ChartsAxisHighlight/ChartsAxisHighlight.tsx
@@ -80,11 +80,34 @@ function ChartsAxisHighlight(props: ChartsAxisHighlightProps) {
const getXPosition = getValueToPositionMapper(xScale);
const getYPosition = getValueToPositionMapper(yScale);
+
+ const axisX = axis.x;
+ const axisY = axis.y;
+
+ const isBandScaleX = xAxisHighlight === 'band' && axisX !== null && isBandScale(xScale);
+ const isBandScaleY = yAxisHighlight === 'band' && axisY !== null && isBandScale(yScale);
+
+ if (process.env.NODE_ENV !== 'production') {
+ const isXError = isBandScaleX && xScale(axisX.value) === undefined;
+ const isYError = isBandScaleY && yScale(axisY.value) === undefined;
+
+ if (isXError || isYError) {
+ console.error(
+ [
+ `MUI X Charts: The position value provided for the axis is not valid for the current scale.`,
+ `This probably means something is wrong with the data passed to the chart.`,
+ `The ChartsAxisHighlight component will not be displayed.`,
+ ].join('\n'),
+ );
+ }
+ }
+
return (
- {xAxisHighlight === 'band' && axis.x !== null && isBandScale(xScale) && (
+ {isBandScaleX && xScale(axisX.value) !== undefined && (
)}
- {yAxisHighlight === 'band' && axis.y !== null && isBandScale(yScale) && (
+ {isBandScaleY && yScale(axisY.value) === undefined && (
data?.[0] instanceof Date;
+
+function createDateFormatter(
+ axis: AxisConfig<'band' | 'point', any, ChartsAxisProps>,
+ range: number[],
+): AxisConfig<'band' | 'point', any, ChartsAxisProps>['valueFormatter'] {
+ const timeScale = scaleTime(axis.data!, range);
+
+ return (v, { location }) =>
+ location === 'tick' ? timeScale.tickFormat(axis.tickNumber)(v) : `${v.toLocaleString()}`;
+}
+
const DEFAULT_CATEGORY_GAP_RATIO = 0.2;
const DEFAULT_BAR_GAP_RATIO = 0.1;
@@ -99,6 +111,11 @@ export function computeValue(
? getOrdinalColorScale({ values: axis.data, ...axis.colorMap })
: getColorScale(axis.colorMap)),
};
+
+ if (isDateData(axis.data)) {
+ const dateFormatter = createDateFormatter(axis, scaleRange);
+ completeAxis[axis.id].valueFormatter = axis.valueFormatter ?? dateFormatter;
+ }
}
if (isPointScaleConfig(axis)) {
const scaleRange = axisName === 'x' ? range : [...range].reverse();
@@ -113,6 +130,11 @@ export function computeValue(
? getOrdinalColorScale({ values: axis.data, ...axis.colorMap })
: getColorScale(axis.colorMap)),
};
+
+ if (isDateData(axis.data)) {
+ const dateFormatter = createDateFormatter(axis, scaleRange);
+ completeAxis[axis.id].valueFormatter = axis.valueFormatter ?? dateFormatter;
+ }
}
if (axis.scaleType === 'band' || axis.scaleType === 'point') {
// Could be merged with the two previous "if conditions" but then TS does not get that `axis.scaleType` can't be `band` or `point`.
diff --git a/packages/x-charts/src/hooks/useAxisEvents.ts b/packages/x-charts/src/hooks/useAxisEvents.ts
index 855ec5985c1a..62ef532be2b7 100644
--- a/packages/x-charts/src/hooks/useAxisEvents.ts
+++ b/packages/x-charts/src/hooks/useAxisEvents.ts
@@ -3,7 +3,7 @@ import { InteractionContext } from '../context/InteractionProvider';
import { useCartesianContext } from '../context/CartesianProvider';
import { isBandScale } from '../internals/isBandScale';
import { AxisDefaultized } from '../models/axis';
-import { getSVGPoint } from '../internals/utils';
+import { getSVGPoint } from '../internals/getSVGPoint';
import { useSvgRef } from './useSvgRef';
import { useDrawingArea } from './useDrawingArea';
@@ -31,10 +31,7 @@ export const useAxisEvents = (disableAxisListener: boolean) => {
return () => {};
}
- const getUpdate = (axisConfig: AxisDefaultized, mouseValue: number) => {
- if (usedXAxis === null) {
- return null;
- }
+ function getNewAxisState(axisConfig: AxisDefaultized, mouseValue: number) {
const { scale, data: axisData, reverse } = axisConfig;
if (!isBandScale(scale)) {
@@ -93,7 +90,7 @@ export const useAxisEvents = (disableAxisListener: boolean) => {
index: dataIndex,
value: axisData![dataIndex],
};
- };
+ }
const handleOut = () => {
mousePosition.current = {
@@ -118,8 +115,8 @@ export const useAxisEvents = (disableAxisListener: boolean) => {
dispatch({ type: 'exitChart' });
return;
}
- const newStateX = getUpdate(xAxis[usedXAxis], svgPoint.x);
- const newStateY = getUpdate(yAxis[usedYAxis], svgPoint.y);
+ const newStateX = getNewAxisState(xAxis[usedXAxis], svgPoint.x);
+ const newStateY = getNewAxisState(yAxis[usedYAxis], svgPoint.y);
dispatch({ type: 'updateAxis', data: { x: newStateX, y: newStateY } });
};
diff --git a/packages/x-charts/src/hooks/useScale.ts b/packages/x-charts/src/hooks/useScale.ts
index 3af08f437bbf..793c832d3bcb 100644
--- a/packages/x-charts/src/hooks/useScale.ts
+++ b/packages/x-charts/src/hooks/useScale.ts
@@ -10,7 +10,7 @@ import { AxisScaleConfig, D3Scale, ScaleName } from '../models/axis';
*/
export function getValueToPositionMapper(scale: D3Scale) {
if (isBandScale(scale)) {
- return (value: any) => scale(value)! + scale.bandwidth() / 2;
+ return (value: any) => (scale(value) ?? 0) + scale.bandwidth() / 2;
}
return (value: any) => scale(value) as number;
}
diff --git a/packages/x-charts/src/hooks/useTicks.ts b/packages/x-charts/src/hooks/useTicks.ts
index 8049ebe780d1..ecc42b5727fe 100644
--- a/packages/x-charts/src/hooks/useTicks.ts
+++ b/packages/x-charts/src/hooks/useTicks.ts
@@ -101,8 +101,12 @@ export function useTicks(
if (scale.bandwidth() > 0) {
// scale type = 'band'
+ const filteredDomain =
+ (typeof tickInterval === 'function' && domain.filter(tickInterval)) ||
+ (typeof tickInterval === 'object' && tickInterval) ||
+ domain;
return [
- ...domain.map((value) => ({
+ ...filteredDomain.map((value) => ({
value,
formattedValue: valueFormatter?.(value, { location: 'tick' }) ?? `${value}`,
offset:
diff --git a/packages/x-charts/src/internals/getSVGPoint.ts b/packages/x-charts/src/internals/getSVGPoint.ts
new file mode 100644
index 000000000000..379752cdb307
--- /dev/null
+++ b/packages/x-charts/src/internals/getSVGPoint.ts
@@ -0,0 +1,11 @@
+/**
+ * Transform mouse event position to coordinates inside the SVG.
+ * @param svg The SVG element
+ * @param event The mouseEvent to transform
+ */
+export function getSVGPoint(svg: SVGSVGElement, event: Pick) {
+ const pt = svg.createSVGPoint();
+ pt.x = event.clientX;
+ pt.y = event.clientY;
+ return pt.matrixTransform(svg.getScreenCTM()!.inverse());
+}
diff --git a/packages/x-charts/src/internals/index.ts b/packages/x-charts/src/internals/index.ts
index ba3ecc5de8a8..1699e2b8d66e 100644
--- a/packages/x-charts/src/internals/index.ts
+++ b/packages/x-charts/src/internals/index.ts
@@ -7,6 +7,7 @@ export * from '../ResponsiveChartContainer/ResizableContainer';
// hooks
export { useReducedMotion } from '../hooks/useReducedMotion';
export { useSeries } from '../hooks/useSeries';
+export { useDrawingArea } from '../hooks/useDrawingArea';
export { useChartContainerHooks } from '../ChartContainer/useChartContainerHooks';
export { useScatterChartProps } from '../ScatterChart/useScatterChartProps';
export { useLineChartProps } from '../LineChart/useLineChartProps';
@@ -15,6 +16,7 @@ export { useBarChartProps } from '../BarChart/useBarChartProps';
// utils
export * from './defaultizeValueFormatter';
export * from './configInit';
+export * from './getSVGPoint';
// contexts
diff --git a/packages/x-charts/src/internals/utils.ts b/packages/x-charts/src/internals/utils.ts
index 2896ea166b64..1517334d6e2a 100644
--- a/packages/x-charts/src/internals/utils.ts
+++ b/packages/x-charts/src/internals/utils.ts
@@ -9,18 +9,6 @@ export function getSymbol(shape: SymbolsTypes): number {
type Without = { [P in Exclude]?: never };
export type XOR = T | U extends object ? (Without & U) | (Without & T) : T | U;
-/**
- * Transform mouse event position to coordinates inside the SVG.
- * @param svg The SVG element
- * @param event The mouseEvent to transform
- */
-export function getSVGPoint(svg: SVGSVGElement, event: Pick) {
- const pt = svg.createSVGPoint();
- pt.x = event.clientX;
- pt.y = event.clientY;
- return pt.matrixTransform(svg.getScreenCTM()!.inverse());
-}
-
/**
* Helper that converts values and percentages into values.
* @param value The value provided by the developer. Can either be a number or a string with '%' or 'px'.
diff --git a/packages/x-charts/src/models/axis.ts b/packages/x-charts/src/models/axis.ts
index 2ca13a4836ff..651612e1ec52 100644
--- a/packages/x-charts/src/models/axis.ts
+++ b/packages/x-charts/src/models/axis.ts
@@ -156,7 +156,7 @@ export interface ChartsXAxisProps extends ChartsAxisProps {
position?: 'top' | 'bottom';
}
-export type ScaleName = 'linear' | 'band' | 'point' | 'log' | 'pow' | 'sqrt' | 'time' | 'utc';
+export type ScaleName = keyof AxisScaleConfig;
export type ContinuousScaleName = 'linear' | 'log' | 'pow' | 'sqrt' | 'time' | 'utc';
export interface AxisScaleConfig {
diff --git a/packages/x-codemod/package.json b/packages/x-codemod/package.json
index 2b97f82feb4e..e7168a6e62ff 100644
--- a/packages/x-codemod/package.json
+++ b/packages/x-codemod/package.json
@@ -35,12 +35,12 @@
"@babel/core": "^7.24.7",
"@babel/runtime": "^7.24.7",
"@babel/traverse": "^7.24.7",
- "jscodeshift": "0.13.1",
+ "jscodeshift": "0.15.2",
"jscodeshift-add-imports": "^1.0.10",
"yargs": "^17.7.2"
},
"devDependencies": {
- "@types/jscodeshift": "^0.11.5",
+ "@types/jscodeshift": "^0.11.11",
"dayjs": "^1.11.11",
"moment-timezone": "^0.5.45",
"rimraf": "^5.0.7"
diff --git a/packages/x-codemod/src/codemod.ts b/packages/x-codemod/src/codemod.ts
index 99580a0b38c9..1ecceba57d8e 100755
--- a/packages/x-codemod/src/codemod.ts
+++ b/packages/x-codemod/src/codemod.ts
@@ -72,7 +72,7 @@ Not all use cases are covered by codemods. In some scenarios, like props spreadi
For example, if a codemod tries to rename a prop, but this prop is hidden with the spread operator, it won't be transformed as expected.
-After running the codemods, make sure to test your application and that you don't have any console errors.
+After running the codemods, make sure to test your application and that you don't have any formatting or console errors.
`);
const jscodeshiftProcess = childProcess.spawnSync('node', args, { stdio: 'inherit' });
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-community-root-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-community-root-imports.spec.tsx
index d86c75b8498b..72f7d3f7c3f0 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-community-root-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-community-root-imports.spec.tsx
@@ -7,6 +7,7 @@ import {
GridFilterItemProps,
} from '@mui/x-data-grid';
+// prettier-ignore
function App({ column, hideMenu }: GridFilterItemProps) {
return (
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-premium-root-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-premium-root-imports.spec.tsx
index 373cef5160ff..711e1e82945d 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-premium-root-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-premium-root-imports.spec.tsx
@@ -9,6 +9,7 @@ import {
GridFilterItemProps,
} from '@mui/x-data-grid-premium';
+// prettier-ignore
function App({ column, hideMenu }: GridFilterItemProps) {
return (
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-pro-root-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-pro-root-imports.spec.tsx
index 6b342d1530e2..8edf7f57624e 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-pro-root-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/actual-pro-root-imports.spec.tsx
@@ -8,6 +8,7 @@ import {
GridFilterItemProps,
} from '@mui/x-data-grid-pro';
+// prettier-ignore
function App({ column, hideMenu }: GridFilterItemProps) {
return (
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-community-root-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-community-root-imports.spec.tsx
index 70823212a0dd..98144b1db844 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-community-root-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-community-root-imports.spec.tsx
@@ -7,13 +7,14 @@ import {
GridColumnMenuItemProps,
} from '@mui/x-data-grid';
+// prettier-ignore
function App({ column, hideMenu }: GridColumnMenuItemProps) {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-premium-root-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-premium-root-imports.spec.tsx
index 93e452123d61..bf7d1a63e435 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-premium-root-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-premium-root-imports.spec.tsx
@@ -9,15 +9,16 @@ import {
GridColumnMenuItemProps,
} from '@mui/x-data-grid-premium';
+// prettier-ignore
function App({ column, hideMenu }: GridColumnMenuItemProps) {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-pro-root-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-pro-root-imports.spec.tsx
index 4ca25b6153b1..6fee5b0a9cdd 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-pro-root-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/column-menu-components-rename/expected-pro-root-imports.spec.tsx
@@ -8,14 +8,15 @@ import {
GridColumnMenuItemProps,
} from '@mui/x-data-grid-pro';
+// prettier-ignore
function App({ column, hideMenu }: GridColumnMenuItemProps) {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/preset-safe/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/preset-safe/expected.spec.js
index 41477addc458..f9fae32f4404 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/preset-safe/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/preset-safe/expected.spec.js
@@ -9,7 +9,7 @@ function App({ column, hideMenu, apiRef, handleEvent }) {
event.defaultMuiPrevented = true;
};
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/remove-disableExtendRowFullWidth-prop/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/remove-disableExtendRowFullWidth-prop/expected.spec.js
index 21890a001622..808794c5a841 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/remove-disableExtendRowFullWidth-prop/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/remove-disableExtendRowFullWidth-prop/expected.spec.js
@@ -5,11 +5,11 @@ import { DataGridPremium } from '@mui/x-data-grid-premium';
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js
index b1e7d1fab199..4d325b05607f 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js
@@ -5,7 +5,7 @@ import { DataGridPremium } from '@mui/x-data-grid-premium';
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/rename-components-to-slots/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/rename-components-to-slots/expected.spec.js
index d0b73a667a41..352cda988bb7 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/rename-components-to-slots/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/rename-components-to-slots/expected.spec.js
@@ -5,7 +5,7 @@ import { Button, Checkbox, TextField } from '@mui/material';
export default function App() {
return (
- )
);
};
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/actual.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/actual.spec.tsx
index a814c59a1771..6ff73a803484 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/actual.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/actual.spec.tsx
@@ -11,6 +11,7 @@ const rows = [
{ id: 3, column: 'c', name: 'James', score: 300 },
];
+// prettier-ignore
function App() {
const [proFilterModel, setProFilterModel] = React.useState({
items: [
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/expected.spec.tsx b/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/expected.spec.tsx
index fa41bdc0b0dc..f3ec4e5f0d1d 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/expected.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/data-grid/rename-filter-item-props/expected.spec.tsx
@@ -11,6 +11,7 @@ const rows = [
{ id: 3, column: 'c', name: 'James', score: 300 },
];
+// prettier-ignore
function App() {
const [proFilterModel, setProFilterModel] = React.useState({
items: [
@@ -31,7 +32,7 @@ function App() {
],
});
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/rename-linkOperators-logicOperators/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/rename-linkOperators-logicOperators/expected.spec.js
index ac53997eca3b..591a632901f9 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/rename-linkOperators-logicOperators/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/rename-linkOperators-logicOperators/expected.spec.js
@@ -38,7 +38,7 @@ function App ({ apiRef, initialState }) {
const rowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(1);
const localeText = apiRef.current.getLocaleText('filterPanelLogicOperator');
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/replace-onCellFocusOut-prop/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/replace-onCellFocusOut-prop/expected.spec.js
index 7501bace84fc..6d5753ccf0bd 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/replace-onCellFocusOut-prop/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/replace-onCellFocusOut-prop/expected.spec.js
@@ -9,7 +9,7 @@ function App() {
event.defaultMuiPrevented = true;
};
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/data-grid/row-selection-props-rename/expected.spec.js b/packages/x-codemod/src/v6.0.0/data-grid/row-selection-props-rename/expected.spec.js
index 6c32968793cc..db5d4bd8092a 100644
--- a/packages/x-codemod/src/v6.0.0/data-grid/row-selection-props-rename/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/data-grid/row-selection-props-rename/expected.spec.js
@@ -5,7 +5,7 @@ import { DataGridPremium } from '@mui/x-data-grid-premium'
function App () {
return (
-
+ (
{}}
@@ -33,7 +33,7 @@ function App () {
showColumnVerticalBorder
columnHeaderHeight={56}
/>
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/pickers/preset-safe/expected.spec.js b/packages/x-codemod/src/v6.0.0/pickers/preset-safe/expected.spec.js
index ab2e84985496..fde3443109c5 100644
--- a/packages/x-codemod/src/v6.0.0/pickers/preset-safe/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/pickers/preset-safe/expected.spec.js
@@ -10,7 +10,7 @@ const theme = createTheme({});
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/actual-community-nested-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/actual-community-nested-imports.spec.tsx
index cedfe91decf7..005ae673eff3 100644
--- a/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/actual-community-nested-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/actual-community-nested-imports.spec.tsx
@@ -43,6 +43,7 @@ import {
getCalendarPickerSkeletonUtilityClass,
} from '@mui/x-date-pickers/CalendarPickerSkeleton';
+// prettier-ignore
function App() {
type DateProps = CalendarPickerProps;
type MonthProps = MonthPickerProps;
diff --git a/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/expected-community-nested-imports.spec.tsx b/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/expected-community-nested-imports.spec.tsx
index b3f1a2f1f3fe..c62416dda35e 100644
--- a/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/expected-community-nested-imports.spec.tsx
+++ b/packages/x-codemod/src/v6.0.0/pickers/view-components-rename/expected-community-nested-imports.spec.tsx
@@ -43,6 +43,7 @@ import {
getDayCalendarSkeletonUtilityClass,
} from '@mui/x-date-pickers/DayCalendarSkeleton';
+// prettier-ignore
function App() {
type DateProps = DateCalendarProps;
type MonthProps = MonthCalendarProps;
@@ -57,12 +58,12 @@ function App() {
getDayCalendarSkeletonUtilityClass('root');
return (
-
+ (
{}} />
{}} />
{}} />
{}} />
-
+ )
);
}
diff --git a/packages/x-codemod/src/v6.0.0/preset-safe/expected.spec.js b/packages/x-codemod/src/v6.0.0/preset-safe/expected.spec.js
index f7ac5f8c1d41..62bd3c968096 100644
--- a/packages/x-codemod/src/v6.0.0/preset-safe/expected.spec.js
+++ b/packages/x-codemod/src/v6.0.0/preset-safe/expected.spec.js
@@ -10,7 +10,7 @@ const theme = createTheme({});
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v7.0.0/data-grid/preset-safe/expected.spec.js b/packages/x-codemod/src/v7.0.0/data-grid/preset-safe/expected.spec.js
index 179570a7c8d6..46659a519cbe 100644
--- a/packages/x-codemod/src/v7.0.0/data-grid/preset-safe/expected.spec.js
+++ b/packages/x-codemod/src/v7.0.0/data-grid/preset-safe/expected.spec.js
@@ -5,7 +5,7 @@ import { Button, Checkbox, TextField } from '@mui/material';
export default function App() {
return (
- )
);
};
diff --git a/packages/x-codemod/src/v7.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js b/packages/x-codemod/src/v7.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js
index 85baca51c531..d1a1271fa523 100644
--- a/packages/x-codemod/src/v7.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js
+++ b/packages/x-codemod/src/v7.0.0/data-grid/remove-stabilized-experimentalFeatures/expected.spec.js
@@ -5,12 +5,12 @@ import { DataGridPremium } from '@mui/x-data-grid-premium';
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-codemod/src/v7.0.0/data-grid/rename-cell-selection-props/expected.spec.js b/packages/x-codemod/src/v7.0.0/data-grid/rename-cell-selection-props/expected.spec.js
index 98d4af7b179a..811da03b32f8 100644
--- a/packages/x-codemod/src/v7.0.0/data-grid/rename-cell-selection-props/expected.spec.js
+++ b/packages/x-codemod/src/v7.0.0/data-grid/rename-cell-selection-props/expected.spec.js
@@ -5,11 +5,11 @@ import { DataGridPremium } from '@mui/x-data-grid-premium'
function App () {
return (
- {}}
- />
+ />)
);
}
diff --git a/packages/x-codemod/src/v7.0.0/preset-safe/expected.spec.js b/packages/x-codemod/src/v7.0.0/preset-safe/expected.spec.js
index cb903bbf3063..42467180d72c 100644
--- a/packages/x-codemod/src/v7.0.0/preset-safe/expected.spec.js
+++ b/packages/x-codemod/src/v7.0.0/preset-safe/expected.spec.js
@@ -9,7 +9,7 @@ const theme = createTheme({});
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/x-data-grid/src/components/columnHeaders/GridColumnHeaderSortIcon.tsx b/packages/x-data-grid/src/components/columnHeaders/GridColumnHeaderSortIcon.tsx
index 88f7d4116155..c10c6225402f 100644
--- a/packages/x-data-grid/src/components/columnHeaders/GridColumnHeaderSortIcon.tsx
+++ b/packages/x-data-grid/src/components/columnHeaders/GridColumnHeaderSortIcon.tsx
@@ -80,7 +80,7 @@ function GridColumnHeaderSortIconRaw(props: GridColumnHeaderSortIconProps) {
return (
{index != null && (
-
+
{iconButton}
)}
diff --git a/packages/x-data-grid/src/hooks/features/dimensions/useGridDimensions.ts b/packages/x-data-grid/src/hooks/features/dimensions/useGridDimensions.ts
index 9727b8b19c03..6d423b29d931 100644
--- a/packages/x-data-grid/src/hooks/features/dimensions/useGridDimensions.ts
+++ b/packages/x-data-grid/src/hooks/features/dimensions/useGridDimensions.ts
@@ -86,6 +86,7 @@ export function useGridDimensions(
const logger = useGridLogger(apiRef, 'useResizeContainer');
const errorShown = React.useRef(false);
const rootDimensionsRef = React.useRef(EMPTY_SIZE);
+ const dimensionsState = useGridSelector(apiRef, gridDimensionsSelector);
const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);
@@ -302,26 +303,25 @@ export function useGridDimensions(
}, [apiRef, savedSize, updateDimensions]);
const root = apiRef.current.rootElementRef.current;
- const dimensions = apiRef.current.state.dimensions;
useEnhancedEffect(() => {
if (!root) {
return;
}
const set = (k: string, v: string) => root.style.setProperty(k, v);
- set('--DataGrid-width', `${dimensions.viewportOuterSize.width}px`);
- set('--DataGrid-hasScrollX', `${Number(dimensions.hasScrollX)}`);
- set('--DataGrid-hasScrollY', `${Number(dimensions.hasScrollY)}`);
- set('--DataGrid-scrollbarSize', `${dimensions.scrollbarSize}px`);
- set('--DataGrid-rowWidth', `${dimensions.rowWidth}px`);
- set('--DataGrid-columnsTotalWidth', `${dimensions.columnsTotalWidth}px`);
- set('--DataGrid-leftPinnedWidth', `${dimensions.leftPinnedWidth}px`);
- set('--DataGrid-rightPinnedWidth', `${dimensions.rightPinnedWidth}px`);
- set('--DataGrid-headerHeight', `${dimensions.headerHeight}px`);
- set('--DataGrid-headersTotalHeight', `${dimensions.headersTotalHeight}px`);
- set('--DataGrid-topContainerHeight', `${dimensions.topContainerHeight}px`);
- set('--DataGrid-bottomContainerHeight', `${dimensions.bottomContainerHeight}px`);
- set('--height', `${dimensions.rowHeight}px`);
- }, [root, dimensions]);
+ set('--DataGrid-width', `${dimensionsState.viewportOuterSize.width}px`);
+ set('--DataGrid-hasScrollX', `${Number(dimensionsState.hasScrollX)}`);
+ set('--DataGrid-hasScrollY', `${Number(dimensionsState.hasScrollY)}`);
+ set('--DataGrid-scrollbarSize', `${dimensionsState.scrollbarSize}px`);
+ set('--DataGrid-rowWidth', `${dimensionsState.rowWidth}px`);
+ set('--DataGrid-columnsTotalWidth', `${dimensionsState.columnsTotalWidth}px`);
+ set('--DataGrid-leftPinnedWidth', `${dimensionsState.leftPinnedWidth}px`);
+ set('--DataGrid-rightPinnedWidth', `${dimensionsState.rightPinnedWidth}px`);
+ set('--DataGrid-headerHeight', `${dimensionsState.headerHeight}px`);
+ set('--DataGrid-headersTotalHeight', `${dimensionsState.headersTotalHeight}px`);
+ set('--DataGrid-topContainerHeight', `${dimensionsState.topContainerHeight}px`);
+ set('--DataGrid-bottomContainerHeight', `${dimensionsState.bottomContainerHeight}px`);
+ set('--height', `${dimensionsState.rowHeight}px`);
+ }, [root, dimensionsState]);
const isFirstSizing = React.useRef(true);
const handleResize = React.useCallback>(
diff --git a/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx b/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx
index 5ba08b587cdc..3421133554eb 100644
--- a/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx
+++ b/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx
@@ -177,15 +177,18 @@ export const useGridPrintExport = (
// The height above does not include grid border width, so we need to exclude it
gridClone.style.boxSizing = 'content-box';
- // the footer is always being placed at the bottom of the page as if all rows are exported
- // so if getRowsToExport is being used to only export a subset of rows then we need to
- // adjust the footer position to be correctly placed at the bottom of the grid
- const gridFooterElement: HTMLElement | null = gridClone.querySelector(
- `.${gridClasses.footerContainer}`,
- );
- gridFooterElement!.style.position = 'absolute';
- gridFooterElement!.style.width = '100%';
- gridFooterElement!.style.top = `${computedTotalHeight - gridFooterElementHeight}px`;
+ if (!normalizeOptions.hideFooter) {
+ // the footer is always being placed at the bottom of the page as if all rows are exported
+ // so if getRowsToExport is being used to only export a subset of rows then we need to
+ // adjust the footer position to be correctly placed at the bottom of the grid
+ const gridFooterElement: HTMLElement | null = gridClone.querySelector(
+ `.${gridClasses.footerContainer}`,
+ )!;
+
+ gridFooterElement.style.position = 'absolute';
+ gridFooterElement.style.width = '100%';
+ gridFooterElement.style.top = `${computedTotalHeight - gridFooterElementHeight}px`;
+ }
// printDoc.body.appendChild(gridClone); should be enough but a clone isolation bug in Safari
// prevents us to do it
diff --git a/packages/x-date-pickers/package.json b/packages/x-date-pickers/package.json
index 8bf15b0ef25d..e7f61bb57de5 100644
--- a/packages/x-date-pickers/package.json
+++ b/packages/x-date-pickers/package.json
@@ -109,7 +109,7 @@
"luxon": "^3.4.4",
"moment": "^2.30.1",
"moment-hijri": "^2.1.2",
- "moment-jalaali": "^0.10.0",
+ "moment-jalaali": "^0.10.1",
"moment-timezone": "^0.5.45",
"rimraf": "^5.0.7"
},
diff --git a/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx b/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx
index c8df143a0131..c6f456437ae8 100644
--- a/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx
+++ b/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx
@@ -20,7 +20,7 @@ import { MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimens
import { formatMeridiem } from '../internals/utils/date-utils';
import { MakeOptional } from '../internals/models/helpers';
import { pickersToolbarTextClasses } from '../internals/components/pickersToolbarTextClasses';
-import { pickersToolbarClasses } from '../internals';
+import { pickersToolbarClasses } from '../internals/components/pickersToolbarClasses';
import { PickerValidDate } from '../models';
export interface ExportedDateTimePickerToolbarProps extends ExportedBaseToolbarProps {
diff --git a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx
index be5eb451549d..b9b40fd3d62f 100644
--- a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx
+++ b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx
@@ -28,19 +28,18 @@ import {
renderDigitalClockTimeView,
renderMultiSectionDigitalClockTimeView,
} from '../timeViewRenderers';
-import {
- DefaultizedProps,
- UsePickerViewsProps,
- VIEW_HEIGHT,
- isDatePickerView,
- isInternalTimeView,
-} from '../internals';
+
import {
multiSectionDigitalClockClasses,
multiSectionDigitalClockSectionClasses,
} from '../MultiSectionDigitalClock';
import { digitalClockClasses } from '../DigitalClock';
import { DesktopDateTimePickerLayout } from './DesktopDateTimePickerLayout';
+import { VIEW_HEIGHT } from '../internals/constants/dimensions';
+import { DefaultizedProps } from '../internals/models/helpers';
+import { UsePickerViewsProps } from '../internals/hooks/usePicker/usePickerViews';
+import { isInternalTimeView } from '../internals/utils/time-utils';
+import { isDatePickerView } from '../internals/utils/date-utils';
const rendererInterceptor = function rendererInterceptor<
TDate extends PickerValidDate,
diff --git a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx
index fca2a0f44898..85b531fef636 100644
--- a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx
+++ b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx
@@ -11,7 +11,7 @@ import {
usePickerLayout,
} from '../PickersLayout';
import { PickerValidDate } from '../models';
-import { DateOrTimeViewWithMeridiem } from '../internals';
+import { DateOrTimeViewWithMeridiem } from '../internals/models/common';
/**
* @ignore - internal component.
diff --git a/packages/x-date-pickers/src/MultiSectionDigitalClock/MultiSectionDigitalClock.tsx b/packages/x-date-pickers/src/MultiSectionDigitalClock/MultiSectionDigitalClock.tsx
index c4fcc16f1a83..1fe03869686f 100644
--- a/packages/x-date-pickers/src/MultiSectionDigitalClock/MultiSectionDigitalClock.tsx
+++ b/packages/x-date-pickers/src/MultiSectionDigitalClock/MultiSectionDigitalClock.tsx
@@ -396,7 +396,7 @@ export const MultiSectionDigitalClock = React.forwardRef(function MultiSectionDi
return views;
}
const digitViews = views.filter((v) => v !== 'meridiem');
- const result = digitViews.toReversed();
+ const result: TimeViewWithMeridiem[] = digitViews.toReversed();
if (views.includes('meridiem')) {
result.push('meridiem');
}
diff --git a/packages/x-license/src/Watermark/Watermark.tsx b/packages/x-license/src/Watermark/Watermark.tsx
index b970d5a12fc4..ff1eafba9298 100644
--- a/packages/x-license/src/Watermark/Watermark.tsx
+++ b/packages/x-license/src/Watermark/Watermark.tsx
@@ -1,6 +1,7 @@
import * as React from 'react';
-import { MuiCommercialPackageName, useLicenseVerifier } from '../useLicenseVerifier';
+import { useLicenseVerifier } from '../useLicenseVerifier';
import { LICENSE_STATUS, LicenseStatus } from '../utils/licenseStatus';
+import { MuiCommercialPackageName } from '../utils/commercialPackages';
function getLicenseErrorMessage(licenseStatus: LicenseStatus) {
switch (licenseStatus) {
diff --git a/packages/x-license/src/useLicenseVerifier/index.ts b/packages/x-license/src/useLicenseVerifier/index.ts
index e8e4693717d8..ef9135804f69 100644
--- a/packages/x-license/src/useLicenseVerifier/index.ts
+++ b/packages/x-license/src/useLicenseVerifier/index.ts
@@ -1,2 +1 @@
export { useLicenseVerifier } from './useLicenseVerifier';
-export type { MuiCommercialPackageName } from './useLicenseVerifier';
diff --git a/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts b/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts
index d85e4477ef61..72fb2bf48f10 100644
--- a/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts
+++ b/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts
@@ -11,15 +11,8 @@ import {
showNotAvailableInInitialProPlanError,
} from '../utils/licenseErrorMessageUtils';
import { LICENSE_STATUS, LicenseStatus } from '../utils/licenseStatus';
-import { extractAcceptedScopes, extractProductScope } from '../utils/licenseScope';
import MuiLicenseInfoContext from '../Unstable_LicenseInfoProvider/MuiLicenseInfoContext';
-
-export type MuiCommercialPackageName =
- | 'x-data-grid-pro'
- | 'x-data-grid-premium'
- | 'x-date-pickers-pro'
- | 'x-tree-view-pro'
- | 'x-charts-pro';
+import { MuiCommercialPackageName } from '../utils/commercialPackages';
export const sharedLicenseStatuses: {
[packageName in MuiCommercialPackageName]?: {
@@ -48,15 +41,11 @@ export function useLicenseVerifier(
return sharedLicenseStatuses[packageName]!.licenseVerifier;
}
- const acceptedScopes = extractAcceptedScopes(packageName);
- const productScope = extractProductScope(packageName);
-
const plan = packageName.includes('premium') ? 'Premium' : 'Pro';
const licenseStatus = verifyLicense({
releaseInfo,
licenseKey,
- acceptedScopes,
- productScope,
+ packageName,
});
const fullPackageName = `@mui/${packageName}`;
diff --git a/packages/x-license/src/utils/commercialPackages.ts b/packages/x-license/src/utils/commercialPackages.ts
new file mode 100644
index 000000000000..ae4e676b5732
--- /dev/null
+++ b/packages/x-license/src/utils/commercialPackages.ts
@@ -0,0 +1,6 @@
+export type MuiCommercialPackageName =
+ | 'x-data-grid-pro'
+ | 'x-data-grid-premium'
+ | 'x-date-pickers-pro'
+ | 'x-tree-view-pro'
+ | 'x-charts-pro';
diff --git a/packages/x-license/src/utils/index.ts b/packages/x-license/src/utils/index.ts
index 20a11f9c8cd8..7197239c1e95 100644
--- a/packages/x-license/src/utils/index.ts
+++ b/packages/x-license/src/utils/index.ts
@@ -3,3 +3,4 @@ export * from './licenseInfo';
export * from './licenseStatus';
export type { LicenseScope } from './licenseScope';
export type { LicensingModel } from './licensingModel';
+export type { MuiCommercialPackageName } from './commercialPackages';
diff --git a/packages/x-license/src/utils/licenseScope.ts b/packages/x-license/src/utils/licenseScope.ts
index d75a3b56607a..f998b354f7b0 100644
--- a/packages/x-license/src/utils/licenseScope.ts
+++ b/packages/x-license/src/utils/licenseScope.ts
@@ -1,20 +1,5 @@
export const LICENSE_SCOPES = ['pro', 'premium'] as const;
-export const PRODUCT_SCOPES = ['data-grid', 'date-pickers', 'charts', 'tree-view'] as const;
export const PLAN_VERSIONS = ['initial', 'Q3-2024'] as const;
export type LicenseScope = (typeof LICENSE_SCOPES)[number];
-export type ProductScope = (typeof PRODUCT_SCOPES)[number];
export type PlanVersion = (typeof PLAN_VERSIONS)[number];
-
-export const extractProductScope = (packageName: string): ProductScope => {
- // extract the part between "x-" and "-pro"/"-premium"
- const regex = /x-(.*?)(-pro|-premium)?$/;
- const match = packageName.match(regex);
- return match![1] as ProductScope;
-};
-
-export const extractAcceptedScopes = (packageName: string): readonly LicenseScope[] => {
- return packageName.includes('premium')
- ? LICENSE_SCOPES.filter((scope) => scope.includes('premium'))
- : LICENSE_SCOPES;
-};
diff --git a/packages/x-license/src/verifyLicense/verifyLicense.test.ts b/packages/x-license/src/verifyLicense/verifyLicense.test.ts
index 3e040c782a17..3b096e31abae 100644
--- a/packages/x-license/src/verifyLicense/verifyLicense.test.ts
+++ b/packages/x-license/src/verifyLicense/verifyLicense.test.ts
@@ -30,8 +30,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: '__RELEASE_INFO__',
licenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.throw('MUI X: The release information is invalid. Not able to validate license.');
});
@@ -42,8 +41,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
@@ -62,8 +60,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: expiredLicenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.ExpiredVersion);
});
@@ -75,8 +72,7 @@ describe('License: verifyLicense', () => {
releaseInfo: RELEASE_INFO,
licenseKey:
'b43ff5f9ac93f021855ff59ff0ba5220TkFNRTpNYC1VSSBTQVMsREVWRUxPUEVSX0NPVU5UPTEwLEVYUElSWT0xNTkxNzIzMDY3MDQyLFZFUlNJT049MS4yLjM',
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Invalid);
});
@@ -106,8 +102,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: '__RELEASE_INFO__',
licenseKey: licenseKeyPro,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.throw('MUI X: The release information is invalid. Not able to validate license.');
});
@@ -119,8 +114,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: licenseKeyPro,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
@@ -131,8 +125,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: licenseKeyPremium,
- acceptedScopes: ['premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-premium',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
@@ -143,8 +136,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: licenseKeyPro,
- acceptedScopes: ['premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-premium',
}).status,
).to.equal(LICENSE_STATUS.OutOfScope);
});
@@ -165,8 +157,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: expiredLicenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
@@ -184,8 +175,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: expiredLicenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.ExpiredAnnualGrace);
});
@@ -204,8 +194,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: expiredLicenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.ExpiredAnnual);
});
@@ -223,8 +212,7 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: expiredLicenseKey,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
@@ -237,8 +225,7 @@ describe('License: verifyLicense', () => {
releaseInfo: RELEASE_INFO,
licenseKey:
'b43ff5f9ac93f021855ff59ff0ba5220TkFNRTpNYC1VSSBTQVMsREVWRUxPUEVSX0NPVU5UPTEwLEVYUElSWT0xNTkxNzIzMDY3MDQyLFZFUlNJT049MS4yLjM',
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Invalid);
});
@@ -259,15 +246,14 @@ describe('License: verifyLicense', () => {
verifyLicense({
releaseInfo: RELEASE_INFO,
licenseKey: licenseKeyPro,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'data-grid',
+ packageName: 'x-data-grid-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
});
describe('key version: 2.2', () => {
- const licenseKeyInitial = generateLicense({
+ const proLicenseKeyInitial = generateLicense({
expiryDate: new Date(releaseDate.getTime() + oneDayInMS),
orderNumber: 'MUI-123',
scope: 'pro',
@@ -275,7 +261,15 @@ describe('License: verifyLicense', () => {
planVersion: 'initial',
});
- const licenseKey2 = generateLicense({
+ const premiumLicenseKeyInitial = generateLicense({
+ expiryDate: new Date(releaseDate.getTime() + oneDayInMS),
+ orderNumber: 'MUI-123',
+ scope: 'premium',
+ licensingModel: 'annual',
+ planVersion: 'initial',
+ });
+
+ const proLicenseKeyQ32024 = generateLicense({
expiryDate: new Date(releaseDate.getTime() + oneDayInMS),
orderNumber: 'MUI-123',
scope: 'pro',
@@ -283,50 +277,68 @@ describe('License: verifyLicense', () => {
planVersion: 'Q3-2024',
});
- it('PlanVersion "initial" should not accept charts', () => {
+ it('PlanVersion "initial" should not accept x-charts-pro', () => {
process.env.NODE_ENV = 'production';
expect(
verifyLicense({
releaseInfo: RELEASE_INFO,
- licenseKey: licenseKeyInitial,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'charts',
+ licenseKey: proLicenseKeyInitial,
+ packageName: 'x-charts-pro',
}).status,
).to.equal(LICENSE_STATUS.NotAvailableInInitialProPlan);
});
- it('PlanVersion "initial" should not accept tree-view', () => {
+ it('PlanVersion "initial" should not accept x-tree-view-pro', () => {
process.env.NODE_ENV = 'production';
expect(
verifyLicense({
releaseInfo: RELEASE_INFO,
- licenseKey: licenseKeyInitial,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'tree-view',
+ licenseKey: proLicenseKeyInitial,
+ packageName: 'x-tree-view-pro',
}).status,
).to.equal(LICENSE_STATUS.NotAvailableInInitialProPlan);
});
- it('PlanVersion "Q3-2024" should accept charts', () => {
+ it('PlanVersion "Q3-2024" should accept x-charts-pro', () => {
+ process.env.NODE_ENV = 'production';
+ expect(
+ verifyLicense({
+ releaseInfo: RELEASE_INFO,
+ licenseKey: proLicenseKeyQ32024,
+ packageName: 'x-charts-pro',
+ }).status,
+ ).to.equal(LICENSE_STATUS.Valid);
+ });
+
+ it('PlanVersion "Q3-2024" should accept x-tree-view-pro', () => {
+ process.env.NODE_ENV = 'production';
+ expect(
+ verifyLicense({
+ releaseInfo: RELEASE_INFO,
+ licenseKey: proLicenseKeyQ32024,
+ packageName: 'x-tree-view-pro',
+ }).status,
+ ).to.equal(LICENSE_STATUS.Valid);
+ });
+
+ it('Premium with planVersion "initial" should accept x-tree-view-pro', () => {
process.env.NODE_ENV = 'production';
expect(
verifyLicense({
releaseInfo: RELEASE_INFO,
- licenseKey: licenseKey2,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'charts',
+ licenseKey: premiumLicenseKeyInitial,
+ packageName: 'x-tree-view-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
- it('PlanVersion "Q3-2024" should accept tree-view', () => {
+ it('Premium with planVersion "initial" should accept x-charts-pro', () => {
process.env.NODE_ENV = 'production';
expect(
verifyLicense({
releaseInfo: RELEASE_INFO,
- licenseKey: licenseKey2,
- acceptedScopes: ['pro', 'premium'],
- productScope: 'tree-view',
+ licenseKey: premiumLicenseKeyInitial,
+ packageName: 'x-charts-pro',
}).status,
).to.equal(LICENSE_STATUS.Valid);
});
diff --git a/packages/x-license/src/verifyLicense/verifyLicense.ts b/packages/x-license/src/verifyLicense/verifyLicense.ts
index ed9b936357cb..8aa5d8915d5a 100644
--- a/packages/x-license/src/verifyLicense/verifyLicense.ts
+++ b/packages/x-license/src/verifyLicense/verifyLicense.ts
@@ -1,8 +1,9 @@
import { base64Decode, base64Encode } from '../encoding/base64';
import { md5 } from '../encoding/md5';
import { LICENSE_STATUS, LicenseStatus } from '../utils/licenseStatus';
-import { LicenseScope, LICENSE_SCOPES, ProductScope, PlanVersion } from '../utils/licenseScope';
+import { LicenseScope, LICENSE_SCOPES, PlanVersion } from '../utils/licenseScope';
import { LicensingModel, LICENSING_MODELS } from '../utils/licensingModel';
+import { MuiCommercialPackageName } from '../utils/commercialPackages';
const getDefaultReleaseDate = () => {
const today = new Date();
@@ -15,6 +16,22 @@ export function generateReleaseInfo(releaseDate = getDefaultReleaseDate()) {
return base64Encode(releaseDate.getTime().toString());
}
+function isLicenseScopeSufficient(
+ packageName: MuiCommercialPackageName,
+ licenseScope: LicenseScope,
+) {
+ let acceptedScopes: LicenseScope[];
+ if (packageName.includes('-pro')) {
+ acceptedScopes = ['pro', 'premium'];
+ } else if (packageName.includes('-premium')) {
+ acceptedScopes = ['premium'];
+ } else {
+ acceptedScopes = [];
+ }
+
+ return acceptedScopes.includes(licenseScope);
+}
+
const expiryReg = /^.*EXPIRY=([0-9]+),.*$/;
interface MuiLicense {
@@ -24,6 +41,11 @@ interface MuiLicense {
planVersion: PlanVersion;
}
+const PRO_PACKAGES_AVAILABLE_IN_INITIAL_PRO_PLAN: MuiCommercialPackageName[] = [
+ 'x-data-grid-pro',
+ 'x-date-pickers-pro',
+];
+
/**
* Format: ORDER:${orderNumber},EXPIRY=${expiryTimestamp},KEYVERSION=1
*/
@@ -105,13 +127,11 @@ const decodeLicense = (encodedLicense: string): MuiLicense | null => {
export function verifyLicense({
releaseInfo,
licenseKey,
- acceptedScopes,
- productScope,
+ packageName,
}: {
releaseInfo: string;
licenseKey?: string;
- acceptedScopes: readonly LicenseScope[];
- productScope: ProductScope;
+ packageName: MuiCommercialPackageName;
}): { status: LicenseStatus; meta?: any } {
if (!releaseInfo) {
throw new Error('MUI X: The release information is missing. Not able to validate license.');
@@ -178,15 +198,17 @@ export function verifyLicense({
return { status: LICENSE_STATUS.Invalid };
}
- if (license.planVersion === 'initial') {
- // 'charts-pro' or 'tree-view-pro' can only be used with a newer license
- if (productScope === 'charts' || productScope === 'tree-view') {
- return { status: LICENSE_STATUS.NotAvailableInInitialProPlan };
- }
+ if (!isLicenseScopeSufficient(packageName, license.scope)) {
+ return { status: LICENSE_STATUS.OutOfScope };
}
- if (!acceptedScopes.includes(license.scope)) {
- return { status: LICENSE_STATUS.OutOfScope };
+ // 'charts-pro' or 'tree-view-pro' can only be used with a newer Pro license
+ if (
+ license.planVersion === 'initial' &&
+ license.scope === 'pro' &&
+ !PRO_PACKAGES_AVAILABLE_IN_INITIAL_PRO_PLAN.includes(packageName)
+ ) {
+ return { status: LICENSE_STATUS.NotAvailableInInitialProPlan };
}
return { status: LICENSE_STATUS.Valid };
diff --git a/packages/x-tree-view/src/RichTreeView/RichTreeView.tsx b/packages/x-tree-view/src/RichTreeView/RichTreeView.tsx
index 5f94c0db2be7..1af8e390626f 100644
--- a/packages/x-tree-view/src/RichTreeView/RichTreeView.tsx
+++ b/packages/x-tree-view/src/RichTreeView/RichTreeView.tsx
@@ -191,6 +191,11 @@ RichTreeView.propTypes = {
* Used when the item's expansion is controlled.
*/
expandedItems: PropTypes.arrayOf(PropTypes.string),
+ /**
+ * The slot that triggers the item's expansion when clicked.
+ * @default 'content'
+ */
+ expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),
/**
* Unstable features, breaking changes might be introduced.
* For each feature, if the flag is not explicitly set to `true`,
diff --git a/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.tsx b/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.tsx
index 472bf6208f58..9993677439e3 100644
--- a/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.tsx
+++ b/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.tsx
@@ -154,6 +154,11 @@ SimpleTreeView.propTypes = {
* Used when the item's expansion is controlled.
*/
expandedItems: PropTypes.arrayOf(PropTypes.string),
+ /**
+ * The slot that triggers the item's expansion when clicked.
+ * @default 'content'
+ */
+ expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),
/**
* Unstable features, breaking changes might be introduced.
* For each feature, if the flag is not explicitly set to `true`,
diff --git a/packages/x-tree-view/src/TreeItem/TreeItem.tsx b/packages/x-tree-view/src/TreeItem/TreeItem.tsx
index 2f35d8974905..b048be14f8dc 100644
--- a/packages/x-tree-view/src/TreeItem/TreeItem.tsx
+++ b/packages/x-tree-view/src/TreeItem/TreeItem.tsx
@@ -23,6 +23,7 @@ import { useTreeViewContext } from '../internals/TreeViewProvider/useTreeViewCon
import { TreeViewCollapseIcon, TreeViewExpandIcon } from '../icons';
import { TreeItem2Provider } from '../TreeItem2Provider';
import { TreeViewItemDepthContext } from '../internals/TreeViewItemDepthContext';
+import { useTreeItemState } from './useTreeItemState';
const useThemeProps = createUseThemeProps('MuiTreeItem');
@@ -187,6 +188,7 @@ export const TreeItem = React.forwardRef(function TreeItem(
icons: contextIcons,
runItemPlugins,
selection: { multiSelect },
+ expansion: { expansionTrigger },
disabledItemsFocusable,
indentationAtItemLevel,
instance,
@@ -213,6 +215,8 @@ export const TreeItem = React.forwardRef(function TreeItem(
...other
} = props;
+ const { expanded, focused, selected, disabled, handleExpansion } = useTreeItemState(itemId);
+
const { contentRef, rootRef } = runItemPlugins(props);
const handleRootRef = useForkRef(inRef, rootRef);
const handleContentRef = useForkRef(ContentProps?.ref, contentRef);
@@ -232,10 +236,6 @@ export const TreeItem = React.forwardRef(function TreeItem(
return Boolean(reactChildren);
};
const expandable = isExpandable(children);
- const expanded = instance.isItemExpanded(itemId);
- const focused = instance.isItemFocused(itemId);
- const selected = instance.isItemSelected(itemId);
- const disabled = instance.isItemDisabled(itemId);
const ownerState: TreeItemOwnerState = {
...props,
@@ -263,6 +263,11 @@ export const TreeItem = React.forwardRef(function TreeItem(
className: classes.groupTransition,
});
+ const handleIconContainerClick = (event: React.MouseEvent) => {
+ if (expansionTrigger === 'iconContainer') {
+ handleExpansion(event);
+ }
+ };
const ExpansionIcon = expanded ? slots.collapseIcon : slots.expandIcon;
const { ownerState: expansionIconOwnerState, ...expansionIconProps } = useSlotProps({
elementType: ExpansionIcon,
@@ -280,6 +285,9 @@ export const TreeItem = React.forwardRef(function TreeItem(
...resolveComponentProps(inSlotProps?.expandIcon, tempOwnerState),
};
},
+ additionalProps: {
+ onClick: handleIconContainerClick,
+ },
});
const expansionIcon =
expandable && !!ExpansionIcon ? : null;
diff --git a/packages/x-tree-view/src/TreeItem/TreeItemContent.tsx b/packages/x-tree-view/src/TreeItem/TreeItemContent.tsx
index 11c31e401cee..c04b65ed08ea 100644
--- a/packages/x-tree-view/src/TreeItem/TreeItemContent.tsx
+++ b/packages/x-tree-view/src/TreeItem/TreeItemContent.tsx
@@ -82,6 +82,7 @@ const TreeItemContent = React.forwardRef(function TreeItemContent(
handleSelection,
handleCheckboxSelection,
preventSelection,
+ expansionTrigger,
} = useTreeItemState(itemId);
const icon = iconProp || expansionIcon || displayIcon;
@@ -100,7 +101,9 @@ const TreeItemContent = React.forwardRef(function TreeItemContent(
return;
}
- handleExpansion(event);
+ if (expansionTrigger === 'content') {
+ handleExpansion(event);
+ }
if (!checkboxSelection) {
handleSelection(event);
diff --git a/packages/x-tree-view/src/TreeItem/useTreeItemState.ts b/packages/x-tree-view/src/TreeItem/useTreeItemState.ts
index 09f9ce6f88c2..5a05ee89bf28 100644
--- a/packages/x-tree-view/src/TreeItem/useTreeItemState.ts
+++ b/packages/x-tree-view/src/TreeItem/useTreeItemState.ts
@@ -18,6 +18,7 @@ export function useTreeItemState(itemId: string) {
const {
instance,
selection: { multiSelect, checkboxSelection, disableSelection },
+ expansion: { expansionTrigger },
} = useTreeViewContext();
const expandable = instance.isItemExpandable(itemId);
@@ -92,5 +93,6 @@ export function useTreeItemState(itemId: string) {
handleSelection,
handleCheckboxSelection,
preventSelection,
+ expansionTrigger,
};
}
diff --git a/packages/x-tree-view/src/TreeView/TreeView.tsx b/packages/x-tree-view/src/TreeView/TreeView.tsx
index 2149524f39fd..55d215de6183 100644
--- a/packages/x-tree-view/src/TreeView/TreeView.tsx
+++ b/packages/x-tree-view/src/TreeView/TreeView.tsx
@@ -139,6 +139,11 @@ TreeView.propTypes = {
* Used when the item's expansion is controlled.
*/
expandedItems: PropTypes.arrayOf(PropTypes.string),
+ /**
+ * The slot that triggers the item's expansion when clicked.
+ * @default 'content'
+ */
+ expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),
/**
* Unstable features, breaking changes might be introduced.
* For each feature, if the flag is not explicitly set to `true`,
diff --git a/packages/x-tree-view/src/internals/models/plugin.ts b/packages/x-tree-view/src/internals/models/plugin.ts
index b9459acecf93..5cbe4e634f60 100644
--- a/packages/x-tree-view/src/internals/models/plugin.ts
+++ b/packages/x-tree-view/src/internals/models/plugin.ts
@@ -67,7 +67,9 @@ export type TreeViewPluginSignature<
>;
}
: {};
- experimentalFeatures: T['experimentalFeatures'];
+ experimentalFeatures: T extends { experimentalFeatures: string }
+ ? { [key in T['experimentalFeatures']]?: boolean }
+ : {};
dependencies: T extends { dependencies: Array } ? T['dependencies'] : [];
optionalDependencies: T extends { optionalDependencies: Array }
? T['optionalDependencies']
diff --git a/packages/x-tree-view/src/internals/models/treeView.ts b/packages/x-tree-view/src/internals/models/treeView.ts
index a9b5e2452203..ad86ffeb39ac 100644
--- a/packages/x-tree-view/src/internals/models/treeView.ts
+++ b/packages/x-tree-view/src/internals/models/treeView.ts
@@ -38,4 +38,5 @@ export type TreeViewPublicAPI<
export type TreeViewExperimentalFeatures<
TSignatures extends readonly TreeViewAnyPluginSignature[],
-> = { [key in MergeSignaturesProperty]?: boolean };
+ TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = [],
+> = MergeSignaturesProperty<[...TSignatures, ...TOptionalSignatures], 'experimentalFeatures'>;
diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.ts b/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.ts
index d463f24e85bb..3fd669acf55f 100644
--- a/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.ts
+++ b/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.ts
@@ -83,6 +83,14 @@ export const useTreeViewExpansion: TreeViewPlugin
}
};
+ const expansionTrigger = React.useMemo(() => {
+ if (params.expansionTrigger) {
+ return params.expansionTrigger;
+ }
+
+ return 'content';
+ }, [params.expansionTrigger]);
+
return {
publicAPI: {
setItemExpansion,
@@ -94,6 +102,11 @@ export const useTreeViewExpansion: TreeViewPlugin
toggleItemExpansion,
expandAllSiblings,
},
+ contextValue: {
+ expansion: {
+ expansionTrigger,
+ },
+ },
};
};
@@ -115,4 +128,5 @@ useTreeViewExpansion.params = {
defaultExpandedItems: true,
onExpandedItemsChange: true,
onItemExpansionToggle: true,
+ expansionTrigger: true,
};
diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.ts b/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.ts
index f3e93a059afd..2b7c858d5671 100644
--- a/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.ts
+++ b/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.ts
@@ -72,6 +72,11 @@ export interface UseTreeViewExpansionParameters {
itemId: string,
isExpanded: boolean,
) => void;
+ /**
+ * The slot that triggers the item's expansion when clicked.
+ * @default 'content'
+ */
+ expansionTrigger?: 'content' | 'iconContainer';
}
export type UseTreeViewExpansionDefaultizedParameters = DefaultizedProps<
@@ -79,11 +84,16 @@ export type UseTreeViewExpansionDefaultizedParameters = DefaultizedProps<
'defaultExpandedItems'
>;
+interface UseTreeViewExpansionContextValue {
+ expansion: Pick;
+}
+
export type UseTreeViewExpansionSignature = TreeViewPluginSignature<{
params: UseTreeViewExpansionParameters;
defaultizedParams: UseTreeViewExpansionDefaultizedParameters;
instance: UseTreeViewExpansionInstance;
publicAPI: UseTreeViewExpansionPublicAPI;
modelNames: 'expandedItems';
+ contextValue: UseTreeViewExpansionContextValue;
dependencies: [UseTreeViewItemsSignature];
}>;
diff --git a/packages/x-tree-view/src/internals/useTreeView/extractPluginParamsFromProps.ts b/packages/x-tree-view/src/internals/useTreeView/extractPluginParamsFromProps.ts
index d91f18fe1b4d..cc81cb92400e 100644
--- a/packages/x-tree-view/src/internals/useTreeView/extractPluginParamsFromProps.ts
+++ b/packages/x-tree-view/src/internals/useTreeView/extractPluginParamsFromProps.ts
@@ -71,6 +71,6 @@ export const extractPluginParamsFromProps = <
pluginParams: defaultizedPluginParams,
slots: slots ?? ({} as any),
slotProps: slotProps ?? ({} as any),
- experimentalFeatures: experimentalFeatures ?? {},
+ experimentalFeatures: experimentalFeatures ?? ({} as any),
};
};
diff --git a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.ts b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.ts
index 54c6e3dc7435..904a6706dcc5 100644
--- a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.ts
+++ b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.ts
@@ -27,6 +27,7 @@ export const useTreeItem2 = <
const {
runItemPlugins,
selection: { multiSelect, disableSelection, checkboxSelection },
+ expansion: { expansionTrigger },
disabledItemsFocusable,
indentationAtItemLevel,
instance,
@@ -85,7 +86,9 @@ export const useTreeItem2 = <
return;
}
- interactions.handleExpansion(event);
+ if (expansionTrigger === 'content') {
+ interactions.handleExpansion(event);
+ }
if (!checkboxSelection) {
interactions.handleSelection(event);
@@ -120,6 +123,17 @@ export const useTreeItem2 = <
interactions.handleCheckboxSelection(event);
};
+ const createIconContainerHandleClick =
+ (otherHandlers: EventHandlers) => (event: React.MouseEvent & MuiCancellableEvent) => {
+ otherHandlers.onClick?.(event);
+ if (event.defaultMuiPrevented) {
+ return;
+ }
+ if (expansionTrigger === 'iconContainer') {
+ interactions.handleExpansion(event);
+ }
+ };
+
const getRootProps = = {}>(
externalProps: ExternalProps = {} as ExternalProps,
): UseTreeItem2RootSlotProps => {
@@ -227,6 +241,7 @@ export const useTreeItem2 = <
return {
...externalEventHandlers,
...externalProps,
+ onClick: createIconContainerHandleClick(externalEventHandlers),
};
};
diff --git a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts
index 6aff48add0b1..8d29f86796e3 100644
--- a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts
+++ b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts
@@ -6,6 +6,7 @@ import { UseTreeViewSelectionSignature } from '../internals/plugins/useTreeViewS
import { UseTreeViewItemsSignature } from '../internals/plugins/useTreeViewItems';
import { UseTreeViewFocusSignature } from '../internals/plugins/useTreeViewFocus';
import { UseTreeViewKeyboardNavigationSignature } from '../internals/plugins/useTreeViewKeyboardNavigation';
+import { UseTreeViewExpansionSignature } from '../internals/plugins/useTreeViewExpansion';
export interface UseTreeItem2Parameters {
/**
@@ -67,7 +68,9 @@ export interface UseTreeItem2ContentSlotOwnProps {
export type UseTreeItem2ContentSlotProps = ExternalProps &
UseTreeItem2ContentSlotOwnProps;
-export interface UseTreeItem2IconContainerSlotOwnProps {}
+export interface UseTreeItem2IconContainerSlotOwnProps {
+ onClick: MuiCancellableEventHandler;
+}
export type UseTreeItemIconContainerSlotProps = ExternalProps &
UseTreeItem2IconContainerSlotOwnProps;
@@ -185,6 +188,7 @@ export interface UseTreeItem2ReturnValue<
*/
export type UseTreeItem2MinimalPlugins = readonly [
UseTreeViewSelectionSignature,
+ UseTreeViewExpansionSignature,
UseTreeViewItemsSignature,
UseTreeViewFocusSignature,
UseTreeViewKeyboardNavigationSignature,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1100dddadeb2..1bfa70101729 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,7 +6,7 @@ settings:
overrides:
react-is: ^18.3.1
- '@types/node': ^18.19.34
+ '@types/node': ^18.19.39
patchedDependencies:
babel-plugin-replace-imports@1.0.2:
@@ -21,8 +21,8 @@ importers:
.:
devDependencies:
'@argos-ci/core':
- specifier: ^2.2.0
- version: 2.2.0
+ specifier: ^2.3.0
+ version: 2.3.0
'@babel/cli':
specifier: ^7.24.7
version: 7.24.7(@babel/core@7.24.7)
@@ -102,11 +102,11 @@ importers:
specifier: 14.2.4
version: 14.2.4
'@octokit/plugin-retry':
- specifier: ^6.0.1
- version: 6.0.1(@octokit/core@4.2.4(encoding@0.1.13))
+ specifier: ^7.1.1
+ version: 7.1.1(@octokit/core@4.2.4(encoding@0.1.13))
'@octokit/rest':
- specifier: ^20.1.1
- version: 20.1.1
+ specifier: ^21.0.0
+ version: 21.0.0
'@playwright/test':
specifier: ^1.44.1
version: 1.44.1
@@ -135,11 +135,11 @@ importers:
specifier: ^4.17.5
version: 4.17.5
'@types/mocha':
- specifier: ^10.0.6
- version: 10.0.6
+ specifier: ^10.0.7
+ version: 10.0.7
'@types/node':
- specifier: ^18.19.34
- version: 18.19.34
+ specifier: ^18.19.39
+ version: 18.19.39
'@types/react':
specifier: ^18.3.3
version: 18.3.3
@@ -160,10 +160,10 @@ importers:
version: 17.0.32
'@typescript-eslint/eslint-plugin':
specifier: ^7.13.1
- version: 7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
+ version: 7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
'@typescript-eslint/parser':
specifier: ^7.13.1
- version: 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ version: 7.13.1(eslint@8.57.0)(typescript@5.5.2)
autoprefixer:
specifier: ^10.4.19
version: 10.4.19(postcss@8.4.38)
@@ -213,8 +213,8 @@ importers:
specifier: ^7.0.3
version: 7.0.3
danger:
- specifier: ^12.3.1
- version: 12.3.1(encoding@0.1.13)
+ specifier: ^12.3.3
+ version: 12.3.3(encoding@0.1.13)
date-fns-jalali-v3:
specifier: npm:date-fns-jalali@3.6.0-0
version: date-fns-jalali@3.6.0-0
@@ -229,10 +229,10 @@ importers:
version: 8.57.0
eslint-config-airbnb:
specifier: ^19.0.4
- version: 19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.2(eslint@8.57.0))(eslint@8.57.0)
+ version: 19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.3(eslint@8.57.0))(eslint@8.57.0)
eslint-config-airbnb-typescript:
specifier: ^18.0.0
- version: 18.0.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0)
+ version: 18.0.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.0)
@@ -244,13 +244,13 @@ importers:
version: 1.3.2(eslint@8.57.0)
eslint-plugin-import:
specifier: ^2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
eslint-plugin-jsdoc:
- specifier: ^48.2.12
- version: 48.2.12(eslint@8.57.0)
+ specifier: ^48.4.0
+ version: 48.4.0(eslint@8.57.0)
eslint-plugin-jsx-a11y:
- specifier: ^6.8.0
- version: 6.8.0(eslint@8.57.0)
+ specifier: ^6.9.0
+ version: 6.9.0(eslint@8.57.0)
eslint-plugin-material-ui:
specifier: workspace:^
version: link:packages/eslint-plugin-material-ui
@@ -261,8 +261,8 @@ importers:
specifier: ^5.1.3
version: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2)
eslint-plugin-react:
- specifier: ^7.34.2
- version: 7.34.2(eslint@8.57.0)
+ specifier: ^7.34.3
+ version: 7.34.3(eslint@8.57.0)
eslint-plugin-react-compiler:
specifier: 0.0.0-experimental-51a85ea-20240601
version: 0.0.0-experimental-51a85ea-20240601(eslint@8.57.0)
@@ -327,8 +327,8 @@ importers:
specifier: ^0.13.0
version: 0.13.0
mocha:
- specifier: ^10.4.0
- version: 10.4.0
+ specifier: ^10.5.1
+ version: 10.5.1
moment:
specifier: ^2.30.1
version: 2.30.1
@@ -375,11 +375,11 @@ importers:
specifier: ^5.3.10
version: 5.3.10(webpack@5.92.1(webpack-cli@5.1.4))
tsx:
- specifier: ^4.15.5
- version: 4.15.5
+ specifier: ^4.15.7
+ version: 4.15.7
typescript:
- specifier: ^5.4.5
- version: 5.4.5
+ specifier: ^5.5.2
+ version: 5.5.2
unist-util-visit:
specifier: ^2.0.3
version: 2.0.3
@@ -540,8 +540,8 @@ importers:
specifier: ^3.1.0
version: 3.1.0
jscodeshift:
- specifier: 0.13.1
- version: 0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
+ specifier: 0.15.2
+ version: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7))
lodash:
specifier: ^4.17.21
version: 4.17.21
@@ -561,8 +561,8 @@ importers:
specifier: ^2.1.2
version: 2.1.2
moment-jalaali:
- specifier: ^0.10.0
- version: 0.10.0
+ specifier: ^0.10.1
+ version: 0.10.1
moment-timezone:
specifier: ^0.5.45
version: 0.5.45
@@ -689,10 +689,10 @@ importers:
version: 8.56.10
'@typescript-eslint/parser':
specifier: ^7.13.1
- version: 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ version: 7.13.1(eslint@8.57.0)(typescript@5.5.2)
'@typescript-eslint/utils':
specifier: ^7.13.1
- version: 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ version: 7.13.1(eslint@8.57.0)(typescript@5.5.2)
packages/x-charts:
dependencies:
@@ -893,17 +893,17 @@ importers:
specifier: ^7.24.7
version: 7.24.7
jscodeshift:
- specifier: 0.13.1
- version: 0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
+ specifier: 0.15.2
+ version: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7))
jscodeshift-add-imports:
specifier: ^1.0.10
- version: 1.0.10(jscodeshift@0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7)))
+ version: 1.0.10(jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)))
yargs:
specifier: ^17.7.2
version: 17.7.2
devDependencies:
'@types/jscodeshift':
- specifier: ^0.11.5
+ specifier: ^0.11.11
version: 0.11.11
dayjs:
specifier: ^1.11.11
@@ -1189,8 +1189,8 @@ importers:
specifier: ^2.1.2
version: 2.1.2
moment-jalaali:
- specifier: ^0.10.0
- version: 0.10.0
+ specifier: ^0.10.1
+ version: 0.10.1
moment-timezone:
specifier: ^0.5.45
version: 0.5.45
@@ -1236,7 +1236,7 @@ importers:
version: 2.1.2
moment-jalaali:
specifier: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0
- version: 0.10.0
+ version: 0.10.1
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -1467,8 +1467,8 @@ importers:
specifier: ^2.30.1
version: 2.30.1
moment-jalaali:
- specifier: ^0.10.0
- version: 0.10.0
+ specifier: ^0.10.1
+ version: 0.10.1
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -1560,8 +1560,8 @@ packages:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
- '@argos-ci/core@2.2.0':
- resolution: {integrity: sha512-T5W37CZ6HZjRcVAXuPj0wUB/Fm4VdwLvKpQL9yqSwiJganeNz7u8AFYJ30ujSUJS1jdUViW5TNnmsgDjuvGyTQ==}
+ '@argos-ci/core@2.3.0':
+ resolution: {integrity: sha512-0mHncBeOD7GFYfGZYUEcDgLyzsvPyxK/L1MROfAurFeWcw89ODG24JEdPsECtZBSCZMmMcK8XqeJIJkZsnDGZA==}
engines: {node: '>=18.0.0'}
'@argos-ci/util@2.0.0':
@@ -1738,27 +1738,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-proposal-class-properties@7.18.6':
- resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
- engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6':
- resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
- engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-proposal-optional-chaining@7.21.0':
- resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
- engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-proposal-private-methods@7.18.6':
resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
engines: {node: '>=6.9.0'}
@@ -3136,8 +3115,8 @@ packages:
resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==}
engines: {node: '>= 14'}
- '@octokit/auth-token@4.0.0':
- resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
+ '@octokit/auth-token@5.1.1':
+ resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==}
engines: {node: '>= 18'}
'@octokit/core@3.6.0':
@@ -3147,8 +3126,12 @@ packages:
resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==}
engines: {node: '>= 14'}
- '@octokit/core@5.1.0':
- resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==}
+ '@octokit/core@6.1.2':
+ resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/endpoint@10.1.1':
+ resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==}
engines: {node: '>= 18'}
'@octokit/endpoint@6.0.12':
@@ -3158,10 +3141,6 @@ packages:
resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==}
engines: {node: '>= 14'}
- '@octokit/endpoint@9.0.4':
- resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==}
- engines: {node: '>= 18'}
-
'@octokit/graphql@4.8.0':
resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==}
@@ -3169,8 +3148,8 @@ packages:
resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==}
engines: {node: '>= 14'}
- '@octokit/graphql@7.0.2':
- resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==}
+ '@octokit/graphql@8.1.1':
+ resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==}
engines: {node: '>= 18'}
'@octokit/openapi-types@12.11.0':
@@ -3179,9 +3158,6 @@ packages:
'@octokit/openapi-types@18.1.1':
resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==}
- '@octokit/openapi-types@19.1.0':
- resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==}
-
'@octokit/openapi-types@22.2.0':
resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==}
@@ -3210,11 +3186,11 @@ packages:
peerDependencies:
'@octokit/core': '>=3'
- '@octokit/plugin-request-log@4.0.0':
- resolution: {integrity: sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==}
+ '@octokit/plugin-request-log@5.3.0':
+ resolution: {integrity: sha512-FiGcyjdtYPlr03ExBk/0ysIlEFIFGJQAVoPPMxL19B24bVSEiZQnVGBunNtaAF1YnvE/EFoDpXmITtRnyCiypQ==}
engines: {node: '>= 18'}
peerDependencies:
- '@octokit/core': '>=5'
+ '@octokit/core': '>=6'
'@octokit/plugin-rest-endpoint-methods@13.2.2':
resolution: {integrity: sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==}
@@ -3233,11 +3209,11 @@ packages:
peerDependencies:
'@octokit/core': '>=3'
- '@octokit/plugin-retry@6.0.1':
- resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==}
+ '@octokit/plugin-retry@7.1.1':
+ resolution: {integrity: sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==}
engines: {node: '>= 18'}
peerDependencies:
- '@octokit/core': '>=5'
+ '@octokit/core': '>=6'
'@octokit/request-error@2.1.0':
resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==}
@@ -3246,8 +3222,8 @@ packages:
resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==}
engines: {node: '>= 14'}
- '@octokit/request-error@5.0.1':
- resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==}
+ '@octokit/request-error@6.1.1':
+ resolution: {integrity: sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==}
engines: {node: '>= 18'}
'@octokit/request@5.6.3':
@@ -3257,8 +3233,8 @@ packages:
resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==}
engines: {node: '>= 14'}
- '@octokit/request@8.1.6':
- resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==}
+ '@octokit/request@9.1.1':
+ resolution: {integrity: sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==}
engines: {node: '>= 18'}
'@octokit/rest@18.12.0':
@@ -3268,8 +3244,8 @@ packages:
resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==}
engines: {node: '>= 14'}
- '@octokit/rest@20.1.1':
- resolution: {integrity: sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==}
+ '@octokit/rest@21.0.0':
+ resolution: {integrity: sha512-XudXXOmiIjivdjNZ+fN71NLrnDM00sxSZlhqmPR3v0dVoJwyP628tSlc12xqn8nX3N0965583RBw5GPo6r8u4Q==}
engines: {node: '>= 18'}
'@octokit/tsconfig@1.0.2':
@@ -3278,9 +3254,6 @@ packages:
'@octokit/types@10.0.0':
resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==}
- '@octokit/types@12.4.0':
- resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==}
-
'@octokit/types@13.5.0':
resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==}
@@ -3703,8 +3676,8 @@ packages:
'@types/minimist@1.2.5':
resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
- '@types/mocha@10.0.6':
- resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
+ '@types/mocha@10.0.7':
+ resolution: {integrity: sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==}
'@types/moment-hijri@2.1.4':
resolution: {integrity: sha512-pGX1DaSducJDkJAC3q8fCuemow0pzI4oa0iKcspwQNPXuwlI55WRgBVrA6NVi+rf8bZN1qjWVsGdUatrLhZk6Q==}
@@ -3712,8 +3685,8 @@ packages:
'@types/moment-jalaali@0.7.9':
resolution: {integrity: sha512-gsDOoAzRnCfQTbfdlUrCvX6R0wIto6CvwfvV2C3j4qJLK+DEiTK8Rl/xlOCBO9C6qeUfX8oyZ2UfjnXJTOvHSA==}
- '@types/node@18.19.34':
- resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==}
+ '@types/node@18.19.39':
+ resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==}
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -4133,21 +4106,12 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-query@5.1.3:
+ resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
+
aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
- arr-diff@4.0.0:
- resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
- engines: {node: '>=0.10.0'}
-
- arr-flatten@1.1.0:
- resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
- engines: {node: '>=0.10.0'}
-
- arr-union@3.1.0:
- resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
- engines: {node: '>=0.10.0'}
-
array-buffer-byte-length@1.0.1:
resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
engines: {node: '>= 0.4'}
@@ -4176,10 +4140,6 @@ packages:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
- array-unique@0.3.2:
- resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
- engines: {node: '>=0.10.0'}
-
array.prototype.filter@1.0.3:
resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==}
engines: {node: '>= 0.4'}
@@ -4214,8 +4174,9 @@ packages:
array.prototype.toreversed@1.1.2:
resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
- array.prototype.tosorted@1.1.3:
- resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
+ array.prototype.tosorted@1.1.4:
+ resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
+ engines: {node: '>= 0.4'}
arraybuffer.prototype.slice@1.0.3:
resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
@@ -4236,10 +4197,6 @@ packages:
assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
- assign-symbols@1.0.0:
- resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
- engines: {node: '>=0.10.0'}
-
ast-types-flow@0.0.8:
resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
@@ -4263,11 +4220,6 @@ packages:
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- atob@2.1.2:
- resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
- engines: {node: '>= 4.5.0'}
- hasBin: true
-
autoprefixer@10.4.19:
resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
engines: {node: ^10 || ^12 || >=14}
@@ -4279,10 +4231,6 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axe-core@4.7.0:
- resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
- engines: {node: '>=4'}
-
axe-core@4.9.1:
resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==}
engines: {node: '>=4'}
@@ -4290,8 +4238,8 @@ packages:
axios@1.7.2:
resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==}
- axobject-query@3.2.1:
- resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
+ axobject-query@3.1.1:
+ resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==}
babel-core@7.0.0-bridge.0:
resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==}
@@ -4363,13 +4311,12 @@ packages:
resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
engines: {node: ^4.5.0 || >= 5.9}
- base@0.11.2:
- resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
- engines: {node: '>=0.10.0'}
-
before-after-hook@2.2.3:
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
+ before-after-hook@3.0.2:
+ resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==}
+
big-integer@1.6.52:
resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
engines: {node: '>=0.6'}
@@ -4417,10 +4364,6 @@ packages:
brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
- braces@2.3.2:
- resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
- engines: {node: '>=0.10.0'}
-
braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@@ -4491,10 +4434,6 @@ packages:
resolution: {integrity: sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==}
engines: {node: ^16.14.0 || >=18.0.0}
- cache-base@1.0.1:
- resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
- engines: {node: '>=0.10.0'}
-
caching-transform@4.0.0:
resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==}
engines: {node: '>=8'}
@@ -4610,10 +4549,6 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
- class-utils@0.3.6:
- resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
- engines: {node: '>=0.10.0'}
-
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -4682,10 +4617,6 @@ packages:
resolution: {integrity: sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- collection-visit@1.0.0:
- resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
- engines: {node: '>=0.10.0'}
-
color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
@@ -4761,9 +4692,6 @@ packages:
compare-func@2.0.0:
resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
- component-emitter@1.3.1:
- resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
-
compress-commons@4.1.2:
resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==}
engines: {node: '>= 10'}
@@ -4868,10 +4796,6 @@ packages:
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
engines: {node: '>= 0.6'}
- copy-descriptor@0.1.1:
- resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
- engines: {node: '>=0.10.0'}
-
core-js-compat@3.36.1:
resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
@@ -5013,8 +4937,8 @@ packages:
damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
- danger@12.3.1:
- resolution: {integrity: sha512-K5ydQs6fTl6+iAWZJ5Fk238YmGMGnDx/5ZD7ZBTK4NgztAxXIupWVEYUACFy/lUpvih6EDKocn12OF1MS3UsLQ==}
+ danger@12.3.3:
+ resolution: {integrity: sha512-nZKzpgXN21rr4dwa6bFhM7G2JEa79dZRJiT3RVRSyi4yk1/hgZ2f8HDGoa7tMladTmu8WjJFyE3LpBIihh+aDw==}
engines: {node: '>=18'}
hasBin: true
@@ -5105,10 +5029,6 @@ packages:
decimal.js@10.4.3:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
- decode-uri-component@0.2.2:
- resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
- engines: {node: '>=0.10'}
-
dedent@0.7.0:
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
@@ -5116,6 +5036,10 @@ packages:
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
engines: {node: '>=6'}
+ deep-equal@2.2.3:
+ resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
+ engines: {node: '>= 0.4'}
+
deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
@@ -5142,18 +5066,6 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
- define-property@0.2.5:
- resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
- engines: {node: '>=0.10.0'}
-
- define-property@1.0.0:
- resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
- engines: {node: '>=0.10.0'}
-
- define-property@2.0.2:
- resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
- engines: {node: '>=0.10.0'}
-
delaunator@5.0.1:
resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==}
@@ -5396,8 +5308,8 @@ packages:
resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==}
engines: {node: '>= 0.4'}
- es-module-lexer@1.4.1:
- resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
+ es-module-lexer@1.5.4:
+ resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
es-object-atoms@1.0.0:
resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
@@ -5522,14 +5434,14 @@ packages:
'@typescript-eslint/parser':
optional: true
- eslint-plugin-jsdoc@48.2.12:
- resolution: {integrity: sha512-sO9sKkJx5ovWoRk9hV0YiNzXQ4Z6j27CqE/po2E3wddZVuy9wvKPSTiIhpxMTrP/qURvKayJIDB2+o9kyCW1Fw==}
+ eslint-plugin-jsdoc@48.4.0:
+ resolution: {integrity: sha512-xBUxuAx03cKoEA7y+MYSUdwyN8AJyZHbAJ257sOFXgVgCScm574S4zEYJpBoARwaCu4chhCbvA+gdm+00whlxA==}
engines: {node: '>=18'}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
- eslint-plugin-jsx-a11y@6.8.0:
- resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
+ eslint-plugin-jsx-a11y@6.9.0:
+ resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==}
engines: {node: '>=4.0'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
@@ -5566,8 +5478,8 @@ packages:
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
- eslint-plugin-react@7.34.2:
- resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==}
+ eslint-plugin-react@7.34.3:
+ resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==}
engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
@@ -5671,10 +5583,6 @@ packages:
resolution: {integrity: sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==}
engines: {node: ^18.19.0 || >=20.5.0}
- expand-brackets@2.1.4:
- resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
- engines: {node: '>=0.10.0'}
-
expand-tilde@2.0.2:
resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
engines: {node: '>=0.10.0'}
@@ -5690,10 +5598,6 @@ packages:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
- extend-shallow@3.0.2:
- resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
- engines: {node: '>=0.10.0'}
-
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -5701,10 +5605,6 @@ packages:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
- extglob@2.0.4:
- resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
- engines: {node: '>=0.10.0'}
-
fast-csv@4.3.6:
resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==}
engines: {node: '>=10.0.0'}
@@ -5757,10 +5657,6 @@ packages:
filelist@1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
- fill-range@4.0.0:
- resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
- engines: {node: '>=0.10.0'}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -5841,10 +5737,6 @@ packages:
for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
- for-in@1.0.2:
- resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
- engines: {node: '>=0.10.0'}
-
foreground-child@2.0.0:
resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
engines: {node: '>=8.0.0'}
@@ -5871,10 +5763,6 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
- fragment-cache@0.2.1:
- resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
- engines: {node: '>=0.10.0'}
-
fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -6000,10 +5888,6 @@ packages:
get-tsconfig@4.7.5:
resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
- get-value@2.0.6:
- resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
- engines: {node: '>=0.10.0'}
-
git-config-path@1.0.1:
resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==}
engines: {node: '>=0.10.0'}
@@ -6167,22 +6051,6 @@ packages:
has-unicode@2.0.1:
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
- has-value@0.3.1:
- resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
- engines: {node: '>=0.10.0'}
-
- has-value@1.0.0:
- resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
- engines: {node: '>=0.10.0'}
-
- has-values@0.1.4:
- resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
- engines: {node: '>=0.10.0'}
-
- has-values@1.0.0:
- resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
- engines: {node: '>=0.10.0'}
-
has@1.0.4:
resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
engines: {node: '>= 0.4.0'}
@@ -6401,10 +6269,6 @@ packages:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
- is-accessor-descriptor@1.0.1:
- resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
- engines: {node: '>= 0.10'}
-
is-alphabetical@1.0.4:
resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
@@ -6440,9 +6304,6 @@ packages:
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
engines: {node: '>= 0.4'}
- is-buffer@1.1.6:
- resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
-
is-buffer@2.0.5:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
@@ -6458,10 +6319,6 @@ packages:
is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
- is-data-descriptor@1.0.1:
- resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
- engines: {node: '>= 0.4'}
-
is-data-view@1.0.1:
resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
engines: {node: '>= 0.4'}
@@ -6473,14 +6330,6 @@ packages:
is-decimal@1.0.4:
resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
- is-descriptor@0.1.7:
- resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
- engines: {node: '>= 0.4'}
-
- is-descriptor@1.0.3:
- resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
- engines: {node: '>= 0.4'}
-
is-docker@2.2.1:
resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
engines: {node: '>=8'}
@@ -6493,10 +6342,6 @@ packages:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: '>=0.10.0'}
- is-extendable@1.0.1:
- resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
- engines: {node: '>=0.10.0'}
-
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -6540,10 +6385,6 @@ packages:
resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
engines: {node: '>= 0.4'}
- is-number@3.0.0:
- resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
- engines: {node: '>=0.10.0'}
-
is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
@@ -6680,10 +6521,6 @@ packages:
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
engines: {node: '>=16'}
- isobject@2.1.0:
- resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
- engines: {node: '>=0.10.0'}
-
isobject@3.0.1:
resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
engines: {node: '>=0.10.0'}
@@ -6782,11 +6619,14 @@ packages:
peerDependencies:
jscodeshift: ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0
- jscodeshift@0.13.1:
- resolution: {integrity: sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==}
+ jscodeshift@0.15.2:
+ resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==}
hasBin: true
peerDependencies:
'@babel/preset-env': ^7.1.6
+ peerDependenciesMeta:
+ '@babel/preset-env':
+ optional: true
jsdoc-type-pratt-parser@4.0.0:
resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==}
@@ -6958,14 +6798,6 @@ packages:
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
- kind-of@3.2.2:
- resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
- engines: {node: '>=0.10.0'}
-
- kind-of@4.0.0:
- resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
- engines: {node: '>=0.10.0'}
-
kind-of@6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
@@ -7236,10 +7068,6 @@ packages:
resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==}
engines: {node: ^16.14.0 || >=18.0.0}
- map-cache@0.2.2:
- resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
- engines: {node: '>=0.10.0'}
-
map-obj@1.0.1:
resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
engines: {node: '>=0.10.0'}
@@ -7248,10 +7076,6 @@ packages:
resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
engines: {node: '>=8'}
- map-visit@1.0.0:
- resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
- engines: {node: '>=0.10.0'}
-
markdown-it@14.1.0:
resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
hasBin: true
@@ -7332,10 +7156,6 @@ packages:
micromark@2.11.4:
resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
- micromatch@3.1.10:
- resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
- engines: {node: '>=0.10.0'}
-
micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
@@ -7454,10 +7274,6 @@ packages:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
- mixin-deep@1.3.2:
- resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
- engines: {node: '>=0.10.0'}
-
mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@@ -7467,8 +7283,8 @@ packages:
engines: {node: '>=10'}
hasBin: true
- mocha@10.4.0:
- resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==}
+ mocha@10.5.1:
+ resolution: {integrity: sha512-eq5tEnaz2kM9ade8cuGJBMh5fBb9Ih/TB+ddlmPR+wLQmwLhUwa0ovqDlg7OTfKquW0BI7NUcNWX7DH8sC+3gw==}
engines: {node: '>= 14.0.0'}
hasBin: true
@@ -7479,8 +7295,8 @@ packages:
moment-hijri@2.1.2:
resolution: {integrity: sha512-p5ZOA1UzBHAAXiePh37XRjjwuyH78+1ShYZ7R6jogxketewG7kTCUjUmcP9c4Qsx8D8cqxwUWrESjtgdT6tNoA==}
- moment-jalaali@0.10.0:
- resolution: {integrity: sha512-XICH1+UHd3zyaE1bXWQBlhoXBqbzEyFfT0TrifNobHxLALRuTSwXn376bX8FmkYg9mZimevwwdd6EB57s5wuFA==}
+ moment-jalaali@0.10.1:
+ resolution: {integrity: sha512-/iwLtt3onvI6wFydUSTj10nFeNkD9sZ0fSY1gmqC2dwt1yGYJun6agI7E7SiBYi8uzGlt3P4KuPYCMLiv43E+g==}
moment-timezone@0.5.45:
resolution: {integrity: sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==}
@@ -7530,10 +7346,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanomatch@1.2.13:
- resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
- engines: {node: '>=0.10.0'}
-
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -7744,10 +7556,6 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- object-copy@0.1.0:
- resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
- engines: {node: '>=0.10.0'}
-
object-hash@2.2.0:
resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
engines: {node: '>= 6'}
@@ -7766,10 +7574,6 @@ packages:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
- object-visit@1.0.1:
- resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
- engines: {node: '>=0.10.0'}
-
object.assign@4.1.5:
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
engines: {node: '>= 0.4'}
@@ -7793,10 +7597,6 @@ packages:
resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
engines: {node: '>= 0.4'}
- object.pick@1.3.0:
- resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
- engines: {node: '>=0.10.0'}
-
object.values@1.2.0:
resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
engines: {node: '>= 0.4'}
@@ -7997,6 +7797,10 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
+ parse-imports@2.1.0:
+ resolution: {integrity: sha512-JQWgmK2o4w8leUkZeZPatWdAny6vXGU/3siIUvMF6J2rDCud9aTt8h/px9oZJ6U3EcfhngBJ635uPFI0q0VAeA==}
+ engines: {node: '>= 18'}
+
parse-json@4.0.0:
resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
engines: {node: '>=4'}
@@ -8035,10 +7839,6 @@ packages:
pascal-case@3.1.2:
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
- pascalcase@0.1.1:
- resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
- engines: {node: '>=0.10.0'}
-
path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
@@ -8163,10 +7963,6 @@ packages:
please-upgrade-node@3.2.0:
resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==}
- posix-character-classes@0.1.1:
- resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
- engines: {node: '>=0.10.0'}
-
possible-typed-array-names@1.0.0:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
@@ -8523,10 +8319,6 @@ packages:
regenerator-transform@0.15.2:
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
- regex-not@1.0.2:
- resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
- engines: {node: '>=0.10.0'}
-
regexp.prototype.flags@1.5.2:
resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
engines: {node: '>= 0.4'}
@@ -8566,10 +8358,6 @@ packages:
renderkid@3.0.0:
resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
- repeat-element@1.1.4:
- resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
- engines: {node: '>=0.10.0'}
-
repeat-string@1.6.1:
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
engines: {node: '>=0.10'}
@@ -8606,10 +8394,6 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
- resolve-url@0.2.1:
- resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
- deprecated: https://github.com/lydell/resolve-url#deprecated
-
resolve@1.1.7:
resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==}
@@ -8708,9 +8492,6 @@ packages:
resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
engines: {node: '>= 0.4'}
- safe-regex@1.1.0:
- resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
-
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -8790,10 +8571,6 @@ packages:
resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
engines: {node: '>= 0.4'}
- set-value@2.0.1:
- resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
- engines: {node: '>=0.10.0'}
-
setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
@@ -8868,22 +8645,13 @@ packages:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
+ slashes@3.0.12:
+ resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
+
smart-buffer@4.2.0:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
- snapdragon-node@2.1.1:
- resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
- engines: {node: '>=0.10.0'}
-
- snapdragon-util@3.0.1:
- resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
- engines: {node: '>=0.10.0'}
-
- snapdragon@0.8.2:
- resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
- engines: {node: '>=0.10.0'}
-
socket.io-adapter@2.5.2:
resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==}
@@ -8915,17 +8683,9 @@ packages:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
- source-map-resolve@0.5.3:
- resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
- deprecated: See https://github.com/lydell/source-map-resolve#deprecated
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
- source-map-url@0.4.1:
- resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
-
source-map@0.2.0:
resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==}
engines: {node: '>=0.8.0'}
@@ -8960,10 +8720,6 @@ packages:
spdx-license-ids@3.0.16:
resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
- split-string@3.1.0:
- resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
- engines: {node: '>=0.10.0'}
-
split2@3.2.2:
resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
@@ -8981,10 +8737,6 @@ packages:
resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- static-extend@0.1.2:
- resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
- engines: {node: '>=0.10.0'}
-
statuses@1.5.0:
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
engines: {node: '>= 0.6'}
@@ -9021,6 +8773,9 @@ packages:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
+ string.prototype.includes@2.0.0:
+ resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==}
+
string.prototype.matchall@4.0.11:
resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
engines: {node: '>= 0.4'}
@@ -9153,6 +8908,10 @@ packages:
resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}
engines: {node: ^14.18.0 || >=16.0.0}
+ synckit@0.9.0:
+ resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
tapable@0.1.10:
resolution: {integrity: sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==}
engines: {node: '>=0.6'}
@@ -9243,22 +9002,10 @@ packages:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
- to-object-path@0.3.0:
- resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
- engines: {node: '>=0.10.0'}
-
- to-regex-range@2.1.1:
- resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
- engines: {node: '>=0.10.0'}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
- to-regex@3.0.2:
- resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
- engines: {node: '>=0.10.0'}
-
toidentifier@1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
@@ -9315,8 +9062,8 @@ packages:
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
engines: {node: '>=0.6.x'}
- tsx@4.15.5:
- resolution: {integrity: sha512-iKi8jQ2VBmZ2kU/FkGkL2OSHBHsazsUzsdC/W/RwhKIEsIoZ1alCclZHP5jGfNHEaEWUJFM1GquzCf+4db3b0w==}
+ tsx@4.15.7:
+ resolution: {integrity: sha512-u3H0iSFDZM3za+VxkZ1kywdCeHCn+8/qHQS1MNoO2sONDgD95HlWtt8aB23OzeTmFP9IU4/8bZUdg58Uu5J4cg==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -9394,8 +9141,8 @@ packages:
typedarray@0.0.6:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
- typescript@5.4.5:
- resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
+ typescript@5.5.2:
+ resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==}
engines: {node: '>=14.17'}
hasBin: true
@@ -9439,10 +9186,6 @@ packages:
unified@9.2.2:
resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==}
- union-value@1.0.1:
- resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
- engines: {node: '>=0.10.0'}
-
unique-filename@3.0.0:
resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -9466,6 +9209,9 @@ packages:
universal-user-agent@6.0.1:
resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
+ universal-user-agent@7.0.2:
+ resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==}
+
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
@@ -9482,10 +9228,6 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
- unset-value@1.0.0:
- resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
- engines: {node: '>=0.10.0'}
-
unzipper@0.10.14:
resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==}
@@ -9505,10 +9247,6 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- urix@0.1.0:
- resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
- deprecated: Please see https://github.com/lydell/urix#deprecated
-
url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
@@ -9518,10 +9256,6 @@ packages:
urlpattern-polyfill@8.0.2:
resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==}
- use@3.1.1:
- resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
- engines: {node: '>=0.10.0'}
-
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -9972,7 +9706,7 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
- '@argos-ci/core@2.2.0':
+ '@argos-ci/core@2.3.0':
dependencies:
'@argos-ci/util': 2.0.0
axios: 1.7.2(debug@4.3.4)
@@ -10233,29 +9967,6 @@ snapshots:
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
- '@babel/helper-plugin-utils': 7.24.7
- transitivePeerDependencies:
- - supports-color
-
- '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
-
- '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-plugin-utils': 7.24.7
- '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
- transitivePeerDependencies:
- - supports-color
-
'@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.7
@@ -11150,7 +10861,7 @@ snapshots:
'@fast-csv/format@4.3.5':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
lodash.escaperegexp: 4.1.2
lodash.isboolean: 3.0.3
lodash.isequal: 4.5.0
@@ -11159,7 +10870,7 @@ snapshots:
'@fast-csv/parse@4.3.6':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
lodash.escaperegexp: 4.1.2
lodash.groupby: 4.6.0
lodash.isfunction: 3.0.9
@@ -11341,7 +11052,7 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
- '@lerna/create@8.1.3(encoding@0.1.13)(typescript@5.4.5)':
+ '@lerna/create@8.1.3(encoding@0.1.13)(typescript@5.5.2)':
dependencies:
'@npmcli/run-script': 7.0.2
'@nx/devkit': 17.3.0(nx@17.3.0)
@@ -11354,7 +11065,7 @@ snapshots:
columnify: 1.6.0
conventional-changelog-core: 5.0.1
conventional-recommended-bump: 7.0.1
- cosmiconfig: 8.3.6(typescript@5.4.5)
+ cosmiconfig: 8.3.6(typescript@5.5.2)
dedent: 0.7.0
execa: 5.0.0
fs-extra: 11.2.0
@@ -11459,7 +11170,7 @@ snapshots:
'@mui/internal-docs-utils@1.0.7':
dependencies:
rimraf: 5.0.7
- typescript: 5.4.5
+ typescript: 5.5.2
'@mui/internal-markdown@1.0.5':
dependencies:
@@ -11478,7 +11189,7 @@ snapshots:
'@mui/internal-docs-utils': 1.0.7
doctrine: 3.0.0
lodash: 4.17.21
- typescript: 5.4.5
+ typescript: 5.5.2
uuid: 9.0.1
transitivePeerDependencies:
- supports-color
@@ -11502,7 +11213,7 @@ snapshots:
fs-extra: 11.2.0
jsdom: 24.1.0
lodash: 4.17.21
- mocha: 10.4.0
+ mocha: 10.5.1
playwright: 1.44.1
prop-types: 15.8.1
react: 18.3.1
@@ -11874,7 +11585,7 @@ snapshots:
'@octokit/auth-token@3.0.4': {}
- '@octokit/auth-token@4.0.0': {}
+ '@octokit/auth-token@5.1.1': {}
'@octokit/core@3.6.0(encoding@0.1.13)':
dependencies:
@@ -11900,15 +11611,20 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@octokit/core@5.1.0':
+ '@octokit/core@6.1.2':
dependencies:
- '@octokit/auth-token': 4.0.0
- '@octokit/graphql': 7.0.2
- '@octokit/request': 8.1.6
- '@octokit/request-error': 5.0.1
- '@octokit/types': 12.4.0
- before-after-hook: 2.2.3
- universal-user-agent: 6.0.1
+ '@octokit/auth-token': 5.1.1
+ '@octokit/graphql': 8.1.1
+ '@octokit/request': 9.1.1
+ '@octokit/request-error': 6.1.1
+ '@octokit/types': 13.5.0
+ before-after-hook: 3.0.2
+ universal-user-agent: 7.0.2
+
+ '@octokit/endpoint@10.1.1':
+ dependencies:
+ '@octokit/types': 13.5.0
+ universal-user-agent: 7.0.2
'@octokit/endpoint@6.0.12':
dependencies:
@@ -11922,11 +11638,6 @@ snapshots:
is-plain-object: 5.0.0
universal-user-agent: 6.0.1
- '@octokit/endpoint@9.0.4':
- dependencies:
- '@octokit/types': 12.4.0
- universal-user-agent: 6.0.1
-
'@octokit/graphql@4.8.0(encoding@0.1.13)':
dependencies:
'@octokit/request': 5.6.3(encoding@0.1.13)
@@ -11943,25 +11654,23 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@octokit/graphql@7.0.2':
+ '@octokit/graphql@8.1.1':
dependencies:
- '@octokit/request': 8.1.6
- '@octokit/types': 12.4.0
- universal-user-agent: 6.0.1
+ '@octokit/request': 9.1.1
+ '@octokit/types': 13.5.0
+ universal-user-agent: 7.0.2
'@octokit/openapi-types@12.11.0': {}
'@octokit/openapi-types@18.1.1': {}
- '@octokit/openapi-types@19.1.0': {}
-
'@octokit/openapi-types@22.2.0': {}
'@octokit/plugin-enterprise-rest@6.0.1': {}
- '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.1.0)':
+ '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@6.1.2)':
dependencies:
- '@octokit/core': 5.1.0
+ '@octokit/core': 6.1.2
'@octokit/types': 13.5.0
'@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0(encoding@0.1.13))':
@@ -11983,13 +11692,13 @@ snapshots:
dependencies:
'@octokit/core': 4.2.4(encoding@0.1.13)
- '@octokit/plugin-request-log@4.0.0(@octokit/core@5.1.0)':
+ '@octokit/plugin-request-log@5.3.0(@octokit/core@6.1.2)':
dependencies:
- '@octokit/core': 5.1.0
+ '@octokit/core': 6.1.2
- '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.1.0)':
+ '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@6.1.2)':
dependencies:
- '@octokit/core': 5.1.0
+ '@octokit/core': 6.1.2
'@octokit/types': 13.5.0
'@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0(encoding@0.1.13))':
@@ -12003,11 +11712,11 @@ snapshots:
'@octokit/core': 4.2.4(encoding@0.1.13)
'@octokit/types': 10.0.0
- '@octokit/plugin-retry@6.0.1(@octokit/core@4.2.4(encoding@0.1.13))':
+ '@octokit/plugin-retry@7.1.1(@octokit/core@4.2.4(encoding@0.1.13))':
dependencies:
'@octokit/core': 4.2.4(encoding@0.1.13)
- '@octokit/request-error': 5.0.1
- '@octokit/types': 12.4.0
+ '@octokit/request-error': 6.1.1
+ '@octokit/types': 13.5.0
bottleneck: 2.19.5
'@octokit/request-error@2.1.0':
@@ -12022,11 +11731,9 @@ snapshots:
deprecation: 2.3.1
once: 1.4.0
- '@octokit/request-error@5.0.1':
+ '@octokit/request-error@6.1.1':
dependencies:
- '@octokit/types': 12.4.0
- deprecation: 2.3.1
- once: 1.4.0
+ '@octokit/types': 13.5.0
'@octokit/request@5.6.3(encoding@0.1.13)':
dependencies:
@@ -12050,12 +11757,12 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@octokit/request@8.1.6':
+ '@octokit/request@9.1.1':
dependencies:
- '@octokit/endpoint': 9.0.4
- '@octokit/request-error': 5.0.1
- '@octokit/types': 12.4.0
- universal-user-agent: 6.0.1
+ '@octokit/endpoint': 10.1.1
+ '@octokit/request-error': 6.1.1
+ '@octokit/types': 13.5.0
+ universal-user-agent: 7.0.2
'@octokit/rest@18.12.0(encoding@0.1.13)':
dependencies:
@@ -12075,12 +11782,12 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@octokit/rest@20.1.1':
+ '@octokit/rest@21.0.0':
dependencies:
- '@octokit/core': 5.1.0
- '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@5.1.0)
- '@octokit/plugin-request-log': 4.0.0(@octokit/core@5.1.0)
- '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@5.1.0)
+ '@octokit/core': 6.1.2
+ '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@6.1.2)
+ '@octokit/plugin-request-log': 5.3.0(@octokit/core@6.1.2)
+ '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@6.1.2)
'@octokit/tsconfig@1.0.2': {}
@@ -12088,10 +11795,6 @@ snapshots:
dependencies:
'@octokit/openapi-types': 18.1.1
- '@octokit/types@12.4.0':
- dependencies:
- '@octokit/openapi-types': 19.1.0
-
'@octokit/types@13.5.0':
dependencies:
'@octokit/openapi-types': 22.2.0
@@ -12326,18 +12029,18 @@ snapshots:
'@slack/logger@3.0.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@slack/logger@4.0.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@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.39
jsonwebtoken: 9.0.2
lodash.isstring: 4.0.1
transitivePeerDependencies:
@@ -12347,7 +12050,7 @@ snapshots:
dependencies:
'@slack/logger': 3.0.0
'@slack/web-api': 6.12.0
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/p-queue': 2.3.2
'@types/ws': 7.4.7
eventemitter3: 3.1.2
@@ -12367,7 +12070,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.39
axios: 1.7.2(debug@4.3.4)
eventemitter3: 3.1.2
form-data: 2.5.1
@@ -12452,7 +12155,7 @@ snapshots:
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/chai-dom@1.11.3':
dependencies:
@@ -12464,17 +12167,17 @@ snapshots:
'@types/cheerio@0.22.35':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/connect@3.4.38':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/cookie@0.4.1': {}
'@types/cors@2.8.17':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/d3-color@3.1.3': {}
@@ -12517,7 +12220,7 @@ snapshots:
'@types/express-serve-static-core@4.17.42':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/qs': 6.9.11
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -12534,7 +12237,7 @@ snapshots:
'@types/fs-extra@11.0.4':
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/history@4.7.11': {}
@@ -12544,7 +12247,7 @@ snapshots:
'@types/is-stream@1.1.0':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -12559,15 +12262,15 @@ snapshots:
'@types/jsonfile@6.1.4':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/jsonwebtoken@8.5.9':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/karma@6.3.8':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
log4js: 6.9.1
transitivePeerDependencies:
- supports-color
@@ -12592,7 +12295,7 @@ snapshots:
'@types/minimist@1.2.5': {}
- '@types/mocha@10.0.6': {}
+ '@types/mocha@10.0.7': {}
'@types/moment-hijri@2.1.4':
dependencies:
@@ -12602,7 +12305,7 @@ snapshots:
dependencies:
moment: 2.30.1
- '@types/node@18.19.34':
+ '@types/node@18.19.39':
dependencies:
undici-types: 5.26.5
@@ -12655,13 +12358,13 @@ snapshots:
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/serve-static@1.15.5':
dependencies:
'@types/http-errors': 2.0.4
'@types/mime': 3.0.4
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/sinon@17.0.3':
dependencies:
@@ -12679,7 +12382,7 @@ snapshots:
'@types/webpack-bundle-analyzer@4.7.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.92.1))':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
tapable: 2.2.1
webpack: 5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.92.1))
transitivePeerDependencies:
@@ -12690,7 +12393,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
'@types/yargs-parser@21.0.3': {}
@@ -12698,34 +12401,34 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)':
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
'@typescript-eslint/scope-manager': 7.13.1
- '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
'@typescript-eslint/visitor-keys': 7.13.1
eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
- ts-api-utils: 1.3.0(typescript@5.4.5)
+ ts-api-utils: 1.3.0(typescript@5.5.2)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2)':
dependencies:
'@typescript-eslint/scope-manager': 7.13.1
'@typescript-eslint/types': 7.13.1
- '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5)
+ '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2)
'@typescript-eslint/visitor-keys': 7.13.1
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
@@ -12734,21 +12437,21 @@ snapshots:
'@typescript-eslint/types': 7.13.1
'@typescript-eslint/visitor-keys': 7.13.1
- '@typescript-eslint/type-utils@7.13.1(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/type-utils@7.13.1(eslint@8.57.0)(typescript@5.5.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5)
- '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2)
+ '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
- ts-api-utils: 1.3.0(typescript@5.4.5)
+ ts-api-utils: 1.3.0(typescript@5.5.2)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@7.13.1': {}
- '@typescript-eslint/typescript-estree@7.13.1(typescript@5.4.5)':
+ '@typescript-eslint/typescript-estree@7.13.1(typescript@5.5.2)':
dependencies:
'@typescript-eslint/types': 7.13.1
'@typescript-eslint/visitor-keys': 7.13.1
@@ -12757,18 +12460,18 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.4
semver: 7.6.2
- ts-api-utils: 1.3.0(typescript@5.4.5)
+ ts-api-utils: 1.3.0(typescript@5.5.2)
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@7.13.1(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/utils@7.13.1(eslint@8.57.0)(typescript@5.5.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@typescript-eslint/scope-manager': 7.13.1
'@typescript-eslint/types': 7.13.1
- '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5)
+ '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2)
eslint: 8.57.0
transitivePeerDependencies:
- supports-color
@@ -13101,16 +12804,14 @@ snapshots:
argparse@2.0.1: {}
+ aria-query@5.1.3:
+ dependencies:
+ deep-equal: 2.2.3
+
aria-query@5.3.0:
dependencies:
dequal: 2.0.3
- arr-diff@4.0.0: {}
-
- arr-flatten@1.1.0: {}
-
- arr-union@3.1.0: {}
-
array-buffer-byte-length@1.0.1:
dependencies:
call-bind: 1.0.7
@@ -13137,8 +12838,6 @@ snapshots:
array-union@2.1.0: {}
- array-unique@0.3.2: {}
-
array.prototype.filter@1.0.3:
dependencies:
call-bind: 1.0.7
@@ -13208,7 +12907,7 @@ snapshots:
es-abstract: 1.23.3
es-shim-unscopables: 1.0.2
- array.prototype.tosorted@1.1.3:
+ array.prototype.tosorted@1.1.4:
dependencies:
call-bind: 1.0.7
define-properties: 1.2.1
@@ -13235,8 +12934,6 @@ snapshots:
assertion-error@1.1.0: {}
- assign-symbols@1.0.0: {}
-
ast-types-flow@0.0.8: {}
ast-types@0.14.2:
@@ -13257,8 +12954,6 @@ snapshots:
asynckit@0.4.0: {}
- atob@2.1.2: {}
-
autoprefixer@10.4.19(postcss@8.4.38):
dependencies:
browserslist: 4.23.0
@@ -13273,8 +12968,6 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
- axe-core@4.7.0: {}
-
axe-core@4.9.1: {}
axios@1.7.2(debug@4.3.4):
@@ -13285,9 +12978,9 @@ snapshots:
transitivePeerDependencies:
- debug
- axobject-query@3.2.1:
+ axobject-query@3.1.1:
dependencies:
- dequal: 2.0.3
+ deep-equal: 2.2.3
babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
dependencies:
@@ -13386,18 +13079,10 @@ snapshots:
base64id@2.0.0: {}
- base@0.11.2:
- dependencies:
- cache-base: 1.0.1
- class-utils: 0.3.6
- component-emitter: 1.3.1
- define-property: 1.0.0
- isobject: 3.0.1
- mixin-deep: 1.3.2
- pascalcase: 0.1.1
-
before-after-hook@2.2.3: {}
+ before-after-hook@3.0.2: {}
+
big-integer@1.6.52: {}
big.js@5.2.2: {}
@@ -13477,21 +13162,6 @@ snapshots:
dependencies:
balanced-match: 1.0.2
- braces@2.3.2:
- dependencies:
- arr-flatten: 1.1.0
- array-unique: 0.3.2
- extend-shallow: 2.0.1
- fill-range: 4.0.0
- isobject: 3.0.1
- repeat-element: 1.1.4
- snapdragon: 0.8.2
- snapdragon-node: 2.1.1
- split-string: 3.1.0
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
-
braces@3.0.2:
dependencies:
fill-range: 7.0.1
@@ -13583,18 +13253,6 @@ snapshots:
tar: 6.2.1
unique-filename: 3.0.0
- cache-base@1.0.1:
- dependencies:
- collection-visit: 1.0.0
- component-emitter: 1.3.1
- get-value: 2.0.6
- has-value: 1.0.0
- isobject: 3.0.1
- set-value: 2.0.1
- to-object-path: 0.3.0
- union-value: 1.0.1
- unset-value: 1.0.0
-
caching-transform@4.0.0:
dependencies:
hasha: 5.2.2
@@ -13726,13 +13384,6 @@ snapshots:
ci-info@3.9.0: {}
- class-utils@0.3.6:
- dependencies:
- arr-union: 3.1.0
- define-property: 0.2.5
- isobject: 3.0.1
- static-extend: 0.1.2
-
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
@@ -13795,11 +13446,6 @@ snapshots:
cmd-shim@6.0.1: {}
- collection-visit@1.0.0:
- dependencies:
- map-visit: 1.0.0
- object-visit: 1.0.1
-
color-convert@1.9.3:
dependencies:
color-name: 1.1.3
@@ -13860,8 +13506,6 @@ snapshots:
array-ify: 1.0.0
dot-prop: 5.3.0
- component-emitter@1.3.1: {}
-
compress-commons@4.1.2:
dependencies:
buffer-crc32: 0.2.13
@@ -14000,8 +13644,6 @@ snapshots:
cookie@0.5.0: {}
- copy-descriptor@0.1.1: {}
-
core-js-compat@3.36.1:
dependencies:
browserslist: 4.23.0
@@ -14025,14 +13667,14 @@ snapshots:
path-type: 4.0.0
yaml: 1.10.2
- cosmiconfig@8.3.6(typescript@5.4.5):
+ cosmiconfig@8.3.6(typescript@5.5.2):
dependencies:
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
optionalDependencies:
- typescript: 5.4.5
+ typescript: 5.5.2
cp-file@10.0.0:
dependencies:
@@ -14159,7 +13801,7 @@ snapshots:
damerau-levenshtein@1.0.8: {}
- danger@12.3.1(encoding@0.1.13):
+ danger@12.3.3(encoding@0.1.13):
dependencies:
'@gitbeaker/rest': 38.12.1
'@octokit/rest': 18.12.0(encoding@0.1.13)
@@ -14276,14 +13918,33 @@ snapshots:
decimal.js@10.4.3: {}
- decode-uri-component@0.2.2: {}
-
dedent@0.7.0: {}
deep-eql@4.1.3:
dependencies:
type-detect: 4.0.8
+ deep-equal@2.2.3:
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ call-bind: 1.0.7
+ es-get-iterator: 1.1.3
+ get-intrinsic: 1.2.4
+ is-arguments: 1.1.1
+ is-array-buffer: 3.0.4
+ is-date-object: 1.0.5
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.3
+ isarray: 2.0.5
+ object-is: 1.1.5
+ object-keys: 1.1.1
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.2
+ side-channel: 1.0.6
+ which-boxed-primitive: 1.0.2
+ which-collection: 1.0.1
+ which-typed-array: 1.1.15
+
deep-extend@0.6.0: {}
deep-is@0.1.4: {}
@@ -14310,19 +13971,6 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- define-property@0.2.5:
- dependencies:
- is-descriptor: 0.1.7
-
- define-property@1.0.0:
- dependencies:
- is-descriptor: 1.0.3
-
- define-property@2.0.2:
- dependencies:
- is-descriptor: 1.0.3
- isobject: 3.0.1
-
delaunator@5.0.1:
dependencies:
robust-predicates: 3.0.2
@@ -14475,7 +14123,7 @@ snapshots:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.17
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@@ -14648,7 +14296,7 @@ snapshots:
iterator.prototype: 1.1.2
safe-array-concat: 1.1.2
- es-module-lexer@1.4.1: {}
+ es-module-lexer@1.5.4: {}
es-object-atoms@1.0.0:
dependencies:
@@ -14717,31 +14365,31 @@ snapshots:
optionalDependencies:
source-map: 0.2.0
- eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
object.assign: 4.1.5
object.entries: 1.1.8
semver: 6.3.1
- eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
- '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
- '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
eslint: 8.57.0
- eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0)
+ eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0)
transitivePeerDependencies:
- eslint-plugin-import
- eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.2(eslint@8.57.0))(eslint@8.57.0):
+ eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.3(eslint@8.57.0))(eslint@8.57.0):
dependencies:
eslint: 8.57.0
- eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
- eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
- eslint-plugin-react: 7.34.2(eslint@8.57.0)
+ eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0))(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0)
+ eslint-plugin-react: 7.34.3(eslint@8.57.0)
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
object.assign: 4.1.5
object.entries: 1.1.8
@@ -14763,7 +14411,7 @@ snapshots:
array.prototype.find: 2.2.2
debug: 3.2.7
enhanced-resolve: 0.9.1
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
find-root: 1.1.0
hasown: 2.0.2
interpret: 1.4.0
@@ -14776,11 +14424,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.29.1)(webpack@5.92.1(webpack-cli@5.1.4)))(eslint@8.57.0):
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.29.1)(webpack@5.92.1(webpack-cli@5.1.4)))(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-webpack: 0.13.8(eslint-plugin-import@2.29.1)(webpack@5.92.1(webpack-cli@5.1.4))
@@ -14795,7 +14443,7 @@ snapshots:
lodash.snakecase: 4.1.1
lodash.upperfirst: 4.3.1
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0):
+ eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0):
dependencies:
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.3
@@ -14805,7 +14453,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.29.1)(webpack@5.92.1(webpack-cli@5.1.4)))(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.29.1)(webpack@5.92.1(webpack-cli@5.1.4)))(eslint@8.57.0)
hasown: 2.0.2
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -14816,13 +14464,13 @@ snapshots:
semver: 6.3.1
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-jsdoc@48.2.12(eslint@8.57.0):
+ eslint-plugin-jsdoc@48.4.0(eslint@8.57.0):
dependencies:
'@es-joy/jsdoccomment': 0.43.1
are-docs-informative: 0.0.2
@@ -14831,20 +14479,21 @@ snapshots:
escape-string-regexp: 4.0.0
eslint: 8.57.0
esquery: 1.5.0
+ parse-imports: 2.1.0
semver: 7.6.2
spdx-expression-parse: 4.0.0
+ synckit: 0.9.0
transitivePeerDependencies:
- supports-color
- eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
+ eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0):
dependencies:
- '@babel/runtime': 7.24.7
- aria-query: 5.3.0
+ aria-query: 5.1.3
array-includes: 3.1.8
array.prototype.flatmap: 1.3.2
ast-types-flow: 0.0.8
- axe-core: 4.7.0
- axobject-query: 3.2.1
+ axe-core: 4.9.1
+ axobject-query: 3.1.1
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
es-iterator-helpers: 1.0.19
@@ -14853,8 +14502,9 @@ snapshots:
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
minimatch: 3.1.2
- object.entries: 1.1.8
object.fromentries: 2.0.8
+ safe-regex-test: 1.0.3
+ string.prototype.includes: 2.0.0
eslint-plugin-mocha@10.4.3(eslint@8.57.0):
dependencies:
@@ -14889,13 +14539,13 @@ snapshots:
dependencies:
eslint: 8.57.0
- eslint-plugin-react@7.34.2(eslint@8.57.0):
+ eslint-plugin-react@7.34.3(eslint@8.57.0):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
array.prototype.flatmap: 1.3.2
array.prototype.toreversed: 1.1.2
- array.prototype.tosorted: 1.1.3
+ array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.0.19
eslint: 8.57.0
@@ -15066,18 +14716,6 @@ snapshots:
strip-final-newline: 4.0.0
yoctocolors: 2.0.2
- expand-brackets@2.1.4:
- dependencies:
- debug: 2.6.9
- define-property: 0.2.5
- extend-shallow: 2.0.1
- posix-character-classes: 0.1.1
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
-
expand-tilde@2.0.2:
dependencies:
homedir-polyfill: 1.0.3
@@ -15124,11 +14762,6 @@ snapshots:
dependencies:
is-extendable: 0.1.1
- extend-shallow@3.0.2:
- dependencies:
- assign-symbols: 1.0.0
- is-extendable: 1.0.1
-
extend@3.0.2: {}
external-editor@3.1.0:
@@ -15137,19 +14770,6 @@ snapshots:
iconv-lite: 0.4.24
tmp: 0.0.33
- extglob@2.0.4:
- dependencies:
- array-unique: 0.3.2
- define-property: 1.0.0
- expand-brackets: 2.1.4
- extend-shallow: 2.0.1
- fragment-cache: 0.2.1
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
-
fast-csv@4.3.6:
dependencies:
'@fast-csv/format': 4.3.5
@@ -15201,13 +14821,6 @@ snapshots:
dependencies:
minimatch: 5.1.6
- fill-range@4.0.0:
- dependencies:
- extend-shallow: 2.0.1
- is-number: 3.0.0
- repeat-string: 1.6.1
- to-regex-range: 2.1.1
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
@@ -15305,8 +14918,6 @@ snapshots:
dependencies:
is-callable: 1.2.7
- for-in@1.0.2: {}
-
foreground-child@2.0.0:
dependencies:
cross-spawn: 7.0.3
@@ -15335,10 +14946,6 @@ snapshots:
fraction.js@4.3.7: {}
- fragment-cache@0.2.1:
- dependencies:
- map-cache: 0.2.2
-
fresh@0.5.2: {}
fromentries@1.3.2: {}
@@ -15470,8 +15077,6 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
- get-value@2.0.6: {}
-
git-config-path@1.0.1:
dependencies:
extend-shallow: 2.0.1
@@ -15690,25 +15295,6 @@ snapshots:
has-unicode@2.0.1: {}
- has-value@0.3.1:
- dependencies:
- get-value: 2.0.6
- has-values: 0.1.4
- isobject: 2.1.0
-
- has-value@1.0.0:
- dependencies:
- get-value: 2.0.6
- has-values: 1.0.0
- isobject: 3.0.1
-
- has-values@0.1.4: {}
-
- has-values@1.0.0:
- dependencies:
- is-number: 3.0.0
- kind-of: 4.0.0
-
has@1.0.4: {}
hasha@5.2.2:
@@ -15957,10 +15543,6 @@ snapshots:
ipaddr.js@1.9.1: {}
- is-accessor-descriptor@1.0.1:
- dependencies:
- hasown: 2.0.2
-
is-alphabetical@1.0.4: {}
is-alphanumerical@1.0.4:
@@ -15999,8 +15581,6 @@ snapshots:
call-bind: 1.0.7
has-tostringtag: 1.0.2
- is-buffer@1.1.6: {}
-
is-buffer@2.0.5: {}
is-callable@1.2.7: {}
@@ -16013,10 +15593,6 @@ snapshots:
dependencies:
hasown: 2.0.2
- is-data-descriptor@1.0.1:
- dependencies:
- hasown: 2.0.2
-
is-data-view@1.0.1:
dependencies:
is-typed-array: 1.1.13
@@ -16027,26 +15603,12 @@ snapshots:
is-decimal@1.0.4: {}
- is-descriptor@0.1.7:
- dependencies:
- is-accessor-descriptor: 1.0.1
- is-data-descriptor: 1.0.1
-
- is-descriptor@1.0.3:
- dependencies:
- is-accessor-descriptor: 1.0.1
- is-data-descriptor: 1.0.1
-
is-docker@2.2.1: {}
is-electron@2.2.2: {}
is-extendable@0.1.1: {}
- is-extendable@1.0.1:
- dependencies:
- is-plain-object: 2.0.4
-
is-extglob@2.1.1: {}
is-finalizationregistry@1.0.2:
@@ -16079,10 +15641,6 @@ snapshots:
dependencies:
has-tostringtag: 1.0.2
- is-number@3.0.0:
- dependencies:
- kind-of: 3.2.2
-
is-number@7.0.0: {}
is-obj@2.0.0: {}
@@ -16181,10 +15739,6 @@ snapshots:
isexe@3.1.1: {}
- isobject@2.1.0:
- dependencies:
- isarray: 1.0.0
-
isobject@3.0.1: {}
istanbul-lib-coverage@3.2.2: {}
@@ -16299,7 +15853,7 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 18.19.34
+ '@types/node': 18.19.39
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -16314,27 +15868,27 @@ snapshots:
dependencies:
argparse: 2.0.1
- jscodeshift-add-imports@1.0.10(jscodeshift@0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))):
+ jscodeshift-add-imports@1.0.10(jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7))):
dependencies:
'@babel/traverse': 7.24.7
- jscodeshift: 0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
- jscodeshift-find-imports: 2.0.4(jscodeshift@0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7)))
+ jscodeshift: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7))
+ jscodeshift-find-imports: 2.0.4(jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)))
transitivePeerDependencies:
- supports-color
- jscodeshift-find-imports@2.0.4(jscodeshift@0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))):
+ jscodeshift-find-imports@2.0.4(jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7))):
dependencies:
- jscodeshift: 0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
+ jscodeshift: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7))
- jscodeshift@0.13.1(@babel/preset-env@7.24.7(@babel/core@7.24.7)):
+ jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)):
dependencies:
'@babel/core': 7.24.7
'@babel/parser': 7.24.7
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.7)
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.7)
- '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.7)
+ '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
- '@babel/preset-env': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
'@babel/preset-flow': 7.23.3(@babel/core@7.24.7)
'@babel/preset-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/register': 7.24.6(@babel/core@7.24.7)
@@ -16342,12 +15896,14 @@ snapshots:
chalk: 4.1.2
flow-parser: 0.227.0
graceful-fs: 4.2.11
- micromatch: 3.1.10
+ micromatch: 4.0.5
neo-async: 2.6.2
node-dir: 0.1.17
- recast: 0.20.5
+ recast: 0.23.9
temp: 0.8.4
write-file-atomic: 2.4.3
+ optionalDependencies:
+ '@babel/preset-env': 7.24.7(@babel/core@7.24.7)
transitivePeerDependencies:
- supports-color
@@ -16600,14 +16156,6 @@ snapshots:
dependencies:
json-buffer: 3.0.1
- kind-of@3.2.2:
- dependencies:
- is-buffer: 1.1.6
-
- kind-of@4.0.0:
- dependencies:
- is-buffer: 1.1.6
-
kind-of@6.0.3: {}
language-subtag-registry@0.3.22: {}
@@ -16622,7 +16170,7 @@ snapshots:
lerna@8.1.3(encoding@0.1.13):
dependencies:
- '@lerna/create': 8.1.3(encoding@0.1.13)(typescript@5.4.5)
+ '@lerna/create': 8.1.3(encoding@0.1.13)(typescript@5.5.2)
'@npmcli/run-script': 7.0.2
'@nx/devkit': 17.3.0(nx@17.3.0)
'@octokit/plugin-enterprise-rest': 6.0.1
@@ -16635,7 +16183,7 @@ snapshots:
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)
+ cosmiconfig: 8.3.6(typescript@5.5.2)
dedent: 0.7.0
envinfo: 7.8.1
execa: 5.0.0
@@ -16687,7 +16235,7 @@ snapshots:
strong-log-transformer: 2.1.0
tar: 6.2.1
temp-dir: 1.0.0
- typescript: 5.4.5
+ typescript: 5.5.2
upath: 2.0.1
uuid: 9.0.1
validate-npm-package-license: 3.0.4
@@ -16967,16 +16515,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- map-cache@0.2.2: {}
-
map-obj@1.0.1: {}
map-obj@4.3.0: {}
- map-visit@1.0.0:
- dependencies:
- object-visit: 1.0.1
-
markdown-it@14.1.0:
dependencies:
argparse: 2.0.1
@@ -17076,24 +16618,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- micromatch@3.1.10:
- dependencies:
- arr-diff: 4.0.0
- array-unique: 0.3.2
- braces: 2.3.2
- define-property: 2.0.2
- extend-shallow: 3.0.2
- extglob: 2.0.4
- fragment-cache: 0.2.1
- kind-of: 6.0.3
- nanomatch: 1.2.13
- object.pick: 1.3.0
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
-
micromatch@4.0.5:
dependencies:
braces: 3.0.2
@@ -17203,18 +16727,13 @@ snapshots:
minipass: 3.3.6
yallist: 4.0.0
- mixin-deep@1.3.2:
- dependencies:
- for-in: 1.0.2
- is-extendable: 1.0.1
-
mkdirp@0.5.6:
dependencies:
minimist: 1.2.8
mkdirp@1.0.4: {}
- mocha@10.4.0:
+ mocha@10.5.1:
dependencies:
ansi-colors: 4.1.1
browser-stdout: 1.3.1
@@ -17243,7 +16762,7 @@ snapshots:
dependencies:
moment: 2.30.1
- moment-jalaali@0.10.0:
+ moment-jalaali@0.10.1:
dependencies:
jalaali-js: 1.2.6
moment: 2.30.1
@@ -17293,22 +16812,6 @@ snapshots:
nanoid@3.3.7: {}
- nanomatch@1.2.13:
- dependencies:
- arr-diff: 4.0.0
- array-unique: 0.3.2
- define-property: 2.0.2
- extend-shallow: 3.0.2
- fragment-cache: 0.2.1
- is-windows: 1.0.2
- kind-of: 6.0.3
- object.pick: 1.3.0
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
-
natural-compare@1.4.0: {}
nearley@2.20.1:
@@ -17635,12 +17138,6 @@ snapshots:
object-assign@4.1.1: {}
- object-copy@0.1.0:
- dependencies:
- copy-descriptor: 0.1.1
- define-property: 0.2.5
- kind-of: 3.2.2
-
object-hash@2.2.0: {}
object-inspect@1.13.1: {}
@@ -17654,10 +17151,6 @@ snapshots:
object-keys@1.1.1: {}
- object-visit@1.0.1:
- dependencies:
- isobject: 3.0.1
-
object.assign@4.1.5:
dependencies:
call-bind: 1.0.7
@@ -17699,10 +17192,6 @@ snapshots:
es-abstract: 1.23.3
es-object-atoms: 1.0.0
- object.pick@1.3.0:
- dependencies:
- isobject: 3.0.1
-
object.values@1.2.0:
dependencies:
call-bind: 1.0.7
@@ -17935,6 +17424,11 @@ snapshots:
parse-github-url@1.0.2: {}
+ parse-imports@2.1.0:
+ dependencies:
+ es-module-lexer: 1.5.4
+ slashes: 3.0.12
+
parse-json@4.0.0:
dependencies:
error-ex: 1.3.2
@@ -17979,8 +17473,6 @@ snapshots:
no-case: 3.0.4
tslib: 2.6.2
- pascalcase@0.1.1: {}
-
path-exists@3.0.0: {}
path-exists@4.0.0: {}
@@ -18066,8 +17558,6 @@ snapshots:
dependencies:
semver-compare: 1.0.0
- posix-character-classes@0.1.1: {}
-
possible-typed-array-names@1.0.0: {}
postcss-value-parser@4.2.0: {}
@@ -18465,11 +17955,6 @@ snapshots:
dependencies:
'@babel/runtime': 7.24.7
- regex-not@1.0.2:
- dependencies:
- extend-shallow: 3.0.2
- safe-regex: 1.1.0
-
regexp.prototype.flags@1.5.2:
dependencies:
call-bind: 1.0.7
@@ -18531,8 +18016,6 @@ snapshots:
lodash: 4.17.21
strip-ansi: 6.0.1
- repeat-element@1.1.4: {}
-
repeat-string@1.6.1: {}
require-directory@2.1.1: {}
@@ -18555,8 +18038,6 @@ snapshots:
resolve-pkg-maps@1.0.0: {}
- resolve-url@0.2.1: {}
-
resolve@1.1.7: {}
resolve@1.22.8:
@@ -18648,10 +18129,6 @@ snapshots:
es-errors: 1.3.0
is-regex: 1.1.4
- safe-regex@1.1.0:
- dependencies:
- ret: 0.1.15
-
safer-buffer@2.1.2: {}
saxes@5.0.1:
@@ -18773,13 +18250,6 @@ snapshots:
functions-have-names: 1.2.3
has-property-descriptors: 1.0.2
- set-value@2.0.1:
- dependencies:
- extend-shallow: 2.0.1
- is-extendable: 0.1.1
- is-plain-object: 2.0.4
- split-string: 3.1.0
-
setimmediate@1.0.5: {}
setprototypeof@1.2.0: {}
@@ -18883,30 +18353,9 @@ snapshots:
slash@5.1.0: {}
- smart-buffer@4.2.0: {}
-
- snapdragon-node@2.1.1:
- dependencies:
- define-property: 1.0.0
- isobject: 3.0.1
- snapdragon-util: 3.0.1
-
- snapdragon-util@3.0.1:
- dependencies:
- kind-of: 3.2.2
+ slashes@3.0.12: {}
- snapdragon@0.8.2:
- dependencies:
- base: 0.11.2
- debug: 2.6.9
- define-property: 0.2.5
- extend-shallow: 2.0.1
- map-cache: 0.2.2
- source-map: 0.5.7
- source-map-resolve: 0.5.3
- use: 3.1.1
- transitivePeerDependencies:
- - supports-color
+ smart-buffer@4.2.0: {}
socket.io-adapter@2.5.2:
dependencies:
@@ -18963,21 +18412,11 @@ snapshots:
source-map-js@1.2.0: {}
- source-map-resolve@0.5.3:
- dependencies:
- atob: 2.1.2
- decode-uri-component: 0.2.2
- resolve-url: 0.2.1
- source-map-url: 0.4.1
- urix: 0.1.0
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
- source-map-url@0.4.1: {}
-
source-map@0.2.0:
dependencies:
amdefine: 1.0.1
@@ -19017,10 +18456,6 @@ snapshots:
spdx-license-ids@3.0.16: {}
- split-string@3.1.0:
- dependencies:
- extend-shallow: 3.0.2
-
split2@3.2.2:
dependencies:
readable-stream: 3.6.2
@@ -19039,11 +18474,6 @@ snapshots:
dependencies:
minipass: 3.3.6
- static-extend@0.1.2:
- dependencies:
- define-property: 0.2.5
- object-copy: 0.1.0
-
statuses@1.5.0: {}
statuses@2.0.1: {}
@@ -19085,6 +18515,11 @@ snapshots:
emoji-regex: 9.2.2
strip-ansi: 7.1.0
+ string.prototype.includes@2.0.0:
+ dependencies:
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+
string.prototype.matchall@4.0.11:
dependencies:
call-bind: 1.0.7
@@ -19229,6 +18664,11 @@ snapshots:
'@pkgr/core': 0.1.1
tslib: 2.6.2
+ synckit@0.9.0:
+ dependencies:
+ '@pkgr/core': 0.1.1
+ tslib: 2.6.2
+
tapable@0.1.10: {}
tapable@2.2.1: {}
@@ -19332,26 +18772,10 @@ snapshots:
to-fast-properties@2.0.0: {}
- to-object-path@0.3.0:
- dependencies:
- kind-of: 3.2.2
-
- to-regex-range@2.1.1:
- dependencies:
- is-number: 3.0.0
- repeat-string: 1.6.1
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
- to-regex@3.0.2:
- dependencies:
- define-property: 2.0.2
- extend-shallow: 3.0.2
- regex-not: 1.0.2
- safe-regex: 1.1.0
-
toidentifier@1.0.1: {}
totalist@3.0.1: {}
@@ -19377,9 +18801,9 @@ snapshots:
trough@1.0.5: {}
- ts-api-utils@1.3.0(typescript@5.4.5):
+ ts-api-utils@1.3.0(typescript@5.5.2):
dependencies:
- typescript: 5.4.5
+ typescript: 5.5.2
ts-interface-checker@0.1.13: {}
@@ -19400,7 +18824,7 @@ snapshots:
tsscmp@1.0.6: {}
- tsx@4.15.5:
+ tsx@4.15.7:
dependencies:
esbuild: 0.21.5
get-tsconfig: 4.7.5
@@ -19490,7 +18914,7 @@ snapshots:
typedarray@0.0.6: {}
- typescript@5.4.5: {}
+ typescript@5.5.2: {}
ua-parser-js@0.7.37: {}
@@ -19531,13 +18955,6 @@ snapshots:
trough: 1.0.5
vfile: 4.2.1
- union-value@1.0.1:
- dependencies:
- arr-union: 3.1.0
- get-value: 2.0.6
- is-extendable: 0.1.1
- set-value: 2.0.1
-
unique-filename@3.0.0:
dependencies:
unique-slug: 4.0.0
@@ -19565,6 +18982,8 @@ snapshots:
universal-user-agent@6.0.1: {}
+ universal-user-agent@7.0.2: {}
+
universalify@0.1.2: {}
universalify@0.2.0: {}
@@ -19573,11 +18992,6 @@ snapshots:
unpipe@1.0.0: {}
- unset-value@1.0.0:
- dependencies:
- has-value: 0.3.1
- isobject: 3.0.1
-
unzipper@0.10.14:
dependencies:
big-integer: 1.6.52
@@ -19608,8 +19022,6 @@ snapshots:
dependencies:
punycode: 2.3.1
- urix@0.1.0: {}
-
url-parse@1.5.10:
dependencies:
querystringify: 2.2.0
@@ -19619,8 +19031,6 @@ snapshots:
urlpattern-polyfill@8.0.2: {}
- use@3.1.1: {}
-
util-deprecate@1.0.2: {}
util.inherits@1.0.3: {}
@@ -19758,7 +19168,7 @@ snapshots:
browserslist: 4.23.0
chrome-trace-event: 1.0.3
enhanced-resolve: 5.17.0
- es-module-lexer: 1.4.1
+ es-module-lexer: 1.5.4
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
@@ -19791,7 +19201,7 @@ snapshots:
browserslist: 4.23.0
chrome-trace-event: 1.0.3
enhanced-resolve: 5.17.0
- es-module-lexer: 1.4.1
+ es-module-lexer: 1.5.4
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
diff --git a/test/package.json b/test/package.json
index f40a0875b872..3b9b5dd93096 100644
--- a/test/package.json
+++ b/test/package.json
@@ -25,7 +25,7 @@
"chai": "^4.4.1",
"dayjs": "^1.11.11",
"moment": "^2.30.1",
- "moment-jalaali": "^0.10.0",
+ "moment-jalaali": "^0.10.1",
"prop-types": "^15.8.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
diff --git a/test/utils/tree-view/fakeContextValue.ts b/test/utils/tree-view/fakeContextValue.ts
index 5f4e44545102..f31059052035 100644
--- a/test/utils/tree-view/fakeContextValue.ts
+++ b/test/utils/tree-view/fakeContextValue.ts
@@ -39,4 +39,5 @@ export const getFakeContextValue = (
rootRef: {
current: null,
},
+ expansion: { expansionTrigger: 'content' },
});