Interface alignée sur Excalidraw, import de dossiers, icône de mise à jour

- Jetons de couleur, rayons, ombres, police (Assistant) et tailles de boutons
  repris d'Excalidraw 0.18, en clair et en sombre.
- Boutons de l'explorateur et de la barre de titre au style du bouton
  « Bibliothèque », icônes au trait (jeu Tabler) à la place des glyphes.
- Glisser-déposer de fichiers et dossiers du système dans l'explorateur ou
  sur un dossier : arborescence recréée, seuls les .excalidraw importés,
  schémas existants conservés, bilan affiché. Bouton « Importer un dossier ».
- Icône dans la barre du haut quand une version d'Excalidraw plus récente que
  celle embarquée (__EXCALIDRAW_VERSION__) est publiée ; un clic donne la
  commande de reconstruction.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019EuvvuTv7AUc8ksDHv8VKx
This commit is contained in:
claude BotandClaude Opus 5.5 committed 2026-10-07 15:46:25 +02:00
1 parent 49a816bb12
commit 6810472f09
9 files changed
+387 -35

No files matched your search

+9
View File
@@ -20,6 +20,13 @@ export interface Settings {
logo: string;
}
/** Dernière version d'Excalidraw publiée sur npm (vide si inconnue ou désactivé). */
export interface UpdateStatus {
enabled: boolean;
latest?: string;
checkedAt?: string;
}
export class ApiError extends Error {
constructor(public status: number, message: string) {
super(message);
@@ -48,6 +55,8 @@ const json = (body: unknown): RequestInit => ({
});
export const api = {
update: async (): Promise<UpdateStatus> => (await request("/api/update")).json(),
list: async (dir: string): Promise<Entry[]> =>
(await request(`/api/list?path=${q(dir)}`)).json(),