import { CustomElement } from '../../Abstracts/CustomElement'; import type { IGridItemElementProps } from './IGridItemElementProps'; declare const GridItemElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Grid Item - An element within a grid layout, organized in rows and columns. * * @description * The Grid Item component is placed inside a `GridElement` * and defines its position and span within the grid via the `column`, `row`, `column-span`, and `row-span` attributes. * * Positions are 1-based. A value of `0` means auto-placement. * Positions and spans that exceed the parent grid's explicit track * definitions are clamped to `auto` to prevent implicit track creation. * * @name Grid Item * @element mosaik-grid-item * @category Layout * * @slot - The default slot. * * @example * Item spanning two columns in a content layout: * ```html * * Wide Content * Aside * Full-Width Footer * * ``` * * @public */ export declare class GridItemElement extends GridItemElement_base implements IGridItemElementProps { private _column; private _columnSpan; private _row; private _rowSpan; /** * Constructs a new instance of the `GridItemElement` class. * * @public */ constructor(); /** * Returns the `is` property. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `column` property. * * @public * @attr column */ get column(): number; set column(value: number); /** * Gets or sets the `columnSpan` property. * * @public * @attr column-span */ get columnSpan(): number; set columnSpan(value: number); /** * Gets or sets the `row` property. * * @public * @attr row */ get row(): number; set row(value: number); /** * Gets or sets the `rowSpan` property. * * @public * @attr row-span */ get rowSpan(): number; set rowSpan(value: number); /** * @public * @override */ connectedCallback(): void; /** * Re-evaluates and applies the CSS `grid-area` placement of this item. * * Called by the parent `GridElement` when `columnDefinitions` or * `rowDefinitions` change so that out-of-bounds positions are clamped * to `auto`, preventing CSS Grid from creating implicit tracks. * * @public */ invalidatePosition(): void; /** * @protected */ protected onRowPropertyChanged(): void; /** * @protected */ protected onColumnPropertyChanged(): void; /** * @protected */ protected onRowSpanPropertyChanged(): void; /** * @protected */ protected onColumnSpanPropertyChanged(): void; /** * Computes and applies the CSS `grid-area` style based on the configured * row/column positions and spans, clamped against the parent grid's * explicit track definitions. * * @private */ private setItemStyle; /** * Resolves a 1-based track position against the available track count. * Returns `'auto'` when the position is unset (`0`) or exceeds the * explicit grid tracks defined by the parent. * * @param position - The 1-based track position (`0` = unset). * @param maxTracks - Number of explicitly defined tracks (`0` = unconstrained). * @returns The position value or `'auto'`. * * @private */ private resolvePosition; /** * Resolves a track span against the available grid space. * When the resolved position is `'auto'` (out of bounds or unset), the span is * clamped to `maxTracks` to prevent implicit track creation. * When the position is in bounds, the span is clamped so the item does not * extend beyond the explicit grid. * * @param span - Requested span count (`0` = no span). * @param resolvedPosition - Already-resolved position (`number` or `'auto'`). * @param maxTracks - Number of explicitly defined tracks (`0` = unconstrained). * @returns A CSS span value string (e.g. `'span 2'`) or `'auto'`. * * @private */ private resolveSpan; /** * Reads the number of explicitly defined tracks from the parent grid element. * Uses duck-typing (`property in parent`) so that `GridItemElement` does not * import `GridElement`, avoiding any risk of circular module dependencies. * * @param property - The parent property name (`'columnDefinitions'` or `'rowDefinitions'`). * @returns The number of explicit track definitions, or `0` when unconstrained. * * @private */ private getParentTrackCount; } /** * @public */ export declare namespace GridItemElement { type Props = IGridItemElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-grid-item': GridItemElement; } } export {}; //# sourceMappingURL=GridItemElement.d.ts.map