export type CategoryId = "server" | "private" | "work" | "tools" | "ai"; export type TileSize = "1x1" | "2x1" | "2x2"; export type OpenBehavior = "workspace" | "external" | "popup"; export interface ShortcutTile { id: string; title: string; description: string; url: string; icon: string; size?: TileSize; badge?: string; accentColor?: string; /** * "workspace" = ouvre dans un onglet intégré à Home (iframe) * "popup" = ouvre une fenêtre Chromium dédiée sans barre d'adresse (idéal pour Google Docs/Drive qui bloquent les iframes) * "external" = ouvre un onglet navigateur classique */ openBehavior?: OpenBehavior; } export interface WorkspaceTab { id: string; label: string; icon?: string; tiles: ShortcutTile[]; } export interface EnvironmentCategory { id: CategoryId | string; name: string; subtitle: string; icon: string; tabs: WorkspaceTab[]; } export interface OpenWindowTab { id: string; tileId: string; title: string; url: string; icon: string; accentColor?: string; } export interface DashboardData { version: string; categories: EnvironmentCategory[]; dockTileIds?: string[]; quickNote?: string; }