/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; import { SkeletonShape, SkeletonSize, SkeletonElementType, SkeletonAvatarConfig, SkeletonTitleConfig, SkeletonParagraphConfig, SkeletonButtonConfig, SkeletonInputConfig, SkeletonImageConfig } from './skeleton.types.js'; declare const NrSkeletonElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement; /** * # Skeleton Component * * Provides a placeholder while content is loading, or to visualize content that doesn't exist yet. * Improves perceived performance and user experience during data fetching. * * ## Features * - Multiple skeleton elements (Avatar, Title, Paragraph, Button, Input, Image) * - Active animation effect * - Customizable shapes (circle, square, round) * - Configurable sizes (small, default, large) * - Loading state management * - Theme-aware styling * - Flexible configuration options * * ## Usage * ```html * * * * * * * * * * * * * Article Title * Article content goes here... * * * * * * * * * ``` * * @element nr-skeleton * * @slot content - Content to show when loading is false * * @csspart skeleton - The root skeleton wrapper element * @csspart avatar - The avatar placeholder circle/square element * @csspart title - The title placeholder bar * @csspart paragraph - The paragraph placeholder container * @csspart paragraph-line - Each individual line in the paragraph placeholder * @csspart button - The button placeholder element (element="button") * @csspart input - The input placeholder element (element="input") * @csspart image - The image placeholder element (element="image") */ export declare class NrSkeletonElement extends NrSkeletonElement_base { static styles: import("lit").CSSResult; static useShadowDom: boolean; /** * Show animation effect */ active: boolean; /** * Show avatar placeholder */ avatar: boolean; /** * Avatar configuration */ avatarConfig: SkeletonAvatarConfig; /** * Display the skeleton when true */ loading: boolean; /** * Show paragraph placeholder */ paragraph: boolean; /** * Paragraph configuration */ paragraphConfig: SkeletonParagraphConfig; /** * Show paragraph and title radius when true */ round: boolean; /** * Show title placeholder */ showTitle: boolean; /** * Title configuration */ titleConfig: SkeletonTitleConfig; /** * Element type for standalone skeleton elements */ element?: SkeletonElementType; /** * Button configuration */ buttonConfig: SkeletonButtonConfig; /** * Input configuration */ inputConfig: SkeletonInputConfig; /** * Image configuration */ imageConfig: SkeletonImageConfig; /** * Block style for button/input */ block: boolean; /** * Shape for standalone elements */ shape: SkeletonShape; /** * Size for standalone elements */ size: SkeletonSize; /** * Render avatar skeleton */ private renderAvatar; /** * Render title skeleton */ private renderTitle; /** * Render paragraph skeleton */ private renderParagraph; /** * Render button skeleton */ private renderButton; /** * Render input skeleton */ private renderInput; /** * Render image skeleton */ private renderImage; /** * Render standalone element */ private renderStandaloneElement; /** * Render full skeleton */ private renderSkeleton; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'nr-skeleton': NrSkeletonElement; } } export {}; //# sourceMappingURL=skeleton.component.d.ts.map
Article content goes here...