diff --git a/frontend/src/lib/components/StammbaumTree.svelte b/frontend/src/lib/components/StammbaumTree.svelte index 80a65fe3..f28857ac 100644 --- a/frontend/src/lib/components/StammbaumTree.svelte +++ b/frontend/src/lib/components/StammbaumTree.svelte @@ -286,6 +286,8 @@ function nodeCenter(id: string): { x: number; y: number } | null { return { x: p.x + NODE_W / 2, y: p.y + NODE_H / 2 }; } +let focusedId = $state(null); + function handleNodeKey(event: KeyboardEvent, id: string) { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); @@ -479,6 +481,7 @@ const parentLinks = $derived.by(() => { {@const pos = layout.positions.get(node.id)} {#if pos} {@const isSelected = selectedId === node.id} + {@const isFocused = focusedId === node.id} (() => { transform="translate({pos.x}, {pos.y})" onclick={() => onSelect(node.id)} onkeydown={(e) => handleNodeKey(e, node.id)} - class="cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-primary" + onfocus={() => (focusedId = node.id)} + onblur={() => (focusedId = null)} + class="cursor-pointer focus:outline-none" > + {#if isFocused} + + {/if} (() => { {/if} {node.displayName}