Releases: d12frosted/vui.el
Releases · d12frosted/vui.el
v1.0.0
First stable release of vui.el - a declarative, component-based UI library for Emacs.
Breaking Changes (since RC releases)
Symbol Prefix Rename: All public macros now use the vui- prefix to comply with MELPA naming conventions:
defcomponent→vui-defcomponentdefcontext→vui-defcontextuse-effect→vui-use-effectuse-ref→vui-use-refuse-callback→vui-use-callbackuse-callback*→vui-use-callback*use-memo→vui-use-memouse-memo*→vui-use-memo*use-async→vui-use-async
See the README section "Using Shorter Names (Shorthands)" for how to use aliases or read-symbol-shorthands if you prefer the shorter names.
What's Included
- Core rendering engine with virtual DOM diffing and reconciliation
- Component system with
vui-defcomponentmacro - Hooks:
vui-use-effect,vui-use-memo,vui-use-ref,vui-use-async - Layout primitives:
vui-vstack,vui-hstack,vui-box,vui-table - Basic elements:
vui-text,vui-button,vui-link,vui-input,vui-checkbox,vui-select - Utility components:
vui-fragment,vui-newline,vui-space,vui-list,vui-error-boundary vui-modemajor mode for VUI buffers- Async utilities:
vui-async-callback,vui-with-async-context - Debug mode with
vui-debug-mode - Comprehensive documentation and examples
See CHANGELOG.org for complete release notes.
v1.0.0-rc.3
Added
vui-modemajor mode for VUI buffers. Providesvui-mode-mapthat users and packages can extend (e.g., forace-link). Packages using VUI can derive their own modes fromvui-modeto add custom keybindings while preserving VUI and widget functionality.- Documentation of Emacs 29 single-widget TAB navigation limitation (upstream bug#70594, fixed in Emacs 30).
Fixed
vui-tablenow respects:indentfrom parentvui-vstack. Previously, only the first line of a table was indented; now all lines are properly indented.- Cursor preservation now uses path-based widget tracking instead of index-based. Cursor correctly follows widgets when other widgets are added or removed before them. Previously, adding a widget above the cursor position would cause the cursor to land on the wrong widget after re-render.
Changed
vui-mountandvui-rendernow enablevui-modeinstead of usingkill-all-local-variables. This preserves derived modes and their keybindings across re-renders.