diff --git a/flowsint-web/src/app/dashboard/keys/page.tsx b/flowsint-web/src/app/dashboard/keys/page.tsx
index fbac352..5e45c54 100644
--- a/flowsint-web/src/app/dashboard/keys/page.tsx
+++ b/flowsint-web/src/app/dashboard/keys/page.tsx
@@ -1,9 +1,150 @@
-import React from 'react'
+"use client"
+
+import { useState } from "react"
+import { Button } from "@/components/ui/button"
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
+import { Trash2 } from "lucide-react"
+
+export default function TokensPage() {
+ const [tokens, setTokens] = useState([
+ {
+ id: "1",
+ name: "My key",
+ key: "****************************CmDi",
+ expiration: "Jamais",
+ },
+ ])
-const page = () => {
return (
-
+
{children}
diff --git a/flowsint-web/src/app/dashboard/page.tsx b/flowsint-web/src/app/dashboard/page.tsx
index 842eddc..030b79f 100644
--- a/flowsint-web/src/app/dashboard/page.tsx
+++ b/flowsint-web/src/app/dashboard/page.tsx
@@ -1,32 +1,59 @@
+"use client"
+
+import { useState, useEffect } from "react"
import Investigation from "@/components/dashboard/investigation"
+import InvestigationList from "@/components/dashboard/investigation-list"
import { Button } from "@/components/ui/button"
import { Badge } from "@/components/ui/badge"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
-import { AlertCircle, ChevronDown, Clock, Filter, Grid3X3, List, Lock, Plus, Search, Target } from "lucide-react"
+import { AlertCircle, ChevronDown, Clock, Filter, Lock, Plus, Search, Target } from "lucide-react"
import NewCase from "@/components/dashboard/new-case"
-import { createClient } from "@/lib/supabase/server"
+import { supabase } from "@/lib/supabase/client"
import { Input } from "@/components/ui/input"
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@/components/ui/command"
-import { unauthorized } from "next/navigation"
+import ViewToggle from "@/components/dashboard/view-toggle"
+import { useQueryState } from "nuqs"
+import Loader from "@/components/loader"
-const DashboardPage = async () => {
- const supabase = await createClient()
- const { data: investigations, error } = await supabase.from("investigations").select("*, relations_count:relationships!inner(count), individuals_counts:individuals!inner(count)")
- if (error) return unauthorized()
+type ViewMode = "grid" | "list"
- // Compter les investigations par statut
+const DashboardPage = () => {
+ const [viewMode, setViewMode] = useQueryState
("view", {
+ defaultValue: "grid",
+ parse: (value) => (value === "grid" || value === "list" ? value : "grid")
+ })
+ const [investigations, setInvestigations] = useState([])
+ const [loading, setLoading] = useState(true)
const activeCount = investigations.filter((inv) => inv.status === "active").length || 0
const pendingCount = investigations.filter((inv) => inv.status === "pending").length || 0
const archivedCount = investigations.filter((inv) => inv.status === "archived").length || 0
const totalCount = investigations.length
+ useEffect(() => {
+ const fetchInvestigations = async () => {
+ setLoading(true)
+ const { data, error } = await supabase
+ .from("investigations")
+ .select("*, relations_count:relationships!inner(count), individuals_counts:individuals!inner(count)")
+ if (error) {
+ console.error("Erreur lors de la récupération des investigations:", error)
+ } else {
+ setInvestigations(data || [])
+ }
+ setLoading(false)
+ }
+ fetchInvestigations()
+ }, [])
+ const getGridClasses = () => {
+ return viewMode === "grid" ? "grid gap-4 sm:grid-cols-1 lg:grid-cols-2 xl:grid-cols-3" : "grid gap-2 grid-cols-1"
+ }
return (
-
Investigations
+
Investigations
Gérez et suivez vos investigations OSINT en cours.
@@ -38,7 +65,6 @@ const DashboardPage = async () => {
-
@@ -48,7 +74,6 @@ const DashboardPage = async () => {
className="w-full rounded-lg bg-background pl-8 md:max-w-sm"
/>
-
@@ -83,88 +108,101 @@ const DashboardPage = async () => {
-
-
-
-
-
-
-
+
-
Actives
- {activeCount}
+
+ {activeCount}
+
En cours
- {pendingCount}
+
+ {pendingCount}
+
Archivées
- {archivedCount}
+
+ {archivedCount}
+
Toutes
- {totalCount}
+
+ {totalCount}
+
-
-
-
- {investigations.map((investigation) => (
-
- ))}
+ {loading ? (
+
+
Chargement des investigations...
-
-
-
-
- {investigations
- .filter((inv) => inv.status === "active")
- .map((investigation) => (
-
- ))}
-
-
-
-
-
- {investigations
- .filter((inv) => inv.status === "pending")
- .map((investigation) => (
-
- ))}
-
-
-
-
- {investigations
- .filter((inv) => inv.status === "archived")
- .map((investigation) => (
-
- ))}
-
-
+ ) : (
+ <>
+
+
+ {investigations.map((investigation) =>
+ viewMode === "grid" ? (
+
+ ) : (
+
+ ),
+ )}
+
+
+
+
+ {investigations
+ .filter((inv) => inv.status === "active")
+ .map((investigation) =>
+ viewMode === "grid" ? (
+
+ ) : (
+
+ ),
+ )}
+
+
+
+
+ {investigations
+ .filter((inv) => inv.status === "pending")
+ .map((investigation) =>
+ viewMode === "grid" ? (
+
+ ) : (
+
+ ),
+ )}
+
+
+
+
+ {investigations
+ .filter((inv) => inv.status === "archived")
+ .map((investigation) =>
+ viewMode === "grid" ? (
+
+ ) : (
+
+ ),
+ )}
+
+
+ >
+ )}
-
+
)
}
diff --git a/flowsint-web/src/components/app-sidebar.tsx b/flowsint-web/src/components/app-sidebar.tsx
index e8262cd..6ee858a 100644
--- a/flowsint-web/src/components/app-sidebar.tsx
+++ b/flowsint-web/src/components/app-sidebar.tsx
@@ -1,31 +1,11 @@
"use client"
-import * as React from "react"
-import {
- AudioWaveform,
- BookOpen,
- Bot,
- Command,
- FolderSearch,
- Frame,
- GalleryVerticalEnd,
- Globe,
- KeyIcon,
- Map,
- MapPin,
- Network,
- PieChart,
- Settings2,
- SettingsIcon,
- SquareTerminal,
- UserIcon,
- Users,
-} from "lucide-react"
+import type * as React from "react"
+import { usePathname } from "next/navigation"
+import Link from "next/link"
+import { FolderSearch, Globe, KeyIcon, MapPin, Network, SettingsIcon, UserIcon, Users } from "lucide-react"
-import { NavMain } from "@/components/nav-main"
-import { NavProjects } from "@/components/nav-projects"
import { NavUser } from "@/components/nav-user"
-import { TeamSwitcher } from "@/components/team-switcher"
import {
Sidebar,
SidebarContent,
@@ -39,224 +19,138 @@ import {
SidebarRail,
SidebarSeparator,
} from "@/components/ui/sidebar"
-
-// This is sample data.
-const data = {
- user: {
- name: "shadcn",
- email: "m@example.com",
- avatar: "/avatars/shadcn.jpg",
- },
- teams: [
- {
- name: "Acme Inc",
- logo: GalleryVerticalEnd,
- plan: "Enterprise",
- },
- {
- name: "Acme Corp.",
- logo: AudioWaveform,
- plan: "Startup",
- },
- {
- name: "Evil Corp.",
- logo: Command,
- plan: "Free",
- },
- ],
- navMain: [
- {
- title: "Playground",
- url: "#",
- icon: SquareTerminal,
- isActive: true,
- items: [
- {
- title: "History",
- url: "#",
- },
- {
- title: "Starred",
- url: "#",
- },
- {
- title: "Settings",
- url: "#",
- },
- ],
- },
- {
- title: "Models",
- url: "#",
- icon: Bot,
- items: [
- {
- title: "Genesis",
- url: "#",
- },
- {
- title: "Explorer",
- url: "#",
- },
- {
- title: "Quantum",
- url: "#",
- },
- ],
- },
- {
- title: "Documentation",
- url: "#",
- icon: BookOpen,
- items: [
- {
- title: "Introduction",
- url: "#",
- },
- {
- title: "Get Started",
- url: "#",
- },
- {
- title: "Tutorials",
- url: "#",
- },
- {
- title: "Changelog",
- url: "#",
- },
- ],
- },
- {
- title: "Settings",
- url: "#",
- icon: Settings2,
- items: [
- {
- title: "General",
- url: "#",
- },
- {
- title: "Team",
- url: "#",
- },
- {
- title: "Billing",
- url: "#",
- },
- {
- title: "Limits",
- url: "#",
- },
- ],
- },
- ],
- projects: [
- {
- name: "Investigations",
- url: "/dashboard",
- icon: Frame,
- },
- ],
+import { TeamSwitcher } from "./team-switcher"
+// Define navigation item type
+interface NavItem {
+ title: string
+ href: string
+ icon: React.ElementType
}
interface AppSidebarProps extends React.ComponentProps {
- user: any;
+ user: any
}
export function AppSidebar({ user, ...props }: AppSidebarProps) {
+ const pathname = usePathname()
+
+ // Main navigation items
+ const mainNavItems: NavItem[] = [
+ {
+ title: "Investigations",
+ href: "/dashboard",
+ icon: FolderSearch,
+ },
+ {
+ title: "Networks",
+ href: "/networks",
+ icon: Network,
+ },
+ {
+ title: "Entities",
+ href: "/entities",
+ icon: Users,
+ },
+ {
+ title: "OSINT sources",
+ href: "/sources",
+ icon: Globe,
+ },
+ {
+ title: "Map",
+ href: "/map",
+ icon: MapPin,
+ },
+ ]
+
+ // Team navigation items
+ const teamNavItems: NavItem[] = [
+ {
+ title: "My account",
+ href: "/profile",
+ icon: UserIcon,
+ },
+ {
+ title: "Team members",
+ href: "/team",
+ icon: Users,
+ },
+ ]
+
+ // Preferences navigation items
+ const preferencesNavItems: NavItem[] = [
+ {
+ title: "Settings",
+ href: "/dashboard/settings",
+ icon: SettingsIcon,
+ },
+ {
+ title: "API keys",
+ href: "/dashboard/keys",
+ icon: KeyIcon,
+ },
+ ]
+
+ // Function to check if a link is active
+ const isActive = (href: string) => {
+ // Exact match for dashboard
+ if (href === "/dashboard" && pathname === "/dashboard") {
+ return true
+ }
+ // For other routes, check if pathname starts with href (for nested routes)
+ return href !== "/dashboard" && pathname.startsWith(href)
+ }
+
return (
-
+
NAVIGATION
-
-
-
-
- Investigations
-
-
-
-
-
-
-
- Networks
-
-
-
-
-
-
-
- Entities
-
-
-
-
-
-
-
- OSINT sources
-
-
-
-
-
-
-
- Map
-
-
-
+ {mainNavItems.map((item) => (
+
+
+
+
+ {item.title}
+
+
+
+ ))}
TEAMS
-
-
-
-
- My account
-
-
-
-
-
-
-
- Team members
-
-
-
+ {teamNavItems.map((item) => (
+
+
+
+
+ {item.title}
+
+
+
+ ))}
Preferences
-
-
-
-
- Settings
-
-
-
-
-
-
-
- API keys
-
-
-
+ {preferencesNavItems.map((item) => (
+
+
+
+
+ {item.title}
+
+
+
+ ))}
@@ -264,6 +158,6 @@ export function AppSidebar({ user, ...props }: AppSidebarProps) {
-
+
)
-}
+}
\ No newline at end of file
diff --git a/flowsint-web/src/components/dashboard/investigation-list.tsx b/flowsint-web/src/components/dashboard/investigation-list.tsx
new file mode 100644
index 0000000..89e3db5
--- /dev/null
+++ b/flowsint-web/src/components/dashboard/investigation-list.tsx
@@ -0,0 +1,79 @@
+import { Badge } from "@/components/ui/badge"
+import { Card, CardDescription, CardTitle } from "@/components/ui/card"
+import { AlertCircle, Calendar, Users } from "lucide-react"
+import Link from "next/link"
+
+interface Investigation {
+ id: string
+ title: string
+ description: string
+ status: string
+ priority: string
+ created_at: string
+ relations_count: { count: number }
+ individuals_counts: { count: number }
+}
+
+export default function InvestigationList({ investigation }: { investigation: Investigation }) {
+ const priorityColors = {
+ high: "text-red-500",
+ medium: "text-amber-500",
+ low: "text-green-500",
+ }
+
+ const statusColors = {
+ active: "bg-green-500/10 text-green-500 border-green-500/20",
+ pending: "bg-amber-500/10 text-amber-500 border-amber-500/20",
+ archived: "bg-slate-500/10 text-slate-500 border-slate-500/20",
+ }
+
+ const statusText = {
+ active: "Actif",
+ pending: "En cours",
+ archived: "Archivé",
+ }
+
+ const formattedDate = new Date(investigation.created_at).toLocaleDateString("fr-FR", {
+ day: "numeric",
+ month: "short",
+ year: "numeric",
+ })
+
+ return (
+
+
+
+
+
+ {investigation.title}
+
+
+ {statusText[investigation.status as keyof typeof statusText]}
+
+
+
{investigation.description}
+
+
+
+
+ {formattedDate}
+
+
+
+ {investigation.individuals_counts.count} individus
+
+
+
+
+ Priorité {investigation.priority}
+
+
+
+
+
+
+ )
+}
+
diff --git a/flowsint-web/src/components/dashboard/investigation.tsx b/flowsint-web/src/components/dashboard/investigation.tsx
index b68c62c..8175a4d 100644
--- a/flowsint-web/src/components/dashboard/investigation.tsx
+++ b/flowsint-web/src/components/dashboard/investigation.tsx
@@ -94,9 +94,9 @@ export default function Investigation({ investigation }: { investigation: any })
description = "No description provided.",
status = "active",
progress = 35,
- lastUpdated = new Date().toISOString(),
+ lastUpdated = investigation.created_at ?? new Date().toISOString(),
tags = ["investigation", "osint", "pedo"],
- team = ["E", "J"],
+ team = ["E"],
priority = "medium",
entities = investigation?.["individuals_counts"]?.[0]?.count || 0,
connections = investigation?.["relations_counts"]?.[0]?.count || 0,
@@ -124,17 +124,6 @@ export default function Investigation({ investigation }: { investigation: any })
- {/*
-
- Progression
- {progress}%
-
-
-
*/}
- {/*
-
- {location}
-
*/}
diff --git a/flowsint-web/src/components/dashboard/view-toggle.tsx b/flowsint-web/src/components/dashboard/view-toggle.tsx
new file mode 100644
index 0000000..d743f1d
--- /dev/null
+++ b/flowsint-web/src/components/dashboard/view-toggle.tsx
@@ -0,0 +1,36 @@
+"use client"
+import { Button } from "@/components/ui/button"
+import { Grid3X3, List } from "lucide-react"
+
+type ViewMode = "grid" | "list"
+
+interface ViewToggleProps {
+ onViewChange: (view: ViewMode) => void
+ currentView: ViewMode
+}
+
+export default function ViewToggle({ onViewChange, currentView }: ViewToggleProps) {
+ return (
+
+
+
+
+ )
+}
+
diff --git a/flowsint-web/src/components/investigations/floating-edge.tsx b/flowsint-web/src/components/investigations/floating-edge.tsx
index 25ade3c..e5156b2 100644
--- a/flowsint-web/src/components/investigations/floating-edge.tsx
+++ b/flowsint-web/src/components/investigations/floating-edge.tsx
@@ -2,7 +2,7 @@
import { memo, useMemo } from "react"
import { getEdgeParams } from "@/lib/utils"
-import { EdgeLabelRenderer, getSmoothStepPath, getStraightPath, useInternalNode } from "@xyflow/react"
+import { EdgeLabelRenderer, getBezierPath, getSmoothStepPath, getStraightPath, useInternalNode } from "@xyflow/react"
import { useInvestigationStore } from "@/store/investigation-store"
import { Badge } from "@/components/ui/badge"
@@ -36,7 +36,7 @@ function FloatingEdge({
// Mémorisation du calcul du chemin et des coordonnées du label
const pathData = useMemo(() => {
const { sx, sy, tx, ty } = edgeParameters
- return getStraightPath({
+ return getBezierPath({
sourceX: sx,
sourceY: sy,
targetX: tx,
@@ -51,8 +51,9 @@ function FloatingEdge({
transform: `translate(-50%, -50%) translate(${pathData[1]}px,${pathData[2]}px)`,
pointerEvents: "all" as const,
opacity: style?.opacity || 1,
+ stroke: style?.stroke || "#b1b1b750",
}),
- [pathData, style?.opacity],
+ [pathData, style?.opacity, style?.stroke],
)
// Mémorisation du contenu du badge
diff --git a/flowsint-web/src/components/investigations/graph.tsx b/flowsint-web/src/components/investigations/graph.tsx
index b4ee7d2..065b888 100644
--- a/flowsint-web/src/components/investigations/graph.tsx
+++ b/flowsint-web/src/components/investigations/graph.tsx
@@ -254,7 +254,7 @@ const LayoutFlow = ({ refetch, theme }: LayoutFlowProps) => {
proOptions={{ hideAttribution: true }}
nodeTypes={nodeTypes}
// @ts-ignore
- edgeTypes={edgeTypes}
+ // edgeTypes={edgeTypes}
className="!bg-background"
>
{
- {relation.full_name[0]}
+ {relation.full_name?.[0] || "?"}
{relation.full_name}
diff --git a/flowsint-web/src/components/investigations/layout.tsx b/flowsint-web/src/components/investigations/layout.tsx
index aa7edc1..2fb41f9 100644
--- a/flowsint-web/src/components/investigations/layout.tsx
+++ b/flowsint-web/src/components/investigations/layout.tsx
@@ -34,8 +34,7 @@ const InvestigationLayout = ({
{panelOpen &&
-
-
+
diff --git a/flowsint-web/src/components/investigations/nodes/email.tsx b/flowsint-web/src/components/investigations/nodes/email.tsx
index 30e8875..7aa47da 100644
--- a/flowsint-web/src/components/investigations/nodes/email.tsx
+++ b/flowsint-web/src/components/investigations/nodes/email.tsx
@@ -101,7 +101,7 @@ function EmailNode({ data }: any) {
// Mémorisation de la poignée
const handle = useMemo(
- () => ,
+ () => ,
[],
)
diff --git a/flowsint-web/src/components/investigations/nodes/individual.tsx b/flowsint-web/src/components/investigations/nodes/individual.tsx
index 7cde1d1..6aa7de8 100644
--- a/flowsint-web/src/components/investigations/nodes/individual.tsx
+++ b/flowsint-web/src/components/investigations/nodes/individual.tsx
@@ -134,12 +134,12 @@ function Custom(props: any) {
>
),
diff --git a/flowsint-web/src/components/investigations/nodes/ip_address.tsx b/flowsint-web/src/components/investigations/nodes/ip_address.tsx
index 04a703f..535865a 100644
--- a/flowsint-web/src/components/investigations/nodes/ip_address.tsx
+++ b/flowsint-web/src/components/investigations/nodes/ip_address.tsx
@@ -77,7 +77,7 @@ function IpNode({ data }: any) {
// Mémorisation de la poignée
const handle = useMemo(
- () => ,
+ () => ,
[],
)
diff --git a/flowsint-web/src/components/investigations/nodes/minimal_individual.tsx b/flowsint-web/src/components/investigations/nodes/minimal_individual.tsx
index f25d7a3..097988e 100644
--- a/flowsint-web/src/components/investigations/nodes/minimal_individual.tsx
+++ b/flowsint-web/src/components/investigations/nodes/minimal_individual.tsx
@@ -112,12 +112,12 @@ function Custom(props: any) {
>
),
diff --git a/flowsint-web/src/components/investigations/nodes/phone.tsx b/flowsint-web/src/components/investigations/nodes/phone.tsx
index 85cc938..491d5ce 100644
--- a/flowsint-web/src/components/investigations/nodes/phone.tsx
+++ b/flowsint-web/src/components/investigations/nodes/phone.tsx
@@ -71,7 +71,7 @@ function PhoneNode({ data }: any) {
}, [settings.showNodeLabel, showContent, currentNode, data.id, data.label, settings.showCopyIcon])
const handle = useMemo(
- () => ,
+ () => ,
[],
)
const contextMenu = useMemo(
diff --git a/flowsint-web/src/components/investigations/nodes/physical_address.tsx b/flowsint-web/src/components/investigations/nodes/physical_address.tsx
index 4f30641..311dbb9 100644
--- a/flowsint-web/src/components/investigations/nodes/physical_address.tsx
+++ b/flowsint-web/src/components/investigations/nodes/physical_address.tsx
@@ -53,7 +53,7 @@ function AddressNode({ data }: any) {
}, [currentNode, data.id, data.label, settings.showCopyIcon])
const handle = useMemo(
- () => ,
+ () => ,
[],
)
const contextMenu = useMemo(
diff --git a/flowsint-web/src/components/investigations/nodes/social.tsx b/flowsint-web/src/components/investigations/nodes/social.tsx
index 688ed20..461c9d9 100644
--- a/flowsint-web/src/components/investigations/nodes/social.tsx
+++ b/flowsint-web/src/components/investigations/nodes/social.tsx
@@ -97,7 +97,7 @@ function SocialNode({ data }: any) {
// Mémorisation de la poignée
const handle = useMemo(
- () => ,
+ () => ,
[],
)
diff --git a/flowsint-web/src/components/logo.tsx b/flowsint-web/src/components/logo.tsx
index 16833ac..2a92a9e 100644
--- a/flowsint-web/src/components/logo.tsx
+++ b/flowsint-web/src/components/logo.tsx
@@ -1,14 +1,8 @@
import React from 'react'
import { HomeIcon } from 'lucide-react'
-import Link from 'next/link'
-import { Button } from './ui/button'
const Logo = () => {
return (
-
-
-
+
)
}
diff --git a/flowsint-web/src/components/team-switcher.tsx b/flowsint-web/src/components/team-switcher.tsx
index 88fabfa..4ca40ca 100644
--- a/flowsint-web/src/components/team-switcher.tsx
+++ b/flowsint-web/src/components/team-switcher.tsx
@@ -18,72 +18,20 @@ import {
SidebarMenuItem,
useSidebar,
} from "@/components/ui/sidebar"
+import Logo from "./logo"
+import Link from "next/link"
-export function TeamSwitcher({
- teams,
-}: {
- teams: {
- name: string
- logo: React.ElementType
- plan: string
- }[]
-}) {
- const { isMobile } = useSidebar()
- const [activeTeam, setActiveTeam] = React.useState(teams[0])
+export function TeamSwitcher() {
return (
-
-
-
-
-
-
-
-
- {activeTeam.name}
-
- {activeTeam.plan}
-
-
-
-
-
-
- Teams
-
- {teams.map((team, index) => (
- setActiveTeam(team)}
- className="gap-2 p-2"
- >
-
-
-
- {team.name}
- ⌘{index + 1}
-
- ))}
-
-
-
- Add team
-
-
-
-
-
+
+
+
)
}
diff --git a/flowsint-web/src/components/ui/avatar.tsx b/flowsint-web/src/components/ui/avatar.tsx
index 71e428b..3c67811 100644
--- a/flowsint-web/src/components/ui/avatar.tsx
+++ b/flowsint-web/src/components/ui/avatar.tsx
@@ -28,7 +28,7 @@ function AvatarImage({
return (
)
diff --git a/flowsint-web/src/store/flow-store.ts b/flowsint-web/src/store/flow-store.ts
index f4a1de2..1f55dd9 100644
--- a/flowsint-web/src/store/flow-store.ts
+++ b/flowsint-web/src/store/flow-store.ts
@@ -128,7 +128,7 @@ const createStore = (initialNodes: AppNode[] = [], initialEdges: Edge[] = []) =>
set({
edges: get().edges.map(edge => ({
...edge,
- animated: false, // Désactive l'animation
+ animated: false,
style: {
...edge.style,
stroke: "#b1b1b750",
diff --git a/flowsint-web/styles/globals.css b/flowsint-web/styles/globals.css
index 044b37b..bda8e95 100644
--- a/flowsint-web/styles/globals.css
+++ b/flowsint-web/styles/globals.css
@@ -15,7 +15,7 @@
--card-foreground: hsl(0 0% 3.9%);
--popover: hsl(0 0% 100%);
--popover-foreground: hsl(0 0% 3.9%);
- --primary: hsl(258.3 89.5% 66.3%);
+ --primary: hsl(24.6 95% 53.1%);
--primary-foreground: hsl(0 0% 98%);
--secondary: hsl(0 0% 96.1%);
--secondary-foreground: hsl(0 0% 9%);
@@ -28,7 +28,7 @@
--border: hsla(0, 0%, 90%, 0.807);
--input: hsl(0 0% 89.8%);
--ring: hsl(0 0% 3.9%);
- --chart-1: hsl(258.3 89.5% 66.3%);
+ --chart-1: hsl(24.6 95% 53.1%);
--chart-2: hsl(173 58% 39%);
--chart-3: hsl(197 37% 24%);
--chart-4: hsl(43 74% 66%);
@@ -43,7 +43,7 @@
--sidebar-accent: hsl(240 4.8% 95.9%);
--sidebar-accent-foreground: hsl(240 5.9% 10%);
--sidebar-border: hsl(220 13% 91%);
- --sidebar-ring: hsl(258.3 89.5% 66.3%);
+ --sidebar-ring: hsl(24.6 95% 53.1%);
}
.dark {
@@ -53,7 +53,7 @@
--card-foreground: hsl(0 0% 98%);
--popover: hsl(240 0% 9.9%);
--popover-foreground: hsl(0 0% 98%);
- --primary: hsl(258.3 89.5% 66.3%);
+ --primary: hsl(24.6 95% 53.1%);
--primary-foreground: hsl(0, 0%, 100%);
--secondary: hsl(0 0% 14.9%);
--secondary-foreground: hsl(0 0% 98%);
@@ -66,14 +66,14 @@
--border: hsla(0, 0%, 23%, 0.67);
--input: hsl(0 0% 14.9%);
--ring: hsl(0 0% 83.1%);
- --chart-1: hsl(258.3 89.5% 66.3%);
+ --chart-1: hsl(24.6 95% 53.1%);
--chart-2: hsl(160 60% 45%);
--chart-3: hsl(30 80% 55%);
- --chart-4: hsl(280 65% 60%);
+ --chart-4: hsl(24.6 95% 53.1%);
--chart-5: hsl(340 75% 55%);
--sidebar: hsl(240 0% 9.9%);
--sidebar-foreground: hsl(240 4.8% 95.9%);
- --sidebar-primary: hsl(262.1 83.3% 57.8%);
+ --sidebar-primary: hsl(24.6 95% 53.1%);
--sidebar-primary-foreground: hsl(0 0% 100%);
--sidebar-accent: hsl(240 3.7% 15.9%);
--sidebar-accent-foreground: hsl(240 4.8% 95.9%);