'use client';
import { forwardRef, ButtonHTMLAttributes } from 'react';
import styles from './neon-toggle.module.css';
export interface NeonToggleProps extends Omit, 'onChange'> {
/** Current checked state */
checked: boolean;
/** Change callback */
onChange: (checked: boolean) => void;
/** Neon color variant */
variant?: 'cyan' | 'pink' | 'green' | 'purple';
/** Toggle size */
size?: 'sm' | 'md' | 'lg';
}
export const NeonToggle = forwardRef(
(
{
checked,
onChange,
variant = 'cyan',
size = 'md',
disabled = false,
className,
...props
},
ref
) => {
const classes = [
styles.toggle,
styles[variant],
styles[size],
checked && styles.checked,
className,
].filter(Boolean).join(' ');
return (
);
}
);
NeonToggle.displayName = 'NeonToggle';
export default NeonToggle;