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

@@ -16,18 +16,18 @@
(:module "src/layout"
:components
((:file "layout")))
(:module "src/rendering"
:components
((:file "framebuffer")))
(:module "src/components"
(:module "src/rendering"
:components
((:file "framebuffer")))
(:module "src/components"
:components
((:file "package")
(:file "dirty")
(:file "box" :depends-on ("package"))
(:file "text" :depends-on ("package" "box"))
(:file "render" :depends-on ("package" "box" "text"))
(:file "theme" :depends-on ("package"))
;; Input system (v0.5.0)
(:file "text" :depends-on ("package" "box"))
(:file "render" :depends-on ("package" "box" "text"))
(:file "theme" :depends-on ("package"))
;; Input system (v0.5.0)
(:file "input-package" :depends-on ("package"))
(:file "input" :depends-on ("input-package" "dirty" "box"))
(:file "text-input" :depends-on ("input-package" "input" "box"))
@@ -82,8 +82,9 @@
(:cl-tty-input-test "INPUT-SUITE")
(:cl-tty-scrollbox-test "SCROLLBOX-SUITE")
(:cl-tty-markdown-test)
(:cl-tty-dialog-test "DIALOG-SUITE")
(:cl-tty-slot-test "SLOT-SUITE")
(:cl-tty-dialog-test "DIALOG-SUITE")
(:cl-tty-theme-test "THEME-SUITE")
(:cl-tty-slot-test "SLOT-SUITE")
(:cl-tty-layout-test "LAYOUT-SUITE")
(:cl-tty-modern-backend-test "MODERN-BACKEND-SUITE")
(:cl-tty-framebuffer-test "FRAMEBUFFER-SUITE")))