feat: add a Styler interface for styling bubbles

This change introduces a Styler interface that allows users to define
custom styles for bubbles. The interface is implemented by the StylerFunc
type, which is a function type that takes a boolean argument and returns
a value of any type.

This allows a user to define a custom StylerFunc that returns a custom
style for a bubble based on the background color of the terminal.
This commit is contained in:
Ayman Bagabas
2024-10-29 15:54:40 -04:00
parent db64e3cd78
commit 8fdc81c836
8 changed files with 34 additions and 33 deletions
+14
View File
@@ -1 +1,15 @@
package bubbles
// Styler represents an interface for styling bubbles.
type Styler[T any] interface {
Styles(isDark bool) T
}
// StylerFunc is a function type that implements the Styler interface.
type StylerFunc[T any] func(isDark bool) T
// Styles calls the function.
// It implements the Styler interface.
func (f StylerFunc[T]) Styles(isDark bool) T {
return f(isDark)
}