/** * Fluent Grow Layout - Aggregator * -------------------------------- * Provides a high-level API that composes spacing, sizing, positioning and * overflow utilities for expressive layout declarations. */ import { Positioning, type OffsetConfig, type PositionMode, type PositioningConfig, type PositioningResponsiveMap } from './positioning'; import { Spacing, type SpacingConfig, type SpacingResponsiveMap, type SpacingScale, type SpacingValue } from './spacing'; import { Sizing, type ClampConfig, type SizingConfig, type SizingResponsiveMap, type SizingScale, type SizingValue } from './sizing'; import { Overflow, type OverflowConfig, type OverflowResponsiveMap } from './overflow'; import type { ResponsiveOptions } from './shared'; export interface LayoutOptions { spacingScale?: SpacingScale; sizingScale?: SizingScale; positioningDefaults?: PositioningConfig; } export declare class Layout { private element; private readonly _positioning; private readonly _spacing; private readonly _sizing; private readonly _overflow; private cleanupFns; constructor(element: HTMLElement, options?: LayoutOptions); spacing(...values: SpacingValue[]): this; margin(...values: SpacingValue[]): this; marginX(value: SpacingValue): this; marginY(value: SpacingValue): this; padding(...values: SpacingValue[]): this; paddingX(value: SpacingValue): this; paddingY(value: SpacingValue): this; gap(value: SpacingValue): this; inset(...values: SpacingValue[]): this; size(width?: SizingValue, height?: SizingValue): this; minSize(width?: SizingValue, height?: SizingValue): this; maxSize(width?: SizingValue, height?: SizingValue): this; aspectRatio(value: string | number): this; fluid(property: ClampConfig['property'], min: SizingValue, ideal: SizingValue, max: SizingValue): this; position(mode: PositionMode, offsets?: OffsetConfig): this; absolute(offsets?: OffsetConfig): this; relative(offsets?: OffsetConfig): this; fixed(offsets?: OffsetConfig): this; sticky(offsets?: OffsetConfig): this; zIndex(value: number): this; anchor(options: { name: string; offset?: SizingValue; reference?: PositioningConfig['anchorReference']; }): this; center(axis?: 'both' | 'x' | 'y', strategy?: 'transform' | 'margin'): this; overflowHidden(axis?: 'x' | 'y' | 'both'): this; overflowAuto(axis?: 'x' | 'y' | 'both'): this; overflowScroll(axis?: 'x' | 'y' | 'both'): this; scrollSnap(type: string, align?: string, stop?: CSSStyleDeclaration['scrollSnapStop']): this; overscroll(value: CSSStyleDeclaration['overscrollBehavior'], axis?: 'x' | 'y' | 'both'): this; responsiveSpacing(map: SpacingResponsiveMap, options?: ResponsiveOptions): this; responsiveSizing(map: SizingResponsiveMap, options?: ResponsiveOptions): this; responsivePositioning(map: PositioningResponsiveMap, options?: ResponsiveOptions): this; responsiveOverflow(map: OverflowResponsiveMap, options?: ResponsiveOptions): this; customStyles(styles: Record): this; onDestroy(fn: () => void): this; get positioningModule(): Positioning; get spacingModule(): Spacing; get sizingModule(): Sizing; get overflowModule(): Overflow; destroy(): void; } export declare class LayoutPresets { static fullScreen(element: HTMLElement): Layout; static container(element: HTMLElement, options?: { name?: string; }): Layout; static centerContent(element: HTMLElement): Layout; static stickyHeader(element: HTMLElement, top?: SpacingValue): Layout; static card(element: HTMLElement): Layout; static responsiveStack(element: HTMLElement): Layout; } //# sourceMappingURL=layout.d.ts.map