Skip to content

Renamed the package from 'drevops/tui' to 'drevops/phptui'. - #155

Merged
AlexSkrypnyk merged 1 commit into
mainfrom
feature/rename-to-phptui
Aug 12, 2026
Merged

Renamed the package from 'drevops/tui' to 'drevops/phptui'.#155
AlexSkrypnyk merged 1 commit into
mainfrom
feature/rename-to-phptui

Conversation

@AlexSkrypnyk

Copy link
Copy Markdown
Member

Summary

Renames the package from drevops/tui to drevops/phptui across its whole identity: the Composer package name, the PHP namespace, the default headless environment prefix, the repository URLs and the documentation site configuration. The library already published its homepage as phptui.dev while shipping under the tui name, so this closes the gap between what the project is called and what it ships as.

This is a breaking change for consumers on two axes: every use DrevOps\Tui\... import becomes use DrevOps\PhpTui\..., and every headless TUI_<ID> environment variable becomes PHPTUI_<ID>. The facade class stays Tui, so new Tui($form) and Tui::collect() are unchanged.

Changes

Package identity

  • composer.json: the package name, both support URLs, and the PSR-4 roots for src/ and tests/phpunit.
  • README.md: the six shields badges, the composer require line, the logo alt text and the prose references.
  • CONTRIBUTING.md, playground/README.md and docs/architecture/README.md.

PHP namespace

  • DrevOps\Tui\ becomes DrevOps\PhpTui\ across src/, tests/, playground/, translations/ and every documentation code block - namespace declarations, use statements, docblock FQNs and @package tags alike.
  • Six prose docblocks were reflowed where the three extra characters pushed them past the 80-column comment wrap. Docblock @param, @return and @var tag lines are left long, matching the convention the codebase already follows for unbreakable type expressions.

Environment prefix

  • The default headless prefix TUI_ becomes PHPTUI_ in Tui::__construct(), and every example, test and playground usage block that names it. Forms that declare their own prefix with ->envPrefix() are unaffected.

Documentation site

  • docusaurus.config.js: projectName, the site title, the navbar logo alt text, the editUrl and the three GitHub links; phptui added to the search keywords.
  • docs/package.json and docs/package-lock.json: the package is now @drevops/phptui-docs.
  • docs/src/pages/index.js: the install command, the repository blob base and the terminal chrome label on the landing page.
  • docs/cspell.json: PHPTUI and phptui added to the dictionary so the spellcheck gate passes.

Architecture diagrams

  • The three PlantUML sources carry the new name in their titles and header comments, and all six SVGs (light plus derived dark) were regenerated with the render-phptui-diagrams skill rather than hand-patched.

Agent tooling

  • The render-tui-diagrams skill is renamed to render-phptui-diagrams, following the project-scope segment of the skill naming convention, along with its references in AGENTS.md and the docs.

Verification

  • composer test - 2918 tests, 6445 assertions, all passing.
  • composer lint - PHPCS across 465 files, PHPStan level 9, Rector, all clean.
  • php docs/util/audit-svgs.php - 661 assets audited, no issues.
  • npm run build and npm test in docs/ - the site builds, and jest, cspell and Prettier all pass.
  • PHPTUI_NAME='Weekly Box' php playground/01-quickstart.php < /dev/null resolves the answer through the new prefix end to end.

Follow-up outside this PR

  • The GitHub repository rename to drevops/phptui (GitHub redirects the old URLs, so the badges in this diff resolve either way).
  • Packagist and Netlify registration.
  • The tui-docs.netlify.app preview URL in README.md is left as-is, since renaming that site is a separate manual step.

Before / After

BEFORE                                   AFTER
──────────────────────────────────────   ──────────────────────────────────────

composer.json                            composer.json
  name: drevops/tui                        name: drevops/phptui
  psr-4: DrevOps\Tui\  -> src/             psr-4: DrevOps\PhpTui\  -> src/

consumer code                            consumer code
  use DrevOps\Tui\Tui;                     use DrevOps\PhpTui\Tui;
  use DrevOps\Tui\Builder\Form;            use DrevOps\PhpTui\Builder\Form;
  $answers = (new Tui($form))->run();      $answers = (new Tui($form))->run();
         └─ facade unchanged ──────────────────────┘

headless run                             headless run
  TUI_NAME='Weekly Box' php app.php        PHPTUI_NAME='Weekly Box' php app.php
  TUI_FRUIT=cherry                         PHPTUI_FRUIT=cherry

repository + docs                        repository + docs
  github.com/drevops/tui                   github.com/drevops/phptui
  @drevops/tui-docs                        @drevops/phptui-docs
  projectName: 'tui'                       projectName: 'phptui'
  homepage: phptui.dev  ◄── already        homepage: phptui.dev
                            aligned

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 516 files, which is 216 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0cf5b8f4-a9e0-4fb9-99fe-46d59636da9a

📥 Commits

Reviewing files that changed from the base of the PR and between 5068050 and 288e9ae.

