UNPKG

@ark-ui/solid

Version:

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

176 lines (161 loc) 5.44 kB
import { PresenceProvider, splitPresenceProps, usePresence, usePresenceContext } from "./2P5Y3YCK.jsx"; import { composeRefs } from "./PT2CJE3O.jsx"; import { createSplitProps } from "./6WEDGJKQ.jsx"; import { ark } from "./UFYZ7HLU.jsx"; import { useEnvironmentContext } from "./CGW54HAQ.jsx"; import { useLocaleContext } from "./JFOWNFC7.jsx"; import { runIfFn } from "./KGOB2IMX.jsx"; import { createContext } from "./UZJJWJQM.jsx"; import { __export } from "./7IUG3E2V.jsx"; // src/components/hover-card/hover-card-arrow.tsx import { mergeProps } from "@zag-js/solid"; // src/components/hover-card/use-hover-card-context.ts var [HoverCardProvider, useHoverCardContext] = createContext({ hookName: "useHoverCardContext", providerName: "<HoverCardProvider />" }); // src/components/hover-card/hover-card-arrow.tsx var HoverCardArrow = (props) => { const hoverCard2 = useHoverCardContext(); const mergedProps = mergeProps(() => hoverCard2().getArrowProps(), props); return <ark.div {...mergedProps} />; }; // src/components/hover-card/hover-card-arrow-tip.tsx import { mergeProps as mergeProps2 } from "@zag-js/solid"; var HoverCardArrowTip = (props) => { const hoverCard2 = useHoverCardContext(); const mergedProps = mergeProps2(() => hoverCard2().getArrowTipProps(), props); return <ark.div {...mergedProps} />; }; // src/components/hover-card/hover-card-content.tsx import { mergeProps as mergeProps3 } from "@zag-js/solid"; import { Show } from "solid-js"; var HoverCardContent = (props) => { const api = useHoverCardContext(); const presenceApi = usePresenceContext(); const mergedProps = mergeProps3( () => api().getContentProps(), () => presenceApi().presenceProps, props ); return <Show when={!presenceApi().unmounted}> <ark.div {...mergedProps} ref={composeRefs(presenceApi().ref, props.ref)} /> </Show>; }; // src/components/hover-card/hover-card-context.tsx var HoverCardContext = (props) => props.children(useHoverCardContext()); // src/components/hover-card/hover-card-positioner.tsx import { mergeProps as mergeProps4 } from "@zag-js/solid"; import { Show as Show2 } from "solid-js"; var HoverCardPositioner = (props) => { const api = useHoverCardContext(); const presenceApi = usePresenceContext(); const mergedProps = mergeProps4(() => api().getPositionerProps(), props); return <Show2 when={!presenceApi().unmounted}> <ark.div {...mergedProps} /> </Show2>; }; // src/components/hover-card/hover-card-root.tsx import { mergeProps as mergeProps5 } from "@zag-js/solid"; // src/components/hover-card/use-hover-card.ts import * as hoverCard from "@zag-js/hover-card"; import { normalizeProps, useMachine } from "@zag-js/solid"; import { createMemo, createUniqueId } from "solid-js"; var useHoverCard = (props) => { const locale = useLocaleContext(); const environment = useEnvironmentContext(); const id = createUniqueId(); const machineProps = createMemo(() => ({ id, dir: locale().dir, getRootNode: environment().getRootNode, ...runIfFn(props) })); const service = useMachine(hoverCard.machine, machineProps); return createMemo(() => hoverCard.connect(service, normalizeProps)); }; // src/components/hover-card/hover-card-root.tsx var HoverCardRoot = (props) => { const [presenceProps, hoverCardProps] = splitPresenceProps(props); const [useHoverCardProps, localProps] = createSplitProps()(hoverCardProps, [ "closeDelay", "defaultOpen", "disabled", "id", "ids", "onFocusOutside", "onInteractOutside", "onOpenChange", "onPointerDownOutside", "open", "openDelay", "positioning" ]); const api = useHoverCard(useHoverCardProps); const apiPresence = usePresence(mergeProps5(presenceProps, () => ({ present: api().open }))); return <HoverCardProvider value={api}> <PresenceProvider value={apiPresence}>{localProps.children}</PresenceProvider> </HoverCardProvider>; }; // src/components/hover-card/hover-card-root-provider.tsx import { mergeProps as mergeProps6 } from "@zag-js/solid"; var HoverCardRootProvider = (props) => { const [presenceProps, hoverCardProps] = splitPresenceProps(props); const presence = usePresence(mergeProps6(presenceProps, () => ({ present: hoverCardProps.value().open }))); return <HoverCardProvider value={hoverCardProps.value}> <PresenceProvider value={presence}>{hoverCardProps.children}</PresenceProvider> </HoverCardProvider>; }; // src/components/hover-card/hover-card-trigger.tsx import { mergeProps as mergeProps7 } from "@zag-js/solid"; var HoverCardTrigger = (props) => { const hoverCard2 = useHoverCardContext(); const mergedProps = mergeProps7(() => hoverCard2().getTriggerProps(), props); return <ark.button {...mergedProps} />; }; // src/components/hover-card/hover-card.ts var hover_card_exports = {}; __export(hover_card_exports, { Arrow: () => HoverCardArrow, ArrowTip: () => HoverCardArrowTip, Content: () => HoverCardContent, Context: () => HoverCardContext, Positioner: () => HoverCardPositioner, Root: () => HoverCardRoot, RootProvider: () => HoverCardRootProvider, Trigger: () => HoverCardTrigger }); export { useHoverCardContext, HoverCardArrow, HoverCardArrowTip, HoverCardContent, HoverCardContext, HoverCardPositioner, useHoverCard, HoverCardRoot, HoverCardRootProvider, HoverCardTrigger, hover_card_exports };