{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "youtube-embed", "title": "Youtube Embed", "description": "A component to embed YouTube videos with customizable options.", "dependencies": [], "registryDependencies": [ "amitgajare2/ariseui/utils" ], "files": [ { "path": "components/ui/youtube-embed.tsx", "content": "\"use client\";\r\n\r\nimport { ComponentProps } from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport type YoutubeEmbedProps = Omit<\r\n ComponentProps<\"div\">,\r\n \"children\" | \"rel\"\r\n> & {\r\n videoId: string;\r\n autoPlay?: boolean;\r\n mute?: boolean;\r\n controls?: boolean;\r\n loop?: boolean;\r\n modestBranding?: boolean;\r\n rel?: boolean;\r\n aspectRatio?: string;\r\n mask?: boolean;\r\n iframeClassName?: string;\r\n};\r\n\r\nexport default function YoutubeEmbed({\r\n videoId,\r\n autoPlay = true,\r\n mute = true,\r\n controls = false,\r\n loop = true,\r\n modestBranding = true,\r\n rel = false,\r\n aspectRatio = \"16 / 9\",\r\n mask = true,\r\n className,\r\n iframeClassName,\r\n ...props\r\n}: YoutubeEmbedProps) {\r\n const src = new URL(`https://www.youtube.com/embed/${videoId}`);\r\n\r\n src.searchParams.set(\"autoplay\", autoPlay ? \"1\" : \"0\");\r\n src.searchParams.set(\"mute\", mute ? \"1\" : \"0\");\r\n src.searchParams.set(\"controls\", controls ? \"1\" : \"0\");\r\n src.searchParams.set(\"modestbranding\", modestBranding ? \"1\" : \"0\");\r\n src.searchParams.set(\"rel\", rel ? \"1\" : \"0\");\r\n\r\n if (loop) {\r\n src.searchParams.set(\"loop\", \"1\");\r\n src.searchParams.set(\"playlist\", videoId);\r\n }\r\n\r\n return (\r\n