/** * A component's documented API, as a Custom Elements Manifest describes it. * * The panel already reads a component's real properties, attributes, slots * and parts from the live element; a manifest adds what the runtime can't * see: descriptions, declared types, events the class fires, CSS custom * properties it reads. These types are that subset, flattened per tag so the * panel needs no knowledge of the manifest schema. * * Manifests come from whatever tool the project or a dependency used (the * `@custom-elements-manifest/analyzer`, `cem`, a hand-written file); members * a manifest lists as inherited (`inheritedFrom`) are kept, so a declaration * carries its base classes' members too when its generator resolved them. */ /** One documented member: a property, attribute, event, slot, part or CSS property. */ export interface DocEntry { /** Empty for a default slot. */ name: string; description?: string; /** The declared type text, e.g. `'small' | 'medium' | 'large'`. */ type?: string; /** The default value as source text. */ default?: string; /** `true` for a bare `@deprecated`, or its reason. */ deprecated?: boolean | string; /** For a property: the attribute it maps to. For an attribute: its property. */ counterpart?: string; /** The class the manifest says it was inherited from. */ inheritedFrom?: string; } /** A usage example from an `@example` tag. */ export interface DocExample { /** The `