# Portal Sync Flow ## Ziel Der Styleguide bleibt in diesem Repository die Source of Truth. Der Sync verteilt den freigegebenen Stand in beide Portal-Repos: - den deploy-relevanten CSS-Upstream versioniert als `public/assets/styleguide.upstream.css` - die vollstaendige Styleguide-Dokumentation gespiegelt nach `docs/styleguide` - die portal-spezifische Fertig-CSS-Datei als `public/assets/styles.css` - die konsumierbare Large-Table-Runtime als `public/scripts/large-table-column-resize.js` Zielrepos: - `WebApp_Aktienberater` - `erp_naurua` ## Vorbereitung - Version in `VERSION` erhoehen, sobald ein freigegebener Stand vorliegt. - Aenderungen im Styleguide committen und pushen. ## Sync ausfuehren Beispiel: ```bash ./scripts/sync_styleguide_to_webapp_aktienberater.sh \ --commit-portal ``` ## Ergebnis im Portalrepo - `public/assets/styleguide.upstream.css` aktualisiert - `public/assets/styleguide.upstream.meta.json` aktualisiert (Version, Commit, Zeitstempel) - `docs/styleguide` gespiegelt (mit `--delete`, ohne `.git`, `.codex`, `AGENTS.md` und interne `scripts/`) - `public/scripts/large-table-column-resize.js` aus der Styleguide-Source-of-Truth kopiert - `public/assets/styles.css` aktualisiert - `public/scripts/large-table-column-resize.js` aktualisiert; lokale Portal-Kopien sind nicht zulässig - Optional: automatischer Commit + Push im Portalrepo ## Standardprozess je Release 1. Styleguide aendern 2. `VERSION` erhoehen 3. Styleguide commit + push 4. Sync-Skript ausfuehren 5. Beide Portalrepos Smoke-Testen ## Large-Table-Runtime Die Runtime liegt ausschließlich im Styleguide unter `scripts/large-table-column-resize.js`. Der Sync kopiert nur diese explizit freigegebene Runtime nach `public/scripts/`; andere Styleguide-Scripts wie Prüf- und Sync-Shellscripts werden nicht in `docs/styleguide/scripts/` gespiegelt. Dadurch bleibt der Styleguide die Source of Truth und ein erneuter Sync überschreibt die Portaldatei kontrolliert. Für den Smoke-Test in beiden Portalen ist zu prüfen: - `public/scripts/large-table-column-resize.js` ist vorhanden und unter `/scripts/large-table-column-resize.js` ladbar. - Die Large-Table-Seite lädt die Runtime ohne lokale Inline- oder Duplikatimplementierung. - Nach einer Spaltenbreitenänderung wird der Eintrag unter `sg:large-table:column-widths:` gespeichert. - Ein erneuter Sync ersetzt die Datei aus der Styleguide-Quelle.