| 1289 |
1329
|
|
# any future trailing control floats back above it at its own z-index.
|
| 1290 |
1330
|
|
defp chat_sidebar_rows(assigns) do
|
| 1291 |
1331
|
|
~H"""
|
| 1292 |
|
- |
<nav id="sidebar-nav" class="sidebar-nav" aria-label="Chat">
|
| 1293 |
|
- |
<div class="sidebar-row">
|
| 1294 |
|
- |
<.link
|
| 1295 |
|
- |
id="open-computers"
|
| 1296 |
|
- |
navigate="/computers"
|
| 1297 |
|
- |
class="sidebar-row__hit"
|
| 1298 |
|
- |
aria-label="Computers"
|
| 1299 |
|
- |
></.link>
|
| 1300 |
|
- |
<span class="sidebar-row__content">
|
| 1301 |
|
- |
<span class="sidebar-row__icon"><.icon name="desktop" /></span>
|
| 1302 |
|
- |
<span class="sidebar-row__label">Computers</span>
|
| 1303 |
|
- |
</span>
|
| 1304 |
|
- |
</div>
|
| 1305 |
|
- |
|
| 1306 |
|
- |
<div class="sidebar-row" data-selected={@memory_open?}>
|
| 1307 |
|
- |
<button
|
| 1308 |
|
- |
id="toggle-memory"
|
| 1309 |
|
- |
type="button"
|
| 1310 |
|
- |
class="sidebar-row__hit"
|
| 1311 |
|
- |
phx-click="toggle_memory"
|
| 1312 |
|
- |
aria-expanded={to_string(@memory_open?)}
|
| 1313 |
|
- |
aria-controls="memory-manager"
|
| 1314 |
|
- |
aria-label={if @memory_open?, do: "Return to conversation", else: "Memory"}
|
| 1315 |
|
- |
></button>
|
| 1316 |
|
- |
<span class="sidebar-row__content">
|
| 1317 |
|
- |
<span class="sidebar-row__icon">
|
| 1318 |
|
- |
<.icon name={if @memory_open?, do: "arrow-left", else: "brain"} />
|
| 1319 |
|
- |
</span>
|
| 1320 |
|
- |
<span class="sidebar-row__label">
|
| 1321 |
|
- |
{if @memory_open?, do: "Return to conversation", else: "Memory"}
|
| 1322 |
|
- |
</span>
|
| 1323 |
|
- |
</span>
|
| 1324 |
|
- |
</div>
|
| 1325 |
|
- |
|
| 1326 |
|
- |
<div class="sidebar-row">
|
| 1327 |
|
- |
<.link
|
| 1328 |
|
- |
id="open-leaderboard"
|
| 1329 |
|
- |
navigate="/leaderboard"
|
| 1330 |
|
- |
class="sidebar-row__hit"
|
| 1331 |
|
- |
aria-label="Leaderboard"
|
| 1332 |
|
- |
></.link>
|
| 1333 |
|
- |
<span class="sidebar-row__content">
|
| 1334 |
|
- |
<span class="sidebar-row__icon"><.icon name="trophy-top" /></span>
|
| 1335 |
|
- |
<span class="sidebar-row__label">Leaderboard</span>
|
| 1336 |
|
- |
</span>
|
| 1337 |
|
- |
</div>
|
| 1338 |
|
- |
|
| 1339 |
|
- |
<div class="sidebar-row">
|
| 1340 |
|
- |
<.link
|
| 1341 |
|
- |
id="export-atif"
|
| 1342 |
|
- |
href="/data/export/atif"
|
| 1343 |
|
- |
download
|
| 1344 |
|
- |
class="sidebar-row__hit"
|
| 1345 |
|
- |
aria-label="Export"
|
| 1346 |
|
- |
></.link>
|
| 1347 |
|
- |
<span class="sidebar-row__content">
|
| 1348 |
|
- |
<span class="sidebar-row__icon"><.icon name="download" /></span>
|
| 1349 |
|
- |
<span class="sidebar-row__label">Export</span>
|
| 1350 |
|
- |
</span>
|
| 1351 |
|
- |
</div>
|
| 1352 |
|
- |
</nav>
|
| 1353 |
|
- |
|
| 1354 |
1332
|
|
<%!-- Calls and work: bounded, durable-backed projections (last eight
|
| 1355 |
1333
|
|
each), refreshed by the same PubSub broadcasts that drive the
|
| 1356 |
1334
|
|
transcript. A row whose evidence is a durable transcript message is
|