{"success":true,"data":{"block":{"id":"navbar-icon-links","name":"Navbar Icon Links","title":"NavBar Icon Links","category":"Navbar","categorySlug":"navbar","description":"A compact navigation bar with icon-only links and tooltips. Features a minimalist design with icon-only navigation links that display tooltips on hover to reveal the link label. This approach maximizes horizontal space while maintaining accessibility through tooltips. The active state is indicated by a highlighted background. Mobile view uses a slide-out sheet with full text labels. Ideal for dashboards, admin panels, applications, and interfaces where users are familiar with the navigation structure and icon meanings.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290457/9hxc4wfq9dy6ed1vvc6mqesbazbn/cleanshot-2026-02-19-at-05-18-03-2x.png","mobile":"https://cdn.ing/assets/i/r/290457/9hxc4wfq9dy6ed1vvc6mqesbazbn/cleanshot-2026-02-19-at-05-18-03-2x.png"},"componentPath":"blocks/navbars/navbar-icon-links.tsx","code":"import { NavbarIconLinks } from \"@opensite/ui/blocks/navbars/navbar-icon-links\";\nimport { brandLogoPlaceholders } from \"@/lib/media\";\nimport { DynamicIcon } from \"@opensite/ui/components/dynamic-icon\";\nimport CarouselAnimatedSections from \"@/blocks/carousel/carousel-animated-sections\";\nimport FeatureShowcase from \"@/blocks/features/feature-showcase\";\nimport FaqSplitHelp from \"@/blocks/faq/faq-split-help\";\n\nexport default function Demo() {\n  return (\n    <>\n      <NavbarIconLinks\n      logo={{\n        url: \"/\",\n        src: brandLogoPlaceholders.black[0],\n        title: \"IconNav\",\n        alt: \"IconNav Logo\",\n      }}\n      navItems={[\n        {\n          title: \"Dashboard\",\n          url: \"#\",\n          icon: \"lucide/layout-dashboard\",\n        },\n        {\n          title: \"Analytics\",\n          url: \"#\",\n          icon: \"lucide/bar-chart-3\",\n        },\n        {\n          title: \"Projects\",\n          url: \"#\",\n          icon: \"lucide/folder\",\n        },\n        {\n          title: \"Team\",\n          url: \"#\",\n          icon: \"lucide/users\",\n        },\n        {\n          title: \"Settings\",\n          url: \"#\",\n          icon: \"lucide/settings\",\n        },\n      ]}\n      authActions={[\n        {\n          label: \"Notifications\",\n          variant: \"ghost\",\n          href: \"#\",\n          icon: <DynamicIcon name=\"lucide/bell\" size={16} />,\n        },\n        {\n          label: \"Profile\",\n          variant: \"ghost\",\n          href: \"#\",\n          icon: <DynamicIcon name=\"lucide/user\" size={16} />,\n        },\n      ]}\n      />\n\n      <CarouselAnimatedSections />\n      <FeatureShowcase />\n      <FaqSplitHelp />\n    </>\n  );\n}","propsSchema":{"logo":{"type":"object","description":"Logo configuration","fields":{"url":{"type":"string","description":"URL to navigate to when logo is clicked","required":false},"src":{"type":"string","description":"Image source for the logo","required":false},"alt":{"type":"string","description":"Alt text for the logo image","required":false},"title":{"type":"object","description":"Text title to display (alternative to image)","typeLabel":"React.ReactNode","required":false},"className":{"type":"string","description":"Additional CSS classes for the logo","required":false}},"typeLabel":"LogoConfig","required":false},"navItems":{"type":"array","description":"Navigation items with icons","items":{"type":"object","description":"","fields":{"title":{"type":"object","description":"","typeLabel":"React.ReactNode","required":true},"url":{"type":"string","description":"","required":true},"icon":{"type":"object","description":"","fields":{},"typeLabel":"DynamicIconName","required":false},"iconName":{"type":"object","description":"","fields":{},"typeLabel":"DynamicIconName","required":false}},"typeLabel":"NavItem"},"typeLabel":"NavItem[]","required":false},"authActions":{"type":"array","description":"Authentication action configurations","items":{"type":"object","description":"","fields":{"variant":{"type":"string","description":"","typeLabel":"\"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"ghost\" | \"link\"","required":false},"size":{"type":"string","description":"","typeLabel":"\"default\" | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\" | \"icon-lg\"","required":false},"label":{"type":"object","description":"Button/link label text or ReactNode","typeLabel":"ReactNode","required":false},"icon":{"type":"object","description":"Icon to display (typically before label)","typeLabel":"ReactNode","required":false},"iconAfter":{"type":"object","description":"Icon to display after the label","typeLabel":"ReactNode","required":false},"href":{"type":"string","description":"URL for link behavior","required":false},"onClick":{"type":"object","description":"Click handler for button behavior","typeLabel":"MouseEventHandler","required":false},"className":{"type":"string","description":"Additional CSS classes for the action","required":false},"children":{"type":"object","description":"Custom children (overrides label + icon rendering)","typeLabel":"ReactNode","required":false},"aria-label":{"type":"string","description":"ARIA label for accessibility","required":false},"asButton":{"type":"boolean","description":"Render as a button element instead of an anchor/link","required":false}},"typeLabel":"ActionConfig"},"typeLabel":"ActionConfig[]","required":false}},"defaultProps":{},"dependencies":["@opensite/ui"],"tags":["navbar","navigation","icon-only","tooltips","compact","minimalist","dashboard","admin-panel","application","space-efficient"],"performance":{},"importantUsageNotes":"Use this navbar when the site is an app dashboard or tool with named, icon-backed top-level 'navItems' that double as the primary navigation — each link must have a lucide 'icon' name; best for internal tools, admin panels, or SaaS apps with 4-6 main sections. The demo uses 5 'navItems' each with 'title', 'url', and a lucide 'icon' name (e.g., 'lucide/layout-dashboard', 'lucide/bar-chart-3'); provide a unique, semantically relevant lucide icon for every nav item — do not omit icons on any item. The 'authActions' in the demo are utility icons (Notifications, Profile) with ghost variant — if you supply multiple 'authActions', use 'ghost' for utility/icon actions; if adding a primary CTA, use 'default' variant for it. Only set 'logo.src' if a real brand logo exists in the media library; otherwise omit 'logo.src' and rely on 'logo.title' as plain text. Only use real internal route hrefs and important external URLs — do not invent or guess routes. The mobile menu is built into this block — do not strip it or override its behavior; preserve the demo's mobile structure. Follow the example props closely for this block — the demo encodes the canonical layout, and deviating from it will produce broken or unusable navigation."}},"timestamp":"2026-05-13T10:43:02.038Z"}