{ if (adjacent.prev) { onMaybeMarkRead(); openReader(adjacent.prev, store.activeChapterList); } }} disabled={!adjacent.prev}>
{store.activeManga?.title}
/
{displayChapter?.name}
{ if (adjacent.next) { onMaybeMarkRead(); openReader(adjacent.next, store.activeChapterList); } }} disabled={!adjacent.next}>
{store.pageNumber} / {visibleChunkLastPage || "…"}
{#if fit === "width"}
{:else if fit === "height"}
{:else if fit === "screen"}
{:else}
{/if}
{fitLabel}
adjustZoom(-ZOOM_STEP)} title="Zoom out" disabled={zoom <= ZOOM_MIN}>
readerState.zoomOpen = !readerState.zoomOpen} title="Click to adjust zoom"> {zoomPct}%
adjustZoom(ZOOM_STEP)} title="Zoom in" disabled={zoom >= ZOOM_MAX}>
{#if readerState.zoomOpen}
{ onCaptureZoomAnchor(); updateSettings({ readerZoom: onClampZoom(Number(e.currentTarget.value) / 100) }); onRestoreZoomAnchor(); }} />
Reset
{/if}
updateSettings({ readingDirection: rtl ? "ltr" : "rtl" })}>
{rtl ? "RTL" : "LTR"}
{#if style === "single"}
{:else if style === "fade"}
{:else if style === "double"}
{:else}
{/if}
{style}
{#if style === "double"}
updateSettings({ offsetDoubleSpreads: !store.settings.offsetDoubleSpreads })}>
Offset
{/if} {#if style === "longstrip"}
updateSettings({ pageGap: !store.settings.pageGap })}>
Gap
updateSettings({ autoNextChapter: !autoNext })}>
Auto
{/if} {#if !autoNext}
updateSettings({ markReadOnNext: !markOnNext })}>
Mk.Read
{/if}
{#if readerState.markerOpen}
e.stopPropagation()} onmouseenter={keepUiAlive} >
{readerState.markerEditId ? "Edit marker" : "New marker"} · p.{store.pageNumber}
{#if readerState.markerEditId}
{/if}
{#each MARKER_COLORS as c}
readerState.markerColor = c} title={c} >
{c}
{/each}
{ if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); onCommitMarker(); } if (e.key === "Escape") readerState.markerOpen = false; }} >
{readerState.markerEditId ? "Update" : "Save"}
readerState.markerOpen = false}>Cancel
{/if}
{ readerState.winOpen = !readerState.winOpen; readerState.markerOpen = false; readerState.zoomOpen = false; readerState.dlOpen = false; }} title="Window controls" >
{#if readerState.winOpen}
e.stopPropagation()} in:fly={{ y: '-100%', duration: 200, easing: cubicOut }} out:fly={{ y: '-100%', duration: 150, easing: cubicIn }} >
{ readerState.winOpen = false; onSettingsOpen(); }} title="Settings">
{ readerState.winOpen = false; win.minimize(); }} title="Minimize">
{ readerState.winOpen = false; win.toggleMaximize(); }} title={isFullscreen ? "Exit Fullscreen" : "Fullscreen"}> {#if isFullscreen}
{:else}
{/if}
{ readerState.winOpen = false; win.close(); }} title="Close">
{/if}