import { IconCalendar } from "@tabler/icons-react"; import { format, parse, isValid } from "date-fns"; import { useState } from "react"; import { cn } from "../utils.js"; import { Button } from "./button.js"; import { Calendar } from "./calendar.js"; import { Popover, PopoverContent, PopoverTrigger } from "./popover.js"; interface DatePickerProps { /** Date string in YYYY-MM-DD format */ value: string; onChange: (value: string) => void; className?: string; placeholder?: string; } export function DatePicker({ value, onChange, className, placeholder = "Pick a date", }: DatePickerProps) { const [open, setOpen] = useState(false); const date = value ? parse(value, "yyyy-MM-dd", new Date()) : undefined; const validDate = date && isValid(date) ? date : undefined; return ( { if (day) { onChange(format(day, "yyyy-MM-dd")); setOpen(false); } }} defaultMonth={validDate} autoFocus /> ); }