Tabs get a sliding indicator that persists across library routes, grid rows flip and collapse on removal, the selection bar and filters crossfade, album tracks move between lists with a crossfade, processing badges pulse and the dropzone scales while dragging.
22 lines
499 B
Svelte
22 lines
499 B
Svelte
<script lang="ts">
|
|
import type { TrackStatus } from '$lib/types';
|
|
import { TRACK_STATUS } from '$lib/data/libraryTracks';
|
|
import StatusBadge from '$lib/components/ui/media/StatusBadge.svelte';
|
|
|
|
interface Props {
|
|
status: TrackStatus;
|
|
class?: string;
|
|
}
|
|
|
|
let { status, class: klass = '' }: Props = $props();
|
|
|
|
const info = $derived(TRACK_STATUS[status]);
|
|
</script>
|
|
|
|
<StatusBadge
|
|
label={info.label}
|
|
tone={info.tone}
|
|
pulse={status === 'Processing' || status === 'Pending'}
|
|
class={klass}
|
|
/>
|