UNPKG

ui-ingredients

Version:

Headless component library for Svelte powered by zag

15 lines (14 loc) 665 B
import * as collapsible from '@zag-js/collapsible'; import { normalizeProps, useMachine } from '@zag-js/svelte'; import { getEnvironmentContext } from '../EnvironmentProvider/EnvironmentProviderContext.svelte.js'; import { getLocaleContext } from '../LocaleProvider/LocaleProviderContext.svelte.js'; export function createCollapsible(props) { const locale = getLocaleContext(); const environment = getEnvironmentContext(); const service = useMachine(collapsible.machine, () => ({ dir: locale?.().dir, getRootNode: environment?.().getRootNode, ...props(), })); return () => collapsible.connect(service, normalizeProps); }