# Components

Every public export has a page with parameters and defaults, supported methods and overrides, usage and accessibility. Import from `@dg/ui`; the source categories are organizational, not package entry points.

## Structure

- [`Analytics`](analytics.md) — measures page views and declared events, on by default, and provides the privacy dialog where visitors turn statistics off.
- [`Footer`](footer.md) — places an identity and notice at the end of the page, wrapping and stacking on small screens, with the privacy control when statistics are configured.
- [`Grid`](grid.md) — arranges direct children in equal-width columns and equal-height rows, with optional internal dividers and height growth.
- [`Header`](header.md) — combines the application identity, an optional app name and responsive navigation with a shared theme switch.
- [`Heading`](heading.md) — composes a framed editorial title, an optional section number and optional metadata with extra space above the title.
- [`Main`](main.md) — groups route sections in a growing column and coordinates adjoining frame rules and crosses.
- [`Page`](page.md) — centers the application frame, supplies responsive margins and fills at least the viewport height.
- [`Section`](section.md) — owns a framed content block, its corner crosses, outer padding and spacing between direct children.
- [`SectionHead`](section-head.md) — supplies a compact numbered heading with optional metadata and a trailing action.

## Navigation and actions

- [`Button`](button.md) — triggers an action or opens a destination, with shared variants, keyboard behavior and disabled states.
- [`Dialog`](dialog.md) — opens a native modal panel, drawer, full-screen sheet or media view with a titled bar, a close button and a blurred backdrop.
- [`IconButton`](icon-button.md) — places a decorative thin-stroke icon inside an accessible button target.
- [`SkipLink`](skip-link.md) — provides a keyboard shortcut to the main content before the application navigation.
- [`Tabs`](tabs.md) — shows one panel at a time within the page, selected from a keyboard-accessible row of tabs.
- [`ThemeToggle`](theme-toggle.md) — switches the shared document between light and dark themes and synchronizes the saved preference.

## Content

- [`Card`](card.md) — presents a title and content as an article or a whole-card link, with optional media, metadata and footer snippets.
- [`Cards`](cards.md) — arranges `Card` children in a numbered horizontal collection with scrolling controls when the track overflows.
- [`ErrorPage`](error-page.md) — displays a framed status, explanation and recovery link using built-in English or French copy.
- [`Quote`](quote.md) — presents escaped quotation text as paragraphs with an optional attribution.

## Conversation

- [`ChatComposer`](chat-composer.md) — provides a labeled, growing textarea and sends trimmed nonempty text through a callback.
- [`ChatMessage`](chat-message.md) — presents a speaker label, message body and optional source as a user or assistant message.
- [`ChatPanel`](chat-panel.md) — supplies the growing flex-column body shared by inline and floating conversations.
- [`ChatSuggestions`](chat-suggestions.md) — presents suggested prompts as native buttons and sends the selected string to the parent.
- [`ChatThread`](chat-thread.md) — provides a focusable scrolling region containing a polite live message log and optional notice.
- [`ChatWindow`](chat-window.md) — owns a launcher and a conversation dialog that can switch between floating and modal fullscreen layouts.
