package ui type AppTile struct { Name string Description string URL string Icon string Color string Status string AdminOnly bool } func DefaultApps(role string) []AppTile { all := []AppTile{ {Name:"Admin Panel",Description:"Users, groups & settings",URL:"/admin",Color:"#9333ea",Icon:``,Status:"ready",AdminOnly:true}, {Name:"Files",Description:"Storage & sharing",URL:"/files",Color:"#2563eb",Icon:``,Status:"coming-soon"}, {Name:"Mail",Description:"Email client",URL:"/mail",Color:"#dc2626",Icon:``,Status:"coming-soon"}, {Name:"Calendar",Description:"Schedule & events",URL:"/calendar",Color:"#059669",Icon:``,Status:"coming-soon"}, {Name:"WorkSheets",Description:"Spreadsheets",URL:"/worksheets",Color:"#059669",Icon:``,Status:"coming-soon"}, {Name:"TypeWriter",Description:"Documents",URL:"/typewriter",Color:"#2563eb",Icon:``,Status:"coming-soon"}, {Name:"DeckCreator",Description:"Presentations",URL:"/deckcreator",Color:"#dc2626",Icon:``,Status:"coming-soon"}, {Name:"NotesFiles",Description:"Notes & files",URL:"/notesfiles",Color:"#d97706",Icon:``,Status:"coming-soon"}, {Name:"Contacts",Description:"People & directory",URL:"/contacts",Color:"#d97706",Icon:``,Status:"coming-soon"}, {Name:"Tasks",Description:"Project management",URL:"/tasks",Color:"#7c3aed",Icon:``,Status:"coming-soon"}, {Name:"Chat",Description:"Team messaging",URL:"/chat",Color:"#db2777",Icon:``,Status:"coming-soon"}, } filtered := make([]AppTile,0,len(all)) for _,a := range all { if a.AdminOnly && role != "admin" { continue } filtered = append(filtered, a) } return filtered } templ AppGrid(apps []AppTile) {