diff --git a/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx b/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx index 36657f0aad2..1c821f1e70e 100644 --- a/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx +++ b/ui/litellm-dashboard/src/components/lens/setup/GatewayFlow.tsx @@ -1,24 +1,37 @@ import { useId } from "react"; import styles from "./LensIntroduction.module.css"; -const streams = [ - { - id: "runs", - color: "text-sky-500 dark:text-sky-400", - path: "M -32 66 C 24 66 32 22 96 22 S 192 86 256 86 S 368 28 422 28 C 464 28 472 54 500 54 C 558 54 584 86 646 86 S 756 22 818 22 S 924 86 986 86 S 1040 54 1056 54", - }, - { - id: "steps", - color: "text-violet-500 dark:text-violet-400", - path: "M -32 30 C 40 30 58 78 120 78 S 218 24 284 24 S 390 76 444 76 C 470 76 480 54 503 54", - }, - { - id: "tools", - color: "text-amber-500 dark:text-amber-400", - path: "M -32 54 C 26 54 68 68 128 68 S 230 38 288 38 S 396 62 448 62 C 474 62 484 54 503 54", - }, +const dotColors = [ + "fill-sky-400 dark:fill-sky-300", + "fill-violet-400 dark:fill-violet-300", + "fill-amber-400 dark:fill-amber-300", + "fill-cyan-400 dark:fill-cyan-300", + "fill-rose-400 dark:fill-rose-300", ]; +const gridDots = Array.from({ length: 96 }, (_, index) => { + const variation = (index * 73 + index * index * 19) % 101; + return { + x: 5 + (index % 12) * 10, + y: 4 + Math.floor(index / 12) * 10, + color: dotColors[variation % dotColors.length], + opacity: 0.25 + variation * 0.0075, + }; +}); + +const organizedDots = Array.from({ length: 30 }, (_, index) => ({ + x: 5 + (index % 6) * 10, + y: 34 + Math.floor(index / 6) * 10, +})); + +const lightWaves = [0, 2.1, 4.2].map((phase) => + Array.from({ length: 83 }, (_, point) => { + const x = point * 20 - 320; + const y = 54 + Math.sin((x / 320) * Math.PI * 2 + phase) * 22; + return `${point === 0 ? "M" : "L"} ${x} ${y.toFixed(2)}`; + }).join(" "), +); + export function GatewayFlow() { const id = useId(); return ( @@ -44,9 +57,67 @@ export function GatewayFlow() { focusable="false" > - - + + + + {gridDots.map((dot, index) => ( + + ))} + + + {organizedDots.map((dot, index) => ( + + ))} + + + + + + + + + + + + + + + + + + + {lightWaves.map((path, index) => ( + + ))} + + + + + + + + + + + @@ -65,32 +136,16 @@ export function GatewayFlow() { - {streams.map((stream) => ( - - - - - ))} - + - {streams.map((stream) => ( - - - - + + + + - ))} +