{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "segmented-control",
  "type": "registry:component",
  "title": "Segmented Control",
  "description": "Single-choice segmented selector for switching modes, views, or filters.",
  "dependencies": [
    "@vllnt/ui@^0.2.1"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/segmented-control/segmented-control.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\n\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@vllnt/ui\";\n\nconst segmentedControlVariants = cva(\n  \"inline-flex w-full items-center rounded-lg bg-muted p-1 text-muted-foreground\",\n  {\n    defaultVariants: {\n      size: \"default\",\n    },\n    variants: {\n      size: {\n        default: \"min-h-10\",\n        lg: \"min-h-11\",\n        sm: \"min-h-9\",\n      },\n    },\n  },\n);\n\nconst segmentedControlItemVariants = cva(\n  \"inline-flex flex-1 items-center justify-center rounded-md px-3 text-sm font-medium whitespace-nowrap transition-all outline-none ring-offset-background focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm\",\n  {\n    defaultVariants: {\n      size: \"default\",\n    },\n    variants: {\n      size: {\n        default: \"min-h-8\",\n        lg: \"min-h-9 px-4\",\n        sm: \"min-h-7 px-2.5 text-xs\",\n      },\n    },\n  },\n);\n\nexport type SegmentedControlProps = Omit<\n  React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>,\n  \"defaultValue\" | \"onValueChange\" | \"type\" | \"value\"\n> &\n  VariantProps<typeof segmentedControlVariants> & {\n    defaultValue?: string;\n    onValueChange?: (value: string) => void;\n    value?: string;\n  };\n\nexport type SegmentedControlItemProps = React.ComponentPropsWithoutRef<\n  typeof ToggleGroupPrimitive.Item\n> &\n  VariantProps<typeof segmentedControlItemVariants>;\n\nconst SegmentedControl = React.forwardRef<\n  React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n  SegmentedControlProps\n>(({ className, size, ...props }, ref) => (\n  <ToggleGroupPrimitive.Root\n    className={cn(segmentedControlVariants({ size }), className)}\n    ref={ref}\n    type=\"single\"\n    {...props}\n  />\n));\nSegmentedControl.displayName = \"SegmentedControl\";\n\nconst SegmentedControlItem = React.forwardRef<\n  React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n  SegmentedControlItemProps\n>(({ className, size, ...props }, ref) => (\n  <ToggleGroupPrimitive.Item\n    className={cn(segmentedControlItemVariants({ size }), className)}\n    ref={ref}\n    {...props}\n  />\n));\nSegmentedControlItem.displayName = \"SegmentedControlItem\";\n\nexport {\n  SegmentedControl,\n  SegmentedControlItem,\n  segmentedControlItemVariants,\n  segmentedControlVariants,\n};\n",
      "type": "registry:component"
    }
  ],
  "version": "0.2.1",
  "stability": "stable"
}
