Packages

Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.

Current section

18 Versions

Jump to

Compare versions

225 files changed
+27204 additions
-23755 deletions
  @@ -1,111 +0,0 @@
1 - # Changelog
2 -
3 - All notable changes to this project will be documented in this file.
4 -
5 - The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6 - and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 -
8 - ## [0.1.0] - 2023-05-24
9 -
10 - ### Added
11 -
12 - - Initial release of Raxol
13 - - Terminal UI framework with web interface capabilities
14 - - Core components library
15 - - Visualization plugins
16 - - Internationalization support
17 - - Theme system
18 -
19 - ### Known Issues
20 -
21 - - Various compiler warnings as documented in the CI logs
22 -
23 - ## [Unreleased]
24 -
25 - ### Added
26 -
27 - - **Project Foundation:** Initial structure, config, docs, CI/CD, dev env, quality tools, test framework.
28 - - **Terminal Capabilities:** Emulation layer, ANSI processing, platform/feature detection (colors, mouse, etc.).
29 - - **Buffer Management:** Double buffering, damage tracking, virtual scrolling, cursor management.
30 - - **Plugin System:** Core API, configuration, dependency management, clipboard/notification plugins.
31 - - **Enhanced ANSI Processing:** Advanced formatting, device status reports, screen modes, character sets.
32 - - **Component System:** Refactored View DSL, dashboard/layout components, specialized widgets (Info, Chart, etc.), testing framework.
33 - - **VS Code Extension Integration:** Communication protocol, WebView panel, JSON interface.
34 - - **Database Improvements:** Connection management, error handling, diagnostics.
35 - - **Testing Framework:** Test plan, scripts (VS Code/native), mock components, performance monitoring.
36 - - **Dashboard/Visualization:** Widget positioning/resizing, layout persistence, responsive components, drag-and-drop, caching.
37 - - **CI/CD Improvements:** Local testing (`act`), cross-platform enhancements, security scanning.
38 - - **Theme System:** Multiple built-in themes, selection UI, customization API, persistence.
39 -
40 - ### Changed
41 -
42 - - **Architecture:** Improved modularity, configuration management, development workflow, documentation structure.
43 - - **Terminal Functionality:** Improved feature detection, refined ANSI processing, optimized config/memory.
44 - - **Plugin System:** Improved initialization, dependency resolution, API versioning, maintainability.
45 - - **Runtime System:** Dual-mode operation (native/VS Code), conditional init, improved startup/error handling.
46 - - **Project Structure:** Consolidated examples, dedicated frontend dir, normalized extensions, improved secrets/git handling.
47 -
48 - ### Deprecated
49 -
50 - - Old event system
51 - - Legacy rendering approach
52 - - Previous styling methods
53 -
54 - ### Removed
55 -
56 - - Outdated configuration files and dependencies
57 - - Redundant documentation
58 - - Legacy terminal handling code
59 - - `use Raxol.Component` from helper modules
60 -
61 - ### Fixed
62 -
63 - - Numerous fixes across core system stability, components, database connections, VS Code integration, runtime issues, CI/CD, ANSI processing, and test suites (details below).
64 -
65 - - **Detailed Fix History (Recent First):**
66 - - **(2024-06-03):** Resolved remaining compilation warnings. Verified that previously listed warnings were mostly outdated or already fixed. Corrected `.screen_buffer` access in `lib/raxol/terminal/session.ex` to use `Emulator.get_active_buffer/1`.
67 -
68 - ## [Unreleased] - 2024-06-03
69 -
70 - ### Added
71 -
72 - - **Project Foundation:** Initial structure, config, docs, CI/CD, dev env, quality tools, test framework.
73 - - **Terminal Capabilities:** Emulation layer, ANSI processing, platform/feature detection (colors, mouse, etc.).
74 - - **Buffer Management:** Double buffering, damage tracking, virtual scrolling, cursor management.
75 - - **Plugin System:** Core API, configuration, dependency management, clipboard/notification plugins.
76 - - **Enhanced ANSI Processing:** Advanced formatting, device status reports, screen modes, character sets.
77 - - **Component System:** Refactored View DSL, dashboard/layout components, specialized widgets (Info, Chart, etc.), testing framework.
78 - - **VS Code Extension Integration:** Communication protocol, WebView panel, JSON interface.
79 - - **Database Improvements:** Connection management, error handling, diagnostics.
80 - - **Testing Framework:** Test plan, scripts (VS Code/native), mock components, performance monitoring.
81 - - **Dashboard/Visualization:** Widget positioning/resizing, layout persistence, responsive components, drag-and-drop, caching.
82 - - **CI/CD Improvements:** Local testing (`act`), cross-platform enhancements, security scanning.
83 - - **Theme System:** Multiple built-in themes, selection UI, customization API, persistence.
84 -
85 - ### Changed
86 -
87 - - **Architecture:** Improved modularity, configuration management, development workflow, documentation structure.
88 - - **Terminal Functionality:** Improved feature detection, refined ANSI processing, optimized config/memory.
89 - - **Plugin System:** Improved initialization, dependency resolution, API versioning, maintainability.
90 - - **Runtime System:** Dual-mode operation (native/VS Code), conditional init, improved startup/error handling.
91 - - **Project Structure:** Consolidated examples, dedicated frontend dir, normalized extensions, improved secrets/git handling.
92 -
93 - ### Deprecated
94 -
95 - - Old event system
96 - - Legacy rendering approach
97 - - Previous styling methods
98 -
99 - ### Removed
100 -
101 - - Outdated configuration files and dependencies
102 - - Redundant documentation
103 - - Legacy terminal handling code
104 - - `use Raxol.Component` from helper modules
105 -
106 - ### Fixed
107 -
108 - - Numerous fixes across core system stability, components, database connections, VS Code integration, runtime issues, CI/CD, ANSI processing, and test suites (details below).
109 -
110 - - **Detailed Fix History (Recent First):**
111 - - **(2024-06-03):** Resolved remaining compilation warnings. Verified that previously listed warnings were mostly outdated or already fixed. Corrected `.screen_buffer` access in `lib/raxol/terminal/session.ex` to use `Emulator.get_active_buffer/1`.
  @@ -2,136 +2,129 @@
