{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "bg-animated-fractal-dot-grid-demo", "registryDependencies": [ "bg-animated-fractal-dot-grid" ], "files": [ { "path": "registry/default/example/bg-animated-fractal-dot-grid-demo.tsx", "content": "\"use client\"\n\nimport React, { useState } from \"react\"\nimport { Check, Copy } from \"lucide-react\"\n\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { Slider } from \"@/components/ui/slider\"\nimport { Switch } from \"@/components/ui/switch\"\nimport { useToast } from \"@/components/ui/use-toast\"\n\nimport { FractalDotGrid } from \"../ui/bg-animated-fractal-dot-grid\"\n\nconst initialConfig = {\n dotSize: 5.5,\n dotSpacing: 13,\n dotOpacity: 0.7,\n waveIntensity: 99,\n waveRadius: 200,\n dotColor: \"rgba(100, 100, 255, 1)\",\n glowColor: \"rgba(100, 100, 255, 1)\",\n enableNoise: false,\n noiseOpacity: 0.03,\n enableMouseGlow: false,\n initialPerformance: \"medium\" as const,\n}\n\nexport function ConfigurableFractalDotGridDemo() {\n const [config, setConfig] = useState(initialConfig)\n const [isCopied, setIsCopied] = useState(false)\n const { toast } = useToast()\n\n const updateConfig = (key: string, value: any) => {\n setConfig((prev) => ({ ...prev, [key]: value }))\n }\n\n const copyConfigToClipboard = () => {\n const configString = `\n\"use client\"\n\nimport { FractalDotGrid } from \"./fractal-dot-grid\"\n\nexport function FractalDotGridExample() {\n return (\n
\n \n
\n )\n}\n`\n\n navigator.clipboard.writeText(configString).then(() => {\n setIsCopied(true)\n toast({\n title: \"Configuration Copied\",\n description:\n \"The current configuration has been copied to your clipboard.\",\n })\n setTimeout(() => setIsCopied(false), 2000)\n })\n }\n\n return (\n
\n
\n
\n \n {isCopied ? (\n \n ) : (\n \n )}\n {isCopied ? \"Copied!\" : \"Copy Config\"}\n \n
\n
\n \n
\n
\n
\n \n \n Configuration\n \n \n \n \n Dots\n \n
\n
\n \n \n updateConfig(\"dotSize\", value)\n }\n />\n
\n
\n \n \n updateConfig(\"dotSpacing\", value)\n }\n />\n
\n
\n \n \n updateConfig(\"dotOpacity\", value)\n }\n />\n
\n
\n \n \n updateConfig(\"dotColor\", e.target.value)\n }\n className=\"h-10 px-3 py-2\"\n />\n
\n
\n
\n
\n \n Waves\n \n
\n
\n \n \n updateConfig(\"waveIntensity\", value)\n }\n />\n
\n
\n \n \n updateConfig(\"waveRadius\", value)\n }\n />\n
\n
\n
\n
\n \n Effects\n \n
\n
\n \n \n updateConfig(\"glowColor\", e.target.value)\n }\n className=\"h-10 px-3 py-2\"\n />\n
\n
\n \n updateConfig(\"enableNoise\", checked)\n }\n />\n \n
\n {config.enableNoise && (\n
\n \n \n updateConfig(\"noiseOpacity\", value)\n }\n />\n
\n )}\n
\n \n updateConfig(\"enableMouseGlow\", checked)\n }\n />\n \n
\n
\n
\n
\n \n Performance\n \n
\n \n \n updateConfig(\n \"initialPerformance\",\n value as \"low\" | \"medium\" | \"high\"\n )\n }\n >\n \n \n \n \n Low\n Medium\n High\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default ConfigurableFractalDotGridDemo\n", "type": "registry:component" } ], "type": "registry:component" }