{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "p-calendar-20",
  "description": "Calendar with date presets",
  "dependencies": [
    "date-fns"
  ],
  "registryDependencies": [
    "@coss/calendar",
    "@coss/button"
  ],
  "files": [
    {
      "path": "registry/default/particles/p-calendar-20.tsx",
      "content": "\"use client\";\n\nimport { subDays, subMonths, subYears } from \"date-fns\";\nimport { useState } from \"react\";\nimport { Button } from \"@/registry/default/ui/button\";\nimport { Calendar } from \"@/registry/default/ui/calendar\";\n\nexport default function Particle() {\n  const today = new Date();\n  const yesterday = subDays(today, 1);\n  const lastWeek = subDays(today, 7);\n  const lastMonth = subMonths(today, 1);\n  const lastYear = subYears(today, 1);\n  const [month, setMonth] = useState(today);\n  const [date, setDate] = useState<Date>(today);\n\n  return (\n    <div className=\"flex max-sm:flex-col\">\n      <div className=\"relative py-1 ps-1 max-sm:order-1 max-sm:border-t\">\n        <div className=\"flex h-full flex-col sm:border-e sm:pe-3\">\n          <Button\n            className=\"w-full justify-start\"\n            onClick={() => {\n              setDate(today);\n              setMonth(today);\n            }}\n            size=\"sm\"\n            variant=\"ghost\"\n          >\n            Today\n          </Button>\n          <Button\n            className=\"w-full justify-start\"\n            onClick={() => {\n              setDate(yesterday);\n              setMonth(yesterday);\n            }}\n            size=\"sm\"\n            variant=\"ghost\"\n          >\n            Yesterday\n          </Button>\n          <Button\n            className=\"w-full justify-start\"\n            onClick={() => {\n              setDate(lastWeek);\n              setMonth(lastWeek);\n            }}\n            size=\"sm\"\n            variant=\"ghost\"\n          >\n            Last week\n          </Button>\n          <Button\n            className=\"w-full justify-start\"\n            onClick={() => {\n              setDate(lastMonth);\n              setMonth(lastMonth);\n            }}\n            size=\"sm\"\n            variant=\"ghost\"\n          >\n            Last month\n          </Button>\n          <Button\n            className=\"w-full justify-start\"\n            onClick={() => {\n              setDate(lastYear);\n              setMonth(lastYear);\n            }}\n            size=\"sm\"\n            variant=\"ghost\"\n          >\n            Last year\n          </Button>\n        </div>\n      </div>\n      <Calendar\n        className=\"max-sm:pb-3 sm:ps-5\"\n        disabled={[{ after: today }]}\n        mode=\"single\"\n        month={month}\n        onMonthChange={setMonth}\n        onSelect={(newDate) => {\n          if (newDate) {\n            setDate(newDate);\n          }\n        }}\n        selected={date}\n      />\n    </div>\n  );\n}\n",
      "type": "registry:block"
    }
  ],
  "categories": [
    "calendar",
    "button"
  ],
  "type": "registry:block"
}