import { type IGapableProps } from '../../../Behaviors/Gapable'; import { DockSide } from '../../../Types/DockSide'; import { LayoutElement } from '../Abstracts/LayoutElement'; import type { IDockPanelElementProps } from './IDockPanelElementProps'; declare const DockPanelElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Reversible").IReversibleProps) & (abstract new (...args: Array) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Fitable").IFitableProps) & (abstract new (...args: Array) => IGapableProps) & typeof LayoutElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Dock Panel - A flexible layout container for docking child elements to specific edges with fill capability. * * @description * The Dock Panel component provides a powerful layout system where child elements can be docked to specific * edges (top, bottom, left, right) of the container, with one element optionally filling the remaining space. * This creates flexible, adaptive layouts perfect for application shells, dashboards, and structured interfaces. * The component handles automatic space distribution, supports gap spacing between docked elements, respects * orientation and reversal settings, and provides responsive behavior. Child elements use dock attributes * to specify their positioning preference, while the panel manages the overall layout flow and space allocation. * Essential for creating professional application layouts with headers, sidebars, content areas, and footers. * * @name Dock Panel * @element mosaik-dock-panel * @category Layouts * * @slot - The default slot for child elements with dock positioning attributes. * * @csspart surface - The main container surface for docked elements. * * @cssprop {String} --dock-panel-font-family - The panel font family CSS custom property. * @cssprop {String} --dock-panel-font-letter-spacing - The panel font letter spacing CSS custom property. * @cssprop {String} --dock-panel-font-line-height - The panel font line height CSS custom property. * @cssprop {String} --dock-panel-font-size - The panel font size CSS custom property. * @cssprop {String} --dock-panel-font-text-decoration - The panel font text decoration CSS custom property. * @cssprop {String} --dock-panel-font-text-transform - The panel font text transform CSS custom property. * @cssprop {String} --dock-panel-font-weight - The panel font weight CSS custom property. * @cssprop {String} --dock-panel-gap - The panel gap CSS custom property. * @cssprop {String} --dock-panel-padding-bottom - The panel padding bottom CSS custom property. * @cssprop {String} --dock-panel-padding-left - The panel padding left CSS custom property. * @cssprop {String} --dock-panel-padding-right - The panel padding right CSS custom property. * @cssprop {String} --dock-panel-padding-top - The panel padding top CSS custom property. * @cssprop {String} --dock-panel-shadow - The panel shadow CSS custom property. * @cssprop {String} --dock-panel-shadow-blur - The panel shadow blur CSS custom property. * @cssprop {String} --dock-panel-shadow-color - The panel shadow color CSS custom property. * @cssprop {String} --dock-panel-shadow-offset-x - The panel shadow offset x CSS custom property. * @cssprop {String} --dock-panel-shadow-offset-y - The panel shadow offset y CSS custom property. * @cssprop {String} --dock-panel-shadow-spread - The panel shadow spread CSS custom property. * @cssprop {String} --dock-panel-transition-duration - The panel transition duration CSS custom property. * @cssprop {String} --dock-panel-transition-mode - The panel transition mode CSS custom property. * @cssprop {String} --dock-panel-transition-property - The panel transition property CSS custom property. * @cssprop {String} --dock-panel-translate - The panel translate CSS custom property. * * @example * ```html * *
Application Header
* *
Application Footer
*
Main Content Area
*
* ``` * * @example * ```html * *
Start Panel
*
End Panel
*
Center Content
*
* ``` * * @public */ export declare class DockPanelElement extends DockPanelElement_base implements IDockPanelElementProps { private readonly _inlineStyleController; private readonly _childResize; private _lastChildFill; private _hostResize?; private _pending; /** * Constructs a new instance of the `DockPanelElement` class. * * @public */ constructor(); /** * Returns the `is` property. * * @public * @static * @override * @readonly */ static get is(): string; /** * The `lastChildFill` property determines whether the last child element should fill the remaining space. * * @public * @attr */ get lastChildFill(): boolean; set lastChildFill(value: boolean); /** * @public * @override */ get gap(): IGapableProps['gap']; set gap(value: IGapableProps['gap']); static getDock(el: HTMLElement): DockSide; static setDock(el: Element, dock: DockSide): void; /** * @public * @override */ disconnectedCallback(): void; /** * @protected * @override */ protected onApplyTemplate(): void; /** * @protected * @override */ protected onItemsChanged(): void; /** * @private */ private reobserveChildren; /** * @private */ private cleanupObservers; /** * @private */ private scheduleLayout; /** * @private */ private layoutNow; /** * @private */ private resolveCssLengthToPx; /** * @private */ private isVisible; /** * @private */ private prepForMeasure; /** * @private */ private place; } /** * @public */ export declare namespace DockPanelElement { type Props = IDockPanelElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-dock-panel': DockPanelElement; } } export {}; //# sourceMappingURL=DockPanelElement.d.ts.map