mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-31 18:16:09 +00:00
Brings the Tauri 2.x tray popover from #1022 onto main as windows/, mirroring mac/. Product name, bundle identifier, and version line up with the macOS menubar (org.agentseal.codeburn-menubar, 0.9.20); the crate is renamed off "desktop" so it no longer collides with the Electron app in app/. Linux (ksni) stays compiled and dev-usable but is documented as experimental: gnome/ is the shipping Linux surface. The five src/ CLI commits on that branch are dropped - they re-implement a daily-bucketing fix main already carries.
44 lines
1.7 KiB
TypeScript
44 lines
1.7 KiB
TypeScript
import { FLAME_PATH } from './Icons'
|
|
|
|
/// The macOS BurnLoadingOverlay: a blurred sheet over the scroll area with a flame that
|
|
/// fills bottom-to-top on a 1.4s loop while a soft glow pulses behind it.
|
|
|
|
type Props = { periodLabel: string }
|
|
|
|
export function LoadingOverlay({ periodLabel }: Props) {
|
|
return (
|
|
<div className="loading-overlay" role="status" aria-live="polite">
|
|
<div className="loading-content">
|
|
<BurnFlame />
|
|
<div className="loading-text">Loading {periodLabel}…</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export function BurnFlame({ size = 64 }: { size?: number }) {
|
|
return (
|
|
<div className="burn-flame" style={{ width: size, height: size }}>
|
|
<svg className="burn-flame-glow" viewBox="0 0 16 16" width={size} height={size} aria-hidden="true">
|
|
<path d={FLAME_PATH} />
|
|
</svg>
|
|
<svg className="burn-flame-outline" viewBox="0 0 16 16" width={size} height={size} aria-hidden="true">
|
|
<path d={FLAME_PATH} />
|
|
</svg>
|
|
<svg className="burn-flame-fill" viewBox="0 0 16 16" width={size} height={size} aria-hidden="true">
|
|
<defs>
|
|
<linearGradient id="burn-gradient" x1="0" y1="1" x2="0" y2="0">
|
|
<stop offset="0%" stopColor="#F0A070" />
|
|
<stop offset="33.33%" stopColor="#E8774A" />
|
|
<stop offset="66.66%" stopColor="#C9521D" />
|
|
<stop offset="100%" stopColor="#8B3E13" />
|
|
</linearGradient>
|
|
<clipPath id="burn-clip">
|
|
<rect className="burn-clip-rect" x="0" y="0" width="16" height="16" />
|
|
</clipPath>
|
|
</defs>
|
|
<path d={FLAME_PATH} fill="url(#burn-gradient)" clipPath="url(#burn-clip)" />
|
|
</svg>
|
|
</div>
|
|
)
|
|
}
|