2 2
3 3 [![Hex pm](https://img.shields.io/hexpm/v/raxol.svg)](https://hex.pm/packages/raxol)
4 4 [![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE.md)
5 -
6 5 [![GitHub Actions CI](https://github.com/Hydepwns/raxol/actions/workflows/ci.yml/badge.svg)](https://github.com/Hydepwns/raxol/actions/workflows/ci.yml)
7 6
8 7 A terminal application toolkit for Elixir, providing components and a runtime for building interactive TUI applications.
9 8
10 - > **Note:** Pre-release software. APIs may change before v1.0.
9 + > **Note:** Raxol is actively developed (pre-1.0). APIs may evolve.
11 10
12 11 <!-- TODO: Add a screenshot or GIF demo here -->
13 12
14 13 ## Features
15 14
16 - - **ANSI Terminal Emulation:** Robust handling of ANSI escape codes, colors, and Unicode characters.
17 - - **Component Model:** Build UIs with reusable components inspired by web frameworks.
18 - - **Layout System:** Flexible layouts for arranging components within the terminal window.
19 - - **Performance:** Optimized rendering pipeline with double buffering and efficient updates.
15 + - **Component Model:** Build UIs with reusable components (`Raxol.Core.Runtime.Application` behaviour).
16 + - **Declarative View DSL:** Define UIs using `Raxol.View.Elements` macros (`box`, `text`, etc.).
17 + - **Layout System:** Arrange components using flexible layouts (`panel`, `row`, `column`).
18 + - **Theming:** Customize appearance with themes via `Raxol.Core.ColorSystem`.
19 + - **User Preferences:** Persist settings across sessions (`Raxol.Core.UserPreferences`).
20 + - **Plugin System:** Extend functionality with custom plugins (`Raxol.Core.Runtime.Plugins`).
21 + - **Terminal Handling:** Robust ANSI/Sixel processing, input handling, double buffering with NIF-based termbox integration.
20 22
21 23 ## Installation
22 24
23 - Add `raxol` to your list of dependencies in `mix.exs`:
25 + Add `raxol` to `mix.exs`:
24 26
25 27 ```elixir
26 28 def deps do
27 29 [
28 - {:raxol, "~> 0.1.0"} # Or use {:raxol, github: "Hydepwns/raxol"} for development
30 + {:raxol, "~> 0.1.0"} # Check Hex for the latest version
29 31 ]
30 32 end
31 33 ```
32 34
33 - Then, fetch the dependencies:
34 -
35 - ```bash
36 - mix deps.get
37 - ```
38 -
39 - For detailed installation options and requirements, see the [Installation Guide](docs/installation/Installation.md).
35 + Then run `mix deps.get`. See [Development Setup](docs/development/DevelopmentSetup.md) for more.
40 36
41 37 ## Getting Started
42 38
43 - Here's a basic example of a Raxol application:
44 -
45 39 ```elixir
46 40 defmodule MyApp do
47 - use Raxol.App
41 + use Raxol.Core.Runtime.Application # Use the Application behaviour
42 + import Raxol.View.Elements # Import View DSL macros
48 43
49 44 @impl true
50 - def render(assigns) do
51 - ~H"""
52 - <box border="single">
53 - <text>Hello, Raxol!</text>
54 - </box>
55 - """
45 + def init(_context), do: {:ok, %{count: 0}} # Initial state
46 +
47 + @impl true
48 + def update(message, state) do
49 + # Handle UI events (:increment, :decrement)
50 + new_state =
51 + case message do
52 + :increment -> Map.update!(state, :count, &(&1 + 1))
53 + :decrement -> Map.update!(state, :count, &(&1 - 1))
54 + _ -> state
55 + end
56 + {:ok, new_state, []} # Return new state, no commands
56 57 end
58 +
59 + @impl true
60 + def view(state) do
61 + # Render UI based on state
62 + view do
63 + panel title: "Counter" do
64 + row do
65 + button(label: "-", on_click: :decrement)
66 + text(content: "Count: \#{state.count}") # No padding needed
67 + button(label: "+", on_click: :increment)
68 + end
69 + end
70 + end
71 + end
72 +
73 + # Optional callbacks: handle_event/1, handle_tick/1, subscriptions/1
57 74 end
58 75
59 - # Start the application
60 - {:ok, _pid} = Raxol.Runtime.start_link(app: MyApp)
61 -
62 - # Keep the application running (e.g., in an IEx session or supervisor)
76 + # Typically started via Supervisor or:
77 + # Raxol.Core.Runtime.Lifecycle.start_application(MyApp)
63 78 ```
64 79
65 - > **Note:** Use `Raxol.App` for the main application entry point and `Raxol.View` for reusable UI components. Raxol also supports nested component functions (e.g., `box do ... end`). See the examples in `/examples` and the [Getting Started Tutorial](docs/guides/quick_start.md) for more details on both approaches.
66 -
67 - For a more comprehensive guide, please refer to the [Getting Started Tutorial](docs/guides/quick_start.md).
68 -
69 - Explore the `/examples` directory for more detailed usage patterns and advanced features.
80 + See [Getting Started Tutorial](docs/guides/quick_start.md) and `/examples` for more.
70 81
71 82 ## Documentation
72 83
73 - Detailed documentation can be found in the `/docs` directory or online (TODO: Add the hosted documentation link here):
84 + Main documentation index: [docs/README.md](docs/README.md)
74 85
75 - - [Using Raxol (Installation Guide)](docs/installation/Installation.md)
76 - - [Getting Started Tutorial](docs/guides/quick_start.md)
77 - - [UI Components & Layout](docs/guides/components.md)
78 - - [Async Operations (Subscriptions & Commands)](docs/guides/async_operations.md)
86 + - [Architecture Overview](docs/ARCHITECTURE.md)
87 + - [CHANGELOG](docs/development/changes/CHANGELOG.md)
88 + - [UI Components & Layout](docs/guides/components/README.md)
89 + - [Async Operations](docs/guides/async_operations.md)
79 90 - [Runtime Options](docs/guides/runtime_options.md)
80 - - [Terminal Emulator Details](docs/terminal_emulator.md)
81 - - [Development Environment Setup](docs/installation/DevelopmentSetup.md)
82 - - [Cross-Platform Support](docs/installation/CrossPlatformSupport.md)
83 - - [Version Management](docs/installation/VersionManagement.md)
91 + - [Terminal Details](docs/development/terminal/README.md)
92 + - [Development Setup](docs/development/DevelopmentSetup.md)
93 + - [Contributing](CONTRIBUTING.md)
84 94
85 95 ## Development
86 96
87 - To set up your development environment, please see the [Development Environment Setup](docs/installation/DevelopmentSetup.md) guide.
97 + See [Development Setup](docs/development/DevelopmentSetup.md) and [Contributing](CONTRIBUTING.md).
88 98
89 - Common development commands:
99 + > **Note:** The project recently completed a major refactoring. See `CHANGELOG.md` and `docs/development/planning/handoff_prompt.md` for context.
100 +
101 + Common commands:
90 102
91 103 ```bash
92 - # Run the full test suite
104 + mix deps.get
93 105 mix test
94 -
95 - # Run static analysis (Credo for style, Dialyzer for types)
96 106 mix credo
97 107 mix dialyzer
98 -
99 - # Format code
108 + mix compile # Use --warnings-as-errors for stricter checks
100 109 mix format
101 110 ```
102 111
103 - We also provide a range of helper scripts for various development tasks, including:
112 + Helper scripts are in `/scripts` ([Scripts README](scripts/README.md)).
104 113
105 - - Running different test suites (integration, platform-specific, visualization, etc.)
106 - - Performing code quality and pre-commit checks
107 - - Managing database setup and diagnostics
108 - - Building releases
109 - - Simulating CI/CD workflows locally
110 -
111 - For detailed information on all available scripts and their usage, please refer to the [Scripts Documentation](scripts/README.md).
112 -
113 - ### GitHub Actions
114 -
115 - See [GitHub Actions README](.github/workflows/README.md) for detailed instructions...
114 + GitHub Actions details: [.github/workflows/README.md](.github/workflows/README.md).
116 115
117 116 ## Project Structure
118 117
119 - - `/assets` - Static assets (e.g., images, fonts)
120 - - `/docker` - Docker configurations (e.g., for local testing with `act`)
121 - - `/docs` - User documentation
122 - - `/examples` - Example applications and code samples
123 - - `/extensions` - IDE integrations and extensions (e.g., VS Code)
124 - - `/frontend` - Frontend JavaScript/TypeScript configurations and assets
125 - - `/lib` - Core Elixir code
126 - - `/pages` - In-depth documentation/articles (e.g., for site generation)
127 - - `/priv` - Non-source code assets (e.g., templates, static files for releases)
128 - - `/scripts` - Helper scripts for development tasks
129 - - `/themes` - Theme definitions for styling
130 -
131 - ## Contributing
132 -
133 - Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines.
118 + - `/assets` -> Processed web assets -> `/priv/static`
119 + - `/docker` -> Docker configs (`act`)
120 + - `/docs` -> Guides, development notes, architecture
121 + - `/examples` -> Sample code
122 + - `/extensions` -> IDE integrations (VS Code)
123 + - `/lib` -> Core Elixir code (`raxol/core`, `raxol/ui`, `raxol/terminal`, etc.)
124 + - `/priv` -> Compiled assets (`priv/static`), themes, plugins
125 + - `/scripts` -> Development helper scripts
126 + - `/test` -> Test suites
134 127
135 128 ## License
136 129
137 - MIT License - see [LICENSE](LICENSE.md) file for details.
130 + MIT - see [LICENSE](LICENSE.md).
  @@ -0,0 +1,229 @@
1 + # Changelog
2 +
3 + Format from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/);
4 + and we use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5 +
6 + ## [Unreleased] - YYYY-MM-DD
7 +
8 + ### Added
9 +
10 + ### Changed
11 +
12 + ### Deprecated
13 +
14 + ### Removed
15 +
16 + ### Fixed
17 +
18 + ### Security
19 +
20 + ## [0.2.0] - 2024-07-24
21 +
22 + ### Added
23 +
24 + - Initial release of Raxol
25 + - Terminal UI framework with web interface capabilities
26 + - Core components library
27 + - Visualization plugins
28 + - Internationalization support
29 + - Theme system
30 +
31 + ### Changed
32 +
33 + - **Dependencies:** Updated `rrex_termbox` from v1.1.5 to v2.0.1, migrating from Port-based to NIF-based architecture for improved performance and reliability.
34 + - **Terminal Subsystem:** Refactored all terminal code to use the new RrexTermbox 2.0.1 API with GenServer-based event delivery.
35 + - Updated `lib/raxol/terminal/driver.ex` to use the NIF-based interface instead of Port-based communication
36 + - Updated `lib/raxol/terminal/terminal_utils.ex` for NIF-based terminal dimension detection
37 + - Redesigned `lib/raxol/terminal/constants.ex` to directly map to NIF constants
38 + - Rewritten `lib/raxol/core/events/termbox_converter.ex` to handle NIF event format
39 + - Updated `lib/raxol/test/mock_termbox.ex` to match the NIF-based interface for testing
40 + - **Terminal Documentation:** Updated all documentation to reflect the NIF-based architecture:
41 + - Updated `docs/development/planning/terminal/terminal_dimensions.md`
42 + - Updated `docs/development/planning/handoff_prompt.md`
43 + - Updated `docs/guides/components/visualization/testing-guide.md`
44 + - Updated `docs/guides/terminal_emulator.md`
45 + - **Tests:** Rewritten `test/raxol/terminal/driver_test.exs` to test NIF events instead of Port-based IO communication
46 + - **Event Handling:** Updated the event handling system to work with the new termbox NIF architecture.
47 +
48 + ### Known Issues
49 +
50 + - Various compiler warnings as documented in the CI logs
51 + - **Runtime Hang:** Examples launched via `Raxol.start_link/1` (e.g., using `bin/demo.exs`) currently hang after compilation, indicating a blocking issue in the core runtime initialization or render loop.
52 +
53 + ### Added
54 +
55 + - **Project Foundation:** Initial structure, config, docs, CI/CD, dev env, quality tools, test framework.
56 + - **Core Systems:**
57 + - Terminal emulation layer with ANSI processing and feature detection.
58 + - Buffer management (double buffering, damage tracking, scrolling, cursor).
59 + - Plugin system (core API, config, dependencies, loading, command registry).
60 + - Component system (View DSL, layout components, widgets, testing framework).
61 + - Runtime logic (Dispatcher, Manager, Driver, Supervisor, event loop).
62 + - Core features (ID generation, preferences, plugin registry).
63 + - Terminal buffer operations (scrollback, selection).
64 + - Color system module for theme/accessibility aware color retrieval.
65 + - User preferences persistence module.
66 + - **UI Components:** Added `Table` and `SelectList`.
67 + - **Terminal Capabilities:** Enhanced ANSI processing, input parsing (mouse, special keys, bracketed paste).
68 + - **VS Code Extension Integration:** Communication protocol, WebView panel, JSON interface.
69 + - **Database:** Connection management, error handling, diagnostics improvements.
70 + - **Dashboard/Visualization:** Widget layout management, responsiveness, caching. Added helpers for Chart, Treemap, Image rendering.
71 + - **CI/CD:** Local testing (`act`), cross-platform enhancements, security scanning.
72 + - **Theme System:** Multiple built-in themes, selection UI, customization API, persistence.
73 + - **Testing:**
74 + - General testing framework improvements (mock components, performance monitoring).
75 + - Added tests for mouse event parsing, runtime supervisor, plugin manager (loading, reloading, dependencies), dispatcher interactions, layout measurement, `MultiLineInput` helpers.
76 + - Added mock plugins and test setup helpers.
77 + - **MultiLineInput Features:** Implemented basic cursor navigation, clipboard integration, and scrolling logic.
78 + - **Sixel Support:** Added initial modules for pattern mapping and palette handling.
79 + - **Documentation:**
80 + - Added initial drafts for Plugin Development, Theming, and VS Code Extension guides.
81 + - **Examples:** Created initial `component_showcase.exs` example.
82 +
83 + ### Changed
84 +
85 + - **Architecture:** Updated `ARCHITECTURE.md` codebase size analysis with new thresholds and file sizes.
86 + - **Architecture:** Completed major codebase reorganization and refactoring of core systems (Runtime, Terminal, UI, Plugins) for improved modularity, configuration, and structure. Updated `ARCHITECTURE.md`.
87 + - **Components:** Refactored `Table` component (`lib/raxol/ui/components/display/table.ex`) to use attributes for data/columns instead of internal state and apply basic width constraints.
88 + - **Terminal Functionality:** Improved feature detection, refined ANSI processing, optimized config/memory management. Refactored input parsing in `TerminalDriver` to use `:os.cmd("stty ...")`.
89 + - **Plugin System:** Improved initialization, dependency resolution, API versioning. Defined `Plugin` behaviour. Refactored `PluginManager` and `CommandRegistry` (namespaces, arity, lifecycle/command helpers). Implemented basic plugin reloading infrastructure.
90 + - **Runtime System:** Improved dual-mode operation, startup/error handling. Ensured correct command routing. Refactored `Lifecycle` module.
91 + - **Rendering Pipeline:** Refined rendering flow, integrated theme application, implemented active theme management, updated layout engine, implemented border rendering for `:box`. Refactored `RenderingEngine`.
92 + - **Project Structure:** Consolidated examples, improved secrets/git handling. Updated roadmap documents.
93 + - **Terminal Configuration:** Refactored `configuration.ex` into dedicated modules. Added deep merge utility.
94 + - **View/Layout System:** Standardized on macros in `Raxol.View.Elements`.
95 + - **Layout Engine:** Implemented measurement logic for `:panel`, `:grid`, `:view`.
96 + - **Terminal Parser:** Refactored `parse_loop` and CSI dispatching logic. Implemented placeholder handlers for SGR, scroll regions, cursor styles, etc.
97 + - **Terminal Emulator:** Refactored control code handling (C0, ESC sequences).
98 + - **Terminal Integration:** Refactored memory management and config update logic.
99 + - **MultiLineInput Component:** Refactored core logic into helper modules. Implemented selection logic.
100 + - **Visualization Plugin:** Refactored rendering logic into separate modules.
101 + - **Sixel Graphics:** Partially refactored parser and rendering logic.
102 + - **Dashboard Component:** Implemented grid-based rendering.
103 + - **Color System Integration:** Refactored `Theme` for variants/palettes. Refactored `ThemeIntegration` for high-contrast state management.
104 + - **User Preferences System:** Refactored `UserPreferences` GenServer to use `Persistence` module, support nested keys, and add auto-saving.
105 + - **Various Components & Modules:** Updated numerous components (`Button`, `Checkbox`, etc.), examples, scripts, benchmarks, and cloud monitoring modules to align with refactoring and fix behaviour implementations.
106 + - **Documentation:**
107 + - Reviewed and updated core documentation guides (`README.md`, components, quick start, async, runtime options, terminal emulator, development setup, architecture) post-refactoring.
108 + - Rewritten Component Development guide.
109 + - Updated `README.md` example.
110 + - **Mixfile (`mix.exs`):** Removed obsolete `mod:` key, updated description.
111 + - **Examples:** Refactored `component_showcase.exs` theming tab to use `Raxol.Core.ColorSystem.get/2`.
112 + - **Documentation:** Reviewed and updated terminal subsystem documentation (`ANSIProcessing.md`, `CharacterSets.md`, `ClipboardManagement.md`, `ColorManagement.md`, `Cursor.md`) to align with current architecture (`Parser`, `Emulator`, `Driver`, `Theming`, `ColorSystem`, etc.) and remove outdated content.
113 + - **Documentation:** Rewritten `docs/development/planning/overview.md` to align with current state and future vision.
114 + - **Documentation:** Updated `docs/development/planning/handoff_prompt.md` to include future feature goals from overview.
115 + - **Documentation:** Updated `docs/development/planning/roadmap/Roadmap.md` based on revised overview.
116 + - **Documentation:** Performed major cleanup: removed obsolete files/stubs, relocated terminal detail files to `docs/development/terminal/`, updated links in root `README.md` and `docs/README.md`.
117 + - **Documentation:** Archived outdated, large planning documents (`docs/development/planning/performance/case_studies.md`, `docs/development/planning/examples/integration_example.md`) to `docs/development/archive/planning/`.
118 + - **Examples:** Refactored `lib/raxol/examples/integrated_accessibility_demo.ex` to remove standalone `run/0` logic and rely on the `Raxol.Core.Runtime.Application` behaviour implementation.
119 + - **Examples:** Updated `bin/demo.exs` script to launch examples using `Raxol.start_link/1` instead of calling module-specific `run/0` functions.
120 + - **Terminal Subsystem:** Refactored `Raxol.Terminal.Driver` to utilize the `:rrex_termbox` NIF-based interface (v2.0.1) for input event handling, removing direct stdio management and ANSI parsing logic.
121 + - **Terminal Subsystem:** Refactored `Raxol.Terminal.TerminalUtils` to remove dependency on `:rrex_termbox` for determining terminal dimensions, relying solely on `:io` and `stty`.
122 + - **Examples:** Enhanced `lib/raxol/examples/integrated_accessibility_demo.ex` by:
123 + - Integrating `Raxol.Core.UserPreferences` for loading/saving settings.
124 + - Integrating `Raxol.Core.I18n` for translations.
125 + - Improving the animation example (progress bar) and respecting reduced motion.
126 + - Removing unused aliases and performing general cleanup.
127 +
128 + ### Deprecated
129 +
130 + - Old event system
131 + - Legacy rendering approach
132 + - Previous styling methods
133 + - `Raxol.Terminal.CommandHistory` (Use `Raxol.Terminal.Commands.History` instead)
134 +
135 + ### Removed
136 +
137 + - Obsolete configuration files, dependencies, documentation, and legacy code following major refactoring (including old top-level modules, `CommandHistory`, helper module component usage, redundant layout functions, unused code).
138 + - Pruned obsolete files and directories (Note: Further investigation needed for some potentially obsolete directories).
139 +
140 + ### Fixed
141 +
142 + - **Compiler Warnings:** Resolved remaining warnings:
143 + - Unused variable `_state` in `Raxol.Terminal.Driver.terminate/2`.
144 + - Unused variables `_current_color`, `_current_char` in `Raxol.Terminal.ANSI.SixelGraphics.generate_pixel_data/4` within specific `if` block.
145 + - Redefined `@doc` for `Raxol.Style.Colors.Accessibility.accessible_color_pair/2` by removing potentially conflicting comments/docs around private helper functions.
146 + - **Compilation & Build:**
147 + - Resolved `:rrex_termbox` (v2.0.1) compilation failures by adapting code to its NIF-based API.
148 + - Fixed guard clause issues in `lib/raxol/core/events/termbox_converter.ex` by defining module attributes for key constants.
149 + - Updated references from `:rrex_termbox` to `ExTermbox` in multiple files:
150 + - `lib/raxol/terminal/constants.ex`
151 + - `lib/raxol/terminal/driver.ex`
152 + - `lib/raxol/terminal/terminal_utils.ex`
153 + - Fixed issues in MultiLineInput component:
154 + - Corrected namespace in tests from `Raxol.UI.Components.Input.MultiLineInput.State` to `Raxol.Components.Input.MultiLineInput`
155 + - Updated cursor position handling to use the `cursor_pos` tuple instead of separate `cursor_row` and `cursor_col` fields
156 + - Fixed pattern matching in navigation helper to extract coordinates from cursor position tuple
157 + - Implemented missing `clear_selection` and `normalize_selection` functions
158 + - Fixed line-wrapping behavior for cursor movement in left and right directions
159 + - Applied local patch to `deps/rrex_termbox/Makefile` to remove obsolete NIF build rules that prevented compilation.
160 + - Resolved numerous compilation errors and warnings across the codebase related to refactoring (undefined functions/variables, incorrect module paths/aliases/imports, behaviour implementations, syntax errors, type issues, argument errors, cyclic dependencies).
161 + - Fixed compilation errors in `lib/raxol/plugins/visualization/treemap_renderer.ex` (unused variable, incorrect function call).
162 + - Fixed compilation errors in `lib/raxol/style/colors/accessibility.ex` (removed duplicate `contrast_ratio/2` definition).
163 + - Fixed compilation error in `lib/raxol/ui/components/display/table.ex` (syntax error in `init/1`).
164 + - Addressed issues related to Elixir/OTP compatibility (e.g., charlist syntax, `:os.cmd` usage).
165 + - Addressed compiler warnings related to missing color utility functions (`HSL.darken/2`, `HSL.lighten/2`, `Accessibility.ensure_contrast/3`, `DrawingUtils.get_contrasting_text_color/1`) by commenting out calls and adding TODOs in `palette_manager.ex`, `treemap_renderer.ex`, and `accessibility.ex`.
166 + - **Runtime & Core:**
167 + - Fixed `FunctionClauseError` in `MultiLineInput.render/2` macro usage.
168 + - Corrected event routing and command handling in runtime.
169 + - Fixed issues in `PluginManager`, `CommandRegistry`, `Dispatcher`, `TerminalDriver`, `LifecycleHelper`, `Rendering.Scheduler`.
170 + - **Components:**
171 + - Fixed `KeyError` in `MultiLineInput` default theme creation.
172 + - Fixed `MultiLineInput` behaviour implementation arity and `TextHelper` function calls.
173 + - Fixed `VisualizationPlugin` behaviour implementation.
174 + - Addressed errors in `Table`, `Progress`, `Modal`, `HintDisplay`, `FocusRing`, `Spinner`, `Dashboard`, `WidgetContainer`, `Dropdown`, `Button`, `Terminal`, `TextInput`, `Form`.
175 + - **Terminal & ANSI:**
176 + - Fixed incorrect calls to `ControlCodes` and `ScreenBuffer` functions.
177 + - Corrected `stty` command usage in `TerminalDriver`.
178 + - Fixed errors in Sixel graphics parsing logic.
179 + - Fixed scroll region clearing logic.
180 + - **Styling & Theming:**
181 + - Fixed multiple defaults definitions in `Harmony` and `Accessibility` color modules. Defined missing contrast helper.
182 + - Corrected calls to `Style.new` in visualization modules.
183 + - Fixed function calls in `PaletteManager` to use correct `HSL` and `Accessibility` modules.
184 + - Restored accidentally removed `darken_until_contrast/3` function in `lib/raxol/style/colors/accessibility.ex`.
185 + - **Utilities & Helpers:**
186 + - Fixed incorrect function calls (`List.fetch`, `component` usage in examples, `load_default_config`).
187 + - Fixed memory trimming logic in `MemoryManager`.
188 + - Fixed private function call error in benchmark reporting.
189 + - **Examples:** Addressed compilation errors and updated usage in `component_showcase.exs`, `ux_refinement_demo.exs`.
190 + - **Examples:** Fixed calls to deprecated `*_enabled?` accessibility functions in `keyboard_shortcuts_demo.ex` and `accessibility_demo.ex`, replacing them with `Accessibility.get_option/1`.
191 + - **Components:** Fixed `Table` component rendering by correctly aligning attribute/data flow between `Table.render/2`, `Layout.Table.measure_and_position/3`, and `Renderer.render_table/6`. Ensured `Elements.table/1` is used and attributes (`:data`, `:columns`, `_headers`, `_data`, `_col_widths`) are passed/extracted correctly.
192 + - **Examples:** Added missing application runner (`Raxol.start_link`) to `table_test.exs`.
193 + - **Warnings:** Fixed undefined function calls `Raxol.Core.Logger.info/1` in `keyboard_shortcuts_demo.ex` by adding `require Logger` and using `Logger.info/1`.
194 + - **Warnings:** Fixed undefined function call `Raxol.UI.Theming.Theme.get_variant!/1` in `theme_integration.ex` by returning the variant atom directly.
195 + - **Warnings:** Fixed undefined function call `Raxol.Core.Accessibility.default_options/0` by removing the wrapper call in `theme_integration.ex` and adjusting usage in `Accessibility.announce/2`.
196 + - **Warnings:** Removed numerous unused aliases across multiple modules (`Emulator`, `SixelGraphics`, `RenderHelper`, `Supervisor`, `PaletteManager`, `Parser`, `AccessibilityDemo`, `ControlCodes`, `MultiLineInput`, `MemoryManager`).
197 + - **Warnings:** Fixed various specific warnings:
198 + - Undefined `ThemeIntegration.get_active_theme/0` in `accessibility_demo.ex`.
199 + - Type mismatch in `NavigationHelper.move_cursor/2` calls.
200 + - Potential nil value in `Integer.to_string/1` call in `sixel_graphics.ex`.
201 + - Deprecated `Logger.warn/1` replaced with `Logger.warning/1`.
202 + - Fixed usage of underscored variables that were actually used (`_pn`, `_color_selection_cmd`, `_final_last_char`, `_line_num_element`).
203 + - Removed unused functions (`format_color_for_announcement`, `ensure_contrast_or_limit`, `find_accessible_pair`, `pref_key`, `get_option`).
204 + - Removed duplicate `@doc` for `contrast_ratio/2`.
205 + - Removed `@doc` from private function `maybe_scroll/1`.
206 + - Reordered `update/2` clauses in `MultiLineInput`.
207 + - Removed unused module attributes (`@memory_check_interval_ms`, `@polling_interval_ms`).
208 + - Fixed undefined function calls to `UserPreferences.get/2` and `put/2` (used `get/1`, `set/2`).
209 + - Fixed undefined function calls in `control_codes.ex` (`Emulator.get_scroll_region/1`, commented out `:terminal_state_api.cmd_scroll/2`).
210 + - Added missing `Application` behaviour callbacks to `keyboard_shortcuts_demo.ex`.
211 + - Fixed `handle_event` signature/call in `keyboard_shortcuts_demo.ex`.
212 + - Refactored RLE logic in `sixel_graphics.ex` to fix scoping errors.
213 + - Fixed syntax error in `lib/raxol/terminal/memory_manager.ex` (removed trailing comma in `defstruct`).
214 + - Added missing `GenServer.init/1` implementation to `lib/raxol/terminal/memory_manager.ex`.
215 + - Fixed undefined function call `Color.to_hsl!` in `lib/raxol/style/colors/palette_manager.ex` (used `HSL.rgb_to_hsl/3`).
216 + - Fixed `if` macro syntax error in `lib/raxol/examples/keyboard_shortcuts_demo.ex`.
217 + - Fixed undefined function calls to `UserPreferences.get/1` in `lib/raxol/examples/keyboard_shortcuts_demo.ex` (used `Raxol.Core.UserPreferences.get/1`).
218 + - Fixed undefined macro call `vbox/1` in `lib/raxol/examples/keyboard_shortcuts_demo.ex` (used `box/1` and added `require Raxol.View.Elements`).
219 + - Added missing `Raxol.Core.Runtime.Application` behaviour implementations (`handle_event/1`, `handle_tick/1`, `subscriptions/1`) to `lib/raxol/examples/keyboard_shortcuts_demo.ex`.
220 + - Corrected `@impl` annotation for `handle_event/1` in `lib/raxol/examples/keyboard_shortcuts_demo.ex`.
221 + - _Note:_ Several compiler warnings remain and require manual fixes (duplicate `@doc` in `accessibility.ex`, unused vars in `sixel_graphics.ex` & `render_helper.ex`, incorrect `@impl` on `handle_event/2` in `keyboard_shortcuts_demo.ex`). Some automated edits failed to apply fixes for these warnings.
222 + - **Warnings:** Fixed unused variable warnings in `lib/raxol/terminal/ansi/sixel_graphics.ex` (`_current_color`, `_current_char`) by prefixing with underscores.
223 + - **Warnings:** Fixed unused variable warning in `lib/raxol/components/input/multi_line_input/render_helper.ex` (`_line_number_text`) by prefixing with an underscore.
224 + - **Warnings:** Automated edits failed to remove duplicate `@doc` warning in `lib/raxol/style/colors/accessibility.ex`; requires manual removal.
225 + - **Compilation:** Resolved compilation errors by reverting variable prefixing (`_current_color`, `_current_char`, `_line_number_text`) that caused undefined variable errors, allowing compilation without `--warnings-as-errors`. Persisted warnings for unused variables and `@doc` redefinition are noted.
226 +
227 + ### Security
228 +
229 + Bing bong, fck ya life.
  @@ -1,17 +1,36 @@
1 1 {<<"links">>,[{<<"GitHub">>,<<"https://github.com/Hydepwns/raxol">>}]}.
2 2 {<<"name">>,<<"raxol">>}.
3 - {<<"version">>,<<"0.1.0">>}.
3 + {<<"version">>,<<"0.2.0">>}.
4 4 {<<"description">>,
5 - <<"Raxol - A comprehensive terminal UI framework for Elixir with web interface capabilities.">>}.
5 + <<"Raxol - A toolkit for building interactive terminal UI applications in Elixir.">>}.
6 6 {<<"elixir">>,<<"~> 1.14">>}.
7 7 {<<"app">>,<<"raxol">>}.
8 8 {<<"files">>,
9 9 [<<"lib">>,<<"lib/raxol">>,<<"lib/raxol/metrics">>,
10 10 <<"lib/raxol/metrics/collector.ex">>,<<"lib/raxol/metrics/visualizer.ex">>,
11 - <<"lib/raxol/ui">>,<<"lib/raxol/ui/terminal.ex">>,<<"lib/raxol/database">>,
12 - <<"lib/raxol/database/connection_manager.ex">>,<<"lib/raxol/renderer.ex">>,
13 - <<"lib/raxol/renderer">>,<<"lib/raxol/renderer/layout.ex">>,
14 - <<"lib/raxol/database.ex">>,<<"lib/raxol/session.ex">>,<<"lib/raxol/core">>,
11 + <<"lib/raxol/ui">>,<<"lib/raxol/ui/renderer.ex">>,<<"lib/raxol/ui/layout">>,
12 + <<"lib/raxol/ui/layout/containers.ex">>,<<"lib/raxol/ui/layout/grid.ex">>,
13 + <<"lib/raxol/ui/layout/table.ex">>,<<"lib/raxol/ui/layout/panels.ex">>,
14 + <<"lib/raxol/ui/layout/engine.ex">>,<<"lib/raxol/ui/terminal.ex">>,
15 + <<"lib/raxol/ui/components">>,<<"lib/raxol/ui/components/input">>,
16 + <<"lib/raxol/ui/components/input/select_list.ex">>,
17 + <<"lib/raxol/ui/components/input/text_input.ex">>,
18 + <<"lib/raxol/ui/components/input/checkbox.ex">>,
19 + <<"lib/raxol/ui/components/input/button.ex">>,
20 + <<"lib/raxol/ui/components/input/text_field.ex">>,
21 + <<"lib/raxol/ui/components/navigation">>,
22 + <<"lib/raxol/ui/components/display">>,
23 + <<"lib/raxol/ui/components/display/progress.ex">>,
24 + <<"lib/raxol/ui/components/display/table.ex">>,
25 + <<"lib/raxol/ui/components/base">>,
26 + <<"lib/raxol/ui/components/base/component.ex">>,
27 + <<"lib/raxol/ui/components/base/lifecycle.ex">>,<<"lib/raxol/ui/theming">>,
28 + <<"lib/raxol/ui/theming/selector.ex">>,<<"lib/raxol/ui/theming/theme.ex">>,
29 + <<"lib/raxol/ui/theming/colors.ex">>,<<"lib/raxol/ui/rendering">>,
30 + <<"lib/raxol/ui/rendering/pipeline.ex">>,<<"lib/raxol/database">>,
31 + <<"lib/raxol/database/connection_manager.ex">>,<<"lib/raxol/renderer">>,
32 + <<"lib/raxol/renderer/layout.ex">>,<<"lib/raxol/database.ex">>,
33 + <<"lib/raxol/session.ex">>,<<"lib/raxol/core">>,
15 34 <<"lib/raxol/core/ux_refinement.ex">>,<<"lib/raxol/core/renderer">>,
16 35 <<"lib/raxol/core/renderer/element.ex">>,
17 36 <<"lib/raxol/core/renderer/color.ex">>,
  @@ -19,17 +38,45 @@
19 38 <<"lib/raxol/core/renderer/view.ex">>,<<"lib/raxol/core/renderer/views">>,
20 39 <<"lib/raxol/core/renderer/views/chart.ex">>,
21 40 <<"lib/raxol/core/renderer/views/table.ex">>,
22 - <<"lib/raxol/core/renderer/buffer.ex">>,
23 - <<"lib/raxol/core/keyboard_shortcuts.ex">>,
41 + <<"lib/raxol/core/renderer/buffer.ex">>,<<"lib/raxol/core/preferences">>,
42 + <<"lib/raxol/core/preferences/store.ex">>,
43 + <<"lib/raxol/core/preferences/persistence.ex">>,
44 + <<"lib/raxol/core/keyboard_shortcuts.ex">>,<<"lib/raxol/core/plugins">>,
45 + <<"lib/raxol/core/plugins/core">>,
46 + <<"lib/raxol/core/plugins/core/clipboard_plugin.ex">>,
47 + <<"lib/raxol/core/plugins/core/notification_plugin.ex">>,
24 48 <<"lib/raxol/core/user_preferences.ex">>,<<"lib/raxol/core/runtime">>,
25 49 <<"lib/raxol/core/runtime/supervisor.ex">>,
50 + <<"lib/raxol/core/runtime/plugins">>,
51 + <<"lib/raxol/core/runtime/plugins/registry.ex">>,
52 + <<"lib/raxol/core/runtime/plugins/plugin_metadata_provider.ex">>,
53 + <<"lib/raxol/core/runtime/plugins/command_helper.ex">>,
54 + <<"lib/raxol/core/runtime/plugins/manager.ex">>,
55 + <<"lib/raxol/core/runtime/plugins/lifecycle_helper.ex">>,
56 + <<"lib/raxol/core/runtime/plugins/command_registry.ex">>,
57 + <<"lib/raxol/core/runtime/plugins/commands.ex">>,
58 + <<"lib/raxol/core/runtime/plugins/api.ex">>,
59 + <<"lib/raxol/core/runtime/plugins/loader.ex">>,
60 + <<"lib/raxol/core/runtime/plugins/plugin.ex">>,
26 61 <<"lib/raxol/core/runtime/event_source.ex">>,
27 62 <<"lib/raxol/core/runtime/command.ex">>,
28 63 <<"lib/raxol/core/runtime/subscription.ex">>,
29 64 <<"lib/raxol/core/runtime/component_manager.ex">>,
65 + <<"lib/raxol/core/runtime/rendering">>,
66 + <<"lib/raxol/core/runtime/rendering/scheduler.ex">>,
67 + <<"lib/raxol/core/runtime/rendering/engine.ex">>,
68 + <<"lib/raxol/core/runtime/rendering/buffer.ex">>,
30 69 <<"lib/raxol/core/runtime/application.ex">>,
70 + <<"lib/raxol/core/runtime/events">>,
71 + <<"lib/raxol/core/runtime/events/handlers.ex">>,
72 + <<"lib/raxol/core/runtime/events/converter.ex">>,
73 + <<"lib/raxol/core/runtime/events/dispatcher.ex">>,
74 + <<"lib/raxol/core/runtime/events/keyboard.ex">>,
75 + <<"lib/raxol/core/runtime/lifecycle.ex">>,
76 + <<"lib/raxol/core/runtime/debug.ex">>,<<"lib/raxol/core/id.ex">>,
31 77 <<"lib/raxol/core/focus_manager.ex">>,<<"lib/raxol/core/accessibility.ex">>,
32 - <<"lib/raxol/core/keyboard_navigator.ex">>,<<"lib/raxol/core/events">>,
78 + <<"lib/raxol/core/keyboard_navigator.ex">>,
79 + <<"lib/raxol/core/color_system.ex">>,<<"lib/raxol/core/events">>,
33 80 <<"lib/raxol/core/events/termbox_converter.ex">>,
34 81 <<"lib/raxol/core/events/event.ex">>,
35 82 <<"lib/raxol/core/events/subscription.ex">>,
  @@ -54,10 +101,16 @@
54 101 <<"lib/raxol/test/performance">>,
55 102 <<"lib/raxol/test/performance/assertions.ex">>,<<"lib/raxol/test/unit.ex">>,
56 103 <<"lib/raxol/test/button_helpers.ex">>,<<"lib/raxol/test/visual.ex">>,
57 - <<"lib/raxol/runtime.ex">>,<<"lib/raxol/auth">>,
58 - <<"lib/raxol/auth/role.ex">>,<<"lib/raxol/auth/user.ex">>,
59 - <<"lib/raxol/auth/permission.ex">>,<<"lib/raxol/auth/plug.ex">>,
60 - <<"lib/raxol/plugins">>,<<"lib/raxol/plugins/search_plugin.ex">>,
104 + <<"lib/raxol/auth">>,<<"lib/raxol/auth/role.ex">>,
105 + <<"lib/raxol/auth/user.ex">>,<<"lib/raxol/auth/permission.ex">>,
106 + <<"lib/raxol/auth/plug.ex">>,<<"lib/raxol/plugins">>,
107 + <<"lib/raxol/plugins/visualization">>,
108 + <<"lib/raxol/plugins/visualization/treemap_renderer.ex">>,
109 + <<"lib/raxol/plugins/visualization/chart_renderer.ex">>,
110 + <<"lib/raxol/plugins/visualization/image_renderer.ex">>,
111 + <<"lib/raxol/plugins/visualization/drawing_utils.ex">>,
112 + <<"lib/raxol/plugins/core">>,<<"lib/raxol/plugins/core/.keep">>,
113 + <<"lib/raxol/plugins/search_plugin.ex">>,
61 114 <<"lib/raxol/plugins/visualization_plugin.ex">>,
62 115 <<"lib/raxol/plugins/clipboard_plugin.ex">>,
63 116 <<"lib/raxol/plugins/theme_plugin.ex">>,
  @@ -68,8 +121,6 @@
68 121 <<"lib/raxol/plugins/plugin_config.ex">>,
69 122 <<"lib/raxol/plugins/plugin_dependency.ex">>,
70 123 <<"lib/raxol/plugins/plugin.ex">>,<<"lib/raxol/auth.ex">>,
71 - <<"lib/raxol/shell">>,<<"lib/raxol/shell/filters">>,
72 - <<"lib/raxol/shell/indicators">>,<<"lib/raxol/shell/prompts">>,
73 124 <<"lib/raxol/web">>,<<"lib/raxol/web/supervisor.ex">>,
74 125 <<"lib/raxol/web/auth">>,<<"lib/raxol/web/auth/manager.ex">>,
75 126 <<"lib/raxol/web/manager.ex">>,<<"lib/raxol/web/session">>,
  @@ -80,7 +131,7 @@
80 131 <<"lib/raxol/web/session/manager.ex">>,
81 132 <<"lib/raxol/web/session/storage.ex">>,<<"lib/raxol/recording">>,
82 133 <<"lib/raxol/recording/capture">>,<<"lib/raxol/recording/playback">>,
83 - <<"lib/raxol/event.ex">>,<<"lib/raxol/metrics.ex">>,<<"lib/raxol/runtime">>,
134 + <<"lib/raxol/metrics.ex">>,<<"lib/raxol/runtime">>,
84 135 <<"lib/raxol/runtime/supervisor.ex">>,<<"lib/raxol/animation">>,
85 136 <<"lib/raxol/animation/easing.ex">>,<<"lib/raxol/animation/easing">>,
86 137 <<"lib/raxol/animation/framework.ex">>,<<"lib/raxol/animation/physics">>,
  @@ -90,13 +141,27 @@
90 141 <<"lib/raxol/animation/gestures.ex">>,<<"lib/raxol/terminal">>,
91 142 <<"lib/raxol/terminal/cell.ex">>,<<"lib/raxol/terminal/supervisor.ex">>,
92 143 <<"lib/raxol/terminal/registry.ex">>,<<"lib/raxol/terminal/renderer.ex">>,
144 + <<"lib/raxol/terminal/constants.ex">>,
93 145 <<"lib/raxol/terminal/command_executor.ex">>,
94 146 <<"lib/raxol/terminal/.credo.exs">>,<<"lib/raxol/terminal/session.ex">>,
95 147 <<"lib/raxol/terminal/modes.ex">>,<<"lib/raxol/terminal/cursor">>,
96 148 <<"lib/raxol/terminal/cursor/movement.ex">>,
97 149 <<"lib/raxol/terminal/cursor/style.ex">>,
98 150 <<"lib/raxol/terminal/cursor/README.md">>,
99 - <<"lib/raxol/terminal/cursor/manager.ex">>,<<"lib/raxol/terminal/input">>,
151 + <<"lib/raxol/terminal/cursor/manager.ex">>,
152 + <<"lib/raxol/terminal/character_sets">>,
153 + <<"lib/raxol/terminal/character_sets/translator.ex">>,
154 + <<"lib/raxol/terminal/config">>,
155 + <<"lib/raxol/terminal/config/persistence.ex">>,
156 + <<"lib/raxol/terminal/config/README.md">>,
157 + <<"lib/raxol/terminal/config/animation_cache.ex">>,
158 + <<"lib/raxol/terminal/config/profiles.ex">>,
159 + <<"lib/raxol/terminal/config/schema.ex">>,
160 + <<"lib/raxol/terminal/config/validation.ex">>,
161 + <<"lib/raxol/terminal/config/application.ex">>,
162 + <<"lib/raxol/terminal/config/utils.ex">>,
163 + <<"lib/raxol/terminal/config/capabilities.ex">>,
164 + <<"lib/raxol/terminal/config/defaults.ex">>,<<"lib/raxol/terminal/input">>,
100 165 <<"lib/raxol/terminal/input/input_buffer_utils.ex">>,
101 166 <<"lib/raxol/terminal/input/types.ex">>,
102 167 <<"lib/raxol/terminal/input/input_handler.ex">>,
  @@ -105,39 +170,74 @@
105 170 <<"lib/raxol/terminal/configuration.ex">>,<<"lib/raxol/terminal/ansi">>,
106 171 <<"lib/raxol/terminal/ansi/sixel_graphics.ex">>,
107 172 <<"lib/raxol/terminal/ansi/processor.ex">>,
173 + <<"lib/raxol/terminal/ansi/sixel_palette.ex">>,
108 174 <<"lib/raxol/terminal/ansi/terminal_state.ex">>,
109 175 <<"lib/raxol/terminal/ansi/mouse_events.ex">>,
110 176 <<"lib/raxol/terminal/ansi/character_translations.ex">>,
111 177 <<"lib/raxol/terminal/ansi/screen_modes.ex">>,
178 + <<"lib/raxol/terminal/ansi/emitter.ex">>,
112 179 <<"lib/raxol/terminal/ansi/text_formatting.ex">>,
180 + <<"lib/raxol/terminal/ansi/sequences">>,
181 + <<"lib/raxol/terminal/ansi/sequences/modes.ex">>,
182 + <<"lib/raxol/terminal/ansi/sequences/colors.ex">>,
183 + <<"lib/raxol/terminal/ansi/sequences/cursor.ex">>,
113 184 <<"lib/raxol/terminal/ansi/sequence_parser.ex">>,
185 + <<"lib/raxol/terminal/ansi/sixel_pattern_map.ex">>,
114 186 <<"lib/raxol/terminal/ansi/character_sets.ex">>,
115 187 <<"lib/raxol/terminal/ansi/window_manipulation.ex">>,
188 + <<"lib/raxol/terminal/ansi/parser.ex">>,
116 189 <<"lib/raxol/terminal/ansi/device_status.ex">>,
117 190 <<"lib/raxol/terminal/terminal_utils.ex">>,
191 + <<"lib/raxol/terminal/config.ex">>,
192 + <<"lib/raxol/terminal/memory_manager.ex">>,
118 193 <<"lib/raxol/terminal/escape_sequence.ex">>,
119 - <<"lib/raxol/terminal/emulator.ex">>,<<"lib/raxol/terminal/README.md">>,
194 + <<"lib/raxol/terminal/emulator.ex">>,<<"lib/raxol/terminal/parser">>,
195 + <<"lib/raxol/terminal/parser/states">>,
196 + <<"lib/raxol/terminal/parser/states/csi_entry_state.ex">>,
197 + <<"lib/raxol/terminal/parser/states/designate_charset_state.ex">>,
198 + <<"lib/raxol/terminal/parser/states/osc_string_maybe_st_state.ex">>,
199 + <<"lib/raxol/terminal/parser/states/ground_state.ex">>,
200 + <<"lib/raxol/terminal/parser/states/csi_intermediate_state.ex">>,
201 + <<"lib/raxol/terminal/parser/states/osc_string_state.ex">>,
202 + <<"lib/raxol/terminal/parser/states/csi_param_state.ex">>,
203 + <<"lib/raxol/terminal/parser/states/escape_state.ex">>,
204 + <<"lib/raxol/terminal/parser/states/dcs_passthrough_maybe_st_state.ex">>,
205 + <<"lib/raxol/terminal/parser/states/dcs_passthrough_state.ex">>,
206 + <<"lib/raxol/terminal/parser/states/dcs_entry_state.ex">>,
207 + <<"lib/raxol/terminal/ansi_facade.ex">>,<<"lib/raxol/terminal/README.md">>,
120 208 <<"lib/raxol/terminal/screen_modes.ex">>,
121 209 <<"lib/raxol/terminal/control_codes.ex">>,
122 210 <<"lib/raxol/terminal/input_handler.ex">>,<<"lib/raxol/terminal/ansi.ex">>,
123 - <<"lib/raxol/terminal/clipboard.ex">>,<<"lib/raxol/terminal/manager.ex">>,
124 - <<"lib/raxol/terminal/command_history.ex">>,
211 + <<"lib/raxol/terminal/driver.ex">>,<<"lib/raxol/terminal/clipboard.ex">>,
212 + <<"lib/raxol/terminal/manager.ex">>,
125 213 <<"lib/raxol/terminal/text_formatting.ex">>,
214 + <<"lib/raxol/terminal/commands.ex">>,
126 215 <<"lib/raxol/terminal/character_sets.ex">>,<<"lib/raxol/terminal/display">>,
127 216 <<"lib/raxol/terminal/display/ascii_art.ex">>,
217 + <<"lib/raxol/terminal/commands">>,
218 + <<"lib/raxol/terminal/commands/modes.ex">>,
219 + <<"lib/raxol/terminal/commands/screen.ex">>,
220 + <<"lib/raxol/terminal/commands/README.md">>,
221 + <<"lib/raxol/terminal/commands/history.ex">>,
222 + <<"lib/raxol/terminal/commands/executor.ex">>,
223 + <<"lib/raxol/terminal/commands/parser.ex">>,
224 + <<"lib/raxol/terminal/commands/REFACTORING.md">>,
128 225 <<"lib/raxol/terminal/integration.ex">>,<<"lib/raxol/terminal/parser.ex">>,
129 226 <<"lib/raxol/terminal/input.ex">>,
130 227 <<"lib/raxol/terminal/character_handling.ex">>,
131 228 <<"lib/raxol/terminal/screen_buffer.ex">>,<<"lib/raxol/terminal/buffer">>,
132 229 <<"lib/raxol/terminal/buffer/scroll.ex">>,
133 230 <<"lib/raxol/terminal/buffer/README.md">>,
134 - <<"lib/raxol/terminal/buffer/manager.ex">>,<<"lib/raxol/runtime_debug.ex">>,
135 - <<"lib/raxol/style">>,<<"lib/raxol/style/layout.ex">>,
136 - <<"lib/raxol/style/borders.ex">>,<<"lib/raxol/style/borders">>,
137 - <<"lib/raxol/style/layout">>,<<"lib/raxol/style/style.ex">>,
138 - <<"lib/raxol/style/theme.ex">>,<<"lib/raxol/style/colors">>,
139 - <<"lib/raxol/style/colors/gradient.ex">>,
140 - <<"lib/raxol/style/colors/palette.ex">>,
231 + <<"lib/raxol/terminal/buffer/selection.ex">>,
232 + <<"lib/raxol/terminal/buffer/manager.ex">>,
233 + <<"lib/raxol/terminal/buffer/damage_tracker.ex">>,
234 + <<"lib/raxol/terminal/buffer/operations.ex">>,
235 + <<"lib/raxol/terminal/buffer/scrollback.ex">>,<<"lib/raxol/style">>,
236 + <<"lib/raxol/style/layout.ex">>,<<"lib/raxol/style/borders.ex">>,
237 + <<"lib/raxol/style/borders">>,<<"lib/raxol/style/layout">>,
238 + <<"lib/raxol/style/style.ex">>,<<"lib/raxol/style/theme.ex">>,
239 + <<"lib/raxol/style/colors">>,<<"lib/raxol/style/colors/gradient.ex">>,
240 + <<"lib/raxol/style/colors/palette.ex">>,<<"lib/raxol/style/colors/hsl.ex">>,
141 241 <<"lib/raxol/style/colors/advanced.ex">>,
142 242 <<"lib/raxol/style/colors/palette_manager.ex">>,
143 243 <<"lib/raxol/style/colors/system.ex">>,
  @@ -146,13 +246,12 @@
146 246 <<"lib/raxol/style/colors/accessibility.ex">>,
147 247 <<"lib/raxol/style/colors/utilities.ex">>,
148 248 <<"lib/raxol/style/colors/hot_reload.ex">>,
149 - <<"lib/raxol/style/colors/adaptive.ex">>,<<"lib/raxol/docs">>,
249 + <<"lib/raxol/style/colors/adaptive.ex">>,
250 + <<"lib/raxol/style/colors/harmony.ex">>,<<"lib/raxol/docs">>,
150 251 <<"lib/raxol/docs/interactive_tutorial.ex">>,
151 252 <<"lib/raxol/docs/component_catalog.ex">>,<<"lib/raxol/cli">>,
152 253 <<"lib/raxol/cli/commands">>,<<"lib/raxol/cli/commands/update_cmd.ex">>,
153 - <<"lib/raxol/cloud.ex">>,<<"lib/raxol/accounts.ex">>,
154 - <<"lib/raxol/theme.ex">>,<<"lib/raxol/accessibility.ex">>,
155 - <<"lib/raxol/components.ex">>,<<"lib/raxol/system">>,
254 + <<"lib/raxol/cloud.ex">>,<<"lib/raxol/accounts.ex">>,<<"lib/raxol/system">>,
156 255 <<"lib/raxol/system/updater.ex">>,<<"lib/raxol/system/delta_updater.ex">>,
157 256 <<"lib/raxol/system/platform.ex">>,
158 257 <<"lib/raxol/system/terminal_platform.ex">>,<<"lib/raxol/components">>,
  @@ -163,12 +262,19 @@
163 262 <<"lib/raxol/components/input/text_input.ex">>,
164 263 <<"lib/raxol/components/input/multi_line_input.ex">>,
165 264 <<"lib/raxol/components/input/text_wrapping.ex">>,
265 + <<"lib/raxol/components/input/multi_line_input">>,
266 + <<"lib/raxol/components/input/multi_line_input/clipboard_helper.ex">>,
267 + <<"lib/raxol/components/input/multi_line_input/event_handler.ex">>,
268 + <<"lib/raxol/components/input/multi_line_input/text_helper.ex">>,
269 + <<"lib/raxol/components/input/multi_line_input/navigation_helper.ex">>,
270 + <<"lib/raxol/components/input/multi_line_input/render_helper.ex">>,
166 271 <<"lib/raxol/components/input/single_line_input.ex">>,
167 272 <<"lib/raxol/components/text_input.ex">>,
168 273 <<"lib/raxol/components/navigation">>,<<"lib/raxol/components/terminal">>,
169 274 <<"lib/raxol/components/terminal/emulator.ex">>,
170 275 <<"lib/raxol/components/terminal.ex">>,
171 276 <<"lib/raxol/components/progress.ex">>,<<"lib/raxol/components/dashboard">>,
277 + <<"lib/raxol/components/dashboard/layout_persistence.ex">>,
172 278 <<"lib/raxol/components/dashboard/widget_container.ex">>,
173 279 <<"lib/raxol/components/dashboard/grid_container.ex">>,
174 280 <<"lib/raxol/components/dashboard/dashboard.ex">>,
  @@ -184,31 +290,40 @@
184 290 <<"lib/raxol/components/focus_ring.ex">>,
185 291 <<"lib/raxol/components/button.ex">>,
186 292 <<"lib/raxol/components/hint_display.ex">>,
187 - <<"lib/raxol/components/modal.ex">>,<<"lib/raxol/component.ex">>,
188 - <<"lib/raxol/accounts">>,<<"lib/raxol/ai">>,
189 - <<"lib/raxol/ai/performance_optimization.ex">>,
293 + <<"lib/raxol/components/modal.ex">>,<<"lib/raxol/accounts">>,
294 + <<"lib/raxol/ai">>,<<"lib/raxol/ai/performance_optimization.ex">>,
190 295 <<"lib/raxol/ai/content_generation.ex">>,<<"lib/raxol/examples">>,
191 296 <<"lib/raxol/examples/keyboard_shortcuts_demo.ex">>,
192 297 <<"lib/raxol/examples/ux_refinement_demo.ex">>,
193 298 <<"lib/raxol/examples/color_system_demo.ex">>,
194 299 <<"lib/raxol/examples/accessibility_demo.ex">>,
195 - <<"lib/raxol/examples/button.ex">>,<<"lib/raxol/examples/form.ex">>,
300 + <<"lib/raxol/examples/table_demo.ex">>,<<"lib/raxol/examples/button.ex">>,
301 + <<"lib/raxol/examples/form.ex">>,
196 302 <<"lib/raxol/examples/integrated_accessibility_demo.ex">>,
197 303 <<"lib/raxol/benchmarks">>,
198 304 <<"lib/raxol/benchmarks/visualization_benchmark_realistic.ex">>,
199 305 <<"lib/raxol/benchmarks/performance.ex">>,
200 306 <<"lib/raxol/benchmarks/visualization_benchmark_simple.ex">>,
307 + <<"lib/raxol/benchmarks/performance">>,
308 + <<"lib/raxol/benchmarks/performance/event_handling.ex">>,
309 + <<"lib/raxol/benchmarks/performance/rendering.ex">>,
310 + <<"lib/raxol/benchmarks/performance/reporting.ex">>,
311 + <<"lib/raxol/benchmarks/performance/validation.ex">>,
312 + <<"lib/raxol/benchmarks/performance/memory_usage.ex">>,
313 + <<"lib/raxol/benchmarks/performance/animation.ex">>,
201 314 <<"lib/raxol/benchmarks/visualization_benchmark.ex">>,<<"lib/raxol/cloud">>,
202 315 <<"lib/raxol/cloud/monitoring.ex">>,<<"lib/raxol/cloud/core.ex">>,
203 316 <<"lib/raxol/cloud/state_manager.ex">>,<<"lib/raxol/cloud/config.ex">>,
204 317 <<"lib/raxol/cloud/README.md">>,<<"lib/raxol/cloud/integrations.ex">>,
205 - <<"lib/raxol/cloud/edge_computing.ex">>,<<"lib/raxol/focus.ex">>,
206 - <<"lib/raxol/view">>,<<"lib/raxol/view/layout.ex">>,
207 - <<"lib/raxol/view/elements.ex">>,<<"lib/raxol/view/components.ex">>,
208 - <<"lib/raxol/stdio_interface.ex">>,<<"lib/raxol/application.ex">>,
209 - <<"lib/raxol/view.ex">>,<<"lib/raxol/theme_config.ex">>,
210 - <<"lib/raxol/repo.ex">>,<<"lib/raxol/my_app.ex">>,<<"lib/raxol/app.ex">>,
211 - <<"lib/raxol/plugin.ex">>,<<"lib/mix">>,<<"lib/mix/tasks">>,
318 + <<"lib/raxol/cloud/edge_computing.ex">>,<<"lib/raxol/cloud/monitoring">>,
319 + <<"lib/raxol/cloud/monitoring/health.ex">>,
320 + <<"lib/raxol/cloud/monitoring/alerts.ex">>,
321 + <<"lib/raxol/cloud/monitoring/metrics.ex">>,
322 + <<"lib/raxol/cloud/monitoring/errors.ex">>,
323 + <<"lib/raxol/dynamic_supervisor.ex">>,<<"lib/raxol/view">>,
324 + <<"lib/raxol/view/layout.ex">>,<<"lib/raxol/view/elements.ex">>,
325 + <<"lib/raxol/view/components.ex">>,<<"lib/raxol/application.ex">>,
326 + <<"lib/raxol/repo.ex">>,<<"lib/mix">>,<<"lib/mix/tasks">>,
212 327 <<"lib/mix/tasks/benchmark.visualization.ex">>,<<"lib/raxol.ex">>,
213 328 <<"lib/raxol_web">>,<<"lib/raxol_web/telemetry.ex">>,
214 329 <<"lib/raxol_web/user_auth.ex">>,<<"lib/raxol_web/gettext.ex">>,
  @@ -242,13 +357,14 @@
242 357 <<"lib/raxol_web/channels">>,
243 358 <<"lib/raxol_web/channels/terminal_channel.ex">>,<<"lib/raxol_web.ex">>,
244 359 <<"priv/themes">>,<<"priv/themes/Standard.json">>,<<".formatter.exs">>,
245 - <<"mix.exs">>,<<"README.md">>,<<"LICENSE.md">>,<<"CHANGELOG.md">>]}.
360 + <<"mix.exs">>,<<"README.md">>,<<"LICENSE.md">>,
361 + <<"docs/development/changes/CHANGELOG.md">>]}.
246 362 {<<"licenses">>,[<<"MIT">>]}.
247 363 {<<"requirements">>,
248 364 [[{<<"name">>,<<"rrex_termbox">>},
249 365 {<<"app">>,<<"rrex_termbox">>},
250 366 {<<"optional">>,false},
251 - {<<"requirement">>,<<"~> 1.0.3">>},
367 + {<<"requirement">>,<<"~> 2.0.1">>},
252 368 {<<"repository">>,<<"hexpm">>}],
253 369 [{<<"name">>,<<"phoenix">>},
254 370 {<<"app">>,<<"phoenix">>},
  @@ -315,6 +431,16 @@
315 431 {<<"optional">>,false},
316 432 {<<"requirement">>,<<"~> 1.0">>},
317 433 {<<"repository">>,<<"hexpm">>}],
434 + [{<<"name">>,<<"clipboard">>},
435 + {<<"app">>,<<"clipboard">>},
436 + {<<"optional">>,false},
437 + {<<"requirement">>,<<"~> 0.2.1">>},
438 + {<<"repository">>,<<"hexpm">>}],
439 + [{<<"name">>,<<"circular_buffer">>},
440 + {<<"app">>,<<"circular_buffer">>},
441 + {<<"optional">>,false},
442 + {<<"requirement">>,<<"~> 0.2">>},
443 + {<<"repository">>,<<"hexpm">>}],
318 444 [{<<"name">>,<<"esbuild">>},
319 445 {<<"app">>,<<"esbuild">>},
320 446 {<<"optional">>,false},
  @@ -61,10 +61,10 @@ defmodule Mix.Tasks.Benchmark.Visualization do
61 61 {[10, 100, 500, 1000], 5, "Medium Test"}
62 62
63 63 :large ->
64 - {[10, 100, 1000, 5000, 10000], 3, "Large Test"}
64 + {[10, 100, 1000, 5000, 10_000], 3, "Large Test"}
65 65
66 66 :production ->
67 - {[10, 100, 1000, 5000, 10000, 50000], 10, "Production Benchmark"}
67 + {[10, 100, 1000, 5000, 10_000, 50_000], 10, "Production Benchmark"}
68 68 end
69 69
70 70 # Set output directory
Loading more files…