claude-desktop/src/lib/components/StopButton.svelte
Eddy 29cce7fbd8
All checks were successful
Build AppImage / build (push) Successful in 6m37s
[appimage] UI-Polish: Icon, Stop-Button dezent, Chat-Queue, Update-Safety
- Neues Icon-Set (SVG-Quelle + gen-icon.sh): 32/64/128/256/512+@2x in depth=8
  (Tauri-Tray erwartet 8-bit-RGBA, depth=16 crashte den Tray-Setup)
- StopButton: Icon-only (⏹), Position Titlebar rechts, nur sichtbar wenn
  isProcessing aktiv. Kein full-width roter Balken im Footer mehr.
- .footer.active-Farbwechsel entfernt — Footer bleibt neutral
- Version-Badge in der Titlebar (v<APP_VERSION>)
- Chat-Input-Queue: Single-Slot-Puffer. Beim Senden waehrend Processing wird
  die Nachricht gepuffert, Pill "Nachricht wartet..." erscheint, nach Ende
  der aktuellen Antwort wird automatisch abgeschickt.
- Stop verwirft den gepufferten Slot (bewusster Abbruch).
- apply_update: ELF-Header-Smoke-Test vor Rename. Kaputter Download oder
  falsche Architektur liefert Fehlerdialog statt zerschossene Installation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 11:52:43 +02:00

61 lines
1.1 KiB
Svelte

<script lang="ts">
import { createEventDispatcher } from 'svelte';
export let disabled = false;
const dispatch = createEventDispatcher();
function handleClick() {
if (!disabled) {
dispatch('click');
}
}
</script>
<button
class="stop-button"
class:disabled
on:click={handleClick}
{disabled}
title="Stopp (Esc) beendet aktive Agenten, Session bleibt erhalten"
aria-label="Aktive Agents stoppen"
>
<span class="stop-icon"></span>
</button>
<style>
.stop-button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
padding: 0;
background: transparent;
color: #e94560;
font-size: 0.95rem;
border: 1px solid transparent;
border-radius: var(--radius-sm);
cursor: pointer;
transition: background 0.15s ease, border-color 0.15s ease;
}
.stop-button:not(.disabled):hover {
background: rgba(233, 69, 96, 0.12);
border-color: rgba(233, 69, 96, 0.35);
}
.stop-button:not(.disabled):active {
background: rgba(233, 69, 96, 0.22);
}
.stop-button.disabled {
color: var(--text-secondary);
opacity: 0.4;
cursor: not-allowed;
}
.stop-icon {
line-height: 1;
}
</style>