AshReports.Layout.Stack (ash_reports v0.1.0)

A stack layout container that maps to Typst's stack() function.

Stacks arrange elements in a single direction with configurable spacing. Useful for simple linear layouts.

Direction Options

  • :ttb - Top to bottom (default, equivalent to :vertical)
  • :btt - Bottom to top
  • :ltr - Left to right (equivalent to :horizontal)
  • :rtl - Right to left

Example

stack :address_info do
  dir :ttb
  spacing "3pt"

  label :street do
    text "[street_address]"
  end

  label :city_state do
    text "[city], [state] [zip]"
  end

  label :country do
    text "[country]"
  end
end

Summary

Types

direction()

@type direction() :: :ttb | :btt | :ltr | :rtl

t()

@type t() :: %AshReports.Layout.Stack{
  dir: direction(),
  elements: [map()],
  name: atom(),
  spacing: String.t() | nil
}