tui

package
v0.1.33 Latest Latest
Warning

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

Go to latest
Published: May 10, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Client      *api.Client
	Fingerprint string
	Username    string // SSH session username for the @swap header tag

	// DryRun stops the wizard at the Quote step. Pressing Confirm shows
	// the would-be order shape but never calls POST /create. Useful for
	// integration tests and 'try before you commit funds' tours.
	DryRun bool

	// InitialWidth / InitialHeight let SSH hosts seed dimensions before
	// the first WindowSizeMsg arrives, so the alt-screen flip on
	// connection-start renders the form immediately instead of a void.
	InitialWidth  int
	InitialHeight int

	// ClipboardWriter is the same io.Writer Bubble Tea is configured with
	// via tea.WithOutput, wrapped in a mutex (see LockedWriter). The model
	// writes OSC 52 clipboard escapes directly through it instead of
	// embedding them in View() output — bubbletea's renderer is not a
	// safe transport for device-control sequences.
	ClipboardWriter *LockedWriter
}

type LockedWriter added in v0.1.29

type LockedWriter struct {
	// contains filtered or unexported fields
}

LockedWriter is the same io.Writer Bubble Tea is configured with via tea.WithOutput, wrapped in a mutex so the model's clipboard-write path (OSC 52 emission) can share the single output stream without racing the renderer's frame writes.

Codex review (2026-05-09 23:50) flagged routing OSC 52 through View() as the weak link — bubbletea's standard renderer runs ansi.Truncate / ansi.StringWidth / line-diff over View output, which is not a safe transport for device-control sequences. Direct out-of-band writes via this locked writer keep View() purely visual.

func NewLockedWriter added in v0.1.29

func NewLockedWriter(w io.Writer) *LockedWriter

func (*LockedWriter) Write added in v0.1.29

func (lw *LockedWriter) Write(p []byte) (int, error)

type Model

type Model struct {
	// contains filtered or unexported fields
}

func New

func New(cfg Config) Model

func (Model) Init

func (m Model) Init() tea.Cmd

func (Model) Update

func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (Model) View

func (m Model) View() string

Jump to

Keyboard shortcuts

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