Documentation
¶
Overview ¶
Package table is a vendored copy of charm.land/bubbles/v2/table (v2.0.0) with the addition of EnsureCursorVisible(). Original: MIT License, Copyright (c) 2020-2026 Charmbracelet, Inc.
Index ¶
- type Column
- type KeyMap
- type Model
- func (m *Model) Blur()
- func (m Model) Columns() []Column
- func (m Model) Cursor() int
- func (m *Model) EnsureCursorVisible()
- func (m *Model) Focus()
- func (m Model) Focused() bool
- func (m *Model) FromValues(value, separator string)
- func (m *Model) GotoBottom()
- func (m *Model) GotoTop()
- func (m Model) Height() int
- func (m Model) HelpView() string
- func (m *Model) MoveDown(n int)
- func (m *Model) MoveUp(n int)
- func (m *Model) RowAtY(localY int) int
- func (m Model) Rows() []Row
- func (m Model) SelectedRow() Row
- func (m *Model) SetColumns(c []Column)
- func (m *Model) SetColumnsAndRows(c []Column, r []Row)
- func (m *Model) SetContentWidth(w int)
- func (m *Model) SetCursor(n int)
- func (m *Model) SetHeight(h int)
- func (m *Model) SetLayout(cols []Column, w, h int)
- func (m *Model) SetRows(r []Row)
- func (m *Model) SetStyles(s Styles)
- func (m *Model) SetWidth(w int)
- func (m *Model) SetXOffset(n int)
- func (m Model) Update(msg tea.Msg) (Model, tea.Cmd)
- func (m *Model) UpdateViewport()
- func (m Model) View() string
- func (m Model) Width() int
- func (m Model) XOffset() int
- type Option
- type Row
- type Styles
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type KeyMap ¶
type KeyMap struct {
LineUp key.Binding
LineDown key.Binding
PageUp key.Binding
PageDown key.Binding
HalfPageUp key.Binding
HalfPageDown key.Binding
GotoTop key.Binding
GotoBottom key.Binding
}
KeyMap defines keybindings. It satisfies to the help.KeyMap interface, which is used to render the help menu.
func DefaultKeyMap ¶
func DefaultKeyMap() KeyMap
DefaultKeyMap returns a default set of keybindings.
type Model ¶
type Model struct {
KeyMap KeyMap
Help help.Model
// RowStyleFunc is an optional callback that returns a style override for a given row index.
// When set, if it returns non-nil for a row, that style is used instead of the default.
// For cursor rows (isCursor=true), it takes priority over styles.Selected.
RowStyleFunc func(index int, isCursor bool) *lipgloss.Style
// contains filtered or unexported fields
}
Model defines a state for the table widget.
func (*Model) EnsureCursorVisible ¶
func (m *Model) EnsureCursorVisible()
EnsureCursorVisible adjusts the viewport scroll offset so the cursor row is centered in the viewport. No-op if cursor is already in view.
func (*Model) Focus ¶
func (m *Model) Focus()
Focus focuses the table, allowing the user to move around the rows and interact.
func (*Model) FromValues ¶
FromValues create the table rows from a simple string. It uses `\n` by default for getting all the rows and the given separator for the fields on each row.
func (*Model) GotoBottom ¶
func (m *Model) GotoBottom()
GotoBottom moves the selection to the last row.
func (Model) HelpView ¶
HelpView is a helper method for rendering the help menu from the keymap. Note that this view is not rendered by default and you must call it manually in your application, where applicable.
func (*Model) MoveDown ¶
MoveDown moves the selection down by any number of rows. It can not go below the last row.
func (*Model) MoveUp ¶
MoveUp moves the selection up by any number of rows. It can not go above the first row.
func (*Model) RowAtY ¶ added in v0.5.0
RowAtY maps a y-coordinate (relative to the table's top-left, 0 = header row when a header is shown) to the underlying row index. Returns -1 if y falls on the header row, above it, or past the last data row. Pure lookup — does not mutate any state.
Header height is always 1 because View() always emits exactly one header line (see headersView()); the literal is used here instead of a lipgloss.Height round-trip for speed. If headers ever become optional or multi-line, recompute from headersView().
func (Model) SelectedRow ¶
SelectedRow returns the selected row. You can cast it to your own implementation.
func (*Model) SetColumns ¶
SetColumns sets a new columns state.
func (*Model) SetColumnsAndRows ¶
SetColumnsAndRows sets columns and rows in a single operation, calling UpdateViewport only once.
func (*Model) SetContentWidth ¶
SetContentWidth sets the total content width for horizontal scroll calculations.
func (*Model) SetLayout ¶
SetLayout sets columns, width, and height in a single operation, calling UpdateViewport only once instead of three times.
func (*Model) SetXOffset ¶
SetXOffset sets the horizontal scroll offset, clamped to valid range.
func (*Model) UpdateViewport ¶
func (m *Model) UpdateViewport()
UpdateViewport updates the list content based on the previously defined columns and rows.
type Option ¶
type Option func(*Model)
Option is used to set options in New. For example:
table := New(WithColumns([]Column{{Title: "ID", Width: 10}}))
func WithColumns ¶
WithColumns sets the table columns (headers).
type Styles ¶
Styles contains style definitions for this list component. By default, these values are generated by DefaultStyles.
func DefaultStyles ¶
func DefaultStyles() Styles
DefaultStyles returns a set of default style definitions for this table.