# Athanor v0.1.0-beta.1 - Table of Contents

> Host-agnostic page builder library for Phoenix LiveView apps. Turn-key drag-edit editor mounted via a use macro; components are plain Elixir modules.

## Pages

- [Athanor](readme.md)
- [Changelog](changelog.md)
- [Contributing](contributing.md)
- [Code of Conduct](code_of_conduct.md)
- [License](license.md)

## Modules

- Core
  - [Athanor.Component](Athanor.Component.md): Behaviour every Athanor-aware component implements.
  - [Athanor.Ctx](Athanor.Ctx.md): Context struct carried through every `Athanor.Renderer` dispatch.
  - [Athanor.Registry](Athanor.Registry.md): Open registry mapping a node's `type` string to its component module.
  - [Athanor.Renderer](Athanor.Renderer.md): Unified render dispatch over an `Athanor.Tree`.
  - [Athanor.Tree](Athanor.Tree.md): Pure-data tree operations over the page builder JSON shape.

- Editor
  - [Athanor.Editor](Athanor.Editor.md): Editor surface for Athanor — turn-key LiveView + composable primitives
for building consumer page-builders.
  - [Athanor.Editor.Live](Athanor.Editor.Live.md): Turn-key LiveView for Athanor editor consumers.
  - [Athanor.Editor.State](Athanor.Editor.State.md): Internal state struct owned by `Athanor.Editor.Live`.

- Fields
  - [Athanor.AutoEditorForm](Athanor.AutoEditorForm.md): Auto-generated editor form for components that declare `fields/0`.
  - [Athanor.Components.EditorFormShell](Athanor.Components.EditorFormShell.md): Tabs wrapper used by every Athanor primitive's editor form LC. Renders
a two-tab UI: "Component" (the component-specific form, supplied via the
`:component` slot) and "Formatting" (the shared formatting controls).
  - [Athanor.Components.Formatting](Athanor.Components.Formatting.md): Shared formatting surface for Athanor primitives.
  - [Athanor.Components.Formatting.EditorForm](Athanor.Components.Formatting.EditorForm.md): Shared formatting tab UI fragment. Stateless function component.
  - [Athanor.Field](Athanor.Field.md): Behaviour for consumer-supplied `:custom` field modules.
  - [Athanor.Fields](Athanor.Fields.md): Auto-renders a component's editable inputs from its `fields/0` schema.

- Built-in Components
  - [Athanor.Components.Button](Athanor.Components.Button.md): Button primitive. Renders an HTML anchor styled as a DaisyUI button,
wrapped in the shared formatting div.
  - [Athanor.Components.Columns](Athanor.Components.Columns.md): Multi-column layout container — library-native Athanor component.
  - [Athanor.Components.Divider](Athanor.Components.Divider.md): Divider primitive. Renders an `<hr>` wrapped in the shared formatting
div. Divider's own `thickness`/`color`/`margin_y` props control the
rule itself; `formatting` controls the wrapping container.
  - [Athanor.Components.Heading](Athanor.Components.Heading.md): Heading primitive. Renders a semantic `<h1>`–`<h6>` wrapped in the
shared formatting div so the host's Tailwind config doesn't override
spacing/colors.
  - [Athanor.Components.Text](Athanor.Components.Text.md): Text primitive. Renders raw HTML stored in `node["props"]["text"]`
wrapped by `Athanor.Components.Formatting.apply/1` so the standard
formatting props (padding, margin, colors, alignment, border) apply.

