component Marquee { outputs { // Fired when the reader pauses the scroll, by hover, focus or the button. pause(payload: { sourceEvent?: Event; [key: string]: string | number | boolean | null | object }) resume(payload: { sourceEvent?: Event; [key: string]: string | number | boolean | null | object }) } props { size: string = "default" color: string = "primary" title: string = "Marquee" description: string = "" items: unknown[] = [] variant: string = "default" class: string = "" } state paused: boolean = false view {
{#if title}
{title}
{/if}
{#each items as item} {item.label || item.title} {#if item.meta} {item.meta} {/if} {:empty}

{description || "No announcements available."}

{/each} {#if items.length > 0} {#each items as item} {/each} {/if}
} style { .wire-marquee-track { animation: wire-marquee 32s linear infinite; } .wire-marquee-paused { animation-play-state: paused; } @keyframes wire-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } } @media (prefers-reduced-motion: reduce) { .wire-marquee-track { animation: none; } } } }