From 95029184e77258fdf678b0e6c759e68bd2039854 Mon Sep 17 00:00:00 2001 From: phranck Date: Fri, 30 Jan 2026 20:29:29 +0100 Subject: [PATCH] Chore: Rename TUIKit to TUIkit - Rename module, targets and products in Package.swift - Rename directories: Sources/TUIkit, TUIkitExample, Tests/TUIkitTests - Rename files: TUIkit.swift, TUIkit.docc/TUIkit.md - Update all import statements, module-qualified calls, file headers - Update doc comments, string literals and DocC articles - Update CI workflow, README, .swiftlint.yml and markdown docs - Merge platform badges into single combined badge in README - Add "Example App auslagern" task to to-dos.md --- .github/assets/github-banner.png | Bin 0 -> 254167 bytes .github/workflows/ci.yml | 4 +-- .swiftlint.yml | 2 +- LANDING_PAGE_ASSETS.md | 22 ++++++------- Package.swift | 20 +++++------ README.md | 31 +++++++++--------- Sources/{TUIKit => TUIkit}/App/App.swift | 8 ++--- .../{TUIKit => TUIkit}/App/InputHandler.swift | 2 +- .../{TUIKit => TUIkit}/App/RenderLoop.swift | 2 +- Sources/{TUIKit => TUIkit}/App/Scene.swift | 6 ++-- .../App/SignalManager.swift | 2 +- .../App/StatusBarState.swift | 2 +- .../{TUIKit => TUIkit}/Core/AppStorage.swift | 4 +-- .../{TUIKit => TUIkit}/Core/Appearance.swift | 2 +- .../{TUIKit => TUIkit}/Core/BorderStyle.swift | 2 +- Sources/{TUIKit => TUIkit}/Core/Color.swift | 4 +-- .../{TUIKit => TUIkit}/Core/Environment.swift | 4 +-- Sources/{TUIKit => TUIkit}/Core/Focus.swift | 2 +- .../{TUIKit => TUIkit}/Core/KeyEvent.swift | 4 +-- .../{TUIKit => TUIkit}/Core/Preferences.swift | 6 ++-- .../Core/PrimitiveViews.swift | 2 +- Sources/{TUIKit => TUIkit}/Core/State.swift | 6 ++-- .../{TUIKit => TUIkit}/Core/TUIContext.swift | 6 ++-- Sources/{TUIKit => TUIkit}/Core/Theme.swift | 6 ++-- .../Core/ThemeManager.swift | 4 +-- .../{TUIKit => TUIkit}/Core/TupleViews.swift | 2 +- .../Core/UserDefaultsStorage.swift | 2 +- Sources/{TUIKit => TUIkit}/Core/View.swift | 12 +++---- .../{TUIKit => TUIkit}/Core/ViewBuilder.swift | 2 +- .../Core/ViewModifier.swift | 4 +-- .../PrimitiveTypes+Extensions.swift | 4 +-- .../Extensions/String+ANSI.swift | 2 +- .../Extensions/View+Convenience.swift | 2 +- .../Extensions/View+Environment.swift | 2 +- .../Extensions/View+Events.swift | 2 +- .../Extensions/View+Layout.swift | 2 +- .../Extensions/View+Modifier.swift | 2 +- .../Extensions/View+Preferences.swift | 2 +- .../Modifiers/BackgroundModifier.swift | 2 +- .../Modifiers/BorderModifier.swift | 4 +-- .../Modifiers/DimmedModifier.swift | 4 +-- .../Modifiers/FrameModifier.swift | 4 +-- .../Modifiers/KeyPressModifier.swift | 4 +-- .../Modifiers/LifecycleModifier.swift | 8 ++--- .../Modifiers/OverlayModifier.swift | 6 ++-- .../Modifiers/PaddingModifier.swift | 2 +- .../Modifiers/StatusBarItemsModifier.swift | 4 +-- .../Rendering/ANSIRenderer.swift | 2 +- .../Rendering/BorderRenderer.swift | 2 +- .../Rendering/FrameBuffer.swift | 2 +- .../Rendering/Renderable.swift | 6 ++-- .../Rendering/Terminal.swift | 2 +- .../Rendering/ViewRenderer.swift | 6 ++-- .../TUIkit.docc}/Articles/Architecture.md | 6 ++-- .../TUIkit.docc}/Articles/GettingStarted.md | 20 +++++------ .../TUIkit.docc}/Articles/StateManagement.md | 6 ++-- .../TUIkit.docc}/Articles/ThemingGuide.md | 4 +-- .../TUIkit.docc/TUIkit.md} | 8 ++--- .../TUIKit.swift => TUIkit/TUIkit.swift} | 10 +++--- Sources/{TUIKit => TUIkit}/Views/Alert.swift | 2 +- Sources/{TUIKit => TUIkit}/Views/Box.swift | 2 +- Sources/{TUIKit => TUIkit}/Views/Button.swift | 4 +-- Sources/{TUIKit => TUIkit}/Views/Card.swift | 2 +- .../Views/ContainerView.swift | 6 ++-- Sources/{TUIKit => TUIkit}/Views/Dialog.swift | 2 +- .../{TUIKit => TUIkit}/Views/ForEach.swift | 2 +- Sources/{TUIKit => TUIkit}/Views/Menu.swift | 4 +-- Sources/{TUIKit => TUIkit}/Views/Panel.swift | 2 +- Sources/{TUIKit => TUIkit}/Views/Spacer.swift | 2 +- Sources/{TUIKit => TUIkit}/Views/Stacks.swift | 2 +- .../{TUIKit => TUIkit}/Views/StatusBar.swift | 2 +- Sources/{TUIKit => TUIkit}/Views/Text.swift | 4 +-- .../AppState.swift | 4 +-- .../Components/DemoSection.swift | 4 +-- .../Components/HeaderView.swift | 6 ++-- .../ContentView.swift | 4 +-- .../Pages/ButtonsPage.swift | 4 +-- .../Pages/ColorsPage.swift | 4 +-- .../Pages/ContainersPage.swift | 4 +-- .../Pages/LayoutPage.swift | 4 +-- .../Pages/MainMenuPage.swift | 6 ++-- .../Pages/OverlaysPage.swift | 4 +-- .../Pages/TextStylesPage.swift | 4 +-- .../main.swift | 8 ++--- .../AppearanceTests.swift | 4 +-- .../ButtonTests.swift | 4 +-- .../ColorTests.swift | 4 +-- .../ContainerViewTests.swift | 4 +-- .../FocusTests.swift | 4 +-- .../FrameBufferTests.swift | 4 +-- .../RenderingTests.swift | 4 +-- .../StatusBarTests.swift | 4 +-- .../TViewTests.swift | 4 +-- papers/project_analysis.md | 10 +++--- 94 files changed, 221 insertions(+), 222 deletions(-) create mode 100644 .github/assets/github-banner.png rename Sources/{TUIKit => TUIkit}/App/App.swift (97%) rename Sources/{TUIKit => TUIkit}/App/InputHandler.swift (99%) rename Sources/{TUIKit => TUIkit}/App/RenderLoop.swift (99%) rename Sources/{TUIKit => TUIkit}/App/Scene.swift (91%) rename Sources/{TUIKit => TUIkit}/App/SignalManager.swift (99%) rename Sources/{TUIKit => TUIkit}/App/StatusBarState.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/AppStorage.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/Appearance.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/BorderStyle.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/Color.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/Environment.swift (98%) rename Sources/{TUIKit => TUIkit}/Core/Focus.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/KeyEvent.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/Preferences.swift (98%) rename Sources/{TUIKit => TUIkit}/Core/PrimitiveViews.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/State.swift (97%) rename Sources/{TUIKit => TUIkit}/Core/TUIContext.swift (98%) rename Sources/{TUIKit => TUIkit}/Core/Theme.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/ThemeManager.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/TupleViews.swift (98%) rename Sources/{TUIKit => TUIkit}/Core/UserDefaultsStorage.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/View.swift (88%) rename Sources/{TUIKit => TUIkit}/Core/ViewBuilder.swift (99%) rename Sources/{TUIKit => TUIkit}/Core/ViewModifier.swift (96%) rename Sources/{TUIKit => TUIkit}/Extensions/PrimitiveTypes+Extensions.swift (93%) rename Sources/{TUIKit => TUIkit}/Extensions/String+ANSI.swift (98%) rename Sources/{TUIKit => TUIkit}/Extensions/View+Convenience.swift (99%) rename Sources/{TUIKit => TUIkit}/Extensions/View+Environment.swift (99%) rename Sources/{TUIKit => TUIkit}/Extensions/View+Events.swift (99%) rename Sources/{TUIKit => TUIkit}/Extensions/View+Layout.swift (99%) rename Sources/{TUIKit => TUIkit}/Extensions/View+Modifier.swift (97%) rename Sources/{TUIKit => TUIkit}/Extensions/View+Preferences.swift (99%) rename Sources/{TUIKit => TUIkit}/Modifiers/BackgroundModifier.swift (99%) rename Sources/{TUIKit => TUIkit}/Modifiers/BorderModifier.swift (97%) rename Sources/{TUIKit => TUIkit}/Modifiers/DimmedModifier.swift (95%) rename Sources/{TUIKit => TUIkit}/Modifiers/FrameModifier.swift (98%) rename Sources/{TUIKit => TUIkit}/Modifiers/KeyPressModifier.swift (94%) rename Sources/{TUIKit => TUIkit}/Modifiers/LifecycleModifier.swift (97%) rename Sources/{TUIKit => TUIkit}/Modifiers/OverlayModifier.swift (94%) rename Sources/{TUIKit => TUIkit}/Modifiers/PaddingModifier.swift (99%) rename Sources/{TUIKit => TUIkit}/Modifiers/StatusBarItemsModifier.swift (96%) rename Sources/{TUIKit => TUIkit}/Rendering/ANSIRenderer.swift (99%) rename Sources/{TUIKit => TUIkit}/Rendering/BorderRenderer.swift (99%) rename Sources/{TUIKit => TUIkit}/Rendering/FrameBuffer.swift (99%) rename Sources/{TUIKit => TUIkit}/Rendering/Renderable.swift (98%) rename Sources/{TUIKit => TUIkit}/Rendering/Terminal.swift (99%) rename Sources/{TUIKit => TUIkit}/Rendering/ViewRenderer.swift (98%) rename Sources/{TUIKit/TUIKit.docc => TUIkit/TUIkit.docc}/Articles/Architecture.md (94%) rename Sources/{TUIKit/TUIKit.docc => TUIkit/TUIkit.docc}/Articles/GettingStarted.md (81%) rename Sources/{TUIKit/TUIKit.docc => TUIkit/TUIkit.docc}/Articles/StateManagement.md (92%) rename Sources/{TUIKit/TUIKit.docc => TUIkit/TUIkit.docc}/Articles/ThemingGuide.md (95%) rename Sources/{TUIKit/TUIKit.docc/TUIKit.md => TUIkit/TUIkit.docc/TUIkit.md} (94%) rename Sources/{TUIKit/TUIKit.swift => TUIkit/TUIkit.swift} (86%) rename Sources/{TUIKit => TUIkit}/Views/Alert.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Box.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Button.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Card.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/ContainerView.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Dialog.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/ForEach.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Menu.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Panel.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Spacer.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Stacks.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/StatusBar.swift (99%) rename Sources/{TUIKit => TUIkit}/Views/Text.swift (98%) rename Sources/{TUIKitExample => TUIkitExample}/AppState.swift (97%) rename Sources/{TUIKitExample => TUIkitExample}/Components/DemoSection.swift (96%) rename Sources/{TUIKitExample => TUIkitExample}/Components/HeaderView.swift (93%) rename Sources/{TUIKitExample => TUIkitExample}/ContentView.swift (98%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/ButtonsPage.swift (98%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/ColorsPage.swift (98%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/ContainersPage.swift (99%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/LayoutPage.swift (98%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/MainMenuPage.swift (97%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/OverlaysPage.swift (98%) rename Sources/{TUIKitExample => TUIkitExample}/Pages/TextStylesPage.swift (97%) rename Sources/{TUIKitExample => TUIkitExample}/main.swift (66%) rename Tests/{TUIKitTests => TUIkitTests}/AppearanceTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/ButtonTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/ColorTests.swift (98%) rename Tests/{TUIKitTests => TUIkitTests}/ContainerViewTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/FocusTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/FrameBufferTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/RenderingTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/StatusBarTests.swift (99%) rename Tests/{TUIKitTests => TUIkitTests}/TViewTests.swift (99%) diff --git a/.github/assets/github-banner.png b/.github/assets/github-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..2f612559919b2379697e37517b5bf482df60533d GIT binary patch literal 254167 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

{^LimSX*(77M*Gh%eD?fpcr4sY+Sd=_1 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

-4RMN21W%WqSWSusn1AnorxZhJeC%O!eO!n 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

36TD9jq&n?@mqs+&{Cbg0!ng$ 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%0AA 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 e<9=S*t*`Z~oXcf - Redirecting to TUIKit Documentation... + Redirecting to TUIkit Documentation... HTMLEOF diff --git a/.swiftlint.yml b/.swiftlint.yml index 3e42586..9436ad4 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,4 +1,4 @@ -# SwiftLint Configuration for TUIKit +# SwiftLint Configuration for TUIkit # Only lint project sources (not build artifacts or dependencies) included: diff --git a/LANDING_PAGE_ASSETS.md b/LANDING_PAGE_ASSETS.md index 07a3147..72dd97b 100644 --- a/LANDING_PAGE_ASSETS.md +++ b/LANDING_PAGE_ASSETS.md @@ -17,23 +17,23 @@ - **Aspect Ratio**: 16:9 (landscape) - **Recommended Size**: 1000×560px or larger (up to 2000px width for retina) - **Format**: PNG, JPG, or WebP (lossless recommended) -- **Content**: Screenshot/demo of TUIKit in action +- **Content**: Screenshot/demo of TUIkit in action - Terminal UI showing an interactive application - - Nice visualization of TUIKit components + - Nice visualization of TUIkit components - Colors: Green (#10b981), dark background (#030712) - Examples: Menu selection, modal dialogs, text input, etc. **HTML Location**: `docs/index.html` - Line ~555-591 ```html
- + ...
``` **Placeholder Preview**: - Terminal window with green border -- Shows TUIKit menu example +- Shows TUIkit menu example - Command: `$ swift run MyApp` - Interactive menu selection @@ -48,8 +48,8 @@ - **Aspect Ratio**: 16:9 or Square (1:1) - **Recommended Size**: 600×400px (or 600×600px) - **Format**: PNG, JPG, or WebP -- **Content**: Professional screenshot of TUIKit features - - Shows real TUIKit app with actual components +- **Content**: Professional screenshot of TUIkit features + - Shows real TUIkit app with actual components - Terminal UI showcase with multiple features - Examples of: Menu, Button, Text, Panel, Dialog, etc. - Color scheme: Green theme with different appearance styles @@ -59,13 +59,13 @@ **HTML Location**: `docs/index.html` - Line ~641-685 ```html
- + ...
``` **Placeholder Preview**: -- Advanced TUIKit Demo terminal window +- Advanced TUIkit Demo terminal window - Two feature boxes: "Theme: Green Phosphor" + "Components" - Live example: Interactive menu with selection @@ -157,7 +157,7 @@ Find this in `docs/index.html` around line 554: Replace with: ```html
- TUIKit Demo Application + TUIkit Demo Application
``` @@ -172,7 +172,7 @@ Find this in `docs/index.html` around line 641: Replace with: ```html
- Advanced TUIKit Features + Advanced TUIkit Features
``` @@ -193,7 +193,7 @@ With: All current images are high-quality SVG placeholders that: - ✅ Match the dark theme and color scheme -- ✅ Show relevant TUIKit UI examples +- ✅ Show relevant TUIkit UI examples - ✅ Are vector-based (scale perfectly) - ✅ Look professional on their own - ✅ Are easy to replace diff --git a/Package.swift b/Package.swift index 6d13387..91b3584 100644 --- a/Package.swift +++ b/Package.swift @@ -14,7 +14,7 @@ let swiftLintPlugin: [Target.PluginUsage] = enableSwiftLint : [] let package = Package( - name: "TUIKit", + name: "TUIkit", // Minimum deployment targets for Apple platforms // Linux is automatically supported (no platform specification needed) platforms: [ @@ -22,12 +22,12 @@ let package = Package( ], products: [ .library( - name: "TUIKit", - targets: ["TUIKit"] + name: "TUIkit", + targets: ["TUIkit"] ), .executable( - name: "TUIKitExample", - targets: ["TUIKitExample"] + name: "TUIkitExample", + targets: ["TUIkitExample"] ), ], dependencies: [ @@ -36,17 +36,17 @@ let package = Package( ], targets: [ .target( - name: "TUIKit", + name: "TUIkit", plugins: swiftLintPlugin ), .executableTarget( - name: "TUIKitExample", - dependencies: ["TUIKit"], + name: "TUIkitExample", + dependencies: ["TUIkit"], plugins: swiftLintPlugin ), .testTarget( - name: "TUIKitTests", - dependencies: ["TUIKit"] + name: "TUIkitTests", + dependencies: ["TUIkit"] ), ] ) diff --git a/README.md b/README.md index 239e804..d76f27f 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,21 @@ -[![CI](https://github.com/phranck/TUIKit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/phranck/TUIKit/actions/workflows/ci.yml) +[![CI](https://github.com/phranck/TUIkit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/phranck/TUIkit/actions/workflows/ci.yml) ![Tests](https://img.shields.io/badge/Tests-181_passing-brightgreen) ![Swift 6.0](https://img.shields.io/badge/Swift-6.0-F05138?logo=swift&logoColor=white) -![macOS](https://img.shields.io/badge/Platform-macOS-000000?logo=apple&logoColor=white) -![Linux](https://img.shields.io/badge/Platform-Linux-FCC624?logo=linux&logoColor=black) +![Platforms](https://img.shields.io/badge/Platforms-macOS%20%7C%20Linux-blue) ![License](https://img.shields.io/badge/License-CC--BY--NC--SA%204.0-lightgrey?style=flat) -![Spotnik - Terminal based Sptoify Player](.github/assets/spotnik_1.png) +![TUIkit Banner](.github/assets/github-banner.png) -# TUIKit +# TUIkit A SwiftUI-like framework for building Terminal User Interfaces in Swift — no ncurses, no C dependencies, just pure Swift. ## What is this? -TUIKit lets you build TUI apps using the same declarative syntax you already know from SwiftUI. Define your UI with `View`, compose views with `VStack`, `HStack`, and `ZStack`, style text with modifiers like `.bold()` and `.foregroundColor(.red)`, and run it all in your terminal. +TUIkit lets you build TUI apps using the same declarative syntax you already know from SwiftUI. Define your UI with `View`, compose views with `VStack`, `HStack`, and `ZStack`, style text with modifiers like `.bold()` and `.foregroundColor(.red)`, and run it all in your terminal. ```swift -import TUIKit +import TUIkit @main struct MyApp: App { @@ -32,7 +31,7 @@ struct ContentView: View { var body: some View { VStack(spacing: 1) { - Text("Hello, TUIKit!") + Text("Hello, TUIkit!") .bold() .foregroundColor(.cyan) @@ -85,18 +84,18 @@ struct ContentView: View { ## Run the Example App ```bash -swift run TUIKitExample +swift run TUIkitExample ``` Press `q` or `ESC` to exit. ## Installation -Add TUIKit to your `Package.swift`: +Add TUIkit to your `Package.swift`: ```swift dependencies: [ - .package(url: "https://github.com/phranck/TUIKit.git", branch: "main") + .package(url: "https://github.com/phranck/TUIkit.git", branch: "main") ] ``` @@ -105,13 +104,13 @@ Then add it to your target: ```swift .target( name: "YourApp", - dependencies: ["TUIKit"] + dependencies: ["TUIkit"] ) ``` ## Theming -TUIKit includes 8 predefined themes inspired by classic terminals: +TUIkit includes 8 predefined themes inspired by classic terminals: ```swift @main @@ -146,16 +145,16 @@ Available themes: ``` Sources/ -├── TUIKit/ +├── TUIkit/ │ ├── App/ App, Scene, WindowGroup │ ├── Core/ View, ViewBuilder, State, Environment, Color, Theme │ ├── Modifiers/ Border, Frame, Padding, Overlay, Lifecycle │ ├── Rendering/ Terminal, ANSIRenderer, ViewRenderer, FrameBuffer │ └── Views/ Text, Stacks, Button, Menu, Alert, StatusBar, ... -└── TUIKitExample/ Example app (executable target) +└── TUIkitExample/ Example app (executable target) Tests/ -└── TUIKitTests/ 181 tests across 27 test suites +└── TUIkitTests/ 181 tests across 27 test suites ``` ## Requirements diff --git a/Sources/TUIKit/App/App.swift b/Sources/TUIkit/App/App.swift similarity index 97% rename from Sources/TUIKit/App/App.swift rename to Sources/TUIkit/App/App.swift index 84a74d1..fb87eb0 100644 --- a/Sources/TUIKit/App/App.swift +++ b/Sources/TUIkit/App/App.swift @@ -1,17 +1,17 @@ // // App.swift -// TUIKit +// TUIkit // -// The base protocol for TUIKit applications. +// The base protocol for TUIkit applications. // import Foundation // MARK: - App Protocol -/// The base protocol for TUIKit applications. +/// The base protocol for TUIkit applications. /// -/// `App` is the entry point for every TUIKit application, +/// `App` is the entry point for every TUIkit application, /// similar to `App` in SwiftUI. /// /// # Example diff --git a/Sources/TUIKit/App/InputHandler.swift b/Sources/TUIkit/App/InputHandler.swift similarity index 99% rename from Sources/TUIKit/App/InputHandler.swift rename to Sources/TUIkit/App/InputHandler.swift index 8a2b268..e9b0bb7 100644 --- a/Sources/TUIKit/App/InputHandler.swift +++ b/Sources/TUIkit/App/InputHandler.swift @@ -1,6 +1,6 @@ // // InputHandler.swift -// TUIKit +// TUIkit // // Dispatches key events through a 3-layer priority chain. // diff --git a/Sources/TUIKit/App/RenderLoop.swift b/Sources/TUIkit/App/RenderLoop.swift similarity index 99% rename from Sources/TUIKit/App/RenderLoop.swift rename to Sources/TUIkit/App/RenderLoop.swift index 65849cc..198f042 100644 --- a/Sources/TUIKit/App/RenderLoop.swift +++ b/Sources/TUIkit/App/RenderLoop.swift @@ -1,6 +1,6 @@ // // RenderLoop.swift -// TUIKit +// TUIkit // // Manages the rendering pipeline: scene rendering, environment // assembly, and status bar output. diff --git a/Sources/TUIKit/App/Scene.swift b/Sources/TUIkit/App/Scene.swift similarity index 91% rename from Sources/TUIKit/App/Scene.swift rename to Sources/TUIkit/App/Scene.swift index 5220eea..cb62613 100644 --- a/Sources/TUIKit/App/Scene.swift +++ b/Sources/TUIkit/App/Scene.swift @@ -1,11 +1,11 @@ // // Scene.swift -// TUIKit +// TUIkit // -// Scene types for TUIKit applications. +// Scene types for TUIkit applications. // -/// The base protocol for scenes in TUIKit. +/// The base protocol for scenes in TUIkit. /// /// A scene represents a part of the app structure, /// typically a window or a group of views. diff --git a/Sources/TUIKit/App/SignalManager.swift b/Sources/TUIkit/App/SignalManager.swift similarity index 99% rename from Sources/TUIKit/App/SignalManager.swift rename to Sources/TUIkit/App/SignalManager.swift index d40f447..f505e25 100644 --- a/Sources/TUIKit/App/SignalManager.swift +++ b/Sources/TUIkit/App/SignalManager.swift @@ -1,6 +1,6 @@ // // SignalManager.swift -// TUIKit +// TUIkit // // Manages POSIX signal handlers for terminal resize and graceful shutdown. // diff --git a/Sources/TUIKit/App/StatusBarState.swift b/Sources/TUIkit/App/StatusBarState.swift similarity index 99% rename from Sources/TUIKit/App/StatusBarState.swift rename to Sources/TUIkit/App/StatusBarState.swift index 3f50ad5..e194523 100644 --- a/Sources/TUIKit/App/StatusBarState.swift +++ b/Sources/TUIkit/App/StatusBarState.swift @@ -1,6 +1,6 @@ // // StatusBarState.swift -// TUIKit +// TUIkit // // Manages the status bar state for the running application. // diff --git a/Sources/TUIKit/Core/AppStorage.swift b/Sources/TUIkit/Core/AppStorage.swift similarity index 99% rename from Sources/TUIKit/Core/AppStorage.swift rename to Sources/TUIkit/Core/AppStorage.swift index 690bdac..c2372bb 100644 --- a/Sources/TUIKit/Core/AppStorage.swift +++ b/Sources/TUIkit/Core/AppStorage.swift @@ -1,6 +1,6 @@ // // AppStorage.swift -// TUIKit +// TUIkit // // Persistent storage for app settings using @AppStorage property wrapper. // @@ -51,7 +51,7 @@ private func appConfigDirectory() -> URL { /// A storage backend that persists data to a JSON file. /// -/// This is the default storage backend for TUIKit apps. +/// This is the default storage backend for TUIkit apps. /// Data is stored in `$XDG_CONFIG_HOME/[appName]/settings.json` /// or `~/.config/[appName]/settings.json` as fallback. public final class JSONFileStorage: StorageBackend, @unchecked Sendable { diff --git a/Sources/TUIKit/Core/Appearance.swift b/Sources/TUIkit/Core/Appearance.swift similarity index 99% rename from Sources/TUIKit/Core/Appearance.swift rename to Sources/TUIkit/Core/Appearance.swift index 28307bb..dd3d2f5 100644 --- a/Sources/TUIKit/Core/Appearance.swift +++ b/Sources/TUIkit/Core/Appearance.swift @@ -1,6 +1,6 @@ // // Appearance.swift -// TUIKit +// TUIkit // // Appearance system for consistent UI control styling. // diff --git a/Sources/TUIKit/Core/BorderStyle.swift b/Sources/TUIkit/Core/BorderStyle.swift similarity index 99% rename from Sources/TUIKit/Core/BorderStyle.swift rename to Sources/TUIkit/Core/BorderStyle.swift index f5635c9..8788a21 100644 --- a/Sources/TUIKit/Core/BorderStyle.swift +++ b/Sources/TUIkit/Core/BorderStyle.swift @@ -1,6 +1,6 @@ // // BorderStyle.swift -// TUIKit +// TUIkit // // Border styles and character sets for TUI borders. // diff --git a/Sources/TUIKit/Core/Color.swift b/Sources/TUIkit/Core/Color.swift similarity index 99% rename from Sources/TUIKit/Core/Color.swift rename to Sources/TUIkit/Core/Color.swift index 3183020..af9637d 100644 --- a/Sources/TUIKit/Core/Color.swift +++ b/Sources/TUIkit/Core/Color.swift @@ -1,11 +1,11 @@ // // Color.swift -// TUIKit +// TUIkit // // Color definitions for terminal output with ANSI escape codes. // -/// A color for use in TUIKit views. +/// A color for use in TUIkit views. /// /// `Color` represents standard ANSI colors as well as /// extended 256-color palette and True Color (24-bit RGB). diff --git a/Sources/TUIKit/Core/Environment.swift b/Sources/TUIkit/Core/Environment.swift similarity index 98% rename from Sources/TUIKit/Core/Environment.swift rename to Sources/TUIkit/Core/Environment.swift index c90e247..ecea748 100644 --- a/Sources/TUIKit/Core/Environment.swift +++ b/Sources/TUIkit/Core/Environment.swift @@ -1,6 +1,6 @@ // // Environment.swift -// TUIKit +// TUIkit // // Environment system for passing values down the view hierarchy. // Similar to SwiftUI's @Environment property wrapper. @@ -209,7 +209,7 @@ extension EnvironmentModifier: Renderable { // Render content with modified environment return EnvironmentStorage.shared.withEnvironment(modifiedEnvironment) { - TUIKit.renderToBuffer(content, context: modifiedContext) + TUIkit.renderToBuffer(content, context: modifiedContext) } } } diff --git a/Sources/TUIKit/Core/Focus.swift b/Sources/TUIkit/Core/Focus.swift similarity index 99% rename from Sources/TUIKit/Core/Focus.swift rename to Sources/TUIkit/Core/Focus.swift index cb2a5c0..aa5eb3f 100644 --- a/Sources/TUIKit/Core/Focus.swift +++ b/Sources/TUIkit/Core/Focus.swift @@ -1,6 +1,6 @@ // // Focus.swift -// TUIKit +// TUIkit // // Focus management system for interactive views. // diff --git a/Sources/TUIKit/Core/KeyEvent.swift b/Sources/TUIkit/Core/KeyEvent.swift similarity index 99% rename from Sources/TUIKit/Core/KeyEvent.swift rename to Sources/TUIkit/Core/KeyEvent.swift index d4cbe25..402eb68 100644 --- a/Sources/TUIKit/Core/KeyEvent.swift +++ b/Sources/TUIkit/Core/KeyEvent.swift @@ -1,8 +1,8 @@ // // KeyEvent.swift -// TUIKit +// TUIkit // -// Keyboard event handling for TUIKit. +// Keyboard event handling for TUIkit. // import Foundation diff --git a/Sources/TUIKit/Core/Preferences.swift b/Sources/TUIkit/Core/Preferences.swift similarity index 98% rename from Sources/TUIKit/Core/Preferences.swift rename to Sources/TUIkit/Core/Preferences.swift index 0615248..768d7df 100644 --- a/Sources/TUIKit/Core/Preferences.swift +++ b/Sources/TUIkit/Core/Preferences.swift @@ -1,6 +1,6 @@ // // Preferences.swift -// TUIKit +// TUIkit // // Preferences system for bottom-up data flow (child → parent). // Similar to SwiftUI's PreferenceKey system. @@ -214,7 +214,7 @@ extension PreferenceModifier: Renderable { context.tuiContext.preferences.setValue(value, forKey: K.self) // Render content - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) } } @@ -245,7 +245,7 @@ extension OnPreferenceChangeModifier: Renderable { prefs.push() // Render content - let buffer = TUIKit.renderToBuffer(content, context: context) + let buffer = TUIkit.renderToBuffer(content, context: context) // Pop and get collected preferences let preferences = prefs.pop() diff --git a/Sources/TUIKit/Core/PrimitiveViews.swift b/Sources/TUIkit/Core/PrimitiveViews.swift similarity index 99% rename from Sources/TUIKit/Core/PrimitiveViews.swift rename to Sources/TUIkit/Core/PrimitiveViews.swift index 0a4a397..61dcd06 100644 --- a/Sources/TUIKit/Core/PrimitiveViews.swift +++ b/Sources/TUIkit/Core/PrimitiveViews.swift @@ -1,6 +1,6 @@ // // PrimitiveViews.swift -// TUIKit +// TUIkit // // Primitive view types that serve as leaves in the view tree. // diff --git a/Sources/TUIKit/Core/State.swift b/Sources/TUIkit/Core/State.swift similarity index 97% rename from Sources/TUIKit/Core/State.swift rename to Sources/TUIkit/Core/State.swift index dd35fb4..f3bcb11 100644 --- a/Sources/TUIKit/Core/State.swift +++ b/Sources/TUIkit/Core/State.swift @@ -1,8 +1,8 @@ // // State.swift -// TUIKit +// TUIkit // -// State management for TUIKit views. +// State management for TUIkit views. // import Foundation @@ -11,7 +11,7 @@ import Foundation /// Global application state that triggers re-renders when modified. /// -/// Since TUIKit runs in a single-threaded event loop, we use a simple +/// Since TUIkit runs in a single-threaded event loop, we use a simple /// observable pattern. The AppRunner subscribes to state changes and /// re-renders when notified. public final class AppState: @unchecked Sendable { diff --git a/Sources/TUIKit/Core/TUIContext.swift b/Sources/TUIkit/Core/TUIContext.swift similarity index 98% rename from Sources/TUIKit/Core/TUIContext.swift rename to Sources/TUIkit/Core/TUIContext.swift index a5110d0..2fba983 100644 --- a/Sources/TUIKit/Core/TUIContext.swift +++ b/Sources/TUIkit/Core/TUIContext.swift @@ -1,6 +1,6 @@ // // TUIContext.swift -// TUIKit +// TUIkit // // Central dependency container replacing scattered singletons. // Owned by AppRunner and threaded through RenderContext. @@ -174,7 +174,7 @@ public final class LifecycleManager: @unchecked Sendable { // MARK: - TUI Context -/// Central dependency container for TUIKit runtime services. +/// Central dependency container for TUIkit runtime services. /// /// `TUIContext` replaces the scattered singleton pattern by bundling all /// framework-internal services into a single object owned by `AppRunner`. @@ -197,7 +197,7 @@ public final class LifecycleManager: @unchecked Sendable { /// context.tuiContext.keyEventDispatcher.addHandler { event in /// // handle key /// } -/// return TUIKit.renderToBuffer(content, context: context) +/// return TUIkit.renderToBuffer(content, context: context) /// } /// } /// ``` diff --git a/Sources/TUIKit/Core/Theme.swift b/Sources/TUIkit/Core/Theme.swift similarity index 99% rename from Sources/TUIKit/Core/Theme.swift rename to Sources/TUIkit/Core/Theme.swift index 8bec51b..c1d8b41 100644 --- a/Sources/TUIKit/Core/Theme.swift +++ b/Sources/TUIkit/Core/Theme.swift @@ -1,6 +1,6 @@ // // Theme.swift -// TUIKit +// TUIkit // // Palette system with full 16M color support and predefined terminal palettes. // @@ -9,10 +9,10 @@ import Foundation // MARK: - Palette Protocol -/// A palette defines the color scheme for a TUIKit application. +/// A palette defines the color scheme for a TUIkit application. /// /// Palettes provide semantic colors that views use for consistent styling. -/// TUIKit includes several predefined palettes inspired by classic terminals. +/// TUIkit includes several predefined palettes inspired by classic terminals. /// /// Conforms to ``Cyclable`` so it can be managed by a ``ThemeManager``. /// diff --git a/Sources/TUIKit/Core/ThemeManager.swift b/Sources/TUIkit/Core/ThemeManager.swift similarity index 99% rename from Sources/TUIKit/Core/ThemeManager.swift rename to Sources/TUIkit/Core/ThemeManager.swift index 644b564..5001423 100644 --- a/Sources/TUIKit/Core/ThemeManager.swift +++ b/Sources/TUIkit/Core/ThemeManager.swift @@ -1,6 +1,6 @@ // // ThemeManager.swift -// TUIKit +// TUIkit // // Generic manager for cycling through items that conform to `Cyclable`. // Replaces the previously duplicated palette manager and appearance manager @@ -43,7 +43,7 @@ public protocol Cyclable: Sendable { /// set a specific item by reference, and apply the current selection to the /// environment so all views pick up the change. /// -/// TUIKit uses two instances: +/// TUIkit uses two instances: /// - A ``PaletteManager`` for color palettes /// - An ``AppearanceManager`` for border-style appearances /// diff --git a/Sources/TUIKit/Core/TupleViews.swift b/Sources/TUIkit/Core/TupleViews.swift similarity index 98% rename from Sources/TUIKit/Core/TupleViews.swift rename to Sources/TUIkit/Core/TupleViews.swift index 26fbabe..4dbaf53 100644 --- a/Sources/TUIKit/Core/TupleViews.swift +++ b/Sources/TUIkit/Core/TupleViews.swift @@ -1,6 +1,6 @@ // // TupleViews.swift -// TUIKit +// TUIkit // // Container type for multiple views in ViewBuilder, using Swift Parameter Packs. // diff --git a/Sources/TUIKit/Core/UserDefaultsStorage.swift b/Sources/TUIkit/Core/UserDefaultsStorage.swift similarity index 99% rename from Sources/TUIKit/Core/UserDefaultsStorage.swift rename to Sources/TUIkit/Core/UserDefaultsStorage.swift index c4bdd7e..a8c792b 100644 --- a/Sources/TUIKit/Core/UserDefaultsStorage.swift +++ b/Sources/TUIkit/Core/UserDefaultsStorage.swift @@ -1,6 +1,6 @@ // // UserDefaultsStorage.swift -// TUIKit +// TUIkit // // UserDefaults-compatible storage backend for all platforms. // diff --git a/Sources/TUIKit/Core/View.swift b/Sources/TUIkit/Core/View.swift similarity index 88% rename from Sources/TUIKit/Core/View.swift rename to Sources/TUIkit/Core/View.swift index c5b09c5..04b26d5 100644 --- a/Sources/TUIKit/Core/View.swift +++ b/Sources/TUIkit/Core/View.swift @@ -1,13 +1,13 @@ // // View.swift -// TUIKit +// TUIkit // -// The base protocol for all TUIKit views. +// The base protocol for all TUIkit views. // -/// The base protocol for all TUIKit views. +/// The base protocol for all TUIkit views. /// -/// `View` is the central protocol in TUIKit and works similarly to `View` in SwiftUI. +/// `View` is the central protocol in TUIkit and works similarly to `View` in SwiftUI. /// It defines how components declare their structure and content. /// /// Every View defines a `body` composed of other Views. @@ -15,7 +15,7 @@ /// /// ## Dual Rendering System /// -/// TUIKit uses two rendering paths: +/// TUIkit uses two rendering paths: /// /// - **Composite views** implement `body` to compose other views. /// The rendering system recurses into `body` to resolve the tree. @@ -31,7 +31,7 @@ /// ```swift /// struct MyView: View { /// var body: some View { -/// Text("Hello, TUIKit!") +/// Text("Hello, TUIkit!") /// } /// } /// ``` diff --git a/Sources/TUIKit/Core/ViewBuilder.swift b/Sources/TUIkit/Core/ViewBuilder.swift similarity index 99% rename from Sources/TUIKit/Core/ViewBuilder.swift rename to Sources/TUIkit/Core/ViewBuilder.swift index 9c97998..e3acce7 100644 --- a/Sources/TUIKit/Core/ViewBuilder.swift +++ b/Sources/TUIkit/Core/ViewBuilder.swift @@ -1,6 +1,6 @@ // // ViewBuilder.swift -// TUIKit +// TUIkit // // Result builder for declarative view composition. // diff --git a/Sources/TUIKit/Core/ViewModifier.swift b/Sources/TUIkit/Core/ViewModifier.swift similarity index 96% rename from Sources/TUIKit/Core/ViewModifier.swift rename to Sources/TUIkit/Core/ViewModifier.swift index 079296e..5b2a0a0 100644 --- a/Sources/TUIKit/Core/ViewModifier.swift +++ b/Sources/TUIkit/Core/ViewModifier.swift @@ -1,6 +1,6 @@ // // ViewModifier.swift -// TUIKit +// TUIkit // // The view modifier system for transforming views. // @@ -60,7 +60,7 @@ public struct ModifiedView: View { extension ModifiedView: Renderable { public func renderToBuffer(context: RenderContext) -> FrameBuffer { - let childBuffer = TUIKit.renderToBuffer(content, context: context) + let childBuffer = TUIkit.renderToBuffer(content, context: context) return modifier.modify(buffer: childBuffer, context: context) } } diff --git a/Sources/TUIKit/Extensions/PrimitiveTypes+Extensions.swift b/Sources/TUIkit/Extensions/PrimitiveTypes+Extensions.swift similarity index 93% rename from Sources/TUIKit/Extensions/PrimitiveTypes+Extensions.swift rename to Sources/TUIkit/Extensions/PrimitiveTypes+Extensions.swift index 81c721e..4f77e72 100644 --- a/Sources/TUIKit/Extensions/PrimitiveTypes+Extensions.swift +++ b/Sources/TUIkit/Extensions/PrimitiveTypes+Extensions.swift @@ -1,6 +1,6 @@ // // PrimitiveTypes+Extensions.swift -// TUIKit +// TUIkit // // Protocol conformances for standard types (Never, Optional). // @@ -38,7 +38,7 @@ extension Optional: Renderable where Wrapped: View { public func renderToBuffer(context: RenderContext) -> FrameBuffer { switch self { case .some(let view): - return TUIKit.renderToBuffer(view, context: context) + return TUIkit.renderToBuffer(view, context: context) case .none: return FrameBuffer() } diff --git a/Sources/TUIKit/Extensions/String+ANSI.swift b/Sources/TUIkit/Extensions/String+ANSI.swift similarity index 98% rename from Sources/TUIKit/Extensions/String+ANSI.swift rename to Sources/TUIkit/Extensions/String+ANSI.swift index dc8661f..2b7c41b 100644 --- a/Sources/TUIKit/Extensions/String+ANSI.swift +++ b/Sources/TUIkit/Extensions/String+ANSI.swift @@ -1,6 +1,6 @@ // // String+ANSI.swift -// TUIKit +// TUIkit // // ANSI-aware String helpers for visible-length calculation and padding. // diff --git a/Sources/TUIKit/Extensions/View+Convenience.swift b/Sources/TUIkit/Extensions/View+Convenience.swift similarity index 99% rename from Sources/TUIKit/Extensions/View+Convenience.swift rename to Sources/TUIkit/Extensions/View+Convenience.swift index 019b50b..bf53c3d 100644 --- a/Sources/TUIKit/Extensions/View+Convenience.swift +++ b/Sources/TUIkit/Extensions/View+Convenience.swift @@ -1,6 +1,6 @@ // // View+Convenience.swift -// TUIKit +// TUIkit // // Convenience view extensions: modal, asAnyView. // diff --git a/Sources/TUIKit/Extensions/View+Environment.swift b/Sources/TUIkit/Extensions/View+Environment.swift similarity index 99% rename from Sources/TUIKit/Extensions/View+Environment.swift rename to Sources/TUIkit/Extensions/View+Environment.swift index 168df4b..ff97d71 100644 --- a/Sources/TUIKit/Extensions/View+Environment.swift +++ b/Sources/TUIkit/Extensions/View+Environment.swift @@ -1,6 +1,6 @@ // // View+Environment.swift -// TUIKit +// TUIkit // // Environment injection view modifiers: environment, appearance, theme. // diff --git a/Sources/TUIKit/Extensions/View+Events.swift b/Sources/TUIkit/Extensions/View+Events.swift similarity index 99% rename from Sources/TUIKit/Extensions/View+Events.swift rename to Sources/TUIkit/Extensions/View+Events.swift index 059ee9a..64e9412 100644 --- a/Sources/TUIKit/Extensions/View+Events.swift +++ b/Sources/TUIkit/Extensions/View+Events.swift @@ -1,6 +1,6 @@ // // View+Events.swift -// TUIKit +// TUIkit // // Event handling and lifecycle view modifiers: onKeyPress, onAppear, onDisappear, task, statusBarItems. // diff --git a/Sources/TUIKit/Extensions/View+Layout.swift b/Sources/TUIkit/Extensions/View+Layout.swift similarity index 99% rename from Sources/TUIKit/Extensions/View+Layout.swift rename to Sources/TUIkit/Extensions/View+Layout.swift index 00875e7..f51cddc 100644 --- a/Sources/TUIKit/Extensions/View+Layout.swift +++ b/Sources/TUIkit/Extensions/View+Layout.swift @@ -1,6 +1,6 @@ // // View+Layout.swift -// TUIKit +// TUIkit // // Layout and styling view modifiers: border, dimmed, background, frame, overlay, padding. // diff --git a/Sources/TUIKit/Extensions/View+Modifier.swift b/Sources/TUIkit/Extensions/View+Modifier.swift similarity index 97% rename from Sources/TUIKit/Extensions/View+Modifier.swift rename to Sources/TUIkit/Extensions/View+Modifier.swift index 8e97eb5..4867c4a 100644 --- a/Sources/TUIKit/Extensions/View+Modifier.swift +++ b/Sources/TUIkit/Extensions/View+Modifier.swift @@ -1,6 +1,6 @@ // // View+Modifier.swift -// TUIKit +// TUIkit // // Generic modifier application extension for View. // diff --git a/Sources/TUIKit/Extensions/View+Preferences.swift b/Sources/TUIkit/Extensions/View+Preferences.swift similarity index 99% rename from Sources/TUIKit/Extensions/View+Preferences.swift rename to Sources/TUIkit/Extensions/View+Preferences.swift index ca46e94..be7f58d 100644 --- a/Sources/TUIKit/Extensions/View+Preferences.swift +++ b/Sources/TUIkit/Extensions/View+Preferences.swift @@ -1,6 +1,6 @@ // // View+Preferences.swift -// TUIKit +// TUIkit // // Preference system view modifiers: preference, onPreferenceChange, navigationTitle. // diff --git a/Sources/TUIKit/Modifiers/BackgroundModifier.swift b/Sources/TUIkit/Modifiers/BackgroundModifier.swift similarity index 99% rename from Sources/TUIKit/Modifiers/BackgroundModifier.swift rename to Sources/TUIkit/Modifiers/BackgroundModifier.swift index bdb59f8..ca44f10 100644 --- a/Sources/TUIKit/Modifiers/BackgroundModifier.swift +++ b/Sources/TUIkit/Modifiers/BackgroundModifier.swift @@ -1,6 +1,6 @@ // // BackgroundModifier.swift -// TUIKit +// TUIkit // // The .background() modifier for adding background colors to views. // diff --git a/Sources/TUIKit/Modifiers/BorderModifier.swift b/Sources/TUIkit/Modifiers/BorderModifier.swift similarity index 97% rename from Sources/TUIKit/Modifiers/BorderModifier.swift rename to Sources/TUIkit/Modifiers/BorderModifier.swift index 3c4ef1c..41fb906 100644 --- a/Sources/TUIKit/Modifiers/BorderModifier.swift +++ b/Sources/TUIkit/Modifiers/BorderModifier.swift @@ -1,6 +1,6 @@ // // BorderModifier.swift -// TUIKit +// TUIkit // // The .border() modifier for adding borders around views. // @@ -37,7 +37,7 @@ extension BorderedView: Renderable { contentContext.availableWidth = max(1, context.availableWidth - BorderRenderer.borderWidthOverhead) // Render content with reduced width - let buffer = TUIKit.renderToBuffer(content, context: contentContext) + let buffer = TUIkit.renderToBuffer(content, context: contentContext) guard !buffer.isEmpty else { return buffer } diff --git a/Sources/TUIKit/Modifiers/DimmedModifier.swift b/Sources/TUIkit/Modifiers/DimmedModifier.swift similarity index 95% rename from Sources/TUIKit/Modifiers/DimmedModifier.swift rename to Sources/TUIkit/Modifiers/DimmedModifier.swift index b7a35ff..5a84e82 100644 --- a/Sources/TUIKit/Modifiers/DimmedModifier.swift +++ b/Sources/TUIkit/Modifiers/DimmedModifier.swift @@ -1,6 +1,6 @@ // // DimmedModifier.swift -// TUIKit +// TUIkit // // A modifier that applies a dimming effect to the entire view content. // @@ -22,7 +22,7 @@ public struct DimmedModifier: View { extension DimmedModifier: Renderable { public func renderToBuffer(context: RenderContext) -> FrameBuffer { - let contentBuffer = TUIKit.renderToBuffer(content, context: context) + let contentBuffer = TUIkit.renderToBuffer(content, context: context) guard !contentBuffer.isEmpty else { return contentBuffer diff --git a/Sources/TUIKit/Modifiers/FrameModifier.swift b/Sources/TUIkit/Modifiers/FrameModifier.swift similarity index 98% rename from Sources/TUIKit/Modifiers/FrameModifier.swift rename to Sources/TUIkit/Modifiers/FrameModifier.swift index 028cee9..f692041 100644 --- a/Sources/TUIKit/Modifiers/FrameModifier.swift +++ b/Sources/TUIkit/Modifiers/FrameModifier.swift @@ -1,6 +1,6 @@ // // FrameModifier.swift -// TUIKit +// TUIkit // // The .frame() modifier for setting explicit size constraints. // @@ -81,7 +81,7 @@ extension FlexibleFrameView: Renderable { } // Render content - let buffer = TUIKit.renderToBuffer(content, context: contentContext) + let buffer = TUIkit.renderToBuffer(content, context: contentContext) // Apply minimum constraints var finalWidth = buffer.width diff --git a/Sources/TUIKit/Modifiers/KeyPressModifier.swift b/Sources/TUIkit/Modifiers/KeyPressModifier.swift similarity index 94% rename from Sources/TUIKit/Modifiers/KeyPressModifier.swift rename to Sources/TUIkit/Modifiers/KeyPressModifier.swift index 3578fa8..da247c5 100644 --- a/Sources/TUIKit/Modifiers/KeyPressModifier.swift +++ b/Sources/TUIkit/Modifiers/KeyPressModifier.swift @@ -1,6 +1,6 @@ // // KeyPressModifier.swift -// TUIKit +// TUIkit // // A modifier for handling keyboard events. // @@ -43,6 +43,6 @@ extension KeyPressModifier: Renderable { } // Render the content - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) } } diff --git a/Sources/TUIKit/Modifiers/LifecycleModifier.swift b/Sources/TUIkit/Modifiers/LifecycleModifier.swift similarity index 97% rename from Sources/TUIKit/Modifiers/LifecycleModifier.swift rename to Sources/TUIkit/Modifiers/LifecycleModifier.swift index c9eece5..9dc6001 100644 --- a/Sources/TUIKit/Modifiers/LifecycleModifier.swift +++ b/Sources/TUIkit/Modifiers/LifecycleModifier.swift @@ -1,6 +1,6 @@ // // LifecycleModifier.swift -// TUIKit +// TUIkit // // Lifecycle modifiers: .onAppear(), .onDisappear(), .task() // @@ -117,7 +117,7 @@ extension OnAppearModifier: Renderable { _ = context.tuiContext.lifecycle.recordAppear(token: token, action: action) // Render content - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) } } @@ -185,7 +185,7 @@ extension OnDisappearModifier: Renderable { _ = context.tuiContext.lifecycle.recordAppear(token: token, action: {}) // Render content - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) } } @@ -274,6 +274,6 @@ extension TaskModifier: Renderable { } // Render content - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) } } diff --git a/Sources/TUIKit/Modifiers/OverlayModifier.swift b/Sources/TUIkit/Modifiers/OverlayModifier.swift similarity index 94% rename from Sources/TUIKit/Modifiers/OverlayModifier.swift rename to Sources/TUIkit/Modifiers/OverlayModifier.swift index 6d44a3d..186b95e 100644 --- a/Sources/TUIKit/Modifiers/OverlayModifier.swift +++ b/Sources/TUIkit/Modifiers/OverlayModifier.swift @@ -1,6 +1,6 @@ // // OverlayModifier.swift -// TUIKit +// TUIkit // // A modifier that renders an overlay on top of the base view. // @@ -30,8 +30,8 @@ public struct OverlayModifier: View { extension OverlayModifier: Renderable { public func renderToBuffer(context: RenderContext) -> FrameBuffer { // Render both contents - let baseBuffer = TUIKit.renderToBuffer(base, context: context) - let overlayBuffer = TUIKit.renderToBuffer(overlay, context: context) + let baseBuffer = TUIkit.renderToBuffer(base, context: context) + let overlayBuffer = TUIkit.renderToBuffer(overlay, context: context) guard !baseBuffer.isEmpty else { return overlayBuffer diff --git a/Sources/TUIKit/Modifiers/PaddingModifier.swift b/Sources/TUIkit/Modifiers/PaddingModifier.swift similarity index 99% rename from Sources/TUIKit/Modifiers/PaddingModifier.swift rename to Sources/TUIkit/Modifiers/PaddingModifier.swift index b0748c6..b3b8fb2 100644 --- a/Sources/TUIKit/Modifiers/PaddingModifier.swift +++ b/Sources/TUIkit/Modifiers/PaddingModifier.swift @@ -1,6 +1,6 @@ // // PaddingModifier.swift -// TUIKit +// TUIkit // // The .padding() modifier for adding space around a view. // diff --git a/Sources/TUIKit/Modifiers/StatusBarItemsModifier.swift b/Sources/TUIkit/Modifiers/StatusBarItemsModifier.swift similarity index 96% rename from Sources/TUIKit/Modifiers/StatusBarItemsModifier.swift rename to Sources/TUIkit/Modifiers/StatusBarItemsModifier.swift index c217853..b780609 100644 --- a/Sources/TUIKit/Modifiers/StatusBarItemsModifier.swift +++ b/Sources/TUIkit/Modifiers/StatusBarItemsModifier.swift @@ -1,6 +1,6 @@ // // StatusBarItemsModifier.swift -// TUIKit +// TUIkit // // A modifier that sets status bar items for a view. // @@ -64,6 +64,6 @@ extension StatusBarItemsModifier: Renderable { } // Render the content - return TUIKit.renderToBuffer(content, context: renderContext) + return TUIkit.renderToBuffer(content, context: renderContext) } } diff --git a/Sources/TUIKit/Rendering/ANSIRenderer.swift b/Sources/TUIkit/Rendering/ANSIRenderer.swift similarity index 99% rename from Sources/TUIKit/Rendering/ANSIRenderer.swift rename to Sources/TUIkit/Rendering/ANSIRenderer.swift index f3c88e6..324774c 100644 --- a/Sources/TUIKit/Rendering/ANSIRenderer.swift +++ b/Sources/TUIkit/Rendering/ANSIRenderer.swift @@ -1,6 +1,6 @@ // // ANSIRenderer.swift -// TUIKit +// TUIkit // // ANSI escape code generation for terminal output. // diff --git a/Sources/TUIKit/Rendering/BorderRenderer.swift b/Sources/TUIkit/Rendering/BorderRenderer.swift similarity index 99% rename from Sources/TUIKit/Rendering/BorderRenderer.swift rename to Sources/TUIkit/Rendering/BorderRenderer.swift index 5b04f5f..adf3e6b 100644 --- a/Sources/TUIKit/Rendering/BorderRenderer.swift +++ b/Sources/TUIkit/Rendering/BorderRenderer.swift @@ -1,6 +1,6 @@ // // BorderRenderer.swift -// TUIKit +// TUIkit // // Centralized border rendering utilities for standard and block styles. // diff --git a/Sources/TUIKit/Rendering/FrameBuffer.swift b/Sources/TUIkit/Rendering/FrameBuffer.swift similarity index 99% rename from Sources/TUIKit/Rendering/FrameBuffer.swift rename to Sources/TUIkit/Rendering/FrameBuffer.swift index ac66ed5..49fd64d 100644 --- a/Sources/TUIKit/Rendering/FrameBuffer.swift +++ b/Sources/TUIkit/Rendering/FrameBuffer.swift @@ -1,6 +1,6 @@ // // FrameBuffer.swift -// TUIKit +// TUIkit // // A 2D text buffer for off-screen rendering before terminal output. // diff --git a/Sources/TUIKit/Rendering/Renderable.swift b/Sources/TUIkit/Rendering/Renderable.swift similarity index 98% rename from Sources/TUIKit/Rendering/Renderable.swift rename to Sources/TUIkit/Rendering/Renderable.swift index d978e99..41617ed 100644 --- a/Sources/TUIKit/Rendering/Renderable.swift +++ b/Sources/TUIkit/Rendering/Renderable.swift @@ -1,13 +1,13 @@ // // Renderable.swift -// TUIKit +// TUIkit // // Protocol for views that can render themselves directly. // /// A protocol for views that produce terminal output directly. /// -/// TUIKit uses a **dual rendering system** inspired by SwiftUI: +/// TUIkit uses a **dual rendering system** inspired by SwiftUI: /// /// - **`View.body`** — Compositional path: views declare *what* they /// are made of by composing other `View` types. @@ -123,7 +123,7 @@ public struct RenderContext { /// Renders any `View` into a ``FrameBuffer`` using the dual rendering system. /// -/// This is the **single entry point** for all view rendering in TUIKit. +/// This is the **single entry point** for all view rendering in TUIkit. /// Every recursive call in the view tree passes through this function. /// /// ## Decision order diff --git a/Sources/TUIKit/Rendering/Terminal.swift b/Sources/TUIkit/Rendering/Terminal.swift similarity index 99% rename from Sources/TUIKit/Rendering/Terminal.swift rename to Sources/TUIkit/Rendering/Terminal.swift index e46b5ca..854e70a 100644 --- a/Sources/TUIKit/Rendering/Terminal.swift +++ b/Sources/TUIkit/Rendering/Terminal.swift @@ -1,6 +1,6 @@ // // Terminal.swift -// TUIKit +// TUIkit // // Terminal abstraction for input and output. // diff --git a/Sources/TUIKit/Rendering/ViewRenderer.swift b/Sources/TUIkit/Rendering/ViewRenderer.swift similarity index 98% rename from Sources/TUIKit/Rendering/ViewRenderer.swift rename to Sources/TUIkit/Rendering/ViewRenderer.swift index 4b0440c..69e3244 100644 --- a/Sources/TUIKit/Rendering/ViewRenderer.swift +++ b/Sources/TUIkit/Rendering/ViewRenderer.swift @@ -1,6 +1,6 @@ // // ViewRenderer.swift -// TUIKit +// TUIkit // // Renders Views to terminal output via FrameBuffer. // @@ -264,9 +264,9 @@ extension ConditionalView: Renderable { public func renderToBuffer(context: RenderContext) -> FrameBuffer { switch self { case .trueContent(let content): - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) case .falseContent(let content): - return TUIKit.renderToBuffer(content, context: context) + return TUIkit.renderToBuffer(content, context: context) } } } diff --git a/Sources/TUIKit/TUIKit.docc/Articles/Architecture.md b/Sources/TUIkit/TUIkit.docc/Articles/Architecture.md similarity index 94% rename from Sources/TUIKit/TUIKit.docc/Articles/Architecture.md rename to Sources/TUIkit/TUIkit.docc/Articles/Architecture.md index cc2a06d..848bee3 100644 --- a/Sources/TUIKit/TUIKit.docc/Articles/Architecture.md +++ b/Sources/TUIkit/TUIkit.docc/Articles/Architecture.md @@ -1,10 +1,10 @@ # Architecture -Understand the layer model and rendering pipeline of TUIKit. +Understand the layer model and rendering pipeline of TUIkit. ## Overview -TUIKit is structured in five layers, each building on the one below. This clean separation makes the framework easy to extend and maintain. +TUIkit is structured in five layers, each building on the one below. This clean separation makes the framework easy to extend and maintain. ## Layer Model @@ -55,7 +55,7 @@ The rendering pipeline converts the view tree into terminal output: ## Event Loop -TUIKit runs a synchronous event loop: +TUIkit runs a synchronous event loop: ``` ┌─────────────────────────┐ diff --git a/Sources/TUIKit/TUIKit.docc/Articles/GettingStarted.md b/Sources/TUIkit/TUIkit.docc/Articles/GettingStarted.md similarity index 81% rename from Sources/TUIKit/TUIKit.docc/Articles/GettingStarted.md rename to Sources/TUIkit/TUIkit.docc/Articles/GettingStarted.md index a9ca244..4c2599a 100644 --- a/Sources/TUIKit/TUIKit.docc/Articles/GettingStarted.md +++ b/Sources/TUIkit/TUIkit.docc/Articles/GettingStarted.md @@ -1,14 +1,14 @@ # Getting Started -Build your first terminal application with TUIKit. +Build your first terminal application with TUIkit. ## Overview -TUIKit is a Swift package that lets you create terminal user interfaces with a declarative, SwiftUI-like syntax. This guide walks you through setting up a project and building a simple app. +TUIkit is a Swift package that lets you create terminal user interfaces with a declarative, SwiftUI-like syntax. This guide walks you through setting up a project and building a simple app. -## Adding TUIKit to Your Project +## Adding TUIkit to Your Project -Add TUIKit as a dependency in your `Package.swift`: +Add TUIkit as a dependency in your `Package.swift`: ```swift // swift-tools-version: 6.0 @@ -18,12 +18,12 @@ let package = Package( name: "MyTUIApp", platforms: [.macOS(.v10_15)], dependencies: [ - .package(url: "https://github.com/phranck/TUIKit.git", from: "0.1.0"), + .package(url: "https://github.com/phranck/TUIkit.git", from: "0.1.0"), ], targets: [ .executableTarget( name: "MyTUIApp", - dependencies: ["TUIKit"] + dependencies: ["TUIkit"] ), ] ) @@ -34,7 +34,7 @@ let package = Package( Create a `main.swift` file with the ``App`` protocol as your entry point: ```swift -import TUIKit +import TUIkit @main struct MyApp: App { @@ -48,7 +48,7 @@ struct MyApp: App { struct ContentView: View { var body: some View { VStack { - Text("Welcome to TUIKit!") + Text("Welcome to TUIkit!") .bold() .foregroundColor(.cyan) @@ -86,11 +86,11 @@ struct CounterView: View { For simple scripts that don't need a full app lifecycle, use ``renderOnce(content:)``: ```swift -import TUIKit +import TUIkit renderOnce { VStack { - Text("Hello, TUIKit!") + Text("Hello, TUIkit!") .bold() .foregroundColor(.green) Divider() diff --git a/Sources/TUIKit/TUIKit.docc/Articles/StateManagement.md b/Sources/TUIkit/TUIkit.docc/Articles/StateManagement.md similarity index 92% rename from Sources/TUIKit/TUIKit.docc/Articles/StateManagement.md rename to Sources/TUIkit/TUIkit.docc/Articles/StateManagement.md index 66b789e..06d4208 100644 --- a/Sources/TUIKit/TUIKit.docc/Articles/StateManagement.md +++ b/Sources/TUIkit/TUIkit.docc/Articles/StateManagement.md @@ -1,10 +1,10 @@ # State Management -Manage reactive state in your TUIKit application. +Manage reactive state in your TUIkit application. ## Overview -TUIKit provides a state management system modeled after SwiftUI. When state changes, the view tree is automatically re-rendered. +TUIkit provides a state management system modeled after SwiftUI. When state changes, the view tree is automatically re-rendered. ## @State @@ -99,7 +99,7 @@ struct SettingsView: View { ## How Re-Rendering Works -TUIKit uses a single-threaded event loop. When a ``State`` value changes: +TUIkit uses a single-threaded event loop. When a ``State`` value changes: 1. ``AppState/setNeedsRender()`` is called 2. The main loop detects the change diff --git a/Sources/TUIKit/TUIKit.docc/Articles/ThemingGuide.md b/Sources/TUIkit/TUIkit.docc/Articles/ThemingGuide.md similarity index 95% rename from Sources/TUIKit/TUIKit.docc/Articles/ThemingGuide.md rename to Sources/TUIkit/TUIkit.docc/Articles/ThemingGuide.md index 3b04b7c..56849d7 100644 --- a/Sources/TUIKit/TUIKit.docc/Articles/ThemingGuide.md +++ b/Sources/TUIkit/TUIkit.docc/Articles/ThemingGuide.md @@ -1,10 +1,10 @@ # Theming Guide -Customize the visual appearance of your TUIKit application with themes. +Customize the visual appearance of your TUIkit application with themes. ## Overview -TUIKit includes a full theming system with five built-in themes inspired by classic CRT terminals. Themes define semantic colors for backgrounds, foregrounds, accents, and UI elements. +TUIkit includes a full theming system with five built-in themes inspired by classic CRT terminals. Themes define semantic colors for backgrounds, foregrounds, accents, and UI elements. ## Built-in Themes diff --git a/Sources/TUIKit/TUIKit.docc/TUIKit.md b/Sources/TUIkit/TUIkit.docc/TUIkit.md similarity index 94% rename from Sources/TUIKit/TUIKit.docc/TUIKit.md rename to Sources/TUIkit/TUIkit.docc/TUIkit.md index df9b9ca..da72af6 100644 --- a/Sources/TUIKit/TUIKit.docc/TUIKit.md +++ b/Sources/TUIkit/TUIkit.docc/TUIkit.md @@ -1,14 +1,14 @@ -# ``TUIKit`` +# ``TUIkit`` A declarative, SwiftUI-like framework for building Terminal User Interfaces in Swift. @Metadata { - @DisplayName("TUIKit") + @DisplayName("TUIkit") } ## Overview -TUIKit lets you build terminal applications using a familiar, declarative syntax inspired by SwiftUI. No ncurses, no C dependencies — pure Swift. +TUIkit lets you build terminal applications using a familiar, declarative syntax inspired by SwiftUI. No ncurses, no C dependencies — pure Swift. ```swift @main @@ -16,7 +16,7 @@ struct MyApp: App { var body: some Scene { WindowGroup { VStack { - Text("Hello, TUIKit!") + Text("Hello, TUIkit!") .bold() .foregroundColor(.cyan) Button("Press me") { diff --git a/Sources/TUIKit/TUIKit.swift b/Sources/TUIkit/TUIkit.swift similarity index 86% rename from Sources/TUIKit/TUIKit.swift rename to Sources/TUIkit/TUIkit.swift index a37bbf1..8dda390 100644 --- a/Sources/TUIKit/TUIKit.swift +++ b/Sources/TUIkit/TUIkit.swift @@ -1,14 +1,14 @@ // -// TUIKit.swift -// TUIKit +// TUIkit.swift +// TUIkit // // A SwiftUI-like framework for Terminal User Interfaces. // -// TUIKit enables creating TUI applications with a declarative, +// TUIkit enables creating TUI applications with a declarative, // SwiftUI-like syntax - without ncurses or other low-level libraries. // -/// The current version of TUIKit. +/// The current version of TUIkit. public let tuiKitVersion = "0.1.0" /// Executes a view closure and renders it once. @@ -20,7 +20,7 @@ public let tuiKitVersion = "0.1.0" /// ```swift /// renderOnce { /// VStack { -/// Text("Hello, TUIKit!") +/// Text("Hello, TUIkit!") /// .bold() /// .foregroundColor(.cyan) /// Divider() diff --git a/Sources/TUIKit/Views/Alert.swift b/Sources/TUIkit/Views/Alert.swift similarity index 99% rename from Sources/TUIKit/Views/Alert.swift rename to Sources/TUIkit/Views/Alert.swift index a606f58..709adac 100644 --- a/Sources/TUIKit/Views/Alert.swift +++ b/Sources/TUIkit/Views/Alert.swift @@ -1,6 +1,6 @@ // // Alert.swift -// TUIKit +// TUIkit // // A modal alert view with title, message, and optional action buttons. // diff --git a/Sources/TUIKit/Views/Box.swift b/Sources/TUIkit/Views/Box.swift similarity index 99% rename from Sources/TUIKit/Views/Box.swift rename to Sources/TUIkit/Views/Box.swift index 2185b66..248f349 100644 --- a/Sources/TUIKit/Views/Box.swift +++ b/Sources/TUIkit/Views/Box.swift @@ -1,6 +1,6 @@ // // Box.swift -// TUIKit +// TUIkit // // A simple bordered container view. // diff --git a/Sources/TUIKit/Views/Button.swift b/Sources/TUIkit/Views/Button.swift similarity index 99% rename from Sources/TUIKit/Views/Button.swift rename to Sources/TUIkit/Views/Button.swift index 7e74161..0af28d8 100644 --- a/Sources/TUIKit/Views/Button.swift +++ b/Sources/TUIkit/Views/Button.swift @@ -1,6 +1,6 @@ // // Button.swift -// TUIKit +// TUIkit // // An interactive button view that responds to keyboard input. // @@ -443,7 +443,7 @@ extension ButtonRow: Renderable { // Render each button var buttonBuffers: [FrameBuffer] = [] for button in buttons { - let buffer = TUIKit.renderToBuffer(button, context: context) + let buffer = TUIkit.renderToBuffer(button, context: context) buttonBuffers.append(buffer) } diff --git a/Sources/TUIKit/Views/Card.swift b/Sources/TUIkit/Views/Card.swift similarity index 99% rename from Sources/TUIKit/Views/Card.swift rename to Sources/TUIkit/Views/Card.swift index 9481f49..a7ad979 100644 --- a/Sources/TUIKit/Views/Card.swift +++ b/Sources/TUIkit/Views/Card.swift @@ -1,6 +1,6 @@ // // Card.swift -// TUIKit +// TUIkit // // A styled container view with optional header, content, and footer. // diff --git a/Sources/TUIKit/Views/ContainerView.swift b/Sources/TUIkit/Views/ContainerView.swift similarity index 99% rename from Sources/TUIKit/Views/ContainerView.swift rename to Sources/TUIkit/Views/ContainerView.swift index f6b320b..85a3e01 100644 --- a/Sources/TUIKit/Views/ContainerView.swift +++ b/Sources/TUIkit/Views/ContainerView.swift @@ -1,6 +1,6 @@ // // ContainerView.swift -// TUIKit +// TUIkit // // A unified container component with Header/Body/Footer architecture. // @@ -283,13 +283,13 @@ extension ContainerView: Renderable { // Render body content let paddedContent = content.padding(padding) - let bodyBuffer = TUIKit.renderToBuffer(paddedContent, context: context) + let bodyBuffer = TUIkit.renderToBuffer(paddedContent, context: context) // Render footer if present let footerBuffer: FrameBuffer? if let footerView = footer { let paddedFooter = footerView.padding(EdgeInsets(horizontal: 1, vertical: 0)) - footerBuffer = TUIKit.renderToBuffer(paddedFooter, context: context) + footerBuffer = TUIkit.renderToBuffer(paddedFooter, context: context) } else { footerBuffer = nil } diff --git a/Sources/TUIKit/Views/Dialog.swift b/Sources/TUIkit/Views/Dialog.swift similarity index 99% rename from Sources/TUIKit/Views/Dialog.swift rename to Sources/TUIkit/Views/Dialog.swift index c60e8eb..911fcfe 100644 --- a/Sources/TUIKit/Views/Dialog.swift +++ b/Sources/TUIkit/Views/Dialog.swift @@ -1,6 +1,6 @@ // // Dialog.swift -// TUIKit +// TUIkit // // A modal dialog view with title, custom content, and optional footer. // diff --git a/Sources/TUIKit/Views/ForEach.swift b/Sources/TUIkit/Views/ForEach.swift similarity index 99% rename from Sources/TUIKit/Views/ForEach.swift rename to Sources/TUIkit/Views/ForEach.swift index e9997e8..1ed4ecf 100644 --- a/Sources/TUIKit/Views/ForEach.swift +++ b/Sources/TUIkit/Views/ForEach.swift @@ -1,6 +1,6 @@ // // ForEach.swift -// TUIKit +// TUIkit // // Iteration over data collections for view generation. // diff --git a/Sources/TUIKit/Views/Menu.swift b/Sources/TUIkit/Views/Menu.swift similarity index 99% rename from Sources/TUIKit/Views/Menu.swift rename to Sources/TUIkit/Views/Menu.swift index a3c04f4..30ca6e1 100644 --- a/Sources/TUIKit/Views/Menu.swift +++ b/Sources/TUIkit/Views/Menu.swift @@ -1,6 +1,6 @@ // // Menu.swift -// TUIKit +// TUIkit // // A menu view that displays a list of selectable items. // @@ -429,7 +429,7 @@ public struct AnyView: View { /// Creates an AnyView wrapping the given view. public init(_ view: V) { self._render = { context in - TUIKit.renderToBuffer(view, context: context) + TUIkit.renderToBuffer(view, context: context) } } diff --git a/Sources/TUIKit/Views/Panel.swift b/Sources/TUIkit/Views/Panel.swift similarity index 99% rename from Sources/TUIKit/Views/Panel.swift rename to Sources/TUIkit/Views/Panel.swift index 24e5fc4..13e775a 100644 --- a/Sources/TUIKit/Views/Panel.swift +++ b/Sources/TUIkit/Views/Panel.swift @@ -1,6 +1,6 @@ // // Panel.swift -// TUIKit +// TUIkit // // A titled container view with optional footer. // diff --git a/Sources/TUIKit/Views/Spacer.swift b/Sources/TUIkit/Views/Spacer.swift similarity index 99% rename from Sources/TUIKit/Views/Spacer.swift rename to Sources/TUIkit/Views/Spacer.swift index cab5173..beba680 100644 --- a/Sources/TUIKit/Views/Spacer.swift +++ b/Sources/TUIkit/Views/Spacer.swift @@ -1,6 +1,6 @@ // // Spacer.swift -// TUIKit +// TUIkit // // Flexible spacing elements for layout. // diff --git a/Sources/TUIKit/Views/Stacks.swift b/Sources/TUIkit/Views/Stacks.swift similarity index 99% rename from Sources/TUIKit/Views/Stacks.swift rename to Sources/TUIkit/Views/Stacks.swift index 92db27a..9cba044 100644 --- a/Sources/TUIKit/Views/Stacks.swift +++ b/Sources/TUIkit/Views/Stacks.swift @@ -1,6 +1,6 @@ // // Stacks.swift -// TUIKit +// TUIkit // // Layout containers for vertical and horizontal arrangement. // diff --git a/Sources/TUIKit/Views/StatusBar.swift b/Sources/TUIkit/Views/StatusBar.swift similarity index 99% rename from Sources/TUIKit/Views/StatusBar.swift rename to Sources/TUIkit/Views/StatusBar.swift index cb5fa70..01e5aab 100644 --- a/Sources/TUIKit/Views/StatusBar.swift +++ b/Sources/TUIkit/Views/StatusBar.swift @@ -1,6 +1,6 @@ // // StatusBar.swift -// TUIKit +// TUIkit // // A status bar that displays keyboard shortcuts and context-sensitive actions. // Always rendered at the bottom of the terminal, never dimmed by overlays. diff --git a/Sources/TUIKit/Views/Text.swift b/Sources/TUIkit/Views/Text.swift similarity index 98% rename from Sources/TUIKit/Views/Text.swift rename to Sources/TUIkit/Views/Text.swift index c9c8716..16ba884 100644 --- a/Sources/TUIKit/Views/Text.swift +++ b/Sources/TUIkit/Views/Text.swift @@ -1,13 +1,13 @@ // // Text.swift -// TUIKit +// TUIkit // // A view for displaying text in the terminal. // /// A view that displays text in the terminal. /// -/// `Text` is one of the most fundamental views in TUIKit. It displays +/// `Text` is one of the most fundamental views in TUIkit. It displays /// a string in the terminal and supports various formatting options. /// /// # Example diff --git a/Sources/TUIKitExample/AppState.swift b/Sources/TUIkitExample/AppState.swift similarity index 97% rename from Sources/TUIKitExample/AppState.swift rename to Sources/TUIkitExample/AppState.swift index abcd58c..9faa95f 100644 --- a/Sources/TUIKitExample/AppState.swift +++ b/Sources/TUIkitExample/AppState.swift @@ -1,11 +1,11 @@ // // AppState.swift -// TUIKitExample +// TUIkitExample // // Global state management for the example app. // -import TUIKit +import TUIkit // MARK: - Demo Page Enum diff --git a/Sources/TUIKitExample/Components/DemoSection.swift b/Sources/TUIkitExample/Components/DemoSection.swift similarity index 96% rename from Sources/TUIKitExample/Components/DemoSection.swift rename to Sources/TUIkitExample/Components/DemoSection.swift index 8a04811..fc82538 100644 --- a/Sources/TUIKitExample/Components/DemoSection.swift +++ b/Sources/TUIkitExample/Components/DemoSection.swift @@ -1,11 +1,11 @@ // // DemoSection.swift -// TUIKitExample +// TUIkitExample // // A reusable section component for organizing demo content. // -import TUIKit +import TUIkit /// A section with a styled title and content. /// diff --git a/Sources/TUIKitExample/Components/HeaderView.swift b/Sources/TUIkitExample/Components/HeaderView.swift similarity index 93% rename from Sources/TUIKitExample/Components/HeaderView.swift rename to Sources/TUIkitExample/Components/HeaderView.swift index 1ec9ec8..0e35dd2 100644 --- a/Sources/TUIKitExample/Components/HeaderView.swift +++ b/Sources/TUIkitExample/Components/HeaderView.swift @@ -1,11 +1,11 @@ // // HeaderView.swift -// TUIKitExample +// TUIkitExample // // A reusable header component for demo pages. // -import TUIKit +import TUIkit /// A styled header with title on the left and version on the right. /// @@ -36,7 +36,7 @@ struct HeaderView: View { .bold() .foregroundColor(.theme.accent) Spacer() - Text("TUIKit v\(tuiKitVersion)") + Text("TUIkit v\(tuiKitVersion)") .foregroundColor(.theme.foregroundTertiary) } if let subtitleText = subtitle { diff --git a/Sources/TUIKitExample/ContentView.swift b/Sources/TUIkitExample/ContentView.swift similarity index 98% rename from Sources/TUIKitExample/ContentView.swift rename to Sources/TUIkitExample/ContentView.swift index f1a2389..0900b26 100644 --- a/Sources/TUIKitExample/ContentView.swift +++ b/Sources/TUIkitExample/ContentView.swift @@ -1,11 +1,11 @@ // // ContentView.swift -// TUIKitExample +// TUIkitExample // // The main content view that routes between demo pages. // -import TUIKit +import TUIkit // MARK: - Content View (Page Router) diff --git a/Sources/TUIKitExample/Pages/ButtonsPage.swift b/Sources/TUIkitExample/Pages/ButtonsPage.swift similarity index 98% rename from Sources/TUIKitExample/Pages/ButtonsPage.swift rename to Sources/TUIkitExample/Pages/ButtonsPage.swift index e21c80c..cfa21b8 100644 --- a/Sources/TUIKitExample/Pages/ButtonsPage.swift +++ b/Sources/TUIkitExample/Pages/ButtonsPage.swift @@ -1,11 +1,11 @@ // // ButtonsPage.swift -// TUIKitExample +// TUIkitExample // // Demonstrates button and focus system capabilities. // -import TUIKit +import TUIkit /// Buttons and focus demo page. /// diff --git a/Sources/TUIKitExample/Pages/ColorsPage.swift b/Sources/TUIkitExample/Pages/ColorsPage.swift similarity index 98% rename from Sources/TUIKitExample/Pages/ColorsPage.swift rename to Sources/TUIkitExample/Pages/ColorsPage.swift index c25e011..a084b1c 100644 --- a/Sources/TUIKitExample/Pages/ColorsPage.swift +++ b/Sources/TUIkitExample/Pages/ColorsPage.swift @@ -1,11 +1,11 @@ // // ColorsPage.swift -// TUIKitExample +// TUIkitExample // // Demonstrates color capabilities. // -import TUIKit +import TUIkit /// Colors demo page. /// diff --git a/Sources/TUIKitExample/Pages/ContainersPage.swift b/Sources/TUIkitExample/Pages/ContainersPage.swift similarity index 99% rename from Sources/TUIKitExample/Pages/ContainersPage.swift rename to Sources/TUIkitExample/Pages/ContainersPage.swift index 55fc29e..45f57cb 100644 --- a/Sources/TUIKitExample/Pages/ContainersPage.swift +++ b/Sources/TUIkitExample/Pages/ContainersPage.swift @@ -1,11 +1,11 @@ // // ContainersPage.swift -// TUIKitExample +// TUIkitExample // // Demonstrates container view capabilities. // -import TUIKit +import TUIkit /// Container views demo page. /// diff --git a/Sources/TUIKitExample/Pages/LayoutPage.swift b/Sources/TUIkitExample/Pages/LayoutPage.swift similarity index 98% rename from Sources/TUIKitExample/Pages/LayoutPage.swift rename to Sources/TUIkitExample/Pages/LayoutPage.swift index 1bd017b..5642a80 100644 --- a/Sources/TUIKitExample/Pages/LayoutPage.swift +++ b/Sources/TUIkitExample/Pages/LayoutPage.swift @@ -1,11 +1,11 @@ // // LayoutPage.swift -// TUIKitExample +// TUIkitExample // // Demonstrates layout system capabilities. // -import TUIKit +import TUIkit /// Layout system demo page. /// diff --git a/Sources/TUIKitExample/Pages/MainMenuPage.swift b/Sources/TUIkitExample/Pages/MainMenuPage.swift similarity index 97% rename from Sources/TUIKitExample/Pages/MainMenuPage.swift rename to Sources/TUIkitExample/Pages/MainMenuPage.swift index f145799..34aed68 100644 --- a/Sources/TUIKitExample/Pages/MainMenuPage.swift +++ b/Sources/TUIkitExample/Pages/MainMenuPage.swift @@ -1,11 +1,11 @@ // // MainMenuPage.swift -// TUIKitExample +// TUIkitExample // // The main menu page with navigation to all demos. // -import TUIKit +import TUIkit /// The main menu page. /// @@ -17,7 +17,7 @@ struct MainMenuPage: View { VStack(spacing: 1) { HeaderView( - title: "TUIKit Example App", + title: "TUIkit Example App", subtitle: "A SwiftUI-like framework for Terminal User Interfaces" ) diff --git a/Sources/TUIKitExample/Pages/OverlaysPage.swift b/Sources/TUIkitExample/Pages/OverlaysPage.swift similarity index 98% rename from Sources/TUIKitExample/Pages/OverlaysPage.swift rename to Sources/TUIkitExample/Pages/OverlaysPage.swift index e49d711..3a0b51e 100644 --- a/Sources/TUIKitExample/Pages/OverlaysPage.swift +++ b/Sources/TUIkitExample/Pages/OverlaysPage.swift @@ -1,11 +1,11 @@ // // OverlaysPage.swift -// TUIKitExample +// TUIkitExample // // Demonstrates overlay and modal capabilities. // -import TUIKit +import TUIkit /// Overlays and modals demo page. /// diff --git a/Sources/TUIKitExample/Pages/TextStylesPage.swift b/Sources/TUIkitExample/Pages/TextStylesPage.swift similarity index 97% rename from Sources/TUIKitExample/Pages/TextStylesPage.swift rename to Sources/TUIkitExample/Pages/TextStylesPage.swift index f4eee21..c6d23b8 100644 --- a/Sources/TUIKitExample/Pages/TextStylesPage.swift +++ b/Sources/TUIkitExample/Pages/TextStylesPage.swift @@ -1,11 +1,11 @@ // // TextStylesPage.swift -// TUIKitExample +// TUIkitExample // // Demonstrates text styling capabilities. // -import TUIKit +import TUIkit /// Text styles demo page. /// diff --git a/Sources/TUIKitExample/main.swift b/Sources/TUIkitExample/main.swift similarity index 66% rename from Sources/TUIKitExample/main.swift rename to Sources/TUIkitExample/main.swift index 11da2fc..b09c3a5 100644 --- a/Sources/TUIKitExample/main.swift +++ b/Sources/TUIkitExample/main.swift @@ -1,14 +1,14 @@ // // main.swift -// TUIKitExample +// TUIkitExample // -// Entry point for the TUIKit example application. +// Entry point for the TUIkit example application. // -// This app demonstrates TUIKit capabilities through various demo pages. +// This app demonstrates TUIkit capabilities through various demo pages. // Use the menu to navigate between demos. // -import TUIKit +import TUIkit // MARK: - Main App diff --git a/Tests/TUIKitTests/AppearanceTests.swift b/Tests/TUIkitTests/AppearanceTests.swift similarity index 99% rename from Tests/TUIKitTests/AppearanceTests.swift rename to Tests/TUIkitTests/AppearanceTests.swift index 9885ddf..97ac17e 100644 --- a/Tests/TUIKitTests/AppearanceTests.swift +++ b/Tests/TUIkitTests/AppearanceTests.swift @@ -1,13 +1,13 @@ // // AppearanceTests.swift -// TUIKit +// TUIkit // // Tests for the Appearance system. // import Testing -@testable import TUIKit +@testable import TUIkit // MARK: - Appearance Tests diff --git a/Tests/TUIKitTests/ButtonTests.swift b/Tests/TUIkitTests/ButtonTests.swift similarity index 99% rename from Tests/TUIKitTests/ButtonTests.swift rename to Tests/TUIkitTests/ButtonTests.swift index 309135a..94bfccc 100644 --- a/Tests/TUIKitTests/ButtonTests.swift +++ b/Tests/TUIkitTests/ButtonTests.swift @@ -1,13 +1,13 @@ // // ButtonTests.swift -// TUIKit +// TUIkit // // Tests for Button, ButtonStyle, and ButtonRow views. // import Testing -@testable import TUIKit +@testable import TUIkit // MARK: - Test Helpers diff --git a/Tests/TUIKitTests/ColorTests.swift b/Tests/TUIkitTests/ColorTests.swift similarity index 98% rename from Tests/TUIKitTests/ColorTests.swift rename to Tests/TUIkitTests/ColorTests.swift index af69736..6ffe02e 100644 --- a/Tests/TUIKitTests/ColorTests.swift +++ b/Tests/TUIkitTests/ColorTests.swift @@ -1,13 +1,13 @@ // // ColorTests.swift -// TUIKit +// TUIkit // // Tests for the Color system and ANSI rendering. // import Testing -@testable import TUIKit +@testable import TUIkit @Suite("Color Tests") struct ColorTests { diff --git a/Tests/TUIKitTests/ContainerViewTests.swift b/Tests/TUIkitTests/ContainerViewTests.swift similarity index 99% rename from Tests/TUIKitTests/ContainerViewTests.swift rename to Tests/TUIkitTests/ContainerViewTests.swift index 68ec174..3892442 100644 --- a/Tests/TUIKitTests/ContainerViewTests.swift +++ b/Tests/TUIkitTests/ContainerViewTests.swift @@ -1,13 +1,13 @@ // // ContainerViewTests.swift -// TUIKit +// TUIkit // // Tests for container views: Alert, Dialog, Menu. // import Testing -@testable import TUIKit +@testable import TUIkit @Suite("Alert Tests") struct AlertTests { diff --git a/Tests/TUIKitTests/FocusTests.swift b/Tests/TUIkitTests/FocusTests.swift similarity index 99% rename from Tests/TUIKitTests/FocusTests.swift rename to Tests/TUIkitTests/FocusTests.swift index 256852d..9d17ac8 100644 --- a/Tests/TUIKitTests/FocusTests.swift +++ b/Tests/TUIkitTests/FocusTests.swift @@ -1,6 +1,6 @@ // // FocusTests.swift -// TUIKit +// TUIkit // // Tests for the focus management system. // @@ -8,7 +8,7 @@ import Foundation import Testing -@testable import TUIKit +@testable import TUIkit // MARK: - Mock Focusable diff --git a/Tests/TUIKitTests/FrameBufferTests.swift b/Tests/TUIkitTests/FrameBufferTests.swift similarity index 99% rename from Tests/TUIKitTests/FrameBufferTests.swift rename to Tests/TUIkitTests/FrameBufferTests.swift index 7e4a43d..ae77b7e 100644 --- a/Tests/TUIKitTests/FrameBufferTests.swift +++ b/Tests/TUIkitTests/FrameBufferTests.swift @@ -1,13 +1,13 @@ // // FrameBufferTests.swift -// TUIKit +// TUIkit // // Tests for FrameBuffer operations and compositing. // import Testing -@testable import TUIKit +@testable import TUIkit @Suite("FrameBuffer Tests") struct FrameBufferTests { diff --git a/Tests/TUIKitTests/RenderingTests.swift b/Tests/TUIkitTests/RenderingTests.swift similarity index 99% rename from Tests/TUIKitTests/RenderingTests.swift rename to Tests/TUIkitTests/RenderingTests.swift index 9343ce3..cd4f649 100644 --- a/Tests/TUIKitTests/RenderingTests.swift +++ b/Tests/TUIkitTests/RenderingTests.swift @@ -1,13 +1,13 @@ // // RenderingTests.swift -// TUIKit +// TUIkit // // Tests for view rendering and layout. // import Testing -@testable import TUIKit +@testable import TUIkit @Suite("Rendering Tests") struct RenderingTests { diff --git a/Tests/TUIKitTests/StatusBarTests.swift b/Tests/TUIkitTests/StatusBarTests.swift similarity index 99% rename from Tests/TUIKitTests/StatusBarTests.swift rename to Tests/TUIkitTests/StatusBarTests.swift index 3406411..1d85fbc 100644 --- a/Tests/TUIKitTests/StatusBarTests.swift +++ b/Tests/TUIkitTests/StatusBarTests.swift @@ -1,14 +1,14 @@ // swiftlint:disable file_length // // StatusBarTests.swift -// TUIKit +// TUIkit // // Tests for Shortcut constants, StatusBarItem, StatusBarManager, and StatusBar. // import Testing -@testable import TUIKit +@testable import TUIkit // MARK: - Shortcut Constants Tests diff --git a/Tests/TUIKitTests/TViewTests.swift b/Tests/TUIkitTests/TViewTests.swift similarity index 99% rename from Tests/TUIKitTests/TViewTests.swift rename to Tests/TUIkitTests/TViewTests.swift index d8e7c34..627ff30 100644 --- a/Tests/TUIKitTests/TViewTests.swift +++ b/Tests/TUIkitTests/TViewTests.swift @@ -1,13 +1,13 @@ // // ViewTests.swift -// TUIKit +// TUIkit // // Tests for the View protocol, ViewBuilder, and basic views. // import Testing -@testable import TUIKit +@testable import TUIkit @Suite("View Protocol Tests") struct ViewTests { diff --git a/papers/project_analysis.md b/papers/project_analysis.md index 921da6c..5434163 100644 --- a/papers/project_analysis.md +++ b/papers/project_analysis.md @@ -1,4 +1,4 @@ -# TUIKit - Comprehensive Project Analysis +# TUIkit - Comprehensive Project Analysis **Date:** 2026-01-30 **Scope:** Full codebase review (66 Swift files) @@ -8,7 +8,7 @@ ## Executive Summary -TUIKit is a well-architected declarative Swift framework for building terminal UIs. The SwiftUI-inspired API design is clean, consistent, and idiomatic. Documentation is above average for a personal project. However, the codebase suffers from **significant code duplication** across Views and Modifiers, an **overreliance on singletons** that hinders testability, and several **thread-safety issues** with `@unchecked Sendable` types. The most impactful improvements would be extracting shared rendering logic into utilities, replacing singletons with dependency injection, and expanding test coverage for Views and Modifiers. +TUIkit is a well-architected declarative Swift framework for building terminal UIs. The SwiftUI-inspired API design is clean, consistent, and idiomatic. Documentation is above average for a personal project. However, the codebase suffers from **significant code duplication** across Views and Modifiers, an **overreliance on singletons** that hinders testability, and several **thread-safety issues** with `@unchecked Sendable` types. The most impactful improvements would be extracting shared rendering logic into utilities, replacing singletons with dependency injection, and expanding test coverage for Views and Modifiers. --- @@ -319,7 +319,7 @@ Marked as "Fixed Frame Modifier (Legacy)". `FlexibleFrameView` is the active imp --- -### C.5 TODO Placeholder — `TUIKit.swift` (Low) +### C.5 TODO Placeholder — `TUIkit.swift` (Low) ```swift return 0 // TODO: Return actual line count @@ -818,14 +818,14 @@ The same bug exists in `AppearanceManager.setAppearance()`. | C.2 | `FrameModifier` legacy code | Dead Code | Medium | FrameModifier.swift | | C.3 | Panel `body` dead code | Dead Code | Medium | Panel.swift | | C.4 | Common Preference Keys likely unused | Dead Code | Low | Preferences.swift | -| C.5 | TODO placeholder return 0 | Dead Code | Low | TUIKit.swift | +| C.5 | TODO placeholder return 0 | Dead Code | Low | TUIkit.swift | | C.6 | Menu pointless ternary `4 : 4` | Dead Code | Low | Menu.swift | | C.7 | Menu identical if/else branches | Dead Code | Low | Menu.swift | | C.8 | `_ = self` anti-pattern | Dead Code | Low | App.swift | | E.1 | Public types missing doc comments | Documentation | Medium | Multiple | | E.2 | Complex logic without inline comments | Documentation | Medium | KeyEvent, FrameBuffer, ViewRenderer | | E.3 | Missing contributor documentation | Documentation | Medium | Project root | -| E.4 | Example app missing demonstrations | Documentation | Low | TUIKitExample | +| E.4 | Example app missing demonstrations | Documentation | Low | TUIkitExample | | F.1 | 60+ magic hex values in KeyEvent | Constants | High | KeyEvent.swift | | F.2 | ANSI style codes as magic strings | Constants | Medium | ANSIRenderer.swift | | F.3 | Block characters scattered | Constants | Medium | Multiple |