From 477cbf6b3243f535cc15f0d2e80878ff7da66ce6 Mon Sep 17 00:00:00 2001 From: William Jeynes Date: Tue, 28 Apr 2026 21:50:13 +0100 Subject: [PATCH] Make hice home page. Remake details and config pannel to be nicer for small (time still to come) --- graphviz/frontend/.parcelrc | 4 + graphviz/frontend/.postcssrc | 5 + graphviz/frontend/package-lock.json | 460 +++++++++++++++++- graphviz/frontend/package.json | 7 +- graphviz/frontend/src/App.css | 8 - graphviz/frontend/src/AppRouter.tsx | 30 -- graphviz/frontend/src/Home.tsx | 86 ++++ graphviz/frontend/src/VizSmallConnected.tsx | 61 +-- graphviz/frontend/src/index.css | 1 + graphviz/frontend/src/index.html | 1 + graphviz/frontend/src/index.tsx | 22 +- graphviz/frontend/src/utils/DetailsPanel.tsx | 43 ++ graphviz/frontend/src/utils/FloatingPanel.tsx | 37 ++ .../frontend/src/utils/FloatingPanelStack.tsx | 7 + graphviz/frontend/src/utils/HomeButton.tsx | 23 + graphviz/frontend/static/small.png | Bin 0 -> 46161 bytes graphviz/frontend/static/time.png | Bin 0 -> 55853 bytes 17 files changed, 695 insertions(+), 100 deletions(-) create mode 100644 graphviz/frontend/.parcelrc create mode 100644 graphviz/frontend/.postcssrc delete mode 100644 graphviz/frontend/src/App.css delete mode 100644 graphviz/frontend/src/AppRouter.tsx create mode 100644 graphviz/frontend/src/Home.tsx create mode 100644 graphviz/frontend/src/index.css create mode 100644 graphviz/frontend/src/utils/DetailsPanel.tsx create mode 100644 graphviz/frontend/src/utils/FloatingPanel.tsx create mode 100644 graphviz/frontend/src/utils/FloatingPanelStack.tsx create mode 100644 graphviz/frontend/src/utils/HomeButton.tsx create mode 100644 graphviz/frontend/static/small.png create mode 100644 graphviz/frontend/static/time.png diff --git a/graphviz/frontend/.parcelrc b/graphviz/frontend/.parcelrc new file mode 100644 index 0000000..1f3df89 --- /dev/null +++ b/graphviz/frontend/.parcelrc @@ -0,0 +1,4 @@ +{ + "extends": ["@parcel/config-default"], + "reporters": ["...", "parcel-reporter-static-files-copy"] +} diff --git a/graphviz/frontend/.postcssrc b/graphviz/frontend/.postcssrc new file mode 100644 index 0000000..72f908d --- /dev/null +++ b/graphviz/frontend/.postcssrc @@ -0,0 +1,5 @@ +{ + "plugins": { + "@tailwindcss/postcss": {} + } +} \ No newline at end of file diff --git a/graphviz/frontend/package-lock.json b/graphviz/frontend/package-lock.json index bfdf995..59ea348 100644 --- a/graphviz/frontend/package-lock.json +++ b/graphviz/frontend/package-lock.json @@ -8,14 +8,74 @@ "name": "parcel-react-client-starter", "version": "0.0.0", "dependencies": { + "@tailwindcss/postcss": "^4.2.4", "react": "^19.2.5", "react-dom": "^19.2.5", - "react-force-graph-2d": "^1.29.1" + "react-force-graph-2d": "^1.29.1", + "tailwindcss": "^4.2.4" }, "devDependencies": { "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", - "parcel": "^2.14.0" + "parcel": "^2.14.0", + "parcel-reporter-static-files-copy": "^1.5.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@lezer/common": { @@ -2173,6 +2233,262 @@ "@swc/counter": "^0.1.3" } }, + "node_modules/@tailwindcss/node": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.4.tgz", + "integrity": "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.4" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.4.tgz", + "integrity": "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==", + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.4", + "@tailwindcss/oxide-darwin-arm64": "4.2.4", + "@tailwindcss/oxide-darwin-x64": "4.2.4", + "@tailwindcss/oxide-freebsd-x64": "4.2.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.4", + "@tailwindcss/oxide-linux-x64-musl": "4.2.4", + "@tailwindcss/oxide-wasm32-wasi": "4.2.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.4" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.4.tgz", + "integrity": "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz", + "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.4.tgz", + "integrity": "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.4.tgz", + "integrity": "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.4.tgz", + "integrity": "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.4.tgz", + "integrity": "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.4.tgz", + "integrity": "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.4.tgz", + "integrity": "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.4.tgz", + "integrity": "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.4.tgz", + "integrity": "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.4.tgz", + "integrity": "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.4.tgz", + "integrity": "sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.4.tgz", + "integrity": "sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.2.4", + "@tailwindcss/oxide": "4.2.4", + "postcss": "^8.5.6", + "tailwindcss": "4.2.4" + } + }, "node_modules/@tweenjs/tween.js": { "version": "25.0.0", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", @@ -2663,6 +2979,19 @@ "dev": true, "license": "ISC" }, + "node_modules/enhanced-resolve": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz", + "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -2739,6 +3068,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2799,6 +3134,15 @@ "node": ">=12" } }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2834,7 +3178,6 @@ "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" @@ -2867,7 +3210,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2888,7 +3230,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2909,7 +3250,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2930,7 +3270,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2951,7 +3290,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2972,7 +3310,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2993,7 +3330,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -3014,7 +3350,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -3035,7 +3370,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -3056,7 +3390,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -3077,7 +3410,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -3095,7 +3427,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" @@ -3152,6 +3483,15 @@ "loose-envify": "cli.js" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/msgpackr": { "version": "1.11.9", "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.9.tgz", @@ -3212,6 +3552,24 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -3308,11 +3666,23 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/parcel-reporter-static-files-copy": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/parcel-reporter-static-files-copy/-/parcel-reporter-static-files-copy-1.5.3.tgz", + "integrity": "sha512-Ukq2SyJYn3GFIPCLamXuQ+2t+0j54llujjOUoRjtmVvfsuGnJDEpMznADeIoKuQDvy0jpxtWzWkQvxqI/j+U4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "^2.0.0-beta.1" + }, + "engines": { + "parcel": "^2.0.0-beta.1" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -3328,6 +3698,34 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/postcss": { + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -3472,6 +3870,15 @@ "node": ">=10" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3485,6 +3892,25 @@ "node": ">=8" } }, + "node_modules/tailwindcss": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz", + "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -3508,7 +3934,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, + "devOptional": true, "license": "0BSD" }, "node_modules/type-fest": { diff --git a/graphviz/frontend/package.json b/graphviz/frontend/package.json index 3f0e148..a73686f 100644 --- a/graphviz/frontend/package.json +++ b/graphviz/frontend/package.json @@ -8,13 +8,16 @@ "build": "parcel build" }, "dependencies": { + "@tailwindcss/postcss": "^4.2.4", "react": "^19.2.5", "react-dom": "^19.2.5", - "react-force-graph-2d": "^1.29.1" + "react-force-graph-2d": "^1.29.1", + "tailwindcss": "^4.2.4" }, "devDependencies": { "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", - "parcel": "^2.14.0" + "parcel": "^2.14.0", + "parcel-reporter-static-files-copy": "^1.5.3" } } diff --git a/graphviz/frontend/src/App.css b/graphviz/frontend/src/App.css deleted file mode 100644 index b9e66b6..0000000 --- a/graphviz/frontend/src/App.css +++ /dev/null @@ -1,8 +0,0 @@ -html { - color-scheme: light dark; - font-family: system-ui; - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} diff --git a/graphviz/frontend/src/AppRouter.tsx b/graphviz/frontend/src/AppRouter.tsx deleted file mode 100644 index f474c2a..0000000 --- a/graphviz/frontend/src/AppRouter.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useEffect, useState } from "react"; -import { VizSmallConnected } from "./VizSmallConnected"; -import { VizTimeFilter } from "./VizTimeFilter"; - -function Home() { - return ( -
-

Will Jeynes - LLMs for Disinformation Analysis - Graph Visualisations

-

Default

-

Time-Filter

-
- ); -} - -export function AppRouter() { - const [route, setRoute] = useState(() => window.location.hash); - - useEffect(() => { - const onHashChange = () => { - setRoute(window.location.hash); - }; - - window.addEventListener("hashchange", onHashChange); - return () => window.removeEventListener("hashchange", onHashChange); - }, []); - console.log(route) - if (route === "#small") return ; - if (route === "#time") return ; - return ; -} \ No newline at end of file diff --git a/graphviz/frontend/src/Home.tsx b/graphviz/frontend/src/Home.tsx new file mode 100644 index 0000000..06dff49 --- /dev/null +++ b/graphviz/frontend/src/Home.tsx @@ -0,0 +1,86 @@ +export function Home() { + return ( +
+
+
+

LLMs for Disinformation Analysis

+

Dataset Visualizations

+ +

By Will Jeynes

+
+
+ +
+
+ +

Default View

+
+ + + +

+ A filtered collection of the whole dataset, containing only reasonably sized components +

+

+ A great introduction to the dataset on a curated set of examples +

+
+ +
+ +

Time Filtered

+
+ + + +

+ A visualisation showing only the largest component, normally too large to be understandable +

+

+ Configurable, scrubber date filter allows migration to be seen over time +

+
+
+ +
+

+ Project Description +

+

+ Description coming soon +

+ +

+ Sources +

+ + + + + +
+
+
+ ); +} \ No newline at end of file diff --git a/graphviz/frontend/src/VizSmallConnected.tsx b/graphviz/frontend/src/VizSmallConnected.tsx index 60f4eb0..99b8740 100644 --- a/graphviz/frontend/src/VizSmallConnected.tsx +++ b/graphviz/frontend/src/VizSmallConnected.tsx @@ -4,6 +4,10 @@ import * as d3 from "d3-force-3d"; import data from "./data.json"; import titlesData from "./titles.json"; +import HomeButton from "./utils/HomeButton"; +import { FloatingPanel } from "./utils/FloatingPanel"; +import { DetailsPanel } from "./utils/DetailsPanel"; +import { FloatingPanelStack } from "./utils/FloatingPanelStack"; function drawRoundedRect(ctx, x, y, width, height, radius) { const r = Math.min(radius, width / 2, height / 2); @@ -33,6 +37,7 @@ function buildGraph(data) { id: cluster.cluster_id, label: titleMap.get(cluster.cluster_id) || cluster.title || "Unnamed Claim Cluster", type: "claim_cluster", + type_nice: "Claim", members: cluster.members }); }); @@ -42,6 +47,7 @@ function buildGraph(data) { id: cluster.cluster_id, label: titleMap.get(cluster.cluster_id) || cluster.title || "Unnamed Event Cluster", type: "event_cluster", + type_nice: "Event", members: cluster.members }); }); @@ -131,7 +137,7 @@ export function VizSmallConnected() { d3.forceManyBody().strength(-10000) ); - + // Link distance fgRef.current.d3Force( @@ -151,7 +157,7 @@ export function VizSmallConnected() { fgRef.current.d3ReheatSimulation(); }, [graphData]); - useEffect(() => { + useEffect(() => { if (fgRef.current) { fgRef.current.zoom(0.01, 0); } @@ -159,6 +165,7 @@ export function VizSmallConnected() { return (
+ - -
-

