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"] }