Documentation Index
Fetch the complete documentation index at: https://mintlify.com/huntabyte/shadcn-svelte/llms.txt
Use this file to discover all available pages before exploring further.
Installation
The Date Picker is built using a composition of the <Popover /> and either the <Calendar /> or <RangeCalendar /> components.
See installations instructions for the Popover, Calendar, and Range Calendar components.
lib/components/example-date-picker.svelte
<script lang="ts">
import CalendarIcon from "@lucide/svelte/icons/calendar";
import {
type DateValue,
DateFormatter,
getLocalTimeZone,
} from "@internationalized/date";
import { cn } from "$lib/utils.js";
import { Button } from "$lib/components/ui/button/index.js";
import { Calendar } from "$lib/components/ui/calendar/index.js";
import * as Popover from "$lib/components/ui/popover/index.js";
const df = new DateFormatter("en-US", {
dateStyle: "long",
});
let value = $state<DateValue>();
</script>
<Popover.Root>
<Popover.Trigger>
{#snippet child({ props })}
<Button
variant="outline"
class={cn(
"w-[280px] justify-start text-start font-normal",
!value && "text-muted-foreground"
)}
{...props}
>
<CalendarIcon class="me-2 size-4" />
{value ? df.format(value.toDate(getLocalTimeZone())) : "Select a date"}
</Button>
{/snippet}
</Popover.Trigger>
<Popover.Content class="w-auto p-0">
<Calendar bind:value type="single" initialFocus captionLayout="dropdown" />
</Popover.Content>
</Popover.Root>
Examples
Date of Birth Picker
A calendar with date of birth picker.
Picker with Input
A calendar with input and picker.
Date and Time Picker
A calendar with date and time picker.
Natural Language Picker
This component uses the chrono-node library to parse natural language dates.
A calendar with natural language picker.