This component no longer exists. It was in gmhlab’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-09 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
calendar
gmhlab/calendarRemovedComponent
gmhlab publishes no description for this item.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/gmhlab/monorepo/main/packages/ui/public/r/calendar.jsonSource
1"use client"23import * as React from "react"4import {5 ChevronDownIcon,6 ChevronLeftIcon,7 ChevronRightIcon,8} from "lucide-react"9import {10 DayPicker,11 getDefaultClassNames,12 type DayButton,13} from "react-day-picker"1415import { cn } from "@/lib/utils"16import { Button, buttonVariants } from "@/components/ui/button"1718function Calendar({19 className,20 classNames,21 showOutsideDays = true,22 captionLayout = "label",23 buttonVariant = "ghost",24 formatters,25 components,26 ...props27}: React.ComponentProps<typeof DayPicker> & {28 buttonVariant?: React.ComponentProps<typeof Button>["variant"]29}) {30 const defaultClassNames = getDefaultClassNames()3132 return (33 <DayPicker34 showOutsideDays={showOutsideDays}35 className={cn(36 "bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",37 String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,38 String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,39 className40 )}41 captionLayout={captionLayout}42 formatters={{43 formatMonthDropdown: (date) =>44 date.toLocaleString("default", { month: "short" }),45 ...formatters,46 }}47 classNames={{48 root: cn("w-fit", defaultClassNames.root),49 months: cn(50 "flex gap-4 flex-col md:flex-row relative",51 defaultClassNames.months52 ),53 month: cn("flex flex-col w-full gap-4", defaultClassNames.month),54 nav: cn(55 "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",56 defaultClassNames.nav57 ),58 button_previous: cn(59 buttonVariants({ variant: buttonVariant }),60 "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",61 defaultClassNames.button_previous62 ),63 button_next: cn(64 buttonVariants({ variant: buttonVariant }),65 "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",66 defaultClassNames.button_next67 ),68 month_caption: cn(69 "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",70 defaultClassNames.month_caption71 ),72 dropdowns: cn(73 "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",74 defaultClassNames.dropdowns75 ),76 dropdown_root: cn(77// … truncated
What it pulls in
npm packages
Other registry items
