makeLexical moved to module scope and applied to locations.shortDesc,
home-page subtitle/whyParents/birthdayIntro/news, dinosaur-page
descriptions; seed-legal.mjs wraps legal texts for jsonb columns.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Migrations 0020/0021/0022 converted textarea columns to jsonb with USING NULL,
discarding all existing content. Restore values from the 2026-06-10 pre-webp
backup, wrapped as Lexical editor state. Idempotent (IS NULL guard). Three
birthday package items created after the backup got new placeholder copy.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- DinoPageContent: wheel shows exactly 5 dinos in the bottom bowl (fixed 30°
slot, decoupled from CMS dino count; far nodes parked off-screen)
- non-active dinos darkened to silhouettes, active stays full color
- hero banner swapped to blue T-Rex, height 1096px, 12px gap below header
- optimize heavy CMS images (61MB -> 9MB) and commit media + public assets
so git holds everything needed for deploy
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixes Object possibly undefined TS2532 in findOrUploadMedia (seed/route.ts:50)
that was blocking production build. All other changes are whitespace/ordering
only (Tailwind class order, SVG attribute expansion).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Hero: T-Rex (hero-bg1) and family moved to z-[20/30], rendered after
text so dinosaur visually overlaps the title text on desktop
- WhyParents: auto-cycle accordion items every 4s; manual click resets timer
- VideoSection: detect YouTube URLs → render iframe; mp4 uses video tag
- Webp filename cleanup across section components
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>