feat(08-04): LinkWidget implementation + page.tsx wiring (GREEN)

- LinkWidget: single-link widget reusing FavoriteLink backend (D-06)
- Single-link enforcement: add form hidden when link exists
- List (row) and tile (grid) view modes, switchable in edit mode
- Inline add/edit/delete forms in edit mode
- Letter fallback span + icon with onError hide (T-08-11)
- Links with target="_blank" rel="noreferrer" (T-08-12)
- i18n keys added to de.json + en.json (link.*)
- wireLinkWidget(LinkWidget) added to portal page.tsx
- All 7 link-widget tests pass (GREEN); tsc --noEmit clean
This commit is contained in:
2026-07-01 10:48:58 +02:00
parent 4657e50494
commit e9914f61cb
4 changed files with 410 additions and 3 deletions
+13 -1
View File
@@ -215,7 +215,19 @@
},
"link": {
"name": "Link",
"description": "Einzelner Schnellzugriff-Link"
"description": "Einzelner Schnellzugriff-Link",
"loading": "Link wird geladen...",
"empty": "Noch kein Link gesetzt.",
"addTitle": "Titel",
"addUrl": "URL",
"addButton": "Hinzufuegen",
"listView": "Liste",
"gridView": "Kachel",
"editButton": "Link bearbeiten",
"deleteButton": "Link loeschen",
"saveButton": "Speichern",
"cancelButton": "Abbrechen",
"error": "Fehler beim Laden des Links"
},
"stopwatch": {
"name": "Stoppuhr",