Date Picker
A date picker component with range and presets.
tsx
"use client" import * as React from "react"import { format } from "date-fns"import { Calendar as CalendarIcon } from "lucide-react" import { Button } from "@/components/ui/button"import { Calendar } from "@/components/ui/calendar"import { Popover, PopoverContent, PopoverTrigger,} from "@/components/ui/popover" export function DatePickerDemo() { const [date, setDate] = React.useState<Date>() return ( <Popover> <PopoverTrigger asChild> <Button variant="outline" data-empty={!date} className="data-[empty=true]:text-muted-foreground w-[280px] justify-start text-left font-normal" > <CalendarIcon /> {date ? format(date, "PPP") : <span>Pick a date</span>} </Button> </PopoverTrigger> <PopoverContent className="w-auto p-0"> <Calendar mode="single" selected={date} onSelect={setDate} /> </PopoverContent> </Popover> )}
Installation
The Date Picker is built using a composition of the Popover
and the Calendar
components.
CLI
bash
npx fivui add popover calendar
Usage
tsx
"use client" import * as React from "react"import { format } from "date-fns"import { Calendar as CalendarIcon } from "lucide-react" import { Button } from "@/components/ui/button"import { Calendar } from "@/components/ui/calendar"import { Popover, PopoverContent, PopoverTrigger,} from "@/components/ui/popover" export function DatePickerDemo() { const [date, setDate] = React.useState<Date>() return ( <Popover> <PopoverTrigger asChild> <Button variant="outline" data-empty={!date} className="data-[empty=true]:text-muted-foreground w-[280px] justify-start text-left font-normal" > <CalendarIcon /> {date ? format(date, "PPP") : <span>Pick a date</span>} </Button> </PopoverTrigger> <PopoverContent className="w-auto p-0"> <Calendar mode="single" selected={date} onSelect={setDate} /> </PopoverContent> </Popover> )}