mirror of
https://github.com/zoriya/bubbles.git
synced 2026-08-05 04:36:07 +00:00
docs(table): more godoc updates
This commit is contained in:
+32
-22
@@ -1,4 +1,4 @@
|
||||
// Package table provides a simple table component for Bubble Tea applications.
|
||||
// Package table provides a table component for Bubble Tea applications.
|
||||
package table
|
||||
|
||||
import (
|
||||
@@ -92,8 +92,8 @@ func DefaultKeyMap() KeyMap {
|
||||
}
|
||||
}
|
||||
|
||||
// Styles contains style definitions for this table component. By default, these
|
||||
// values are generated by DefaultStyles.
|
||||
// Styles contains style definitions for this table component. Load default
|
||||
// styles to your table with [DefaultStyles].
|
||||
type Styles struct {
|
||||
border lipgloss.Border
|
||||
borderStyle lipgloss.Style
|
||||
@@ -119,7 +119,8 @@ func DefaultStyles() Styles {
|
||||
}
|
||||
}
|
||||
|
||||
// NewFromTemplate lets you create a table [Model] from Lip Gloss' [table.Table].
|
||||
// NewFromTemplate lets you create a table [Model] from Lip Gloss'
|
||||
// [table.Table].
|
||||
func NewFromTemplate(t *table.Table, headers []string, rows [][]string) *Model {
|
||||
m := &Model{
|
||||
cursor: 0,
|
||||
@@ -158,7 +159,7 @@ func NewFromTemplate(t *table.Table, headers []string, rows [][]string) *Model {
|
||||
// top side, followed by the right side, then the bottom, and finally the left.
|
||||
// The final two values will set the row and column separators in that order.
|
||||
//
|
||||
// With more than four arguments nothing will be set.
|
||||
// With more than six arguments nothing will be set.
|
||||
func (m *Model) SetBorder(s ...bool) *Model {
|
||||
m.table.Border(m.styles.border)
|
||||
top, right, bottom, left, rowSeparator, columnSeparator := m.whichSides(s...)
|
||||
@@ -172,13 +173,20 @@ func (m *Model) SetBorder(s ...bool) *Model {
|
||||
return m
|
||||
}
|
||||
|
||||
// Border sets the top border.
|
||||
// Border sets the kind of border to use for the table. See [lipgloss.Border].
|
||||
func (m *Model) Border(border lipgloss.Border) *Model {
|
||||
m.styles.border = border
|
||||
m.table.Border(border)
|
||||
return m
|
||||
}
|
||||
|
||||
// BorderStyle sets the style for the table border.
|
||||
func (m *Model) BorderStyle(style lipgloss.Style) *Model {
|
||||
m.styles.borderStyle = style
|
||||
m.table.BorderStyle(style)
|
||||
return m
|
||||
}
|
||||
|
||||
// BorderBottom sets the bottom border.
|
||||
func (m *Model) BorderBottom(v bool) *Model {
|
||||
m.styles.borderBottom = v
|
||||
@@ -214,7 +222,7 @@ func (m *Model) BorderColumn(v bool) *Model {
|
||||
return m
|
||||
}
|
||||
|
||||
// BorderHeader sets the header's border.
|
||||
// BorderHeader sets the header border.
|
||||
func (m *Model) BorderHeader(v bool) *Model {
|
||||
m.styles.borderHeader = v
|
||||
m.table.BorderHeader(v)
|
||||
@@ -228,13 +236,6 @@ func (m *Model) BorderRow(v bool) *Model {
|
||||
return m
|
||||
}
|
||||
|
||||
// BorderStyle sets the style for the table border.
|
||||
func (m *Model) BorderStyle(style lipgloss.Style) *Model {
|
||||
m.styles.borderStyle = style
|
||||
m.table.BorderStyle(style)
|
||||
return m
|
||||
}
|
||||
|
||||
// Options
|
||||
|
||||
// Option is used to set options in [New]. For example:
|
||||
@@ -242,7 +243,8 @@ func (m *Model) BorderStyle(style lipgloss.Style) *Model {
|
||||
// table := New(WithHeaders([]string{"Rank", "City", "Country", "Population"}))
|
||||
type Option func(*Model)
|
||||
|
||||
// WithHeaders sets the table headers.
|
||||
// WithHeaders sets the table headers. This function is used as an [Option] in
|
||||
// when creating a table with [New].
|
||||
func WithHeaders(headers ...string) Option {
|
||||
return func(m *Model) {
|
||||
m.SetHeaders(headers...)
|
||||
@@ -252,7 +254,8 @@ func WithHeaders(headers ...string) Option {
|
||||
// TODO andrey confirm this... I'm pretty sure that's how it's working now
|
||||
//
|
||||
// WithHeight sets the height of the table. The given height will be the total
|
||||
// table height including borders, margins, and padding.
|
||||
// table height including borders, margins, and padding. This function is used
|
||||
// as an [Option] in when creating a table with [New].
|
||||
func WithHeight(h int) Option {
|
||||
return func(m *Model) {
|
||||
m.table.Height(h)
|
||||
@@ -260,14 +263,16 @@ func WithHeight(h int) Option {
|
||||
}
|
||||
|
||||
// WithWidth sets the width of the table. The given width will be the total
|
||||
// table width including borders, margins, and padding.
|
||||
// table width including borders, margins, and padding. This function is used as
|
||||
// an [Option] in when creating a table with [New].
|
||||
func WithWidth(w int) Option {
|
||||
return func(m *Model) {
|
||||
m.table.Width(w)
|
||||
}
|
||||
}
|
||||
|
||||
// WithRows sets the table rows.
|
||||
// WithRows sets the table rows. This function is used as an [Option] in when
|
||||
// creating a table with [New].
|
||||
func WithRows(rows ...[]string) Option {
|
||||
return func(m *Model) {
|
||||
m.SetRows(rows...)
|
||||
@@ -282,14 +287,16 @@ func WithFocused(f bool) Option {
|
||||
}
|
||||
}
|
||||
|
||||
// WithStyles sets the table styles.
|
||||
// WithStyles sets the table styles. This function is used as an [Option] in
|
||||
// when creating a table with [New].
|
||||
func WithStyles(s Styles) Option {
|
||||
return func(m *Model) {
|
||||
m.SetStyles(s)
|
||||
}
|
||||
}
|
||||
|
||||
// WithStyleFunc sets the table [table.StyleFunc] for conditional styling.
|
||||
// WithStyleFunc sets the table [table.StyleFunc] for conditional styling. This
|
||||
// function is used as an [Option] in when creating a table with [New].
|
||||
func WithStyleFunc(s table.StyleFunc) Option {
|
||||
return func(m *Model) {
|
||||
m.useStyleFunc = true
|
||||
@@ -297,7 +304,8 @@ func WithStyleFunc(s table.StyleFunc) Option {
|
||||
}
|
||||
}
|
||||
|
||||
// WithKeyMap sets the [KeyMap].
|
||||
// WithKeyMap sets the [KeyMap]. This function is used as an [Option] in when
|
||||
// creating a table with [New].
|
||||
func WithKeyMap(km KeyMap) Option {
|
||||
return func(m *Model) {
|
||||
m.KeyMap = km
|
||||
@@ -375,11 +383,13 @@ func (m *Model) OverwriteStyles(s Styles) *Model {
|
||||
return m
|
||||
}
|
||||
|
||||
// TODO
|
||||
// OverwriteStylesFromLipgloss sets the [Model]'s style attributes from an
|
||||
// existing [lipgloss.Table].
|
||||
func (m *Model) OverwriteStylesFromLipgloss(t *table.Table) {
|
||||
t.Rows(m.rows...)
|
||||
t.Headers(m.headers...)
|
||||
m.table = t
|
||||
m.useStyleFunc = true
|
||||
}
|
||||
|
||||
// SetStyleFunc sets the table's custom [table.StyleFunc]. Use this for conditional
|
||||
|
||||
Reference in New Issue
Block a user