# macaw_component v0.1.3 - API Reference

## Modules

- [Macaw.Component](Macaw.Component.md): The component contract (spec/01): the behavior every Macaw component implements, and
the dispatch functions a host reaches a component through.
- [Macaw.Component.Announcement](Macaw.Component.Announcement.md): An announcement request (spec/01 §1.6): `%{name, text, politeness}`, for a name the
component declares in `announces`. Components never render a live region; the announcer
is the host's.
- [Macaw.Component.Assigns](Macaw.Component.Assigns.md): The assigns a component renders with (spec/02 §1): `context`, `settings`,
`declarations`, `drawn`, `deliveries` and `value`, and nothing else. Nothing else reaches
a component: not the viewer, not another component, not the page.

- [Macaw.Component.Client](Macaw.Component.Client.md): The fixed names of the client protocols every adopter shares (spec/02 §8): the
announcer's two regions, the announce event, and the client bus. Each is found, not
created per component, so components share one announcer and one bus on any page.

- [Macaw.Component.Conformance](Macaw.Component.Conformance.md): The component conformance kit (spec/04): the contract and the rendering rules as
checks, so a component author proves conformance by running it.
- [Macaw.Component.Context](Macaw.Component.Context.md): The context a component renders in (spec/02 §2): its mode, instance, size, root font
size, heading level, theme, the viewer's preferences, and the holder's now.
- [Macaw.Component.Declarations](Macaw.Component.Declarations.md): A component's configured declarations (spec/01 §1.2), built by `new/2` from its
`declarations/1` answer, every key checked, every fault at once.
- [Macaw.Component.Drawn](Macaw.Component.Drawn.md): Drawn states (spec/02 §6): every component is always in exactly one, in this precedence,
each but `live` with a theme role, a glyph and words, and never blank.
- [Macaw.Component.Mode](Macaw.Component.Mode.md): The rendering modes and what each allows (spec/02 §3).
- [Macaw.Component.Package](Macaw.Component.Package.md): The package side of the registry (spec/03): what a package provides, read the same way
by every host. A package is a module with `__members__/0`; its components are the
members that use `Macaw.Component`, each registering through its static declarations.
- [Macaw.Component.Proxy](Macaw.Component.Proxy.md): Proxy routes (spec/01 §1.8): media a component needs from another origin, fetched by the
host's one same-origin proxy, so a page holds same-origin URLs only.
- [Macaw.Component.Slot](Macaw.Component.Slot.md): A slot: a typed input, `%{requires: %{role => requirement}, doc: "…"}` (spec/01 §1.3).
- [Macaw.Component.State](Macaw.Component.State.md): The state vocabulary a component and every host agree on (spec/01 §1.5): the standard
state sources a component may write, and the value and domain types.
- [Macaw.Component.Stylesheet](Macaw.Component.Stylesheet.md): Generated stylesheets (spec/01 §1.8): CSS a document defines at runtime, served from
`'self'` at a path addressed by its content, so the same document always yields the same
file and base renders capture it.

