{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "segmented-control",
  "title": "Segmented Control",
  "description": "Single-choice segmented selector for switching modes, views, or filters.",
  "dependencies": [
    "@vllnt/ui@^0.3.0"
  ],
  "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 = ({\n  className,\n  ref,\n  size,\n  ...props\n}: SegmentedControlProps & {\n  ref?: React.Ref<React.ComponentRef<typeof ToggleGroupPrimitive.Root>>;\n}) => (\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 = ({\n  className,\n  ref,\n  size,\n  ...props\n}: SegmentedControlItemProps & {\n  ref?: React.Ref<React.ComponentRef<typeof ToggleGroupPrimitive.Item>>;\n}) => (\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"
    }
  ],
  "type": "registry:component",
  "version": "0.3.0",
  "stability": "stable"
}
