Calendar
A calendar component that allows users to select dates.
Loading preview…
1<script lang="ts">
2 import { getLocalTimeZone, today } from '@internationalized/date';
3 import { Calendar } from './index.js';
4
5 let value = $state(today(getLocalTimeZone()));
6</script>
7
8<Calendar type="single" bind:value class="rounded-md border shadow-sm" captionLayout="dropdown" />
9Installation
1. Install dependencies
2. Copy these files into your project
- ~/components/calendar/index.ts
- ~/components/calendar/calendar.svelte
- ~/components/calendar/calendar-caption.svelte
- ~/components/calendar/calendar-cell.svelte
- ~/components/calendar/calendar-day.svelte
- ~/components/calendar/calendar-grid.svelte
- ~/components/calendar/calendar-grid-body.svelte
- ~/components/calendar/calendar-grid-head.svelte
- ~/components/calendar/calendar-grid-row.svelte
- ~/components/calendar/calendar-head-cell.svelte
- ~/components/calendar/calendar-header.svelte
- ~/components/calendar/calendar-heading.svelte
- ~/components/calendar/calendar-month.svelte
- ~/components/calendar/calendar-month-select.svelte
- ~/components/calendar/calendar-months.svelte
- ~/components/calendar/calendar-nav.svelte
- ~/components/calendar/calendar-next-button.svelte
- ~/components/calendar/calendar-prev-button.svelte
- ~/components/calendar/calendar-year-select.svelte
Usage
Use calendar for single date selection. Bind value and set type="single". Switch captionLayout between label, dropdown, dropdown-months, and dropdown-years.
1<script lang="ts">
2 import { getLocalTimeZone, today } from '@internationalized/date';
3 import { Calendar } from '~/components/calendar';
4
5 let value = $state(today(getLocalTimeZone()));
6</script>
7
8<Calendar type="single" bind:value class="rounded-md border shadow-sm" captionLayout="dropdown" />