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 (
);
});
/**
* 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 = () => (
);