From f17d945c75574998ab7d08af00906f5944b7d00a Mon Sep 17 00:00:00 2001 From: jerlendds Date: Mon, 1 Jan 2024 03:23:12 -0700 Subject: [PATCH] Rework theme package.json, logo-og-alter.svg, logo-og.svg, logo.bak.svg, logo.svg, buttons.css, charts.css, global.css, layouts.css, AppLayoutSidebar.tsx, index.tsx, PublicNavbar.tsx, AppLayout.tsx, Subpanel.tsx, subpanel.module.css, index.module.css, index.tsx, EntityOptions.tsx, index.tsx, LandingPage.tsx, and yarn.lock --- frontend/package.json | 1 + frontend/src/assets/images/logo-og-alter.svg | 230 ++++++++++++++++++ frontend/src/assets/images/logo-og.svg | 221 +++++++++++++++++ frontend/src/assets/images/logo.bak.svg | 150 ++++++++++++ frontend/src/assets/images/logo.svg | 2 +- frontend/src/assets/styles/buttons.css | 10 +- frontend/src/assets/styles/charts.css | 6 + frontend/src/assets/styles/global.css | 17 +- frontend/src/assets/styles/layouts.css | 12 +- frontend/src/components/AppLayoutSidebar.tsx | 60 ++--- frontend/src/components/Grid/index.tsx | 2 +- frontend/src/components/PublicNavbar.tsx | 29 ++- frontend/src/routes/AppLayout.tsx | 2 +- .../routes/dashboard/_components/Subpanel.tsx | 12 +- .../dashboard/_components/subpanel.module.css | 26 +- .../src/routes/dashboard/index.module.css | 36 +-- frontend/src/routes/dashboard/index.tsx | 9 +- .../_components/EntityOptions.tsx | 4 +- frontend/src/routes/graph-inquiry/index.tsx | 2 +- frontend/src/routes/public/LandingPage.tsx | 121 +++++---- frontend/yarn.lock | 25 ++ 21 files changed, 824 insertions(+), 153 deletions(-) create mode 100644 frontend/src/assets/images/logo-og-alter.svg create mode 100644 frontend/src/assets/images/logo-og.svg create mode 100755 frontend/src/assets/images/logo.bak.svg mode change 100755 => 100644 frontend/src/assets/images/logo.svg diff --git a/frontend/package.json b/frontend/package.json index 523e979..cac43b0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,6 +13,7 @@ "@reactour/tour": "^3.6.1", "@reduxjs/toolkit": "^1.9.1", "@tabler/icons-react": "^2.42.0", + "@tarii/3d-earth": "^1.0.3", "@uiw/codemirror-theme-aura": "^4.21.20", "@uiw/react-codemirror": "^4.21.20", "casdoor-js-sdk": "^0.11.0", diff --git a/frontend/src/assets/images/logo-og-alter.svg b/frontend/src/assets/images/logo-og-alter.svg new file mode 100644 index 0000000..0e26756 --- /dev/null +++ b/frontend/src/assets/images/logo-og-alter.svg @@ -0,0 +1,230 @@ + +icGRAPHicGRAPH diff --git a/frontend/src/assets/images/logo-og.svg b/frontend/src/assets/images/logo-og.svg new file mode 100644 index 0000000..6809342 --- /dev/null +++ b/frontend/src/assets/images/logo-og.svg @@ -0,0 +1,221 @@ + +icGRAPHicGRAPH diff --git a/frontend/src/assets/images/logo.bak.svg b/frontend/src/assets/images/logo.bak.svg new file mode 100755 index 0000000..e2183f0 --- /dev/null +++ b/frontend/src/assets/images/logo.bak.svg @@ -0,0 +1,150 @@ + +icGRAPH diff --git a/frontend/src/assets/images/logo.svg b/frontend/src/assets/images/logo.svg old mode 100755 new mode 100644 index 2ff7e35..7699348 --- a/frontend/src/assets/images/logo.svg +++ b/frontend/src/assets/images/logo.svg @@ -1 +1 @@ - +icGRAPHicGRAPH \ No newline at end of file diff --git a/frontend/src/assets/styles/buttons.css b/frontend/src/assets/styles/buttons.css index dc123b7..e1ce182 100644 --- a/frontend/src/assets/styles/buttons.css +++ b/frontend/src/assets/styles/buttons.css @@ -1,17 +1,21 @@ .btn-primary { - @apply ring-1 ring-primary-300/95 whitespace-nowrap hover:ring-primary-200 text-left text-sm font-semibold text-primary-300 hover:text-primary-100/90 flex items-center border hover:ring-inset border-primary-300/95 hover:border-primary-200 py-2 px-3 rounded-md hover:shadow justify-center transition-colors duration-100 ease-in-out; + @apply ring-1 ring-primary-300/95 whitespace-nowrap hover:ring-primary-200 text-left text-sm font-semibold hover:text-primary-200/95 text-slate-300/70 scale-100 hover:scale-[99%] flex items-center border hover:ring-inset border-primary-300/95 hover:border-primary-200 py-2 px-5 font-display rounded-md hover:shadow justify-center transition-all duration-100 ease-in-out; } +.btn-primary-solid { + @apply ring-1 ring-primary-300 hover:ring-primary-300/95 whitespace-nowrap text-left text-sm font-semibold hover:text-slate-200/90 flex scale-100 hover:scale-[99%] items-center hover:ring-inset bg-primary-300/95 hover:bg-primary-400 py-2 px-5 font-display rounded-md hover:shadow justify-center transition-all duration-100 ease-in-out text-slate-300/80 hover:text-slate-200 +} + +.btn-primary-solid svg, .btn-primary svg, .btn-danger svg { @apply ml-5 w-5 h-5 } .btn-danger { - @apply ring-1 hover:shadow ring-danger-500/70 hover:ring-danger-500 text-left text-sm font-semibold text-danger-500/70 hover:text-danger-500 flex items-center border hover:ring-inset border-danger-500/70 hover:border-danger-500 py-2 px-3 rounded-md justify-center transition-colors duration-100 ease-in-out + @apply ring-1 hover:shadow ring-danger-500/70 hover:ring-danger-500 text-left text-sm font-semibold text-danger-500/70 hover:text-danger-500 scale-100 hover:scale-[99%] flex items-center border hover:ring-inset border-danger-500/70 hover:border-danger-500 py-2 px-3 rounded-md font-display justify-center transition-colors duration-100 ease-in-out } - .btn-form { @apply flex px-2 py-2 hover:ring-2 focus:ring-1 focus:ring-inset outline-none items-center text-slate-400 hover:text-slate-200 rounded-md ring-1 } diff --git a/frontend/src/assets/styles/charts.css b/frontend/src/assets/styles/charts.css index ad19804..7c1b515 100644 --- a/frontend/src/assets/styles/charts.css +++ b/frontend/src/assets/styles/charts.css @@ -1,6 +1,9 @@ .bar-hz .ct-label { @apply text-slate-400 font-display } +.bar-hz { + @apply overflow-y-scroll flex flex-col +} .bar-hz .ct-series-a .ct-bar { @apply stroke-sky-600 @@ -33,4 +36,7 @@ } .bar-hz .ct-series-j .ct-bar { @apply stroke-slate-200 +} + +.ct-label.ct-vertical.ct-end { } \ No newline at end of file diff --git a/frontend/src/assets/styles/global.css b/frontend/src/assets/styles/global.css index 44f212e..78f1712 100755 --- a/frontend/src/assets/styles/global.css +++ b/frontend/src/assets/styles/global.css @@ -50,20 +50,21 @@ button { ::selection { @apply text-slate-200 bg-radiance-500/50 } - +/* 2d6cffb0 */ html { background-size: 100% 100%; background-position: 0px 0px,0px 0px,0px 0px,0px 0px,0px 0px; -background-image: radial-gradient(49% 81% at 45% 47%, rgba(157, 45, 255, 0.689) 0%, #073AFF00 100%),radial-gradient(113% 91% at 17% -2%, rgba(7, 162, 139, 0.482) 1%, #ff000000 99%),radial-gradient(142% 91% at 83% 7%, rgb(50, 13, 143) 1%, #ff00ea00 99%),radial-gradient(142% 91% at -6% 74%, rgba(0, 42, 255, 0.441) 1%, #FF000000 99%),radial-gradient(142% 91% at 111% 84%, rgb(0, 64, 255) 25%, rgb(69, 34, 150) 95%); +background-image: radial-gradient(49% 81% at 45% 47%, #0048ffcb 0%, #073AFF00 100%),radial-gradient(113% 91% at 17% -2%, #151a3eaa 1%, #0015ffcb 99%),radial-gradient(142% 91% at 83% 7%, #0d8d8f 1%, #2b00ffda 99%),radial-gradient(142% 91% at -6% 74%, #002aff70 1%, #FF000000 99%),radial-gradient(142% 91% at 111% 84%, #0040ff 25%, #452296 95%); } /* https://gradienta.io/editor */ body { - @apply min-h-screen from-mirage-800/90 to-mirage-700/50 bg-gradient-to-br; + @apply min-h-screen ; } #root { - @apply flex flex-col min-h-screen relative bg-mirage-800/60 + @apply flex flex-col min-h-screen relative bg-mirage-800/60 from-mirage-800/80 to-mirage-800/50 bg-gradient-to-br ; + /* color: #066b74c1; */ } svg.icon { @@ -91,23 +92,23 @@ figcaption { Works on Chrome, Edge, and Safari */ *::-webkit-scrollbar { - width: 8px; + width: 7px; border-radius: none; } *::-webkit-scrollbar-track { background: #19233433; - width: 8px; + width: 7px; border-radius: none; } *::-webkit-scrollbar-thumb { background-color: #1a1f2793; border-radius: 2px; - border-right: 10px solid #1b243a84; + border-right: 9px solid #1b243a84; } * { - scrollbar-width: 8px; + scrollbar-width: 7px; scrollbar-color: #1d222f62 #202d4333; } diff --git a/frontend/src/assets/styles/layouts.css b/frontend/src/assets/styles/layouts.css index 9415e9d..ee9b6f2 100755 --- a/frontend/src/assets/styles/layouts.css +++ b/frontend/src/assets/styles/layouts.css @@ -1,23 +1,23 @@ .sidebar-link { - @apply flex items-center transition-colors duration-200 ease-in-out px-2 mx-2 my-1 py-2 text-base font-sans font-medium rounded-md text-slate-600 hover:bg-mirage-100/20 hover:text-slate-500 border hover:border-mirage-400/60 border-transparent hover:from-mirage-500/60 hover:to-mirage-500/40 hover:bg-gradient-to-r; + @apply flex items-center duration-200 ease-in-out ml-2 mr-0.5 my-1 py-2 text-base font-medium rounded-md border hover:border-mirage-400/60 border-transparent hover:ring-slate-800/20 text-slate-400/30 hover:text-slate-400/60 shadow hover:translate-x-px z-50 transition-all focus:text-slate-400/40 -translate-x-px ring-slate-900/20 ring-1 ring-inset from-mirage-400/10 pl-3 to-mirage-300/5 bg-gradient-to-tl from-10% pr-1.5 hover:from-mirage-300/20 hover:to-mirage-300/10 hover:bg-gradient-to-tl font-display; } .sidebar-link.active { - @apply to-primary-300/30 from-primary-300/40 from-60% border border-mirage-400/60 bg-gradient-to-br shadow-sm bg-mirage-500 text-slate-300 ; + @apply hover:-translate-x-px shadow -translate-x-px ring-primary-400/20 border-primary-400/40 ring-1 ring-inset from-mirage-300/20 to-mirage-300/10 bg-gradient-to-tl from-10% hover:from-mirage-300/20 hover:to-mirage-300/10 hover:bg-gradient-to-tl text-slate-300/80 ; } .sidebar-link.active button { - @apply bg-mirage-500 hover:bg-mirage-600 border-mirage-300/40 ; + @apply bg-mirage-500 border-mirage-300/40 ; } .sidebar-link.active svg { - @apply text-slate-400 + @apply text-primary-400 } .sidebar-link button { - @apply border border-mirage-400/40 transition-colors duration-200 hover:border-mirage-300 bg-mirage-500 + @apply border border-mirage-400/40 transition-colors duration-200 from-10% hover:from-mirage-300/20 hover:to-mirage-300/10 hover:bg-gradient-to-tl } .sidebar-link button svg { - @apply text-slate-400 + @apply text-slate-400 } .sidebar-link button:hover svg { @apply text-slate-300; diff --git a/frontend/src/components/AppLayoutSidebar.tsx b/frontend/src/components/AppLayoutSidebar.tsx index 93e2f16..6a89c62 100644 --- a/frontend/src/components/AppLayoutSidebar.tsx +++ b/frontend/src/components/AppLayoutSidebar.tsx @@ -4,6 +4,7 @@ import { Link, NavLink } from "react-router-dom"; import HamburgerMenu from "./HamburgerMenu"; import { toast } from "react-toastify"; import { CogIcon, DocumentMagnifyingGlassIcon, FolderOpenIcon, PlusIcon, HomeIcon } from "@heroicons/react/24/outline"; +import { Icon } from "./Icons"; const navigation = [ @@ -22,7 +23,7 @@ export default function AppLayoutSidebar({ showSidebar, toggleSidebar, setShowIn return (
@@ -53,7 +54,7 @@ export default function AppLayoutSidebar({ showSidebar, toggleSidebar, setShowIn classNames( isActive && "active", "sidebar-link", - !showSidebar && "mx-0" + !showSidebar && "mx-0 " ) } > @@ -63,41 +64,13 @@ export default function AppLayoutSidebar({ showSidebar, toggleSidebar, setShowIn location.pathname.includes(item.to) ? "text-slate-500" : "", - "mr-3 flex-shrink-0 h-6 w-6 duration-100", + "mr-2 flex-shrink-0 h-6 w-6 duration-100", showSidebar ? "translate-x-0" - : "translate-x-[13.15rem]" + : "translate-x-[13.2rem] -ml-2" )} - aria-hidden="true" /> {item.name} - {item.name === "Workspaces *" && ( - - )} ))} + + + Discord +
diff --git a/frontend/src/components/Grid/index.tsx b/frontend/src/components/Grid/index.tsx index dd7d630..78174a0 100644 --- a/frontend/src/components/Grid/index.tsx +++ b/frontend/src/components/Grid/index.tsx @@ -27,7 +27,7 @@ export function GridPanel({ return ( <>
  1. diff --git a/frontend/src/components/PublicNavbar.tsx b/frontend/src/components/PublicNavbar.tsx index 4ebbee2..60c64ef 100755 --- a/frontend/src/components/PublicNavbar.tsx +++ b/frontend/src/components/PublicNavbar.tsx @@ -5,7 +5,7 @@ import { Bars3Icon, BellIcon, XMarkIcon } from '@heroicons/react/24/outline'; import classNames from 'classnames'; import OSINTBuddyLogo from '@assets/images/logo.svg'; import { Listbox } from '@headlessui/react' -import { GithubIcon } from './Icons'; +import { GithubIcon, Icon } from './Icons'; import Logo from '@images/logo.svg'; const themes = [ @@ -60,15 +60,15 @@ export function ThemeSelector(props: any) { } else { setSelectedTheme( // @ts-ignore - themes.find((theme) =>theme.value === document.documentElement.getAttribute('data-theme'))) + themes.find((theme) => theme.value === document.documentElement.getAttribute('data-theme'))) } }, [selectedTheme]) useEffect(() => { let handler = () => - + setSelectedTheme( - // @ts-ignore + // @ts-ignore themes.find((theme) => theme.value === (window.localStorage.theme ?? 'system'))) window.addEventListener('storage', handler) @@ -147,29 +147,38 @@ export default function PublicNavbar(): React.ReactElement { }, []) return ( -
    + + + {/* @todo add mobile navigation */}
    - +
    {/* */}
    +
    +
    ); diff --git a/frontend/src/routes/AppLayout.tsx b/frontend/src/routes/AppLayout.tsx index 491c33b..22a6304 100755 --- a/frontend/src/routes/AppLayout.tsx +++ b/frontend/src/routes/AppLayout.tsx @@ -36,7 +36,7 @@ export default function AppLayout() { showSidebar ? "translate-x-64" : "translate-x-12" )} > -
    +
diff --git a/frontend/src/routes/dashboard/_components/Subpanel.tsx b/frontend/src/routes/dashboard/_components/Subpanel.tsx index 761b605..669a030 100644 --- a/frontend/src/routes/dashboard/_components/Subpanel.tsx +++ b/frontend/src/routes/dashboard/_components/Subpanel.tsx @@ -7,18 +7,18 @@ import { FetchBaseQueryError } from "@reduxjs/toolkit/query" import { SerializedError } from "@reduxjs/toolkit" -const MAX_DESCRIPTION_LENGTH = 63 -const MAX_LABEL_LENGTH = 31 +const MAX_DESCRIPTION_LENGTH = 79 +const MAX_LABEL_LENGTH = 32 export function GraphLoaderCard() { return ( <>
-
+
-
-
-
+
+
+
diff --git a/frontend/src/routes/dashboard/_components/subpanel.module.css b/frontend/src/routes/dashboard/_components/subpanel.module.css index c6ae936..f6c41b1 100644 --- a/frontend/src/routes/dashboard/_components/subpanel.module.css +++ b/frontend/src/routes/dashboard/_components/subpanel.module.css @@ -1,23 +1,25 @@ .subpanel-wrapper { - @apply flex flex-col justify-between relative flex-shrink h-full pr-2; + @apply flex flex-col justify-between relative flex-shrink ; } .subpanel-section { - @apply py-1 px-1 flex flex-col; + @apply py-1 px-1.5 flex flex-col } .subpanel > p { @apply text-sm py-4 font-medium text-slate-500 focus:outline-none cursor-pointer px-2 } .subpanel-header { - @apply flex pb-1 items-center hover:border-mirage-400/60 border-b transition-colors duration-100 ease-in-out border-transparent + @apply flex py-0.5 pb-1 items-center hover:border-primary-300/40 border-mirage-400/60 border-b transition-colors duration-300 ease-in-out } .subpanel-header p { - @apply text-sm px-1 font-black leading-3 text-slate-600 focus:outline-none cursor-pointer + @apply text-sm px-1 font-medium font-display leading-3 text-slate-600 focus:outline-none cursor-pointer } .subpanel-header svg { @apply h-5 w-5 mr-2 hover:rotate-3 origin-center text-slate-600 ml-auto transform focus:outline-none cursor-pointer } - +.subpanel-header:hover svg { + @apply border-primary-300/40 +} .show-header-icon-true { @apply !-rotate-180 } @@ -27,32 +29,34 @@ } .subpanel-link { - @apply mb-1 focus:outline-none bg-transparent border rounded-md border-transparent hover:to-mirage-400/20 hover:bg-gradient-to-bl hover:border-mirage-700/70 hover:translate-x-px z-50 transition-transform hover:from-mirage-400/10 text-slate-400 hover:text-slate-400/20 focus:bg-mirage-500/60 focus:text-slate-400/40 w-full flex items-center -translate-x-px + @apply mt-1 focus:outline-none bg-transparent border rounded-md border-transparent + hover:ring-slate-700/20 hover:to-mirage-400/30 shadow hover:bg-gradient-to-tl from-10% hover:translate-x-px z-50 transition-transform hover:from-mirage-400/10 text-slate-400 hover:text-slate-400/20 focus:text-slate-400/40 w-full flex items-center -translate-x-px } + .subpanel-link div:hover .subpanel-label { @apply !text-slate-400/95 } .subpanel-link-true { - @apply !border-mirage-300/30 from-mirage-400/10 to-mirage-400/30 hover:from-mirage-400/10 hover:to-mirage-400/30 bg-gradient-to-br hover:bg-gradient-to-br hover:translate-x-0 shadow translate-x-0 + @apply hover:translate-x-0 shadow translate-x-0 ring-slate-600/10 ring-1 ring-inset from-mirage-300/20 to-mirage-300/10 bg-gradient-to-tl from-10% hover:from-mirage-300/20 hover:to-mirage-300/10 hover:bg-gradient-to-tl } .subpanel-link div { - @apply flex w-full p-3 flex-col items-start space-y-1.5 text-slate-400/30 hover:text-slate-400/60 + @apply flex w-full p-3 pr-0 flex-col items-start space-y-1.5 text-slate-400/30 hover:text-slate-400/60 } svg.link-icon { - @apply bg-mirage-500/80 border-transparent border ml-auto rounded-md p-1 h-8 w-8 transition-colors duration-150 hover:text-primary-300 hover:border-mirage-300/20 mr-2 + @apply bg-slate-800/20 border-transparent border ml-auto rounded p-1 h-8 w-8 transition-colors duration-150 hover:text-primary-300 hover:border-mirage-300/20 } svg.link-icon-true { - @apply !text-primary-300 hover:!text-primary-200; + @apply !text-primary-300 hover:!text-primary-200 !bg-transparent; } svg.link-icon-false { @apply text-slate-600 } .link-active-true { - @apply !bg-transparent hover:!bg-slate-900 ; + @apply !bg-transparent hover:!bg-slate-800/40 transition-colors duration-200 ; } .subpanel-label { diff --git a/frontend/src/routes/dashboard/index.module.css b/frontend/src/routes/dashboard/index.module.css index db0d30c..43ff606 100644 --- a/frontend/src/routes/dashboard/index.module.css +++ b/frontend/src/routes/dashboard/index.module.css @@ -1,51 +1,57 @@ /* wraps the sidebar with search and the main view */ .sidebar-wrapper { - @apply rounded py-px !min-w-[20rem] max-w-[20rem] flex-col h-screen pt-3.5 border-r-[3px] border-mirage-700/70 from-mirage-600/20 to-mirage-500/20 bg-gradient-to-br pl-2 justify-between shadow-xl flex relative w-full overflow-y-scroll + @apply rounded py-px !min-w-[18.75rem] max-w-[18.75rem] flex-col h-[99vh] pt-3.5 border-r-2 border-mirage-500/60 from-mirage-600/20 to-mirage-500/20 bg-gradient-to-br justify-between shadow-xl flex relative w-full } .search-container { - @apply flex items-center relative border transition-colors duration-200 ease-out from-mirage-400/60 to-mirage-300/20 bg-gradient-to-tl rounded border-mirage-300/30 hover:border-mirage-300 mb-2 mr-2 ml-1 + @apply flex mx-1.5 items-center relative border text-slate-600 hover:text-slate-300/40 focus:text-slate-300/40 transition-all duration-200 ease-out from-mirage-400/60 to-mirage-300/20 bg-gradient-to-tl rounded border-mirage-300/50 hover:border-mirage-300 mb-1.5 } .search-container:active, .search-container:focus-within { @apply border-primary/50 to-mirage-400/10 from-mirage-400/20 bg-gradient-to-l } .search-container input { - @apply py-1.5 pl-1.5 w-full focus:outline-none relative text-sm font-medium text-slate-400 bg-transparent placeholder-slate-600 + @apply py-1.5 pl-1.5 w-full focus:outline-none relative text-sm font-medium text-slate-400 bg-transparent placeholder-slate-600 } .search-container svg { - @apply w-5 h-5 text-slate-700 ml-2 + @apply w-5 h-5 text-inherit ml-2 } .dashboard-tabs { - @apply overflow-y-hidden flex-grow h-full pb-12 + @apply overflow-y-hidden flex-grow } .tabs-list { - @apply flex justify-between w-full rounded p-1 ; + @apply flex justify-between rounded pb-2 pt-0.5 items-center; } .tab { - @apply focus:outline-none transition-colors duration-200 ease-in-out flex items-center justify-center py-2.5 px-0 font-display rounded min-w-[6rem] text-sm leading-none z-20 + @apply focus:outline-none transition-colors duration-200 ease-in-out flex items-center justify-center pt-2.5 px-0 mx-0 rounded min-w-[6.34rem] text-sm leading-none z-[1] font-display flex-grow hover:pointer-events-auto +} +.tab span, +.tab-false span, +.tab-true span { + @apply min-w-min } .tab-true { - @apply text-slate-300 ; + @apply text-slate-300/90 pointer-events-none; } .tab-false { - @apply text-slate-600 hover:text-slate-500; + @apply text-slate-600 hover:text-slate-500 ; } .tab-slider { - @apply from-primary-300/40 to-primary-300/60 border border-mirage-400/60 bg-gradient-to-br h-[34px] translate-x-0 w-[90px] absolute transition-transform duration-200 ease-in-out rounded + @apply min-h-[34px] mr-auto min-w-[90px] left-0 relative pointer-events-auto z-[0] top-1 hover:scale-x-[100%] transition-all duration-200 ease-in-out rounded scale-x-[101%] from-primary-300/40 to-primary-300/60 border border-mirage-400/60 bg-gradient-to-br } .graph-tab[aria-selected="true"] ~ div { - @apply translate-x-[0px] w-[98px] + @apply -translate-x-[298px] w-[112px] cursor-pointer } .entities-tab[aria-selected="true"] ~ div { - @apply translate-x-[101px] w-[100px] + @apply -translate-x-[197px] scale-x-[110%] cursor-pointer } .market-tab[aria-selected="true"] ~ div { - @apply translate-x-[205px] w-[93px] + @apply -translate-x-[95px] scale-[100.5%] cursor-pointer } .tab-panel { - @apply w-full relative; -} \ No newline at end of file + @apply w-full relative overflow-y-scroll; +} + diff --git a/frontend/src/routes/dashboard/index.tsx b/frontend/src/routes/dashboard/index.tsx index 4a0e3ff..3e1e26c 100755 --- a/frontend/src/routes/dashboard/index.tsx +++ b/frontend/src/routes/dashboard/index.tsx @@ -110,6 +110,7 @@ export default function DashboardPage() { Graphs @@ -120,8 +121,11 @@ export default function DashboardPage() { - Entities + + Entities + )} @@ -130,6 +134,7 @@ export default function DashboardPage() { Market @@ -137,7 +142,7 @@ export default function DashboardPage() {
-
+
await refetchGraphs()} diff --git a/frontend/src/routes/graph-inquiry/_components/EntityOptions.tsx b/frontend/src/routes/graph-inquiry/_components/EntityOptions.tsx index 01fca44..6469c99 100755 --- a/frontend/src/routes/graph-inquiry/_components/EntityOptions.tsx +++ b/frontend/src/routes/graph-inquiry/_components/EntityOptions.tsx @@ -68,7 +68,7 @@ export function EntityOption({ entity, onDragStart }: JSONObject) {
onDragStart(event, entity.label)} - className='flex min-w-[12rem] p-2 justify-between overflow-x-hidden from-mirage-300/10 to-mirage-300/20 bg-gradient-to-br hover:from-mirage-500/20 hover:from-40% hover:to-mirage-300/30 border-mirage-300/20 border max-h-[160px] border-l-primary-300/50 hover:border-primary-400 transition-colors duration-100 ease-out border-l-[6px] hover:border-l-[6px] rounded-md w-full' + className='flex min-w-[12rem] p-2 justify-between overflow-x-hidden from-mirage-300/10 to-mirage-300/20 bg-gradient-to-br hover:from-mirage-300/20 hover:from-40% hover:to-mirage-300/10 border-mirage-300/20 border max-h-[160px] border-l-primary-300/50 hover:border-primary-400 transition-colors duration-100 ease-out border-l-[6px] hover:border-l-[6px] rounded-md w-full' >
@@ -196,7 +196,7 @@ export default function EntityOptions({ positionMode, activeGraph, setElkLayout, }} >
diff --git a/frontend/src/routes/graph-inquiry/index.tsx b/frontend/src/routes/graph-inquiry/index.tsx index 290a45f..950b650 100755 --- a/frontend/src/routes/graph-inquiry/index.tsx +++ b/frontend/src/routes/graph-inquiry/index.tsx @@ -402,7 +402,7 @@ export default function GraphInquiry({ }: GraphInquiryProps) { activeGraph={activeGraph} setElkLayout={setElkLayout} /> -
+
(null) + const atfQuote = QUOTES[Math.floor(Math.random() * QUOTES.length)] + useEffectOnce(() => { + if (earthRef?.current) { + const earth = new Earth({ + parent: earthRef.current as HTMLDivElement, + rotateSpeed: 0.0005, + pointColor: 0x242E4D, + pointHighlight: 0x394778, + fogColor: 0x0d738f, + lineHighlightSize: 10, + minLineSpacing: 30, + maxLineSpacing: 1000, + coords: [ + 39.804935, 114.973428, + 10.106263, 39.144935, + 41.997906, -1.405880, + 39.897687, -122.714527, + 9.171568, -66.633754, + -35.15, 149.08, + -6.09, 106.49 + ], + pointFlashSpeed: 0.0001, + pointRadius: 0.5, + pointSegments: 5, + }) + + earth.randomLinkAnimator() + earth.start() + } + + }) return ( <> -
-
-
-
- -
-

- Open Source Intelligence +

+
+
+
+
+

+ Elevate Your Research;
Unlock the Webs Wisdom

-

- Fetch data from different sources and returns the results as visual entities that you can explore. +

+ Stay informed with critical insights from the web. We're on a mission to democratize access to data collection and analysis tools, uniting experts, journalists, and other developers with powerful intelligence tools. Reveal the connections that shape our world.

-
+
-
-
- -
-
- - -
-
-
+
-
-
-
-
-
-
-

Getting started

-

- Welcome to OSINTBuddy -

-
-
-
v0.1.0
-
Hi, I'm the creator of OSINTBuddy. Want a chance at having your feature ideas prioritized? Email oss@osintbuddy.com with the subject: Early Access Request. The first 50 people to reach out will have their suggestions put up for vote on the osintbuddy website so the community can decide what gets built first! -
. -
-
- -
+
+
+
+
+

Welcome to ICgraph

+

+ {atfQuote} +

+
+ +
Please email oss@icgraph.com to share ideas, bugs, or security concerns +
.
diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 999ca5b..b5bd48f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2544,6 +2544,14 @@ lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" +"@tarii/3d-earth@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tarii/3d-earth/-/3d-earth-1.0.3.tgz#87c0e938c4f31d9c29741d525ad73eca09591c67" + integrity sha512-TxdMOt/21GxALLXqtGo0l3sjm1+9TCh5YgUqzRSz+O+PQKl6sQW5ukiCAPxK3QAjcqxGxZDIOW1uRpHj/hpaEw== + dependencies: + "@types/three" "^0.103.2" + three "^0.107.0" + "@testing-library/dom@^8.5.0": version "8.20.1" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f" @@ -3223,6 +3231,13 @@ dependencies: "@types/jest" "*" +"@types/three@^0.103.2": + version "0.103.2" + resolved "https://registry.yarnpkg.com/@types/three/-/three-0.103.2.tgz#f7d49130001c551941a0ded757def810579aafc4" + integrity sha512-zhtf0Qs5wLJpIn1+VWCpzSgpKayj/GSWZ6woiuz09FW59KEDeLpnBkYz6lbblVpRmGdlnG8nd0unaASshOvcXw== + dependencies: + three "*" + "@types/trusted-types@^2.0.2": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" @@ -11583,6 +11598,16 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +three@*: + version "0.160.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.160.0.tgz#cd1e4dbd01aee0719280a9086d75545db52b7a8f" + integrity sha512-DLU8lc0zNIPkM7rH5/e1Ks1Z8tWCGRq6g8mPowdDJpw1CFBJMU7UoJjC6PefXW7z//SSl0b2+GCw14LB+uDhng== + +three@^0.107.0: + version "0.107.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.107.0.tgz#0c862c348d61bd3f22058e01f5e771c1294315a1" + integrity sha512-vqbKJRLBEviPVa7poEzXocobicwxzsctr5mnymA7n8fEzcVS49rYP0RrwqZ98JqujRoruK+/YzcchNpRP+kXsQ== + throat@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe"