feat: add core types and styles for Tier management
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import "github.com/charmbracelet/lipgloss"
|
||||||
|
|
||||||
|
type Item string
|
||||||
|
|
||||||
|
type Tier struct {
|
||||||
|
Name string
|
||||||
|
Items []Item
|
||||||
|
Color lipgloss.Color
|
||||||
|
}
|
||||||
|
|
||||||
|
type SaveState struct {
|
||||||
|
Tiers []struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Items []Item `json:"items"`
|
||||||
|
} `json:"tiers"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Saver interface {
|
||||||
|
Save(filename string, state SaveState) error
|
||||||
|
Load(filename string) (SaveState, error)
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package styles
|
||||||
|
|
||||||
|
import "github.com/charmbracelet/lipgloss"
|
||||||
|
|
||||||
|
const red_color = "#FF7F7F"
|
||||||
|
const orange_color = "#FFBF7F"
|
||||||
|
const yellow_color = "#FFDF7F"
|
||||||
|
const light_yellow_color = "#FFFF7F"
|
||||||
|
const green_color = "#BFFF7F"
|
||||||
|
const blue_color = "#7F7FFF"
|
||||||
|
|
||||||
|
var (
|
||||||
|
TierColors = []lipgloss.Color{
|
||||||
|
lipgloss.Color(red_color),
|
||||||
|
lipgloss.Color(orange_color),
|
||||||
|
lipgloss.Color(yellow_color),
|
||||||
|
lipgloss.Color(light_yellow_color),
|
||||||
|
lipgloss.Color(green_color),
|
||||||
|
lipgloss.Color(blue_color),
|
||||||
|
}
|
||||||
|
|
||||||
|
TierLabelStyle = lipgloss.NewStyle().
|
||||||
|
Width(10).
|
||||||
|
Align(lipgloss.Center).
|
||||||
|
Bold(true).
|
||||||
|
Padding(1, 0).
|
||||||
|
MarginRight(1).Foreground(lipgloss.Color("0"))
|
||||||
|
|
||||||
|
ItemStyle = lipgloss.NewStyle().
|
||||||
|
Padding(0, 1).
|
||||||
|
Border(lipgloss.RoundedBorder()).
|
||||||
|
BorderForeground(lipgloss.Color("240")).
|
||||||
|
MarginRight(1)
|
||||||
|
|
||||||
|
SelectedItemStyle = ItemStyle.
|
||||||
|
BorderForeground(lipgloss.Color("69")).
|
||||||
|
Foreground(lipgloss.Color("255"))
|
||||||
|
|
||||||
|
DraggingItemStyle = ItemStyle.
|
||||||
|
BorderForeground(lipgloss.Color("220")).
|
||||||
|
Background(lipgloss.Color("236")).
|
||||||
|
Bold(true)
|
||||||
|
|
||||||
|
StatusStyle = lipgloss.NewStyle().
|
||||||
|
Foreground(lipgloss.Color("241")).
|
||||||
|
MarginTop(1)
|
||||||
|
|
||||||
|
InputBoxStyle = lipgloss.NewStyle().
|
||||||
|
Border(lipgloss.RoundedBorder()).
|
||||||
|
BorderForeground(lipgloss.Color("62")).
|
||||||
|
Padding(0, 1).
|
||||||
|
MarginTop(1)
|
||||||
|
|
||||||
|
HelpBoxStyle = lipgloss.NewStyle().
|
||||||
|
Border(lipgloss.RoundedBorder()).
|
||||||
|
BorderForeground(lipgloss.Color("62")).
|
||||||
|
Padding(1, 2).
|
||||||
|
Align(lipgloss.Left)
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user