feat(web): redesign task rail — Plan/Event log polish, entity graph resize fix
- Plan/Activity panels: humanize step titles, richer icons, empty states matching Scope's illustration style, pretty-printed expandable detail - Activity log renamed to Event log; every step now expandable - Chat: middle-truncate header title, remove redundant task-list rail and header stat cluster (duplicated in the sidebar), simplify markdown styling - Fix --font-mono actually being a monospace font (was aliased to DM Sans) - Replace rotating loader-circle spinner with a smoother fading-blade Spinner - SessionGraph entity detail panel: resizable and self-clamping against its live container size (was overflowing into sibling sections), close button - Dev launch config: fetch bearer token from the running api container so `npm run dev` works against the local compose stack without a hardcoded secret in a tracked file Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
30
web/src/lib/components/Spinner.svelte
Normal file
30
web/src/lib/components/Spinner.svelte
Normal file
@@ -0,0 +1,30 @@
|
||||
<script lang="ts">
|
||||
// A fading-blade spinner rather than a rotating arc — rotating a single
|
||||
// thin stroke via CSS transform reads as jittery at icon sizes (the arc's
|
||||
// sub-pixel edges shimmer each frame). Cycling opacity across fixed blades
|
||||
// avoids that entirely and is how native OS spinners do it.
|
||||
let { class: className = '' }: { class?: string } = $props()
|
||||
|
||||
const TICKS = 8
|
||||
const DUR = 0.9
|
||||
</script>
|
||||
|
||||
<svg viewBox="0 0 24 24" class={className} fill="none" aria-hidden="true">
|
||||
{#each Array.from({ length: TICKS }) as _, i (i)}
|
||||
<rect
|
||||
x="11" y="1.5" width="2" height="6" rx="1"
|
||||
fill="currentColor"
|
||||
opacity="0.15"
|
||||
transform="rotate({i * (360 / TICKS)} 12 12)"
|
||||
>
|
||||
<animate
|
||||
attributeName="opacity"
|
||||
values="1;0.15"
|
||||
keyTimes="0;1"
|
||||
dur="{DUR}s"
|
||||
begin="{-(i * (DUR / TICKS)).toFixed(3)}s"
|
||||
repeatCount="indefinite"
|
||||
/>
|
||||
</rect>
|
||||
{/each}
|
||||
</svg>
|
||||
Reference in New Issue
Block a user