1package app23import (4 "strings"56 "charm.land/bubbles/v2/list"7 "github.com/FelineStateMachine/puzzletea/registry"8)910type categoryItem struct {11 entry registry.Entry12}1314func (i categoryItem) Title() string { return i.entry.Definition.Name }15func (i categoryItem) Description() string { return i.entry.Definition.Description }16func (i categoryItem) FilterValue() string {17 parts := []string{i.entry.Definition.Name, i.entry.Definition.Description}18 parts = append(parts, i.entry.Definition.Aliases...)19 return strings.TrimSpace(strings.Join(parts, " "))20}2122func buildCategoryItems() []list.Item {23 entries := registry.Entries()24 items := make([]list.Item, 0, len(entries))25 for _, entry := range entries {26 items = append(items, categoryItem{entry: entry})27 }28 return items29}3031func selectedCategoryEntry(item list.Item) (registry.Entry, bool) {32 category, ok := item.(categoryItem)33 if !ok {34 return registry.Entry{}, false35 }36 return category.entry, true37}