Rename cl-tui -> cl-tty, v0.9.0: Dialog System + Toast

Rename: cl-tty avoids naming collision with Quicklisp's cl-tui (naryl/cl-tui,
a cl-charms-based ncurses library). Our project is pure escape-sequence CL.

v0.9.0 adds:
- Dialog base class: modal overlay with backdrop, centered panel, size
  variants (:small/:medium/:large), stack-based management
- Dialog subclasses: alert, confirm, select-dialog, prompt-dialog
- Toast notifications: transient, top-right corner, auto-dismiss,
  colored variants (info/success/warning/error)
- 78 tests total, 100% passing

ASDF: read-time package references (+fiveam:+) replaced with
find-symbol so .asd loads without FiveAM pre-loaded
This commit is contained in:
Hermes
2026-05-11 19:55:37 +00:00
parent 9648c72b85
commit 811d51a4f2
51 changed files with 930 additions and 229 deletions

View File

@@ -1,8 +1,8 @@
#+TITLE: cl-tui — Reusable Common Lisp Terminal UI Framework
#+TITLE: cl-tty — Reusable Common Lisp Terminal UI Framework
#+STARTUP: content
#+FILETAGS: :project:cl-tui:readme:
#+FILETAGS: :project:cl-tty:readme:
* cl-tui
* cl-tty
A reusable Common Lisp framework for building rich terminal user interfaces.
Built on croatoan (ncurses) with Yoga for Flexbox layout. Provides a component
@@ -15,24 +15,24 @@ quality of Claude Code and OpenCode from Common Lisp.
Common Lisp has no reusable terminal UI framework at the level of Python's
Rich/prompt_toolkit or Go's Bubble Tea. Every CL project that wants a
terminal UI either builds ncurses from scratch or uses a text-only REPL.
cl-tui fills that gap — a component library with Flexbox layout, semantic
cl-tty fills that gap — a component library with Flexbox layout, semantic
theming, layered keybinding, and full mouse support. Build a terminal UI once,
reuse it everywhere.
Terminal UIs also work over SSH. A Qt or browser-based UI requires a local
display. A cl-tui application runs remotely — same code, same components,
display. A cl-tty application runs remotely — same code, same components,
accessible from anywhere.
** Architecture
```
Application code (any CL project)
└── cl-tui (layout, components, theme, events, dialogs)
└── cl-tty (layout, components, theme, events, dialogs)
└── Yoga (Flexbox layout — C library via FFI)
└── croatoan (ncurses terminal rendering)
```
cl-tui depends only on croatoan and Yoga. It is not tied to any application.
cl-tty depends only on croatoan and Yoga. It is not tied to any application.
** Dependencies