@melt-ui/svelte
Version:

76 lines (75 loc) • 4.53 kB
TypeScript
/// <reference types="svelte" />
import type { MeltActionReturn } from '../../internal/types.js';
import { type Writable } from 'svelte/store';
import type { TooltipEvents } from './events.js';
import type { CreateTooltipProps } from './types.js';
export declare const tooltipIdParts: readonly ["trigger", "content"];
export type TooltipIdParts = typeof tooltipIdParts;
export declare function createTooltip(props?: CreateTooltipProps): {
ids: import("../../internal/helpers/index.js").ToWritableStores<{
content: string;
trigger: string;
}>;
elements: {
trigger: import("../../internal/helpers/index.js").MeltElement<[import("../../internal/helpers/index.js").WithGet<Writable<string>>, import("../../internal/helpers/index.js").WithGet<Writable<string>>, {
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;
}], (node: HTMLElement) => MeltActionReturn<TooltipEvents['trigger']>, ([$contentId, $triggerId, $open]: [string, string, boolean]) => {
readonly 'aria-describedby': string;
readonly id: string;
readonly 'data-state': "open" | "closed";
}, string>;
content: import("../../internal/helpers/index.js").MeltElement<[import("svelte/store").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("../../internal/helpers/index.js").WithGet<Writable<string | HTMLElement | null>>, import("../../internal/helpers/index.js").WithGet<Writable<string>>], (node: HTMLElement) => MeltActionReturn<TooltipEvents['content']>, ([$isVisible, $open, $portal, $contentId]: [boolean, boolean, string | HTMLElement | null, string]) => {
readonly role: "tooltip";
readonly hidden: true | undefined;
readonly tabindex: -1;
readonly style: string | undefined;
readonly id: string;
readonly 'data-portal': "" | undefined;
readonly 'data-state': "open" | "closed";
}, string>;
arrow: import("../../internal/helpers/index.js").MeltElement<import("../../internal/helpers/index.js").WithGet<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";
};
arrowSize: number;
defaultOpen: boolean;
open?: Writable<boolean> | undefined;
onOpenChange?: import("../../internal/helpers/index.js").ChangeFn<boolean> | undefined;
closeOnPointerDown: boolean;
openDelay: number;
closeDelay: number;
forceVisible: boolean;
escapeBehavior: import("../../internal/actions/index.js").EscapeBehaviorType;
disableHoverableContent: boolean;
group: string | boolean | undefined;
portal: string | HTMLElement | null;
ids?: Partial<{
content: string;
trigger: string;
}> | undefined;
}, "open" | "ids">>;
};