arkaos 3.54.0 → 3.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/VERSION +1 -1
- package/dashboard/app/pages/personas/index.vue +44 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.55.0
|
|
@@ -137,6 +137,42 @@ function goToPersona(id: string) {
|
|
|
137
137
|
navigateTo(`/personas/${id}`)
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
// PR96a v3.55.0 — keyboard nav, mirror of PR95d on /agents.
|
|
141
|
+
const cursorIndex = ref(-1)
|
|
142
|
+
|
|
143
|
+
function cursorDown() {
|
|
144
|
+
const total = paginatedPersonas.value.length
|
|
145
|
+
if (total === 0) return
|
|
146
|
+
cursorIndex.value = Math.min(total - 1, Math.max(0, cursorIndex.value + 1))
|
|
147
|
+
scrollCursorIntoView()
|
|
148
|
+
}
|
|
149
|
+
function cursorUp() {
|
|
150
|
+
const total = paginatedPersonas.value.length
|
|
151
|
+
if (total === 0) return
|
|
152
|
+
cursorIndex.value = Math.max(0, cursorIndex.value === -1 ? 0 : cursorIndex.value - 1)
|
|
153
|
+
scrollCursorIntoView()
|
|
154
|
+
}
|
|
155
|
+
function cursorOpen() {
|
|
156
|
+
if (cursorIndex.value < 0) return
|
|
157
|
+
const row = paginatedPersonas.value[cursorIndex.value]
|
|
158
|
+
if (row?.id) goToPersona(row.id)
|
|
159
|
+
}
|
|
160
|
+
function scrollCursorIntoView() {
|
|
161
|
+
if (typeof document === 'undefined') return
|
|
162
|
+
setTimeout(() => {
|
|
163
|
+
const el = document.querySelector('[data-cursor="true"]')
|
|
164
|
+
el?.scrollIntoView({ block: 'nearest', behavior: 'smooth' })
|
|
165
|
+
}, 0)
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
defineShortcuts({
|
|
169
|
+
j: () => cursorDown(),
|
|
170
|
+
k: () => cursorUp(),
|
|
171
|
+
arrowdown: () => cursorDown(),
|
|
172
|
+
arrowup: () => cursorUp(),
|
|
173
|
+
enter: () => cursorOpen(),
|
|
174
|
+
})
|
|
175
|
+
|
|
140
176
|
// PR86a v3.15.0 — favorites.
|
|
141
177
|
const favs = useFavorites()
|
|
142
178
|
await favs.load()
|
|
@@ -593,7 +629,14 @@ async function undoTrashIds(ids: string[]) {
|
|
|
593
629
|
/>
|
|
594
630
|
</template>
|
|
595
631
|
<template #name-cell="{ row }">
|
|
596
|
-
<
|
|
632
|
+
<div :data-cursor="row.index === cursorIndex ? 'true' : undefined" class="flex items-center gap-1.5">
|
|
633
|
+
<UIcon
|
|
634
|
+
v-if="row.index === cursorIndex"
|
|
635
|
+
name="i-lucide-chevron-right"
|
|
636
|
+
class="size-3.5 text-primary shrink-0"
|
|
637
|
+
/>
|
|
638
|
+
<span class="font-medium">{{ row.original.name }}</span>
|
|
639
|
+
</div>
|
|
597
640
|
</template>
|
|
598
641
|
<template #title-cell="{ row }">
|
|
599
642
|
<span class="text-sm text-muted truncate">{{ row.original.title || '—' }}</span>
|
package/package.json
CHANGED