@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
53 lines (47 loc) • 1.28 kB
JSX
import {
usePresence
} from "./OEGORBLT.jsx";
import {
composeRefs
} from "./PT2CJE3O.jsx";
import {
createSplitProps
} from "./6WEDGJKQ.jsx";
import {
ark
} from "./UFYZ7HLU.jsx";
import {
createContext
} from "./UZJJWJQM.jsx";
// src/components/presence/presence.tsx
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 <Show when={!api().unmounted}>
<ark.div {...mergedProps} ref={composeRefs(api().ref, props.ref)} data-scope="presence" data-part="root" />
</Show>;
};
// src/components/presence/use-presence-context.ts
var [PresenceProvider, usePresenceContext] = createContext({
hookName: "usePresenceContext",
providerName: "<PresenceProvider />"
});
export {
splitPresenceProps,
Presence,
PresenceProvider,
usePresenceContext
};