Calendar

Calendar component documentation.

Usage

import { Calendar } from "@aqqo/aqqo-ui";
const [date, setDate] = useState(new Date(2024, 0, 20));

<Calendar
  mode="single"
  defaultMonth={date}
  selected={date}
  onSelect={(e) => {
    setDate(e);
  }}
/>;

Single

April 2025

Month and year selection

const [date, setDate] = useState(new Date(2024, 0, 20));

<Calendar
  mode="single"
  required
  captionLayout="dropdown"
  defaultMonth={date}
  selected={date}
  onSelect={setDate}
/>;

Range

const [dates, setDates] = useState({
  from: new Date(2024, 0, 20),
  to: new Date(2024, 0, 20),
});

<Calendar
  mode="single"
  defaultMonth={dates}
  selected={date}
  onSelect={(e) => {
    setDates(e);
  }}
/>;
March 2025

Date picker

const [date, setDate] = useState(new Date(2024, 0, 20));

<Popover>
  <Popover.Trigger asChild>
    <Button variant="secondary" className="... gap-3">
      <CalendarBlank weight="duotone" className="size-5" />
      {date ? date.toLocaleDateString() : "Pick a date"}
    </Button>
  </Popover.Trigger>
  <Popover.Content className="p-4">
    <Calendar
      mode="single"
      selected={date}
      onSelect={(e) => {
        setDate(e);
      }}
    />
  </Popover.Content>
</Popover>;

Props

Calendar props
PropTypeValuesDescription
modestringsingle (default) | range | multiple

The selection mode of the calendar. Single selects a single date, range selects a range of dates, and multiple selects multiple dates.

captionLayoutstringlabel | dropdown

Determines the layout style for month/year selection controls

showOutsideDaysbooleantrue (default) | false

Controls whether days outside the current month are shown

classNamestring-Additional CSS classes for custom styling
classNamesobject-

Override default styling classes for specific calendar parts

componentsobject-

Custom React components to replace internal parts such as navigation and dropdowns

...propsany-

Additional props from the underlying DayPicker component