# ash_ui v0.1.0 - API Reference

## Modules

- [AshUi](AshUi.md): Static AshUi extension and runtime surface.
- [AshUi.ActionEffect](AshUi.ActionEffect.md): A one-shot browser affordance emitted by a successful Ash action.
- [AshUi.ActionEffects](AshUi.ActionEffects.md): Declarative, one-shot DOM effects for Ash actions.
- [AshUi.Comprehension](AshUi.Comprehension.md): A keyed collection in the render algebra — structurally identical to
`Phoenix.LiveView.Comprehension`. AshUi always emits keyed entries
(`has_key?: true`) and never emits streams: collections are keyed
comprehensions over resource state by model, permanently — `stream` and
LiveComponents are excluded from this algebra by design, not omission.
- [AshUi.Diff](AshUi.Diff.md): The differential kernel over `AshUi.Rendered`: produces
LiveView-wire-compatible diff maps and retained fingerprint state.
- [AshUi.Expr](AshUi.Expr.md): Expression entry point for AshUi constructor expressions.

- [AshUi.ExprCompiler](AshUi.ExprCompiler.md): Shared compiler from source expression syntax to Ash-native expressions.

- [AshUi.Expressions](AshUi.Expressions.md): Canonical custom expressions that consuming applications register with Ash.
- [AshUi.Markdown](AshUi.Markdown.md): Markdown source -> sanitized `AshUi.SafeHTML`.
- [AshUi.Notification.DerivedReads](AshUi.Notification.DerivedReads.md): Subscription edges for what a rendered record DERIVES: "whatever a page
reads, it subscribes to".
- [AshUi.Notifier](AshUi.Notifier.md): Ash notifier that forwards resource notifications into AshUi's
notification-native read match index.

- [AshUi.Patch.Bindings](AshUi.Patch.Bindings.md): Registration-free event binding resolution over the compiled patch table.
- [AshUi.Patch.Compiler](AshUi.Patch.Compiler.md): Compiles an AshUi resource's `:view` calculation into a
`AshUi.Patch.Table`: slots with stable addresses + a
field→slots propagation index + keyed list anchors + child tables for
nested `render(Resource, input)`.
- [AshUi.Patch.Dispatch](AshUi.Patch.Dispatch.md): ONE dispatch semantics, backing-blind (DESIGN.md §5): run the target
instance's OWN action — arguments, validations, changes, never bypassed
— and persist through the instance's data layer. The storage seam is the
only place backing appears
- [AshUi.Patch.Keys](AshUi.Patch.Keys.md): THE entry-key function for keyed collections — one identity rule shared
by the live renderer and the binding resolver, implementing Ash resource
identity correctly
- [AshUi.Patch.Runtime](AshUi.Patch.Runtime.md): Change derivation over a compiled `AshUi.Patch.Table`.
- [AshUi.Patch.Skeleton](AshUi.Patch.Skeleton.md): Target-specific static skeleton compiled from a resource's lowered view:
interleaved static markup + ordered dynamic refs, the exact
statics/dynamics contract the host bridge's `Rendered` structs consume.
- [AshUi.Patch.Table](AshUi.Patch.Table.md): Compiled patch table for one resource view: every dynamic position in the
lowered view becomes a slot with a stable address, an evaluator, and the
dependency field paths that invalidate it; the propagation index inverts
dependencies to slot ids. Nested `render(Resource, input)` compiles the
child resource's own table under an address prefix.
- [AshUi.Reload](AshUi.Reload.md): The O(1) dispatch reload contract — the ONE canonical policy for what a
bridge reloads after a dispatch. Every transport bridge calls
`after_dispatch/4`; none owns a private copy of the policy, so a new
target cannot drift from it.
- [AshUi.Render](AshUi.Render.md): Builds `%AshUi.Rendered{}` structures straight from a compiled
patch table — statics from the table's skeleton, dynamics from evaluator
closures over the CURRENT record. The neutral differential contract uses
nil-based change tracking: a dynamic whose address is not in the
changed set (`AshUi.Patch.Runtime.changed_addresses/3`) returns
`nil`, and the `AshUi.Diff` kernel decides the minimal keyed patch.
This is the ONE runtime emission path —
transports convert or diff its output, never re-emit.
- [AshUi.RenderTarget](AshUi.RenderTarget.md): Adapter seam for lowering AshUi's neutral render protocol to a host target.

- [AshUi.RenderTarget.Html](AshUi.RenderTarget.Html.md): Host-neutral HTML target lowering for `AshUi.RenderTree`.
- [AshUi.RenderTarget.Static](AshUi.RenderTarget.Static.md): The default render target, preserving AshUi's neutral DOM vocabulary.
- [AshUi.RenderTree](AshUi.RenderTree.md): Adapter-neutral rendered output produced from a semantic view tree.
- [AshUi.RenderTree.Element](AshUi.RenderTree.Element.md)
- [AshUi.RenderTree.Fragment](AshUi.RenderTree.Fragment.md)
- [AshUi.RenderTree.Path](AshUi.RenderTree.Path.md): Render-tree node addressing: keyed nodes use `{:key, key}` segments,
unkeyed nodes match positionally with `{:index, index}` segments. These
paths are the stable addresses the patch ops target and the id scheme the
HTML renderer and binding collector already emit.

- [AshUi.RenderTree.Portal](AshUi.RenderTree.Portal.md)
- [AshUi.RenderTree.Text](AshUi.RenderTree.Text.md)
- [AshUi.Rendered](AshUi.Rendered.md): The render algebra's node: statics interleaved with a dynamic function,
identified by a fingerprint. Structurally identical to
`Phoenix.LiveView.Rendered` (phoenix_live_view 1.1.x) so transport
adapters can convert by struct rename alone; the shape is a frozen
contract verified against LiveView as an executable oracle.
- [AshUi.Rendered.Materialize](AshUi.Rendered.Materialize.md): Materializes a rendered structure to iodata — the SAME statics and
dynamics the differential engine diffs, zipped without change tracking.
Transports use this for full-document bodies so materialization and
diffing can never disagree.

- [AshUi.ResourceBlueprint](AshUi.ResourceBlueprint.md): Normalized resource contract consumed by the runtime and adapters.
- [AshUi.Theme.VSCode](AshUi.Theme.VSCode.md): Build-side stylesheet GENERATOR for VS Code color-theme JSON (DESIGN.md §9).
- [AshUi.Type.RenderTree](AshUi.Type.RenderTree.md): Ash type for authored AshUi render-tree values.
- [AshUi.Verifiers.StylesheetCoverage](AshUi.Verifiers.StylesheetCoverage.md): Compile-time `[part=]` coverage over a document root's render closure
(DESIGN.md §9).
- [AshUi.Verifiers.StylesheetResolution](AshUi.Verifiers.StylesheetResolution.md): Compile-time stylesheet resolution discipline (DESIGN.md §9).

