import {
  PresenceProvider,
  splitPresenceProps,
  usePresenceContext
} from "./NEU4F4NG.jsx";
import {
  usePresence
} from "./OEGORBLT.jsx";
import {
  composeRefs
} from "./PT2CJE3O.jsx";
import {
  createSplitProps
} from "./6WEDGJKQ.jsx";
import {
  useEnvironmentContext
} from "./HDGILMRT.jsx";
import {
  useLocaleContext
} from "./HOPBYFHD.jsx";
import {
  runIfFn
} from "./KGOB2IMX.jsx";
import {
  ark
} from "./UFYZ7HLU.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",
    "triggerValue",
    "defaultTriggerValue",
    "onTriggerValueChange"
  ]);
  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 [triggerProps, localProps] = createSplitProps()(props, ["value"]);
  const hoverCard2 = useHoverCardContext();
  const mergedProps = mergeProps7(() => hoverCard2().getTriggerProps(triggerProps), localProps);
  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
};
