import { forwardRef } from "react"; /** * Calendar - custom datepicker grid * * Prefer for simple use cases. * * month: string - display label, e.g. "May 2026" * onPrev: function - previous-month button click handler * onNext: function - next-month button click handler * * Compose with and as children. */ export const Calendar = forwardRef(function Calendar( { month, onPrev, onNext, className = "", children, ...props }, ref ) { return (
{month}
{children}
); }); /** * CalendarWeek * * days: string[] - day labels (default: ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]) */ export const CalendarWeek = forwardRef(function CalendarWeek( { days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], ...props }, ref ) { return (
{days.map((d) => {d})}
); }); /** * CalendarDay * * today: boolean - marks as today; sets aria-current="date" * selected: boolean - marks as selected * disabled: boolean - out-of-month or unavailable day * ariaLabel: string - e.g. "May 12, 2026" */ export const CalendarDay = forwardRef(function CalendarDay( { today = false, selected = false, disabled = false, ariaLabel, className = "", children, ...props }, ref ) { const classes = [ "prs-cal-day", today && "prs-cal-day_today", selected && "prs-cal-day_selected", disabled && "prs-cal-day_disabled", className, ] .filter(Boolean) .join(" "); return ( ); }); const ChevronLeftIcon = () => ( ); const ChevronRightIcon = () => ( );