import type { ModelImportDeclaration } from "../models"; import type { LayoutSlotInfo } from "./LayoutSlotInfo"; /** * Extra information for a LayoutNode. */ export interface LayoutNodeInfo { /** * Whether the layout node can be resized. */ canResize: boolean; /** * Whether the layout node can resize its children. */ canResizeChildren: boolean; /** * The model(s) this component imports. */ imports?: Imports[]; /** * The slot info of the node's parent. */ parentSlotInfo: LayoutSlotInfo | undefined; /** * Whether the component supports aligning its content. */ supportsAlignment: boolean; /** * Whether the component supports setting availability. Mobile Designer * only. */ supportsAvailable: boolean; /** * Whether the component supports adding margin to its content. Defaults to * 'true'. */ supportsMargin: boolean; /** * Whether the component supports adding padding to its content. Defaults to * 'true'. */ supportsPadding: boolean; /** * Whether the component supports the specifying the gap of its children. * Web Designer only. */ supportsGap?: boolean; /** * The title of the layout node. */ title: string; } /** * Imports for a model. */ export interface Imports extends ModelImportDeclaration { /** * Nodes that have models that can be imported. For example, if a component * imports a map model, these would be all nodes that correspond to map * models. */ nodes: { title: string; id: string; }[]; }