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}