element-book
Version:
An [`element-vir`](https://npmjs.com/package/element-vir) drop-in element for building, testing, and demonstrating a collection of elements (or, in other words, a design system).
42 lines (41 loc) • 1.77 kB
TypeScript
import { type ControlsWrapper } from '../../../data/book-entry/book-page/controls-wrapper.js';
import { type BookRouter } from '../../../routing/book-router.js';
import { type ColorTheme } from '../../color-theme/color-theme.js';
import { type ThemeConfig } from '../../color-theme/create-color-theme.js';
import { type ElementBookConfig } from './element-book-config.js';
import { type GlobalValues } from './global-values.js';
/**
* Current color theme state used inside of {@link ElementBookApp}.
*
* @category Internal
*/
export type ColorThemeState = {
config: ThemeConfig | undefined;
theme: ColorTheme;
};
/**
* The element-book app itself. Instantiate one of these where you want your element-book pages to
* render. Make sure to also provide an array of pages to actually render!
*
* @category Main
*/
export declare const ElementBookApp: import("element-vir").DeclarativeElementDefinition<"element-book-app", ElementBookConfig, {
currentRoute: Readonly<Readonly<Required<import("spa-router-vir").SpaRoute<import("../../../routing/book-routing.js").ValidBookPaths, undefined, undefined>>>>;
router: undefined | BookRouter;
loading: boolean;
colors: {
config: undefined;
theme: ColorTheme;
};
treeBasedControls: {
pages: ElementBookConfig["pages"];
lastGlobalInputs: GlobalValues;
controls: ControlsWrapper;
} | undefined;
originalWindowTitle: string | undefined;
isDarkMode: boolean;
/** Cleanup callback for the dark mode media query listener. */
darkModeCleanup: (() => void) | undefined;
}, {
pathUpdate: import("element-vir").DefineEvent<readonly string[]>;
}, "element-book-app-", "element-book-app-", readonly ["footer", "navHeader"], readonly []>;