-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathradio-group.tsx
More file actions
43 lines (37 loc) · 1.41 KB
/
radio-group.tsx
File metadata and controls
43 lines (37 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'use client'
import * as React from 'react'
import { CircleIcon } from '@phosphor-icons/react'
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group'
import { cn } from '../../utils/cn'
function RadioGroup({
className,
...props
}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
return (
<RadioGroupPrimitive.Root
data-slot="radio-group"
className={cn('grid gap-6', className)}
{...props}
/>
)
}
function RadioGroupItem({
className,
...props
}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
return (
<RadioGroupPrimitive.Item
data-slot="radio-group-item"
className={cn(
'relative 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 bg-background dark:bg-input/30 aspect-square size-8 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[2px] disabled:cursor-not-allowed disabled:bg-surface-disabled disabled:border-border-disabled box-content',
className
)}
{...props}
>
<RadioGroupPrimitive.Indicator data-slot="radio-group-indicator">
<CircleIcon weight="fill" className="fill-primary size-6 inset-0 m-auto" />
</RadioGroupPrimitive.Indicator>
</RadioGroupPrimitive.Item>
)
}
export { RadioGroup, RadioGroupItem }