{#if nowTouching}
Now touching {nowTouching.slug}
{/if}
{#if nodes.length === 0}

Entities Nomos explores in this conversation appear here, wired up by their relationships.

{:else} {#each links as link} {@const s = endpoint(link.source)} {@const t = endpoint(link.target)} {#if s?.x != null && t?.x != null && s?.y != null && t?.y != null} {@const focus = selected && (s.slug === selected.slug || t.slug === selected.slug)} {@const dx = t.x - s.x} {@const dy = t.y - s.y} {@const len = Math.max(Math.hypot(dx, dy), 1)} {@const curve = Math.min(len * 0.15, 40)} {@const cx = (s.x + t.x) / 2 - (dy / len) * curve} {@const cy = (s.y + t.y) / 2 + (dx / len) * curve} {link.type} {/if} {/each} {#each nodes as node (node.slug)} {#if node.x != null && node.y != null} {@const r = nodeRadius(node)} {@const isSel = selected?.slug === node.slug} {@const dim = selected && !isSel && !selectedRelations.some((rel) => rel.other === node.slug)} {@const isTouched = node.slug in touchedBySlug} {@const diff = diffBySlug[node.slug]} onNodeDown(e, node)} onkeydown={(e) => e.key === 'Enter' && selectAndOpen(node)} > {#if isSel} {/if} {#if isTouched} {/if} {shortName(node.slug)} {#if diff} {diff.from} → {diff.to} {/if} {/if} {/each} {/if}