Show each extension's own prompt, not only the batch script.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
<dl v-if="rows.length" class="mt-2 grid grid-cols-[7.25rem_minmax(0,1fr)] gap-x-3 gap-y-1 text-[11px] leading-snug">
|
<dl v-if="rows.length" class="mt-2 grid grid-cols-[7.25rem_minmax(0,1fr)] gap-x-3 gap-y-1 text-[11px] leading-snug">
|
||||||
<template v-for="row in rows" :key="row.label">
|
<template v-for="row in rows" :key="row.label">
|
||||||
<dt class="text-zinc-500">{{ row.label }}</dt>
|
<dt class="text-zinc-500">{{ row.label }}</dt>
|
||||||
<dd class="min-w-0 break-words text-zinc-300">{{ row.value }}</dd>
|
<dd class="min-w-0 whitespace-pre-wrap break-words text-zinc-300">{{ row.value }}</dd>
|
||||||
</template>
|
</template>
|
||||||
</dl>
|
</dl>
|
||||||
<p v-else class="mt-2 text-[11px] text-zinc-600">{{ empty }}</p>
|
<p v-else class="mt-2 text-[11px] text-zinc-600">{{ empty }}</p>
|
||||||
|
|||||||
@@ -1666,6 +1666,12 @@
|
|||||||
@blur="saveRename(item)"
|
@blur="saveRename(item)"
|
||||||
>
|
>
|
||||||
<p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ item.name || item.prompt }}</p>
|
<p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ item.name || item.prompt }}</p>
|
||||||
|
<PromptPreviewTip
|
||||||
|
v-if="item.prompt"
|
||||||
|
:text="item.prompt"
|
||||||
|
:aria-label="'Copy prompt for ' + (item.name || 'this clip')"
|
||||||
|
@copy="copyPrompt"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<p class="truncate text-xs text-zinc-500">{{ clipMetaLine(item) }}</p>
|
<p class="truncate text-xs text-zinc-500">{{ clipMetaLine(item) }}</p>
|
||||||
<PermanenceRefStrip
|
<PermanenceRefStrip
|
||||||
@@ -1839,6 +1845,12 @@
|
|||||||
@blur="saveRenameStill(item)"
|
@blur="saveRenameStill(item)"
|
||||||
>
|
>
|
||||||
<p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ stillTitle(item) }}</p>
|
<p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ stillTitle(item) }}</p>
|
||||||
|
<PromptPreviewTip
|
||||||
|
v-if="item.prompt"
|
||||||
|
:text="item.prompt"
|
||||||
|
:aria-label="'Copy prompt for ' + stillTitle(item)"
|
||||||
|
@copy="copyPrompt"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<p class="truncate text-xs text-zinc-500">{{ stillMetaLine(item) }}</p>
|
<p class="truncate text-xs text-zinc-500">{{ stillMetaLine(item) }}</p>
|
||||||
<div class="mt-1.5 flex flex-wrap items-center gap-3">
|
<div class="mt-1.5 flex flex-wrap items-center gap-3">
|
||||||
|
|||||||
+6
-2
@@ -479,8 +479,12 @@ const focusedNavIndex = computed(() => {
|
|||||||
return index < 0 ? 0 : index
|
return index < 0 ? 0 : index
|
||||||
})
|
})
|
||||||
const detailPrompt = computed(() => {
|
const detailPrompt = computed(() => {
|
||||||
if (focused.value?.kind === 'clip') return focused.value.group?.head.prompt || ''
|
if (focused.value?.kind === 'clip' && focused.value.group) {
|
||||||
return focused.value?.stillGroup?.head.prompt || ''
|
const item = focused.value.group.parts.find(part => part.id === focusedPartId.value) || focused.value.group.head
|
||||||
|
return item.prompt || ''
|
||||||
|
}
|
||||||
|
const still = focused.value?.stillGroup?.parts.find(part => part.id === focusedPartId.value) || focused.value?.stillGroup?.head
|
||||||
|
return still?.prompt || ''
|
||||||
})
|
})
|
||||||
const detailMeta = computed(() => {
|
const detailMeta = computed(() => {
|
||||||
const entry = focused.value
|
const entry = focused.value
|
||||||
|
|||||||
@@ -141,9 +141,10 @@ export function stillModeLabel(still: { filename?: string; settings?: StillGener
|
|||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|
||||||
export function stillSettingsRows(still: { width?: number; height?: number; settings?: StillGenerationSettings | null }) {
|
export function stillSettingsRows(still: { prompt?: string; width?: number; height?: number; settings?: StillGenerationSettings | null }) {
|
||||||
const settings = still.settings
|
const settings = still.settings
|
||||||
const rows: SettingsRow[] = []
|
const rows: SettingsRow[] = []
|
||||||
|
if (still.prompt?.trim()) rows.push({ label: 'Prompt', value: still.prompt.trim() })
|
||||||
const mode = stillModeLabel(still)
|
const mode = stillModeLabel(still)
|
||||||
if (mode) rows.push({ label: 'Mode', value: mode })
|
if (mode) rows.push({ label: 'Mode', value: mode })
|
||||||
if (!settings) return rows
|
if (!settings) return rows
|
||||||
@@ -201,6 +202,7 @@ function videoWorkflowLabel(workflow?: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function clipSettingsRows(clip: {
|
export function clipSettingsRows(clip: {
|
||||||
|
prompt?: string
|
||||||
width?: number
|
width?: number
|
||||||
height?: number
|
height?: number
|
||||||
duration?: number
|
duration?: number
|
||||||
@@ -218,6 +220,7 @@ export function clipSettingsRows(clip: {
|
|||||||
loraStack?: LoraStackItem[]
|
loraStack?: LoraStackItem[]
|
||||||
}) {
|
}) {
|
||||||
const rows: SettingsRow[] = []
|
const rows: SettingsRow[] = []
|
||||||
|
if (clip.prompt?.trim()) rows.push({ label: 'Prompt', value: clip.prompt.trim() })
|
||||||
const workflow = videoWorkflowLabel(clip.workflow)
|
const workflow = videoWorkflowLabel(clip.workflow)
|
||||||
if (workflow) rows.push({ label: 'Workflow', value: workflow })
|
if (workflow) rows.push({ label: 'Workflow', value: workflow })
|
||||||
if (clip.width && clip.height) rows.push({ label: 'Size', value: `${clip.width}×${clip.height}` })
|
if (clip.width && clip.height) rows.push({ label: 'Size', value: `${clip.width}×${clip.height}` })
|
||||||
|
|||||||
Reference in New Issue
Block a user