Commit Graph
16 Commits
Author SHA1 Message Date
chuan 7c254fd9d7 feat: add mutable composite component lifecycle contract
- add generic child change events for dynamic composite components

- update runtime mount tracking to subscribe through the common contract

- cover third-party dynamic composite keybinding theme and context injection
2026-06-04 03:47:00 +08:00
chuan 3154cc4ebf feat: add runtime component lifecycle context
- add mount unmount and runtime context change callbacks for components

- route theme and keybinding runtime injection through the lifecycle path

- cover root overlay dynamic container and duplicate mount behavior with tests
2026-06-04 03:40:03 +08:00
chuan 49a234ba7c feat: add generic component child traversal
- add a component child enumeration contract for composite components

- make runtime mount context recurse through the shared contract

- cover third-party composite keybinding and theme injection
2026-06-04 03:32:19 +08:00
chuan d877612354 feat: add runtime theme context
- add runtime-level theme ownership and change notification

- inject shared theme into mounted and dynamically added components

- cover theme injection and switching with regression tests
2026-06-04 03:27:07 +08:00
chuan a0d9d6c323 feat: inject runtime keybindings into dynamic container children
- add runtime-aware keybinding injection for children added after mount

- keep recursive injection for built-in Container and Box component trees

- cover dynamic container child keybinding behavior with runtime tests
2026-06-04 03:20:00 +08:00
chuan af9ad109e1 feat: add terminal keyboard protocol negotiation
- negotiate Kitty keyboard protocol during terminal session startup

- fallback to modifyOtherKeys when Kitty protocol is unavailable

- cover protocol startup and restore behavior with terminal session tests
2026-06-04 03:14:05 +08:00
chuan e78ce2badf feat: expand terminal key protocol parsing
- add key event phase metadata for parsed input events

- parse Kitty CSI-u and modifyOtherKeys style key sequences

- filter release events from keybinding dispatch by default

- cover Shift+Tab and Kitty key parsing with xUnit regressions
2026-06-04 03:05:38 +08:00
chuan d84ca3a313 feat: share runtime keybindings with components
- add component-level keybinding injection contract

- inject runtime keybinding registry when components enter runtime or overlay

- cover focused component behavior with shared runtime keybindings
2026-06-04 02:54:07 +08:00
chuan 60bce3c12c feat: add runtime input listeners
- add runtime-level input listener registration with consume support

- expose runtime keybinding registry for global shortcuts

- cover input interception and focus dispatch behavior with tests
2026-06-04 02:47:25 +08:00
chuan b26104fe95 feat: add tui test infrastructure
- add xunit regression project with virtual terminal output

- cover text input overlay rendering and component checks
2026-06-04 02:35:52 +08:00
chuan e2d534170f feat: add terminal image foundation
- add terminal image service and image component

- protect image lines and clean up kitty image ids
2026-06-04 02:28:58 +08:00
chuan 41c0d91d77 feat: add autocomplete foundation
- add reusable autocomplete provider contracts

- integrate slash command completions with editor select list
2026-06-04 02:23:06 +08:00
chuan 83967fa691 feat: add component infrastructure
- add focusable runtime state and invalidate entry

- add theme primitives and reusable components

- add component checks for focus and cancellation
2026-06-04 02:17:07 +08:00
chuan 0be34a9c16 feat: improve ansi text utilities
- measure text with grapheme-aware terminal widths

- add ansi-aware truncate slice and wrap checks
2026-06-04 02:10:46 +08:00
chuan e1ca256a07 revert: remove early component tests
- remove temporary TinyTUI.Tests project

- keep example as the current manual verification surface
2026-06-04 00:21:13 +08:00
chuan 7ffda66f7d test: add component behavior coverage
- add lightweight component test runner

- cover markdown loader select list and editor behavior
2026-06-04 00:14:38 +08:00