import { cn } from '@/lib/cn' /** * Which season the canvas is showing. * * "Now" is the live, editable garden — what is in the ground today. A year is a * read-only view of everything whose time in the ground overlapped that calendar * year, plops since removed included. They are genuinely different questions: * "what's growing" versus "what did I grow", and only the first one is editable. * * Only years the garden holds data for are offered. A free numeric field invites * a typo, and a typo'd year produces a confidently empty garden that reads as * data loss rather than a mistake. */ export function SeasonPicker({ years, value, onChange, }: { years: number[] value: number | null onChange: (year: number | null) => void }) { if (years.length === 0) return null return ( ) } /** * The banner that stops you thinking you're looking at now. Editing the past by * accident is the failure mode this whole feature introduces, so the state is * stated rather than implied by a dropdown you set a while ago — with the way * back to the live garden right next to it. */ export function SeasonBanner({ year, onExit }: { year: number; onExit: () => void }) { return (