{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "screen-size-demo", "dependencies": [ "lucide-react" ], "registryDependencies": [ "https://reusables.vercel.app/r/use-screen-size" ], "files": [ { "path": "registry/example/screen-size-demo.tsx", "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { Monitor, Smartphone, Tablet } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Card } from \"@/components/ui/card\"\n\nimport useScreenSize from \"@/hooks/use-screen-size\"\n\nexport default function ScreenSizeDemo() {\n const { screenSize, isMobile } = useScreenSize()\n const [forcedWidth, setForcedWidth] = useState(null)\n\n const breakpoints = [\n {\n name: \"Mobile\",\n width: \"400px\",\n icon: ,\n expected: [\"xs\", \"sm\"],\n },\n {\n name: \"Tablet\",\n width: \"758px\",\n icon: ,\n expected: [\"md\"],\n },\n {\n name: \"Desktop\",\n width: \"1200px\",\n icon: ,\n expected: [\"lg\"],\n },\n // {\n // name: \"4K\",\n // width: \"1800px\",\n // icon: ,\n // expected: [\"4k\"],\n // },\n ]\n\n return (\n
\n
\n {breakpoints.map((point) => (\n \n setForcedWidth(forcedWidth === point.width ? null : point.width)\n }\n className=\"flex items-center gap-2\"\n >\n {point.icon}\n {point.name}\n \n ))}\n
\n\n \n
\n
\n {breakpoints.map((point) => (\n \n {point.icon}\n
\n ))}\n
\n\n
\n

\n Current Screen Size:{\" \"}\n {screenSize}\n

\n

Device Type: {isMobile ? \"Mobile\" : \"Desktop\"}

\n

\n Resize the card or your browser window to see changes\n

\n
\n
\n \n \n )\n}\n", "type": "registry:example", "target": "components/screen-size-demo.tsx" } ], "type": "registry:example" }