Proposal: provide tea.Context when initializing bubbles

This is a breaking API change as it changes the bubbles API.
This commit is contained in:
Christian Muehlhaeuser
2024-02-21 15:29:35 +01:00
parent eed309fb7d
commit 8f8d5fc7d9
+19 -19
View File
@@ -244,12 +244,12 @@ type Model struct {
} }
// New creates a new model with default settings. // New creates a new model with default settings.
func New() Model { func New(r *tea.Context) Model {
vp := viewport.New(0, 0) vp := viewport.New(0, 0)
vp.KeyMap = viewport.KeyMap{} vp.KeyMap = viewport.KeyMap{}
cur := cursor.New() cur := cursor.New()
focusedStyle, blurredStyle := DefaultStyles() focusedStyle, blurredStyle := DefaultStyles(r.Renderer)
m := Model{ m := Model{
CharLimit: defaultCharLimit, CharLimit: defaultCharLimit,
@@ -282,26 +282,26 @@ func New() Model {
// DefaultStyles returns the default styles for focused and blurred states for // DefaultStyles returns the default styles for focused and blurred states for
// the textarea. // the textarea.
func DefaultStyles() (Style, Style) { func DefaultStyles(r *lipgloss.Renderer) (Style, Style) {
focused := Style{ focused := Style{
Base: lipgloss.NewStyle(), Base: r.NewStyle(),
CursorLine: lipgloss.NewStyle().Background(lipgloss.AdaptiveColor{Light: "255", Dark: "0"}), CursorLine: r.NewStyle().Background(lipgloss.AdaptiveColor{Light: "255", Dark: "0"}),
CursorLineNumber: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "240"}), CursorLineNumber: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "240"}),
EndOfBuffer: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "254", Dark: "0"}), EndOfBuffer: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "254", Dark: "0"}),
LineNumber: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "249", Dark: "7"}), LineNumber: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "249", Dark: "7"}),
Placeholder: lipgloss.NewStyle().Foreground(lipgloss.Color("240")), Placeholder: r.NewStyle().Foreground(lipgloss.Color("240")),
Prompt: lipgloss.NewStyle().Foreground(lipgloss.Color("7")), Prompt: r.NewStyle().Foreground(lipgloss.Color("7")),
Text: lipgloss.NewStyle(), Text: r.NewStyle(),
} }
blurred := Style{ blurred := Style{
Base: lipgloss.NewStyle(), Base: r.NewStyle(),
CursorLine: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "245", Dark: "7"}), CursorLine: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "245", Dark: "7"}),
CursorLineNumber: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "249", Dark: "7"}), CursorLineNumber: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "249", Dark: "7"}),
EndOfBuffer: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "254", Dark: "0"}), EndOfBuffer: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "254", Dark: "0"}),
LineNumber: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "249", Dark: "7"}), LineNumber: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "249", Dark: "7"}),
Placeholder: lipgloss.NewStyle().Foreground(lipgloss.Color("240")), Placeholder: r.NewStyle().Foreground(lipgloss.Color("240")),
Prompt: lipgloss.NewStyle().Foreground(lipgloss.Color("7")), Prompt: r.NewStyle().Foreground(lipgloss.Color("7")),
Text: lipgloss.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "245", Dark: "7"}), Text: r.NewStyle().Foreground(lipgloss.AdaptiveColor{Light: "245", Dark: "7"}),
} }
return focused, blurred return focused, blurred