import React from 'react'; import { ChevronrightIcon } from '../../components/icons/ChevronrightIcon'; import { ChevronleftIcon } from '../../components/icons/ChevronleftIcon'; import { Calendar as AriaCalendar, CalendarGridHeader as AriaCalendarGridHeader, type CalendarProps as AriaCalendarProps, CalendarCell, CalendarGrid, CalendarGridBody, CalendarHeaderCell, type DateValue, Heading, Text, useLocale, } from 'react-aria-components'; import { tv } from 'tailwind-variants'; import { Button } from '../Button/Button.quanta'; import { focusRing } from '../utils'; const cellStyles = tv({ extend: focusRing, base: ` m-px flex h-9 w-9 cursor-default items-center justify-center rounded-full text-sm forced-color-adjust-none `, variants: { isSelected: { false: ` text-zinc-900 hover:bg-gray-100 dark:text-zinc-200 dark:hover:bg-zinc-700 pressed:bg-gray-200 dark:pressed:bg-zinc-600 `, true: ` bg-blue-600 text-white invalid:bg-red-600 forced-colors:bg-[Highlight] forced-colors:text-[HighlightText] forced-colors:invalid:bg-[Mark] `, }, isDisabled: { true: ` text-gray-300 dark:text-zinc-600 forced-colors:text-[GrayText] `, }, }, }); export interface CalendarProps extends Omit, 'visibleDuration'> { errorMessage?: string; } export function Calendar({ errorMessage, ...props }: CalendarProps) { return ( {(date) => } {errorMessage && ( {errorMessage} )} ); } export function CalendarHeader() { const { direction } = useLocale(); return (
); } export function CalendarGridHeader() { return ( {(day) => ( {day} )} ); }