diff --git a/docs/screenshots/admin.png b/docs/screenshots/admin.png
index 244e64f..33571bb 100644
Binary files a/docs/screenshots/admin.png and b/docs/screenshots/admin.png differ
diff --git a/docs/screenshots/board.png b/docs/screenshots/board.png
index 1638200..3755794 100644
Binary files a/docs/screenshots/board.png and b/docs/screenshots/board.png differ
diff --git a/docs/screenshots/calendar-light.png b/docs/screenshots/calendar-light.png
new file mode 100644
index 0000000..1d2bd5c
Binary files /dev/null and b/docs/screenshots/calendar-light.png differ
diff --git a/docs/screenshots/delegated.png b/docs/screenshots/delegated.png
index 0715438..195a9b9 100644
Binary files a/docs/screenshots/delegated.png and b/docs/screenshots/delegated.png differ
diff --git a/docs/screenshots/detail.png b/docs/screenshots/detail.png
index 784fa93..fb3e089 100644
Binary files a/docs/screenshots/detail.png and b/docs/screenshots/detail.png differ
diff --git a/docs/screenshots/history.png b/docs/screenshots/history.png
index 78ef54e..71caee8 100644
Binary files a/docs/screenshots/history.png and b/docs/screenshots/history.png differ
diff --git a/docs/screenshots/notes-shared-light.png b/docs/screenshots/notes-shared-light.png
new file mode 100644
index 0000000..7a216f1
Binary files /dev/null and b/docs/screenshots/notes-shared-light.png differ
diff --git a/docs/screenshots/notes-source.png b/docs/screenshots/notes-source.png
index 4faf0ae..8f59fca 100644
Binary files a/docs/screenshots/notes-source.png and b/docs/screenshots/notes-source.png differ
diff --git a/docs/screenshots/notes.png b/docs/screenshots/notes.png
index f36b4b6..2b553ea 100644
Binary files a/docs/screenshots/notes.png and b/docs/screenshots/notes.png differ
diff --git a/docs/screenshots/sections.png b/docs/screenshots/sections.png
index 3214963..24f1bb2 100644
Binary files a/docs/screenshots/sections.png and b/docs/screenshots/sections.png differ
diff --git a/docs/screenshots/settings.png b/docs/screenshots/settings.png
index 9b1d08d..87f1350 100644
Binary files a/docs/screenshots/settings.png and b/docs/screenshots/settings.png differ
diff --git a/docs/screenshots/themes.png b/docs/screenshots/themes.png
index c2882e8..2ef213d 100644
Binary files a/docs/screenshots/themes.png and b/docs/screenshots/themes.png differ
diff --git a/docs/screenshots/today-light.png b/docs/screenshots/today-light.png
index 32d6078..be36856 100644
Binary files a/docs/screenshots/today-light.png and b/docs/screenshots/today-light.png differ
diff --git a/docs/screenshots/today.png b/docs/screenshots/today.png
index e28abea..9188993 100644
Binary files a/docs/screenshots/today.png and b/docs/screenshots/today.png differ
diff --git a/docs/screenshots/upcoming.png b/docs/screenshots/upcoming.png
index eb94dbd..a69d23e 100644
Binary files a/docs/screenshots/upcoming.png and b/docs/screenshots/upcoming.png differ
diff --git a/docs/screenshots/week.png b/docs/screenshots/week.png
index 05fa78a..b78b3a3 100644
Binary files a/docs/screenshots/week.png and b/docs/screenshots/week.png differ
diff --git a/site/index.html b/site/index.html
index 2e7a0cc..3ba03ba 100644
--- a/site/index.html
+++ b/site/index.html
@@ -926,6 +926,26 @@
Waiting on others
diff --git a/site/screenshots/admin.webp b/site/screenshots/admin.webp
index 32082b7..e8bbf1f 100644
Binary files a/site/screenshots/admin.webp and b/site/screenshots/admin.webp differ
diff --git a/site/screenshots/board.webp b/site/screenshots/board.webp
index d24030a..287c767 100644
Binary files a/site/screenshots/board.webp and b/site/screenshots/board.webp differ
diff --git a/site/screenshots/calendar-light.webp b/site/screenshots/calendar-light.webp
new file mode 100644
index 0000000..cdfb6dc
Binary files /dev/null and b/site/screenshots/calendar-light.webp differ
diff --git a/site/screenshots/delegated.webp b/site/screenshots/delegated.webp
index e8cb87d..664f297 100644
Binary files a/site/screenshots/delegated.webp and b/site/screenshots/delegated.webp differ
diff --git a/site/screenshots/detail.webp b/site/screenshots/detail.webp
index 0e138cd..34926bb 100644
Binary files a/site/screenshots/detail.webp and b/site/screenshots/detail.webp differ
diff --git a/site/screenshots/history.webp b/site/screenshots/history.webp
index 15d92e4..0fc0ac7 100644
Binary files a/site/screenshots/history.webp and b/site/screenshots/history.webp differ
diff --git a/site/screenshots/notes-shared-light.webp b/site/screenshots/notes-shared-light.webp
new file mode 100644
index 0000000..682dc87
Binary files /dev/null and b/site/screenshots/notes-shared-light.webp differ
diff --git a/site/screenshots/notes-source.webp b/site/screenshots/notes-source.webp
index b2d29ea..2639340 100644
Binary files a/site/screenshots/notes-source.webp and b/site/screenshots/notes-source.webp differ
diff --git a/site/screenshots/notes.webp b/site/screenshots/notes.webp
index f1ea12d..4b013a2 100644
Binary files a/site/screenshots/notes.webp and b/site/screenshots/notes.webp differ
diff --git a/site/screenshots/sections.webp b/site/screenshots/sections.webp
index 0e07240..e3d8b51 100644
Binary files a/site/screenshots/sections.webp and b/site/screenshots/sections.webp differ
diff --git a/site/screenshots/settings.webp b/site/screenshots/settings.webp
index 5e38b43..3ed61f4 100644
Binary files a/site/screenshots/settings.webp and b/site/screenshots/settings.webp differ
diff --git a/site/screenshots/themes.webp b/site/screenshots/themes.webp
index 95a339e..2125131 100644
Binary files a/site/screenshots/themes.webp and b/site/screenshots/themes.webp differ
diff --git a/site/screenshots/today-light.webp b/site/screenshots/today-light.webp
index dca1f14..5679019 100644
Binary files a/site/screenshots/today-light.webp and b/site/screenshots/today-light.webp differ
diff --git a/site/screenshots/today.webp b/site/screenshots/today.webp
index 0447cd7..524e75c 100644
Binary files a/site/screenshots/today.webp and b/site/screenshots/today.webp differ
diff --git a/site/screenshots/upcoming.webp b/site/screenshots/upcoming.webp
index 1eb3399..ee3627f 100644
Binary files a/site/screenshots/upcoming.webp and b/site/screenshots/upcoming.webp differ
diff --git a/site/screenshots/week.webp b/site/screenshots/week.webp
index c0d5fad..778850e 100644
Binary files a/site/screenshots/week.webp and b/site/screenshots/week.webp differ
diff --git a/web/scripts/generate-screenshots.js b/web/scripts/generate-screenshots.js
index ab7b8d9..278a008 100644
--- a/web/scripts/generate-screenshots.js
+++ b/web/scripts/generate-screenshots.js
@@ -73,6 +73,11 @@ const SHOTS = [
{ name: 'detail', path: (ids) => `/opgave/${ids.detail}`, theme: 'dark' },
{ name: 'notes', path: '/noter', theme: 'dark', prepare: openMeetingNote },
{ name: 'notes-source', path: '/noter', theme: 'dark', prepare: showNoteSource },
+ // The new work, and in the light theme, which is what most people want to look
+ // at a landing page in. The calendar drawing tasks to their length, and a note
+ // somebody shared into the "Shared with me" group.
+ { name: 'calendar-light', path: '/kalender', theme: 'light', prepare: showWeek },
+ { name: 'notes-shared-light', path: '/noter', theme: 'light', prepare: openSharedNote },
{ name: 'delegated', path: '/uddelegeret', theme: 'dark' },
{ name: 'settings', path: '/indstillinger/integrationer', theme: 'dark' },
// Scrolled, because the themes are the second panel on the page and a picture
@@ -114,6 +119,13 @@ async function showNoteSource(page) {
await page.waitForTimeout(600);
}
+async function openSharedNote(page) {
+ // The note Mette shared in, so the "Shared with me" group and its owner chip are
+ // what the picture is of rather than something the group happens to sit above.
+ await page.locator('button.row', { hasText: 'Packaging quotes' }).first().click();
+ await page.waitForTimeout(600);
+}
+
async function showThemes(page) {
// scrollIntoView rather than Playwright's scrollIntoViewIfNeeded: the heading is
// already a few pixels inside the viewport when the page loads, so "if needed"
@@ -340,6 +352,23 @@ async function handOver(ids) {
await api(`/tasks/${ids.detail}/comments`, {
body: 'Room is booked for ten. Summer numbers are in the shared folder — the labels are still with the printer, I chase them Thursday.'
});
+
+ // A note of Mette's own, handed to the owner — so their Notes page has a
+ // "Shared with me" group with a real note in it, marked as hers. This is the
+ // other half of sharing: not the project path, but a page passed to a person.
+ const note = await api('/notes', {
+ body: `# Packaging quotes
+
+Three back, one still to come:
+
+- **Nordfelt** — 79 øre a bag at 2,000, plates included
+- **Kolding Karton** — 84 øre, faster, kinder about small runs
+- Bruun still owes me a number
+
+I'd lean Kolding for the first run and revisit at volume. #Autumn launch`
+ });
+ await api(`/notes/${note.id}/shares`, { user_id: ids.owner, role: 'editor' });
+
return { colleague: me.id };
}
@@ -373,6 +402,8 @@ async function seed({ colleague, noteTitle }) {
).padStart(2, '0')}`;
};
+ const me = await api('/auth/me', null, 'GET');
+
// Two headings over the projects, which is what the sidebar grew for.
const work = await api('/project-groups', { name: 'Work' });
const home = await api('/project-groups', { name: 'Home' });
@@ -420,6 +451,17 @@ async function seed({ colleague, noteTitle }) {
{ content: 'Water the greenhouse', due_date: day(0), recurrence_rule: 'FREQ=DAILY', project_id: garden.id },
{ content: 'Collect the parcel from the post office', due_date: day(0), labels: ['errands'] },
+ // A handful given a time and a length, so the calendar's week draws them to
+ // scale rather than as a row of identical blocks — a stand-up, a long
+ // planning block, a call, a review. Spread across the day and the days, so
+ // the picture is a week that has a shape.
+ { content: 'Stand-up', due_date: day(0), due_time: '09:00', duration_min: 15, project_id: launch.id, section_id: inFlight.id },
+ { content: 'Planning block', due_date: day(0), due_time: '10:00', duration_min: 90, priority: 2, project_id: launch.id, section_id: planning.id, labels: ['meeting'] },
+ { content: 'Call with the printer', due_date: day(0), due_time: '13:30', duration_min: 30, project_id: launch.id, labels: ['waiting'] },
+ { content: 'Interview: designer', due_date: day(1), due_time: '11:00', duration_min: 60, priority: 1, project_id: launch.id, section_id: inFlight.id },
+ { content: 'Budget review', due_date: day(2), due_time: '14:00', duration_min: 45, priority: 1, project_id: launch.id, section_id: inFlight.id },
+ { content: 'One-to-one with Mette', due_date: day(3), due_time: '15:30', duration_min: 30, project_id: launch.id },
+
// The next couple of weeks, so Upcoming and the month grid have something in
// them rather than a row of empty cells.
{ content: 'Book a plumber for the bathroom', due_date: day(1), priority: 2, project_id: house.id },
@@ -560,6 +602,7 @@ The opening notes are a task, so they can be ticked off: task:${detail.id}`
await api('/users', { email: 'anders@example.dk' });
return {
+ owner: me.id,
work: launch.id,
detail: detail.id,
invite: invite.link,