import { CustomElementDefinition } from '../../global/shared-types/custom-element.types'; /** * The Markdown component receives markdown syntax * and renders it as HTML. * * A built-in set of lime-elements components is whitelisted by default * and can be used directly in markdown content without any configuration. * Consumers can extend this list via the `whitelist` prop or `limel-config`. * * When custom elements use JSON attribute values, any URL-bearing * properties (`href`, `src`, `cite`, `longDesc`) are automatically * sanitized using the same protocol allowlists as rehype-sanitize. * URLs with dangerous schemes (e.g. `javascript:`, `data:`) are * removed (with a console warning) to prevent script injection. * * @exampleComponent limel-example-markdown-headings * @exampleComponent limel-example-markdown-emphasis * @exampleComponent limel-example-markdown-lists * @exampleComponent limel-example-markdown-links * @exampleComponent limel-example-markdown-images * @exampleComponent limel-example-markdown-code * @exampleComponent limel-example-markdown-footnotes * @exampleComponent limel-example-markdown-tables * @exampleComponent limel-example-markdown-html * @exampleComponent limel-example-markdown-keys * @exampleComponent limel-example-markdown-blockquotes * @exampleComponent limel-example-markdown-horizontal-rule * @exampleComponent limel-example-markdown-custom-component * @exampleComponent limel-example-markdown-custom-component-with-json-props * @exampleComponent limel-example-markdown-remove-empty-paragraphs * @exampleComponent limel-example-markdown-adapt-color-contrast * @exampleComponent limel-example-markdown-composite */ export declare class Markdown { /** * The input text. Treated as GitHub Flavored Markdown, with the addition * that any included HTML will be parsed and rendered as HTML, rather than * as text. */ value: string; /** * Additional whitelisted custom elements to render inside markdown. * * A built-in set of lime-elements components (such as `limel-chip`, * `limel-icon`, `limel-badge`, `limel-callout`, etc.) is always * allowed by default. Any entries provided here are **merged** with * those defaults — if both define the same `tagName`, their * attributes are combined. * * Can also be set via `limel-config`. Setting this property will * override the global config. * * JSON attribute values that contain URL-bearing properties * (`href`, `src`, `cite`, `longDesc`) are automatically sanitized * using the same protocol allowlists as rehype-sanitize. URLs with * dangerous schemes (e.g. `javascript:`, `data:`) are removed * (with a console warning). * * @alpha */ whitelist?: CustomElementDefinition[]; /** * Enable lazy loading for images */ lazyLoadImages: boolean; /** * Set to `false` to preserve empty paragraphs before rendering. * Empty paragraphs are paragraphs that do not contain * any meaningful content (text, images, etc.), or only contain * whitespace (`
` or ` `). */ removeEmptyParagraphs: boolean; /** * Adapt rendered inline `color:` declarations to the surrounding * surface. After each markdown re-render the component walks the * rendered DOM and removes any inline `color` whose contrast against * the resolved background falls below WCAG 3:1, letting the surface's * themed text color inherit through. Brand colors that already meet * contrast are left alone. * * Default `false` so the component remains a neutral renderer; turn * this on for surfaces that render externally-authored content * (e.g. imported email bodies) where the host application's theme * drives the surrounding text color. */ adaptColorContrast: boolean; textChanged(): Promise; handleWhitelistChange(): Promise; handleRemoveEmptyParagraphsChange(): Promise; handleAdaptColorContrastChange(): Promise; private rootElement; private imageIntersectionObserver; private cachedConsumerWhitelist?; private cachedCombinedWhitelist?; componentDidLoad(): Promise; disconnectedCallback(): void; render(): any; private setupImageIntersectionObserver; private cleanupImageIntersectionObserver; } //# sourceMappingURL=markdown.d.ts.map