/** * The `eox-storytelling` element enables the creation of interactive, multimedia-rich stories using Markdown and custom sections. It supports advanced features such as slot-based content, remote Markdown loading, and custom initialization logic via events. * * ## Usage * Place `` in your application and pass Markdown content via the `markdown` property, slot, or a remote URL using the `markdown-url` property. The component automatically renders the story, including custom sections such as maps, images, and videos, using extended Markdown syntax and HTML comments for configuration. * * ## Features * - **Markdown Rendering:** Supports standard and extended Markdown syntax for rich story content. * - **Slot Content:** Accepts Markdown via slot for flexible content injection. * - **Remote Markdown:** Loads Markdown from external URLs for dynamic stories. * - **Custom Sections:** Add maps, images, videos, and more using HTML comment configuration. * - **Events:** Emits events such as `init` for custom initialization logic (e.g., map projection setup). * * ## Custom Markdown Extensions * In order to add custom functionality to the Markdown rendering, include HTML comments with a specific syntax: ``. Here are some of the supported extensions: * - **Section Configuration:** Define sections with attributes like `as`, `id`, `class`, `style`, and more. * - **Hero Section:** Create a full-screen hero section using `#` (Header 1) with additional attributes for images or videos. * - **Navigation Control:** Use the `nav` attribute to control the visibility of the navigation menu. * - **Custom Attributes:** Use HTML comments to define attributes for sections, such as `as`, `class`, `style`, and more. * * Read the [Markdown with Tour story](./?path=/story/elements-eox-storytelling--markdown-tour) for a comprehensive guide on using Markdown extensions. * * @element eox-storytelling */ export class EOxStoryTelling extends LitElement { static get properties(): { markdown: { attribute: string; type: StringConstructor; }; markdownURL: { attribute: string; type: StringConstructor; }; nav: { state: boolean; attribute: boolean; type: ArrayConstructor; }; showNav: { attribute: string; type: BooleanConstructor; }; showEditor: { attribute: string; type: StringConstructor; }; showHeroScrollIndicator: { attribute: string; type: BooleanConstructor; }; showMapLoadingIndicator: { attribute: string; type: BooleanConstructor; }; noShadow: { attribute: string; type: BooleanConstructor; }; disableAutosave: { attribute: string; type: BooleanConstructor; }; unstyled: { type: BooleanConstructor; }; addCustomSectionIndex: { type: NumberConstructor; state: boolean; }; selectedCustomElement: { type: ObjectConstructor; state: boolean; }; }; /** * @type {String} - Markdown Content */ markdown: string; /** * @type {String} - Markdown Content URL */ markdownURL: string; /** * Render the element without additional styles * * @type {Boolean} */ unstyled: boolean; /** * Renders the element without a shadow root * * @type {Boolean} */ noShadow: boolean; /** * Disable auto save * * @deprecated Will be removed in the next major version * @type {Boolean} */ disableAutosave: boolean; /** * Enable or disable editor * * @deprecated Will be removed in the next major version * @type {String | "closed" | undefined} */ showEditor: string | "closed" | undefined; /** * Enable or disable navigation * * @type {Boolean} */ showNav: boolean; /** * Enable or disable hero scroll indicator * * @type {Boolean} */ showHeroScrollIndicator: boolean; /** * Enable or disable map loading indicator by default * * @type {Boolean} */ showMapLoadingIndicator: boolean; /** * List of items in navigation * * @type {Array} */ nav: Array; /** * custom section index * * @type {Number} */ addCustomSectionIndex: number; /** * Selected custom element object * * @type {Object | null} */ selectedCustomElement: any | null; /** * @param {Map} changedProperties - A map of changed properties. */ updated(changedProperties: Map): Promise; /** * Handles changes to the slot's content, updating the component's internal state. */ handleSlotChange(): void; firstUpdated(): Promise; waitForHtmlInitialization(): Promise; render(): import("lit-html").TemplateResult<1>; #private; } import { LitElement } from "lit"; //# sourceMappingURL=main.d.ts.map