/** * @fileoverview Calendar primitive — date picker grid with month navigation and day selection. * Built on react-day-picker. Part of the Saasflare base component layer. * @module packages/ui/components/ui/calendar * * @requires react-day-picker — peer dependency. * @requires date-fns — peer dependency. * * @component * @example * import { Calendar } from '@saasflare/ui'; * const [date, setDate] = React.useState(new Date()); * */ import * as React from "react"; import { DayPicker, type DayButton } from "react-day-picker"; import { type SaasflareComponentProps } from "../../providers"; import { Button } from "./button"; /** * Props for {@link Calendar}. * * Extends the full `react-day-picker` DayPicker props (`mode`, `selected`, * `onSelect`, …) with {@link SaasflareComponentProps} and `buttonVariant`. */ type CalendarProps = React.ComponentProps & SaasflareComponentProps & { /** Visual variant applied to the previous/next month navigation buttons. Defaults to `"ghost"`. */ buttonVariant?: React.ComponentProps["variant"]; }; /** * Date picker grid with month navigation, dropdown caption layouts, and * single/multiple/range selection, built on `react-day-picker`. Use it * standalone or inside a Popover to compose a date field. * * @component * * @example * */ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, surface, radius, animated, iconWeight, ...props }: CalendarProps): import("react/jsx-runtime").JSX.Element; /** * Day cell button used by {@link Calendar} — styles selection, range, and * focus states on top of {@link Button}. Supplied as the DayPicker * `DayButton`; pass your own via the Calendar `components` prop to customize * day rendering. * * @component */ declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; export { Calendar, CalendarDayButton, type CalendarProps };