feat(tasks-ui): readability pass, height-budget fix and leftover sweep
The native port is finished off with the readability work the earlier rounds left open, plus the cleanup of everything the shadcn era or the older canvas left behind. - Geometry: node height is now composed from named parts (chrome, two title lines, meta row) and per-node extras, so a teammate card that carries a task line no longer gets clipped by the old fixed 68px budget; the layout spec follows the new model and GRAPH_ROW_STRIDE stays exported for it. - Readability: row rhythm (28-32px), three ink levels for title/meta/owner, truncation with title hints, current-row and hover expressed as an accent bar plus a hover fill (no shadows), phase frames and edges back on the l1/l2 hairlines, control cluster uniformly 28px, drawer durations on tabular figures, kill action revealed on hover/focus without shifting the row, no horizontal overflow at 360px. - Task window: the markdown body is pulled onto the page scale (12px body, 12/13px headings, tightened list indent and paragraph spacing) while the shared MarkdownText/markdownTextProps contract is untouched. - Cleanup: dead stylesheet rules, unused TSX exports and helpers, stale comments that still described the retired Variant-D canvas, zero-reference i18n keys across the dictionaries, and the Tailwind/shadcn/Variant-D narrative in the design doc, AGENTS.md and the plugin guide (kept as one short "why it was rolled back" section). Verified here: typecheck and lint clean; 133 files / 1413 tests; build with no radix-ui or --tw- strings in lib/client.js (988.9 KiB); the 70-assertion real-browser contract at 70/70 with the 20 reference screenshots regenerated; mount e2e 7/7.
This commit is contained in:
@@ -61,29 +61,16 @@ export const sv: Record<string, string> = {
|
||||
openWithSettingsRemove: 'Ta bort',
|
||||
openWithSettingsInvalidHint: 'Editorer med saknat namn eller en mall utan {path} / scheme:// visas inte i menyn',
|
||||
newTab: 'Ny flik',
|
||||
openExplorer: 'Utforskare',
|
||||
brokenSymlink: 'Bruten symbolisk länk',
|
||||
openGit: 'Git-panel',
|
||||
newTerminal: 'Ny terminal',
|
||||
terminalLimit: 'Terminalgräns nådd (3)',
|
||||
close: 'Stäng',
|
||||
closeOtherTabs: 'Stäng andra flikar',
|
||||
closeLeftTabs: 'Stäng flikar till vänster',
|
||||
closeRightTabs: 'Stäng flikar till höger',
|
||||
floatDropHint: 'Släpp för att öppna i ett fritt fönster',
|
||||
dockToSidebar: 'Tillbaka till sidopanelen',
|
||||
pinTerminal: 'Fäst Terminal',
|
||||
pinAgentTerminal: 'Fäst Agent-terminal',
|
||||
pinToWorkspace: 'Fäst på arbetsyta',
|
||||
pinToGlobal: 'Fäst globalt',
|
||||
unpinTerminal: 'Ta bort fästning',
|
||||
pinnedTerminalTooltip: '{kind} · {scope} · {cwd}',
|
||||
pinnedTerminalKindUi: 'UI-terminal',
|
||||
pinnedTerminalKindAgent: 'Agent-terminal',
|
||||
pinnedTerminalScopeWorkspace: 'Fäst på arbetsyta',
|
||||
pinnedTerminalScopeGlobal: 'Fäst globalt',
|
||||
pinnedRailLabel: 'Fästa terminaler',
|
||||
closePinnedTerminal: 'Stäng terminal',
|
||||
collapseBottomPanel: 'Komprimera bottenpanel',
|
||||
expandBottomPanel: 'Expandera bottenpanel',
|
||||
terminalError: 'Terminalanslutning misslyckades',
|
||||
@@ -115,10 +102,6 @@ export const sv: Record<string, string> = {
|
||||
loading: 'Laddar…',
|
||||
error: 'Kunde inte ladda',
|
||||
retry: 'Försök igen',
|
||||
splitLeft: 'Dela vänster',
|
||||
splitRight: 'Dela höger',
|
||||
splitUp: 'Dela upp',
|
||||
splitDown: 'Dela ner',
|
||||
notRepo: 'Denna katalog är inte ett Git-arkiv',
|
||||
noChanges: 'Inga ändringar',
|
||||
statusTruncated: 'För många ändringar; endast de första 2000 posterna visas',
|
||||
@@ -128,7 +111,6 @@ export const sv: Record<string, string> = {
|
||||
unstageAll: 'Avköa alla',
|
||||
commitPlaceholder: 'Commit-meddelande (Ctrl+Enter)',
|
||||
commit: 'Commit',
|
||||
commitError: 'Commit misslyckades',
|
||||
branch: 'Gren',
|
||||
worktree: 'Arbetsträd',
|
||||
checkoutError: 'Grenbyte misslyckades',
|
||||
@@ -152,7 +134,6 @@ export const sv: Record<string, string> = {
|
||||
diffDeleted: 'Borttagen',
|
||||
diffRenamed: 'Omdöpt',
|
||||
diffExpand: 'Expandera {count} fler rader',
|
||||
diffCollapse: 'Komprimera',
|
||||
discard: 'Förkasta ändringar',
|
||||
discardTitle: 'Förkasta ändringar',
|
||||
discardDesc: 'Detta förkastar arbetskopians ändringar av ”{path}” (kan inte ångras).',
|
||||
@@ -173,18 +154,14 @@ export const sv: Record<string, string> = {
|
||||
loadMore: 'Ladda fler',
|
||||
historyLoadError: 'Kunde inte ladda mer historik',
|
||||
produced: 'Producerat',
|
||||
producedOpen: 'Öppna i sidopanelen',
|
||||
disconnected: 'Terminalen frånkopplad, ansluter igen…',
|
||||
exited: 'Terminalprocess avslutad',
|
||||
noSession: 'Välj en konversation för att använda sidopanelen',
|
||||
pluginNotLoaded: 'Plugin inte laddad; flik otillgänglig:',
|
||||
hiddenFiles: 'Dolda filer',
|
||||
parent: 'Överordnad katalog',
|
||||
copied: 'Kopierades',
|
||||
copy: 'Kopiera',
|
||||
newFile: 'Ny fil',
|
||||
openEditor: 'Öppna editor',
|
||||
gitDetail: 'Visa ändringsdetaljer',
|
||||
referenceFile: '@fil',
|
||||
addToConversation: 'Lägg till i konversation',
|
||||
copyRelative: 'Kopiera relativ sökväg',
|
||||
@@ -228,7 +205,6 @@ export const sv: Record<string, string> = {
|
||||
settingsSchemeCustomDesc: 'Full kontroll: injicera egen CSS (kan åsidosätta inbyggda stilar) och sätt titelfältets förskjutningsavstånd',
|
||||
settingsSchemeDetectedSuffix: 'upptäckt',
|
||||
settingsCustomCssTitle: 'Anpassad CSS',
|
||||
settingsCustomCssDesc: 'Stilar tillagda på slutet av sidan (senare i kaskaden vinner vid oavgjort; använd !important för att åsidosätta JS-skrivna inline-variabler)',
|
||||
settingsCustomCssPlaceholder: '/* t.ex. reservera 36px för ett skal med egenritat titelfält */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
|
||||
settingsSaveFailed: 'Kunde inte spara',
|
||||
settingsConflict: 'Inställningen ändrades i ett annat fönster — vänligen försök igen',
|
||||
@@ -251,7 +227,6 @@ export const sv: Record<string, string> = {
|
||||
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
|
||||
settingsFontSizeTitle: 'Terminalens teckenstorlek',
|
||||
settingsFontSizeDesc: 'Terminalens teckenstorlek i px (9–32, standard 13)',
|
||||
settingsFontSizeSuffix: 'px',
|
||||
settingsShellTitle: 'Skalsökväg',
|
||||
settingsShellDesc: 'Skal som startas för UI- och modellterminaler (absolut sökväg ellerbart körbart namn). Tomt behåller den äldre ordningen: yaml config.shell → $SHELL / inloggningsskal / Windows powershell.exe. Gäller terminaler som öppnas senare',
|
||||
settingsShellPlaceholder: 't.ex. /bin/zsh (tomt = auto)',
|
||||
@@ -293,19 +268,14 @@ export const sv: Record<string, string> = {
|
||||
browserEmbedBlockedDesc: 'Sajten förbjuder att visas inuti andra sidor (X-Frame-Options / frame-ancestors), så den kan inte ladda i sidopanelen. Öppna den direkt i er webbläsare i stället.',
|
||||
browserEmbedAnyway: 'Ladda ändå',
|
||||
subagent: 'Uppgifter',
|
||||
openSubagent: 'Uppgifter',
|
||||
subagentMainAgent: 'Huvudagent',
|
||||
subagentEmpty: 'Inga subagenter',
|
||||
subagentEmptyDesc: 'Subagenter skapade under huvudagenten visas här',
|
||||
subagentRunning: 'Kör',
|
||||
subagentInactive: 'Inaktiv',
|
||||
subagentModeOneShot: 'Engångs',
|
||||
subagentModeContinuable: 'Fortsättbar',
|
||||
subagentCount: '{count} subagenter',
|
||||
subagentCountRunning: '{count} subagenter · {running} kör',
|
||||
subagentDiagCorrupt: 'Korrupt',
|
||||
subagentDiagUnsupported: 'Stöds ej',
|
||||
subagentDiagUnavailable: 'Otillgänglig',
|
||||
subagentThinking: 'Tänker…',
|
||||
sideChat: 'Sidochatt (beta)',
|
||||
sideChatNew: 'Ny tråd',
|
||||
@@ -326,10 +296,7 @@ export const sv: Record<string, string> = {
|
||||
sideChatThink: 'Tänker',
|
||||
sideChatInjection: 'Kontext injicerad',
|
||||
sideChatSend: 'Skicka',
|
||||
sideChatCancel: 'Stoppa',
|
||||
sideChatCancelTitle: 'Avbryt den pågående vändan (köat arbete behålls)',
|
||||
sideChatClose: 'Stäng tråd',
|
||||
sideChatCloseTitle: 'Frigör trådens agent (historik behålls)',
|
||||
sideChatError: 'Sidochattsfel: {message}',
|
||||
sideChatTurnUsage: 'In {input} tok · Ut {output} tok',
|
||||
sideChatBlockCollapse: 'Fäll ihop',
|
||||
@@ -365,7 +332,6 @@ export const sv: Record<string, string> = {
|
||||
jobDurationMinutes: '{minutes}m {seconds}s',
|
||||
jobDurationHours: '{hours}t {minutes}m',
|
||||
jobViewOutput: 'Visa utdata',
|
||||
jobHideOutput: 'Dölj utdata',
|
||||
jobNoOutput: 'Ingen utdata än',
|
||||
jobNotReadYet: 'Väntar på att modellen ska läsa detta jobb; dess utdata visas här när modellen kör job_output',
|
||||
jobOutputTruncated: 'Utdata avkortad',
|
||||
@@ -383,7 +349,6 @@ export const sv: Record<string, string> = {
|
||||
settingsViewModeGraphDesc: 'Lagerindelad nodgraf med zoom och panorering',
|
||||
settingsViewModeTree: 'Träd',
|
||||
settingsViewModeTreeDesc: 'Klassiskt indragsträd, navigerbart med tangentbord',
|
||||
tasksWorkflowMember: 'Arbetsflödesmedlem',
|
||||
tasksFoldCompleted: '✓ {count} klara',
|
||||
tasksFoldExpand: 'Visa färdiga noder',
|
||||
tasksFoldCollapse: 'Dölj färdiga noder',
|
||||
@@ -404,7 +369,6 @@ export const sv: Record<string, string> = {
|
||||
tasksStateError: 'Fel',
|
||||
teamBoard: 'Teamuppgiftstavla',
|
||||
teamChip: 'Team {members} medlemmar · {tasks} uppgifter',
|
||||
teamMembers: 'Medlemmar',
|
||||
teamTasksEmpty: 'Inga delade uppgifter än',
|
||||
teamTaskCreate: 'Ny uppgift',
|
||||
teamTaskSubject: 'Ämne',
|
||||
|
||||
Reference in New Issue
Block a user