{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "corporate-footer", "type": "registry:ui", "title": "Corporate Footer", "description": "A card-based corporate footer with decorative watermark, column navigation, and whisper-quiet typography.", "files": [ { "path": "registry/ruixenui/corporate-footer.tsx", "content": "\"use client\";\n\nimport * as React from \"react\";\nimport Link from \"next/link\";\n\n/* ── types ─────────────────────────────────────────────────────── */\ninterface FooterLink {\n label: string;\n href: string;\n}\n\ninterface FooterColumn {\n title: string;\n links: FooterLink[];\n}\n\ninterface FooterSocial {\n icon: React.ComponentType<{ className?: string }>;\n href: string;\n label?: string;\n}\n\ninterface CorporateFooterProps {\n /** Custom brand mark — any ReactNode (SVG, icon, emoji). Falls back to a default geometric mark. */\n brandMark?: React.ReactNode;\n brandName?: string;\n tagline?: string;\n columns?: FooterColumn[];\n socials?: FooterSocial[];\n copyright?: string;\n}\n\n/* ── decorative watermark ─────────────────────────────────────── */\nfunction Watermark() {\n return (\n \n \n \n \n );\n}\n\n/* ── default mark ─────────────────────────────────────────────── */\nfunction DefaultMark() {\n return (\n \n \n \n );\n}\n\n/* ── defaults ─────────────────────────────────────────────────── */\nconst defaults = {\n brandName: \"ruixen ui\",\n tagline: \"Modern components for modern interfaces.\",\n columns: [\n {\n title: \"Product\",\n links: [\n { label: \"Components\", href: \"#\" },\n { label: \"Templates\", href: \"#\" },\n { label: \"Pro\", href: \"#\" },\n { label: \"Changelog\", href: \"#\" },\n ],\n },\n {\n title: \"Resources\",\n links: [\n { label: \"Documentation\", href: \"#\" },\n { label: \"API Reference\", href: \"#\" },\n { label: \"Guides\", href: \"#\" },\n { label: \"Examples\", href: \"#\" },\n ],\n },\n {\n title: \"Company\",\n links: [\n { label: \"About\", href: \"#\" },\n { label: \"Blog\", href: \"#\" },\n { label: \"Careers\", href: \"#\" },\n { label: \"Press\", href: \"#\" },\n ],\n },\n ] as FooterColumn[],\n socials: [] as FooterSocial[],\n copyright: `\\u00A9 ${new Date().getFullYear()} ruixen ui`,\n};\n\n/* ── component ────────────────────────────────────────────────── */\nexport function CorporateFooter(props?: CorporateFooterProps) {\n const brandMark = props?.brandMark;\n const brandName = props?.brandName ?? defaults.brandName;\n const tagline = props?.tagline ?? defaults.tagline;\n const columns = props?.columns ?? defaults.columns;\n const socials = props?.socials ?? defaults.socials;\n const copyright = props?.copyright ?? defaults.copyright;\n\n return (\n \n );\n}\n", "type": "registry:ui", "target": "components/ruixen/corporate-footer.tsx" } ] }