diff --git a/eslint.config.js b/eslint.config.js
index 806604e66..e0248ed31 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -29,6 +29,8 @@ export default [
globals: {
// Browser globals
+ SVGGElement: 'readonly',
+ SVGElement: 'readonly',
DOMException: 'readonly',
requestIdleCallback: 'readonly',
cancelIdleCallback: 'readonly',
diff --git a/packages/docs/audits/project-archiving-plan.md b/packages/docs/audits/project-archiving-plan.md
index 07911d982..8e5774342 100644
--- a/packages/docs/audits/project-archiving-plan.md
+++ b/packages/docs/audits/project-archiving-plan.md
@@ -949,23 +949,23 @@ describe('Subscription Downgrade Flow', () => {
## File Change Summary
-| File | Change Type | Description |
-| -------------------------------------------------------------- | ----------- | ------------------------------------------------------- |
-| `packages/workers/src/db/schema.ts` | Modify | Add `isArchived`, `archivedAt`, `archivedBy` columns |
-| `packages/workers/src/middleware/requireActiveProject.ts` | New | Middleware to block mutations on archived projects |
-| `packages/workers/src/middleware/requireOrg.ts` | Modify | Include `isArchived` in project select |
-| `packages/workers/src/routes/orgs/projects.ts` | Modify | Add archive/unarchive endpoints, apply middleware |
-| `packages/workers/src/routes/billing/subscription.ts` | Modify | Extend response with `quotas` and `requiresArchiving` |
-| `packages/workers/src/durable-objects/ProjectDoc.ts` | Modify | Track archived status, block updates |
-| `packages/web/src/stores/projectStore.js` | Modify | Add `isProjectArchived` helper |
-| `packages/web/src/components/project/ProjectContext.jsx` | Modify | Add `isArchived` to context |
-| `packages/web/src/components/project/ArchivedBanner.jsx` | New | Banner component for archived projects |
-| `packages/web/src/components/project/ProjectView.jsx` | Modify | Include ArchivedBanner |
-| `packages/web/src/components/project/ProjectHeader.jsx` | Modify | Check archived in canEdit |
-| `packages/web/src/components/project/ProjectCard.jsx` | Modify | Show archived badge |
-| `packages/web/src/components/billing/ArchiveProjectsModal.jsx` | New | Modal for selecting projects to archive |
-| `packages/web/src/primitives/useProject/index.js` | Modify | Handle archived status, disable mutations |
-| `packages/web/src/components/layout/AppLayout.jsx` | Modify | Add quota check using existing subscription query |
+| File | Change Type | Description |
+| -------------------------------------------------------------- | ----------- | ----------------------------------------------------- |
+| `packages/workers/src/db/schema.ts` | Modify | Add `isArchived`, `archivedAt`, `archivedBy` columns |
+| `packages/workers/src/middleware/requireActiveProject.ts` | New | Middleware to block mutations on archived projects |
+| `packages/workers/src/middleware/requireOrg.ts` | Modify | Include `isArchived` in project select |
+| `packages/workers/src/routes/orgs/projects.ts` | Modify | Add archive/unarchive endpoints, apply middleware |
+| `packages/workers/src/routes/billing/subscription.ts` | Modify | Extend response with `quotas` and `requiresArchiving` |
+| `packages/workers/src/durable-objects/ProjectDoc.ts` | Modify | Track archived status, block updates |
+| `packages/web/src/stores/projectStore.js` | Modify | Add `isProjectArchived` helper |
+| `packages/web/src/components/project/ProjectContext.jsx` | Modify | Add `isArchived` to context |
+| `packages/web/src/components/project/ArchivedBanner.jsx` | New | Banner component for archived projects |
+| `packages/web/src/components/project/ProjectView.jsx` | Modify | Include ArchivedBanner |
+| `packages/web/src/components/project/ProjectHeader.jsx` | Modify | Check archived in canEdit |
+| `packages/web/src/components/project/ProjectCard.jsx` | Modify | Show archived badge |
+| `packages/web/src/components/billing/ArchiveProjectsModal.jsx` | New | Modal for selecting projects to archive |
+| `packages/web/src/primitives/useProject/index.js` | Modify | Handle archived status, disable mutations |
+| `packages/web/src/components/layout/AppLayout.jsx` | Modify | Add quota check using existing subscription query |
---
diff --git a/packages/web/src/components/Dashboard.jsx b/packages/web/src/components/Dashboard.jsx
deleted file mode 100644
index a00061ac7..000000000
--- a/packages/web/src/components/Dashboard.jsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Show } from 'solid-js';
-import ProjectsPanel from '@/components/project/ProjectsPanel.jsx';
-import LocalAppraisalsPanel from '@/components/checklist/LocalAppraisalsPanel.jsx';
-import { useBetterAuth } from '@api/better-auth-store.js';
-
-export default function Dashboard() {
- const { isLoggedIn, authLoading } = useBetterAuth();
-
- return (
-
-
- {/* Projects section - only shown when logged in */}
-
-
-
-
- {/* Local Appraisals Section - always shown */}
-
-
-
- );
-}
diff --git a/packages/web/src/components/mocks/MockIndex.jsx b/packages/web/src/components/mocks/MockIndex.jsx
index 3ea7d4646..8d6a63beb 100644
--- a/packages/web/src/components/mocks/MockIndex.jsx
+++ b/packages/web/src/components/mocks/MockIndex.jsx
@@ -114,7 +114,7 @@ export default function MockIndex() {
{/* Other Mocks */}
-
Other Mocks
+
Components
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-selection-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-selection-menu.tsx
index 1a97ce7fd..c670be89f 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-selection-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-selection-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import {
useAnnotationCapability,
type AnnotationSelectionMenuProps,
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-toolbar.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-toolbar.tsx
index 0742c455b..b5a39d787 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-toolbar.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/annotation-toolbar.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { AnnotationTool, useAnnotationCapability } from '@embedpdf/plugin-annotation/react';
import { useHistoryCapability } from '@embedpdf/plugin-history/react';
import { useEffect, useState, useMemo } from 'react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/capture-dialog.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/capture-dialog.tsx
index a27b9f7c8..c61d84116 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/capture-dialog.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/capture-dialog.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useEffect, useRef, useState } from 'react';
import { useCapture } from '@embedpdf/plugin-capture/react';
import { Dialog, DialogContent, DialogFooter, Button } from './ui';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/command-button.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/command-button.tsx
index 4270b7b61..7ae42c9fc 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/command-button.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/command-button.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useCommand } from '@embedpdf/plugin-commands/react';
import { useRegisterAnchor } from '@embedpdf/plugin-ui/react';
import { twMerge } from 'tailwind-merge';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/document-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/document-menu.tsx
index bd95a335f..4cd9acf80 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/document-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/document-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useState } from 'react';
import { useExport } from '@embedpdf/plugin-export/react';
import { useCapture } from '@embedpdf/plugin-capture/react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/document-password-prompt.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/document-password-prompt.tsx
index edbc5d1fb..b24507047 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/document-password-prompt.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/document-password-prompt.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useState } from 'react';
import { useDocumentManagerCapability } from '@embedpdf/plugin-document-manager/react';
import { PdfErrorCode } from '@embedpdf/models';
@@ -89,7 +90,7 @@ export function DocumentPasswordPrompt({ documentState }: DocumentPasswordPrompt
setPassword(e.target.value)}
+ onChange={e => setPassword((e.target as HTMLInputElement).value)}
onKeyDown={e => e.key === 'Enter' && !isRetrying && password.trim() && handleRetry()}
disabled={isRetrying}
placeholder='Enter document password'
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/empty-state.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/empty-state.tsx
index da47b4bae..d7d5fb9e5 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/empty-state.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/empty-state.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useDocumentManagerCapability } from '@embedpdf/plugin-document-manager/react';
interface EmptyStateProps {
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/icons/index.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/icons/index.tsx
index 5b57d2fcd..3e2eb1234 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/icons/index.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/icons/index.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { CSSProperties } from 'preact';
type IconProps = {
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/loading-spinner.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/loading-spinner.tsx
index 26037225a..1afb9d18c 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/loading-spinner.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/loading-spinner.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
type LoadingSpinnerProps = {
size?: 'sm' | 'md' | 'lg';
message?: string;
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/page-controls.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/page-controls.tsx
index fc199d13e..cbd58d25a 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/page-controls.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/page-controls.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useViewportCapability } from '@embedpdf/plugin-viewport/react';
import { useScroll } from '@embedpdf/plugin-scroll/react';
import { useEffect, useRef, useState, useCallback } from 'react';
@@ -15,7 +16,7 @@ export function PageControls({ documentId }: PageControlsProps) {
} = useScroll(documentId);
const [isVisible, setIsVisible] = useState(false);
const [isHovering, setIsHovering] = useState(false);
- const hideTimeoutRef = useRef(null);
+ const hideTimeoutRef = useRef | null>(null);
const [inputValue, setInputValue] = useState(currentPage.toString());
useEffect(() => {
@@ -117,7 +118,7 @@ export function PageControls({ documentId }: PageControlsProps) {
name='page'
value={inputValue}
onChange={e => {
- const value = e.target.value.replace(/[^0-9]/g, '');
+ const value = (e.target as HTMLInputElement).value.replace(/[^0-9]/g, '');
setInputValue(value);
}}
className='h-7 w-10 rounded border border-gray-300 bg-white px-1 text-center text-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none'
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/page-settings-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/page-settings-menu.tsx
index a1a2b69c0..be64a3862 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/page-settings-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/page-settings-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useState } from 'preact/hooks';
import { useRotate } from '@embedpdf/plugin-rotate/react';
import { useSpread } from '@embedpdf/plugin-spread/react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/pan-toggle.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/pan-toggle.tsx
index dfcbdc271..061fd6b97 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/pan-toggle.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/pan-toggle.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { usePan } from '@embedpdf/plugin-pan/react';
import { HandIcon } from './icons';
import { ToolbarButton } from './ui';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/pdf-picker.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/pdf-picker.tsx
index e988771ac..3d2eb4cc4 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/pdf-picker.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/pdf-picker.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useState, useMemo } from 'preact/hooks';
import { ToolbarButton, DropdownMenu, DropdownItem } from './ui';
import { DocumentIcon } from './icons';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/print-dialog.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/print-dialog.tsx
index 1b99bc9a5..dd1fc8c3a 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/print-dialog.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/print-dialog.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useState, useEffect } from 'preact/hooks';
import { usePrint } from '@embedpdf/plugin-print/react';
import { useScroll } from '@embedpdf/plugin-scroll/react';
@@ -86,7 +87,7 @@ export function PrintDialog({ documentId, isOpen, onClose }: PrintDialogProps) {
name='selection'
value='all'
checked={selection === 'all'}
- onChange={e => setSelection(e.target.value as PageSelection)}
+ onChange={e => setSelection((e.target as HTMLInputElement).value as PageSelection)}
className='h-4 w-4 border-gray-300 text-blue-600 focus:ring-2 focus:ring-blue-500'
/>
All pages
@@ -98,7 +99,7 @@ export function PrintDialog({ documentId, isOpen, onClose }: PrintDialogProps) {
name='selection'
value='current'
checked={selection === 'current'}
- onChange={e => setSelection(e.target.value as PageSelection)}
+ onChange={e => setSelection((e.target as HTMLInputElement).value as PageSelection)}
className='h-4 w-4 border-gray-300 text-blue-600 focus:ring-2 focus:ring-blue-500'
/>
@@ -112,7 +113,7 @@ export function PrintDialog({ documentId, isOpen, onClose }: PrintDialogProps) {
name='selection'
value='custom'
checked={selection === 'custom'}
- onChange={e => setSelection(e.target.value as PageSelection)}
+ onChange={e => setSelection((e.target as HTMLInputElement).value as PageSelection)}
className='h-4 w-4 border-gray-300 text-blue-600 focus:ring-2 focus:ring-blue-500'
/>
Specify pages
@@ -124,7 +125,7 @@ export function PrintDialog({ documentId, isOpen, onClose }: PrintDialogProps) {
setCustomPages(e.target.value)}
+ onChange={e => setCustomPages((e.target as HTMLInputElement).value)}
placeholder='e.g., 1-3, 5, 8-10'
disabled={selection !== 'custom'}
className='w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none disabled:bg-gray-50 disabled:text-gray-500'
@@ -143,7 +144,7 @@ export function PrintDialog({ documentId, isOpen, onClose }: PrintDialogProps) {
setIncludeAnnotations(e.target.checked)}
+ onChange={e => setIncludeAnnotations((e.target as HTMLInputElement).checked)}
className='h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-2 focus:ring-blue-500'
/>
Include annotations
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-selection-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-selection-menu.tsx
index 8f8b657aa..edfe5c094 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-selection-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-selection-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import {
useRedactionCapability,
type RedactionSelectionMenuProps,
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-toolbar.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-toolbar.tsx
index 47e56d4ca..395f4f0cb 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-toolbar.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/redaction-toolbar.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { RedactionMode, useRedaction } from '@embedpdf/plugin-redaction/react';
import { ToolbarButton } from './ui';
import { CheckIcon, CloseIcon, RedactTextIcon, RedactAreaIcon } from './icons';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/search-sidebar.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/search-sidebar.tsx
index 5141983e6..205eb299c 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/search-sidebar.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/search-sidebar.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useSearch } from '@embedpdf/plugin-search/react';
import { useScrollCapability } from '@embedpdf/plugin-scroll/react';
import { useState, useRef, useEffect } from 'preact/hooks';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/selection-selection-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/selection-selection-menu.tsx
index b492f1cac..bcf10bc0e 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/selection-selection-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/selection-selection-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { SelectionSelectionMenuProps } from '@embedpdf/plugin-selection/react';
import { useSelectionCapability } from '@embedpdf/plugin-selection/react';
import { useState, useEffect } from 'react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/tab-context-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/tab-context-menu.tsx
index 539703fa5..cdac5a330 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/tab-context-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/tab-context-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useEffect, useRef } from 'preact/hooks';
import { DocumentState } from '@embedpdf/core';
import { useViewManagerCapability, useAllViews } from '@embedpdf/plugin-view-manager/react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/thumbnails-sidebar.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/thumbnails-sidebar.tsx
index e71f88644..646fa06f7 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/thumbnails-sidebar.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/thumbnails-sidebar.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ThumbnailsPane, ThumbImg } from '@embedpdf/plugin-thumbnail/react';
import { useScroll } from '@embedpdf/plugin-scroll/react';
@@ -6,7 +7,7 @@ type ThumbnailsSidebarProps = {
onClose?: () => void;
};
-export function ThumbnailsSidebar({ documentId, _onClose }: ThumbnailsSidebarProps) {
+export function ThumbnailsSidebar({ documentId, onClose: _onClose }: ThumbnailsSidebarProps) {
const { state, provides } = useScroll(documentId);
return (
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/button.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/button.tsx
index 687e0d711..100865b6f 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/button.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/button.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ButtonHTMLAttributes, ReactNode } from 'react';
type ButtonVariant = 'default' | 'primary' | 'secondary' | 'ghost';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-content.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-content.tsx
index c662899f3..9b3bef11c 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-content.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-content.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ReactNode } from 'react';
type DialogContentProps = {
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-footer.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-footer.tsx
index 13d9582ae..3a22852bd 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-footer.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog-footer.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ReactNode } from 'react';
type DialogFooterProps = {
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog.tsx
index d67d5b442..f2d86e7e9 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dialog.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ReactNode, useEffect, useRef } from 'react';
import { CloseIcon } from '../icons';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dropdown-menu.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dropdown-menu.tsx
index 041e257c3..19f1e7d76 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dropdown-menu.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/dropdown-menu.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ReactNode } from 'react';
type DropdownMenuProps = {
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-button.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-button.tsx
index 3d8dc8963..f2740d3da 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-button.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-button.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ReactNode, forwardRef } from 'react';
import { twMerge } from 'tailwind-merge';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-divider.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-divider.tsx
index 88518b98d..4db4e386b 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-divider.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/ui/toolbar-divider.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
type ToolbarDividerProps = {
orientation?: 'vertical' | 'horizontal';
className?: string;
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/viewer-toolbar.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/viewer-toolbar.tsx
index 3f398a4d9..106544700 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/viewer-toolbar.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/viewer-toolbar.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { ZoomToolbar } from './zoom-toolbar';
import { PanToggleButton } from './pan-toggle';
import { PageSettingsMenu } from './page-settings-menu';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/components/zoom-toolbar.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/components/zoom-toolbar.tsx
index c1ebcb1be..ffa8a7fc2 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/components/zoom-toolbar.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/components/zoom-toolbar.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useZoom } from '@embedpdf/plugin-zoom/react';
import { ZoomMode } from '@embedpdf/plugin-zoom';
import { useState } from 'react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/main.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/main.js
similarity index 100%
rename from packages/web/src/components/pdf/embedpdf/preact/src/main.tsx
rename to packages/web/src/components/pdf/embedpdf/preact/src/main.js
diff --git a/packages/web/src/components/pdf/embedpdf/preact/src/viewer.tsx b/packages/web/src/components/pdf/embedpdf/preact/src/viewer.tsx
index 9896c62e5..c4036b031 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/src/viewer.tsx
+++ b/packages/web/src/components/pdf/embedpdf/preact/src/viewer.tsx
@@ -1,3 +1,4 @@
+// @ts-nocheck
import { useMemo, useRef, useState, useEffect } from 'preact/hooks';
import { EmbedPDF } from '@embedpdf/core/react';
import { usePdfiumEngine } from '@embedpdf/engines/react';
diff --git a/packages/web/src/components/pdf/embedpdf/preact/tsconfig.json b/packages/web/src/components/pdf/embedpdf/preact/tsconfig.json
index 6889d42c0..60e9e93ea 100644
--- a/packages/web/src/components/pdf/embedpdf/preact/tsconfig.json
+++ b/packages/web/src/components/pdf/embedpdf/preact/tsconfig.json
@@ -19,7 +19,13 @@
"noUncheckedIndexedAccess": true,
"resolveJsonModule": true,
"esModuleInterop": true,
- "allowSyntheticDefaultImports": true
+ "allowSyntheticDefaultImports": true,
+ "baseUrl": "../../../../..",
+ "paths": {
+ "react": ["node_modules/preact/compat"],
+ "react-dom": ["node_modules/preact/compat"],
+ "react/jsx-runtime": ["node_modules/preact/jsx-runtime"]
+ }
},
"include": ["src"]
}
diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json
index 41a66adf4..e3bbbdfc2 100644
--- a/packages/web/tsconfig.json
+++ b/packages/web/tsconfig.json
@@ -34,5 +34,5 @@
"types": ["vite/client"]
},
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.jsx"],
- "exclude": ["node_modules", "dist", "**/preact/**", "**/preact-2/**"]
+ "exclude": ["node_modules", "dist", "src/components/pdf/embedpdf/preact"]
}