Skip to content

Commit 26f3f98

Browse files
committed
Merge branch 'master' into refactor-css-breaking-change
2 parents c0036e6 + 242be42 commit 26f3f98

File tree

192 files changed

+1672
-7859
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

192 files changed

+1672
-7859
lines changed

.mocharc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = {
88
// We're leaving this to make sure.
99
'docs/.next/**',
1010
],
11+
'node-option': ['no-experimental-detect-module'],
1112
recursive: true,
1213
timeout: (process.env.CIRCLECI === 'true' ? 5 : 2) * 1000, // Circle CI has low-performance CPUs.
1314
reporter: 'dot',
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import * as React from 'react';
2+
import { LineChart } from '@mui/x-charts/LineChart';
3+
4+
const dateFormatter = Intl.DateTimeFormat(undefined, {
5+
month: '2-digit',
6+
day: '2-digit',
7+
});
8+
const oneDay = 24 * 60 * 60 * 1000; // in milliseconds
9+
10+
const length = 16;
11+
const firstDataSeed = randBetween(0, 5000);
12+
const secondDataSeed = randBetween(0, 5000);
13+
const initialFirstData = Array.from({ length }).map(
14+
(_, __, array) => (array.at(-1) ?? firstDataSeed) + randBetween(-500, 500),
15+
);
16+
const initialSecondData = Array.from({ length }).map(
17+
(_, __, array) => (array.at(-1) ?? secondDataSeed) + randBetween(-500, 500),
18+
);
19+
20+
export default function LiveLineChartNoSnap() {
21+
const [date, setDate] = React.useState(new Date(2000, 0, 0));
22+
const [firstData, setFirstData] = React.useState(initialFirstData);
23+
const [secondData, setSecondData] = React.useState(initialSecondData);
24+
25+
React.useEffect(() => {
26+
const intervalId = setInterval(() => {
27+
setDate((prev) => new Date(prev.getTime() + oneDay));
28+
setFirstData((prev) => [
29+
...prev.slice(1),
30+
prev.at(-1) + randBetween(-500, 500),
31+
]);
32+
setSecondData((prev) => [
33+
...prev.slice(1),
34+
prev.at(-1) + randBetween(-500, 500),
35+
]);
36+
}, 1000);
37+
38+
return () => {
39+
clearInterval(intervalId);
40+
};
41+
}, []);
42+
43+
return (
44+
<LineChart
45+
height={300}
46+
series={[{ data: secondData }, { data: firstData }]}
47+
xAxis={[
48+
{
49+
scaleType: 'point',
50+
data: Array.from({ length }).map(
51+
(_, i) => new Date(date.getTime() + i * oneDay),
52+
),
53+
valueFormatter: (value) => dateFormatter.format(value),
54+
},
55+
]}
56+
yAxis={[{ width: 50 }]}
57+
margin={{ right: 24 }}
58+
/>
59+
);
60+
}
61+
62+
function randBetween(min, max) {
63+
return Math.floor(Math.random() * (max - min + 1) + min);
64+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import * as React from 'react';
2+
import { LineChart } from '@mui/x-charts/LineChart';
3+
4+
const dateFormatter = Intl.DateTimeFormat(undefined, {
5+
month: '2-digit',
6+
day: '2-digit',
7+
});
8+
const oneDay = 24 * 60 * 60 * 1000; // in milliseconds
9+
10+
const length = 16;
11+
const firstDataSeed = randBetween(0, 5000);
12+
const secondDataSeed = randBetween(0, 5000);
13+
const initialFirstData = Array.from<number>({ length }).map(
14+
(_, __, array) => (array.at(-1) ?? firstDataSeed) + randBetween(-500, 500),
15+
);
16+
const initialSecondData = Array.from<number>({ length }).map(
17+
(_, __, array) => (array.at(-1) ?? secondDataSeed) + randBetween(-500, 500),
18+
);
19+
20+
export default function LiveLineChartNoSnap() {
21+
const [date, setDate] = React.useState(new Date(2000, 0, 0));
22+
const [firstData, setFirstData] = React.useState(initialFirstData);
23+
const [secondData, setSecondData] = React.useState(initialSecondData);
24+
25+
React.useEffect(() => {
26+
const intervalId = setInterval(() => {
27+
setDate((prev) => new Date(prev.getTime() + oneDay));
28+
setFirstData((prev) => [
29+
...prev.slice(1),
30+
prev.at(-1)! + randBetween(-500, 500),
31+
]);
32+
setSecondData((prev) => [
33+
...prev.slice(1),
34+
prev.at(-1)! + randBetween(-500, 500),
35+
]);
36+
}, 1000);
37+
38+
return () => {
39+
clearInterval(intervalId);
40+
};
41+
}, []);
42+
43+
return (
44+
<LineChart
45+
height={300}
46+
series={[{ data: secondData }, { data: firstData }]}
47+
xAxis={[
48+
{
49+
scaleType: 'point',
50+
data: Array.from({ length }).map(
51+
(_, i) => new Date(date.getTime() + i * oneDay),
52+
),
53+
valueFormatter: (value: Date) => dateFormatter.format(value),
54+
},
55+
]}
56+
yAxis={[{ width: 50 }]}
57+
margin={{ right: 24 }}
58+
/>
59+
);
60+
}
61+
62+
function randBetween(min: number, max: number) {
63+
return Math.floor(Math.random() * (max - min + 1) + min);
64+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<LineChart
2+
height={300}
3+
series={[{ data: secondData }, { data: firstData }]}
4+
xAxis={[
5+
{
6+
scaleType: 'point',
7+
data: Array.from({ length }).map(
8+
(_, i) => new Date(date.getTime() + i * oneDay),
9+
),
10+
valueFormatter: (value: Date) => dateFormatter.format(value),
11+
},
12+
]}
13+
yAxis={[{ width: 50 }]}
14+
margin={{ right: 24 }}
15+
/>

docs/data/charts/line-demo/line-demo.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ components: LineChart, LineElement, LineHighlightElement, LineHighlightPlot, Lin
3232

3333
{{"demo": "LineChartConnectNulls.js"}}
3434

35+
## Line chart with live data
36+
37+
{{"demo": "LiveLineChartNoSnap.js"}}
38+
3539
## Line with forecast
3640

3741
To show that parts of the data have different meanings, you can render stylised lines for each of them.

docs/data/data-grid/components/CustomToolbarGrid.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function CustomToolbar() {
2424
<GridToolbarExport
2525
slotProps={{
2626
tooltip: { title: 'Export data' },
27-
button: { variant: 'outlined' },
27+
button: { material: { variant: 'outlined' } },
2828
}}
2929
/>
3030
</GridToolbarContainer>

docs/data/data-grid/components/CustomToolbarGrid.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function CustomToolbar() {
2424
<GridToolbarExport
2525
slotProps={{
2626
tooltip: { title: 'Export data' },
27-
button: { variant: 'outlined' },
27+
button: { material: { variant: 'outlined' } },
2828
}}
2929
/>
3030
</GridToolbarContainer>

docs/data/data-grid/components/quick-filter/GridControlledQuickFilter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ function CustomToolbar() {
9898
edge="end"
9999
size="small"
100100
aria-label="Clear search"
101-
sx={{ marginRight: -0.75 }}
101+
material={{ sx: { marginRight: -0.75 } }}
102102
>
103103
<CancelIcon fontSize="small" />
104104
</QuickFilterClear>

docs/data/data-grid/components/quick-filter/GridControlledQuickFilter.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ function CustomToolbar() {
106106
edge="end"
107107
size="small"
108108
aria-label="Clear search"
109-
sx={{ marginRight: -0.75 }}
109+
material={{ sx: { marginRight: -0.75 } }}
110110
>
111111
<CancelIcon fontSize="small" />
112112
</QuickFilterClear>

docs/data/data-grid/components/quick-filter/GridPersistentQuickFilter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function CustomToolbar() {
4343
edge="end"
4444
size="small"
4545
aria-label="Clear search"
46-
sx={{ marginRight: -0.75 }}
46+
material={{ sx: { marginRight: -0.75 } }}
4747
>
4848
<CancelIcon fontSize="small" />
4949
</QuickFilterClear>

0 commit comments

Comments
 (0)