From e7fe62eb7c713ad0af0d83f94a4105ae2fa4e750 Mon Sep 17 00:00:00 2001 From: Remi <73385395+itsrubberduck@users.noreply.github.com> Date: Sat, 20 Sep 2025 22:50:22 +0200 Subject: [PATCH] feat: enhance editor autosave and flow tools --- app/app.vue | 1 - app/components/editor/DecisionNodeCanvas.vue | 178 +++- app/pages/editor/index.vue | 932 +++++++++++++++--- .../[slug]/nodes/[stateId]/rename.patch.ts | 96 ++ yarn.lock | 3 +- 5 files changed, 1054 insertions(+), 156 deletions(-) create mode 100644 server/api/editor/flows/[slug]/nodes/[stateId]/rename.patch.ts diff --git a/app/app.vue b/app/app.vue index b825d35..8f62b8b 100644 --- a/app/app.vue +++ b/app/app.vue @@ -1,4 +1,3 @@ diff --git a/app/components/editor/DecisionNodeCanvas.vue b/app/components/editor/DecisionNodeCanvas.vue index 7b9e38b..2134e4d 100644 --- a/app/components/editor/DecisionNodeCanvas.vue +++ b/app/components/editor/DecisionNodeCanvas.vue @@ -31,7 +31,7 @@
onNodePointerDown(event, node)" @dblclick.prevent="() => emit('select', node.id)" > + +
@@ -97,11 +103,44 @@
+
+ + + + + + +
@@ -621,6 +775,26 @@ onBeforeUnmount(() => { @apply pointer-events-auto flex h-9 w-9 items-center justify-center rounded-lg border border-white/10 bg-black/40 text-white/80 transition hover:border-cyan-400 hover:text-cyan-200; } +.node-add { + @apply pointer-events-auto absolute z-10 flex h-6 w-6 items-center justify-center rounded-full border border-white/20 bg-black/70 text-white opacity-0 transition; +} + +.group:hover .node-add { + @apply opacity-100; +} + +.node-add--top { + top: -18px; + left: 50%; + transform: translate(-50%, 0); +} + +.node-add--bottom { + bottom: -18px; + left: 50%; + transform: translate(-50%, 0); +} + .node-connector { @apply pointer-events-none absolute h-3 w-3 rounded-full border-2 border-white/60 bg-[#070d1a]; } diff --git a/app/pages/editor/index.vue b/app/pages/editor/index.vue index 86dd362..0811026 100644 --- a/app/pages/editor/index.vue +++ b/app/pages/editor/index.vue @@ -12,85 +12,92 @@ >
-
-
- -
-
-

OpenSquawk

-

Decision Flow Studio

-
-
+ + +