Files
home/src/types/dashboard.ts
T
2026-10-21 23:44:08 +02:00

54 lines
1.2 KiB
TypeScript

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;
}