UNPKG

@kobalte/core

Version:

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

33 lines (30 loc) 829 B
import { createControllableBooleanSignal } from "./FN6EICGO.jsx"; // src/primitives/create-toggle-state/create-toggle-state.ts 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 };