export type WebTypesOptions = { /** @default "docs/web-types.json" */ webTypesFileName?: string; /** Adds an icon link to the web-types.json **/ defaultIcon?: string; }; /** * "web-types.json" has TypeScript definitions, but those are in a package that * has a bunch of Vue dependencies, which we don't want. Opened an issue: * https://github.com/JetBrains/web-types/issues/83 */ export type WebTypes = { ["$schema"]: string; name: string; version: string; ["description-markup"]: "html" | "markdown" | "none"; ["default-icon"]?: string; contributions?: { html?: { elements?: readonly WebTypesElement[]; tags?: readonly WebTypesElement[]; }; css?: { properties?: WebTypesCssProperty[]; ["pseudo-elements"]?: WebTypesPseudoElement[]; }; }; }; export type WebTypesElement = { name: string; description: string; ["doc-url"]?: string; attributes: WebTypesAttribute[]; slots?: WebTypesSlot[]; js?: WebTypesJsProperties; }; export type WebTypesAttribute = { name: string; description?: string; default?: string; value: WebTypesValue; required?: boolean; }; export type WebTypesSlot = { name?: string; description?: string; }; export type WebTypesValue = { type?: string[] | string; }; export type WebTypesJsProperties = { properties: WebTypesJsProperty[]; events: WebTypesEvent[]; }; export type WebTypesJsProperty = { name: string; description?: string; type?: string; default?: string; }; export type WebTypesEvent = { name: string; type?: string; description?: string; }; export type WebTypesPseudoElement = { name: string; description?: string; docUrl?: string; arguments?: boolean; deprecated?: boolean; }; export type WebTypesCssProperty = { name: string; description?: string; };