{#snippet skeleton({ segment })} {/snippet} {#snippet segment({ segment, onScrollCompensationMonthInDOM })} {#snippet content({ onAssetOpen, onAssetSelect, onHover })} {#snippet content({ onDayGroupSelect, onDayGroupAssetSelect })} {#snippet thumbnail({ asset, position, dayGroup, groupIndex })} {@const isAssetSelectionCandidate = assetInteraction.hasSelectionCandidate(asset.id)} {@const isAssetSelected = assetInteraction.hasSelectedAsset(asset.id) || timelineManager.albumAssets.has(asset.id)} {@const isAssetDisabled = timelineManager.albumAssets.has(asset.id)} onAssetOpen(asset)} onSelect={() => onDayGroupAssetSelect(dayGroup, asset)} onMouseEvent={() => onHover(asset)} selected={isAssetSelected} selectionCandidate={isAssetSelectionCandidate} disabled={isAssetDisabled} thumbnailWidth={position.width} thumbnailHeight={position.height} /> {/snippet} {/snippet} {/snippet} {/snippet} viewer?.scrollToAsset(asset) ?? false} {timelineManager} {assetInteraction} bind:isShowDeleteConfirmation {onEscape} /> {#if $showAssetViewer} {/if}