melt
Version:
The next generation of Melt UI. Built for Svelte 5.
37 lines (36 loc) • 1.48 kB
TypeScript
import { type Attachment } from "svelte/attachments";
export declare function createId(): string;
type DataIds<Name extends string, Parts extends string[]> = {
[P in Parts[number]]: `data-melt-${Name}-${P}`;
};
/**
* @deprecated use `createBuilderMetaData` instead
*/
export declare function createDataIds<const Name extends string, const Parts extends string[]>(name: Name, parts: Parts): DataIds<Name, Parts>;
type Ids<T extends DataIds<string, string[]>> = {
[P in keyof T]: string;
};
export declare function createIds<const T extends DataIds<string, string[]>>(identifiers: T): Ids<T>;
export type BuilderMetadata<Name extends string, Parts extends string[]> = {
dataAttrs: {
[P in Parts[number]]: `data-melt-${Name}-${P}`;
};
dataSelectors: {
[P in Parts[number]]: `[data-melt-${Name}-${P}]`;
};
createIds: () => {
[P in Parts[number]]: string;
};
createReferences: () => {
get: (key: Parts[number]) => HTMLElement | undefined;
attach: (key: Parts[number]) => Attachment<HTMLElement>;
key: any;
};
};
export declare function createBuilderMetadata<const Name extends string, const Parts extends string[]>(name: Name, parts: Parts): BuilderMetadata<Name, Parts>;
export declare function createReferences<const Parts extends string[]>(): {
get(key: Parts[number]): HTMLElement | undefined;
attach(key: Parts[number]): Attachment<HTMLElement>;
key: symbol;
};
export {};