# ash_ui v0.1.0 - Table of Contents > User interfaces built from Ash resources: a screen is a resource with a row per session. ## Pages - [AshUi](readme.md) - [AshUi Design](design.md) - [Changelog](changelog.md) - [LICENSE](license.md) - [NOTICE](notice.md) ## 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).