v1.0.0: extract theme from cl-tty.box to own cl-tty.theme package

The theme system (theme class, define-preset, load-preset, theme-color)
was part of the bloated cl-tty.box package even though it had nothing
to do with boxes, spans, or component rendering. It only used cl-tty.backend
for the *theme-colors* hash table.

Changes:
- added defpackage :cl-tty.theme as the first block in theme.lisp
  (inline defpackage avoids ASDF dependency ordering issues with
   separate package files)
- removed theme exports from cl-tty.box defpackage
- theme tests now run in their own THEME-SUITE (16 tests) instead of
  part of BOX-SUITE
- box suite drops from 64 to 48 tests (16 moved to theme suite)
- updated ASDF, run-all-tests.lisp

All 15 test suites pass at 100%.
This commit is contained in:
2026-05-18 16:50:48 -04:00
parent ef613927e6
commit 4c3f5fe65a
4 changed files with 36 additions and 16 deletions

View File

@@ -173,9 +173,6 @@ theme object is passed in from the application level. This separation
means themes can be swapped without touching component instances.
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/package.lisp
;; Theme engine
#:theme #:make-theme #:theme-mode
#:theme-color #:load-preset #:define-preset
;; Container components (merged from cl-tty.container)
#:scroll-box #:make-scroll-box
#:scroll-box-scroll-y #:scroll-box-scroll-x