` +
`
` +
- `
${esc(r.name || r.shortName || 'Controller')}${r.detail ? `${esc(seat)}${esc(r.detail)}` : (seat ? `${esc(seat.replace(/ · $/, ''))}` : '')}
` +
+ `
${r.person ? personTag(r.person, 'sm') + ' · ' : ''}${esc(r.name || r.shortName || 'Controller')}${r.detail ? `${esc(seat)}${esc(r.detail)}` : (seat ? `${esc(seat.replace(/ · $/, ''))}` : '')}
` +
`
${esc(CONNECTION[/** @type {keyof typeof CONNECTION} */ (r.connection)] || r.connection || '')}` +
`
${tags.join('')} `;
}).join('');
diff --git a/shared/ui/elements/uf-person.js b/shared/ui/elements/uf-person.js
new file mode 100644
index 00000000..5210c5fa
--- /dev/null
+++ b/shared/ui/elements/uf-person.js
@@ -0,0 +1,70 @@
+// @ts-check
+// ============================================================
+//