UNPKG

@kobalte/core

Version:

Unstyled components and primitives for building accessible web apps and design systems with SolidJS.

28 lines (25 loc) 763 B
import { createControllableBooleanSignal } from './BLN63FDC.js'; import { access } from '@kobalte/utils'; function createToggleState(props = {}) { const [isSelected, _setIsSelected] = createControllableBooleanSignal({ value: () => access(props.isSelected), defaultValue: () => !!access(props.defaultIsSelected), onChange: (value) => props.onSelectedChange?.(value) }); const setIsSelected = (value) => { if (!access(props.isReadOnly) && !access(props.isDisabled)) { _setIsSelected(value); } }; const toggle = () => { if (!access(props.isReadOnly) && !access(props.isDisabled)) { _setIsSelected(!isSelected()); } }; return { isSelected, setIsSelected, toggle }; } export { createToggleState };