WIP: Vendoo 1.44.0 – UX Foundation & Guided Workspaces #29
@@ -59,9 +59,31 @@ Wiederkehrende Button-Delegationen werden jetzt über `buttonAction(...)` beschr
|
||||
|
||||
Dadurch bleiben Action-Metadaten und technische Delegation zentral, einheitlich und leichter prüfbar. Artikel- und Medienkontextaktionen behalten ihre spezialisierten Handler.
|
||||
|
||||
## Öffentliche Navigation API
|
||||
|
||||
Bei der Härtung wurde festgestellt, dass die Safe Action Adapter bereits optional `window.VendooNavigation.currentView` berücksichtigten, die globale Navigation dieses API aber noch nicht veröffentlichte.
|
||||
|
||||
`public/navigation-api.js` schließt diese Vertragslücke und stellt jetzt ein schreibgeschütztes API bereit:
|
||||
|
||||
- `window.VendooNavigation.currentView`
|
||||
- dynamischer Getter für die tatsächlich aktive Vendoo-Ansicht
|
||||
- `window.VendooNavigation.canOpen(view)`
|
||||
- prüft vorhandenen, sichtbaren und aktivierbaren Navigationseintrag
|
||||
- `window.VendooNavigation.open(view)`
|
||||
- delegiert ausschließlich per `click()` an den vorhandenen Navigationseintrag
|
||||
|
||||
Das API führt keine eigene History-, Routing- oder URL-Logik ein. Die bestehende globale Navigation bleibt alleinige Quelle dieser Abläufe.
|
||||
|
||||
Zusätzlich werden folgende Lifecycle-Events veröffentlicht:
|
||||
|
||||
- `vendoo:navigation-api-ready`
|
||||
- `vendoo:navigation-changed`
|
||||
|
||||
Der Navigation-Observer reagiert ausschließlich auf Änderungen von `class`, `hidden`, `aria-hidden` und `aria-disabled` und wird bei `beforeunload` sauber getrennt.
|
||||
|
||||
## Workspace-Grenzen
|
||||
|
||||
Sichtbarkeit wird weiterhin gegen `window.VendooNavigation.currentView` und den zugehörigen DOM-Bereich geprüft:
|
||||
Sichtbarkeit wird gegen `window.VendooNavigation.currentView` und den zugehörigen DOM-Bereich geprüft:
|
||||
|
||||
- Modulaktionen: `admin`
|
||||
- Extension-Aktionen: `extensions`
|
||||
@@ -70,6 +92,18 @@ Sichtbarkeit wird weiterhin gegen `window.VendooNavigation.currentView` und den
|
||||
|
||||
Actions eines inaktiven Arbeitsbereichs erscheinen nicht in der Command Palette.
|
||||
|
||||
## Asset-Ladereihenfolge
|
||||
|
||||
Die Plattformassets werden jetzt in folgender Reihenfolge geladen:
|
||||
|
||||
1. Command Platform
|
||||
2. Universal Action Registry
|
||||
3. Global Navigation
|
||||
4. Navigation API
|
||||
5. Safe Action Adapters
|
||||
|
||||
Damit ist der öffentliche Navigationsvertrag vor der ersten Action-Auswertung verfügbar.
|
||||
|
||||
## Sicherheitsgrenzen
|
||||
|
||||
Alle 21 Actions erfüllen denselben Vertrag:
|
||||
@@ -89,7 +123,9 @@ Alle 21 Actions erfüllen denselben Vertrag:
|
||||
- kein `window.confirm`
|
||||
- kein `innerHTML`
|
||||
|
||||
## Abnahme-Gate
|
||||
Auch die Navigation API führt keine Netzwerkaufrufe, externe Navigation oder eigene Browser-History-Manipulation aus.
|
||||
|
||||
## Abnahme-Gates
|
||||
|
||||
Das vorhandene Gate `npm run verify:safe-action-adapters` wurde auf den vollständigen 21-Action-Vertrag erweitert.
|
||||
|
||||
@@ -108,6 +144,24 @@ Es prüft jetzt zusätzlich:
|
||||
- `baselineCount: 9`
|
||||
- `expansionCount: 12`
|
||||
|
||||
Neues Navigation-API-Gate:
|
||||
|
||||
```bash
|
||||
npm run verify:navigation-api
|
||||
```
|
||||
|
||||
Es prüft:
|
||||
|
||||
- schreibgeschütztes öffentliches API
|
||||
- dynamischen `currentView`-Getter
|
||||
- `canOpen` für sichtbare, versteckte und unbekannte Ansichten
|
||||
- kontrollierte Delegation von `open()`
|
||||
- vollständige Lifecycle-Events
|
||||
- Observer-Aufbau und Cleanup
|
||||
- Asset-Ladereihenfolge
|
||||
- Ausschluss eigener History-, Netzwerk-, Polling- und externer Navigationslogik
|
||||
- Einbindung in `verify:all`
|
||||
|
||||
## Releasegrenzen
|
||||
|
||||
- keine bestehenden Handler ersetzt
|
||||
|
||||
Reference in New Issue
Block a user