{#each visibleWeeks as _week, ci} {@const lbl = monthLabels.find(l => l.colIndex === ci)}
{lbl?.label ?? ""}
{/each}
{#each DAY_LABELS as d}
{d}
{/each}
{#each visibleWeeks as week}
{#each week as cell}
showTip(e, cell)} onmouseleave={hideTip} aria-label="{cell.count} chapters on {cell.dateStr}" >
{/each}
{/each}
Less
{#each [0, 1, 2, 3, 4] as lvl}
{/each}
More
{#if tip}
{tip.text}
{/if}