1package common23import (4 "charm.land/bubbles/v2/help"5 tea "charm.land/bubbletea/v2"6)78// Model represents a simple UI model.9type Model interface {10 Init() tea.Cmd11 Update(tea.Msg) (Model, tea.Cmd)12 View() string13}1415// Component represents a Bubble Tea model that implements a SetSize function.16type Component interface {17 Model18 help.KeyMap19 SetSize(width, height int)20}2122// TabComponenet represents a model that is mounted to a tab.23// TODO: find a better name24type TabComponent interface {25 Component2627 // StatusBarValue returns the status bar value component.28 StatusBarValue() string2930 // StatusBarInfo returns the status bar info component.31 StatusBarInfo() string3233 // SpinnerID returns the ID of the spinner.34 SpinnerID() int3536 // TabName returns the name of the tab.37 TabName() string3839 // Path returns the hierarchical path of the tab.40 Path() string41}