import type { JSX } from "@solidjs/web"; import { type Accessor } from "solid-js"; import { type MaybeAccessor } from "../internals/maybe-accessor.js"; /** * Why the preview card's open state changed. * * - `"trigger-hover"` — pointer entered / left the trigger. * - `"trigger-focus"` — keyboard focus moved to / from the trigger. * - `"escape-key"` — Escape dismissed the card. * - `"outside-press"` — pointer pressed outside. * - `"imperative"` — `pc.setOpen()` called programmatically. */ export type PreviewCardChangeReason = "trigger-hover" | "trigger-focus" | "escape-key" | "outside-press" | "imperative"; /** * Options for {@link createPreviewCard}. */ export interface CreatePreviewCardOptions { /** * Open state. Consumer-owned signal. */ open: MaybeAccessor; /** * Whether interaction is suppressed. * @default false */ disabled?: MaybeAccessor; /** * Pre-change callback fired via `runWithOwner(null, ...)`. */ onOpenChange?: (open: boolean, event: Event, reason: PreviewCardChangeReason) => void; /** * Delay before opening (ms). * @default 600 */ delay?: MaybeAccessor; /** * Delay before closing on hover-out (ms). * @default 300 */ closeDelay?: MaybeAccessor; } /** * Public API returned by {@link createPreviewCard}. */ export interface PreviewCardApi { /** Reactive accessor for the current open state. */ open: Accessor; /** Whether interaction is suppressed. */ disabled: Accessor; /** Open delay in ms. */ delay: Accessor; /** Close delay in ms. */ closeDelay: Accessor; /** Imperative open setter. */ setOpen: (next: boolean, event?: Event, reason?: PreviewCardChangeReason) => void; /** Flip open (no-op when disabled). */ toggle: (event?: Event, reason?: PreviewCardChangeReason) => void; /** Context provider. */ Provider: (props: { children: JSX.Element; }) => JSX.Element; } /** * Read the nearest {@link PreviewCardApi}. Throws unless `optional` is true. */ export declare function usePreviewCard(): PreviewCardApi; export declare function usePreviewCard(optional: true): PreviewCardApi | null; /** * Headless primitive for a preview-card compound. Hover-triggered with open * and close delays. DOM machinery lives in ``. */ export declare function createPreviewCard(options: CreatePreviewCardOptions): PreviewCardApi; //# sourceMappingURL=create-preview-card.d.ts.map