AshUi.RenderTree (ash_ui v0.1.0)

Copy Markdown View Source

Adapter-neutral rendered output produced from a semantic view tree.

Structure and paint are strictly split (DESIGN.md §9): this lowering emits only bare part attributes and ARIA-first state attributes. It applies no theme — there are no part→class rules, no theme assets, no is-<state> classes. Served DOM carries no class attributes.

Summary

Types

Functions

element(tag, attrs \\ %{}, children \\ [], opts \\ [])

@spec element(atom() | nil, map(), [t()], keyword()) :: AshUi.RenderTree.Element.t()

fragment(children \\ [], opts \\ [])

@spec fragment([t()], keyword()) :: AshUi.RenderTree.Fragment.t()

portal(target, children \\ [], opts \\ [])

@spec portal(term(), [t()], keyword()) :: AshUi.RenderTree.Portal.t()

render(tree, opts \\ [])

@spec render(map() | nil, keyword()) :: {:ok, t()} | {:error, term()}

text(content, opts \\ [])

@spec text(term(), keyword()) :: AshUi.RenderTree.Text.t()