{#each visibleTexts as text (text.id)} {@const bounds = graphTextScreenBounds(text, viewport)}
beginGesture(event, text)} onpointermove={moveGesture} onpointerup={endGesture} onpointercancel={endGesture} onlostpointercapture={endGesture} >
{@html rendered[text.id] ?? escapeGraphTextHtml(text.source)}
{#if editable && selectedId === text.id} {/if}
{/each}