UNPKG

@ark-ui/solid

Version:

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

183 lines (167 loc) 5.36 kB
import { PresenceProvider, splitPresenceProps, usePresence, usePresenceContext } from "./IG7INNI2.jsx"; import { composeRefs } from "./PT2CJE3O.jsx"; import { createSplitProps } from "./6WEDGJKQ.jsx"; import { ark } from "./UFYZ7HLU.jsx"; import { useLocaleContext } from "./YUC6JE7K.jsx"; import { useEnvironmentContext } from "./E2L62MKC.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 };