diff --git a/bioai-platform/frontend/package-lock.json b/bioai-platform/frontend/package-lock.json index 5febf85369112996f79051d97e0c1075725a49a6..7c05277fc0c9bb76dcfc5a2a459dc1c37983e22b 100644 --- a/bioai-platform/frontend/package-lock.json +++ b/bioai-platform/frontend/package-lock.json @@ -16,7 +16,6 @@ "framer-motion": "^12.40.0", "geist": "^1.7.2", "lenis": "^1.3.23", - "lucide-react": "^0.474.0", "next": "^14.2.23", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -6123,15 +6122,6 @@ "dev": true, "license": "ISC" }, - "node_modules/lucide-react": { - "version": "0.474.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", - "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", diff --git a/bioai-platform/frontend/package.json b/bioai-platform/frontend/package.json index 047280bbfa2cfde0589008cf9511f77a5fc7e409..625fa013e30a5303801436958ac6282a12f709f0 100644 --- a/bioai-platform/frontend/package.json +++ b/bioai-platform/frontend/package.json @@ -17,7 +17,6 @@ "framer-motion": "^12.40.0", "geist": "^1.7.2", "lenis": "^1.3.23", - "lucide-react": "^0.474.0", "next": "^14.2.23", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/bioai-platform/frontend/src/app/(auth)/auth/callback/page.tsx b/bioai-platform/frontend/src/app/(auth)/auth/callback/page.tsx index 5c9beff09e6408b6c7e41cb880f9fe414a387c29..4d895be045f3440b2e03b372cf82c7f68f83b3ba 100644 --- a/bioai-platform/frontend/src/app/(auth)/auth/callback/page.tsx +++ b/bioai-platform/frontend/src/app/(auth)/auth/callback/page.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; -import { LoaderCircle } from 'lucide-react'; +import { CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import { getSupabase } from '@/lib/supabase'; import { ThemeToggle } from '@/components/ThemeToggle'; import { motion } from 'framer-motion'; diff --git a/bioai-platform/frontend/src/app/(auth)/auth/page.tsx b/bioai-platform/frontend/src/app/(auth)/auth/page.tsx index 8b7b287530c56f81df89f49450a76a2696dfeb78..18c32e7e68baa030394b61b41e05e5a6db902360 100644 --- a/bioai-platform/frontend/src/app/(auth)/auth/page.tsx +++ b/bioai-platform/frontend/src/app/(auth)/auth/page.tsx @@ -2,7 +2,7 @@ import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; -import { Dna, LoaderCircle } from 'lucide-react'; +import { Dna, CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import { useAuth } from '@/contexts/auth'; import { ThemeToggle } from '@/components/ThemeToggle'; import { motion } from 'framer-motion'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/admet/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/admet/page.tsx index 7fd22708818657d41277b0fcb9135e3fa9816b67..3a5a4007a4bce7566b6a418934cf33dc1e6918ad 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/admet/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/admet/page.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { motion, AnimatePresence } from "framer-motion"; -import { Beaker, Check, X, AlertTriangle, Loader2, Shield, Activity, Brain } from "lucide-react"; +import { Flask as Beaker, Check, X, Warning as AlertTriangle, CircleNotch as Loader2, Shield, Pulse as Activity, Brain } from '@phosphor-icons/react'; import { fadeUp } from "@/lib/animations"; import { useAuditTrail } from "@/hooks/useAuditTrail"; import { computeADMET, type ADMETResult } from "@/lib/api"; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/alignment/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/alignment/page.tsx index 5681fd314c85cac3cb769083d8c73b236fa05689..517791c4acb1162c70ea6f27fed7642af2304360 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/alignment/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/alignment/page.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { motion } from 'framer-motion'; -import { LoaderCircle } from 'lucide-react'; +import { CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { runAlignment, type AlignmentMethod } from '@/lib/api'; import { extractErrorMessage } from '@/lib/errors'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/blast/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/blast/page.tsx index 2ae7b4d3f8b234ce2f10ea4fd3089977f5590dd8..368840c687cb371e199291bff323784d210d371c 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/blast/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/blast/page.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; -import { Search, ChevronRight, LoaderCircle, CircleCheck } from 'lucide-react'; +import { MagnifyingGlass as Search, CaretRight as ChevronRight, CircleNotch as LoaderCircle, CheckCircle as CircleCheck } from '@phosphor-icons/react'; import { useAuditTrail } from '@/hooks/useAuditTrail'; import toast from 'react-hot-toast'; import { runPipeline, fetchSequence } from '@/lib/api'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/docking/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/docking/page.tsx index 23a5fcc905d2942ed8ca3d97918ed06609d8a3eb..001820654b478c8012ffaf27c638c4bd50b9593f 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/docking/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/docking/page.tsx @@ -2,11 +2,7 @@ import { useState, useEffect, useCallback } from 'react'; import { motion } from 'framer-motion'; -import { - LoaderCircle, FlaskConical, CheckCircle, XCircle, - AlertTriangle, Hexagon, FileText, Copy, Check, ChevronDown, - ChevronRight -} from 'lucide-react'; +import { CircleNotch as LoaderCircle, TestTube as FlaskConical, CheckCircle, XCircle, Warning as AlertTriangle, Hexagon, FileText, Copy, Check, CaretDown as ChevronDown, CaretRight as ChevronRight } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { runDocking, getDockingStatus } from '@/lib/api'; import type { DockingResult } from '@/lib/api'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/domains/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/domains/page.tsx index a8351c5df9b3fa4855ac0d6e7976600b1f718bee..16eec141bcadfcc8069744f943112bc654d98b7b 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/domains/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/domains/page.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { motion } from "framer-motion"; -import { ExternalLink, Dna, Search, LoaderCircle } from "lucide-react"; +import { ArrowSquareOut as ExternalLink, Dna, MagnifyingGlass as Search, CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import { fadeUp } from "@/lib/animations"; import { DomainArchitecture } from "@/components/domains/DomainArchitecture"; import { scanPrositeSequence, type ScanPrositeResult } from "@/lib/api"; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/function/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/function/page.tsx index 6dac6da062c4267b39a49b426da087b10a6f0d3a..ffddddafb335780115fab52356051bc964032a76 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/function/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/function/page.tsx @@ -1,7 +1,7 @@ "use client"; import { useState, useEffect, useCallback } from "react"; import { motion } from "framer-motion"; -import { Brain, Loader2, ExternalLink, Dna, Layers, Target } from "lucide-react"; +import { Brain, CircleNotch as Loader2, ArrowSquareOut as ExternalLink, Dna, Stack as Layers, Target } from '@phosphor-icons/react'; import { fadeUp } from "@/lib/animations"; import { useAuditTrail } from "@/hooks/useAuditTrail"; import { predictFunction, getFunctionStatus, type FunctionPredictionResult } from "@/lib/api"; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/md/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/md/page.tsx index c8d59a20d591abcabf3774240fe1d7749cfa5d72..71746c7215baecfa7501d5a27a1e58adfdfd0afc 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/md/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/md/page.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, useCallback } from "react"; import { useRouter } from "next/navigation"; import { motion } from "framer-motion"; -import { ArrowLeft, Play, Loader2, Activity, Zap, BarChart3, Info } from "lucide-react"; +import { ArrowLeft, Play, CircleNotch as Loader2, Pulse as Activity, Lightning as Zap, ChartBar as BarChart3, Info } from '@phosphor-icons/react'; import { fadeUp } from "@/lib/animations"; import { useAuditTrail } from "@/hooks/useAuditTrail"; import { runMD, getMDStatus, getMDForceFields, type MDSimulationResult, type MDForceFieldsMenu } from "@/lib/api"; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/page.tsx index ee5d8b843cb978e06121a622e53346781be581c9..15040ed2aebdcef88260c2af557fa95f1ec563f7 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/page.tsx @@ -1,7 +1,7 @@ 'use client'; import { useRouter } from 'next/navigation'; -import { Dna, Layout, Search, Globe, GitBranch, Beaker, Layers, Share2, FlaskConical, Shuffle, GitFork, Atom, Pill, Activity, Brain } from 'lucide-react'; +import { Dna, SquaresFour as Layout, MagnifyingGlass as Search, Globe, GitBranch, Flask as Beaker, Stack as Layers, ShareNetwork as Share2, TestTube as FlaskConical, Shuffle, GitFork, Atom, Pill, Pulse as Activity, Brain } from '@phosphor-icons/react'; import { motion } from 'framer-motion'; import { fadeUp, stagger, cardHover } from '@/lib/animations'; import { ReactNode } from 'react'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/pathway/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/pathway/page.tsx index 825b61da9f86f2baed06c8f81e5a193cbfb9bf03..ff6472d68fb9d1734af54004cec8cd758e600156 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/pathway/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/pathway/page.tsx @@ -2,7 +2,7 @@ import { useState, useCallback, useEffect } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; -import { LoaderCircle, ExternalLink, GitBranch, ChevronDown, ChevronRight, Dna } from 'lucide-react'; +import { CircleNotch as LoaderCircle, ArrowSquareOut as ExternalLink, GitBranch, CaretDown as ChevronDown, CaretRight as ChevronRight, Dna } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { searchPathways, searchKEGGPathways, runEnrichment } from '@/lib/api'; import { extractErrorMessage } from '@/lib/errors'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/sequencing/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/sequencing/page.tsx index 09df130b52ea0f6332493246499ff0076ecb7744..1527877f6e61a2eddddbcfe74a005878c9f23363 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/sequencing/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/sequencing/page.tsx @@ -3,7 +3,7 @@ import { useState, useEffect, useCallback } from 'react'; import { useRouter } from 'next/navigation'; import { motion } from 'framer-motion'; -import { LoaderCircle, CheckCircle, XCircle, AlertTriangle, Dna, BarChart3, Map, Bug, FileText, Search } from 'lucide-react'; +import { CircleNotch as LoaderCircle, CheckCircle, XCircle, Warning as AlertTriangle, Dna, ChartBar as BarChart3, MapTrifold as Map, Bug, FileText, MagnifyingGlass as Search } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { runSequencing, getSequencingStatus, listSequencingReferences } from '@/lib/api'; import type { SequencingResult, SequencingReference } from '@/lib/api'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/structure/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/structure/page.tsx index 265053c5dedd19fc4eb9f6dec32edceb71c73cb6..bc2e455b8a0c0ff3128592aedf8f0972c04af659 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/structure/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/structure/page.tsx @@ -3,7 +3,7 @@ import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { motion } from 'framer-motion'; -import { LoaderCircle, ExternalLink, Dna, FlaskConical, Brain, Activity } from 'lucide-react'; +import { CircleNotch as LoaderCircle, ArrowSquareOut as ExternalLink, Dna, TestTube as FlaskConical, Brain, Pulse as Activity } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { fetchStructure, getStructureInventory } from '@/lib/api'; import { extractErrorMessage } from '@/lib/errors'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/tools/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/tools/page.tsx index 03d559b67dd670b0df8ca6e9a08299e006552729..6af72788cd4ed43c32009e3fbc09e21f0ae358d9 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/tools/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/tools/page.tsx @@ -2,7 +2,7 @@ import { useState, useRef, useEffect } from 'react'; import { motion } from 'framer-motion'; -import { Copy, Check } from 'lucide-react'; +import { Copy, Check } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { useAuditTrail } from '@/hooks/useAuditTrail'; import { BackButton, PageHeader, CriticalButton, FlatTextarea } from '@/components/ui'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/analyze/uniprot/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/analyze/uniprot/page.tsx index 85a859bcbf11cdbede91fc93656a182a5a4b3af6..ee7aa312db191619e17b7f76798cf4d32b6f4ebc 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/analyze/uniprot/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/analyze/uniprot/page.tsx @@ -3,7 +3,7 @@ import { useState, useEffect, useRef, useCallback } from 'react'; import { useRouter } from 'next/navigation'; import { motion } from 'framer-motion'; -import { Search, LoaderCircle, Globe, Dna, Beaker, ChevronRight, ExternalLink, BookOpen, Download } from 'lucide-react'; +import { MagnifyingGlass as Search, CircleNotch as LoaderCircle, Globe, Dna, Flask as Beaker, CaretRight as ChevronRight, ArrowSquareOut as ExternalLink, BookOpen, Download } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { searchUniprot, getUniprotDetail, fetchUniprotCds } from '@/lib/api'; import { extractErrorMessage } from '@/lib/errors'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/dashboard/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/dashboard/page.tsx index 35c8f68b79e88505bd8243d8a20b8b4b917f335b..98a181e97b20eded03e8d51dcc332145f0cedf7c 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/dashboard/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/dashboard/page.tsx @@ -4,11 +4,7 @@ import { useEffect, useState } from 'react'; import Link from 'next/link'; import { motion } from 'framer-motion'; import { fadeUp, stagger, cardHover } from '@/lib/animations'; -import { - LoaderCircle, Dna, Play, Clock, CheckCircle, XCircle, - TrendingUp, BarChart3, GitBranch, AlignLeft, FlaskConical, - Network, Search, ChevronRight, Activity, Calendar, -} from 'lucide-react'; +import { CircleNotch as LoaderCircle, Dna, Play, Clock, CheckCircle, XCircle, TrendUp as TrendingUp, ChartBar as BarChart3, GitBranch, TextAlignLeft as AlignLeft, TestTube as FlaskConical, Network, MagnifyingGlass as Search, CaretRight as ChevronRight, Pulse as Activity, Calendar } from '@phosphor-icons/react'; import { getJobs, getJobCount } from '@/lib/api'; import { useAuth } from '@/contexts/auth'; import type { JobStatus } from '@/types/pipeline'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/history/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/history/page.tsx index 7034544a186f3d87305066da804f69cdcf27f169..4a2c9054f5e070f93f6f3f2b683520c17395a3c8 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/history/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/history/page.tsx @@ -6,7 +6,7 @@ import { getJobs } from '@/lib/api'; import type { JobStatus } from '@/types/pipeline'; import { motion } from 'framer-motion'; import { fadeUp, stagger } from '@/lib/animations'; -import { LoaderCircle, FileText, Dna } from 'lucide-react'; +import { CircleNotch as LoaderCircle, FileText, Dna } from '@phosphor-icons/react'; import { PageHeader } from '@/components/ui'; const STATUS_STYLES: Record = { diff --git a/bioai-platform/frontend/src/app/(dashboard)/jobs/[jobId]/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/jobs/[jobId]/page.tsx index 25adade2c83bc7bb4c19275aaf7d16067558a741..18c5b63eb83bb389b2695eed2bbc708d7ee1f374 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/jobs/[jobId]/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/jobs/[jobId]/page.tsx @@ -2,7 +2,7 @@ import { useEffect, useState, useRef } from 'react'; import { useParams, useRouter } from 'next/navigation'; -import { LoaderCircle, Dna, AlertCircle, Copy, Download, Search, Clock, WifiOff, FlaskConical } from 'lucide-react'; +import { CircleNotch as LoaderCircle, Dna, WarningCircle as AlertCircle, Copy, Download, MagnifyingGlass as Search, Clock, WifiSlash as WifiOff, TestTube as FlaskConical } from '@phosphor-icons/react'; import toast from 'react-hot-toast'; import type { JobStatus, JobStepStatus } from '@/types/pipeline'; import { STEP_LABELS } from '@/types/pipeline'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/jobs/page.tsx b/bioai-platform/frontend/src/app/(dashboard)/jobs/page.tsx index 90271fe10bcd03edb838a02899f5f5e5bec52a20..e9c30ca4eaf46c22783654739fbd255de7a69c0f 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/jobs/page.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/jobs/page.tsx @@ -4,9 +4,7 @@ import { useEffect, useState, useMemo } from 'react'; import Link from 'next/link'; import { motion } from 'framer-motion'; import { fadeUp, stagger, cardHover } from '@/lib/animations'; -import { - LoaderCircle, Dna, FileText, Clock, CheckCircle, XCircle, Plus, ChevronRight, -} from 'lucide-react'; +import { CircleNotch as LoaderCircle, Dna, FileText, Clock, CheckCircle, XCircle, Plus, CaretRight as ChevronRight } from '@phosphor-icons/react'; import { getJobs } from '@/lib/api'; import type { JobStatus } from '@/types/pipeline'; import { STEP_LABELS } from '@/types/pipeline'; diff --git a/bioai-platform/frontend/src/app/(dashboard)/layout.tsx b/bioai-platform/frontend/src/app/(dashboard)/layout.tsx index e52d0015566575ad53940914774f9a810eef8374..770b74e8948841adbbc7ecc79d46fe21da572c27 100644 --- a/bioai-platform/frontend/src/app/(dashboard)/layout.tsx +++ b/bioai-platform/frontend/src/app/(dashboard)/layout.tsx @@ -4,19 +4,7 @@ import { useState, useEffect } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { motion, AnimatePresence } from 'framer-motion'; -import { - LayoutDashboard, - FlaskConical, - Clock, - History, - Search, - Settings, - BookOpen, - ChevronRight, - LogOut, - Dna, - Menu, -} from 'lucide-react'; +import { SquaresFour as LayoutDashboard, TestTube as FlaskConical, Clock, ClockCounterClockwise as History, MagnifyingGlass as Search, GearSix as Settings, BookOpen, CaretRight as ChevronRight, SignOut as LogOut, Dna, List as Menu } from '@phosphor-icons/react'; import { useAuth } from '@/contexts/auth'; import { ThemeToggle } from '@/components/ThemeToggle'; import { ErrorBoundary } from '@/components/ErrorBoundary'; @@ -102,7 +90,7 @@ function SidebarContent({ @@ -152,7 +140,7 @@ function SidebarContent({ onClick={signOut} className={`nav-item w-full text-left hover:!text-red-400 hover:!bg-red-500/10 ${collapsed ? 'justify-center' : ''} group`} > - + {!collapsed && ( import('@/components/three/DNAHelix'), @@ -260,7 +260,7 @@ export default function LandingPage() {
- +

diff --git a/bioai-platform/frontend/src/app/shared/[token]/page.tsx b/bioai-platform/frontend/src/app/shared/[token]/page.tsx index 50da9d0e3053df7e4c385ab0504af09df3fb130f..6fe0071a089346bb5bcf0df175fa8b414597a723 100644 --- a/bioai-platform/frontend/src/app/shared/[token]/page.tsx +++ b/bioai-platform/frontend/src/app/shared/[token]/page.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import { useParams } from 'next/navigation'; -import { Dna, LoaderCircle } from 'lucide-react'; +import { Dna, CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import type { JobStatus } from '@/types/pipeline'; import { ThemeToggle } from '@/components/ThemeToggle'; import { getSharedResult } from '@/lib/api'; diff --git a/bioai-platform/frontend/src/components/AuditInsightPanel.tsx b/bioai-platform/frontend/src/components/AuditInsightPanel.tsx index 9dbb1cc8ad3c180f5c14b19170ace65cfa6a6903..9d5372e5d4e2672450ffcdf7e8f5f0cb6ddfdc03 100644 --- a/bioai-platform/frontend/src/components/AuditInsightPanel.tsx +++ b/bioai-platform/frontend/src/components/AuditInsightPanel.tsx @@ -2,7 +2,7 @@ import { useEffect, useState, useCallback } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; -import { AlertTriangle, Info, AlertCircle, X, ChevronUp } from 'lucide-react'; +import { Warning as AlertTriangle, Info, WarningCircle as AlertCircle, X, CaretUp as ChevronUp } from '@phosphor-icons/react'; import type { AuditInsight } from '@/types/audit'; const SEVERITY_CONFIG = { diff --git a/bioai-platform/frontend/src/components/DockingViewer.tsx b/bioai-platform/frontend/src/components/DockingViewer.tsx index cdbedd5b30198513892d83215d64a43c102fb96d..158a57e7ea22996ae6d6ed050ed7307d23e28969 100644 --- a/bioai-platform/frontend/src/components/DockingViewer.tsx +++ b/bioai-platform/frontend/src/components/DockingViewer.tsx @@ -3,10 +3,7 @@ import { useCallback, useEffect, useRef, useState } from 'react'; import type { DockingInteraction } from '@/lib/api'; import { HudPanel, HudLegend } from '@/components/ui'; -import { - RotateCcw, RotateCw, Camera, FlipHorizontal, Palette, - Box, Layers, Minus, Circle, Hexagon -} from 'lucide-react'; +import { ArrowCounterClockwise as RotateCcw, ArrowClockwise as RotateCw, Camera, FlipHorizontal, Palette, Cube as Box, Stack as Layers, Minus, Circle, Hexagon } from '@phosphor-icons/react'; interface DockingViewerProps { pdbId: string; diff --git a/bioai-platform/frontend/src/components/ErrorBoundary.tsx b/bioai-platform/frontend/src/components/ErrorBoundary.tsx index 6840d1d3f15fd3bc6f29fd32a90bdbe4f581cd2f..42b560402563ea672aca478a600e9c51e854bf7d 100644 --- a/bioai-platform/frontend/src/components/ErrorBoundary.tsx +++ b/bioai-platform/frontend/src/components/ErrorBoundary.tsx @@ -1,7 +1,7 @@ 'use client'; import { Component } from 'react'; -import { AlertCircle } from 'lucide-react'; +import { WarningCircle as AlertCircle } from '@phosphor-icons/react'; interface Props { children: React.ReactNode; diff --git a/bioai-platform/frontend/src/components/GuestBanner.tsx b/bioai-platform/frontend/src/components/GuestBanner.tsx index f2a8591903b07dfdf1c70959049ae38daa9a373a..ca50449cd74250579e94e331a1f3ac25e8b9ac81 100644 --- a/bioai-platform/frontend/src/components/GuestBanner.tsx +++ b/bioai-platform/frontend/src/components/GuestBanner.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { motion } from 'framer-motion'; -import { X, User } from 'lucide-react'; +import { X, User } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import { useAuth } from '@/contexts/auth'; diff --git a/bioai-platform/frontend/src/components/InteractionPanel.tsx b/bioai-platform/frontend/src/components/InteractionPanel.tsx index ff10ff3737195ca90a741164be281eac74be4203..31eaaeefe0bde2ade5053d8f2dd0acc1ca82c55a 100644 --- a/bioai-platform/frontend/src/components/InteractionPanel.tsx +++ b/bioai-platform/frontend/src/components/InteractionPanel.tsx @@ -3,7 +3,7 @@ import { useState } from 'react'; import { motion } from 'framer-motion'; import { fadeUp } from '@/lib/animations'; -import { Beaker, Waves, Hexagon, Zap, ChevronDown, ChevronRight } from 'lucide-react'; +import { Flask as Beaker, WaveSine as Waves, Hexagon, Lightning as Zap, CaretDown as ChevronDown, CaretRight as ChevronRight } from '@phosphor-icons/react'; import type { DockingInteraction } from '@/lib/api'; interface InteractionPanelProps { diff --git a/bioai-platform/frontend/src/components/LearnPopover.tsx b/bioai-platform/frontend/src/components/LearnPopover.tsx index 4f18f107fb421e6a120cafcfbf747bd774a1c80e..529f0641eff3a72e48d705a14ed3729e30e43ae4 100644 --- a/bioai-platform/frontend/src/components/LearnPopover.tsx +++ b/bioai-platform/frontend/src/components/LearnPopover.tsx @@ -2,7 +2,7 @@ import { useState, useRef, useEffect } from 'react'; import Link from 'next/link'; -import { HelpCircle } from 'lucide-react'; +import { Question as HelpCircle } from '@phosphor-icons/react'; interface LearnPopoverProps { term: string; diff --git a/bioai-platform/frontend/src/components/SequenceRetrieval.tsx b/bioai-platform/frontend/src/components/SequenceRetrieval.tsx index eaa221289717a453378864c7b0cd042a76df9809..f6afc815a7c2df9a71bfe5fa0aa6e0b6921e0cdf 100644 --- a/bioai-platform/frontend/src/components/SequenceRetrieval.tsx +++ b/bioai-platform/frontend/src/components/SequenceRetrieval.tsx @@ -3,7 +3,7 @@ import { useState } from 'react'; import { motion } from 'framer-motion'; import { useRouter } from 'next/navigation'; -import { Search, Dna, LoaderCircle, CheckCircle, AlertCircle, BookOpen, ArrowRight, Beaker } from 'lucide-react'; +import { MagnifyingGlass as Search, Dna, CircleNotch as LoaderCircle, CheckCircle, WarningCircle as AlertCircle, BookOpen, ArrowRight, Flask as Beaker } from '@phosphor-icons/react'; import { fadeUp, stagger } from '@/lib/animations'; import { fetchSequence, validateSequence, searchSequences } from '@/lib/api'; import { extractErrorMessage } from '@/lib/errors'; diff --git a/bioai-platform/frontend/src/components/SequenceTypewriter.tsx b/bioai-platform/frontend/src/components/SequenceTypewriter.tsx index 69316891701e9c48c48e8ece3a27853a62cee280..38ddc6659d9825a1f9190f51b1588bde095e6ba9 100644 --- a/bioai-platform/frontend/src/components/SequenceTypewriter.tsx +++ b/bioai-platform/frontend/src/components/SequenceTypewriter.tsx @@ -1,7 +1,7 @@ 'use client'; import { useState, useEffect } from 'react'; -import { Dna } from 'lucide-react'; +import { Dna } from '@phosphor-icons/react'; const SEQUENCES = [ { diff --git a/bioai-platform/frontend/src/components/ThemeToggle.tsx b/bioai-platform/frontend/src/components/ThemeToggle.tsx index 4e2a6fb0be09923e30c445ec01a1578119d76c7c..26a3644555e0c2f92bf67257986ee9bf60fca4b3 100644 --- a/bioai-platform/frontend/src/components/ThemeToggle.tsx +++ b/bioai-platform/frontend/src/components/ThemeToggle.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Sun, Moon } from 'lucide-react'; +import { Sun, Moon } from '@phosphor-icons/react'; import { useTheme } from '@/contexts/theme'; export function ThemeToggle({ compact = false }: { compact?: boolean }) { diff --git a/bioai-platform/frontend/src/components/TutorialWalkthrough.tsx b/bioai-platform/frontend/src/components/TutorialWalkthrough.tsx index 2cb571cb530df452e10488d772820102b42beb07..82a5ea201ca09e8a4d2411397a1f9a796f0e3ec1 100644 --- a/bioai-platform/frontend/src/components/TutorialWalkthrough.tsx +++ b/bioai-platform/frontend/src/components/TutorialWalkthrough.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, useCallback } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; -import { X, ChevronLeft, ChevronRight, BookOpen } from 'lucide-react'; +import { X, CaretLeft as ChevronLeft, CaretRight as ChevronRight, BookOpen } from '@phosphor-icons/react'; const STEPS = [ { diff --git a/bioai-platform/frontend/src/components/phylo/PhyloTreeViewer.tsx b/bioai-platform/frontend/src/components/phylo/PhyloTreeViewer.tsx index 749b1d5a68a8188cb005bdcd02110f6a97bd0195..e1ed831154bd0d8ca8c8650c5821751a4cb3fcb8 100644 --- a/bioai-platform/frontend/src/components/phylo/PhyloTreeViewer.tsx +++ b/bioai-platform/frontend/src/components/phylo/PhyloTreeViewer.tsx @@ -1,7 +1,7 @@ 'use client' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { Search } from 'lucide-react' +import { MagnifyingGlass as Search } from '@phosphor-icons/react' import { ClaySegmented } from '@/components/ui/ClaySegmented' // ─── Types ──────────────────────────────────────────────────────────────────── diff --git a/bioai-platform/frontend/src/components/pipeline/JobProgress.tsx b/bioai-platform/frontend/src/components/pipeline/JobProgress.tsx index 53b0f12f98f3b6b18ad9f1b173b269b78b90484b..04440389f491fd0df9ed8c42da00a35107330df0 100644 --- a/bioai-platform/frontend/src/components/pipeline/JobProgress.tsx +++ b/bioai-platform/frontend/src/components/pipeline/JobProgress.tsx @@ -1,7 +1,7 @@ 'use client'; import { motion } from 'framer-motion'; -import { CheckCircle2, XCircle } from 'lucide-react'; +import { CheckCircle as CheckCircle2, XCircle } from '@phosphor-icons/react'; import { fadeUp, fadeIn } from '@/lib/animations'; interface Step { diff --git a/bioai-platform/frontend/src/components/pipeline/PipelineSelector.tsx b/bioai-platform/frontend/src/components/pipeline/PipelineSelector.tsx index 7d8432d91b1675f21e7def0142d94e94e0c52977..424b7befa3d9814a1a6dce45209657b7e4d49e57 100644 --- a/bioai-platform/frontend/src/components/pipeline/PipelineSelector.tsx +++ b/bioai-platform/frontend/src/components/pipeline/PipelineSelector.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { motion } from 'framer-motion'; -import { Dna, ArrowRight, ChevronRight } from 'lucide-react'; +import { Dna, ArrowRight, CaretRight as ChevronRight } from '@phosphor-icons/react'; import { fadeUp, stagger, cardHover } from '@/lib/animations'; interface PipelineOption { diff --git a/bioai-platform/frontend/src/components/primers/PrimerDesigner.tsx b/bioai-platform/frontend/src/components/primers/PrimerDesigner.tsx index d3a6b8a4c730262994b8a6f7af38848afd0fc48b..346ff89825fa87ebc2538ee1c13ea054dbb89fdc 100644 --- a/bioai-platform/frontend/src/components/primers/PrimerDesigner.tsx +++ b/bioai-platform/frontend/src/components/primers/PrimerDesigner.tsx @@ -1,6 +1,6 @@ "use client"; import { useState, useRef, useEffect } from "react"; -import { LoaderCircle, Download } from "lucide-react"; +import { CircleNotch as LoaderCircle, Download } from '@phosphor-icons/react'; import { downloadTsv } from "@/lib/export-utils"; import { useAuditTrail } from "@/hooks/useAuditTrail"; import { CriticalButton, FlatInput, FlatTextarea } from "@/components/ui"; diff --git a/bioai-platform/frontend/src/components/results/AIInterpretation.tsx b/bioai-platform/frontend/src/components/results/AIInterpretation.tsx index b9460f1ec87b5e96ebb85ea5601d921df3fbfdff..96cd73dfec289abc9b5367d5c08329fd2daae185 100644 --- a/bioai-platform/frontend/src/components/results/AIInterpretation.tsx +++ b/bioai-platform/frontend/src/components/results/AIInterpretation.tsx @@ -3,7 +3,7 @@ import { useState, useRef, useCallback } from 'react'; import { useRouter } from 'next/navigation'; import { motion } from 'framer-motion'; -import { Brain, Loader2, Dna, Search } from 'lucide-react'; +import { Brain, CircleNotch as Loader2, Dna, MagnifyingGlass as Search } from '@phosphor-icons/react'; import type { AssembledContext } from '@/types/pipeline'; import type { StreamEvent } from '@/types/results'; import { interpretStream } from '@/lib/api'; diff --git a/bioai-platform/frontend/src/components/results/BlastPanel.tsx b/bioai-platform/frontend/src/components/results/BlastPanel.tsx index 1cd3323035ff6434a0c5d9e58dfbd8347617452b..d40a23360fa4f6620eb75066f56f4224d190598c 100644 --- a/bioai-platform/frontend/src/components/results/BlastPanel.tsx +++ b/bioai-platform/frontend/src/components/results/BlastPanel.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { motion } from 'framer-motion'; -import { ChevronDown, ChevronUp, ExternalLink, Download } from 'lucide-react'; +import { CaretDown as ChevronDown, CaretUp as ChevronUp, ArrowSquareOut as ExternalLink, Download } from '@phosphor-icons/react'; import type { BlastHitSummary } from '@/types/pipeline'; import { AlignmentView } from './AlignmentView'; import { PairwiseAlignView } from './PairwiseAlignView'; diff --git a/bioai-platform/frontend/src/components/results/PairwiseAlignView.tsx b/bioai-platform/frontend/src/components/results/PairwiseAlignView.tsx index 74a0b863b741f7187b352f6917dd28a99f5be257..9d42489beb9eec9ccc41584b92cfb18e34f4449e 100644 --- a/bioai-platform/frontend/src/components/results/PairwiseAlignView.tsx +++ b/bioai-platform/frontend/src/components/results/PairwiseAlignView.tsx @@ -1,7 +1,7 @@ 'use client'; import { useState } from 'react'; -import { GitCompareArrows, LoaderCircle } from 'lucide-react'; +import { GitMerge as GitCompareArrows, CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import { runPairwiseAlignment } from '@/lib/api'; import type { BlastHitSummary, PairwiseAlignResult } from '@/types/pipeline'; diff --git a/bioai-platform/frontend/src/components/results/PathwayDiagram.tsx b/bioai-platform/frontend/src/components/results/PathwayDiagram.tsx index 19d8c48642a5023fbe550ae0f80591df7f3ea57e..8453062597a37dc34e0c73185b95b049eab66f3e 100644 --- a/bioai-platform/frontend/src/components/results/PathwayDiagram.tsx +++ b/bioai-platform/frontend/src/components/results/PathwayDiagram.tsx @@ -1,7 +1,7 @@ 'use client'; import { useEffect, useRef, useState } from 'react'; -import { LoaderCircle } from 'lucide-react'; +import { CircleNotch as LoaderCircle } from '@phosphor-icons/react'; interface Props { stId: string; diff --git a/bioai-platform/frontend/src/components/results/PathwayEnrichment.tsx b/bioai-platform/frontend/src/components/results/PathwayEnrichment.tsx index 12e212bb88b14cd80f093d39118555f231046d69..b60ae1f456e75cf34da4494678faa724f0bdd5a7 100644 --- a/bioai-platform/frontend/src/components/results/PathwayEnrichment.tsx +++ b/bioai-platform/frontend/src/components/results/PathwayEnrichment.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; -import { GitBranch, ChevronDown, ChevronRight, ExternalLink, AlertCircle, Download } from 'lucide-react'; +import { GitBranch, CaretDown as ChevronDown, CaretRight as ChevronRight, ArrowSquareOut as ExternalLink, WarningCircle as AlertCircle, Download } from '@phosphor-icons/react'; import { fadeUp } from '@/lib/animations'; import type { PathwayEnrichment as PathwayEnrichmentData } from '@/types/pipeline'; import { downloadTsv, copyText } from '@/lib/export-utils'; diff --git a/bioai-platform/frontend/src/components/results/PipelineResults.tsx b/bioai-platform/frontend/src/components/results/PipelineResults.tsx index 15817c131ae7b68286645a3071921e26024df19f..6fd623a8ea6d709cc2fbc8e35d259e0caec3f400 100644 --- a/bioai-platform/frontend/src/components/results/PipelineResults.tsx +++ b/bioai-platform/frontend/src/components/results/PipelineResults.tsx @@ -1,7 +1,7 @@ "use client"; import { useEffect, useState } from "react"; import { motion } from "framer-motion"; -import { CheckCircle2, Circle, LoaderCircle, XCircle, ArrowRight, Dna } from "lucide-react"; +import { CheckCircle as CheckCircle2, Circle, CircleNotch as LoaderCircle, XCircle, ArrowRight, Dna } from '@phosphor-icons/react'; import { BlastPanel } from "./BlastPanel"; import { ScoreBars } from "./ScoreBars"; import { UniprotPanel } from "./UniprotPanel"; diff --git a/bioai-platform/frontend/src/components/results/UniprotPanel.tsx b/bioai-platform/frontend/src/components/results/UniprotPanel.tsx index 61c662b8e6d400c2bb6446305be36d7626a8be81..0922a4c3ff2a077818c688e9133fcf16b568e704 100644 --- a/bioai-platform/frontend/src/components/results/UniprotPanel.tsx +++ b/bioai-platform/frontend/src/components/results/UniprotPanel.tsx @@ -1,7 +1,7 @@ 'use client'; import { motion } from 'framer-motion'; -import { ExternalLink, Box } from 'lucide-react'; +import { ArrowSquareOut as ExternalLink, Cube as Box } from '@phosphor-icons/react'; import type { UniprotSummary } from '@/types/pipeline'; import { fadeUp, cardHover } from '@/lib/animations'; diff --git a/bioai-platform/frontend/src/components/ui/BackButton.tsx b/bioai-platform/frontend/src/components/ui/BackButton.tsx index 6fef5d3cfdbc4daf1e40bac5700a6e6576177150..8a581c79490c414de5bdb62f4bd580bfae57b9f8 100644 --- a/bioai-platform/frontend/src/components/ui/BackButton.tsx +++ b/bioai-platform/frontend/src/components/ui/BackButton.tsx @@ -1,7 +1,7 @@ 'use client'; import Link from 'next/link'; -import { ArrowLeft } from 'lucide-react'; +import { ArrowLeft } from '@phosphor-icons/react'; /** * Navigation affordance used at the top of tool pages to return to the diff --git a/bioai-platform/frontend/src/components/ui/CriticalButton.tsx b/bioai-platform/frontend/src/components/ui/CriticalButton.tsx index 099128b7ee5336a5da447de4e033637fbcf766c6..83454686b3536b4503140957e35ad161e61985ec 100644 --- a/bioai-platform/frontend/src/components/ui/CriticalButton.tsx +++ b/bioai-platform/frontend/src/components/ui/CriticalButton.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Loader2 } from 'lucide-react'; +import { CircleNotch as Loader2 } from '@phosphor-icons/react'; /** * Solid, deliberate action button for irreversible / expensive actions diff --git a/bioai-platform/frontend/src/components/ui/ResultsReadyBanner.tsx b/bioai-platform/frontend/src/components/ui/ResultsReadyBanner.tsx index 6e400fef5d7651248c6a454fc7e4f9944a33ad04..79008e50ee055f3215dca32525cdfa68692e403b 100644 --- a/bioai-platform/frontend/src/components/ui/ResultsReadyBanner.tsx +++ b/bioai-platform/frontend/src/components/ui/ResultsReadyBanner.tsx @@ -1,6 +1,6 @@ 'use client'; -import { CheckCircle2 } from 'lucide-react'; +import { CheckCircle as CheckCircle2 } from '@phosphor-icons/react'; /** * Distinct "results arrived" notification shown at the top of a tool's diff --git a/bioai-platform/frontend/src/components/wizard/AnalysisWizard.tsx b/bioai-platform/frontend/src/components/wizard/AnalysisWizard.tsx index fd185cd6104469f2880f2d991e9c482c42dce92b..d673c614a90827df1a0ec90c578e0fbb7c2b5b94 100644 --- a/bioai-platform/frontend/src/components/wizard/AnalysisWizard.tsx +++ b/bioai-platform/frontend/src/components/wizard/AnalysisWizard.tsx @@ -1,7 +1,7 @@ "use client"; import { useState } from "react"; import { motion, AnimatePresence } from "framer-motion"; -import { Dna, ArrowRight, LoaderCircle, FileText, CircleCheck, Circle } from "lucide-react"; +import { Dna, ArrowRight, CircleNotch as LoaderCircle, FileText, CheckCircle as CircleCheck, Circle } from '@phosphor-icons/react'; import { ClayToggle } from "@/components/ui/ClayToggle"; import { CriticalButton } from "@/components/ui/CriticalButton"; import { PipelineResults } from "@/components/results/PipelineResults";