UNPKG

@ark-ui/solid

Version:

A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.

49 lines (44 loc) 1.52 kB
import { usePresence } from './X22PRPOR.js'; import { composeRefs } from './ROP6QZQ7.js'; import { createSplitProps } from './ZMHI4GDJ.js'; import { ark } from './EPLBB4QN.js'; import { createContext } from './THN5C4U6.js'; import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web'; import { mergeProps } from '@zag-js/solid'; import { Show } from 'solid-js'; // src/components/presence/split-presence-props.ts var splitPresenceProps = (props) => createSplitProps()(props, [ "immediate", "lazyMount", "onExitComplete", "present", "skipAnimationOnMount", "unmountOnExit" ]); // src/components/presence/presence.tsx var Presence = (props) => { const [presenceProps, localProps] = splitPresenceProps(props); const api = usePresence(presenceProps); const mergedProps = mergeProps(() => api().presenceProps, localProps); return createComponent(Show, { get when() { return !api().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { ref(r$) { var _ref$ = composeRefs(api().ref, props.ref); typeof _ref$ === "function" && _ref$(r$); }, "data-scope": "presence", "data-part": "root" })); } }); }; // src/components/presence/use-presence-context.ts var [PresenceProvider, usePresenceContext] = createContext({ hookName: "usePresenceContext", providerName: "<PresenceProvider />" }); export { Presence, PresenceProvider, splitPresenceProps, usePresenceContext };