Files
upstream-mirror 1416db152c
All checks were successful
Release / Create Version PR or Publish Stable Release (push) Has been skipped
Release / Publish Prerelease to NPM (push) Has been skipped
Monitor Registries / Monitor registry health (push) Has been skipped
snapshot of https://github.com/shadcn-ui/ui.git (main, 2026-09-15; blobs > 131072B omitted)
2026-09-15 22:44:43 +05:00

47 lines
1.2 KiB
TypeScript

"use client"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "cn"
import {
ToggleButton as TogglePrimitive,
type ToggleButtonProps,
} from "react-aria-components"
const toggleVariants = cva(
"cn-toggle cn-toggle-aria group/toggle inline-flex items-center justify-center whitespace-nowrap outline-none hover:bg-muted focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
{
variants: {
variant: {
default: "cn-toggle-variant-default",
outline: "cn-toggle-variant-outline",
},
size: {
default: "cn-toggle-size-default",
sm: "cn-toggle-size-sm",
lg: "cn-toggle-size-lg",
},
},
defaultVariants: {
variant: "default",
size: "default",
},
}
)
function Toggle({
className,
variant = "default",
size = "default",
...props
}: ToggleButtonProps & VariantProps<typeof toggleVariants>) {
return (
<TogglePrimitive
data-slot="toggle"
className={cn(toggleVariants({ variant, size, className }))}
{...props}
/>
)
}
export { Toggle, toggleVariants }