From 4c11fe7791f872606e5735498f23828613cac7db Mon Sep 17 00:00:00 2001 From: gitit24x7 Date: Wed, 18 Feb 2026 03:19:10 +0530 Subject: [PATCH 1/4] feat: Revamped UI and fixed build errors --- app/dashboard/document-to-pdf/page.tsx | 2 +- app/dashboard/page.tsx | 168 +- app/dashboard/pdf-merge/page.tsx | 2 +- app/dashboard/pdf-split/page.tsx | 12 +- app/globals.css | 40 +- app/layout.tsx | 2 - app/page.tsx | 118 +- app/tool/[id]/page.tsx | 1828 +++--- app/tool/[id]/processing/page.tsx | 12 +- build.log | Bin 0 -> 4938 bytes build_error.log | Bin 0 -> 4122 bytes build_error_2.log | Bin 0 -> 4994 bytes build_result.log | Bin 0 -> 4096 bytes components/FeatureCard.tsx | 22 +- components/Header.tsx | 106 +- components/Navbar.tsx | 33 - components/RecentFiles.tsx | 12 +- components/RecentlyDeletedFiles.tsx | 23 +- components/SortablePdfItem.tsx | 7 +- components/ToolCard.tsx | 8 +- lib/utils.ts | 13 + package-lock.json | 7553 ------------------------ tailwind.config.ts | 30 +- 23 files changed, 1329 insertions(+), 8662 deletions(-) create mode 100644 build.log create mode 100644 build_error.log create mode 100644 build_error_2.log create mode 100644 build_result.log delete mode 100644 components/Navbar.tsx delete mode 100644 package-lock.json diff --git a/app/dashboard/document-to-pdf/page.tsx b/app/dashboard/document-to-pdf/page.tsx index 5726bea..6c4881a 100644 --- a/app/dashboard/document-to-pdf/page.tsx +++ b/app/dashboard/document-to-pdf/page.tsx @@ -181,7 +181,7 @@ }; const downloadPdf = (pdfBytes: Uint8Array, sourceFileName: string) => { - const blob = new Blob([pdfBytes], { type: "application/pdf" }); + const blob = new Blob([pdfBytes as any], { type: "application/pdf" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index 9311954..cd71852 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { FileText, ArrowLeftRight, ScanText, LayoutGrid, Search } from "lucide-react"; +import { FileText, ArrowLeftRight, ScanText, LayoutGrid, Search, ArrowRight } from "lucide-react"; import { ToolCard } from "@/components/ToolCard"; import ToolCardSkeleton from "@/components/ToolCardSkeleton"; import RecentFiles from "@/components/RecentFiles"; @@ -9,6 +9,7 @@ import { useEffect, useState } from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { useRecentFiles } from "@/lib/hooks/useRecentFiles"; +import { motion } from "framer-motion"; export default function Dashboard() { const [mounted, setMounted] = useState(false); @@ -92,88 +93,99 @@ export default function Dashboard() { ); return ( -
-
- - {/* Resume Banner */} - {lastTool && !hideResume && ( -
-
-

- Resume your last tool -

- - +
+ + {/* Resume Banner */} + {lastTool && !hideResume && ( +
+
+
+ +
+
+

+ Resume your work +

+ + {lastTool.replace("-", " ").toUpperCase()} + + +
+
+ +
+ )} - -
- )} - - {/* Most Used Tools */} - {mostUsedTools.length > 0 && ( -
-

- Most Used Tools -

- -
- {mostUsedTools.map(([tool, count]) => ( - - - {tool.replace("-", " ").toUpperCase()} - - - - {count} uses - - - ))} + {/* Page Title + Search */} +
+
+
+

+ Workspace +

+

+ Select a tool to begin processing your documents. +

+
+ + {/* Search Bar */} +
+ + setSearch(e.target.value)} + className="bg-transparent outline-none text-sm w-full font-medium" + /> +
+ + {/* Most Used Tools */} + {mostUsedTools.length > 0 && search === "" && ( +
+

+ Frequently Used +

+
+ {mostUsedTools.map(([tool, count]) => ( + + + {tool.replace("-", " ").toUpperCase()} + + + {count} sessions + + + ))} +
+
+ )}
- )} - - {/* Page Title + Search */} -
-

- Choose a tool -

- -

- Select what you want to do with your file -

- - {/* Search Bar */} -
- - setSearch(e.target.value)} - className="bg-transparent outline-none text-sm w-full" - /> -
-
+ {/* Tools Grid */}
diff --git a/app/dashboard/pdf-merge/page.tsx b/app/dashboard/pdf-merge/page.tsx index 236c7ac..8e7b088 100644 --- a/app/dashboard/pdf-merge/page.tsx +++ b/app/dashboard/pdf-merge/page.tsx @@ -230,7 +230,7 @@ export default function PdfMergePage() { const mergedBytes = await mergedPdf.save(); setUploadProgress(95); - const blob = new Blob([new Uint8Array(mergedBytes)], { + const blob = new Blob([new Uint8Array(mergedBytes) as any], { type: 'application/pdf', }); diff --git a/app/dashboard/pdf-split/page.tsx b/app/dashboard/pdf-split/page.tsx index 663e7d4..cc55eed 100644 --- a/app/dashboard/pdf-split/page.tsx +++ b/app/dashboard/pdf-split/page.tsx @@ -101,7 +101,7 @@ export default function PdfSplitPage() { const newBytes = await newPdf.save(); - const blob = new Blob([new Uint8Array(newBytes)], { + const blob = new Blob([new Uint8Array(newBytes) as any], { type: "application/pdf", }); @@ -132,11 +132,10 @@ export default function PdfSplitPage() { onDragOver={handleDragOver} onDragLeave={handleDragLeave} onDrop={handleDrop} - className={`border-2 border-dashed rounded-xl p-10 text-center transition ${ - isDragging + className={`border-2 border-dashed rounded-xl p-10 text-center transition ${isDragging ? "border-accent bg-accent/10" : "border-border bg-muted hover:border-accent" - }`} + }`} >

Split PDF File

@@ -229,11 +228,10 @@ export default function PdfSplitPage() { diff --git a/app/globals.css b/app/globals.css index 9e365c0..293dfb7 100644 --- a/app/globals.css +++ b/app/globals.css @@ -217,7 +217,41 @@ body { } .glass-card { - background: var(--card); - backdrop-filter: blur(12px); - border: 1px solid var(--border); + background: color-mix(in srgb, var(--card) 70%, transparent); + backdrop-filter: blur(16px) saturate(180%); + border: 1px solid color-mix(in srgb, var(--border) 40%, transparent); + box-shadow: var(--shadow-premium); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.glass-card:hover { + box-shadow: var(--shadow-premium-hover); + transform: translateY(-2px); + background: color-mix(in srgb, var(--card) 80%, transparent); +} + +.mesh-gradient { + background-color: var(--background); + background-image: + radial-gradient(at 0% 0%, color-mix(in srgb, var(--primary) 15%, transparent) 0px, transparent 50%), + radial-gradient(at 50% 0%, color-mix(in srgb, var(--accent) 10%, transparent) 0px, transparent 50%), + radial-gradient(at 100% 0%, color-mix(in srgb, var(--primary) 15%, transparent) 0px, transparent 50%); +} + +.text-gradient { + background: linear-gradient(to right, var(--primary), var(--accent)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + color: transparent; +} + +.premium-button { + @apply inline-flex items-center justify-center transition-all duration-300; + box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 20%, transparent); +} + +.premium-button:hover { + box-shadow: 0 8px 24px color-mix(in srgb, var(--primary) 30%, transparent); + transform: translateY(-1px); } diff --git a/app/layout.tsx b/app/layout.tsx index 257f891..e53b47e 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -3,7 +3,6 @@ import localFont from "next/font/local"; import "./globals.css"; import { Header } from "@/components/Header"; import { Footer } from "@/components/Footer"; -import Navbar from "@/components/Navbar"; import { Toaster } from "sonner"; import { ThemeProvider } from "@/components/ThemeProvider"; @@ -34,7 +33,6 @@ export default function RootLayout({

- {children}