feat(overlay): support selecting and copying subtitle sidebar text

- Select dialogue across rows and copy it without timestamps
- Keep selected excerpts visible during playback
This commit is contained in:
2026-09-08 01:08:16 -07:00
49 changed files with 1107 additions and 561 deletions
+3
View File
@@ -40,6 +40,7 @@ import { createPlaylistBrowserModal } from './modals/playlist-browser.js';
import { createSessionHelpModal } from './modals/session-help.js';
import { createChangelogModal } from './modals/changelog.js';
import { createSubtitleSidebarModal } from './modals/subtitle-sidebar.js';
import { wireSubtitleSidebarSelection } from './modals/subtitle-sidebar-selection.js';
import { isControllerInteractionBlocked } from './controller-interaction-blocking.js';
import { createCharacterDictionaryModal } from './modals/character-dictionary.js';
import { createRuntimeOptionsModal } from './modals/runtime-options.js';
@@ -250,6 +251,8 @@ const subtitleSidebarModal = createSubtitleSidebarModal(ctx, {
measurementReporter.emitNow();
},
});
const disposeSubtitleSidebarSelection = wireSubtitleSidebarSelection(ctx);
window.addEventListener('beforeunload', disposeSubtitleSidebarSelection, { once: true });
const kikuModal = createKikuModal(ctx, {
modalStateReader: { isAnyModalOpen },
syncSettingsModalSubtitleSuppression,