Skip to content

Commit d8bd15d

Browse files
authored
Merge branch 'master' into fix/rowtree-depth-undefined
2 parents 1f48cc5 + 0f127ba commit d8bd15d

26 files changed

+845
-229
lines changed

docs/data/scheduler/event-calendar/FullEventCalendar.js

Lines changed: 1 addition & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,9 @@
11
import * as React from 'react';
2-
import { DateTime } from 'luxon';
32

43
import { EventCalendar } from '@mui/x-scheduler/joy/event-calendar';
4+
import { events as initialEvents, resources } from './month-events';
55
import classes from './FullEventCalendar.module.css';
66

7-
const initialEvents = [
8-
{
9-
id: '1',
10-
start: DateTime.fromISO('2025-05-26T07:30:00'),
11-
end: DateTime.fromISO('2025-05-26T08:15:00'),
12-
title: 'Footing',
13-
resource: 'workout',
14-
},
15-
{
16-
id: '2',
17-
start: DateTime.fromISO('2025-05-26T16:00:00'),
18-
end: DateTime.fromISO('2025-05-26T17:00:00'),
19-
title: 'Weekly',
20-
resource: 'work',
21-
},
22-
{
23-
id: '3',
24-
start: DateTime.fromISO('2025-05-27T10:00:00'),
25-
end: DateTime.fromISO('2025-05-27T11:00:00'),
26-
title: 'Backlog grooming',
27-
resource: 'work',
28-
},
29-
{
30-
id: '4',
31-
start: DateTime.fromISO('2025-05-27T19:00:00'),
32-
end: DateTime.fromISO('2025-05-27T22:00:00'),
33-
title: 'Pizza party',
34-
},
35-
{
36-
id: '5',
37-
start: DateTime.fromISO('2025-05-28T08:00:00'),
38-
end: DateTime.fromISO('2025-05-28T17:00:00'),
39-
title: 'Scheduler deep dive',
40-
resource: 'work',
41-
},
42-
{
43-
id: '6',
44-
start: DateTime.fromISO('2025-05-29T07:30:00'),
45-
end: DateTime.fromISO('2025-05-29T08:15:00'),
46-
title: 'Footing',
47-
resource: 'workout',
48-
},
49-
{
50-
id: '7',
51-
start: DateTime.fromISO('2025-05-29T08:15:00'),
52-
end: DateTime.fromISO('2025-05-29T08:30:00'),
53-
title: 'Standup',
54-
resource: 'work',
55-
},
56-
{
57-
id: '8',
58-
start: DateTime.fromISO('2025-05-30T15:00:00'),
59-
end: DateTime.fromISO('2025-05-30T15:45:00'),
60-
title: 'Retrospective',
61-
resource: 'work',
62-
},
63-
];
64-
65-
const resources = [
66-
{ name: 'Work', id: 'work', color: 'red' },
67-
{ name: 'Workout', id: 'workout', color: 'jade' },
68-
];
69-
707
export default function FullEventCalendar() {
718
const [events, setEvents] = React.useState(initialEvents);
729

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
.Container {
2-
height: 500px;
2+
height: 600px;
33
}

docs/data/scheduler/event-calendar/FullEventCalendar.tsx

Lines changed: 3 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,10 @@
11
import * as React from 'react';
2-
import { DateTime } from 'luxon';
3-
import { CalendarEvent, CalendarResource } from '@mui/x-scheduler/joy';
2+
3+
import { CalendarEvent } from '@mui/x-scheduler/joy';
44
import { EventCalendar } from '@mui/x-scheduler/joy/event-calendar';
5+
import { events as initialEvents, resources } from './month-events';
56
import classes from './FullEventCalendar.module.css';
67

7-
const initialEvents: CalendarEvent[] = [
8-
{
9-
id: '1',
10-
start: DateTime.fromISO('2025-05-26T07:30:00'),
11-
end: DateTime.fromISO('2025-05-26T08:15:00'),
12-
title: 'Footing',
13-
resource: 'workout',
14-
},
15-
{
16-
id: '2',
17-
start: DateTime.fromISO('2025-05-26T16:00:00'),
18-
end: DateTime.fromISO('2025-05-26T17:00:00'),
19-
title: 'Weekly',
20-
resource: 'work',
21-
},
22-
{
23-
id: '3',
24-
start: DateTime.fromISO('2025-05-27T10:00:00'),
25-
end: DateTime.fromISO('2025-05-27T11:00:00'),
26-
title: 'Backlog grooming',
27-
resource: 'work',
28-
},
29-
{
30-
id: '4',
31-
start: DateTime.fromISO('2025-05-27T19:00:00'),
32-
end: DateTime.fromISO('2025-05-27T22:00:00'),
33-
title: 'Pizza party',
34-
},
35-
{
36-
id: '5',
37-
start: DateTime.fromISO('2025-05-28T08:00:00'),
38-
end: DateTime.fromISO('2025-05-28T17:00:00'),
39-
title: 'Scheduler deep dive',
40-
resource: 'work',
41-
},
42-
{
43-
id: '6',
44-
start: DateTime.fromISO('2025-05-29T07:30:00'),
45-
end: DateTime.fromISO('2025-05-29T08:15:00'),
46-
title: 'Footing',
47-
resource: 'workout',
48-
},
49-
{
50-
id: '7',
51-
start: DateTime.fromISO('2025-05-29T08:15:00'),
52-
end: DateTime.fromISO('2025-05-29T08:30:00'),
53-
title: 'Standup',
54-
resource: 'work',
55-
},
56-
{
57-
id: '8',
58-
start: DateTime.fromISO('2025-05-30T15:00:00'),
59-
end: DateTime.fromISO('2025-05-30T15:45:00'),
60-
title: 'Retrospective',
61-
resource: 'work',
62-
},
63-
];
64-
65-
const resources: CalendarResource[] = [
66-
{ name: 'Work', id: 'work', color: 'red' },
67-
{ name: 'Workout', id: 'workout', color: 'jade' },
68-
];
69-
708
export default function FullEventCalendar() {
719
const [events, setEvents] = React.useState<CalendarEvent[]>(initialEvents);
7210

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import * as React from 'react';
2+
3+
import { StandaloneView } from '@mui/x-scheduler/joy/standalone-view';
4+
import { MonthView } from '@mui/x-scheduler/joy/month-view';
5+
import { events as initialEvents, resources } from './month-events';
6+
import classes from './StandaloneMonthView.module.css';
7+
8+
export default function StandaloneMonthView() {
9+
const [events, setEvents] = React.useState(initialEvents);
10+
11+
return (
12+
<StandaloneView events={events} resources={resources}>
13+
<MonthView className={classes.Container} onEventsChange={setEvents} />
14+
</StandaloneView>
15+
);
16+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.Container {
2+
height: 500px;
3+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import * as React from 'react';
2+
3+
import { CalendarEvent } from '@mui/x-scheduler/joy';
4+
import { StandaloneView } from '@mui/x-scheduler/joy/standalone-view';
5+
import { MonthView } from '@mui/x-scheduler/joy/month-view';
6+
import { events as initialEvents, resources } from './month-events';
7+
import classes from './StandaloneMonthView.module.css';
8+
9+
export default function StandaloneMonthView() {
10+
const [events, setEvents] = React.useState<CalendarEvent[]>(initialEvents);
11+
12+
return (
13+
<StandaloneView events={events} resources={resources}>
14+
<MonthView className={classes.Container} onEventsChange={setEvents} />
15+
</StandaloneView>
16+
);
17+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<StandaloneView events={events} resources={resources}>
2+
<MonthView className={classes.Container} onEventsChange={setEvents} />
3+
</StandaloneView>

docs/data/scheduler/event-calendar/event-calendar.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ All the views of the Event Calendar can be used as standalone components:
3333

3434
### Month
3535

36-
TODO: Add a demo of a standalone `<MonthView />` when available.
36+
{{"demo": "StandaloneMonthView.js", "bg": "inline", "defaultCodeOpen": false}}
3737

3838
### Agenda
3939

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
import { DateTime } from 'luxon';
2+
3+
export const events = [
4+
{
5+
id: '1',
6+
start: DateTime.fromISO('2025-05-05T07:30:00'),
7+
end: DateTime.fromISO('2025-05-05T08:15:00'),
8+
title: 'Footing',
9+
resource: 'workout',
10+
},
11+
{
12+
id: '2',
13+
start: DateTime.fromISO('2025-05-05T16:00:00'),
14+
end: DateTime.fromISO('2025-05-05T17:00:00'),
15+
title: 'Weekly',
16+
resource: 'work',
17+
},
18+
{
19+
id: '3',
20+
start: DateTime.fromISO('2025-05-06T10:00:00'),
21+
end: DateTime.fromISO('2025-05-06T11:00:00'),
22+
title: 'Backlog grooming',
23+
resource: 'work',
24+
},
25+
{
26+
id: '4',
27+
start: DateTime.fromISO('2025-05-08T07:30:00'),
28+
end: DateTime.fromISO('2025-05-08T08:15:00'),
29+
title: 'Footing',
30+
resource: 'workout',
31+
},
32+
{
33+
id: '5',
34+
start: DateTime.fromISO('2025-05-12T07:30:00'),
35+
end: DateTime.fromISO('2025-05-12T08:15:00'),
36+
title: 'Footing',
37+
resource: 'workout',
38+
},
39+
{
40+
id: '6',
41+
start: DateTime.fromISO('2025-05-12T16:00:00'),
42+
end: DateTime.fromISO('2025-05-12T17:00:00'),
43+
title: 'Weekly',
44+
resource: 'work',
45+
},
46+
{
47+
id: '7',
48+
start: DateTime.fromISO('2025-05-15T07:30:00'),
49+
end: DateTime.fromISO('2025-05-15T08:15:00'),
50+
title: 'Footing',
51+
resource: 'workout',
52+
},
53+
{
54+
id: '8',
55+
start: DateTime.fromISO('2025-05-16T15:00:00'),
56+
end: DateTime.fromISO('2025-05-16T15:45:00'),
57+
title: 'Retrospective',
58+
resource: 'work',
59+
},
60+
{
61+
id: '9',
62+
start: DateTime.fromISO('2025-05-19T07:30:00'),
63+
end: DateTime.fromISO('2025-05-19T08:15:00'),
64+
title: 'Footing',
65+
resource: 'workout',
66+
},
67+
{
68+
id: '10',
69+
start: DateTime.fromISO('2025-05-19T16:00:00'),
70+
end: DateTime.fromISO('2025-05-19T17:00:00'),
71+
title: 'Weekly',
72+
resource: 'work',
73+
},
74+
{
75+
id: '11',
76+
start: DateTime.fromISO('2025-05-20T10:00:00'),
77+
end: DateTime.fromISO('2025-05-20T11:00:00'),
78+
title: 'Backlog grooming',
79+
resource: 'work',
80+
},
81+
{
82+
id: '12',
83+
start: DateTime.fromISO('2025-05-22T07:30:00'),
84+
end: DateTime.fromISO('2025-05-22T08:15:00'),
85+
title: 'Footing',
86+
resource: 'workout',
87+
},
88+
{
89+
id: '13',
90+
start: DateTime.fromISO('2025-05-26T07:30:00'),
91+
end: DateTime.fromISO('2025-05-26T08:15:00'),
92+
title: 'Footing',
93+
resource: 'workout',
94+
},
95+
{
96+
id: '14',
97+
start: DateTime.fromISO('2025-05-26T16:00:00'),
98+
end: DateTime.fromISO('2025-05-26T17:00:00'),
99+
title: 'Weekly',
100+
resource: 'work',
101+
},
102+
{
103+
id: '15',
104+
start: DateTime.fromISO('2025-05-27T10:00:00'),
105+
end: DateTime.fromISO('2025-05-27T11:00:00'),
106+
title: 'Backlog grooming',
107+
resource: 'work',
108+
},
109+
{
110+
id: '16',
111+
start: DateTime.fromISO('2025-05-27T19:00:00'),
112+
end: DateTime.fromISO('2025-05-27T22:00:00'),
113+
title: 'Pizza party',
114+
},
115+
{
116+
id: '17',
117+
start: DateTime.fromISO('2025-05-28T08:00:00'),
118+
end: DateTime.fromISO('2025-05-28T17:00:00'),
119+
title: 'Scheduler deep dive',
120+
resource: 'work',
121+
},
122+
{
123+
id: '18',
124+
start: DateTime.fromISO('2025-05-29T07:30:00'),
125+
end: DateTime.fromISO('2025-05-29T08:15:00'),
126+
title: 'Footing',
127+
resource: 'workout',
128+
},
129+
{
130+
id: '19',
131+
start: DateTime.fromISO('2025-05-29T08:15:00'),
132+
end: DateTime.fromISO('2025-05-29T08:30:00'),
133+
title: 'Standup',
134+
resource: 'work',
135+
},
136+
{
137+
id: '20',
138+
start: DateTime.fromISO('2025-05-30T15:00:00'),
139+
end: DateTime.fromISO('2025-05-30T15:45:00'),
140+
title: 'Retrospective',
141+
resource: 'work',
142+
},
143+
];
144+
145+
export const resources = [
146+
{ name: 'Work', id: 'work', color: 'red' },
147+
{ name: 'Workout', id: 'workout', color: 'jade' },
148+
];

0 commit comments

Comments
 (0)