Documentation
¶
Index ¶
- Variables
- func ASCIIBanner(frame int) string
- func ActiveThemeIndex() int
- func CategoryTag(emoji, label string) string
- func CycleTheme() string
- func DetailTabs(snap core.UsageSnapshot) []string
- func LoadThemes(configDir string) error
- func MetaTag(icon, text string) string
- func MetaTagHighlight(icon, text string) string
- func ProviderColor(providerID string) lipgloss.Color
- func PulseChar(bright, dim string, frame int) string
- func RenderBrailleChart(title string, series []BrailleSeries, w, h int, yFmt func(float64) string) string
- func RenderBudgetGauge(label string, used, limit float64, barW, labelW int, color lipgloss.Color, ...) string
- func RenderDetailContent(snap core.UsageSnapshot, w int, warnThresh, critThresh float64, activeTab int) string
- func RenderGauge(percent float64, width int, warnThresh, critThresh float64) string
- func RenderGradientText(text string, frame int) string
- func RenderHBarChart(items []chartItem, maxBarW, labelW int) string
- func RenderHeatmap(spec HeatmapSpec, w int) string
- func RenderInlineGauge(pct float64, w int) string
- func RenderMiniGauge(usedPercent float64, width int) string
- func RenderShimmerGauge(width, frame int) string
- func RenderSparkline(values []float64, w int, color lipgloss.Color) string
- func RenderStackedUsageGauge(segments []GaugeSegment, totalPercent float64, width int) string
- func RenderTimeChart(spec TimeChartSpec, w int) string
- func RenderTokenBreakdown(input, output float64, w int) string
- func RenderUsageGauge(usedPercent float64, width int, warnThresh, critThresh float64) string
- func SetThemeByName(name string) bool
- func StatusBadge(s core.Status) string
- func StatusBorderColor(s core.Status) lipgloss.Color
- func StatusColor(s core.Status) lipgloss.Color
- func StatusIcon(s core.Status) string
- func StatusPill(s core.Status) string
- func ThemeName() string
- type AppUpdateMsg
- type BrailleSeries
- type DaemonStatus
- type DaemonStatusMsg
- type DetailTab
- type GaugeSegment
- type HeatmapSpec
- type Model
- func (m Model) Init() tea.Cmd
- func (m *Model) SetOnAddAccount(fn func(core.AccountConfig))
- func (m *Model) SetOnInstallDaemon(fn func() error)
- func (m *Model) SetOnRefresh(fn func())
- func (m *Model) SetOnTimeWindowChange(fn func(string))
- func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m Model) View() string
- type Panel
- type PanelRow
- type SnapshotsMsg
- type Theme
- type TimeChartMode
- type TimeChartSpec
Constants ¶
This section is empty.
Variables ¶
var BrandGradient []lipgloss.Color
var SpinnerFrames = []string{"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"}
Functions ¶
func ASCIIBanner ¶
func ActiveThemeIndex ¶ added in v0.6.0
func ActiveThemeIndex() int
func CategoryTag ¶
func CycleTheme ¶
func CycleTheme() string
func DetailTabs ¶
func DetailTabs(snap core.UsageSnapshot) []string
func LoadThemes ¶ added in v0.6.0
LoadThemes reloads the theme catalog from the default theme, bundled themes, plus external theme files.
External files are loaded from:
- <configDir>/themes
- each path in OPENUSAGE_THEME_DIR (path-list separated)
Invalid theme files are skipped. The function returns an aggregated error when one or more files fail to load, while still keeping valid themes available.
func MetaTagHighlight ¶
func ProviderColor ¶
func RenderBrailleChart ¶
func RenderBudgetGauge ¶
func RenderDetailContent ¶
func RenderGauge ¶
func RenderGradientText ¶
func RenderHBarChart ¶
func RenderHeatmap ¶ added in v0.5.0
func RenderHeatmap(spec HeatmapSpec, w int) string
func RenderInlineGauge ¶
func RenderMiniGauge ¶
func RenderShimmerGauge ¶ added in v0.5.5
RenderShimmerGauge draws an animated empty gauge track with a moving bright spot, used as a loading placeholder before real data arrives.
func RenderStackedUsageGauge ¶ added in v0.5.5
func RenderStackedUsageGauge(segments []GaugeSegment, totalPercent float64, width int) string
RenderStackedUsageGauge draws a multi-segment usage gauge bar. Each segment occupies a proportional share of the filled area. totalPercent is the overall usage percentage shown in the label.
func RenderTimeChart ¶ added in v0.5.0
func RenderTimeChart(spec TimeChartSpec, w int) string
func RenderTokenBreakdown ¶
func RenderUsageGauge ¶
func SetThemeByName ¶
func StatusBadge ¶
func StatusIcon ¶
func StatusPill ¶
Types ¶
type AppUpdateMsg ¶ added in v0.5.7
type BrailleSeries ¶
type DaemonStatus ¶ added in v0.5.0
type DaemonStatus string
const ( DaemonConnecting DaemonStatus = "connecting" DaemonNotInstalled DaemonStatus = "not_installed" DaemonStarting DaemonStatus = "starting" DaemonRunning DaemonStatus = "running" DaemonOutdated DaemonStatus = "outdated" DaemonError DaemonStatus = "error" )
type DaemonStatusMsg ¶ added in v0.5.0
type DaemonStatusMsg struct {
Status DaemonStatus
Message string
InstallHint string
}
type GaugeSegment ¶ added in v0.5.5
GaugeSegment represents one colored segment of a stacked gauge bar.
type HeatmapSpec ¶ added in v0.5.0
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
func NewModel ¶
func NewModel( warnThresh, critThresh float64, experimentalAnalytics bool, dashboardCfg config.DashboardConfig, accounts []core.AccountConfig, timeWindow core.TimeWindow, ) Model
func (*Model) SetOnAddAccount ¶ added in v0.2.0
func (m *Model) SetOnAddAccount(fn func(core.AccountConfig))
SetOnAddAccount sets a callback invoked when a new provider account is added via the API Keys tab.
func (*Model) SetOnInstallDaemon ¶ added in v0.5.0
func (*Model) SetOnRefresh ¶ added in v0.4.0
func (m *Model) SetOnRefresh(fn func())
SetOnRefresh sets a callback invoked when the user requests a manual refresh.
func (*Model) SetOnTimeWindowChange ¶ added in v0.5.2
SetOnTimeWindowChange sets a callback invoked when the user changes the time window.
type SnapshotsMsg ¶
type SnapshotsMsg map[string]core.UsageSnapshot
type Theme ¶
type Theme struct {
Name string `json:"name"`
Icon string `json:"icon"`
Base lipgloss.Color `json:"base"`
Mantle lipgloss.Color `json:"mantle"`
Surface0 lipgloss.Color `json:"surface0"`
Surface1 lipgloss.Color `json:"surface1"`
Surface2 lipgloss.Color `json:"surface2"`
Overlay lipgloss.Color `json:"overlay"`
Text lipgloss.Color `json:"text"`
Subtext lipgloss.Color `json:"subtext"`
Dim lipgloss.Color `json:"dim"`
Accent lipgloss.Color `json:"accent"`
Blue lipgloss.Color `json:"blue"`
Sapphire lipgloss.Color `json:"sapphire"`
Green lipgloss.Color `json:"green"`
Yellow lipgloss.Color `json:"yellow"`
Red lipgloss.Color `json:"red"`
Peach lipgloss.Color `json:"peach"`
Teal lipgloss.Color `json:"teal"`
Flamingo lipgloss.Color `json:"flamingo"`
Rosewater lipgloss.Color `json:"rosewater"`
Lavender lipgloss.Color `json:"lavender"`
Sky lipgloss.Color `json:"sky"`
Maroon lipgloss.Color `json:"maroon"`
}
Theme represents the full visual token set used by the TUI.
External themes can be defined as JSON files with matching snake_case fields, for example: {"name":"My Theme","base":"#111111",...}.
func ActiveTheme ¶ added in v0.6.0
func ActiveTheme() Theme
func AvailableThemes ¶ added in v0.6.0
func AvailableThemes() []Theme
type TimeChartMode ¶ added in v0.5.0
type TimeChartMode int
const ( TimeChartLine TimeChartMode = iota TimeChartStacked TimeChartBars )
type TimeChartSpec ¶ added in v0.5.0
type TimeChartSpec struct {
Title string
Mode TimeChartMode
Series []BrailleSeries
Height int
MaxSeries int
WindowDays int
YFmt func(float64) string
}