mirror of
https://github.com/stablyai/orca.git
synced 2026-10-15 16:02:49 +00:00
Fix verify max-lines failures (#5239)
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
FEATURE_TOUR_PREVIEW_COPY
|
||||
} from './feature-tour-preview-copy'
|
||||
import { FeatureTourWorkspaceCard } from './FeatureTourWorkspaceCard'
|
||||
import { TerminalFrame } from './FeatureTourTerminalFrame'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
export { FEATURE_TOUR_PREVIEW_COPY } from './feature-tour-preview-copy'
|
||||
@@ -291,125 +292,6 @@ function TasksFrame(): JSX.Element {
|
||||
)
|
||||
}
|
||||
|
||||
function TerminalFrame(): JSX.Element {
|
||||
return (
|
||||
<div className="absolute inset-0 flex flex-col gap-5 bg-card px-4 py-4">
|
||||
<div className="text-[14.5px] font-semibold uppercase tracking-[0.07em] leading-none text-muted-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.1aa8a9a24a',
|
||||
'Splittable terminal'
|
||||
)}
|
||||
</div>
|
||||
<div className="mx-4 flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border border-border bg-background">
|
||||
<div className="flex items-center gap-1.5 border-b border-border bg-muted/40 px-2 py-1">
|
||||
<span className="size-1.5 rounded-full bg-foreground/15" />
|
||||
<span className="size-1.5 rounded-full bg-foreground/15" />
|
||||
<span className="size-1.5 rounded-full bg-foreground/15" />
|
||||
<span className="ml-2 font-mono text-[13.5px] leading-none text-muted-foreground">
|
||||
{translate('auto.components.feature.wall.FeatureTourPreview.04d54d50ec', 'orca · zsh')}
|
||||
</span>
|
||||
</div>
|
||||
<div className="grid flex-1 grid-cols-2 divide-x divide-border font-mono text-[14.5px] leading-[1.4] text-foreground">
|
||||
<div className="min-w-0 p-2">
|
||||
<div className="flex items-center gap-1">
|
||||
<span className="text-emerald-500">$</span>
|
||||
<span className="feature-tour-terminal-line relative inline-block whitespace-nowrap text-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.6218a9014d',
|
||||
'pnpm playwright test'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div className="mt-1.5 flex flex-col gap-1">
|
||||
<div
|
||||
className="feature-tour-terminal-output truncate text-muted-foreground"
|
||||
data-line="1"
|
||||
>
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.8279e9d95b',
|
||||
'Running 12 tests'
|
||||
)}
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="2"
|
||||
>
|
||||
<span className="font-bold text-emerald-600">✓</span>
|
||||
<span className="truncate">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.24fedd5a52',
|
||||
'login.spec.ts'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="3"
|
||||
>
|
||||
<span className="inline-block size-2 animate-spin rounded-full border-[1.5px] border-foreground/20 border-t-foreground" />
|
||||
<span className="truncate">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.6ed43cb0e0',
|
||||
'dashboard.spec.ts'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="min-w-0 p-2">
|
||||
<div className="flex items-center gap-1">
|
||||
<span className="text-emerald-500">$</span>
|
||||
<span className="text-foreground">
|
||||
{translate('auto.components.feature.wall.FeatureTourPreview.771d8881c2', 'claude')}
|
||||
</span>
|
||||
</div>
|
||||
<div className="mt-1.5 flex flex-col gap-1">
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="1"
|
||||
>
|
||||
<ClaudeIcon size={12} />
|
||||
<span className="truncate text-muted-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.952d3ddd9a',
|
||||
'session started'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1"
|
||||
data-line="2"
|
||||
>
|
||||
<span className="text-amber-600">
|
||||
{translate('auto.components.feature.wall.FeatureTourPreview.1170621527', '>')}
|
||||
</span>
|
||||
<span className="truncate">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.ef8b164dd1',
|
||||
'review src/auth'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="3"
|
||||
>
|
||||
<span className="inline-block size-2 animate-spin rounded-full border-[1.5px] border-amber-600/20 border-t-amber-600" />
|
||||
<span className="truncate text-muted-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.304ad0dfc1',
|
||||
'Thinking...'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export function FeatureTourPreview(props: { className?: string }): JSX.Element {
|
||||
return (
|
||||
<div
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
import type { JSX } from 'react'
|
||||
import { ClaudeIcon } from '../status-bar/icons'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
export function TerminalFrame(): JSX.Element {
|
||||
return (
|
||||
<div className="absolute inset-0 flex flex-col gap-5 bg-card px-4 py-4">
|
||||
<div className="text-[14.5px] font-semibold uppercase tracking-[0.07em] leading-none text-muted-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.1aa8a9a24a',
|
||||
'Splittable terminal'
|
||||
)}
|
||||
</div>
|
||||
<div className="mx-4 flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border border-border bg-background">
|
||||
<div className="flex items-center gap-1.5 border-b border-border bg-muted/40 px-2 py-1">
|
||||
<span className="size-1.5 rounded-full bg-foreground/15" />
|
||||
<span className="size-1.5 rounded-full bg-foreground/15" />
|
||||
<span className="size-1.5 rounded-full bg-foreground/15" />
|
||||
<span className="ml-2 font-mono text-[13.5px] leading-none text-muted-foreground">
|
||||
{translate('auto.components.feature.wall.FeatureTourPreview.04d54d50ec', 'orca · zsh')}
|
||||
</span>
|
||||
</div>
|
||||
<div className="grid flex-1 grid-cols-2 divide-x divide-border font-mono text-[14.5px] leading-[1.4] text-foreground">
|
||||
<div className="min-w-0 p-2">
|
||||
<div className="flex items-center gap-1">
|
||||
<span className="text-emerald-500">$</span>
|
||||
<span className="feature-tour-terminal-line relative inline-block whitespace-nowrap text-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.6218a9014d',
|
||||
'pnpm playwright test'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div className="mt-1.5 flex flex-col gap-1">
|
||||
<div
|
||||
className="feature-tour-terminal-output truncate text-muted-foreground"
|
||||
data-line="1"
|
||||
>
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.8279e9d95b',
|
||||
'Running 12 tests'
|
||||
)}
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="2"
|
||||
>
|
||||
<span className="font-bold text-emerald-600">✓</span>
|
||||
<span className="truncate">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.24fedd5a52',
|
||||
'login.spec.ts'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="3"
|
||||
>
|
||||
<span className="inline-block size-2 animate-spin rounded-full border-[1.5px] border-foreground/20 border-t-foreground" />
|
||||
<span className="truncate">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.6ed43cb0e0',
|
||||
'dashboard.spec.ts'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="min-w-0 p-2">
|
||||
<div className="flex items-center gap-1">
|
||||
<span className="text-emerald-500">$</span>
|
||||
<span className="text-foreground">
|
||||
{translate('auto.components.feature.wall.FeatureTourPreview.771d8881c2', 'claude')}
|
||||
</span>
|
||||
</div>
|
||||
<div className="mt-1.5 flex flex-col gap-1">
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="1"
|
||||
>
|
||||
<ClaudeIcon size={12} />
|
||||
<span className="truncate text-muted-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.952d3ddd9a',
|
||||
'session started'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1"
|
||||
data-line="2"
|
||||
>
|
||||
<span className="text-amber-600">
|
||||
{translate('auto.components.feature.wall.FeatureTourPreview.1170621527', '>')}
|
||||
</span>
|
||||
<span className="truncate">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.ef8b164dd1',
|
||||
'review src/auth'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className="feature-tour-terminal-output flex min-w-0 items-center gap-1.5"
|
||||
data-line="3"
|
||||
>
|
||||
<span className="inline-block size-2 animate-spin rounded-full border-[1.5px] border-amber-600/20 border-t-amber-600" />
|
||||
<span className="truncate text-muted-foreground">
|
||||
{translate(
|
||||
'auto.components.feature.wall.FeatureTourPreview.304ad0dfc1',
|
||||
'Thinking...'
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useRef, useState } from 'react'
|
||||
import { RotateCw } from 'lucide-react'
|
||||
import type { GlobalSettings, TerminalColorOverrides } from '../../../../shared/types'
|
||||
import type { GlobalSettings } from '../../../../shared/types'
|
||||
import { Button } from '../ui/button'
|
||||
import { Label } from '../ui/label'
|
||||
import { ColorField, NumberField } from './SettingsFormControls'
|
||||
@@ -8,354 +8,13 @@ import { SearchableSetting } from './SearchableSetting'
|
||||
import { clampNumber } from '@/lib/terminal-theme'
|
||||
import { useMountedRef } from '@/hooks/useMountedRef'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
import { COLOR_OVERRIDE_GROUPS } from './terminal-color-override-groups'
|
||||
|
||||
type TerminalWindowSectionProps = {
|
||||
settings: GlobalSettings
|
||||
updateSettings: (updates: Partial<GlobalSettings>) => void
|
||||
}
|
||||
|
||||
const COLOR_OVERRIDE_GROUPS: {
|
||||
label: string
|
||||
keys: { key: keyof TerminalColorOverrides; label: string; description: string }[]
|
||||
}[] = [
|
||||
{
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.cf37ff69f6', 'Base')
|
||||
},
|
||||
keys: [
|
||||
{
|
||||
key: 'foreground',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.79f6bfb76e',
|
||||
'Foreground'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.026a0b8013',
|
||||
'Main text color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'background',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.cc1b2ffeb2',
|
||||
'Background'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.da64e8f4c1',
|
||||
'Terminal background color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'cursor',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.c9e1fdf42f', 'Cursor')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.cd0700762b',
|
||||
'Cursor color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'cursorAccent',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.a2d9f095a7',
|
||||
'Cursor Text'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.7f4063076c',
|
||||
'Color of text under the cursor (block cursor)'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'selectionBackground',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.40c3cfd30a',
|
||||
'Selection Background'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.74d8555f85',
|
||||
'Background color of selected text'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'selectionForeground',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.8b450b5305',
|
||||
'Selection Foreground'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.b2c0857c49',
|
||||
'Text color of selected text'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'bold',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.862e463f7f', 'Bold Text')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.fb8c6f1967',
|
||||
'Color for bold text. Falls back to the normal color if not set.'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.68e9f07de0', 'ANSI Normal')
|
||||
},
|
||||
keys: [
|
||||
{
|
||||
key: 'black',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.adfdee23cb', 'Black')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.cf4437a2f7',
|
||||
'ANSI black color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'red',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.3a78f30b50', 'Red')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.b41270f5ca',
|
||||
'ANSI red color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'green',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.8f2092b315', 'Green')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.8a673d4206',
|
||||
'ANSI green color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'yellow',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.bb516de873', 'Yellow')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.09c1c6b096',
|
||||
'ANSI yellow color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'blue',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.292a4c7316', 'Blue')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.9635a71c51',
|
||||
'ANSI blue color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'magenta',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.d5e92fcd94', 'Magenta')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.1705318506',
|
||||
'ANSI magenta color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'cyan',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.fb8bb4eb1f', 'Cyan')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.bd4c759327',
|
||||
'ANSI cyan color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'white',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.0cb4459fb8', 'White')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.28846b1ca6',
|
||||
'ANSI white color'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.1be593d3e8', 'ANSI Bright')
|
||||
},
|
||||
keys: [
|
||||
{
|
||||
key: 'brightBlack',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.260d69ce9a',
|
||||
'Bright Black'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.f30c492769',
|
||||
'ANSI bright black color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightRed',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.32b1b6acd7',
|
||||
'Bright Red'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.667de68863',
|
||||
'ANSI bright red color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightGreen',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.7dafd57730',
|
||||
'Bright Green'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.0ffb02f921',
|
||||
'ANSI bright green color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightYellow',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.936a326be3',
|
||||
'Bright Yellow'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.e2ef5f4ab7',
|
||||
'ANSI bright yellow color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightBlue',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.66820332fa',
|
||||
'Bright Blue'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.bef6c0f6bf',
|
||||
'ANSI bright blue color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightMagenta',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.e56e7d6ea0',
|
||||
'Bright Magenta'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.fe4d89ef85',
|
||||
'ANSI bright magenta color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightCyan',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.f94adc4113',
|
||||
'Bright Cyan'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.1601140f03',
|
||||
'ANSI bright cyan color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightWhite',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.16948119cb',
|
||||
'Bright White'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.42e01a6055',
|
||||
'ANSI bright white color'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
export function TerminalWindowSection({
|
||||
settings,
|
||||
updateSettings
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
import { translate } from '@/i18n/i18n'
|
||||
import type { TerminalColorOverrideGroup } from './terminal-color-override-group-types'
|
||||
|
||||
export const TERMINAL_BASE_COLOR_OVERRIDE_GROUPS: TerminalColorOverrideGroup[] = [
|
||||
{
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.cf37ff69f6', 'Base')
|
||||
},
|
||||
keys: [
|
||||
{
|
||||
key: 'foreground',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.79f6bfb76e',
|
||||
'Foreground'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.026a0b8013',
|
||||
'Main text color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'background',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.cc1b2ffeb2',
|
||||
'Background'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.da64e8f4c1',
|
||||
'Terminal background color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'cursor',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.c9e1fdf42f', 'Cursor')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.cd0700762b',
|
||||
'Cursor color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'cursorAccent',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.a2d9f095a7',
|
||||
'Cursor Text'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.7f4063076c',
|
||||
'Color of text under the cursor (block cursor)'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'selectionBackground',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.40c3cfd30a',
|
||||
'Selection Background'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.74d8555f85',
|
||||
'Background color of selected text'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'selectionForeground',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.8b450b5305',
|
||||
'Selection Foreground'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.b2c0857c49',
|
||||
'Text color of selected text'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'bold',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.862e463f7f', 'Bold Text')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.fb8c6f1967',
|
||||
'Color for bold text. Falls back to the normal color if not set.'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.68e9f07de0', 'ANSI Normal')
|
||||
},
|
||||
keys: [
|
||||
{
|
||||
key: 'black',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.adfdee23cb', 'Black')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.cf4437a2f7',
|
||||
'ANSI black color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'red',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.3a78f30b50', 'Red')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.b41270f5ca',
|
||||
'ANSI red color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'green',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.8f2092b315', 'Green')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.8a673d4206',
|
||||
'ANSI green color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'yellow',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.bb516de873', 'Yellow')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.09c1c6b096',
|
||||
'ANSI yellow color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'blue',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.292a4c7316', 'Blue')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.9635a71c51',
|
||||
'ANSI blue color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'magenta',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.d5e92fcd94', 'Magenta')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.1705318506',
|
||||
'ANSI magenta color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'cyan',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.fb8bb4eb1f', 'Cyan')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.bd4c759327',
|
||||
'ANSI cyan color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'white',
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.0cb4459fb8', 'White')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.28846b1ca6',
|
||||
'ANSI white color'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,132 @@
|
||||
import { translate } from '@/i18n/i18n'
|
||||
import type { TerminalColorOverrideGroup } from './terminal-color-override-group-types'
|
||||
|
||||
export const TERMINAL_BRIGHT_COLOR_OVERRIDE_GROUPS: TerminalColorOverrideGroup[] = [
|
||||
{
|
||||
get label() {
|
||||
return translate('auto.components.settings.TerminalWindowSection.1be593d3e8', 'ANSI Bright')
|
||||
},
|
||||
keys: [
|
||||
{
|
||||
key: 'brightBlack',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.260d69ce9a',
|
||||
'Bright Black'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.f30c492769',
|
||||
'ANSI bright black color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightRed',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.32b1b6acd7',
|
||||
'Bright Red'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.667de68863',
|
||||
'ANSI bright red color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightGreen',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.7dafd57730',
|
||||
'Bright Green'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.0ffb02f921',
|
||||
'ANSI bright green color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightYellow',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.936a326be3',
|
||||
'Bright Yellow'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.e2ef5f4ab7',
|
||||
'ANSI bright yellow color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightBlue',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.66820332fa',
|
||||
'Bright Blue'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.bef6c0f6bf',
|
||||
'ANSI bright blue color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightMagenta',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.e56e7d6ea0',
|
||||
'Bright Magenta'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.fe4d89ef85',
|
||||
'ANSI bright magenta color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightCyan',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.f94adc4113',
|
||||
'Bright Cyan'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.1601140f03',
|
||||
'ANSI bright cyan color'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'brightWhite',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.16948119cb',
|
||||
'Bright White'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.settings.TerminalWindowSection.42e01a6055',
|
||||
'ANSI bright white color'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,6 @@
|
||||
import type { TerminalColorOverrides } from '../../../../shared/types'
|
||||
|
||||
export type TerminalColorOverrideGroup = {
|
||||
label: string
|
||||
keys: { key: keyof TerminalColorOverrides; label: string; description: string }[]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { TERMINAL_BASE_COLOR_OVERRIDE_GROUPS } from './terminal-base-color-override-groups'
|
||||
import { TERMINAL_BRIGHT_COLOR_OVERRIDE_GROUPS } from './terminal-bright-color-override-groups'
|
||||
import type { TerminalColorOverrideGroup } from './terminal-color-override-group-types'
|
||||
|
||||
export const COLOR_OVERRIDE_GROUPS: TerminalColorOverrideGroup[] = [
|
||||
...TERMINAL_BASE_COLOR_OVERRIDE_GROUPS,
|
||||
...TERMINAL_BRIGHT_COLOR_OVERRIDE_GROUPS
|
||||
]
|
||||
@@ -17,209 +17,25 @@ import {
|
||||
} from '@/components/ui/dropdown-menu'
|
||||
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group'
|
||||
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
|
||||
import type { AgentActivityDisplayMode, WorktreeCardProperty } from '../../../../shared/types'
|
||||
import type { AgentActivityDisplayMode } from '../../../../shared/types'
|
||||
import { DEFAULT_SHOW_SLEEPING_WORKSPACES } from '../../../../shared/constants'
|
||||
import SidebarRepositoryFilterSection from './SidebarRepositoryFilterSection'
|
||||
import SidebarWorkspaceFilterSection from './SidebarWorkspaceFilterSection'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
import {
|
||||
AGENT_ACTIVITY_DISPLAY_OPTIONS,
|
||||
CARD_LAYOUT_OPTIONS,
|
||||
GROUP_BY_OPTIONS,
|
||||
PROJECT_ORDER_OPTIONS,
|
||||
PROPERTY_OPTIONS,
|
||||
SORT_OPTIONS
|
||||
} from './sidebar-workspace-options-menu-options'
|
||||
|
||||
type SidebarWorkspaceOptionsMenuProps = {
|
||||
preserveWorkspaceBoardOpen?: boolean
|
||||
onMenuOpenChange?: (open: boolean) => void
|
||||
}
|
||||
|
||||
const GROUP_BY_OPTIONS = [
|
||||
{
|
||||
id: 'none',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.c2c7a45cda', 'None')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'workspace-status',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.e029a2d775', 'Status')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'pr-status',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.0f9b959b31', 'PR')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'repo',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.2170d553cf', 'Project')
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
const CARD_LAYOUT_OPTIONS = [
|
||||
{
|
||||
id: 'detailed',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.cc17bd443b', 'Detailed')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'compact',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.25105b28cb', 'Compact')
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
const PROPERTY_OPTIONS: { id: WorktreeCardProperty; label: string }[] = [
|
||||
{
|
||||
id: 'issue',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.91dfc653e8',
|
||||
'GitHub ticket'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'linear-issue',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.ca4d3c522e',
|
||||
'Linear issue'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'pr',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.b8dcc6f321',
|
||||
'PR/MR link'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'comment',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.26c71e536c', 'Notes')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'ports',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.b64d8bcca0', 'Ports')
|
||||
}
|
||||
},
|
||||
// Why: toggles the inline "Agent activity" list rendered below each
|
||||
// workspace card body (see WorktreeCard -> WorktreeCardAgents). Off hides
|
||||
// the list; there is no alternate surface.
|
||||
{
|
||||
id: 'inline-agents',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.d7084e8bc8',
|
||||
'Agent activity'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
const AGENT_ACTIVITY_DISPLAY_OPTIONS: { id: AgentActivityDisplayMode; label: string }[] = [
|
||||
{
|
||||
id: 'compact',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.25105b28cb', 'Compact')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'full',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.2a81e07366',
|
||||
'Full list'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
const SORT_OPTIONS = [
|
||||
{
|
||||
id: 'name',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.3728165cdd', 'Name')
|
||||
},
|
||||
description: null
|
||||
},
|
||||
{
|
||||
id: 'smart',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.503462f2b4',
|
||||
'Agent Activity'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.b759bb87ee',
|
||||
'Agents that need attention, then most recent activity.'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'recent',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.b451c8b162', 'Recent')
|
||||
},
|
||||
description: null
|
||||
},
|
||||
{
|
||||
id: 'repo',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.2170d553cf', 'Project')
|
||||
},
|
||||
description: null
|
||||
},
|
||||
{
|
||||
id: 'manual',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.7b316bdd51', 'Manual')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.7153d07485',
|
||||
'Drag workspaces to arrange them within each group.'
|
||||
)
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
const PROJECT_ORDER_OPTIONS = [
|
||||
{
|
||||
id: 'manual',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.7b316bdd51', 'Manual')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.6664282a7b',
|
||||
'Drag projects to arrange them'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'recent',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.b451c8b162', 'Recent')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.af9249c505',
|
||||
'Most recent workspace activity'
|
||||
)
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
const SidebarWorkspaceOptionsMenu = React.memo(function SidebarWorkspaceOptionsMenu({
|
||||
preserveWorkspaceBoardOpen = false,
|
||||
onMenuOpenChange
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
import type { AgentActivityDisplayMode, WorktreeCardProperty } from '../../../../shared/types'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
export const GROUP_BY_OPTIONS = [
|
||||
{
|
||||
id: 'none',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.c2c7a45cda', 'None')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'workspace-status',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.e029a2d775', 'Status')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'pr-status',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.0f9b959b31', 'PR')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'repo',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.2170d553cf', 'Project')
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
export const CARD_LAYOUT_OPTIONS = [
|
||||
{
|
||||
id: 'detailed',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.cc17bd443b', 'Detailed')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'compact',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.25105b28cb', 'Compact')
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
export const PROPERTY_OPTIONS: { id: WorktreeCardProperty; label: string }[] = [
|
||||
{
|
||||
id: 'issue',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.91dfc653e8',
|
||||
'GitHub ticket'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'linear-issue',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.ca4d3c522e',
|
||||
'Linear issue'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'pr',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.b8dcc6f321',
|
||||
'PR/MR link'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'comment',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.26c71e536c', 'Notes')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'ports',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.b64d8bcca0', 'Ports')
|
||||
}
|
||||
},
|
||||
// Why: toggles the inline "Agent activity" list rendered below each
|
||||
// workspace card body (see WorktreeCard -> WorktreeCardAgents). Off hides
|
||||
// the list; there is no alternate surface.
|
||||
{
|
||||
id: 'inline-agents',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.d7084e8bc8',
|
||||
'Agent activity'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
export const AGENT_ACTIVITY_DISPLAY_OPTIONS: { id: AgentActivityDisplayMode; label: string }[] = [
|
||||
{
|
||||
id: 'compact',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.25105b28cb', 'Compact')
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'full',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.2a81e07366',
|
||||
'Full list'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
export const SORT_OPTIONS = [
|
||||
{
|
||||
id: 'name',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.3728165cdd', 'Name')
|
||||
},
|
||||
description: null
|
||||
},
|
||||
{
|
||||
id: 'smart',
|
||||
get label() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.503462f2b4',
|
||||
'Agent Activity'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.b759bb87ee',
|
||||
'Agents that need attention, then most recent activity.'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'recent',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.b451c8b162', 'Recent')
|
||||
},
|
||||
description: null
|
||||
},
|
||||
{
|
||||
id: 'repo',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.2170d553cf', 'Project')
|
||||
},
|
||||
description: null
|
||||
},
|
||||
{
|
||||
id: 'manual',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.7b316bdd51', 'Manual')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.7153d07485',
|
||||
'Drag workspaces to arrange them within each group.'
|
||||
)
|
||||
}
|
||||
}
|
||||
] as const
|
||||
|
||||
export const PROJECT_ORDER_OPTIONS = [
|
||||
{
|
||||
id: 'manual',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.7b316bdd51', 'Manual')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.6664282a7b',
|
||||
'Drag projects to arrange them'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'recent',
|
||||
get label() {
|
||||
return translate('auto.components.sidebar.SidebarWorkspaceOptionsMenu.b451c8b162', 'Recent')
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.sidebar.SidebarWorkspaceOptionsMenu.af9249c505',
|
||||
'Most recent workspace activity'
|
||||
)
|
||||
}
|
||||
}
|
||||
] as const
|
||||
Reference in New Issue
Block a user