faststep 0.1.0

UIKit-inspired embedded UI framework built on embedded-graphics
Documentation
# Widget Catalog

## Goal

This document maps the public `faststep` surface by responsibility instead of by source file.

## Foundation

- `UiSystem`: owns the display, root view, theme, i18n, and registration state
- `UiView`: root/custom view contract
- `ViewRegistration`: view metadata and child registration during `configure(...)`
- `ViewEvent`, `ViewRedraw`: explicit redraw and message output from views
- `Localized`, `I18n`: localization helpers
- `FsTheme`: semantic palette and shared widget metrics

## Runtime and OEM

- `DisplayPort`: display backend abstraction
- `UiCanvas`: draw target plus dimming support for overlays
- `UiRuntimeDriver`: timing, sleep, and touch polling abstraction
- `UiRuntimePresenter`: redraw batching and presentation policy abstraction
- `run_ui_system(...)`: framework-owned event loop

## Leaf Widgets

- `Button`: tappable control with built-in highlight state
- `ImageView`: image host with alignment, insets, border, and background support
- `TextView`: single-style text block
- `RichTextView`: multiline styled text block composed from `TextSpan`s

## Scrolling and Data

- `ScrollView`: inertial scrolling, overscroll recovery, and transient scroll indicator
- `ScrollViewState`: lower-level state object shared by scroll-based widgets
- `ListView`: scrollable list built on `ScrollView`
- `ListDataSource`: item count, identity, and height provider
- `ListDelegate`: row rendering plus highlight/select callbacks
- `ListRow`, `ListRowState`, `ListSelection`: row metadata passed through delegate callbacks

## Containers

- `SplitView`: two-pane proportional layout helper
- `StackView`: stack navigation container using a title callback
- `TabView`: higher-level tab container
- `TabBar`: low-level tab rendering and hit-testing
- `NavView`: stack header/body geometry and chrome rendering
- `StackNav`: lower-level stack state machine

## Alerts and Modals

- `AlertSpec`: alert content and actions
- `AlertView`: direct alert drawing widget
- `AlertHost`: framework-owned alert presentation host
- `ModalHost`: generic modal transition state machine
- `ModalLayer`: translated modal geometry for a presentation frame

## Compatibility

- `UiApp`: older compatibility app wrapper
- `ViewDelegate`, `ViewResponse`, `AppRedraw`: compatibility delegate surface for existing code

Use the compatibility layer only when maintaining older demos. New work should start from `UiSystem` and `UiView`.