From c96d929c7a27bbcdfdc39f3c6cdb6f554521ddf6 Mon Sep 17 00:00:00 2001 From: Johan LEROY Date: Fri, 17 Jul 2026 17:08:35 +0200 Subject: [PATCH] =?UTF-8?q?feat(web):=20coquille=20IDE=20+=20arbre=20de=20?= =?UTF-8?q?projets=20unifi=C3=A9=20(route=20/ide)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit components/ide/ : IdeShell (grille barre d'activité + panneau gauche + zone centrale + dock + barre de statut, splitters persistés, réconciliation des ressources ouvertes contre les données live), ActivityBar (Explorer/Git/Sessions/Groupes + Réglages/Aide), PrimarySidebar, ProjectTree + ProjectTreeNode (arbre unique repos -> worktrees -> sessions, fichiers embarqués via FileTree en mode sans chrome, dépliage paresseux), StatusBar. Route /ide (layout 'ide'), entrée de nav « IDE », namespace i18n ide (EN/FR). Clics de l'arbre pilotent le store (contexte worktree, ouverture de fichier/terminal). Centre et dock en placeholders (remplis en B4/B5). FileTree gagne un mode embedded. 427 tests. --- .../web/src/components/ide/ActivityBar.vue | 61 +++++++++++ packages/web/src/components/ide/IdeShell.vue | 67 ++++++++++++ .../web/src/components/ide/PrimarySidebar.vue | 35 ++++++ .../web/src/components/ide/ProjectTree.vue | 69 ++++++++++++ .../src/components/ide/ProjectTreeNode.vue | 100 ++++++++++++++++++ packages/web/src/components/ide/StatusBar.vue | 51 +++++++++ .../web/src/components/workspace/FileTree.vue | 13 ++- packages/web/src/composables/useNav.ts | 3 +- packages/web/src/i18n/en.ts | 22 ++++ packages/web/src/i18n/fr.ts | 22 ++++ packages/web/src/router/index.ts | 1 + packages/web/src/stores/ide.ts | Bin 9952 -> 10234 bytes packages/web/test/ide-store.test.ts | 13 ++- 13 files changed, 446 insertions(+), 11 deletions(-) create mode 100644 packages/web/src/components/ide/ActivityBar.vue create mode 100644 packages/web/src/components/ide/IdeShell.vue create mode 100644 packages/web/src/components/ide/PrimarySidebar.vue create mode 100644 packages/web/src/components/ide/ProjectTree.vue create mode 100644 packages/web/src/components/ide/ProjectTreeNode.vue create mode 100644 packages/web/src/components/ide/StatusBar.vue diff --git a/packages/web/src/components/ide/ActivityBar.vue b/packages/web/src/components/ide/ActivityBar.vue new file mode 100644 index 0000000..144409c --- /dev/null +++ b/packages/web/src/components/ide/ActivityBar.vue @@ -0,0 +1,61 @@ + + + diff --git a/packages/web/src/components/ide/IdeShell.vue b/packages/web/src/components/ide/IdeShell.vue new file mode 100644 index 0000000..744fe28 --- /dev/null +++ b/packages/web/src/components/ide/IdeShell.vue @@ -0,0 +1,67 @@ + + + diff --git a/packages/web/src/components/ide/PrimarySidebar.vue b/packages/web/src/components/ide/PrimarySidebar.vue new file mode 100644 index 0000000..f510be0 --- /dev/null +++ b/packages/web/src/components/ide/PrimarySidebar.vue @@ -0,0 +1,35 @@ + + + diff --git a/packages/web/src/components/ide/ProjectTree.vue b/packages/web/src/components/ide/ProjectTree.vue new file mode 100644 index 0000000..29502f1 --- /dev/null +++ b/packages/web/src/components/ide/ProjectTree.vue @@ -0,0 +1,69 @@ + + + diff --git a/packages/web/src/components/ide/ProjectTreeNode.vue b/packages/web/src/components/ide/ProjectTreeNode.vue new file mode 100644 index 0000000..2d920a9 --- /dev/null +++ b/packages/web/src/components/ide/ProjectTreeNode.vue @@ -0,0 +1,100 @@ + + + diff --git a/packages/web/src/components/ide/StatusBar.vue b/packages/web/src/components/ide/StatusBar.vue new file mode 100644 index 0000000..19e6cf5 --- /dev/null +++ b/packages/web/src/components/ide/StatusBar.vue @@ -0,0 +1,51 @@ + + + diff --git a/packages/web/src/components/workspace/FileTree.vue b/packages/web/src/components/workspace/FileTree.vue index 3428cef..682c0af 100644 --- a/packages/web/src/components/workspace/FileTree.vue +++ b/packages/web/src/components/workspace/FileTree.vue @@ -1,12 +1,12 @@