⛔ Files ignored due to path filters (7)
  • docs/architecture/architecture-dark.svg is excluded by !**/*.svg
  • docs/architecture/architecture.svg is excluded by !**/*.svg
  • docs/architecture/dataflow-collect-dark.svg is excluded by !**/*.svg
  • docs/architecture/dataflow-collect.svg is excluded by !**/*.svg
  • docs/architecture/dataflow-tui-dark.svg is excluded by !**/*.svg
  • docs/architecture/dataflow-tui.svg is excluded by !**/*.svg
  • docs/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (516)
  • .claude/skills/render-phptui-diagrams/SKILL.md
  • AGENTS.md
  • CONTRIBUTING.md
  • README.md
  • composer.json
  • docs/architecture/README.md
  • docs/architecture/architecture.puml
  • docs/architecture/dataflow-collect.puml
  • docs/architecture/dataflow-tui.puml
  • docs/content/ai-agents.mdx
  • docs/content/architecture.mdx
  • docs/content/configuration.mdx
  • docs/content/contributing.mdx
  • docs/content/display-modes.mdx
  • docs/content/field-behaviour.mdx
  • docs/content/fields/anatomy.mdx
  • docs/content/fields/calendar.mdx
  • docs/content/fields/confirm.mdx
  • docs/content/fields/filepicker.mdx
  • docs/content/fields/index.mdx
  • docs/content/fields/number.mdx
  • docs/content/fields/option-groups.mdx
  • docs/content/fields/password.mdx
  • docs/content/fields/pause.mdx
  • docs/content/fields/rating.mdx
  • docs/content/fields/reorder.mdx
  • docs/content/fields/search.mdx
  • docs/content/fields/select.mdx
  • docs/content/fields/suggest.mdx
  • docs/content/fields/template.mdx
  • docs/content/fields/text.mdx
  • docs/content/fields/textarea.mdx
  • docs/content/fields/toggle.mdx
  • docs/content/headless-collection.mdx
  • docs/content/index.mdx
  • docs/content/installation.mdx
  • docs/content/key-bindings.mdx
  • docs/content/layouts.mdx
  • docs/content/markdown.mdx
  • docs/content/markup.mdx
  • docs/content/output.mdx
  • docs/content/panels.mdx
  • docs/content/playground.mdx
  • docs/content/progress-row.mdx
  • docs/content/progress.mdx
  • docs/content/specification.mdx
  • docs/content/testing.mdx
  • docs/content/themes.mdx
  • docs/content/translations.mdx
  • docs/cspell.json
  • docs/docusaurus.config.js
  • docs/package.json
  • docs/src/pages/index.js
  • docs/util/derive-dark-diagram.js
  • docs/util/render-anatomy-svgs.php
  • docs/util/render-field-svgs.php
  • docs/util/render-output-svgs.php
  • docs/util/render-progress-svgs.php
  • docs/util/render-social-card.php
  • docs/util/render-theme-svgs.php
  • docs/util/update-assets.php
  • playground/01-quickstart.php
  • playground/02-fields-all-fields.php
  • playground/02-fields-calendar.php
  • playground/02-fields-confirm.php
  • playground/02-fields-filepicker-multiple-limited.php
  • playground/02-fields-filepicker-multiple.php
  • playground/02-fields-filepicker.php
  • playground/02-fields-number.php
  • playground/02-fields-password-reveal.php
  • playground/02-fields-password.php
  • playground/02-fields-pause.php
  • playground/02-fields-rating.php
  • playground/02-fields-reorder.php
  • playground/02-fields-search-multiple-limited.php
  • playground/02-fields-search-multiple.php
  • playground/02-fields-search.php
  • playground/02-fields-select-descriptions.php
  • playground/02-fields-select-groups.php
  • playground/02-fields-select-multiple-groups.php
  • playground/02-fields-select-multiple-limited.php
  • playground/02-fields-select-multiple.php
  • playground/02-fields-select.php
  • playground/02-fields-suggest.php
  • playground/02-fields-template.php
  • playground/02-fields-text.php
  • playground/02-fields-textarea.php
  • playground/02-fields-toggle.php
  • playground/02-markup-table.php
  • playground/02-markup.php
  • playground/02-progress-row.php
  • playground/03-panels-bordered.php
  • playground/03-panels-borderless.php
  • playground/03-panels-fullscreen.php
  • playground/03-panels-layout.php
  • playground/03-panels-modal.php
  • playground/03-panels-nested.php
  • playground/04-inline-editing.php
  • playground/05-form-logic-conditional-fields.php
  • playground/05-form-logic-conditional-indent.php
  • playground/05-form-logic-conditional-section.php
  • playground/05-form-logic-derived-values.php
  • playground/05-form-logic-fixup-rules.php
  • playground/06-field-behaviour-closures.php
  • playground/06-field-behaviour-handlers.php
  • playground/07-discovery.php
  • playground/08-headless-agent-cli.php
  • playground/08-headless-agent-help.php
  • playground/08-headless-collect.php
  • playground/08-headless-schema.php
  • playground/09-themes-custom.php
  • playground/09-themes-dos.php
  • playground/09-themes-elements.php
  • playground/09-themes-ember.php
  • playground/09-themes-field-boxed.php
  • playground/09-themes-field-underline.php
  • playground/09-themes-floor.php
  • playground/09-themes-frost.php
  • playground/09-themes-midnight.php
  • playground/09-themes-mono.php
  • playground/09-themes-options.php
  • playground/10-key-bindings-custom.php
  • playground/10-key-bindings-vim.php
  • playground/11-display-modes-ascii.php
  • playground/11-display-modes-glyph-gallery.php
  • playground/11-display-modes-markdown.php
  • playground/11-display-modes-mode-auto.php
  • playground/11-display-modes-mode-forced.php
  • playground/11-display-modes-no-color.php
  • playground/12-specification-screen.php
  • playground/12-translations.php
  • playground/13-testing.php
  • playground/14-produce-box.php
  • playground/15-progress-bar.php
  • playground/15-progress-spinner.php
  • playground/16-loading-data.php
  • playground/17-query-options.php
  • playground/18-output-box.php
  • playground/18-output-definitions.php
  • playground/18-output-status.php
  • playground/18-output-table.php
  • playground/18-output-text.php
  • playground/19-dynamic-options.php
  • playground/20-layouts-custom.php
  • playground/20-layouts-nested.php
  • playground/20-layouts-region-flow.php
  • playground/20-layouts-scrolling.php
  • playground/README.md
  • playground/layouts/MarketHallLayout.php
  • playground/layouts/MarketLayout.php
  • playground/layouts/StallFloorLayout.php
  • playground/layouts/StallLayout.php
  • playground/themes/AccentTheme.php
  • playground/themes/OceanTheme.php
  • playground/themes/PlainTheme.php
  • src/Answers/Answer.php
  • src/Answers/Answers.php
  • src/Answers/Provenance.php
  • src/Answers/SummaryFormatter.php
  • src/Answers/ValueFormatter.php
  • src/Block/AbstractBlock.php
  • src/Block/Actions.php
  • src/Block/BlockInterface.php
  • src/Block/Breadcrumb.php
  • src/Block/Buttons.php
  • src/Block/Capability/ActivateCapableInterface.php
  • src/Block/Capability/BindCapableInterface.php
  • src/Block/Capability/BindCapableTrait.php
  • src/Block/Capability/CaptureCapableInterface.php
  • src/Block/Capability/CollectCapableInterface.php
  • src/Block/Capability/ConstrainCapableInterface.php
  • src/Block/Capability/DependCapableInterface.php
  • src/Block/Capability/DependCapableTrait.php
  • src/Block/Capability/DescendCapableInterface.php
  • src/Block/Capability/FocusCapableInterface.php
  • src/Block/Capability/FocusCapableTrait.php
  • src/Block/Capability/OverlayCapableInterface.php
  • src/Block/Capability/RejectCapableInterface.php
  • src/Block/DateBounds.php
  • src/Block/Element/ActionsElementsInterface.php
  • src/Block/Element/BorderElementsInterface.php
  • src/Block/Element/BreadcrumbElementsInterface.php
  • src/Block/Element/ChromeElementsInterface.php
  • src/Block/Element/FieldElementsInterface.php
  • src/Block/Element/LegendElementsInterface.php
  • src/Block/Element/MarkupElementsInterface.php
  • src/Block/Element/PanelElementsInterface.php
  • src/Block/Element/ProgressElementsInterface.php
  • src/Block/Field.php
  • src/Block/FieldType.php
  • src/Block/FilePickerConstraints.php
  • src/Block/FilePickerMode.php
  • src/Block/FileSizeUnit.php
  • src/Block/Legend.php
  • src/Block/Markup.php
  • src/Block/Mode.php
  • src/Block/NumberBounds.php
  • src/Block/Option.php
  • src/Block/OptionType.php
  • src/Block/Panel.php
  • src/Block/Progress.php
  • src/Block/Prose.php
  • src/Block/RenderMode.php
  • src/Block/SelectionBounds.php
  • src/Block/TableSpec.php
  • src/Block/Template.php
  • src/Block/Tree.php
  • src/Block/Weekday.php
  • src/Builder/FieldBuilder.php
  • src/Builder/Fixup.php
  • src/Builder/Form.php
  • src/Builder/PanelBuilder.php
  • src/CancelException.php
  • src/CollectException.php
  • src/Condition/CompositeCondition.php
  • src/Condition/CompositeOperator.php
  • src/Condition/Condition.php
  • src/Condition/ConditionInterface.php
  • src/Derive/Derive.php
  • src/Derive/Deriver.php
  • src/Derive/Transform.php
  • src/Discovery/AbstractDiscover.php
  • src/Discovery/DiscoverInterface.php
  • src/Discovery/Dotenv.php
  • src/Discovery/JsonValue.php
  • src/Discovery/PathExists.php
  • src/Discovery/Scan.php
  • src/Discovery/ScanType.php
  • src/Field/AbstractField.php
  • src/Field/Calendar.php
  • src/Field/Capability/CompletionCapableInterface.php
  • src/Field/Capability/CompletionCapableTrait.php
  • src/Field/Capability/ExternalEditCapableInterface.php
  • src/Field/Capability/FilterCapableInterface.php
  • src/Field/Capability/FilterCapableTrait.php
  • src/Field/Capability/OptionsCapableInterface.php
  • src/Field/Capability/OptionsCapableTrait.php
  • src/Field/Capability/PagingCapableInterface.php
  • src/Field/Capability/PagingCapableTrait.php
  • src/Field/Capability/PlaceholderCapableInterface.php
  • src/Field/Capability/PlaceholderCapableTrait.php
  • src/Field/Capability/QueryOptionsCapableInterface.php
  • src/Field/Capability/QueryOptionsCapableTrait.php
  • src/Field/Capability/RevealCapableInterface.php
  • src/Field/Capability/SearchCapableInterface.php
  • src/Field/Capability/SearchCapableTrait.php
  • src/Field/Capability/SelectionBoundedTrait.php
  • src/Field/Capability/SelectionCapableInterface.php
  • src/Field/Capability/SelectionCapableTrait.php
  • src/Field/Capability/StepCapableInterface.php
  • src/Field/Capability/TextEditCapableInterface.php
  • src/Field/Capability/TextEditCapableTrait.php
  • src/Field/Confirm.php
  • src/Field/FieldFactory.php
  • src/Field/FieldInterface.php
  • src/Field/FilePicker.php
  • src/Field/MatchResult.php
  • src/Field/MatchTier.php
  • src/Field/Matcher.php
  • src/Field/Number.php
  • src/Field/Password.php
  • src/Field/PasswordDisplay.php
  • src/Field/Pause.php
  • src/Field/Rating.php
  • src/Field/Reorder.php
  • src/Field/Search.php
  • src/Field/Select.php
  • src/Field/Suggest.php
  • src/Field/Template.php
  • src/Field/Text.php
  • src/Field/Textarea.php
  • src/Field/Toggle.php
  • src/FormException.php
  • src/Handler/Context.php
  • src/Handler/HandlerRegistry.php
  • src/Input/Action.php
  • src/Input/Binding.php
  • src/Input/DefaultKeyMap.php
  • src/Input/Hint.php
  • src/Input/Key.php
  • src/Input/KeyMap.php
  • src/Input/KeyMapManager.php
  • src/Input/KeyName.php
  • src/Input/KeyParser.php
  • src/Input/Scope.php
  • src/Input/ScopedKeyMap.php
  • src/Input/VimKeyMap.php
  • src/InterruptException.php
  • src/Primitive/Element/PrimitiveElementsInterface.php
  • src/Primitive/Output.php
  • src/Primitive/Progress.php
  • src/Primitive/ProgressReporter.php
  • src/Primitive/Status.php
  • src/Resolver/EnvNameResolver.php
  • src/Resolver/InputResolver.php
  • src/Schema/AgentHelp.php
  • src/Schema/DefaultResolver.php
  • src/Schema/OptionsResolver.php
  • src/Schema/SchemaGenerator.php
  • src/Schema/SchemaValidator.php
  • src/Screen/Assembler.php
  • src/Screen/Axis.php
  • src/Screen/Capability/BorderCapableInterface.php
  • src/Screen/Capability/BorderCapableTrait.php
  • src/Screen/Capability/ScrollCapableInterface.php
  • src/Screen/Capability/ScrollCapableTrait.php
  • src/Screen/Collector.php
  • src/Screen/Ending.php
  • src/Screen/ExternalEditor.php
  • src/Screen/Furniture.php
  • src/Screen/KeyRouter.php
  • src/Screen/Layout/AbstractLayout.php
  • src/Screen/Layout/DefaultLayout.php
  • src/Screen/Layout/GridLayout.php
  • src/Screen/Layout/LayoutInterface.php
  • src/Screen/Layout/LayoutManager.php
  • src/Screen/Layout/PanelLayout.php
  • src/Screen/Layout/TwoColumnLayout.php
  • src/Screen/Overlay.php
  • src/Screen/Region.php
  • src/Screen/Screen.php
  • src/Screen/ScreenController.php
  • src/Screen/ScreenRenderer.php
  • src/Screen/Scroller.php
  • src/Screen/Sizing.php
  • src/Screen/Source.php
  • src/Screen/Viewport.php
  • src/Terminal/Ansi.php
  • src/Terminal/Box.php
  • src/Terminal/Markup.php
  • src/Terminal/MarkupLine.php
  • src/Terminal/MarkupSegment.php
  • src/Terminal/MarkupType.php
  • src/Terminal/Table.php
  • src/Terminal/Terminal.php
  • src/Terminal/TerminalControl.php
  • src/Testing/ArrayKeyStream.php
  • src/Testing/BufferedTerminal.php
  • src/Testing/FieldRunner.php
  • src/Testing/KeyEncoder.php
  • src/Testing/KeyStreamInterface.php
  • src/Testing/ScreenTester.php
  • src/Testing/TuiTester.php
  • src/Theme/AbstractTheme.php
  • src/Theme/ArgumentType.php
  • src/Theme/Border.php
  • src/Theme/BorderSide.php
  • src/Theme/Capability/ColorSchemeCapableInterface.php
  • src/Theme/Capability/ColorSchemeCapableTrait.php
  • src/Theme/Capability/DimCapableInterface.php
  • src/Theme/Capability/MarkdownCapableInterface.php
  • src/Theme/Capability/OccupyCapableInterface.php
  • src/Theme/Capability/OverrideCapableInterface.php
  • src/Theme/Capability/UnicodeCapableInterface.php
  • src/Theme/Capability/UnicodeCapableTrait.php
  • src/Theme/DeclaredType.php
  • src/Theme/DefaultTheme.php
  • src/Theme/DosTheme.php
  • src/Theme/EmberTheme.php
  • src/Theme/FieldStyle.php
  • src/Theme/FrostTheme.php
  • src/Theme/HAlign.php
  • src/Theme/MidnightTheme.php
  • src/Theme/Mode.php
  • src/Theme/MonoTheme.php
  • src/Theme/Override/BreadcrumbOverrides.php
  • src/Theme/Override/FieldOverrides.php
  • src/Theme/Override/Glyph.php
  • src/Theme/Override/LegendOverrides.php
  • src/Theme/Override/Overrides.php
  • src/Theme/Override/ThemeElement.php
  • src/Theme/Sgr.php
  • src/Theme/Spacing.php
  • src/Theme/ThemeBuilder.php
  • src/Theme/ThemeInterface.php
  • src/Theme/ThemeManager.php
  • src/Theme/VAlign.php
  • src/Translation/Translator.php
  • src/Tui.php
  • src/Utils/Strings.php
  • tests/phpunit/Fixtures/Form/AllFieldsForm.php
  • tests/phpunit/Fixtures/Handler/MachineName.php
  • tests/phpunit/Fixtures/Handler/Plain.php
  • tests/phpunit/Fixtures/Screen/Layout/BareLayout.php
  • tests/phpunit/Fixtures/Screen/Layout/HomelessLayout.php
  • tests/phpunit/Fixtures/Screen/Layout/NoFooterLayout.php
  • tests/phpunit/Fixtures/Screen/Layout/RegionlessLayout.php
  • tests/phpunit/Fixtures/Screen/Layout/StallLayout.php
  • tests/phpunit/Fixtures/Screen/SpawnStubEditor.php
  • tests/phpunit/Fixtures/Terminal/ProbeTerminal.php
  • tests/phpunit/Fixtures/Terminal/RecordingTerminal.php
  • tests/phpunit/Fixtures/Theme/AccentOptionTheme.php
  • tests/phpunit/Fixtures/Theme/AlternativeWidthTheme.php
  • tests/phpunit/Fixtures/Theme/BlankTheme.php
  • tests/phpunit/Fixtures/Theme/CapableTheme.php
  • tests/phpunit/Fixtures/Theme/FloorOptionTheme.php
  • tests/phpunit/Fixtures/Theme/FloorTheme.php
  • tests/phpunit/Fixtures/Theme/IntersectedWidthTheme.php
  • tests/phpunit/Fixtures/Theme/LenientWidthTheme.php
  • tests/phpunit/Fixtures/Theme/OceanTheme.php
  • tests/phpunit/Fixtures/Theme/UnbuildableTheme.php
  • tests/phpunit/Fixtures/Theme/WidenedWidthTheme.php
  • tests/phpunit/Fixtures/translations-plural/de.php
  • tests/phpunit/Fixtures/translations-plural/uk.php
  • tests/phpunit/Traits/AssertsPagingTrait.php
  • tests/phpunit/Traits/BuildsThemesTrait.php
  • tests/phpunit/Traits/IsolatesEnvTrait.php
  • tests/phpunit/Traits/MixedOptionsTrait.php
  • tests/phpunit/Traits/ResetsRegistriesTrait.php
  • tests/phpunit/Traits/ResetsTranslatorTrait.php
  • tests/phpunit/Unit/Answers/AnswersTest.php
  • tests/phpunit/Unit/Answers/ProvenanceTest.php
  • tests/phpunit/Unit/Answers/SummaryFormatterTest.php
  • tests/phpunit/Unit/Answers/ValueFormatterTest.php
  • tests/phpunit/Unit/Block/BlockTest.php
  • tests/phpunit/Unit/Block/ButtonsTest.php
  • tests/phpunit/Unit/Block/CapabilityTest.php
  • tests/phpunit/Unit/Block/DateBoundsTest.php
  • tests/phpunit/Unit/Block/FieldBlockTest.php
  • tests/phpunit/Unit/Block/FieldDeclarationTest.php
  • tests/phpunit/Unit/Block/FilePickerConstraintsTest.php
  • tests/phpunit/Unit/Block/NumberBoundsTest.php
  • tests/phpunit/Unit/Block/OptionTest.php
  • tests/phpunit/Unit/Block/PanelTest.php
  • tests/phpunit/Unit/Block/SelectionBoundsTest.php
  • tests/phpunit/Unit/Block/TableSpecTest.php
  • tests/phpunit/Unit/Block/TemplateTest.php
  • tests/phpunit/Unit/Block/WeekdayTest.php
  • tests/phpunit/Unit/Builder/BlockTreeTest.php
  • tests/phpunit/Unit/Builder/FormTest.php
  • tests/phpunit/Unit/Condition/ConditionTest.php
  • tests/phpunit/Unit/ControlBytesTest.php
  • tests/phpunit/Unit/Derive/DeriveTest.php
  • tests/phpunit/Unit/Derive/DeriverTest.php
  • tests/phpunit/Unit/Derive/TransformTest.php
  • tests/phpunit/Unit/Discovery/DiscoverSpecsTest.php
  • tests/phpunit/Unit/DynamicOptionsTest.php
  • tests/phpunit/Unit/Field/CalendarTest.php
  • tests/phpunit/Unit/Field/ConfirmTest.php
  • tests/phpunit/Unit/Field/FieldFactoryTest.php
  • tests/phpunit/Unit/Field/FilePickerTest.php
  • tests/phpunit/Unit/Field/MatcherTest.php
  • tests/phpunit/Unit/Field/NumberTest.php
  • tests/phpunit/Unit/Field/PasswordDisplayTest.php
  • tests/phpunit/Unit/Field/PasswordTest.php
  • tests/phpunit/Unit/Field/PauseTest.php
  • tests/phpunit/Unit/Field/RatingTest.php
  • tests/phpunit/Unit/Field/ReorderTest.php
  • tests/phpunit/Unit/Field/SearchTest.php
  • tests/phpunit/Unit/Field/SelectTest.php
  • tests/phpunit/Unit/Field/SuggestTest.php
  • tests/phpunit/Unit/Field/TemplateTest.php
  • tests/phpunit/Unit/Field/TextTest.php
  • tests/phpunit/Unit/Field/TextareaTest.php
  • tests/phpunit/Unit/Field/ToggleTest.php
  • tests/phpunit/Unit/Handler/HandlerRegistryTest.php
  • tests/phpunit/Unit/Input/HintTest.php
  • tests/phpunit/Unit/Input/KeyMapTest.php
  • tests/phpunit/Unit/Input/KeyParserTest.php
  • tests/phpunit/Unit/Primitive/OutputTest.php
  • tests/phpunit/Unit/Primitive/ProgressTest.php
  • tests/phpunit/Unit/ProgressRowTest.php
  • tests/phpunit/Unit/ProgressableTest.php
  • tests/phpunit/Unit/QueryOptionsTest.php
  • tests/phpunit/Unit/Resolver/EnvNameResolverTest.php
  • tests/phpunit/Unit/Resolver/InputResolverTest.php
  • tests/phpunit/Unit/Schema/AgentHelpTest.php
  • tests/phpunit/Unit/Schema/DefaultResolverTest.php
  • tests/phpunit/Unit/Schema/SchemaGeneratorTest.php
  • tests/phpunit/Unit/Schema/SchemaValidatorTest.php
  • tests/phpunit/Unit/Screen/BuilderGapsTest.php
  • tests/phpunit/Unit/Screen/BuilderTest.php
  • tests/phpunit/Unit/Screen/CollectorResolutionTest.php
  • tests/phpunit/Unit/Screen/CollectorTest.php
  • tests/phpunit/Unit/Screen/ExternalEditorTest.php
  • tests/phpunit/Unit/Screen/KeyRouterTest.php
  • tests/phpunit/Unit/Screen/Layout/GridLayoutTest.php
  • tests/phpunit/Unit/Screen/Layout/LayoutManagerTest.php
  • tests/phpunit/Unit/Screen/Layout/LayoutTest.php
  • tests/phpunit/Unit/Screen/OverlayTest.php
  • tests/phpunit/Unit/Screen/RegionTest.php
  • tests/phpunit/Unit/Screen/ScreenControllerTest.php
  • tests/phpunit/Unit/Screen/ScreenParityTest.php
  • tests/phpunit/Unit/Screen/ScreenRenderTest.php
  • tests/phpunit/Unit/Screen/ScreenTest.php
  • tests/phpunit/Unit/Screen/ScrollerTest.php
  • tests/phpunit/Unit/Terminal/AnsiTest.php
  • tests/phpunit/Unit/Terminal/BoxTest.php
  • tests/phpunit/Unit/Terminal/MarkupTest.php
  • tests/phpunit/Unit/Terminal/TableTest.php
  • tests/phpunit/Unit/Terminal/TerminalControlTest.php
  • tests/phpunit/Unit/Terminal/TerminalTest.php
  • tests/phpunit/Unit/Testing/AllFieldsFormTest.php
  • tests/phpunit/Unit/Testing/BufferedTerminalTest.php
  • tests/phpunit/Unit/Testing/KeyEncoderTest.php
  • tests/phpunit/Unit/Testing/KeyStreamTest.php
  • tests/phpunit/Unit/Testing/ScreenTesterTest.php
  • tests/phpunit/Unit/Testing/TuiTesterTest.php
  • tests/phpunit/Unit/Theme/AbstractThemeTest.php
  • tests/phpunit/Unit/Theme/BuiltinThemesTest.php
  • tests/phpunit/Unit/Theme/ElementDelegationTest.php
  • tests/phpunit/Unit/Theme/OutputRenderTest.php
  • tests/phpunit/Unit/Theme/ProgressRenderTest.php
  • tests/phpunit/Unit/Theme/ScaleRenderTest.php
  • tests/phpunit/Unit/Theme/SupportTest.php
  • tests/phpunit/Unit/Theme/ThemeBuilderTest.php
  • tests/phpunit/Unit/Theme/ThemeManagerTest.php
  • tests/phpunit/Unit/Theme/ThemeOptionsTest.php
  • tests/phpunit/Unit/Theme/ThemeRenderTest.php
  • tests/phpunit/Unit/Theme/ThemeTest.php
  • tests/phpunit/Unit/Translation/ChromeCatalogTest.php
  • tests/phpunit/Unit/Translation/TranslationRenderTest.php
  • tests/phpunit/Unit/Translation/TranslatorTest.php
  • tests/phpunit/Unit/TuiTest.php
  • tests/phpunit/Unit/Utils/StringsTest.php
  • translations/uk.php

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Code Coverage Report:
  2026-08-12 01:57:32

 Summary:
  Classes: 80.67% (121/150)
  Methods: 95.76% (1492/1558)
  Lines:   98.05% (5936/6054)

DrevOps\PhpTui\Answers\Answer
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Answers\Answers
  Methods: 100.00% (11/11)   Lines: 100.00% ( 23/ 23)
DrevOps\PhpTui\Answers\Provenance
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  7/  7)
DrevOps\PhpTui\Answers\SummaryFormatter
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 22/ 22)
DrevOps\PhpTui\Answers\ValueFormatter
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  6/  6)
DrevOps\PhpTui\Block\AbstractBlock
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  3/  3)
DrevOps\PhpTui\Block\Actions
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 25/ 25)
DrevOps\PhpTui\Block\Breadcrumb
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  6/  6)
DrevOps\PhpTui\Block\Buttons
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Block\Capability\BindCapableTrait
  Methods:  80.00% ( 4/ 5)   Lines:  90.00% (  9/ 10)
DrevOps\PhpTui\Block\Capability\DependCapableTrait
  Methods: 100.00% (10/10)   Lines: 100.00% ( 19/ 19)
DrevOps\PhpTui\Block\Capability\FocusCapableTrait
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  5/  5)
DrevOps\PhpTui\Block\DateBounds
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 28/ 28)
DrevOps\PhpTui\Block\Field
  Methods:  97.69% (127/130)   Lines:  95.74% (382/399)
DrevOps\PhpTui\Block\FieldType
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 24/ 24)
DrevOps\PhpTui\Block\FilePickerConstraints
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 53/ 53)
DrevOps\PhpTui\Block\Legend
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% ( 34/ 34)
DrevOps\PhpTui\Block\Markup
  Methods: 100.00% (10/10)   Lines: 100.00% ( 27/ 27)
DrevOps\PhpTui\Block\NumberBounds
  Methods:  83.33% ( 5/ 6)   Lines:  95.24% ( 20/ 21)
DrevOps\PhpTui\Block\Option
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% ( 18/ 18)
DrevOps\PhpTui\Block\Panel
  Methods:  91.89% (34/37)   Lines:  95.73% (112/117)
DrevOps\PhpTui\Block\Progress
  Methods: 100.00% (13/13)   Lines: 100.00% ( 37/ 37)
DrevOps\PhpTui\Block\Prose
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 16/ 16)
DrevOps\PhpTui\Block\SelectionBounds
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 23/ 23)
DrevOps\PhpTui\Block\TableSpec
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  9/  9)
DrevOps\PhpTui\Block\Template
  Methods: 100.00% (19/19)   Lines: 100.00% ( 69/ 69)
DrevOps\PhpTui\Block\Tree
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 52/ 52)
DrevOps\PhpTui\Block\Weekday
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 15/ 15)
DrevOps\PhpTui\Builder\FieldBuilder
  Methods:  98.41% (62/63)   Lines:  99.08% (216/218)
DrevOps\PhpTui\Builder\Fixup
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Builder\Form
  Methods:  87.50% (21/24)   Lines:  96.27% (129/134)
DrevOps\PhpTui\Builder\PanelBuilder
  Methods:  96.97% (32/33)   Lines:  98.86% ( 87/ 88)
DrevOps\PhpTui\Condition\CompositeCondition
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 19/ 19)
DrevOps\PhpTui\Condition\Condition
  Methods: 100.00% (10/10)   Lines: 100.00% ( 38/ 38)
DrevOps\PhpTui\Derive\Derive
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 10/ 10)
DrevOps\PhpTui\Derive\Deriver
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% ( 13/ 13)
DrevOps\PhpTui\Derive\Transform
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  7/  7)
DrevOps\PhpTui\Discovery\AbstractDiscover
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Discovery\Dotenv
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 19/ 19)
DrevOps\PhpTui\Discovery\JsonValue
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 16/ 16)
DrevOps\PhpTui\Discovery\PathExists
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  3/  3)
DrevOps\PhpTui\Discovery\Scan
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 20/ 20)
DrevOps\PhpTui\Field\AbstractField
  Methods:  91.30% (21/23)   Lines:  96.88% ( 62/ 64)
DrevOps\PhpTui\Field\Calendar
  Methods: 100.00% (13/13)   Lines: 100.00% ( 52/ 52)
DrevOps\PhpTui\Field\Capability\CompletionCapableTrait
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% ( 16/ 16)
DrevOps\PhpTui\Field\Capability\FilterCapableTrait
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 15/ 15)
DrevOps\PhpTui\Field\Capability\OptionsCapableTrait
  Methods: 100.00% (10/10)   Lines: 100.00% ( 36/ 36)
DrevOps\PhpTui\Field\Capability\PagingCapableTrait
  Methods:  80.00% ( 4/ 5)   Lines:  94.74% ( 18/ 19)
DrevOps\PhpTui\Field\Capability\PlaceholderCapableTrait
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  7/  7)
DrevOps\PhpTui\Field\Capability\QueryOptionsCapableTrait
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 36/ 36)
DrevOps\PhpTui\Field\Capability\SearchCapableTrait
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  4/  4)
DrevOps\PhpTui\Field\Capability\SelectionBoundedTrait
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  4/  4)
DrevOps\PhpTui\Field\Capability\SelectionCapableTrait
  Methods: 100.00% (14/14)   Lines: 100.00% ( 95/ 95)
DrevOps\PhpTui\Field\Capability\TextEditCapableTrait
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 36/ 36)
DrevOps\PhpTui\Field\Confirm
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 24/ 24)
DrevOps\PhpTui\Field\FieldFactory
  Methods: 100.00% (12/12)   Lines: 100.00% ( 59/ 59)
DrevOps\PhpTui\Field\FilePicker
  Methods: 100.00% (32/32)   Lines: 100.00% (180/180)
DrevOps\PhpTui\Field\MatchResult
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Field\MatchTier
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  6/  6)
DrevOps\PhpTui\Field\Matcher
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 75/ 75)
DrevOps\PhpTui\Field\Number
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 31/ 31)
DrevOps\PhpTui\Field\Password
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 45/ 45)
DrevOps\PhpTui\Field\PasswordDisplay
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  5/  5)
DrevOps\PhpTui\Field\Pause
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% ( 11/ 11)
DrevOps\PhpTui\Field\Rating
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 25/ 25)
DrevOps\PhpTui\Field\Reorder
  Methods: 100.00% (11/11)   Lines: 100.00% ( 58/ 58)
DrevOps\PhpTui\Field\Search
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 17/ 17)
DrevOps\PhpTui\Field\Select
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  8/  8)
DrevOps\PhpTui\Field\Suggest
  Methods: 100.00% (19/19)   Lines: 100.00% ( 75/ 75)
DrevOps\PhpTui\Field\Template
  Methods: 100.00% (14/14)   Lines: 100.00% ( 63/ 63)
DrevOps\PhpTui\Field\Text
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 18/ 18)
DrevOps\PhpTui\Field\Textarea
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 48/ 48)
DrevOps\PhpTui\Field\Toggle
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 30/ 30)
DrevOps\PhpTui\Handler\HandlerRegistry
  Methods:  85.71% ( 6/ 7)   Lines:  95.45% ( 21/ 22)
DrevOps\PhpTui\Input\Binding
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Input\DefaultKeyMap
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% ( 48/ 48)
DrevOps\PhpTui\Input\Hint
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  2/  2)
DrevOps\PhpTui\Input\Key
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 11/ 11)
DrevOps\PhpTui\Input\KeyMap
  Methods: 100.00% (11/11)   Lines: 100.00% ( 61/ 61)
DrevOps\PhpTui\Input\KeyMapManager
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  8/  8)
DrevOps\PhpTui\Input\KeyParser
  Methods:  85.71% ( 6/ 7)   Lines:  98.95% ( 94/ 95)
DrevOps\PhpTui\Input\Scope
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 17/ 17)
DrevOps\PhpTui\Input\ScopedKeyMap
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% (  4/  4)
DrevOps\PhpTui\Input\VimKeyMap
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% ( 12/ 12)
DrevOps\PhpTui\Primitive\Output
  Methods: 100.00% (17/17)   Lines: 100.00% ( 25/ 25)
DrevOps\PhpTui\Primitive\Progress
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 29/ 29)
DrevOps\PhpTui\Primitive\ProgressReporter
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  2/  2)
DrevOps\PhpTui\Resolver\EnvNameResolver
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% (  9/  9)
DrevOps\PhpTui\Resolver\InputResolver
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% ( 30/ 30)
DrevOps\PhpTui\Schema\AgentHelp
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 75/ 75)
DrevOps\PhpTui\Schema\DefaultResolver
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  8/  8)
DrevOps\PhpTui\Schema\OptionsResolver
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  6/  6)
DrevOps\PhpTui\Schema\SchemaGenerator
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 51/ 51)
DrevOps\PhpTui\Schema\SchemaValidator
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 41/ 41)
DrevOps\PhpTui\Screen\Assembler
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 21/ 21)
DrevOps\PhpTui\Screen\Capability\BorderCapableTrait
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  9/  9)
DrevOps\PhpTui\Screen\Capability\ScrollCapableTrait
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  9/  9)
DrevOps\PhpTui\Screen\Collector
  Methods: 100.00% (30/30)   Lines: 100.00% (195/195)
