1} class:root-row={item.parents.length === 0} class:tip-row={item.refs.length > 0} > {#if row} {#each row.top as seg} {/each} {#each row.bottom as seg} {/each} 1} class:tip={item.refs.length > 0} class:hidden-branch={!rowGraphIsVisible(row)} class:ahead={rowSyncClass === "ahead"} class:behind={rowSyncClass === "behind"} title={commitHoverTitle(item, row)} style={`left:${graphColX(row.dotCol)}px; --dot-color:${row.dotColor}`} > {#if hoverBranchRefs.length > 0} {#each hoverBranchRefs as branch} {branch} {/each} {/if} {/if} {authorInitials(item.author_name)} {item.summary} {#if item.parents.length > 1} {/if} {commitKindLabel(item)} {item.short_hash} {item.author_name} {#if otherRefs.length > 0} {#each otherRefs as ref} {refLabel(ref)} {/each} {/if} {#if item.files.length > 0} onToggleCommitFiles(item.hash)} aria-expanded={expandedCommitHashes.has(item.hash)} > {#if expandedCommitHashes.has(item.hash)} {:else} {/if} {item.files.length} {item.files.length === 1 ? "file" : "files"} changed {#if expandedCommitHashes.has(item.hash)} {#each item.files as file (`${item.hash}:${file.old_path ?? ""}:${file.path}`)} onPreviewCommitFile(item, file)} disabled={isBusy} title={`Show differences before restoring - ${displayCommitFile(file)}`} > {statusLabel(file.status)} {commitFileName(file)} {/each} {/if} {/if} {formatCommitDate(item.date)} openCommitActionMenu(event, item)} disabled={isBusy} title="Commit actions" aria-label={`Actions for ${item.short_hash}`} aria-haspopup="menu" aria-expanded={contextCommit?.hash === item.hash} >