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' }, });