Add src/ui/calendar.md with full documentation for both calendar
namespaces (picker props, event grid, ticker, agenda, event data
format, date utilities, CSS classes).
Add a minimal markdown-to-hiccup renderer (ui.markdown) that handles
headings, fenced code blocks, tables, lists, inline code, and bold.
Styled with ui/markdown.css using theme tokens.
Each dev target renders the docs inline on the Calendar page:
- Hiccup: slurps the .md file at render time
- Replicant: embeds via compile-time macro (ui.macros/inline-file)
- Squint: fetches from /calendar.md served by Vite
Also fixes calendar event grid day cells to be square (aspect-ratio: 1
with overflow: hidden instead of min-height).
Add date picker and event calendar components inspired by shadcn/radix
Calendar and org-mode-agenda-cli.
Components:
- ui.calendar: Month grid date picker with navigation, today/selected
highlighting, outside-month dimming. Pure date math utilities
(days-in-month, day-of-week, calendar-days, etc.)
- ui.calendar-events: Event-aware grid with colored pills, horizontal
day ticker strip with dot indicators, and agenda list view with
grouped events by day
CSS: Token-based styling with dark mode support for event color
variants (accent/danger/success/warning). Responsive breakpoints.
All three targets supported (squint/cljs/clj). Dev pages show calendar
on its own page with interactive demos (date selection, month nav,
event grid, ticker, agenda list).
Tests: 27 new assertions covering date math, class generation,
component structure, event filtering/sorting.