Path: blob/master/gate-controller/components/ui/radio-group.tsx
1093 views
"use client"12import * as React from "react"3import * as RadioGroupPrimitive from "@radix-ui/react-radio-group"4import { CircleIcon } from "lucide-react"56import { cn } from "@/lib/utils"78function RadioGroup({9className,10...props11}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {12return (13<RadioGroupPrimitive.Root14data-slot="radio-group"15className={cn("grid gap-3", className)}16{...props}17/>18)19}2021function RadioGroupItem({22className,23...props24}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {25return (26<RadioGroupPrimitive.Item27data-slot="radio-group-item"28className={cn(29"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",30className31)}32{...props}33>34<RadioGroupPrimitive.Indicator35data-slot="radio-group-indicator"36className="relative flex items-center justify-center"37>38<CircleIcon className="fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" />39</RadioGroupPrimitive.Indicator>40</RadioGroupPrimitive.Item>41)42}4344export { RadioGroup, RadioGroupItem }454647