Go Home

-

Config

+ + + +

Trigger Event Cluster

+

Claim Cluster

+
+ @@ -242,35 +242,12 @@ export function VizSmallConnected() { value={minGraphSize} onChange={(e) => setMinGraphSize(Number(e.target.value))} /> + + +
-

Details

- {selectedNode ? ( -
-

Title: {selectedNode.label}

- {selectedNode.members && ( -
-

Members:

-
    - {selectedNode.members.map((m) => { - const memberData = - data.claims.find((c) => c.id === m) || - data.events.find((e) => e.id === m); - return ( -
  • - {memberData ? memberData.text : m} -
  • - ); - })} -
-
- )} -
- ) : ( -

Click a node to see details

- )} -
); } \ No newline at end of file diff --git a/graphviz/frontend/src/index.css b/graphviz/frontend/src/index.css new file mode 100644 index 0000000..a461c50 --- /dev/null +++ b/graphviz/frontend/src/index.css @@ -0,0 +1 @@ +@import "tailwindcss"; \ No newline at end of file diff --git a/graphviz/frontend/src/index.html b/graphviz/frontend/src/index.html index 7ef4367..d87e486 100644 --- a/graphviz/frontend/src/index.html +++ b/graphviz/frontend/src/index.html @@ -3,6 +3,7 @@ + Parcel React App diff --git a/graphviz/frontend/src/index.tsx b/graphviz/frontend/src/index.tsx index aefc1f6..efd88cf 100644 --- a/graphviz/frontend/src/index.tsx +++ b/graphviz/frontend/src/index.tsx @@ -1,6 +1,26 @@ import { createRoot } from "react-dom/client"; import { StrictMode } from "react"; -import { AppRouter } from "./AppRouter"; +import { useEffect, useState } from "react"; +import { VizSmallConnected } from "./VizSmallConnected"; +import { VizTimeFilter } from "./VizTimeFilter"; +import { Home } from "./Home"; + +export function AppRouter() { + const [route, setRoute] = useState(() => window.location.hash); + + useEffect(() => { + const onHashChange = () => { + setRoute(window.location.hash); + }; + + window.addEventListener("hashchange", onHashChange); + return () => window.removeEventListener("hashchange", onHashChange); + }, []); + + if (route === "#small") return ; + if (route === "#time") return ; + return ; +} let container = document.getElementById("app")!; let root = createRoot(container); diff --git a/graphviz/frontend/src/utils/DetailsPanel.tsx b/graphviz/frontend/src/utils/DetailsPanel.tsx new file mode 100644 index 0000000..0894984 --- /dev/null +++ b/graphviz/frontend/src/utils/DetailsPanel.tsx @@ -0,0 +1,43 @@ +import { FloatingPanel } from "./FloatingPanel"; + +export function DetailsPanel({ selectedNode, data }) { + return ( + + + {selectedNode ? ( +
+

+ Type: {selectedNode.type_nice} Cluster +

+ +

+ Title: {selectedNode.label} +

+ + {selectedNode.members && ( +
+

Members:

+
    + {selectedNode.members.map((m) => { + const memberData = + data.claims.find((c) => c.id === m) || + data.events.find((e) => e.id === m); + + return ( +
  • + {memberData ? memberData.text : m} +
  • + ); + })} +
+
+ )} +
+ ) : ( +

+ Click a node to see details +

+ )} +
+ ); +} \ No newline at end of file diff --git a/graphviz/frontend/src/utils/FloatingPanel.tsx b/graphviz/frontend/src/utils/FloatingPanel.tsx new file mode 100644 index 0000000..11566d9 --- /dev/null +++ b/graphviz/frontend/src/utils/FloatingPanel.tsx @@ -0,0 +1,37 @@ +import { useState } from "react"; + +export function FloatingPanel({ + title, + children, + defaultOpen = true, +}) { + const [open, setOpen] = useState(defaultOpen); + + return ( +
+ + + +
+ {children} +
+
+ ); +} \ No newline at end of file diff --git a/graphviz/frontend/src/utils/FloatingPanelStack.tsx b/graphviz/frontend/src/utils/FloatingPanelStack.tsx new file mode 100644 index 0000000..6a9c9d1 --- /dev/null +++ b/graphviz/frontend/src/utils/FloatingPanelStack.tsx @@ -0,0 +1,7 @@ +export function FloatingPanelStack({ children }) { + return ( +
+ {children} +
+ ); +} \ No newline at end of file diff --git a/graphviz/frontend/src/utils/HomeButton.tsx b/graphviz/frontend/src/utils/HomeButton.tsx new file mode 100644 index 0000000..e399782 --- /dev/null +++ b/graphviz/frontend/src/utils/HomeButton.tsx @@ -0,0 +1,23 @@ +export default function HomeButton() { + return ( + + + + + + ); +} \ No newline at end of file diff --git a/graphviz/frontend/static/small.png b/graphviz/frontend/static/small.png new file mode 100644 index 0000000000000000000000000000000000000000..fe2061238e2258d4f34c5866aa8b73a129193a93 GIT binary patch literal 46161 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 mjN`8>|Nnyh@%XUi=qOp-5u@ literal 0 HcmV?d00001 diff --git a/graphviz/frontend/static/time.png b/graphviz/frontend/static/time.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5fc8a547d1c411007717a4dfa5fe936cfc8000 GIT binary patch literal 55853 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