Shared widget behavior and application coordination for native tools, browser clients and C/SDL hosts. This is an experimental, unpublished prototype; its Rust API and C ABI are not stable releases.
The initial slice is bounded chat history, a Unicode composer, focus, submission, scrolling and a modal over a world viewport. Applications retain their event loop, renderer presentation, networking, storage and game/editor authority.
| Package | Responsibility |
|---|---|
tilewright-ui |
Headless widget state, exact text/composition, input ownership and acknowledged actions |
tilewright-app |
Lifecycle, cancellation and prepared/displayed frame coordination |
tilewright-ui-render |
Existing Tilewright renderer integration, typography and immutable resources |
tilewright-ui-ffi |
Bounded, versioned C facade with explicit ownership |
Native and web host adapters are unpublished workspace examples. Existing
tilewright-render-ui remains the lower-level drawing and typography library;
this repository does not replace it or its independent releases.
Read the architecture, interaction contract and adoption roadmap, plus the separate package and release plan. The native Rust example and C/SDL example use the same state and renderer through different interfaces. The browser example uses native HTML controls over the rendered world and preserves the same semantic model. Build and browser tests do not establish OS IME, screen-reader or Classic integration support; those capabilities require their own actual host evidence.
Rust 1.97.1 is pinned. The renderer dependency targets the independent 0.7.1
family published from renderer source release v1.27.0. The committed
Cargo.lock resolves registry packages only. Before checks, prepare the
separately licensed font data outside the checkout:
python3 tools/prepare-fonts.py /absolute/private/font-pack --acquire
export TILEWRIGHT_UI_FONT_ROOT=/absolute/private/font-pack
bash tools/check.sh
bash tools/check-c.sh cpu-prototypePreparation requires an absent output directory and verifies exact upstream
bytes and OFL notices. Runtime does not discover or download fonts. Packages
remain publish = false; preparing code or a lockfile does not publish crates.
New implementation is MIT. See provenance for permitted source extractions and separately licensed font metadata. Game-specific code and data remain in their consuming applications.