{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tabs",
  "type": "registry:ui",
  "dependencies": [
    "@kobalte/core"
  ],
  "files": [
    {
      "path": "ui/tabs.tsx",
      "content": "import type { ValidComponent } from \"solid-js\"\nimport { splitProps } from \"solid-js\"\n\nimport type { PolymorphicProps } from \"@kobalte/core/polymorphic\"\nimport * as TabsPrimitive from \"@kobalte/core/tabs\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype TabsProps<T extends ValidComponent = \"div\"> = TabsPrimitive.TabsRootProps<T> & {\n  class?: string | undefined\n}\n\nconst Tabs = <T extends ValidComponent = \"div\">(props: PolymorphicProps<T, TabsProps<T>>) => {\n  const [local, others] = splitProps(props as TabsProps, [\"class\"])\n  return (\n    <TabsPrimitive.Root\n      class={cn(\"flex flex-col gap-2\", local.class)}\n      data-slot=\"tabs\"\n      {...others}\n    />\n  )\n}\n\ntype TabsListProps<T extends ValidComponent = \"div\"> = TabsPrimitive.TabsListProps<T> & {\n  class?: string | undefined\n}\n\nconst TabsList = <T extends ValidComponent = \"div\">(\n  props: PolymorphicProps<T, TabsListProps<T>>\n) => {\n  const [local, others] = splitProps(props as TabsListProps, [\"class\"])\n  return (\n    <TabsPrimitive.List\n      class={cn(\n        \"inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground\",\n        local.class\n      )}\n      data-slot=\"tabs-list\"\n      {...others}\n    />\n  )\n}\n\ntype TabsTriggerProps<T extends ValidComponent = \"button\"> = TabsPrimitive.TabsTriggerProps<T> & {\n  class?: string | undefined\n}\n\nconst TabsTrigger = <T extends ValidComponent = \"button\">(\n  props: PolymorphicProps<T, TabsTriggerProps<T>>\n) => {\n  const [local, others] = splitProps(props as TabsTriggerProps, [\"class\"])\n  return (\n    <TabsPrimitive.Trigger\n      class={cn(\n        \"inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-2 py-1 font-medium text-muted-foreground text-sm transition-[color,box-shadow] focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[selected]:bg-background data-[selected]:text-foreground data-[selected]:shadow-sm dark:data-[selected]:border-input dark:data-[selected]:bg-input/30 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        local.class\n      )}\n      data-slot=\"tabs-trigger\"\n      {...others}\n    />\n  )\n}\n\ntype TabsContentProps<T extends ValidComponent = \"div\"> = TabsPrimitive.TabsContentProps<T> & {\n  class?: string | undefined\n}\n\nconst TabsContent = <T extends ValidComponent = \"div\">(\n  props: PolymorphicProps<T, TabsContentProps<T>>\n) => {\n  const [local, others] = splitProps(props as TabsContentProps, [\"class\"])\n  return (\n    <TabsPrimitive.Content\n      class={cn(\"flex-1 outline-none\", local.class)}\n      data-slot=\"tabs-content\"\n      {...others}\n    />\n  )\n}\n\ntype TabsIndicatorProps<T extends ValidComponent = \"div\"> = TabsPrimitive.TabsIndicatorProps<T> & {\n  class?: string | undefined\n}\n\nconst TabsIndicator = <T extends ValidComponent = \"div\">(\n  props: PolymorphicProps<T, TabsIndicatorProps<T>>\n) => {\n  const [local, others] = splitProps(props as TabsIndicatorProps, [\"class\"])\n  return (\n    <TabsPrimitive.Indicator\n      class={cn(\n        \"data-[orientation=horizontal]:-bottom-px data-[orientation=vertical]:-right-px absolute transition-all duration-250ms data-[orientation=horizontal]:h-[2px] data-[orientation=vertical]:w-[2px]\",\n        local.class\n      )}\n      {...others}\n    />\n  )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, TabsIndicator }\n",
      "type": "registry:ui"
    }
  ]
}