diff --git a/apps/web/hooks/use-autosave.ts b/apps/web/hooks/use-autosave.ts index 104dbac..ce96d79 100644 --- a/apps/web/hooks/use-autosave.ts +++ b/apps/web/hooks/use-autosave.ts @@ -2,7 +2,7 @@ import { useEffect, useRef, useCallback } from "react"; export function useAutosave(isDirty: boolean, onSave: () => Promise, delay = 5000) { - const timerRef = useRef>(); + const timerRef = useRef | undefined>(undefined); const savingRef = useRef(false); const save = useCallback(async () => { diff --git a/apps/web/lib/auth/config.ts b/apps/web/lib/auth/config.ts index 75b6708..9dc6159 100644 --- a/apps/web/lib/auth/config.ts +++ b/apps/web/lib/auth/config.ts @@ -141,7 +141,7 @@ export const { handlers, auth, signIn, signOut } = NextAuth({ name: token.name as string | null, displayName: (token.displayName as string | null) ?? null, image: token.picture as string | null, - } satisfies SessionUser as typeof session.user; + } satisfies SessionUser as unknown as typeof session.user; } return session; }, diff --git a/apps/web/package.json b/apps/web/package.json index 34bfef7..64777ea 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -21,8 +21,10 @@ "@trpc/client": "^11.0.0", "@trpc/react-query": "^11.0.0", "@trpc/server": "^11.0.0", + "adm-zip": "^0.5.16", "bcryptjs": "^2.4.3", "isomorphic-dompurify": "^2.0.0", + "lucide-react": "^0.462.0", "next": "^15.5.15", "next-auth": "5.0.0-beta.30", "react": "^19.2.5", @@ -32,6 +34,7 @@ }, "devDependencies": { "@playwright/test": "^1.45.0", + "@types/adm-zip": "^0.5.5", "@types/bcryptjs": "^2.4.0", "@types/node": "^22.0.0", "@types/react": "^19.2.14", diff --git a/package.json b/package.json index a88186b..40b5890 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,12 @@ "devDependencies": { "turbo": "^2.5.0" }, + "pnpm": { + "overrides": { + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3" + } + }, "keywords": [], "author": "", "license": "MIT", diff --git a/packages/blocks/src/blocks/heading.tsx b/packages/blocks/src/blocks/heading.tsx index f036b62..ffdd835 100644 --- a/packages/blocks/src/blocks/heading.tsx +++ b/packages/blocks/src/blocks/heading.tsx @@ -1,3 +1,4 @@ +import type { JSX } from "react"; import { z } from "zod"; import DOMPurify from "isomorphic-dompurify"; import { registerBlock } from "../registry"; diff --git a/packages/core/src/theme/theme-manager.ts b/packages/core/src/theme/theme-manager.ts index 9923753..7f8b274 100644 --- a/packages/core/src/theme/theme-manager.ts +++ b/packages/core/src/theme/theme-manager.ts @@ -228,6 +228,11 @@ function resolveThemesDir(): string { return THEMES_DIR; } -function DefaultLayout({ children }: { children: React.ReactNode }) { +function DefaultLayout({ + children, +}: { + children: React.ReactNode; + customizations: Record; +}) { return children; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb26a1c..5f77713 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,10 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@types/react': ^19.2.14 + '@types/react-dom': ^19.2.3 + importers: .: @@ -47,12 +51,18 @@ importers: '@trpc/server': specifier: ^11.0.0 version: 11.13.4(typescript@5.9.3) + adm-zip: + specifier: ^0.5.16 + version: 0.5.18 bcryptjs: specifier: ^2.4.3 version: 2.4.3 isomorphic-dompurify: specifier: ^2.0.0 version: 2.36.0 + lucide-react: + specifier: ^0.462.0 + version: 0.462.0(react@19.2.5) next: specifier: ^15.5.15 version: 15.5.15(@playwright/test@1.58.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -75,6 +85,9 @@ importers: '@playwright/test': specifier: ^1.45.0 version: 1.58.2 + '@types/adm-zip': + specifier: ^0.5.5 + version: 0.5.8 '@types/bcryptjs': specifier: ^2.4.0 version: 2.4.6 @@ -150,8 +163,8 @@ importers: specifier: ^22.0.0 version: 22.19.15 '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 typescript: specifier: ^5.5.0 version: 5.9.3 @@ -181,8 +194,8 @@ importers: specifier: ^22.0.0 version: 22.19.15 '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 '@vitest/coverage-v8': specifier: ^3.0.0 version: 3.2.4(vitest@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(jsdom@28.1.0)) @@ -234,8 +247,8 @@ importers: specifier: ^22.0.0 version: 22.19.15 '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 typescript: specifier: ^5.5.0 version: 5.9.3 @@ -247,8 +260,8 @@ importers: version: 18.3.1 devDependencies: '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 typescript: specifier: ^5.5.0 version: 5.9.3 @@ -1490,6 +1503,9 @@ packages: cpu: [arm64] os: [win32] + '@types/adm-zip@0.5.8': + resolution: {integrity: sha512-RVVH7QvZYbN+ihqZ4kX/dMiowf6o+Jk1fNwiSdx0NahBJLU787zkULhGhJM8mf/obmLGmgdMM0bXsQTmyfbR7Q==} + '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} @@ -1505,16 +1521,10 @@ packages: '@types/node@22.19.15': resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: - '@types/react': ^19.2.0 - - '@types/react@18.3.28': - resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + '@types/react': ^19.2.14 '@types/react@19.2.14': resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} @@ -1560,6 +1570,10 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + adm-zip@0.5.18: + resolution: {integrity: sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng==} + engines: {node: '>=12.0'} + agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -2031,6 +2045,11 @@ packages: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} + lucide-react@0.462.0: + resolution: {integrity: sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -4010,6 +4029,10 @@ snapshots: '@turbo/windows-arm64@2.8.19': optional: true + '@types/adm-zip@0.5.8': + dependencies: + '@types/node': 22.19.15 + '@types/bcryptjs@2.4.6': {} '@types/chai@5.2.3': @@ -4025,17 +4048,10 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/prop-types@15.7.15': {} - '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: '@types/react': 19.2.14 - '@types/react@18.3.28': - dependencies: - '@types/prop-types': 15.7.15 - csstype: 3.2.3 - '@types/react@19.2.14': dependencies: csstype: 3.2.3 @@ -4104,6 +4120,8 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 + adm-zip@0.5.18: {} + agent-base@7.1.4: {} ansi-regex@5.0.1: {} @@ -4592,6 +4610,10 @@ snapshots: lru-cache@11.2.7: {} + lucide-react@0.462.0(react@19.2.5): + dependencies: + react: 19.2.5 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5