Releases: beorn/silvery
Releases · beorn/silvery
v0.9.0
Silvery v0.9.0
Added
- Interactive canvas rendering —
renderToCanvas()now supports full keyboard input via hidden textarea, RuntimeContext, FocusManager, ThemeProvider, and CursorProvider. Showcase demos switched from xterm.js to canvas. - Variable-height virtualizer —
VirtualListsupports dynamic item heights via measurement. - Canvas input handler — new
createCanvasInput()for DOM KeyboardEvent → terminal escape sequence conversion.
Fixed
- Kitty keyboard: shifted punctuation —
Shift+1now correctly produces!viashifted_codepoint. Default Kitty flags upgraded to includeREPORT_ALL_KEYS. matchHotkeylayout-independent — single-character hotkeys skip shift check across all keyboard layouts.- Mouse mode 1003 — restored any-event tracking for hover support.
- Commander:
NO_COLOR—colorizeHelprespectsNO_COLOR.
Also released
@silvery/commander@0.8.1@silvery/ansi@0.3.1
Full changelog: https://github.com/beorn/silvery/blob/main/CHANGELOG.md
v0.3.0
Full Changelog: v0.2.0...v0.3.0
v0.1.0
Initial Release
React rendering where components know their size — terminal, canvas, and DOM targets.
Highlights
- Layout feedback during render:
useContentRect()gives components their dimensions synchronously - Five-phase pipeline: reconcile → measure → layout → content → output
- Three runtime layers: createRuntime (Elm), run (hooks), createApp (Zustand)
- Drop-in Ink replacement with the same components and hooks API
- Pluggable layout: Flexx (default, 2.5x faster) or Yoga (WASM)
- 54μs simple renders, diffs 2.1x faster than first render
Terminal Rendering Modes
- Fullscreen — alternate screen buffer for TUI apps
- Inline — in-place updates in normal screen buffer
- Static — renderString for CI, piped output, logging
Components
Box, Text, VirtualList, Console, TextInput, ReadlineInput, Static, Spacer, Newline
Testing
Playwright-style API with createRenderer, locators, and withDiagnostics for render verification.
Experimental
Canvas 2D and DOM render targets (via RenderAdapter interface).
See CHANGELOG.md for full details.