UNPKG

@kobalte/core

Version:

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

34 lines (31 loc) 714 B
import { createControllableBooleanSignal } from "./FN6EICGO.jsx"; // src/primitives/create-disclosure-state/create-disclosure-state.ts import { access } from "@kobalte/utils"; function createDisclosureState(props = {}) { const [isOpen, setIsOpen] = createControllableBooleanSignal({ value: () => access(props.open), defaultValue: () => !!access(props.defaultOpen), onChange: (value) => props.onOpenChange?.(value) }); const open = () => { setIsOpen(true); }; const close = () => { setIsOpen(false); }; const toggle = () => { isOpen() ? close() : open(); }; return { isOpen, setIsOpen, open, close, toggle }; } export { createDisclosureState };