package ui import "fmt" // AppTile represents an application card on the workspace launcher. type AppTile struct { Name string Description string URL string Icon string // Emoji or SVG Color string // Background color for icon Status string // "ready", "coming-soon", "beta" } // DefaultApps returns the default set of workspace apps. // These are placeholder tiles until supervisor modules are built. func DefaultApps() []AppTile { return []AppTile{ { Name: "Admin Panel", Description: "Manage users, groups, and workspace settings", URL: "/admin", Icon: "⚙️", Color: "#1e293b", Status: "ready", }, { Name: "Files", Description: "Coming soon — File storage and sharing", URL: "#", Icon: "📁", Color: "#1e293b", Status: "coming-soon", }, { Name: "Calendar", Description: "Coming soon — Schedule and events", URL: "#", Icon: "📅", Color: "#1e293b", Status: "coming-soon", }, { Name: "Mail", Description: "Coming soon — Email integration", URL: "#", Icon: "✉️", Color: "#1e293b", Status: "coming-soon", }, { Name: "Office", Description: "Coming soon — Documents and spreadsheets", URL: "#", Icon: "📝", Color: "#1e293b", Status: "coming-soon", }, { Name: "Settings", Description: "Coming soon — Workspace preferences", URL: "#", Icon: "🔧", Color: "#1e293b", Status: "coming-soon", }, } } templ AppGrid(apps []AppTile) {

Applications

for _, app := range apps { @appCard(app) }
} templ appCard(app AppTile) { if app.Status == "coming-soon" {
{ app.Icon }
{ app.Name }
{ app.Description }
● Coming Soon
} else {
{ app.Icon }
{ app.Name }
{ app.Description }
● Available
} }