tui

package
v0.14.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Package tui is the umbrella for the `jira tui` full-screen dashboard (alpha — the headless commands are the stable surface). The directory holds no code of its own; this file maps how the subpackages layer so a new view or widget starts in the right place.

Layers, bottom-up by import direction:

  • theme: lipgloss styles derived from the clib theme, applied once per process so every layer above shares one look.
  • keys: the global key map and the config-driven rebinding.
  • components: reusable Bubble Tea widgets (inputs, pickers, list viewport, markdown renderer, …) — Jira-free and core-free, so they stay testable in isolation.
  • core: the data-agnostic orchestration — the Section contract, the shared ProgramContext, the task manager, the registry, and the root App that routes messages without knowing what any view displays.
  • sections: the actual views (issues, settings), each implementing core.Section.

Command wiring — resolving a client, registering sections, running the program — lives in internal/cli/tui, keeping this tree free of cobra and profile concerns. goldens pins rendered frames across all layers.

Directories

Path Synopsis
components
action
Package action provides a single controller that collects input for the Jira verbs (transition, comment, assign, labels, worklog, edit) through one Mode-dispatched component, instead of a bespoke flow per action.
Package action provides a single controller that collects input for the Jira verbs (transition, comment, assign, labels, worklog, edit) through one Mode-dispatched component, instead of a bespoke flow per action.
activity
Package activity is the observational record of user-facing mutations for the `jira tui` dashboard: it feeds the footer's status slot (the most-recent operation and an in-flight count) and the scrollable operation-log overlay (every recorded mutation, newest-first).
Package activity is the observational record of user-facing mutations for the `jira tui` dashboard: it feeds the footer's status slot (the most-recent operation and an in-flight count) and the scrollable operation-log overlay (every recorded mutation, newest-first).
carousel
Package carousel renders a horizontal strip of labels with one active, and wraps navigation around the ends.
Package carousel renders a horizontal strip of labels with one active, and wraps navigation around the ends.
dialog
Package dialog is a domain-free stack of modal overlays for a Bubble Tea application.
Package dialog is a domain-free stack of modal overlays for a Bubble Tea application.
form
Package form is the modal text-input controller for overlay forms: an ordered set of single- and multi-line fields with one focus ring, a dirty-discard guard (esc on edited content asks yes/no instead of dropping it), a submit/cancel/editor event contract with a consumed-key signal, and a pluggable autocomplete seam (a trigger rune such as @ starts a query; suggestions are fetched asynchronously as commands).
Package form is the modal text-input controller for overlay forms: an ordered set of single- and multi-line fields with one focus ring, a dirty-discard guard (esc on edited content asks yes/no instead of dropping it), a submit/cancel/editor event contract with a consumed-key signal, and a pluggable autocomplete seam (a trigger rune such as @ starts a query; suggestions are fetched asynchronously as commands).
input
Package input is the TUI's shared text-entry substrate: thin themed wrappers over bubbles/textinput and textarea, plus the external-editor hop.
Package input is the TUI's shared text-entry substrate: thin themed wrappers over bubbles/textinput and textarea, plus the external-editor hop.
keybind
Package keybind is the name-indexed key-rebinding registry: a map of stable lower-case names to bubbles key.Binding pointers, with config-driven overrides and enumeration.
Package keybind is the name-indexed key-rebinding registry: a map of stable lower-case names to bubbles key.Binding pointers, with config-driven overrides and enumeration.
listviewport
Package listviewport is a scrollable, single-selection list of pre-rendered rows.
Package listviewport is a scrollable, single-selection list of pre-rendered rows.
markdown
Package markdown renders GFM (produced by internal/adf) for the TUI and the release-notes plain view through glamour, with a style derived from the active clib theme so issue bodies and comments match the rest of the dashboard.
Package markdown renders GFM (produced by internal/adf) for the TUI and the release-notes plain view through glamour, with a style derived from the active clib theme so issue bodies and comments match the rest of the dashboard.
palette
Package palette is a fuzzy, type-to-filter command list for a command-palette dialog.
Package palette is a fuzzy, type-to-filter command list for a command-palette dialog.
picker
Package picker is a vertical, type-to-filter select list for modal choices (workflow transitions today; assignees, labels and facet values next).
Package picker is a vertical, type-to-filter select list for modal choices (workflow transitions today; assignees, labels and facet values next).
pill
Package pill renders a labeled cycle selector — "type ‹ Task ›" — a compact one-of chooser for a form field that needs no text area.
Package pill renders a labeled cycle selector — "type ‹ Task ›" — a compact one-of chooser for a form field that needs no text area.
suggest
Package suggest is a session-scoped, in-memory TTL cache for slow keyed lookups behind the TUI create form — issue-type lists per project and the assignee/label suggestion queries that would otherwise re-hit Jira on every keystroke or reopen.
Package suggest is a session-scoped, in-memory TTL cache for slow keyed lookups behind the TUI create form — issue-type lists per project and the assignee/label suggestion queries that would otherwise re-hit Jira on every keystroke or reopen.
task
Package task is the generation-tracked async work manager for a Bubble Tea app: named scopes group work, every start bumps the scope's monotonic generation, and a finished result is accepted only while its generation is still the latest — so a superseded fetch (the user refreshed again, changed filters, moved on) is dropped instead of overwriting newer state.
Package task is the generation-tracked async work manager for a Bubble Tea app: named scopes group work, every start bumps the scope's monotonic generation, and a finished result is accepted only while its generation is still the latest — so a superseded fetch (the user refreshed again, changed filters, moved on) is dropped instead of overwriting newer state.
titlebox
Package titlebox draws a rounded box with its title embedded in the top border — "╭ title ─────╮" — around a body the caller has already rendered.
Package titlebox draws a rounded box with its title embedded in the top border — "╭ title ─────╮" — around a body the caller has already rendered.
Package core defines the contracts every TUI view is built on: the Section interface, the shared ProgramContext, the async task manager, the section registry and the typed message set.
Package core defines the contracts every TUI view is built on: the Section interface, the shared ProgramContext, the async task manager, the section registry and the typed message set.
Package icons is the TUI's glyph table: one Set per icon mode (Nerd Font or plain Unicode) so both stay complete, selected by the tui.icons config key.
Package icons is the TUI's glyph table: one Set per icon mode (Nerd Font or plain Unicode) so both stay complete, selected by the tui.icons config key.
Package keys holds the global key map for the section-based TUI and the config-driven rebinding that lets users override any binding by name.
Package keys holds the global key map for the section-based TUI and the config-driven rebinding that lets users override any binding by name.
sections
issues
Package issues is the triage-home section: the personal queue a reviewer works down.
Package issues is the triage-home section: the personal queue a reviewer works down.
settings
Package settings is the dashboard's configuration view: it shows where the active config came from and what it resolved to, offers a manual reload, and watches the file (on the shared refresh heartbeat) so edits hot-apply without restarting the TUI.
Package settings is the dashboard's configuration view: it shows where the active config came from and what it resolved to, offers a manual reload, and watches the file (on the shared refresh heartbeat) so edits hot-apply without restarting the TUI.
Package theme defines lipgloss styles shared across the Jira TUI.
Package theme defines lipgloss styles shared across the Jira TUI.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL