Skip to content
API reference

bento

Import
import * as api from "@fungi.computer/maosaico/bento";
Kind Export Description
type alias BentoColumns Host-selected responsive grid; Maosaico does not select breakpoints.
type alias BentoPlacement A caller-owned tile in integer grid cells. IDs are unique within a grid.
type alias BentoOp Intent proposed by the interaction binding and accepted by the host.
type alias BentoGeometry Container-relative pixel geometry supplied by the measured host.
function resolveBento() Normalize cells and push collisions downward, preserving caller identity/order.
function arrangeBento() Reflow spans and compact vertical gaps while retaining stable tile identity/order.
function applyBentoOps() Apply intents in order, reorder downward past occupants, then compact every tile.
function bentoRowOffset() Pixel origin of an integer row, shared by frames and pointer snapping.
function bentoRowAt() Nearest row boundary for a pointer; remaining rows use the uniform stride.
function bentoFrames() Map cells to frames; content and scrolling remain with the host.

BentoColumnstype alias

Section titled “BentoColumns”
Signature
type BentoColumns = 1 | 2 | 4;

Host-selected responsive grid; Maosaico does not select breakpoints.


BentoPlacementtype alias

Section titled “BentoPlacement”
Signature
type BentoPlacement = Readonly<{
id: string;
col: number;
row: number;
w: number;
h: number;
}>;

A caller-owned tile in integer grid cells. IDs are unique within a grid.


Signature
type BentoOp =
| Readonly<{
kind: "move";
id: string;
col: number;
row: number;
}>
| Readonly<{
kind: "resize";
id: string;
w: number;
h: number;
}>;

Intent proposed by the interaction binding and accepted by the host.


BentoGeometrytype alias

Section titled “BentoGeometry”
Signature
type BentoGeometry = Readonly<{
columns: BentoColumns;
width: number;
rowHeight: number;
rowHeights?: readonly number[];
gap: number;
}>;

Container-relative pixel geometry supplied by the measured host.

resolveBento()function

Section titled “resolveBento()”
Signature
function resolveBento(
placements,
columns,
priority?,
): readonly Readonly<{
id: string;
col: number;
row: number;
w: number;
h: number;
}>[];

Normalize cells and push collisions downward, preserving caller identity/order.

Parameter Type
placements readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]
columns BentoColumns
priority? string

readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]


arrangeBento()function

Section titled “arrangeBento()”
Signature
function arrangeBento(
placements,
columns,
): readonly Readonly<{
id: string;
col: number;
row: number;
w: number;
h: number;
}>[];

Reflow spans and compact vertical gaps while retaining stable tile identity/order.

Parameter Type
placements readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]
columns BentoColumns

readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]


applyBentoOps()function

Section titled “applyBentoOps()”
Signature
function applyBentoOps(
placements,
ops,
columns,
): readonly Readonly<{
id: string;
col: number;
row: number;
w: number;
h: number;
}>[];

Apply intents in order, reorder downward past occupants, then compact every tile.

Parameter Type
placements readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]
ops readonly BentoOp[]
columns BentoColumns

readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]


bentoRowOffset()function

Section titled “bentoRowOffset()”
Signature
function bentoRowOffset(row, geometry): number;

Pixel origin of an integer row, shared by frames and pointer snapping.

Parameter Type
row number
geometry BentoGeometry

number


bentoRowAt()function

Section titled “bentoRowAt()”
Signature
function bentoRowAt(y, geometry): number;

Nearest row boundary for a pointer; remaining rows use the uniform stride.

Parameter Type
y number
geometry BentoGeometry

number


bentoFrames()function

Section titled “bentoFrames()”
Signature
function bentoFrames(placements, geometry): ReadonlyMap<string, Frame>;

Map cells to frames; content and scrolling remain with the host.

Parameter Type
placements readonly Readonly<{ id: string; col: number; row: number; w: number; h: number; }>[]
geometry BentoGeometry

ReadonlyMap<string, Frame>