Commit graph

9 commits

Author SHA1 Message Date
Zaldimmar
641ab167b0 Put the NGU dove at the centre of the brand hero's rings
DoveMark carries the dove path from the original home page as its
own component. The hero draws it at the rings' centre, upright while
they turn, with a soft glow and a gentle bob that stops under reduced
motion. The rings' opacity moves from the SVG to their own group so
the dove isn't dimmed with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 05:49:52 -05:00
Zaldimmar
6ec2fb240a Add person detail page and link people tiles to it
GET /api/people/:id returns a published person's profile, public
roles (current and past), published events they were billed at or
hosted, and public awards, each under the same visibility rules its
own page applies. public_phone is never sent.

PersonDetail renders it at /people/:id, the route personHref already
pointed at. PeopleTiles links a tile with a people id to that page;
an expandable tile keeps its details panel and the panel carries a
"View full profile" link instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 05:05:45 -05:00
Zaldimmar
5ed7994a64 Add recurring series to events
A Series checkbox under When opens a panel for the schedule:
weekly on chosen weekdays, monthly by date, or monthly by weekday
position, every N weeks or months, with meeting times and an
optional meeting count. starts_on anchors the schedule and ends_on
bounds it, so effective_status needs no change.

Occurrences are derived, not stored. src/lib/eventSeries.ts builds
the schedule label shown on cards and the event page, and the
upcoming dates listed on the event page.

Migration 016 adds the columns; the CRUD engine gains a time type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:46:49 -05:00
Zaldimmar
1b2af2bfbd Fix the remaining type errors in src/
- Declare the --ig-fill custom property on React's CSSProperties once,
  instead of casting the style prop in Footer, Home and EventList-Cards.
- Type Footer's Get_In_Touch links as internal or external, so the
  external branch type-checks.
- Pass undefined rather than null for an absent gradient (Home) and
  Instagram URL (EventList-Cards).

tsc --noEmit is now clean, with and without --noImplicitAny.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:33:21 -05:00
Zaldimmar
2428f4412a Type src/ against API and database shapes, fixing implicit anys
Adds .d.ts declarations beside the untyped JS modules imported from
TS (api.js, navConfig.js, adminSchema.js, adminNav.js, src/data/*),
with shapes taken from the server routes and migrations. get/post/
patch/del now return unknown unless the caller names the response.

Fixes found along the way:
- website/email/instagram are bare strings from splitLinks, not Link
  objects; OrganizationDetail's website and email pills rendered with
  no href or label and now link correctly.
- The chapter map falls back to FALLBACK_COLOR for a region with no
  colour instead of painting its tiles black.

Adds defineSection() so each page manifest entry's props are checked
against its own Component.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:13:46 -05:00
Zaldimmar
1d84400aef v1.5 - history and timeline as well as many datastructure updates added, polished, fixes 2026-09-25 02:38:51 -05:00
Zaldimmar
1f0aa3078f v1.4 - added admin page and auth 2026-09-25 02:36:49 -05:00
Zaldimmar
5efdafbb97 v1.3 - added an sqlite db and built data structure 2026-09-25 02:35:46 -05:00
Zaldimmar
b0fba52c0e v1.2 - added react router 2026-09-25 02:34:15 -05:00