Date Picker
boldkit/date-pickerFreeComponent
A single-date picker: a button trigger that opens a calendar popover
Live preview
live · rendered by the registry
Rendered by boldkit on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://boldkit.dev/r/date-picker.jsonSource
1import * as React from 'react'2import { format } from 'date-fns'3import { CalendarIcon } from 'lucide-react'4import { cn } from '@/lib/utils'5import { Button } from '@/components/ui/button'6import { Calendar } from '@/components/ui/calendar'7import {8 Popover,9 PopoverContent,10 PopoverTrigger,11} from '@/components/ui/popover'1213export interface DatePickerProps {14 value?: Date15 onChange?: (date: Date | undefined) => void16 placeholder?: string17 /** date-fns format string for the trigger label. */18 dateFormat?: string19 disabled?: boolean20 className?: string21}2223/** A single-date picker: a button trigger that opens a calendar in a popover. */24export function DatePicker({25 value,26 onChange,27 placeholder = 'Pick a date',28 dateFormat = 'LLL dd, y',29 disabled,30 className,31}: DatePickerProps) {32 const [open, setOpen] = React.useState(false)33 const isControlled = value !== undefined34 const [uncontrolled, setUncontrolled] = React.useState<Date | undefined>(value)3536 const selected = isControlled ? value : uncontrolled3738 const handleSelect = (date: Date | undefined) => {39 if (!isControlled) setUncontrolled(date)40 onChange?.(date)41 setOpen(false)42 }4344 return (45 <Popover open={open} onOpenChange={setOpen}>46 <PopoverTrigger asChild>47 <Button48 variant="outline"49 disabled={disabled}50 className={cn(51 'w-[260px] justify-start gap-2 font-bold normal-case',52 !selected && 'text-muted-foreground',53 className54 )}55 >56 <CalendarIcon className="h-4 w-4" />57 {selected ? format(selected, dateFormat) : placeholder}58 </Button>59 </PopoverTrigger>60 <PopoverContent className="w-auto p-0" align="start">61 <Calendar62 mode="single"63 selected={selected}64 onSelect={handleSelect}65 initialFocus66 />67 </PopoverContent>68 </Popover>69 )70}
What it pulls in
npm packages
Other registry items
Files it writes
More from boldkit
All 94 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | boldkit | Components | Free | 2 deps | |
| Alertalert | boldkit | Components | Free | 2 deps | |
| Alert Dialogalert-dialog | boldkit | Components | Free | 1 dep | |
| ASCII Shapesascii-shapes | boldkit | Components | Free | no deps | |
| Aspect Ratioaspect-ratio | boldkit | Components | Free | 1 dep | |
| Avataravatar | boldkit | Components | Free | 1 dep | |
| Badgebadge | boldkit | Components | Free | 1 dep | |
| Breadcrumbbreadcrumb | boldkit | Components | Free | 2 deps |
