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}