(isHovered = true)}
onmouseleave={() => (isHovered = false)}
onclick={selectable ? onToggleSelect : (isBlacklisted ? undefined : onPlay)}
oncontextmenu={(e) => {
if (isBlacklisted || selectable) return;
e.preventDefault();
contextMenuPos = { x: e.clientX, y: e.clientY };
}}
role="button"
tabindex={isBlacklisted ? -1 : 0}
onkeydown={(e) => e.key === 'Enter' && !isBlacklisted && (selectable ? onToggleSelect?.(e as unknown as MouseEvent) : onPlay?.())}
>
{#if selectable}
e.stopPropagation()}>
void}
aria-label="Select track"
/>
{/if}
{#if isBlacklisted}
{:else if isUnavailable}
{:else if isActiveTrack || isPlaying}
{#if isHovered}
{#if isPlaying}
{:else}
{/if}
{:else}
{/if}
{:else if isHovered}
{:else}
{number}
{/if}
{#if showArtwork}
{#if artworkUrl}

{/if}
{/if}
{title}
{#if explicit}
{/if}
{#if artist && !compact}
{#if artistClickAction}
{:else}
{artist}
{/if}
{/if}
{#if artist && compact}
{#if artistClickAction}
{:else}
{artist}
{/if}
{/if}
{#if album}
{#if albumClickAction}
{:else}
{album}
{/if}
{/if}
{duration}
{quality ?? ''}
{#if isLocal || hideFavorite}
{:else}
{/if}
{#if isLocal}
{#if localSource === 'plex'}
{:else}
{/if}
{:else if hideDownload}
{:else}
{/if}
toggleTrackFavorite(trackId) : undefined}
onAddToPlaylist={menuActions?.onAddToPlaylist}
onRemoveFromPlaylist={menuActions?.onRemoveFromPlaylist}
onFindReplacement={menuActions?.onFindReplacement}
onShareQobuz={menuActions?.onShareQobuz}
onShareSonglink={menuActions?.onShareSonglink}
onGoToAlbum={menuActions?.onGoToAlbum}
onGoToArtist={menuActions?.onGoToArtist}
onShowInfo={menuActions?.onShowInfo}
onDownload={menuActions?.onDownload}
isTrackDownloaded={menuActions?.isTrackDownloaded}
onReDownload={menuActions?.onReDownload}
onRemoveDownload={menuActions?.onRemoveDownload ?? onRemoveDownload}
contextMenuPosition={contextMenuPos}
onContextMenuClosed={() => { contextMenuPos = null; }}
/>