• v1.1.5 db0ff65746

    v1.1.5 Stable

    kahliburke released this 2026-03-19 17:52:46 -07:00 | 76 commits to main since this release

    TabBar: stateful widget with overflow and mouse support

    TabBar is now a mutable, stateful widget — consistent with RadioGroup, SelectableList, and other interactive widgets. Previously it was an immutable display-only struct.

    • handle_key! — left/right/tab to switch tabs (requires focused=true)
    • handle_mouse! — click a tab to switch, returns :changed or :none
    • value / set_value! — get/set the active tab index
    • Automatic overflow — when tabs exceed available width, the visible window scrolls to keep the active tab in view with indicators on clipped sides
    • Mouse hit testing — tab bounding rects are cached during render for accurate click detection

    Fully backwards compatible. Existing code that constructs TabBar inline in view() works unchanged.

    Closes #22. Thanks @ronisbr for the report.

    Other

    • New tabbar_demo in the demos launcher
    • Updated sysmon demo to use the new stateful TabBar API
    • Fix light-mode-dependent test failures in sixel/kitty encoder tests
    Downloads