import { CSSProperties, ElementType, HTMLAttributes, ReactNode } from 'react'; import { BaseColor, BorderColor, ElementBorder, ElementElevation, ElementFont, ElementShape, WrapperProps } from '../../utils'; /** * Layout mode for {@link BoxBase}. * * @remarks * Determines how children are arranged: * - `'flex'` — flex container * - `'grid'` — grid container * - `'block'` — block or inline-block element * * @category Box */ export type BoxType = 'flex' | 'grid' | 'block'; /** * Direction value used by layout-related props. * * @category Box */ export type BoxDirection = 'row' | 'col'; /** * Props for {@link BoxBase}. * * @remarks * Provides full control over layout, spacing, shape, elevation, * borders and flex/grid behaviour. All props are optional. * * @category Box */ export interface BoxBaseProps extends Omit, 'color' | 'content'>, WrapperProps { /** Maps to `align-content` (grid/flex-wrap content alignment). */ alignContent?: CSSProperties['alignContent']; /** Maps to `align-items` (cross-axis alignment). */ alignItems?: CSSProperties['alignItems']; /** Custom HTML element/component. Default: `div`. */ as?: ElementType; /** Border width (0–5). */ border?: ElementBorder; /** Border color token. */ borderColor?: BorderColor; /** React children inside the box. */ children?: ReactNode; /** Surface background token. Default: `'surface'`. */ color?: BaseColor; /** Grid template columns (`3` → `repeat(3, 1fr)`). */ cols?: number | string; /** Layout direction (`row` or `col`) for flex. */ direction?: BoxDirection; /** Native disabled attribute. Applied when supported by the rendered element. */ disabled?: boolean; /** Semantic UUI element class (e.g. 'uui-section', 'uui-footer'). */ elementClass?: string; /** Elevation level (0–5). */ elevation?: ElementElevation; /** Auto-placement flow direction for grid layouts. */ flow?: BoxDirection; /** Font token controlling typography (size, weight, line-height). */ font?: ElementFont; /** Forces full height (100%). */ fullHeight?: boolean; /** Forces full width (100%). */ fullWidth?: boolean; /** Gap between children (flex/grid). */ gap?: number | string; /** Horizontal gap (`column-gap`). */ gapX?: number | string; /** Vertical gap (`row-gap`). */ gapY?: number | string; /** Enables flex-grow (fills remaining space). */ grow?: boolean; /** Height. */ height?: number | string; /** Renders as `inline-flex`, `inline-grid` or `inline-block`. */ inline?: boolean; /** Maps to `justify-content` (main-axis alignment). */ justifyContent?: CSSProperties['justifyContent']; /** Maximum height. */ maxHeight?: number | string; /** Maximum width. */ maxWidth?: number | string; /** Minimum height. */ minHeight?: number | string; /** Minimum width. */ minWidth?: number | string; /** Maps to `overflow`. */ overflow?: CSSProperties['overflow']; /** Maps to `overflow-x`. */ overflowX?: CSSProperties['overflowX']; /** Maps to `overflow-y`. */ overflowY?: CSSProperties['overflowY']; /** Padding (all sides). */ p?: number | string; /** Padding bottom. */ pb?: number | string; /** Padding left. */ pl?: number | string; /** Maps to `place-items` (grid shortcut for align+justify items). */ placeItems?: CSSProperties['placeItems']; /** Padding right. */ pr?: number | string; /** Padding top. */ pt?: number | string; /** Horizontal padding (`padding-left` + `padding-right`). */ px?: number | string; /** Vertical padding (`padding-top` + `padding-bottom`). */ py?: number | string; /** Grid template rows (`2` → `repeat(2, 1fr)`). */ rows?: number | string; /** Shape/border-radius token (round, rounded, smooth, square). */ shape?: ElementShape; /** Layout mode (`flex`, `grid`, `block`). Default: `flex`. */ type?: BoxType; /** Width. */ width?: number | string; /** Enables wrapping (`flex-wrap: wrap`). */ wrap?: boolean; } /** * `BoxBase` — core layout primitive powering semantic containers * (`Box`, `Flex`, `Grid`, `Section`, `Article`, `Aside`, `Header`, `Footer`, `Nav`, …). * * Provides low-level control over layout (flex, grid, block), * spacing, alignment, wrapping, elevation, borders, shape, and surface color. * This component does **not** impose visual design — higher-level * components add semantics, but rely on `BoxBase` for structure. * * Accepts both semantic styling props (color, shape, elevation) * and layout utilities (padding, gap, direction, wrap, justify, align). * * @function * @param props - Component properties. * * @example * ```tsx * * * * * ``` * * @category Box */ export declare const BoxBase: import('react').ForwardRefExoticComponent>;