A month grid to pick a date.

October 2026
SuMoTuWeThFrSa
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SuMoTuWeThFrSa
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Due on 10/29/2026

Usage

Example.svelte
<script lang="ts">
	import {
		type DateValue,
		getLocalTimeZone,
		today,
	} from "@internationalized/date";

	import { Calendar } from "@orochibraru/ui/calendar";

	let dueDate = $state<DateValue | undefined>(today(getLocalTimeZone()));
</script>

<div class="flex flex-wrap items-start gap-6">
	<Calendar type="single" bind:value={dueDate} class="rounded-lg border" />
	<Calendar
		type="single"
		captionLayout="dropdown"
		minValue={today(getLocalTimeZone())}
		class="rounded-lg border"
	/>
	<p class="text-muted-foreground text-sm">
		Due on {dueDate?.toDate(getLocalTimeZone()).toLocaleDateString() ?? "—"}
	</p>
</div>