UNPKG

@melt-ui/svelte

Version:
79 lines (78 loc) 4.78 kB
/// <reference types="svelte" /> import { type WithGet } from '../../internal/helpers/withGet.js'; import type { MeltActionReturn } from '../../internal/types.js'; import { type Readable } from 'svelte/store'; import type { LinkPreviewEvents } from './events.js'; import type { CreateLinkPreviewProps } from './types.js'; export declare const linkPreviewIdParts: readonly ["trigger", "content"]; export type LinkPreviewIdParts = typeof linkPreviewIdParts; export declare function createLinkPreview(props?: CreateLinkPreviewProps): { ids: import("../../internal/helpers/index.js").ToWritableStores<{ content: string; trigger: string; }>; elements: { trigger: import("../../internal/helpers/index.js").MeltElement<[{ update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void; set: (this: void, value: boolean) => void; subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber; get: () => boolean; destroy?: (() => void) | undefined; }, WithGet<import("svelte/store").Writable<string>>, WithGet<import("svelte/store").Writable<string>>], (node: HTMLElement) => MeltActionReturn<LinkPreviewEvents['trigger']>, ([$open, $triggerId, $contentId]: [boolean, string, string]) => { readonly role: "button"; readonly 'aria-haspopup': "dialog"; readonly 'aria-expanded': boolean; readonly 'data-state': "open" | "closed"; readonly 'aria-controls': string; readonly id: string; }, string>; content: import("../../internal/helpers/index.js").MeltElement<[Readable<boolean>, { update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void; set: (this: void, value: boolean) => void; subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber; get: () => boolean; destroy?: (() => void) | undefined; }, import("svelte/store").Writable<HTMLElement | null>, WithGet<import("svelte/store").Writable<string | HTMLElement | null>>, WithGet<import("svelte/store").Writable<string>>], (node: HTMLElement) => MeltActionReturn<LinkPreviewEvents['content']>, ([$isVisible, $open, $activeTrigger, $portal, $contentId]: [boolean, boolean, HTMLElement | null, string | HTMLElement | null, string]) => { readonly hidden: true | undefined; readonly tabindex: -1; readonly style: string | undefined; readonly id: string; readonly 'data-state': "open" | "closed"; readonly 'data-portal': "" | undefined; }, string>; arrow: import("../../internal/helpers/index.js").MeltElement<WithGet<import("svelte/store").Writable<number>>, import("svelte/action").Action<any, any, Record<never, any>>, ($arrowSize: number) => { readonly 'data-arrow': true; readonly style: string; }, string>; }; states: { open: { update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void; set: (this: void, value: boolean) => void; subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber; get: () => boolean; destroy?: (() => void) | undefined; }; }; options: import("../../internal/helpers/index.js").ToWritableStores<Omit<{ positioning: import("../../internal/actions/index.js").FloatingConfig | { placement: "bottom"; }; defaultOpen: boolean; open?: import("svelte/store").Writable<boolean> | undefined; onOpenChange?: import("../../internal/helpers/index.js").ChangeFn<boolean> | undefined; openDelay: number; closeDelay: number; closeOnOutsideClick: boolean; onOutsideClick: ((event: import("../../internal/actions/index.js").InteractOutsideEvent) => void) | undefined; escapeBehavior: import("../../internal/actions/index.js").EscapeBehaviorType; preventTextSelectionOverflow: boolean; arrowSize: number; forceVisible: boolean; portal: string | HTMLElement | null; ids?: Partial<{ content: string; trigger: string; }> | undefined; }, "ids">>; };