{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tabs",
  "dependencies": [
    "@data-slot/tabs"
  ],
  "files": [
    {
      "path": "src/components/ui/tabs/tabs.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  defaultValue?: string\n  orientation?: \"horizontal\" | \"vertical\"\n  activationMode?: \"auto\" | \"manual\"\n}\n\nconst {\n  class: className,\n  defaultValue,\n  orientation = \"horizontal\",\n  activationMode,\n  ...props\n} = Astro.props\n---\n\n<div\n  data-slot=\"tabs\"\n  data-default-value={defaultValue}\n  data-orientation={orientation}\n  data-activation-mode={activationMode}\n  data-horizontal={orientation === \"horizontal\" ? \"\" : undefined}\n  data-vertical={orientation === \"vertical\" ? \"\" : undefined}\n  class={cn(\"group/tabs flex gap-2 data-horizontal:flex-col\", className)}\n  {...props}\n>\n  <slot />\n</div>\n\n<script>\n  import { create } from \"@data-slot/tabs\"\n\n  create()\n</script>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/tabs/tabs-content.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  value?: string\n}\n\nconst { class: className, value, ...props } = Astro.props\n---\n\n<div\n  data-slot=\"tabs-content\"\n  data-value={value}\n  class={cn(\"flex-1 text-sm outline-none\", className)}\n  {...props}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/tabs/tabs-list.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { tabsListVariants } from \"./tabs-list-variants\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  variant?: \"default\" | \"line\"\n}\n\nconst { class: className, variant = \"default\", ...props } = Astro.props\n---\n\n<div\n  data-slot=\"tabs-list\"\n  data-variant={variant}\n  class={cn(tabsListVariants({ variant }), className)}\n  {...props}\n>\n  {\n    variant === \"line\" && (\n      <div\n        data-slot=\"tabs-indicator\"\n        class=\"bg-border/60 pointer-events-none absolute rounded-full transition-[left,top,width,height] duration-200 group-data-horizontal/tabs-list:bottom-0 group-data-horizontal/tabs-list:left-(--active-tab-left,0px) group-data-horizontal/tabs-list:h-0.5 group-data-horizontal/tabs-list:w-(--active-tab-width,0px) group-data-vertical/tabs-list:top-(--active-tab-top,0px) group-data-vertical/tabs-list:left-0 group-data-vertical/tabs-list:h-(--active-tab-height,0px) group-data-vertical/tabs-list:w-0.5\"\n      />\n    )\n  }\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/tabs/tabs-list-variants.ts",
      "content": "import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const tabsListVariants = cva(\n  \"group/tabs-list text-muted-foreground relative inline-flex w-fit items-center justify-center rounded-lg p-[3px] group-data-horizontal/tabs:h-9 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-muted\",\n        line: \"gap-1 bg-transparent\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  }\n)\n\nexport type TabsListVariantProps = VariantProps<typeof tabsListVariants>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/tabs/tabs-trigger.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"button\"> & {\n  value?: string\n}\n\nconst { class: className, value, ...props } = Astro.props\n---\n\n<button\n  data-slot=\"tabs-trigger\"\n  data-value={value}\n  class={cn(\n    \"text-foreground/60 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n    \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent\",\n    \"data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground\",\n    \"after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100\",\n    className\n  )}\n  {...props}\n>\n  <slot />\n</button>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/tabs/index.ts",
      "content": "export { default as Tabs } from \"./tabs.astro\"\nexport { default as TabsList } from \"./tabs-list.astro\"\nexport { default as TabsTrigger } from \"./tabs-trigger.astro\"\nexport { default as TabsContent } from \"./tabs-content.astro\"\nexport {\n  tabsListVariants,\n  type TabsListVariantProps,\n} from \"./tabs-list-variants\"\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}