// Path: Frontend/src/components/app-shell/data/shell.scaffold.ts import { Bell, CircleHelp, FileText, Folder, Home, Keyboard, LayoutGrid, ListCollapse, LogOut, Repeat, Search, Settings, Shield, User, } from "../../../lib/icons"; import type { ActiveDepartment, ActiveProject, ActiveServer, ActiveUserProfile, DepartmentItem, MobileBottomNavItem, NotificationItem, ProfileMenuSection, ProjectItem, RailItem, ServerDockAction, SidebarHeaderAction, TopBarAction, WorkspaceStaticItem, WorkspaceTreeNode, } from "./shell.types"; export const personalDockActions: readonly ServerDockAction[] = [ { id: "account", label: "Account", icon: User }, { id: "settings", label: "Settings", icon: Settings }, ] as const; export const organizationAdminDockActions: readonly ServerDockAction[] = [ { id: "members", label: "Members", icon: User }, { id: "server", label: "Server", icon: Settings }, ] as const; export const railItems: readonly RailItem[] = [ { id: "personal-server", label: "Personal Server Name", abbreviation: "P", kind: "personal" }, { id: "organization-server", label: "Organization Name", abbreviation: "O", kind: "organization", active: true }, { id: "design-review", label: "Design Review", abbreviation: "D", kind: "organization" }, ] as const; export const activeServer: ActiveServer = { id: "organization-server", name: "Organization Name", abbreviation: "O", kind: "organization", connectedLabel: "12 connected", dockActions: organizationAdminDockActions, }; export const activeProject: ActiveProject = { id: "general", name: "General", }; export const activeDepartment: ActiveDepartment = { id: "product", name: "Product", teamName: "Design Systems", }; export const projectItems: readonly ProjectItem[] = [ { id: "general", name: "General", description: "Default shared project", groupLabel: "Shared space", parentLabel: "Workspace home", meta: "1 workspace", active: true, }, { id: "operations", name: "Operations", description: "Cross-team planning and delivery", groupLabel: "Team folders", parentLabel: "Shared Services", meta: "2 workspaces", }, { id: "hiring", name: "Hiring", description: "Candidate pipeline and interview loops", groupLabel: "Team folders", parentLabel: "People Ops", meta: "1 workspace", }, ] as const; export const departmentItems: readonly DepartmentItem[] = [ { id: "product", name: "Product", teams: ["Design Systems", "Research Ops"], active: true }, { id: "engineering", name: "Engineering", teams: ["Platform", "Realtime Collaboration"] }, { id: "operations", name: "Operations", teams: ["Shared Services", "People Ops"] }, ] as const; export const workspaceStaticItems: readonly WorkspaceStaticItem[] = [ { id: "home", label: "Home", icon: Home, active: true, contextKind: "home" }, { id: "workspace-settings", label: "Settings", icon: Settings, contextKind: "settings" }, ] as const; export const workspaceTree: readonly WorkspaceTreeNode[] = [ { id: "product-workspace", label: "Product", kind: "folder", icon: Folder, children: [ { id: "roadmap-board", label: "Roadmap", kind: "item", itemType: "core.board.kanban", active: true }, { id: "launch-brief", label: "Launch Brief", kind: "item", itemType: "core.doc" }, { id: "research-folder", label: "Research", kind: "folder", icon: Folder, children: [ { id: "interviews-doc", label: "Interviews", kind: "item", itemType: "core.doc" }, { id: "signals-board", label: "Signals", kind: "item", itemType: "core.board.kanban", meta: "2" }, ], }, ], }, { id: "design-folder", label: "Design", kind: "folder", icon: Folder, children: [ { id: "system-doc", label: "Design System", kind: "item", itemType: "core.doc" }, { id: "review-board", label: "Review Queue", kind: "item", itemType: "core.board.kanban" }, ], }, { id: "general-notes", label: "General Notes", kind: "item", itemType: "core.doc" }, ] as const; export const workspaceSidebarHeaderActions: readonly SidebarHeaderAction[] = [ { id: "search-workspace", label: "Search workspace", icon: Search }, { id: "toggle-workspace-folders", label: "Collapse all folders", icon: ListCollapse }, ] as const; export const mobileBottomNavItems: readonly MobileBottomNavItem[] = [ { id: "home", label: "Home", icon: Home, active: true }, { id: "search", label: "Search", icon: Search }, { id: "browse", label: "Browse", icon: Folder }, ] as const; export const topBarActions: readonly TopBarAction[] = [{ id: "search", label: "Search", icon: Search }] as const; export const notificationItems: readonly NotificationItem[] = [ { id: "comment-design-systems", title: "New comment on Design Systems", contextLabel: "Product • Review thread updated", timeLabel: "2m ago", unread: true, }, { id: "sprint-platform", title: "Sprint updated in Platform", contextLabel: "Engineering • Scope changed", timeLabel: "15m ago", unread: true, }, { id: "member-joined", title: "New member joined Operations", contextLabel: "Organization Name • Access granted", timeLabel: "1h ago", }, { id: "daily-summary", title: "Daily summary is ready", contextLabel: "General • 8 updates across boards", timeLabel: "Today, 8:00 AM", }, ] as const; export const unreadNotificationCount = notificationItems.filter((item) => item.unread).length; export const activeUserProfile: ActiveUserProfile = { name: "Demo Account", email: "demo@moku.work", roleLabel: "Founder · Product", contextLabel: "Organization Name • Design Systems", }; export const profileMenuSections: readonly ProfileMenuSection[] = [ { id: "account", items: [ { id: "profile", label: "Profile", icon: User }, { id: "account-settings", label: "Account Settings", icon: Settings }, { id: "notifications", label: "Notifications", icon: Bell }, { id: "security", label: "Security", icon: Shield }, ], }, { id: "preferences", items: [ { id: "keyboard-shortcuts", label: "Keyboard Shortcuts", icon: Keyboard }, { id: "theme-preferences", label: "Theme Preferences", icon: Settings }, { id: "help-support", label: "Help & Support", icon: CircleHelp }, ], }, { id: "session", items: [ { id: "switch-account", label: "Switch Account", icon: Repeat }, { id: "sign-out", label: "Sign Out", icon: LogOut, tone: "danger" }, ], }, ] as const;