-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
32 changed files
with
1,493 additions
and
484 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@yeger/streams': minor | ||
--- | ||
|
||
implement streams package |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@yeger/debounce': minor | ||
--- | ||
|
||
add optional args to callback |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
'@yeger/turbo-graph-ui': major | ||
'@yeger/turbo-graph': major | ||
--- | ||
|
||
re-implement visualization |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,7 @@ | |
"compilerOptions": { | ||
"declaration": false, | ||
"module": "CommonJS", | ||
"noEmit": false, | ||
"sourceMap": false | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
@tailwind base; | ||
@tailwind components; | ||
@tailwind utilities; | ||
|
||
@layer base { | ||
:root { | ||
--background: 0 0% 100%; | ||
--foreground: 0 0% 4.9%; | ||
|
||
--card: 0 0% 100%; | ||
--card-foreground: 0 0% 4.9%; | ||
|
||
--popover: 0 0% 100%; | ||
--popover-foreground: 0 0% 4.9%; | ||
|
||
--primary: 0 0% 11.2%; | ||
--primary-foreground: 0 0% 98%; | ||
|
||
--secondary: 0 0% 96.1%; | ||
--secondary-foreground: 0 0% 11.2%; | ||
|
||
--muted: 0 0% 96.1%; | ||
--muted-foreground: 215.4 16.3% 46.9%; | ||
|
||
--accent: 0 0% 96.1%; | ||
--accent-foreground: 0 0% 11.2%; | ||
|
||
--destructive: 0 84.2% 60.2%; | ||
--destructive-foreground: 0 0% 98%; | ||
|
||
--border: 214.3 31.8% 91.4%; | ||
--input: 214.3 31.8% 91.4%; | ||
--ring: 0 0% 4.9%; | ||
|
||
--radius: 0.5rem; | ||
} | ||
|
||
.dark { | ||
--background: 0 0% 0%; | ||
--foreground: 0 0% 98%; | ||
|
||
--card: 0 0% 4.9%; | ||
--card-foreground: 0 0% 98%; | ||
|
||
--popover: 0 0% 4.9%; | ||
--popover-foreground: 0 0% 98%; | ||
|
||
--primary: 0 0% 98%; | ||
--primary-foreground: 0 0% 11.2%; | ||
|
||
--secondary: 0 0% 17.5%; | ||
--secondary-foreground: 0 0% 98%; | ||
|
||
--muted: 0 0% 17.5%; | ||
--muted-foreground: 0 0% 65.1%; | ||
|
||
--accent: 0 0% 17.5%; | ||
--accent-foreground: 0 0% 98%; | ||
|
||
--destructive: 0 0% 30.6%; | ||
--destructive-foreground: 0 0% 98%; | ||
|
||
--border: 0 0% 17.5%; | ||
--input: 0 0% 17.5%; | ||
--ring: hsl(212.7, 0%, 83.9); | ||
} | ||
} | ||
|
||
@layer base { | ||
* { | ||
@apply border-border; | ||
} | ||
body { | ||
@apply bg-background text-foreground; | ||
} | ||
} | ||
|
||
.react-flow__edge { | ||
pointer-events: none !important; | ||
} | ||
|
||
.react-flow__controls button { | ||
background-color: var(--bg-color); | ||
color: var(--text-color); | ||
border: 1px solid hsl(var(--foreground)); | ||
border-bottom: none; | ||
} | ||
|
||
.react-flow__controls button:hover { | ||
background-color: hsl(var(--secondary)); | ||
} | ||
|
||
.react-flow__controls button:first-child { | ||
border-radius: 5px 5px 0 0; | ||
} | ||
|
||
.react-flow__controls button:last-child { | ||
border-bottom: 1px solid hsl(var(--foreground)); | ||
border-radius: 0 0 5px 5px; | ||
} | ||
|
||
.react-flow__controls button path { | ||
fill: hsl(var(--foreground)); | ||
} | ||
|
||
.react-flow__controls button:disabled path { | ||
fill: hsl(var(--muted-foreground)); | ||
} | ||
|
||
.react-flow__attribution { | ||
background: hsl(var(--background)) !important; | ||
} | ||
|
||
.react-flow__attribution a { | ||
color: hsl(var(--muted-foreground)) !important; | ||
} | ||
|
||
.react-flow__minimap { | ||
background: hsl(var(--background)) !important; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import { FilterInput, TaskInput } from '../components/GraphInputs' | ||
import './globals.css' | ||
|
||
export default function RootLayout({ | ||
// Layouts must accept a children prop. | ||
// This will be populated with nested layouts or pages | ||
children, | ||
}: { | ||
children: React.ReactNode | ||
}) { | ||
return ( | ||
<html lang="en" className="dark h-full w-full"> | ||
<body className="m-0 h-full w-full"> | ||
<main className="relative flex h-full w-full flex-col"> | ||
<div className="absolute left-0 top-0 z-10 flex w-96 max-w-full flex-col gap-2 p-2"> | ||
<TaskInput defaultValue="build" /> | ||
<FilterInput /> | ||
</div> | ||
{children} | ||
</main> | ||
</body> | ||
</html> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
import type { Metadata } from 'next' | ||
|
||
import { Graph } from '../components/Graph' | ||
|
||
export const metadata: Metadata = { | ||
title: 'Turbo Graph', | ||
description: 'Interactive visualization of Turborepo task graphs.', | ||
icons: ['/favicon.ico'], | ||
} | ||
|
||
export default async function Home({ | ||
searchParams, | ||
}: { | ||
searchParams?: { [key: string]: string | string[] | undefined } | ||
}) { | ||
const rawTasks = searchParams?.tasks | ||
const tasks = Array.isArray(rawTasks) | ||
? rawTasks | ||
: rawTasks?.replaceAll(',', ' ')?.split(' ') ?? ['build'] | ||
const filter = searchParams?.filter | ||
|
||
if (filter && Array.isArray(filter)) { | ||
throw new Error(`Unsupported filter ${filter}`) | ||
} | ||
|
||
return <Graph tasks={tasks} filter={filter} /> | ||
} |
Oops, something went wrong.