Skip to content

Releases: d12frosted/vui.el

v1.0.0

28 Dec 18:49
v1.0.0
67c508c

Choose a tag to compare

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:

  • defcomponentvui-defcomponent
  • defcontextvui-defcontext
  • use-effectvui-use-effect
  • use-refvui-use-ref
  • use-callbackvui-use-callback
  • use-callback*vui-use-callback*
  • use-memovui-use-memo
  • use-memo*vui-use-memo*
  • use-asyncvui-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-defcomponent macro
  • 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-mode major 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

20 Dec 19:44
v1.0.0-rc.3
30dc2d6

Choose a tag to compare

v1.0.0-rc.3 Pre-release
Pre-release

Added

  • vui-mode major mode for VUI buffers. Provides vui-mode-map that users and packages can extend (e.g., for ace-link). Packages using VUI can derive their own modes from vui-mode to 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-table now respects :indent from parent vui-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-mount and vui-render now enable vui-mode instead of using kill-all-local-variables. This preserves derived modes and their keybindings across re-renders.