{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "day-picker",
  "type": "registry:component",
  "title": "Day Picker",
  "description": "A component for selecting a single day from a calendar.",
  "dependencies": [
    "date-fns",
    "lucide-react"
  ],
  "registryDependencies": [
    "button"
  ],
  "files": [
    {
      "path": "src/components/ui/day-picker.tsx",
      "content": "\"use client\";\n\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport {\n  DayPicker as ReactDayPicker,\n  getDefaultClassNames,\n} from \"react-day-picker\";\nimport { buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport type DayPickerProps = React.ComponentProps<typeof ReactDayPicker>;\n\nfunction DayPicker({\n  className,\n  classNames,\n  showOutsideDays = true,\n  ...props\n}: DayPickerProps) {\n  const defaultClassNames = getDefaultClassNames();\n\n  return (\n    <ReactDayPicker\n      showOutsideDays={showOutsideDays}\n      className={cn(\"p-3\", className)}\n      classNames={{\n        root: cn(\"w-fit\", defaultClassNames.root),\n        months: cn(\n          \"relative flex flex-col gap-4 md:flex-row\",\n          defaultClassNames.months,\n        ),\n        month: cn(\"flex flex-col gap-4\", defaultClassNames.month),\n\n        month_caption: cn(\n          \"relative flex h-7 items-center justify-center\",\n          defaultClassNames.month_caption,\n        ),\n        caption_label: cn(\n          \"text-sm font-medium\",\n          defaultClassNames.caption_label,\n        ),\n\n        nav: cn(\n          \"absolute inset-x-0 top-0 flex w-full justify-between z-10\",\n          defaultClassNames.nav,\n        ),\n        button_previous: cn(\n          buttonVariants({ variant: \"outline\" }),\n          \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n          defaultClassNames.button_previous,\n        ),\n        button_next: cn(\n          buttonVariants({ variant: \"outline\" }),\n          \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n          defaultClassNames.button_next,\n        ),\n\n        month_grid: cn(\"w-full border-collapse\", defaultClassNames.month_grid),\n        weekdays: cn(\"flex\", defaultClassNames.weekdays),\n        weekday: cn(\n          \"text-muted-foreground w-9 font-normal text-[0.8rem]\",\n          defaultClassNames.weekday,\n        ),\n        week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n\n        day: cn(\n          \"h-9 w-9 text-center text-sm p-0 relative\",\n          \"[&:has([aria-selected].day-range-end)]:rounded-r-md\",\n          \"[&:has([aria-selected].day-outside)]:bg-accent/50\",\n          \"[&:has([aria-selected])]:bg-accent\",\n          \"first:[&:has([aria-selected])]:rounded-l-md\",\n          \"last:[&:has([aria-selected])]:rounded-r-md\",\n          \"focus-within:relative focus-within:z-20\",\n          defaultClassNames.day,\n        ),\n        day_button: cn(\n          buttonVariants({ variant: \"ghost\" }),\n          \"h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-md\",\n          defaultClassNames.day_button,\n        ),\n\n        range_end: \"day-range-end\",\n        selected:\n          \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-md\",\n        today: \"text-red-600 font-bold\",\n        outside:\n          \"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30\",\n        disabled: \"text-muted-foreground opacity-50\",\n        range_middle:\n          \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n        hidden: \"invisible\",\n\n        chevron: cn(\"fill-muted-foreground\", defaultClassNames.chevron),\n\n        ...classNames,\n      }}\n      components={{\n        Chevron: ({ orientation }) => {\n          if (orientation === \"left\") {\n            return <ChevronLeft className=\"h-4 w-4\" />;\n          }\n          return <ChevronRight className=\"h-4 w-4\" />;\n        },\n      }}\n      {...props}\n    />\n  );\n}\nDayPicker.displayName = \"DayPicker\";\n\nexport { DayPicker };\n",
      "type": "registry:component"
    }
  ]
}