Widgets
Widget Stability
Rezi uses stability tiers so teams can choose widgets with clear behavior guarantees.
Rezi uses stability tiers so teams can choose widgets with clear behavior guarantees.
Tiers
stable: behavior contract and deterministic tests exist; semver guarantees apply to the documented stable surface.beta: usable and tested for core invariants, but parts of the contract can still evolve.experimental: no compatibility guarantees; behavior and APIs can change quickly.
Stable Guarantees
When a widget is marked stable, Rezi guarantees:
- deterministic behavior for documented keyboard, pointer, and editing contracts
- deterministic regression tests that pin those contracts in
packages/core/src/**/__tests__ - no breaking changes to documented stable behavior in minor or patch releases
- any required stable-surface behavior change is treated as semver-major
Daily Driver Status
These widgets are the EPIC-04 hardening targets and are currently stable.
| Widget | Tier | Contract coverage |
|---|---|---|
| Input | stable | Cursor/edit/paste/focus-capture contract tests in packages/core/src/runtime/__tests__/inputEditor.contract.test.ts |
| Table | stable | Selection/column-width/viewport/row-key tests in packages/core/src/widgets/__tests__/table.golden.test.ts and packages/core/src/app/__tests__/table.renderCache.test.ts |
| Virtual List | stable | Visible-range/overscan/scroll-clamp/navigation tests in packages/core/src/widgets/__tests__/virtualList.contract.test.ts |
| Command Palette | stable | Async fetch ordering/stale-cancel/query/nav/escape tests in packages/core/src/app/__tests__/commandPaletteRouting.test.ts and packages/core/src/widgets/__tests__/commandPalette.test.ts |
| File Picker | stable | Expand/collapse/selection/open/toggle contracts in packages/core/src/app/__tests__/filePickerRouting.contracts.test.ts |
| File Tree Explorer | stable | Focus/activation/toggle/context-menu contracts in packages/core/src/app/__tests__/fileTreeExplorer.contextMenu.test.ts |
Full Catalog Status
The full catalog is tiered below. stable is intentionally conservative and reserved for widgets with hardened behavior contracts.
| Category | Widget | Tier |
|---|---|---|
| Primitives | Text | stable |
| Primitives | Box | stable |
| Primitives | Row / Column | stable |
| Primitives | Spacer | stable |
| Primitives | Divider | stable |
| Indicators | Icon | beta |
| Indicators | Spinner | beta |
| Indicators | Progress | beta |
| Indicators | Skeleton | beta |
| Indicators | RichText | beta |
| Indicators | Kbd | beta |
| Indicators | Badge | beta |
| Indicators | Status | beta |
| Indicators | Tag | beta |
| Form Inputs | Button | beta |
| Form Inputs | Input | stable |
| Form Inputs | Slider | beta |
| Form Inputs | Checkbox | beta |
| Form Inputs | Radio Group | beta |
| Form Inputs | Select | beta |
| Form Inputs | Field | beta |
| Data Display | Table | stable |
| Data Display | Virtual List | stable |
| Data Display | Tree | beta |
| Overlays | Layers | beta |
| Overlays | Modal | beta |
| Overlays | Dropdown | beta |
| Overlays | Layer | beta |
| Overlays | Toast | beta |
| Overlays | Focus Zone | beta |
| Overlays | Focus Trap | beta |
| Layout | Split Pane | beta |
| Layout | Panel Group | beta |
| Layout | Resizable Panel | beta |
| Advanced | Command Palette | stable |
| Advanced | File Picker | stable |
| Advanced | File Tree Explorer | stable |
| Advanced | Code Editor | beta |
| Advanced | Diff Viewer | beta |
| Advanced | Logs Console | beta |
| Advanced | Tool Approval Dialog | experimental |
| Charts | Gauge | beta |
| Charts | Sparkline | beta |
| Charts | Bar Chart | beta |
| Charts | Mini Chart | beta |
| Feedback | Callout | beta |
| Feedback | Error Display | beta |
| Feedback | Empty | beta |