quill
blockcalendar-pagesource: ok · hit
Calendar page
A single-date calendar paired with the selected day's session list, in one studio-schedule card.
npx shadcn add "https://www.quilldesignsystem.com/r/calendar-page.json"free
Where it goes
calendar
Interaction
dropdown
Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.
Dependencies
Bundle weight · lightRegistry dependencies
cardcalendarbadgeseparator
Files1 · source cached 10/9/2026, 4:38:08 PM
registry/blocks/calendar-page.tsx
'use client'
import { useState } from 'react'
import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '@/components/ui/card'
import { Calendar } from '@/components/ui/calendar'
import { Badge } from '@/components/ui/badge'
import { Separator } from '@/components/ui/separator'
const sessions = [
{ time: '9:00', title: 'Design review', kind: 'Internal' },
{ time: '11:30', title: 'Token sync with Northwind', kind: 'Call' },
{ time: '15:00', title: 'Working session', kind: 'Workshop' },
]
/** A single-date calendar paired with the selected day's session list, in one studio-schedule card. */
export function CalendarPage() {
const [date, setDate] = useState<Date | undefined>(new Date(2026, 6, 14))
return (
<Card className="w-fit">
<CardHeader>
<CardTitle>Week ahead</CardTitle>
<CardDescription>Pick a day to see its sessions.</CardDescription>
</CardHeader>
<CardContent className="flex items-start gap-6 max-md:flex-col">
<Calendar
mode="single"
selected={date}
onSelect={setDate}
defaultMonth={new Date(2026, 6)}
className="rounded-lg border border-border"
/>
<div className="flex w-[240px] flex-col gap-3">
<span className="text-sm font-medium text-foreground">Tuesday, July 14</span>
<Separator />
<ul className="flex flex-col gap-3">
{sessions.map((s) => (
<li key={s.time} className="flex items-start gap-3">
<span className="w-11 shrink-0 pt-0.5 text-xs font-medium text-muted-foreground">
{s.time}
</span>
<div className="flex flex-col items-start gap-1">
<span className="text-sm font-medium text-foreground">{s.title}</span>
<Badge variant="outline">{s.kind}</Badge>
</div>
</li>
))}
</ul>
</div>
</CardContent>
</Card>
)
}