DrevOps\PhpTui\Screen\ExternalEditor
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 27/ 27)
DrevOps\PhpTui\Screen\KeyRouter
  Methods:  90.91% (30/33)   Lines:  97.92% (188/192)
DrevOps\PhpTui\Screen\Layout\AbstractLayout
  Methods: 100.00% (15/15)   Lines: 100.00% ( 79/ 79)
DrevOps\PhpTui\Screen\Layout\DefaultLayout
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  4/  4)
DrevOps\PhpTui\Screen\Layout\GridLayout
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 28/ 28)
DrevOps\PhpTui\Screen\Layout\LayoutManager
  Methods:  75.00% ( 6/ 8)   Lines:  59.38% ( 19/ 32)
DrevOps\PhpTui\Screen\Layout\TwoColumnLayout
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  3/  3)
DrevOps\PhpTui\Screen\Overlay
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 24/ 24)
DrevOps\PhpTui\Screen\Region
  Methods:  94.44% (17/18)   Lines:  93.94% ( 31/ 33)
DrevOps\PhpTui\Screen\Screen
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  9/  9)
DrevOps\PhpTui\Screen\ScreenController
  Methods:  96.83% (61/63)   Lines:  98.83% (424/429)
DrevOps\PhpTui\Screen\ScreenRenderer
  Methods:  90.70% (39/43)   Lines:  98.25% (280/285)
DrevOps\PhpTui\Screen\Scroller
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 14/ 14)
DrevOps\PhpTui\Screen\Viewport
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Terminal\Ansi
  Methods: 100.00% (13/13)   Lines: 100.00% ( 63/ 63)
DrevOps\PhpTui\Terminal\Box
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 15/ 15)
DrevOps\PhpTui\Terminal\Markup
  Methods: 100.00% (10/10)   Lines: 100.00% ( 69/ 69)
DrevOps\PhpTui\Terminal\MarkupSegment
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Terminal\Table
  Methods: 100.00% ( 9/ 9)   Lines: 100.00% ( 64/ 64)
DrevOps\PhpTui\Terminal\Terminal
  Methods:  95.65% (22/23)   Lines:  96.97% ( 64/ 66)
DrevOps\PhpTui\Terminal\TerminalControl
  Methods: 100.00% (11/11)   Lines: 100.00% ( 11/ 11)
DrevOps\PhpTui\Testing\ArrayKeyStream
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 12/ 12)
DrevOps\PhpTui\Testing\BufferedTerminal
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 12/ 12)
DrevOps\PhpTui\Testing\FieldRunner
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  5/  5)
DrevOps\PhpTui\Testing\KeyEncoder
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% ( 22/ 22)
DrevOps\PhpTui\Testing\ScreenTester
  Methods:  91.67% (22/24)   Lines:  94.87% ( 74/ 78)
DrevOps\PhpTui\Testing\TuiTester
  Methods:  76.47% (13/17)   Lines:  86.67% ( 52/ 60)
DrevOps\PhpTui\Theme\AbstractTheme
  Methods:  84.29% (59/70)   Lines:  84.42% ( 65/ 77)
DrevOps\PhpTui\Theme\Capability\ColorSchemeCapableTrait
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% (  9/  9)
DrevOps\PhpTui\Theme\Capability\UnicodeCapableTrait
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  2/  2)
DrevOps\PhpTui\Theme\DefaultTheme
  Methods:  92.19% (118/128)   Lines:  96.68% (349/361)
DrevOps\PhpTui\Theme\DosTheme
  Methods: 100.00% (12/12)   Lines: 100.00% ( 14/ 14)
DrevOps\PhpTui\Theme\EmberTheme
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  5/  5)
DrevOps\PhpTui\Theme\FrostTheme
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  5/  5)
DrevOps\PhpTui\Theme\MidnightTheme
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  5/  5)
DrevOps\PhpTui\Theme\MonoTheme
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% (  6/  6)
DrevOps\PhpTui\Theme\Override\BreadcrumbOverrides
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  3/  3)
DrevOps\PhpTui\Theme\Override\FieldOverrides
  Methods:  85.71% ( 6/ 7)   Lines:  84.62% ( 11/ 13)
DrevOps\PhpTui\Theme\Override\Glyph
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Theme\Override\LegendOverrides
  Methods:  66.67% ( 2/ 3)   Lines:  60.00% (  3/  5)
DrevOps\PhpTui\Theme\Override\Overrides
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% (  6/  6)
DrevOps\PhpTui\Theme\Sgr
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
DrevOps\PhpTui\Theme\ThemeBuilder
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% (  8/  8)
DrevOps\PhpTui\Theme\ThemeManager
  Methods:  85.71% ( 6/ 7)   Lines:  97.44% ( 38/ 39)
DrevOps\PhpTui\Translation\Translator
  Methods: 100.00% (18/18)   Lines: 100.00% ( 87/ 87)
DrevOps\PhpTui\Tui
  Methods: 100.00% (34/34)   Lines: 100.00% (118/118)
DrevOps\PhpTui\Utils\Strings
  Methods: 100.00% ( 6/ 6)   Lines: 100.00% ( 31/ 31)

@AlexSkrypnyk AlexSkrypnyk added the Needs review Pull request needs a review from assigned developers label Aug 12, 2026
@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.05%. Comparing base (5068050) to head (288e9ae).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #155   +/-   ##
=======================================
  Coverage   98.05%   98.05%           
=======================================
  Files         150      150           
  Lines        6054     6054           
=======================================
  Hits         5936     5936           
  Misses        118      118           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@AlexSkrypnyk
AlexSkrypnyk merged commit d3ef67e into main Aug 12, 2026
12 checks passed
@AlexSkrypnyk
AlexSkrypnyk deleted the feature/rename-to-phptui branch August 12, 2026 01:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs review Pull request needs a review from assigned developers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant