{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "calendar",
  "title": "Calendar",
  "description": "Single, multiple and range selection with keyboard navigation and neumorphic selected days.",
  "dependencies": [
    "@daypicker/react@^10.0.0"
  ],
  "registryDependencies": [
    "@neumorphism-ui/utils"
  ],
  "files": [
    {
      "path": "src/components/ui/calendar.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\nimport { DayPicker } from \"@daypicker/react\";\nimport { cn } from \"@/lib/utils\";\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n  return <div data-slot=\"calendar\" className=\"max-w-full\"><DayPicker\n    showOutsideDays={showOutsideDays}\n    className={cn(\"w-fit max-w-full rounded-[var(--neu-radius-surface)] border border-[color:var(--neu-edge)] bg-[var(--neu-surface)] p-4 font-sans text-[var(--foreground)] [box-shadow:var(--neu-shadow-raised-sm)] [--cell-size:clamp(1.75rem,7.5vw,2.25rem)]\", className)}\n    classNames={{\n      months: \"relative flex flex-col gap-6 sm:flex-row\",\n      month: \"flex flex-col gap-3\",\n      month_caption: \"flex h-10 items-center justify-center px-10\",\n      caption_label: \"text-sm font-semibold\",\n      nav: \"pointer-events-none absolute inset-x-0 top-0 flex items-center justify-between\",\n      button_previous: \"pointer-events-auto grid size-9 place-items-center rounded-[var(--neu-radius-control)] border border-[color:var(--neu-edge)] bg-[var(--neu-surface)] [box-shadow:var(--neu-shadow-raised-sm)] outline-none hover:[box-shadow:var(--neu-shadow-hover)] active:[box-shadow:var(--neu-shadow-inset)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-35 aria-disabled:opacity-35 [&>svg]:size-4\",\n      button_next: \"pointer-events-auto grid size-9 place-items-center rounded-[var(--neu-radius-control)] border border-[color:var(--neu-edge)] bg-[var(--neu-surface)] [box-shadow:var(--neu-shadow-raised-sm)] outline-none hover:[box-shadow:var(--neu-shadow-hover)] active:[box-shadow:var(--neu-shadow-inset)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-35 aria-disabled:opacity-35 [&>svg]:size-4\",\n      chevron: \"fill-current\",\n      dropdowns: \"flex items-center justify-center gap-2 text-sm font-semibold\",\n      dropdown_root: \"relative rounded-[var(--neu-radius-small)] focus-within:ring-2 focus-within:ring-[var(--ring)]\",\n      dropdown: \"absolute inset-0 cursor-pointer opacity-0\",\n      month_grid: \"border-collapse\",\n      weekdays: \"border-b border-[var(--border)]\",\n      weekday: \"h-8 w-[var(--cell-size)] text-center text-xs font-medium text-[var(--muted-foreground)]\",\n      week: \"h-[calc(var(--cell-size)+0.25rem)]\",\n      week_number_header: \"w-[var(--cell-size)]\",\n      week_number: \"text-center text-xs text-[var(--muted-foreground)]\",\n      day: \"size-[var(--cell-size)] p-0 text-center text-sm\",\n      day_button: \"grid size-[var(--cell-size)] place-items-center rounded-[var(--neu-radius-control)] border border-transparent font-medium outline-none transition-[background-color,box-shadow] duration-[var(--neu-duration)] motion-reduce:transition-none hover:bg-[var(--neu-surface-soft)] hover:[box-shadow:var(--neu-shadow-raised-sm)] active:[box-shadow:var(--neu-shadow-inset)] focus-visible:relative focus-visible:z-10 focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:pointer-events-none disabled:opacity-35\",\n      selected: \"[&:not(.neu-range-middle)>button]:bg-[var(--neu-surface)] [&:not(.neu-range-middle)>button]:font-semibold [&:not(.neu-range-middle)>button]:text-[var(--neu-accent-ink)] [&:not(.neu-range-middle)>button]:[box-shadow:var(--neu-shadow-raised-sm)]\",\n      range_start: \"rounded-s-[var(--neu-radius-small)] bg-[var(--neu-selected)]\",\n      range_middle: \"neu-range-middle bg-[var(--neu-selected)] [&>button]:rounded-none [&>button]:bg-transparent [&>button]:text-[var(--foreground)] [&>button]:shadow-none\",\n      range_end: \"rounded-e-[var(--neu-radius-small)] bg-[var(--neu-selected)]\",\n      today: \"[&>button]:border-[var(--ring)]\",\n      outside: \"text-[var(--muted-foreground)]\",\n      disabled: \"cursor-not-allowed\",\n      hidden: \"invisible\",\n      footer: \"max-w-64 pt-3 text-sm text-[var(--muted-foreground)]\",\n      ...classNames,\n    }}\n    {...props}\n  /></div>;\n}\n\nexport { Calendar };\nexport type { CalendarProps };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}