diff --git a/frontend/src/app/DocumentsRoute.tsx b/frontend/src/app/DocumentsRoute.tsx index 2f2addc..da77b65 100644 --- a/frontend/src/app/DocumentsRoute.tsx +++ b/frontend/src/app/DocumentsRoute.tsx @@ -4,7 +4,7 @@ import { useNavigate } from 'react-router-dom'; import { DocumentsFilterProvider, } from '../documents/context/DocumentsFilterContext'; -import { PreviewProvider, usePreviewContext } from '../preview/PreviewContext'; +import { PreviewProvider, usePreviewContext } from '../viewer/PreviewContext'; import { DocumentOpenProvider } from '../lib/context/DocumentOpenContext'; import { useWorkspaceSurface } from './useWorkspaceSurface'; import { DocumentsHeaderBreadcrumb } from '../documents/panel/DocumentsPanelHeader'; diff --git a/frontend/src/app/useWorkspaceSurface.tsx b/frontend/src/app/useWorkspaceSurface.tsx index e9d8eec..b26a0b7 100644 --- a/frontend/src/app/useWorkspaceSurface.tsx +++ b/frontend/src/app/useWorkspaceSurface.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo } from 'react'; import type { ComponentProps, ReactNode } from 'react'; import { SidebarExpandIcon } from '../components/icons'; import DocumentsPanel from '../documents/panel/DocumentsPanel'; -import DocumentViewerPanel from '../preview/DocumentViewerPanel'; +import DocumentViewerPanel from '../viewer/DocumentViewerPanel'; import { usePanelManager } from './PanelManagerContext'; import { FolderManagerProvider } from '../folders/FolderManagerContext'; import type { Identifier } from '../types/identifiers'; diff --git a/frontend/src/documents/data/useDocumentsWorkspace.ts b/frontend/src/documents/data/useDocumentsWorkspace.ts index a5558ff..3e38f2a 100644 --- a/frontend/src/documents/data/useDocumentsWorkspace.ts +++ b/frontend/src/documents/data/useDocumentsWorkspace.ts @@ -47,7 +47,7 @@ import useDocumentTagActions from '../features/tagging/useDocumentTagActions'; import useDocumentUploads from '../features/upload/useDocumentUploads'; import useDocumentDragHandlers from '../features/upload/useDocumentDragHandlers'; import useDocumentMutations from './useDocumentMutations'; -import useDetailWorkspace from '../../detail/useDetailWorkspace'; +import useDetailWorkspace from '../../viewer/logic/useDetailWorkspace'; import useWorkspaceTaxonomies from './useWorkspaceTaxonomies'; import useWorkspaceBreadcrumbs from '../logic/useWorkspaceBreadcrumbs'; import useWorkspaceSelectionSync from '../features/selection/useWorkspaceSelectionSync'; diff --git a/frontend/src/styles/index.css b/frontend/src/styles/index.css index 2424525..a955bd6 100644 --- a/frontend/src/styles/index.css +++ b/frontend/src/styles/index.css @@ -2,17 +2,17 @@ @import './base/controls.css'; @import './layout/panel-header-controls.css'; @import './components/resize-handle.css'; -@import './preview/preview-zoom.css'; +@import './viewer/preview-zoom.css'; @import './base/iconography.css'; @import '../documents/styles/controls.css'; @import './layout/structure.css'; -@import '../documents/styles/viewer.css'; +@import '../viewer/styles/viewer.css'; @import '../documents/styles/drag-preview.css'; @import '../documents/styles/tags-correspondents.css'; @import '../documents/styles/panel-sections.css'; @import '../sidebar/sidebar.css'; @import '../documents/styles/listing.css'; -@import '../detail/detail-panels.css'; +@import '../viewer/styles/detail-panels.css'; @import './forms/elements.css'; @import './modals/status-drop.css'; @import '../settings/settings.css'; diff --git a/frontend/src/preview/DocumentViewerLayout.tsx b/frontend/src/viewer/DocumentViewerLayout.tsx similarity index 98% rename from frontend/src/preview/DocumentViewerLayout.tsx rename to frontend/src/viewer/DocumentViewerLayout.tsx index a34ad3d..458a63f 100644 --- a/frontend/src/preview/DocumentViewerLayout.tsx +++ b/frontend/src/viewer/DocumentViewerLayout.tsx @@ -1,6 +1,6 @@ import { useCallback, useMemo, useRef } from 'react'; import type { JSX } from 'react'; -import DocumentInfoPanel from '../documents/DocumentInfoPanel'; +import DocumentInfoPanel from './components/DocumentInfoPanel'; import UnifiedDocumentViewer from './UnifiedDocumentViewer'; import type { Document } from '../types/documents'; diff --git a/frontend/src/preview/DocumentViewerPanel.tsx b/frontend/src/viewer/DocumentViewerPanel.tsx similarity index 98% rename from frontend/src/preview/DocumentViewerPanel.tsx rename to frontend/src/viewer/DocumentViewerPanel.tsx index ff68011..2ac846a 100644 --- a/frontend/src/preview/DocumentViewerPanel.tsx +++ b/frontend/src/viewer/DocumentViewerPanel.tsx @@ -14,10 +14,10 @@ import { import { buildCorrespondentOptions, sortCorrespondents, -} from '../documents/DocumentSummarySection'; -import { usePreviewContext } from '../preview/PreviewContext'; -import type { DocumentSummarySectionProps } from '../documents/DocumentSummarySection'; -import { extractDocumentMetadataPayload } from '../documents/documentSummary'; +} from './components/DocumentSummarySection'; +import { usePreviewContext } from './PreviewContext'; +import type { DocumentSummarySectionProps } from './components/DocumentSummarySection'; +import { extractDocumentMetadataPayload } from './logic/documentSummary'; import { createDocumentActionState } from '../documents/documentActions'; import { resolveDocumentAssetUrl } from '../lib/assets/AssetManager'; import PanelHeader from '../components/PanelHeader'; diff --git a/frontend/src/preview/MediaViewer.tsx b/frontend/src/viewer/MediaViewer.tsx similarity index 100% rename from frontend/src/preview/MediaViewer.tsx rename to frontend/src/viewer/MediaViewer.tsx diff --git a/frontend/src/preview/PdfViewer.tsx b/frontend/src/viewer/PdfViewer.tsx similarity index 100% rename from frontend/src/preview/PdfViewer.tsx rename to frontend/src/viewer/PdfViewer.tsx diff --git a/frontend/src/preview/PreviewContext.tsx b/frontend/src/viewer/PreviewContext.tsx similarity index 96% rename from frontend/src/preview/PreviewContext.tsx rename to frontend/src/viewer/PreviewContext.tsx index eedd0f2..9eee7fe 100644 --- a/frontend/src/preview/PreviewContext.tsx +++ b/frontend/src/viewer/PreviewContext.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useMemo, useRef } from 'react'; -import PreviewZoomOverlay from '../detail/PreviewZoomOverlay'; +import PreviewZoomOverlay from './components/PreviewZoomOverlay'; import type { Document } from '../types/documents'; import type { Identifier } from '../types/identifiers'; import { createSafeContext } from '../utils/createSafeContext'; diff --git a/frontend/src/preview/UnifiedDocumentViewer.tsx b/frontend/src/viewer/UnifiedDocumentViewer.tsx similarity index 100% rename from frontend/src/preview/UnifiedDocumentViewer.tsx rename to frontend/src/viewer/UnifiedDocumentViewer.tsx diff --git a/frontend/src/documents/DocumentInfoPanel.tsx b/frontend/src/viewer/components/DocumentInfoPanel.tsx similarity index 99% rename from frontend/src/documents/DocumentInfoPanel.tsx rename to frontend/src/viewer/components/DocumentInfoPanel.tsx index 7f36af6..dd9a633 100644 --- a/frontend/src/documents/DocumentInfoPanel.tsx +++ b/frontend/src/viewer/components/DocumentInfoPanel.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import type { ReactNode } from 'react'; import DocumentSummarySection, { DocumentSummarySectionProps } from './DocumentSummarySection'; -import { describeDocumentSummary, extractDocumentMetadataPayload, type DocumentSummaryRow } from './documentSummary'; +import { describeDocumentSummary, extractDocumentMetadataPayload, type DocumentSummaryRow } from '../logic/documentSummary'; type PanelTab = { id: string; label: string; render: (context?: Record) => ReactNode }; diff --git a/frontend/src/documents/DocumentSummarySection.tsx b/frontend/src/viewer/components/DocumentSummarySection.tsx similarity index 97% rename from frontend/src/documents/DocumentSummarySection.tsx rename to frontend/src/viewer/components/DocumentSummarySection.tsx index 6e25d6d..09bc89d 100644 --- a/frontend/src/documents/DocumentSummarySection.tsx +++ b/frontend/src/viewer/components/DocumentSummarySection.tsx @@ -1,21 +1,21 @@ import React, { useCallback, useEffect, useMemo, useState, type FormEvent } from 'react'; import { Link } from 'react-router-dom'; -import { EditIcon, IconX, PlusIcon } from '../components/icons'; -import InlineRenameInput from './components/InlineRenameInput'; +import { EditIcon, IconX, PlusIcon } from '../../components/icons'; +import InlineRenameInput from '../../documents/components/InlineRenameInput'; import SelectionAssignmentMenu, { SelectionAssignmentMenuItem, type NormalizedSelectionAssignmentItem, -} from './features/selection/SelectionAssignmentMenu'; -import { getTagColorStyle } from '../utils/colors'; +} from '../../documents/features/selection/SelectionAssignmentMenu'; +import { getTagColorStyle } from '../../utils/colors'; import { formatDate, toDateInputValue, toIssuedTimestamp, -} from '../utils/date'; -import { describeDocumentSummary, type DocumentSummaryRow } from './documentSummary'; +} from '../../utils/date'; +import { describeDocumentSummary, type DocumentSummaryRow } from '../logic/documentSummary'; -import { useFolderManager } from '../folders/FolderManagerContext'; -import type { FolderId, Identifier, TagId } from '../types/identifiers'; +import { useFolderManager } from '../../folders/FolderManagerContext'; +import type { FolderId, Identifier, TagId } from '../../types/identifiers'; interface TagEntry { id?: TagId; @@ -29,7 +29,7 @@ interface CorrespondentEntry { count?: number; } -import type { Document } from '../types/documents'; +import type { Document } from '../../types/documents'; interface TagSectionProps { tags?: TagEntry[]; diff --git a/frontend/src/detail/PreviewZoomOverlay.tsx b/frontend/src/viewer/components/PreviewZoomOverlay.tsx similarity index 94% rename from frontend/src/detail/PreviewZoomOverlay.tsx rename to frontend/src/viewer/components/PreviewZoomOverlay.tsx index 2934b98..9f29876 100644 --- a/frontend/src/detail/PreviewZoomOverlay.tsx +++ b/frontend/src/viewer/components/PreviewZoomOverlay.tsx @@ -1,10 +1,10 @@ import React, { useEffect, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; -import UnifiedDocumentViewer from '../preview/UnifiedDocumentViewer'; -import PanelHeader from '../components/PanelHeader'; -import { IconX, DownloadIcon, FileInfoIcon } from '../components/icons'; +import UnifiedDocumentViewer from '../UnifiedDocumentViewer'; +import PanelHeader from '../../components/PanelHeader'; +import { IconX, DownloadIcon, FileInfoIcon } from '../../components/icons'; -import type { Document } from '../types/documents'; +import type { Document } from '../../types/documents'; interface PreviewZoomOverlayProps { open?: boolean; diff --git a/frontend/src/documents/documentSummary.ts b/frontend/src/viewer/logic/documentSummary.ts similarity index 94% rename from frontend/src/documents/documentSummary.ts rename to frontend/src/viewer/logic/documentSummary.ts index 5393288..4c0cd27 100644 --- a/frontend/src/documents/documentSummary.ts +++ b/frontend/src/viewer/logic/documentSummary.ts @@ -1,8 +1,8 @@ -import { formatFileSize } from '../utils/format'; -import { formatDateTime as defaultFormatDateTime } from '../utils/date'; -import { DEFAULT_FOLDER_NAME } from '../app/workspaceUtils'; +import { formatFileSize } from '../../utils/format'; +import { formatDateTime as defaultFormatDateTime } from '../../utils/date'; +import { DEFAULT_FOLDER_NAME } from '../../app/workspaceUtils'; -import type { DocumentTag, DocumentCorrespondent, Document } from '../types/documents'; +import type { DocumentTag, DocumentCorrespondent, Document } from '../../types/documents'; interface DescribeSummaryOptions { formatDateTime?: typeof defaultFormatDateTime; diff --git a/frontend/src/detail/useDetailWorkspace.ts b/frontend/src/viewer/logic/useDetailWorkspace.ts similarity index 94% rename from frontend/src/detail/useDetailWorkspace.ts rename to frontend/src/viewer/logic/useDetailWorkspace.ts index 9786101..a3d828a 100644 --- a/frontend/src/detail/useDetailWorkspace.ts +++ b/frontend/src/viewer/logic/useDetailWorkspace.ts @@ -1,12 +1,12 @@ import { useCallback, useEffect, useMemo } from 'react'; import type { MutableRefObject } from 'react'; -import { resolveDocumentAssetUrl } from '../lib/assets/AssetManager'; -import { useDetailPanel } from '../app/useDetailPanel'; -import { DEFAULT_FOLDER_NAME } from '../app/workspaceUtils'; -import type { DocumentInfoPanelProps } from '../documents/DocumentInfoPanel'; -import type { EnsureAssetUrl, GetDocumentAsset } from '../utils/ocr'; -import type { Identifier } from '../types/identifiers'; -import type { Document } from '../types/documents'; +import { resolveDocumentAssetUrl } from '../../lib/assets/AssetManager'; +import { useDetailPanel } from '../../app/useDetailPanel'; +import { DEFAULT_FOLDER_NAME } from '../../app/workspaceUtils'; +import type { DocumentInfoPanelProps } from '../components/DocumentInfoPanel'; +import type { EnsureAssetUrl, GetDocumentAsset } from '../../utils/ocr'; +import type { Identifier } from '../../types/identifiers'; +import type { Document } from '../../types/documents'; interface FolderNode { id: Identifier | 'root'; diff --git a/frontend/src/detail/detail-panels.css b/frontend/src/viewer/styles/detail-panels.css similarity index 100% rename from frontend/src/detail/detail-panels.css rename to frontend/src/viewer/styles/detail-panels.css diff --git a/frontend/src/documents/styles/viewer.css b/frontend/src/viewer/styles/viewer.css similarity index 100% rename from frontend/src/documents/styles/viewer.css rename to frontend/src/viewer/styles/viewer.css diff --git a/frontend/src/preview/useViewerLayoutMode.ts b/frontend/src/viewer/useViewerLayoutMode.ts similarity index 100% rename from frontend/src/preview/useViewerLayoutMode.ts rename to frontend/src/viewer/useViewerLayoutMode.ts