diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 00cc1488..37bd55cd 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -1106,6 +1106,11 @@ "stammbaum_relationships_heading": "Stammbaum & Beziehungen", "stammbaum_zoom_in": "Vergrößern", "stammbaum_zoom_out": "Verkleinern", + "stammbaum_fit_to_screen": "An Bildschirm anpassen", + "stammbaum_affordance_hint": "Ziehen zum Erkunden · Zusammendrücken zum Zoomen", + "stammbaum_affordance_dismiss": "Hinweis schließen", + "stammbaum_close_panel": "Schließen", + "stammbaum_centre_on_person": "Auf diese Person zentrieren", "relation_error_duplicate": "Diese Beziehung gibt es bereits.", "relation_error_circular": "Diese Beziehung würde einen Kreis erzeugen.", "relation_error_self": "Eine Person kann nicht mit sich selbst verbunden werden.", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index baa0d1b4..0f5f862f 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -1106,6 +1106,11 @@ "stammbaum_relationships_heading": "Family tree & relationships", "stammbaum_zoom_in": "Zoom in", "stammbaum_zoom_out": "Zoom out", + "stammbaum_fit_to_screen": "Fit to screen", + "stammbaum_affordance_hint": "Drag to explore · pinch to zoom", + "stammbaum_affordance_dismiss": "Dismiss hint", + "stammbaum_close_panel": "Close", + "stammbaum_centre_on_person": "Centre on this person", "relation_error_duplicate": "This relationship already exists.", "relation_error_circular": "This relationship would form a cycle.", "relation_error_self": "A person cannot be related to themselves.", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index a2128407..3d9e92ab 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -1106,6 +1106,11 @@ "stammbaum_relationships_heading": "Árbol genealógico & relaciones", "stammbaum_zoom_in": "Acercar", "stammbaum_zoom_out": "Alejar", + "stammbaum_fit_to_screen": "Ajustar a la pantalla", + "stammbaum_affordance_hint": "Arrastra para explorar · pellizca para ampliar", + "stammbaum_affordance_dismiss": "Cerrar aviso", + "stammbaum_close_panel": "Cerrar", + "stammbaum_centre_on_person": "Centrar en esta persona", "relation_error_duplicate": "Esta relación ya existe.", "relation_error_circular": "Esta relación crearía un ciclo.", "relation_error_self": "Una persona no puede estar relacionada consigo misma.", diff --git a/frontend/src/lib/person/genealogy/StammbaumControls.svelte b/frontend/src/lib/person/genealogy/StammbaumControls.svelte new file mode 100644 index 00000000..ee4fb55c --- /dev/null +++ b/frontend/src/lib/person/genealogy/StammbaumControls.svelte @@ -0,0 +1,38 @@ + + +
+ + + +
diff --git a/frontend/src/routes/stammbaum/+page.svelte b/frontend/src/routes/stammbaum/+page.svelte index 2f6f3bea..ad14c2be 100644 --- a/frontend/src/routes/stammbaum/+page.svelte +++ b/frontend/src/routes/stammbaum/+page.svelte @@ -3,6 +3,7 @@ import { m } from '$lib/paraglide/messages.js'; import { page } from '$app/state'; import StammbaumTree from '$lib/person/genealogy/StammbaumTree.svelte'; import StammbaumSidePanel from '$lib/person/genealogy/StammbaumSidePanel.svelte'; +import StammbaumControls from '$lib/person/genealogy/StammbaumControls.svelte'; import { type PanZoomState, DEFAULT_VIEW, @@ -36,6 +37,9 @@ function zoomIn() { function zoomOut() { view = { ...view, z: clampZoom(view.z - ZOOM_STEP_KB) }; } +function fitToScreen() { + view = DEFAULT_VIEW; +}