{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "tabs", "title": "Integrated Tabs", "description": "", "registryDependencies": [ "tabs" ], "files": [ { "path": "registry/ui/tabs.tsx", "content": "\"use client\";\n\nimport type { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport type { ClassValue } from \"clsx\";\nimport type { ReactNode } from \"react\";\nimport {\n TabsContent,\n TabsList,\n Tabs as TabsRoot,\n TabsTrigger,\n} from \"@/components/ui/tabs\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface TabsItem {\n content: ReactNode;\n contentClassName?: ClassValue;\n disabled?: boolean;\n keepMounted?: boolean;\n trigger: ReactNode;\n triggerClassName?: ClassValue;\n value: string;\n}\n\nexport interface TabsProps\n extends Omit<\n TabsPrimitive.Root.Props,\n \"children\" | \"defaultValue\" | \"onValueChange\" | \"render\" | \"value\"\n > {\n contentClassName?: ClassValue;\n defaultValue?: string;\n items: TabsItem[];\n keepMounted?: boolean;\n listClassName?: ClassValue;\n onValueChange?: (\n value: string,\n eventDetails: TabsPrimitive.Root.ChangeEventDetails\n ) => void;\n triggerClassName?: ClassValue;\n value?: string;\n variant?: \"default\" | \"line\";\n}\n\nexport const Tabs = ({\n items,\n keepMounted,\n listClassName,\n triggerClassName,\n contentClassName,\n className,\n variant,\n ...rootProps\n}: TabsProps) => (\n \n {items.length > 0 && (\n \n {items.map((item) => (\n \n {item.trigger}\n \n ))}\n \n )}\n {items.map((item) => (\n \n {item.content}\n \n ))}\n \n);\n\nexport default Tabs;\n", "type": "registry:component", "target": "components/easy/tabs.tsx" } ], "type": "registry:component" }