{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "tab-navbar",
"title": "Tab Navbar",
"description": "Bottom-style row of icon + label tabs with parent-controlled active state and per-item click handlers.",
"files": [
{
"path": "registry/components/tab-navbar/index.ts",
"content": "export { TabNavbar } from \"./index.tsx\"\nexport type { TabNavbarItem, TabNavbarProps } from \"./types\"\n",
"type": "registry:block"
},
{
"path": "registry/components/tab-navbar/index.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport type { TabNavbarProps } from \"./types\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport function TabNavbar({\n items,\n className,\n labelClassName,\n ariaLabel = \"Primary navigation\",\n}: TabNavbarProps) {\n if (!items.length) {\n return null\n }\n\n return (\n \n )\n}\n\nexport type { TabNavbarItem, TabNavbarProps } from \"./types\"\n",
"type": "registry:block"
},
{
"path": "registry/components/tab-navbar/types.ts",
"content": "import type { MouseEventHandler, ReactNode } from \"react\"\n\nexport type TabNavbarItem = {\n id?: string\n label: string\n icon: ReactNode\n /**\n * Mark the current section (parent-controlled), same idea as `NavbarLinkItem.isActive`.\n */\n isActive?: boolean\n onClick?: MouseEventHandler\n}\n\nexport type TabNavbarProps = {\n items: TabNavbarItem[]\n /**\n * Merged onto the root `