{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-mouse-demo",
  "title": "UseMouseDemo",
  "description": "use-mouse's hook in action.",
  "registryDependencies": [
    "checkbox",
    "card",
    "https://guarahooks.com/r/use-mouse.json"
  ],
  "files": [
    {
      "path": "registry/example/use-mouse-demo.tsx",
      "content": "'use client';\n\nimport { RefObject, useRef, useState } from 'react';\n\nimport {\n  Card,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle,\n} from '@/components/ui/card';\nimport { Checkbox } from '@/components/ui/checkbox';\n\nimport { useMouse } from '@/hooks/guarahooks/use-mouse';\n\nexport default function UseMouseDemo() {\n  const ref = useRef<HTMLDivElement>(null);\n  const [trackOutside, setTrackOutside] = useState(false);\n  const [clampToZero, setClampToZero] = useState(false);\n  const { docX, docY, posX, posY, elX, elY, elW, elH } = useMouse({\n    ref: ref as RefObject<HTMLElement>,\n    trackOutside,\n    clampToZero,\n  });\n\n  return (\n    <Card className=\"relative max-w-md w-full\" ref={ref}>\n      <CardHeader>\n        <CardTitle>useMouse</CardTitle>\n        <CardDescription>\n          This component uses the <code>useMouse</code> hook to track the mouse\n          position.\n        </CardDescription>\n      </CardHeader>\n      <CardContent className=\"space-y-2\">\n        <div className=\"flex items-center gap-2\">\n          <Checkbox\n            checked={trackOutside}\n            onCheckedChange={() => setTrackOutside((v) => !v)}\n          />\n          <label htmlFor=\"trackOutside\">Track outside</label>\n        </div>\n        <div className=\"flex items-center gap-2\">\n          <Checkbox\n            checked={clampToZero}\n            onCheckedChange={() => setClampToZero((v) => !v)}\n          />\n          <label htmlFor=\"clampToZero\">Clamp to zero</label>\n        </div>\n        <div className=\"space-y-2\">\n          <p className=\"text-sm\">\n            Mouse position in document - x:{docX} y:{docY}\n          </p>\n          <p className=\"text-sm\">\n            Mouse position in element - x:{elX} y:{elY}\n          </p>\n          <p className=\"text-sm\">\n            Element position- x:{posX} y:{posY}\n          </p>\n          <p className=\"text-sm\">\n            Element dimensions - {elW}x{elH}\n          </p>\n        </div>\n      </CardContent>\n      <CardFooter>\n        <p className=\"text-sm text-muted-foreground\">\n          Try moving your mouse around the screen.\n        </p>\n      </CardFooter>\n    </Card>\n  );\n}\n",
      "type": "registry:example",
      "target": "components/example/use-mouse-demo.tsx"
    }
  ],
  "type": "registry:example"
}