feat(ui): menus déroulants + fenêtres flottantes, barre unique et sélecteur de projet (#16)

Lot A du sprint UI rework : réorganisation de la navigation racine.

- shared/ui/MenuBar.tsx : barre de menus unique avec menus déroulants
- shared/ui/FloatingWindow.tsx : primitive de fenêtre flottante réutilisable
  (socle du lot C #17 fenêtre dédiée gestion tickets)
- shared/ui/zIndex.ts : échelle z-index étendue pour les fenêtres flottantes
- App : intègre la barre unique et le sélecteur de projet permanent
- ProjectsView : sélecteur de projet permanent

Tests : tsc --noEmit clean, suite complète 527/527, suites impactées 33/33.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 20:55:37 +02:00
parent 0218e3271f
commit c55f948d25
9 changed files with 933 additions and 353 deletions

View File

@ -6,11 +6,10 @@
* mounted at the **chrome level** (ProjectsView/App), never inside
* LayoutGrid/LeafView (G5).
*
* ⚠️ PROVISIONAL (lot B / ticket #18): created here because lot A (ticket #16)
* introduces the canonical `shared/ui/zIndex.ts` (+ `FloatingWindow`) in
* parallel. The values below MUST match the frozen scale; at merge, keep a
* single module (drop this one if lot A's is richer). See the sprint scoping
* note `ui-rework-sprint-scoping-contracts`.
* Consumers: `FloatingWindow` (floatingWindow), `MenuBar` dropdowns
* (menuDropdown), `TicketPicker` (floatingWindowNested), background-task toasts
* (toast). Introduced by lot B (#18) and adopted as the canonical scale by lot A
* (#16). See the sprint scoping note `ui-rework-sprint-scoping-contracts`.
*/
export const zIndex = {
/** Dropdown menus / popovers anchored to a control. */