"use client"
import * as React from "react"
import {
CalendarDate,
getLocalTimeZone,
isSameDay,
isWeekend,
today,
} from "@internationalized/date"
import { I18nProvider, useLocale, type DateRange } from "react-aria-components"
import {
Example,
ExampleWrapper,
} from "@/registry/bases/aria/components/example"
import { Button } from "@/registry/bases/aria/ui/button"
import { Calendar, RangeCalendar } from "@/registry/bases/aria/ui/calendar"
import { Card, CardContent, CardFooter } from "@/registry/bases/aria/ui/card"
import { Field, FieldGroup, FieldLabel } from "@/registry/bases/aria/ui/field"
import {
InputGroup,
InputGroupAddon,
InputGroupInput,
} from "@/registry/bases/aria/ui/input-group"
import { Popover, PopoverTrigger } from "@/registry/bases/aria/ui/popover"
import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
export default function CalendarExample() {
return (
)
}
function CalendarInCard() {
return (
)
}
function CalendarInPopover() {
return (
)
}
function CalendarSingle() {
const [date, setDate] = React.useState(
new CalendarDate(new Date().getFullYear(), new Date().getMonth() + 1, 12)
)
return (
)
}
function CalendarMultiple() {
return (
)
}
function CalendarRange() {
const [dateRange, setDateRange] = React.useState({
start: new CalendarDate(new Date().getFullYear(), 1, 12),
end: new CalendarDate(new Date().getFullYear(), 1, 12).add({ days: 30 }),
})
return (
)
}
function CalendarRangeMultipleMonths() {
const [range, setRange] = React.useState({
start: new CalendarDate(new Date().getFullYear(), 4, 12),
end: new CalendarDate(new Date().getFullYear(), 4, 12).add({ days: 60 }),
})
return (
)
}
function CalendarBookedDates() {
const [date, setDate] = React.useState(
new CalendarDate(new Date().getFullYear(), 2, 3)
)
const bookedDates = Array.from(
{ length: 15 },
(_, i) => new CalendarDate(new Date().getFullYear(), 2, 12 + i)
)
return (
bookedDates.some((d) => isSameDay(date, d))
}
/>
)
}
function CalendarWithTime() {
const [date, setDate] = React.useState(
new CalendarDate(new Date().getFullYear(), new Date().getMonth() + 1, 12)
)
return (
Start Time
End Time
)
}
function CalendarCustomDays() {
const { locale } = useLocale()
const [range, setRange] = React.useState({
start: new CalendarDate(new Date().getFullYear(), 12, 8),
end: new CalendarDate(new Date().getFullYear(), 12, 8).add({ days: 10 }),
})
return (
(
<>
{defaultChildren}
{!isOutsideMonth && (
{isWeekend(date, locale) ? "$120" : "$100"}
)}
>
)}
/>
)
}
function CalendarWithPresets() {
const [date, setDate] = React.useState(
new CalendarDate(new Date().getFullYear(), 2, 12)
)
const [currentMonth, setCurrentMonth] = React.useState(
new CalendarDate(new Date().getFullYear(), new Date().getMonth() + 1, 1)
)
return (
{[
{ label: "Today", value: 0 },
{ label: "Tomorrow", value: 1 },
{ label: "In 3 days", value: 3 },
{ label: "In a week", value: 7 },
{ label: "In 2 weeks", value: 14 },
].map((preset) => (
))}
)
}
function DatePickerSimple() {
const [date, setDate] = React.useState()
return (
Date
)
}
function DatePickerWithRange() {
const [date, setDate] = React.useState({
start: new CalendarDate(new Date().getFullYear(), 1, 20),
end: new CalendarDate(new Date().getFullYear(), 1, 20).add({ days: 20 }),
})
return (
Date Picker Range
)
}
function DataPickerWithDropdowns() {
const [date, setDate] = React.useState()
const [open, setOpen] = React.useState(false)
return (
Date
)
}