AshReports.Layout.TableCell (ash_reports v0.1.0)

An individual cell within table layouts with spanning and positioning.

Table cells can span multiple columns/rows and override parent properties like alignment, fill, stroke, and padding. They contain only leaf elements (no nested containers).

Example

table_cell do
  colspan 2
  rowspan 1
  align :right
  fill "#e0e0e0"

  field source: :total, format: :currency
end

# Explicit positioning
table_cell x: 0, y: 1 do
  label text: "Positioned cell"
end

Summary

Types

alignment()

@type alignment() :: atom() | {atom(), atom()} | nil

t()

@type t() :: %AshReports.Layout.TableCell{
  align: alignment(),
  breakable: boolean(),
  colspan: pos_integer(),
  elements: [map()],
  fill: String.t() | nil,
  inset: String.t() | nil,
  name: atom() | nil,
  rowspan: pos_integer(),
  stroke: String.t() | nil,
  x: non_neg_integer() | nil,
  y: non_neg_integer() | nil
}