import {
  PresenceProvider,
  splitPresenceProps,
  usePresence,
  usePresenceContext
} from "./WC2HBDLJ.jsx";
import {
  composeRefs
} from "./DOBZPYAN.jsx";
import {
  createSplitProps
} from "./6WEDGJKQ.jsx";
import {
  ark
} from "./UFYZ7HLU.jsx";
import {
  useEnvironmentContext
} from "./D2Z5BEON.jsx";
import {
  useLocaleContext
} from "./RCXMZN3G.jsx";
import {
  createContext
} from "./TVCIHLER.jsx";
import {
  runIfFn
} from "./KGOB2IMX.jsx";
import {
  __export
} from "./7IUG3E2V.jsx";

// src/components/tooltip/tooltip-arrow.tsx
import { mergeProps } from "@zag-js/solid";

// src/components/tooltip/use-tooltip-context.ts
var [TooltipProvider, useTooltipContext] = createContext({
  hookName: "useTooltipContext",
  providerName: "<TooltipProvider />"
});

// src/components/tooltip/tooltip-arrow.tsx
var TooltipArrow = (props) => {
  const tooltip2 = useTooltipContext();
  const mergedProps = mergeProps(() => tooltip2().getArrowProps(), props);
  return <ark.div {...mergedProps} />;
};

// src/components/tooltip/tooltip-arrow-tip.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var TooltipArrowTip = (props) => {
  const api = useTooltipContext();
  const mergedProps = mergeProps2(() => api().getArrowTipProps(), props);
  return <ark.div {...mergedProps} />;
};

// src/components/tooltip/tooltip-content.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
import { Show } from "solid-js";
var TooltipContent = (props) => {
  const api = useTooltipContext();
  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/tooltip/tooltip-context.tsx
var TooltipContext = (props) => props.children(useTooltipContext());

// src/components/tooltip/tooltip-positioner.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
import { Show as Show2 } from "solid-js";
var TooltipPositioner = (props) => {
  const api = useTooltipContext();
  const presenceApi = usePresenceContext();
  const mergedProps = mergeProps4(() => api().getPositionerProps(), props);
  return <Show2 when={!presenceApi().unmounted}>
      <ark.div {...mergedProps} />
    </Show2>;
};

// src/components/tooltip/tooltip-root.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";

// src/components/tooltip/use-tooltip.ts
import { normalizeProps, useMachine } from "@zag-js/solid";
import * as tooltip from "@zag-js/tooltip";
import { createMemo, createUniqueId } from "solid-js";
var useTooltip = (props) => {
  const id = createUniqueId();
  const locale = useLocaleContext();
  const environment = useEnvironmentContext();
  const machineProps = createMemo(() => ({
    id,
    dir: locale().dir,
    getRootNode: environment().getRootNode,
    ...runIfFn(props)
  }));
  const service = useMachine(tooltip.machine, machineProps);
  return createMemo(() => tooltip.connect(service, normalizeProps));
};

// src/components/tooltip/tooltip-root.tsx
var TooltipRoot = (props) => {
  const [presenceProps, tooltipProps] = splitPresenceProps(props);
  const [useTooltipProps, localProps] = createSplitProps()(tooltipProps, [
    "aria-label",
    "closeDelay",
    "closeOnClick",
    "closeOnEscape",
    "closeOnPointerDown",
    "closeOnScroll",
    "defaultOpen",
    "disabled",
    "id",
    "ids",
    "interactive",
    "onOpenChange",
    "open",
    "openDelay",
    "positioning"
  ]);
  const api = useTooltip(useTooltipProps);
  const apiPresence = usePresence(mergeProps5(presenceProps, () => ({ present: api().open })));
  return <TooltipProvider value={api}>
      <PresenceProvider value={apiPresence}>{localProps.children}</PresenceProvider>
    </TooltipProvider>;
};

// src/components/tooltip/tooltip-root-provider.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var TooltipRootProvider = (props) => {
  const [presenceProps, tooltipProps] = splitPresenceProps(props);
  const presence = usePresence(mergeProps6(presenceProps, () => ({ present: tooltipProps.value().open })));
  return <TooltipProvider value={tooltipProps.value}>
      <PresenceProvider value={presence}>{tooltipProps.children}</PresenceProvider>
    </TooltipProvider>;
};

// src/components/tooltip/tooltip-trigger.tsx
import { mergeProps as mergeProps7 } from "@zag-js/solid";
var TooltipTrigger = (props) => {
  const api = useTooltipContext();
  const mergedProps = mergeProps7(() => api().getTriggerProps(), props);
  return <ark.button {...mergedProps} />;
};

// src/components/tooltip/tooltip.anatomy.ts
import { anatomy } from "@zag-js/tooltip";

// src/components/tooltip/tooltip.ts
var tooltip_exports = {};
__export(tooltip_exports, {
  Arrow: () => TooltipArrow,
  ArrowTip: () => TooltipArrowTip,
  Content: () => TooltipContent,
  Context: () => TooltipContext,
  Positioner: () => TooltipPositioner,
  Root: () => TooltipRoot,
  RootProvider: () => TooltipRootProvider,
  Trigger: () => TooltipTrigger
});

export {
  useTooltipContext,
  TooltipArrow,
  TooltipArrowTip,
  TooltipContent,
  TooltipContext,
  TooltipPositioner,
  useTooltip,
  TooltipRoot,
  TooltipRootProvider,
  TooltipTrigger,
  anatomy,
  tooltip_exports
};
