layout.go

 1package layout
 2
 3import (
 4	"github.com/charmbracelet/bubbles/v2/key"
 5	tea "github.com/charmbracelet/bubbletea/v2"
 6)
 7
 8type Focusable interface {
 9	Focus() tea.Cmd
10	Blur() tea.Cmd
11	IsFocused() bool
12}
13
14type Sizeable interface {
15	SetSize(width, height int) tea.Cmd
16	GetSize() (int, int)
17}
18
19type Help interface {
20	Bindings() []key.Binding
21}
22
23type Positionable interface {
24	SetPosition(x, y int) tea.Cmd
25}
26
27// KeyMapProvider defines an interface for types that can provide their key bindings as a slice
28type KeyMapProvider interface {
29	KeyBindings() []key.Binding
30}