Closes #20 — the signature scheduler UI. A social scheduler without a calendar isn't really one; this adds a month calendar to the queue.
What's added
- List / Calendar toggle in the queue header (choice persisted in localStorage)
- Month calendar placing scheduled (blue dot) and published (green dot) posts in their day cells by local time, with the current day highlighted and prev / today / next navigation
- Click a post chip → edit it (
/?edit=<id>) - Click a day number → compose scheduled for that day:
/?schedule=YYYY-MM-DDopens the composer's schedule input pre-set to 09:00 local - Up to 3 posts per cell with a
+N moreoverflow
No new endpoint — reuses the existing /postline/queue data (scheduledAt, publishedAt, status, title/body).
Verification (browser)
- List is the default; toggling shows the calendar
- Two seeded scheduled posts (14:30 and 09:00 UTC) render on the correct days at correct local times (10:30 PM / 5:00 PM at UTC+8)
- Month nav (next → August, today → July) works; today highlighted
- Day-click → composer with schedule prefilled to
…T09:00and the button reads "Schedule" - 0 console errors;
tscexit 0;pickierclean