'use client'; import { classNames } from '@vkontakte/vkjs'; import { useAdaptivity } from '../../../hooks/useAdaptivity'; import { useMergeProps } from '../../../hooks/useMergeProps'; import { withLabelClickWrapper } from '../../../lib/withLabelClickWrapper'; import { Tappable } from '../../Tappable/Tappable'; import type { CheckboxProps } from '../Checkbox'; import { CheckboxInput } from '../CheckboxInput/CheckboxInput'; import styles from './CheckboxSimple.module.css'; const densityClassNames = { none: styles.densityNone, compact: styles.densityCompact, }; export function CheckboxSimple({ // CheckboxProps getRef, description, titleAfter, noPadding, children, // CheckboxInputProps indeterminate, defaultIndeterminate, IconOnCompact, IconOnRegular, IconOffCompact, IconOffRegular, IconIndeterminate, // Tappable props hoverMode: hoverModeProp, activeMode: activeModeProp, hasHover, hasActive, focusVisibleMode, // Input props checked, defaultChecked, disabled, readOnly, required, autoFocus, id, name, value, onChange, onFocus, onBlur, slotProps, ...restProps }: CheckboxProps) { const { onClick, ...rootRest } = useMergeProps(restProps, slotProps?.root); const inputRest = useMergeProps( { getRootRef: getRef, checked, defaultChecked, disabled, readOnly, required, autoFocus, id, name, value, onChange, onFocus, onBlur, }, slotProps?.input, ); const { density = 'none' } = useAdaptivity(); const hoverMode = hoverModeProp || (noPadding ? 'opacity' : 'background'); const activeMode = activeModeProp || (noPadding ? 'opacity' : 'background'); return ( ); }