{mix.title} {#snippet cover()} item.trackId)} size="hero" alt={mix.title} class="shrink-0" /> {/snippet} {#snippet actions()} {/snippet} {#if form?.message} {form.message} {/if} {#each items as item, i (mixItemKey(item))} {@const active = isTargetCurrent(targets[i])} (contextMenu = contextMenuStateFor(e, targets[i]))}> playFrom(i)} /> playFrom(i)} /> {fmtTime(Number(item.durationSeconds))} {/each} {#if contextMenu} (contextMenu = null)} onAddToQueue={() => { const menu = contextMenu; if (menu) { const index = targets.findIndex((target) => targetId(target) === targetId(menu)); if (index >= 0) player.addToQueue(queue[index]); } contextMenu = null; }} /> {/if}