item.go

 1package lazylist
 2
 3import "charm.land/lipgloss/v2"
 4
 5// Item represents a single item in the lazy-loaded list.
 6type Item interface {
 7	// Render returns the string representation of the item for the given
 8	// width.
 9	Render(width int) string
10}
11
12// FocusStylable represents an item that can be styled based on focus state.
13type FocusStylable interface {
14	// FocusStyle returns the style to apply when the item is focused.
15	FocusStyle() lipgloss.Style
16	// BlurStyle returns the style to apply when the item is unfocused.
17	BlurStyle() lipgloss.Style
18}
19
20// HighlightStylable represents an item that can be styled for highlighted regions.
21type HighlightStylable interface {
22	// HighlightStyle returns the style to apply for highlighted regions.
23	HighlightStyle() lipgloss.Style
24}