From bc536bd7512c0c8091e61db44e2230bba5c357b2 Mon Sep 17 00:00:00 2001 From: Aiden Date: Fri, 8 May 2026 13:54:02 +1000 Subject: [PATCH] Control ui adjsutments --- README.md | 2 +- ui/package-lock.json | 14 +++ ui/package.json | 1 + ui/src/App.jsx | 11 -- ui/src/components/LayerCard.jsx | 12 ++- ui/src/components/LayerStack.jsx | 18 +--- ui/src/components/ParameterField.jsx | 7 +- ui/src/components/ShaderPicker.jsx | 129 +++++++++++------------ ui/src/components/StackPresetToolbar.jsx | 19 +++- ui/src/styles.css | 42 +++++--- 10 files changed, 135 insertions(+), 120 deletions(-) diff --git a/README.md b/README.md index 3847cd8..bc26374 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,6 @@ If `SLANG_ROOT` is not set, the workflow falls back to the repo-local default un - More comprehensive greenscreen shader - linear compositing? - compute shaders or a small 1x1 or nx1 RGBA16f render target for abritary data store -- allow shaders to read other shaders data store based on name? or putput over OSC +- allow shaders to read other shaders data store based on name? or output over OSC - Mipmappong needed? - unwrap a fish eyelens and mirror it and map it to equirectangulr for environmnet map purposes diff --git a/ui/package-lock.json b/ui/package-lock.json index f02f0fa..69cb8bb 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@uiw/color-convert": "^2.10.1", "@uiw/react-color-wheel": "^2.10.1", + "fuse.js": "^7.3.0", "lucide-react": "^0.511.0", "react": "^18.3.1", "react-dom": "^18.3.1" @@ -1429,6 +1430,19 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/fuse.js": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.3.0.tgz", + "integrity": "sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/krisk" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", diff --git a/ui/package.json b/ui/package.json index 726a157..8a3d544 100644 --- a/ui/package.json +++ b/ui/package.json @@ -11,6 +11,7 @@ "dependencies": { "@uiw/color-convert": "^2.10.1", "@uiw/react-color-wheel": "^2.10.1", + "fuse.js": "^7.3.0", "lucide-react": "^0.511.0", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/ui/src/App.jsx b/ui/src/App.jsx index 9ce75cd..0f42422 100644 --- a/ui/src/App.jsx +++ b/ui/src/App.jsx @@ -23,7 +23,6 @@ function AppFooter() { function App() { const [appState, setAppState] = useRuntimeState(); - const [pendingShaderId, setPendingShaderId] = useState(""); const [presetName, setPresetName] = useState(""); const [selectedPresetName, setSelectedPresetName] = useState(""); const [expandedLayerIds, setExpandedLayerIds] = useState([]); @@ -38,14 +37,6 @@ function App() { const app = appState?.app ?? {}; const stackPresets = appState?.stackPresets ?? []; - useEffect(() => { - if (!pendingShaderId && shaders.length > 0) { - setPendingShaderId(shaders[0].id); - } else if (pendingShaderId && !shaders.some((shader) => shader.id === pendingShaderId)) { - setPendingShaderId(shaders[0]?.id ?? ""); - } - }, [pendingShaderId, shaders]); - useEffect(() => { if (!selectedPresetName && stackPresets.length > 0) { setSelectedPresetName(stackPresets[0]); @@ -123,12 +114,10 @@ function App() { dropTargetLayerId={dropTargetLayerId} expandedLayerIds={expandedLayerIds} layers={layers} - pendingShaderId={pendingShaderId} setAppState={setAppState} setDragLayerId={setDragLayerId} setDropTargetLayerId={setDropTargetLayerId} setExpandedLayerIds={setExpandedLayerIds} - setPendingShaderId={setPendingShaderId} shaders={shaders} /> diff --git a/ui/src/components/LayerCard.jsx b/ui/src/components/LayerCard.jsx index feb2fcf..794be6c 100644 --- a/ui/src/components/LayerCard.jsx +++ b/ui/src/components/LayerCard.jsx @@ -1,4 +1,4 @@ -import { GripVertical, Trash2 } from "lucide-react"; +import { EyeOff, GripVertical, RotateCcw, SlidersHorizontal, Trash2 } from "lucide-react"; import { postJson } from "../api/controlApi"; import { ParameterField } from "./ParameterField"; @@ -71,11 +71,13 @@ export function LayerCard({ }) } /> +