/// import type { State } from "../state/state.js"; import { ChildTrait } from "../traits/child.js"; import { Entity } from "../traits/entity.js"; import { IdentityTrait } from "../traits/identity.js"; import { LabelTrait } from "../traits/label.js"; import { LocationTrait } from "../traits/location.js"; import { OwnershipTrait } from "../traits/ownership.js"; import { ParentTrait } from "../traits/parent.js"; import { SelectableChildrenTrait } from "../traits/selectableChildren.js"; /** * A container of items to be placed in linear fashion. * @category Entity */ export declare class Line extends Entity { /** * Sets maximum size of this container. * - 0cm (default): items just sit next to each other * - Any positive value: when approaching the size limit, * items will squeeze in to stay within limits * * Remember, items never "*wrap*" to "*the next line*". * @category Line */ length: number; /** * How should items align within the container. * In zero-length container only "start" and "end" values make sense. * @category Line */ align: LineAlign; /** * How should items align within the container. * In zero-length container only "start" and "end" values make sense. * @category Line */ lineDirection: LineDirection; /** * Margin or overlapping (negative values) between items * @category Line */ itemSpacing: number; create(state: State, options?: LineOptions): void; } type LineAlign = "start" | "end" | "justify"; type LineDirection = "row" | "column"; interface Mixin extends IdentityTrait, LocationTrait, ChildTrait, ParentTrait, LabelTrait, OwnershipTrait, SelectableChildrenTrait { } type LineOptions = Partial & { /** * Sets maximum size of this container. * - 0cm (default): items just sit next to each other * - Any positive value: when approaching the size limit, * items will squeeze in to stay within limits * * Remember, items never "*wrap*" to "*the next line*". */ length: number; /** * How should items align within the container. * In zero-length container only "start" and "end" values make sense. */ align: LineAlign; /** * How should items align within the container. * In zero-length container only "start" and "end" values make sense. */ lineDirection: LineDirection; /** * Margin or overlapping (negative values) between items */ itemSpacing: number; }>; export interface Line extends Mixin { } export {};