onSwipe?.(event))} > { visibleImageReady = true; onReady?.(); }} onError={() => { onError?.(); onReady?.(); }} bind:imgRef={assetViewerManager.imgRef} bind:ref={adaptiveImage} > {#snippet backdrop()} {#if blurredSlideshow} {/if} {/snippet} {#snippet overlays()}
{#each visibleBoxes as box (box.id)} {/each}
{#each boundingBoxes as boundingbox (boundingbox.id)} {const isActive = $derived(assetViewerManager.highlightedFaces.some((f) => f.id === boundingbox.id))}
assetViewerManager.setHighlightedFaces([boundingbox.face])} onpointerleave={() => assetViewerManager.clearHighlightedFaces()} > {#if isActive && boundingbox.name} {const labelAbove = $derived( boundingbox.top + boundingbox.height + faceLabelOffset > overlaySize.height && boundingbox.top >= faceLabelOffset, )}
{boundingbox.name}
{/if}
{/each} {#each ocrBoxes as ocrBox (ocrBox.id)} {/each} {/snippet}
{#if assetViewerManager.isFaceEditMode && assetViewerManager.imgRef} {/if}