import Block from "./Block"; import { ControlElement } from "../"; import Component from "../Component"; import { ComponentFactory, ValueOrAsync } from "../ComponentFactory"; /** Represents a row containing elements placed from left to right */ export declare class Row extends Block { /** Create a row block with given content, if any */ constructor(content?: ControlElement[]); /** Initialize a row factory with given values */ static with(values: Row.Initializer): ComponentFactory; /** Initialize a row factory with given control elements */ static withContent(content: ComponentFactory.SpecList): ComponentFactory; /** Initialize with given (observable) values; returns this */ initializeWith: (values: Row.Initializer) => this; /** Initialize with given (observable) content; returns this */ initializeWithContent(content: ComponentFactory.SpecList): this; /** Default element spacing (CSS value, initially .5rem) */ static DEFAULT_SPACING: string; /** Array of elements that go into this row (observed) */ content: (ControlElement | null)[]; /** Spacing between elements (CSS value, observed), defaults to DEFAULT_SPACING, i.e. 0.5rem */ spacing: string; /** Vertical spacing (margin) for this row (CSS value, observed), defaults to .spacing if undefined/blank; Note: vertical spacing is not shown on fixed height rows */ verticalSpacing: string | undefined; /** Returns an array of directly contained UI components (observable) */ getChildren(): Component[]; /** Observable value that is true if all controls are shrinkwrapped or % */ private _allShrink; private _wrapper; } export declare namespace Row { /** Initializer for .with({ ... }) */ interface Initializer extends Block.Initializer { /** Property initializer */ content: ComponentFactory.SpecList; /** Property initializer */ spacing?: ValueOrAsync; /** Property initializer */ verticalSpacing?: ValueOrAsync; } } /** A row element without inner element spacing */ export declare class CloseRow extends Row { spacing: string; verticalSpacing: string; } /** A row element that is automatically positioned as an overlay on top of other content in a container or on screen */ export declare abstract class OverlayRow extends Row { /** Create a row block with given content, if any */ constructor(content?: ControlElement[]); /** Move the overlay row to the left by adjusting its CSS positioning; specify a width value to constrain the row width, leave blank to shrinkwrap the entire row; returns this */ fixLeft(marginLeft: string, width?: string): this; /** Move the overlay row to the right by adjusting its CSS positioning; specify a width value to constrain the row width, leave blank to shrinkwrap the entire row; returns this */ fixRight(marginRight: string, width?: string): this; } /** A row element that is automatically positioned as an overlay at the top of the parent container or screen */ export declare class TopOverlayRow extends OverlayRow { /** Create a row block with given content, if any */ constructor(content?: ControlElement[]); /** Move the overlay row down by adjusting its CSS positioning; returns this */ moveDown(top: string): this; } /** A row element that is automatically positioned as an overlay at the bottom of the parent container or screen */ export declare class BottomOverlayRow extends OverlayRow { /** Create a row block with given content, if any */ constructor(content?: ControlElement[]); /** Move the overlay row up by adjusting its CSS positioning; returns this */ moveUp(bottom: string): this; } /** A row element with components aligned to the right */ export declare class OppositeRow extends Row { } /** A row element with components aligned in the center */ export declare class CenterRow extends Row { } export default Row;