From e57f0470eb5577e0ab2e0b8e7b7564ed3e134288 Mon Sep 17 00:00:00 2001 From: Tomas Dvorak Date: Wed, 23 Sep 2026 17:00:44 +0200 Subject: [PATCH 1/5] feat(canvas): fullscreen Railway-style workspace canvas Rebuild the project canvas as a full-viewport graph instead of a boxed 66vh panel. Slim workspace top bar now holds the view tabs, project meta and actions; the canvas fills all remaining space. - Floating glass controls: env filter + group pill (top-left), zoom out / live zoom % / zoom in / fit / tidy pill (bottom-left), dark MiniMap (bottom-right), hint chip, demo badge. - Inspector panel: selecting a node opens a right-side glass panel with status, image, address, inferred connections incl. variable reasons, and deploy/restart/stop/delete actions. Esc or pane click closes. - Auto-layout: dependency-depth layered layout (consumers left, datastores right) for first-visit placement and the Tidy action. Unpositioned services park right of existing bounds, not at (0,0). - Nodes: fixed 240px width (was 210 vs 220-280 CSS mismatch), per-type icons/colors incl. cron, spinner icon while deploying, hover lift. - Edges: lime bezier strokes, animated dashes while either endpoint is deploying, hover glow updated from stale purple to accent. - Groups: off-brand crimson replaced with accent tokens, double-click title to rename inline. - Keyboard: F fit, 0 reset zoom, +/- zoom, Esc deselect. Marquee select on Shift-drag. Double-click zoom disabled, dead connection drags off. - Mobile: icon-only tabs, minimap/hint hidden under md. - Retake docs/screenshots/canvas.png + site copy (1600x900 demo). Authored By: TDvorak Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../workspace/canvas/ProjectCanvas.tsx | 782 ++++++++++++------ .../features/workspace/canvas/auto-layout.ts | 109 +++ .../src/features/workspace/canvas/nodes.tsx | 151 ++-- .../workspace/canvas/service-visuals.tsx | 31 + app/frontend/src/features/workspace/model.ts | 7 +- .../workspace/pages/ProjectWorkspacePage.tsx | 209 +++-- .../src/features/workspace/storage.ts | 28 +- app/frontend/src/index.css | 89 +- docs/screenshots/canvas.png | Bin 111944 -> 148849 bytes 9 files changed, 950 insertions(+), 456 deletions(-) create mode 100644 app/frontend/src/features/workspace/canvas/auto-layout.ts create mode 100644 app/frontend/src/features/workspace/canvas/service-visuals.tsx diff --git a/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx b/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx index 53f0aef..bc70fb8 100644 --- a/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx +++ b/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx @@ -1,11 +1,14 @@ import { useCallback, useEffect, useMemo, useRef, useState, type MouseEvent } from 'react'; import { Background, + BackgroundVariant, MarkerType, + MiniMap, ReactFlow, ReactFlowProvider, useNodesState, useReactFlow, + useViewport, type Edge, type Node, type NodeTypes, @@ -29,13 +32,14 @@ import { type ProjectCanvasMetadata, } from '../model'; import { hasCanvasMetadata, loadCanvasMetadata, saveCanvasMetadata } from '../storage'; +import { computeLayeredLayout, layoutFromVariables, NODE_HEIGHT, NODE_WIDTH } from './auto-layout'; import { GroupNode, ServiceNode, type GroupNodeData, type ServiceNodeData } from './nodes'; +import { serviceTypeColor, serviceTypeIcon } from './service-visuals'; import { Plus, Layers, Maximize2, - RotateCcw, - Box, + Minus, Link2, Play, Square, @@ -43,6 +47,9 @@ import { Trash2, ArrowUpRight, Globe, + X, + Loader2, + Wand2, } from 'lucide-react'; type CanvasProps = { @@ -51,6 +58,7 @@ type CanvasProps = { variablesByService: Record; onAddService: () => void; onOpenService: (serviceId: string) => void; + readOnly?: boolean; }; type ServiceCanvasNode = Node; @@ -58,10 +66,9 @@ type GroupCanvasNode = Node; type CanvasNode = ServiceCanvasNode | GroupCanvasNode; type CanvasEdge = Edge<{ reasons: string[] }>; -const SERVICE_NODE_WIDTH = 210; -const SERVICE_NODE_HEIGHT = 96; const GROUP_DEFAULT_WIDTH = 340; const GROUP_DEFAULT_HEIGHT = 230; +const TRANSIENT_STATUSES = new Set(['building', 'deploying', 'pending', 'rolling_back']); const nodeTypes: NodeTypes = { serviceNode: ServiceNode, @@ -74,12 +81,17 @@ type ContextMenuState = { y: number; } | null; -function toFlowNodes(metadata: ProjectCanvasMetadata, services: ServiceEntity[], onOpenService: CanvasProps['onOpenService']): CanvasNode[] { +function toFlowNodes( + metadata: ProjectCanvasMetadata, + services: ServiceEntity[], + onOpenService: CanvasProps['onOpenService'], + onRenameGroup: (groupId: string, title: string) => void, +): CanvasNode[] { const groups = metadata.groups.map( (group): GroupCanvasNode => ({ id: group.id, type: 'groupNode', - data: { title: group.title }, + data: { title: group.title, onRename: onRenameGroup }, position: group.position, draggable: true, selectable: true, @@ -111,7 +123,7 @@ function toFlowNodes(metadata: ProjectCanvasMetadata, services: ServiceEntity[], draggable: true, selectable: true, style: { - width: SERVICE_NODE_WIDTH, + width: NODE_WIDTH, }, }; }); @@ -122,6 +134,7 @@ function toFlowNodes(metadata: ProjectCanvasMetadata, services: ServiceEntity[], function toFlowEdges( links: ReturnType, positionOf: (serviceId: string) => { x: number; y: number } | undefined, + statusOf: (serviceId: string) => string | undefined, ): CanvasEdge[] { return links.map((link) => { const source = positionOf(link.edge.sourceServiceId); @@ -129,6 +142,9 @@ function toFlowEdges( // Choose handle sides by relative position so edges flow forward // instead of looping back through the canvas. const forward = !source || !target || source.x <= target.x; + const live = + TRANSIENT_STATUSES.has(statusOf(link.edge.sourceServiceId) ?? '') || + TRANSIENT_STATUSES.has(statusOf(link.edge.targetServiceId) ?? ''); return { id: link.edge.id, @@ -136,19 +152,19 @@ function toFlowEdges( target: link.edge.targetServiceId, sourceHandle: forward ? 's-r' : 's-l', targetHandle: forward ? 't-l' : 't-r', - animated: false, + animated: live, data: { reasons: link.reasons, }, markerEnd: { type: MarkerType.ArrowClosed, - color: 'var(--accent-secondary)', - width: 14, - height: 14, + color: 'rgba(180, 227, 74, 0.55)', + width: 13, + height: 13, }, style: { - stroke: 'var(--accent-primary)', - strokeWidth: 2, + stroke: 'rgba(180, 227, 74, 0.42)', + strokeWidth: 1.6, }, className: 'edge-premium', }; @@ -190,7 +206,58 @@ function buildMetadataFromFlow(nodes: CanvasNode[], viewport: { x: number; y: nu }; } -function CanvasInner({ projectId, services, variablesByService, onAddService, onOpenService }: CanvasProps) { +function ZoomControls({ onTidy }: { onTidy: () => void }) { + const { zoom } = useViewport(); + const { zoomIn, zoomOut, fitView, setViewport } = useReactFlow(); + + return ( +
+ + + +
+ + +
+ ); +} + +function CanvasInner({ projectId, services, variablesByService, onAddService, onOpenService, readOnly }: CanvasProps) { const wrapperRef = useRef(null); const persistTimeout = useRef(null); const hydratedRef = useRef(false); @@ -203,7 +270,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on const queryClient = useQueryClient(); const toast = useToast(); - const { fitView, getInternalNode, getViewport, screenToFlowPosition, setViewport } = useReactFlow(); + const { fitView, getInternalNode, getViewport, screenToFlowPosition, setViewport, zoomIn, zoomOut } = useReactFlow(); const environments = useMemo(() => { const envs = new Set(services.map((service) => service.environment ?? 'production')); @@ -226,10 +293,22 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on ); const edges = useMemo(() => { const positionOf = (serviceId: string) => nodes.find((node) => node.id === serviceId)?.position; - return toFlowEdges(inferredLinks, positionOf).filter( + const statusOf = (serviceId: string) => services.find((service) => service.id === serviceId)?.status; + return toFlowEdges(inferredLinks, positionOf, statusOf).filter( (edge) => visibleIds.has(edge.source) && visibleIds.has(edge.target), ); - }, [inferredLinks, visibleIds, nodes]); + }, [inferredLinks, visibleIds, nodes, services]); + + const renameGroup = useCallback( + (groupId: string, title: string) => { + setNodes((current) => + current.map((node) => + node.id === groupId && node.type === 'groupNode' ? { ...node, data: { ...node.data, title } } : node, + ), + ); + }, + [setNodes], + ); const invalidateServices = useCallback(() => { void queryClient.invalidateQueries({ queryKey: ['project-services', projectId] }); @@ -276,6 +355,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on onSuccess: () => { toast.showToast('Service deleted', 'success'); invalidateServices(); + setSelectedServiceId(null); }, onError: actionError, }); @@ -286,10 +366,28 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on stopMutation.isPending || deleteMutation.isPending; + const tidyLayout = useCallback(() => { + const positions = computeLayeredLayout( + services, + inferredLinks.map((link) => link.edge), + ); + setNodes((current) => + current.map((node) => { + if (node.type !== 'serviceNode' || node.parentId) { + return node; + } + const next = positions.get(node.id); + return next ? { ...node, position: next } : node; + }), + ); + window.setTimeout(() => void fitView({ padding: 0.18, duration: 300 }), 40); + }, [services, inferredLinks, setNodes, fitView]); + useEffect(() => { const hasStoredViewport = hasCanvasMetadata(projectId); - const metadata = loadCanvasMetadata(projectId, services); - const nextNodes = toFlowNodes(metadata, services, onOpenService); + const layout = hasStoredViewport ? undefined : layoutFromVariables(services, variablesByService); + const metadata = loadCanvasMetadata(projectId, services, layout); + const nextNodes = toFlowNodes(metadata, services, onOpenService, renameGroup); viewportRestoredRef.current = false; setNodes(nextNodes); @@ -302,7 +400,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on metadata.viewport.zoom === DEFAULT_VIEWPORT.zoom; if (!hasStoredViewport || isDefaultViewport) { - void fitView({ padding: 0.15, duration: 120 }); + void fitView({ padding: 0.18, duration: 120 }); } else { void setViewport(metadata.viewport, { duration: 120 }); } @@ -311,7 +409,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on }); hydratedRef.current = true; - }, [projectId, serviceFingerprint, onOpenService, setNodes, setViewport, fitView, services]); + }, [projectId, serviceFingerprint, onOpenService, setNodes, setViewport, fitView, services, renameGroup, variablesByService]); useEffect(() => { if (!hydratedRef.current || !viewportRestoredRef.current) { @@ -352,6 +450,47 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on ); }, [selectedServiceId, setNodes]); + // Canvas keyboard shortcuts: F fit, 0 reset zoom, +/- zoom, Esc deselect. + useEffect(() => { + const onKeyDown = (event: KeyboardEvent) => { + const target = event.target as HTMLElement | null; + if ( + target && + (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT' || target.isContentEditable) + ) { + return; + } + if (event.metaKey || event.ctrlKey || event.altKey) { + return; + } + + switch (event.key) { + case 'f': + case 'F': + void fitView({ padding: 0.18, duration: 240 }); + break; + case '0': + void setViewport({ x: 0, y: 0, zoom: 1 }, { duration: 180 }); + break; + case '=': + case '+': + void zoomIn({ duration: 160 }); + break; + case '-': + case '_': + void zoomOut({ duration: 160 }); + break; + case 'Escape': + setSelectedServiceId(null); + setContextMenu(null); + break; + } + }; + + window.addEventListener('keydown', onKeyDown); + return () => window.removeEventListener('keydown', onKeyDown); + }, [fitView, setViewport, zoomIn, zoomOut]); + const getGroupUnderPoint = useCallback((x: number, y: number, ignoreGroupId?: string) => { for (const node of nodes) { if (node.type !== 'groupNode' || node.id === ignoreGroupId) { @@ -377,8 +516,8 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on } const basePosition = getInternalNode(movedNode.id)?.internals.positionAbsolute ?? movedNode.position; - const centerX = basePosition.x + SERVICE_NODE_WIDTH / 2; - const centerY = basePosition.y + SERVICE_NODE_HEIGHT / 2; + const centerX = basePosition.x + NODE_WIDTH / 2; + const centerY = basePosition.y + NODE_HEIGHT / 2; const targetGroup = getGroupUnderPoint(centerX, centerY, movedNode.parentId); if (targetGroup) { @@ -386,8 +525,8 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on const targetWidth = typeof targetGroup.style?.width === 'number' ? targetGroup.style.width : GROUP_DEFAULT_WIDTH; const targetHeight = typeof targetGroup.style?.height === 'number' ? targetGroup.style.height : GROUP_DEFAULT_HEIGHT; - const relativeX = Math.max(12, Math.min(targetWidth - SERVICE_NODE_WIDTH - 12, basePosition.x - groupBase.x)); - const relativeY = Math.max(30, Math.min(targetHeight - SERVICE_NODE_HEIGHT - 12, basePosition.y - groupBase.y)); + const relativeX = Math.max(12, Math.min(targetWidth - NODE_WIDTH - 12, basePosition.x - groupBase.x)); + const relativeY = Math.max(30, Math.min(targetHeight - NODE_HEIGHT - 12, basePosition.y - groupBase.y)); setNodes((current) => current.map((node) => { @@ -452,7 +591,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on x: center.x - GROUP_DEFAULT_WIDTH / 2, y: center.y - GROUP_DEFAULT_HEIGHT / 2, }, - data: { title: `Group ${current.filter((node) => node.type === 'groupNode').length + 1}` }, + data: { title: `Group ${current.filter((node) => node.type === 'groupNode').length + 1}`, onRename: renameGroup }, draggable: true, selectable: true, style: { @@ -461,7 +600,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on }, } satisfies GroupCanvasNode, ]); - }, [screenToFlowPosition, setNodes]); + }, [screenToFlowPosition, setNodes, renameGroup]); // Env filter hides nodes via React Flow's `hidden` flag — positions and // persisted layout stay intact for services outside the current filter. @@ -493,281 +632,412 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on const contextService = contextMenu ? services.find((service) => service.id === contextMenu.serviceId) ?? null : null; const selectedService = services.find((service) => service.id === selectedServiceId) ?? null; - const selectedServiceLinkCount = selectedService - ? inferredLinks.filter( + const selectedConnections = useMemo(() => { + if (!selectedService) { + return []; + } + const nameOf = (id: string) => services.find((service) => service.id === id)?.name ?? id; + return inferredLinks + .filter( (link) => link.edge.sourceServiceId === selectedService.id || link.edge.targetServiceId === selectedService.id, - ).length - : 0; + ) + .map((link) => ({ + id: link.edge.id, + outbound: link.edge.sourceServiceId === selectedService.id, + peer: link.edge.sourceServiceId === selectedService.id ? nameOf(link.edge.targetServiceId) : nameOf(link.edge.sourceServiceId), + peerId: link.edge.sourceServiceId === selectedService.id ? link.edge.targetServiceId : link.edge.sourceServiceId, + reasons: link.reasons, + })); + }, [inferredLinks, selectedService, services]); + + const minimapNodeColor = useCallback( + (node: CanvasNode) => { + if (node.type === 'groupNode') { + return 'rgba(255,255,255,0.08)'; + } + return serviceTypeColor((node.data as ServiceNodeData).service.type); + }, + [], + ); return ( -
- {/* Toolbar - Railway-inspired premium design */} -
- -
+
+ { + setSelectedServiceId(null); + setContextMenu(null); + }} + onMoveStart={() => setContextMenu(null)} + onNodeClick={(_event, node) => { + setContextMenu(null); + if (node.type === 'serviceNode') { + setSelectedServiceId(node.id); + } + }} + onNodeDoubleClick={(_event, node) => { + if (node.type === 'serviceNode') { + onOpenService(node.id); + } + }} + onNodeContextMenu={onNodeContextMenu} + onNodeDragStop={onNodeDragStop} + onMoveEnd={() => setViewportTick((value) => value + 1)} + panOnDrag + zoomOnScroll + zoomOnDoubleClick={false} + nodesConnectable={false} + nodeDragThreshold={3} + onlyRenderVisibleElements + minZoom={0.2} + maxZoom={2.2} + deleteKeyCode={null} + selectionKeyCode="Shift" + proOptions={{ hideAttribution: true }} + > + + + + + {/* Floating: env filter + group (top-left) */} +
+ {environments.length > 1 && ( +
+ {['all', ...environments].map((env) => ( + + ))} +
+ )} - - {environments.length > 1 && ( - <> -
-
- {['all', ...environments].map((env) => ( - - ))} -
- - )} - -
- - -
- -
-
- - {services.length} -
-
-
- - {edges.length} -
-
- {/* Canvas */} -
- { - setSelectedServiceId(null); - setContextMenu(null); - }} - onMoveStart={() => setContextMenu(null)} - onNodeClick={(_event, node) => { - setContextMenu(null); - if (node.type === 'serviceNode') { - setSelectedServiceId(node.id); - } - }} - onNodeDoubleClick={(_event, node) => { - if (node.type === 'serviceNode') { - onOpenService(node.id); - } - }} - onNodeContextMenu={onNodeContextMenu} - onNodeDragStop={onNodeDragStop} - onMoveEnd={() => setViewportTick((value) => value + 1)} - panOnDrag - zoomOnScroll - minZoom={0.25} - maxZoom={2.3} - deleteKeyCode={null} - proOptions={{ hideAttribution: true }} - > - {/* SVG Definitions for premium edge styling */} - - - - - + {/* Floating: zoom controls (bottom-left) */} +
+ +
- {/* Empty state */} - {services.length === 0 && ( -
-
-
- -
-

Deploy your first service

-

- Add a service from a git repo or Docker image — it runs on a private network with the rest of this - project. + {/* Floating: hint (bottom-center) — fades once a node is selected */} + {!selectedService && services.length > 0 && ( +

+

+ Click to inspect · Double-click to open · Right-click for actions · F to fit +

+
+ )} + + {/* Inspector (right) */} + {selectedService && ( + + )} + + {/* Empty state */} + {services.length === 0 && ( +
+
+
+ +
+

Deploy your first service

+

+ Add a service from a git repo or Docker image - it runs on a private network with the rest of this + project. +

- {contextService.status !== 'running' && ( +
+
+ )} + + {/* Node context menu */} + {contextMenu && contextService && ( +
+
+

{contextService.name}

+

{contextService.status}

+
+ + {(contextService.domain || contextService.publicUrl) && ( + + + Visit {(contextService.domain ?? contextService.publicUrl ?? '').replace(/^https?:\/\//, '')} + + )} + {!readOnly && ( + <> + {contextService.status !== 'running' && ( + + )} + - )} - - -
-
-
- )} -
- - {/* Footer */} -
- {selectedService ? ( -
-
-
- +
+
-
- {selectedService.name} - ({selectedService.type}) -
-
-
- - {selectedServiceLinkCount} connection{selectedServiceLinkCount !== 1 ? 's' : ''} -
-
- ) : ( -

- Click to select • Double-click to open • Right-click for actions • Connections auto-inferred from variables -

- )} -
+ + )} +
+ )}
); } diff --git a/app/frontend/src/features/workspace/canvas/auto-layout.ts b/app/frontend/src/features/workspace/canvas/auto-layout.ts new file mode 100644 index 0000000..8b26e9f --- /dev/null +++ b/app/frontend/src/features/workspace/canvas/auto-layout.ts @@ -0,0 +1,109 @@ +import type { ServiceEntity } from '@/lib/api-client'; +import type { ServiceVariable } from '../auto-connections'; +import { inferAutoConnections } from '../auto-connections'; + +export const NODE_WIDTH = 240; +export const NODE_HEIGHT = 104; +export const COL_GAP = 340; +export const ROW_GAP = 172; + +type LinkEdge = { sourceServiceId: string; targetServiceId: string }; + +// Layered left-to-right layout: a service's depth is the longest chain of +// dependencies beneath it, so consumers sit left and datastores right. +// Unconnected services get their own trailing column separated by a gap. +export function computeLayeredLayout( + services: ServiceEntity[], + edges: LinkEdge[], +): Map { + const positions = new Map(); + if (services.length === 0) { + return positions; + } + + const ids = new Set(services.map((service) => service.id)); + const outgoing = new Map(); + const connected = new Set(); + + for (const edge of edges) { + if (!ids.has(edge.sourceServiceId) || !ids.has(edge.targetServiceId)) { + continue; + } + connected.add(edge.sourceServiceId); + connected.add(edge.targetServiceId); + const list = outgoing.get(edge.sourceServiceId) ?? []; + list.push(edge.targetServiceId); + outgoing.set(edge.sourceServiceId, list); + } + + const depthMemo = new Map(); + const depthOf = (id: string, trail: Set): number => { + const memoized = depthMemo.get(id); + if (memoized !== undefined) { + return memoized; + } + if (trail.has(id)) { + return 0; // cycle guard + } + trail.add(id); + let best = 0; + for (const target of outgoing.get(id) ?? []) { + best = Math.max(best, depthOf(target, trail) + 1); + } + trail.delete(id); + depthMemo.set(id, best); + return best; + }; + + const connectedServices = services + .filter((service) => connected.has(service.id)) + .sort((a, b) => a.name.localeCompare(b.name)); + const looseServices = services + .filter((service) => !connected.has(service.id)) + .sort((a, b) => a.name.localeCompare(b.name)); + + const depthById = new Map(connectedServices.map((service) => [service.id, depthOf(service.id, new Set())])); + const maxDepth = Math.max(0, ...depthById.values()); + + // Column = maxDepth - depth so deeper consumers render further left. + const columns = new Map(); + for (const service of connectedServices) { + const col = maxDepth - (depthById.get(service.id) ?? 0); + const list = columns.get(col) ?? []; + list.push(service); + columns.set(col, list); + } + + const connectedColCount = columns.size; + const maxRows = Math.max( + 1, + ...Array.from(columns.values()).map((list) => list.length), + looseServices.length, + ); + + for (const [col, list] of columns) { + const offsetY = ((maxRows - list.length) * ROW_GAP) / 2; + list.forEach((service, row) => { + positions.set(service.id, { x: col * COL_GAP, y: offsetY + row * ROW_GAP }); + }); + } + + looseServices.forEach((service, row) => { + const col = connectedColCount > 0 ? connectedColCount : 0; + const offsetY = ((maxRows - looseServices.length) * ROW_GAP) / 2; + positions.set(service.id, { x: col * COL_GAP, y: offsetY + row * ROW_GAP }); + }); + + return positions; +} + +export function layoutFromVariables( + services: ServiceEntity[], + variablesByService: Record, +): Map { + const links = inferAutoConnections(services, variablesByService); + return computeLayeredLayout( + services, + links.map((link) => link.edge), + ); +} diff --git a/app/frontend/src/features/workspace/canvas/nodes.tsx b/app/frontend/src/features/workspace/canvas/nodes.tsx index 942babf..8203097 100644 --- a/app/frontend/src/features/workspace/canvas/nodes.tsx +++ b/app/frontend/src/features/workspace/canvas/nodes.tsx @@ -1,8 +1,9 @@ import { Handle, Position, type Node, type NodeProps } from '@xyflow/react'; import type { ServiceEntity } from '@/lib/api-client'; import { serviceStatusClass } from '@/lib/api-client'; -import { Box, Globe, Database, Terminal, ExternalLink, Copy, Layers } from 'lucide-react'; +import { Box, ExternalLink, Copy, Layers, Loader2 } from 'lucide-react'; import { useState } from 'react'; +import { serviceTypeColor, serviceTypeIcon } from './service-visuals'; export type ServiceNodeData = { service: ServiceEntity; @@ -12,37 +13,12 @@ export type ServiceNodeData = { export type GroupNodeData = { title: string; + onRename?: (groupId: string, title: string) => void; }; export type ServiceNodeType = Node; export type GroupNodeType = Node; -function renderServiceTypeIcon(type: string, size = 18) { - switch (type) { - case 'web': - return ; - case 'database': - return ; - case 'worker': - return ; - default: - return ; - } -} - -function serviceTypeColor(type: string): string { - switch (type) { - case 'web': - return '#7ab8ff'; - case 'database': - return '#b4e34a'; - case 'worker': - return 'var(--accent-primary)'; - default: - return '#9295a4'; - } -} - function statusLabel(status: string): string { switch (status) { case 'running': @@ -72,27 +48,29 @@ function statusColor(status: string): string { } } +const TRANSIENT_STATUSES = new Set(['building', 'deploying', 'pending', 'rolling_back']); + export function ServiceNode({ data }: NodeProps) { const { service, selected } = data; const typeColor = serviceTypeColor(service.type); const replicas = service.replicas ?? 0; const stateColor = statusColor(service.status); + const isTransient = TRANSIENT_STATUSES.has(service.status); const publicUrl = service.domain ? `https://${service.domain}` : service.publicUrl; const internalAddr = service.port ? `${service.name}:${service.port}` : service.name; return (
@@ -105,22 +83,22 @@ export function ServiceNode({ data }: NodeProps) { style={{ background: stateColor }} /> -
-
+
+
- {renderServiceTypeIcon(service.type, 18)} + {isTransient ? : serviceTypeIcon(service.type, 16)}
-
-

{service.name}

-

+

+

+ {service.name} +

+

{service.type} {service.environment && service.environment !== 'production' ? ` · ${service.environment}` : ''}

@@ -133,7 +111,7 @@ export function ServiceNode({ data }: NodeProps) { )}
-
+
-
+
- + {statusLabel(service.status)}
{service.image && ( - + {service.image} )} @@ -181,41 +159,68 @@ export function ServiceNode({ data }: NodeProps) { ); } -export function GroupNode({ data }: NodeProps) { +export function GroupNode({ id, data }: NodeProps) { const [isHovered, setIsHovered] = useState(false); + const [editing, setEditing] = useState(false); + const [draft, setDraft] = useState(data.title); + + const commit = () => { + const next = draft.trim() || data.title; + setEditing(false); + if (next !== data.title) { + data.onRename?.(id, next); + } + }; return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > -
-
-
-
-
- -
-

{data.title}

+
+
+
+ {editing ? ( + setDraft(e.target.value)} + onBlur={commit} + onKeyDown={(e) => { + if (e.key === 'Enter') commit(); + if (e.key === 'Escape') { + setDraft(data.title); + setEditing(false); + } + }} + className="nodrag h-7 px-2 rounded-[var(--radius-sm)] border border-[var(--border-default)] bg-[var(--surface-card)] text-sm font-semibold text-[var(--text-primary)] outline-none focus:border-[var(--accent-primary)]" + /> + ) : ( +

{ + e.stopPropagation(); + setDraft(data.title); + setEditing(true); + }} + title="Double-click to rename" + > + {data.title} +

+ )}

; + case 'database': + return ; + case 'worker': + return ; + case 'cron': + return ; + default: + return ; + } +} + +export function serviceTypeColor(type: string): string { + switch (type) { + case 'web': + return '#7ab8ff'; + case 'database': + return '#b4e34a'; + case 'worker': + return '#f2c94c'; + case 'cron': + return '#f2994a'; + default: + return '#9295a4'; + } +} diff --git a/app/frontend/src/features/workspace/model.ts b/app/frontend/src/features/workspace/model.ts index 704d479..950ad02 100644 --- a/app/frontend/src/features/workspace/model.ts +++ b/app/frontend/src/features/workspace/model.ts @@ -44,14 +44,17 @@ export const DEFAULT_VIEWPORT: CanvasViewport = { zoom: 1, }; -export function createDefaultCanvasMetadata(services: ServiceEntity[]): ProjectCanvasMetadata { +export function createDefaultCanvasMetadata( + services: ServiceEntity[], + layout?: Map, +): ProjectCanvasMetadata { const nodes = services.map((service, index) => { const col = index % 3; const row = Math.floor(index / 3); return { serviceId: service.id, - position: { + position: layout?.get(service.id) ?? { x: 70 + col * 260, y: 80 + row * 170, }, diff --git a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx index 62d35a2..6c3b8e8 100644 --- a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx +++ b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx @@ -654,131 +654,113 @@ export function ProjectWorkspacePage() { ); } + const canvasView = activeView === 'canvas'; + return ( -

- {/* Header */} -
-
-
-
+
+ {/* Slim workspace bar — tabs + project meta, canvas fills everything below */} +
+ +
+

{project.name}_

+ + {services.length} service{services.length !== 1 ? 's' : ''} · {runningServices} running + + + {/* View tabs */} + -
- {/* Stats */} -
-
-

{services.length}

-

Services

-
-
-

{runningServices}

-

Running

-
-
- 0} /> -
-
- - {formatRelative(project.updatedAt)} -
-
- - {/* Search / Command Palette */} - - - {/* Add Service Button */} - {!isDemoMode && ( - - )} -
+
+
+ 0} />
+ + + {formatRelative(project.updatedAt)} + + + {!isDemoMode && ( + + )}
- {/* Demo Mode Banner */} - {isDemoMode && ( -
-
-
- - Demo mode active — using sample data for preview + {/* Content */} + {canvasView ? ( +
+ navigate(serviceHref(serviceId))} + readOnly={isDemoMode} + /> + {isDemoMode && ( +
+ + + Demo data + +
+ )} +
+ ) : ( +
+ {isDemoMode && ( +
+
+
+ + Demo mode active - using sample data for preview +
-
- )} - - {/* Main Content */} -
-
- {/* Sidebar Navigation */} - - - {/* Content Area */} + )} +
- {activeView === 'canvas' && ( - navigate(serviceHref(serviceId))} - /> - )} - {activeView === 'observability' && (
{/* Health Summary */} @@ -965,6 +947,7 @@ export function ProjectWorkspacePage() {
+ )} {/* Create Service Dialog */} {!isDemoMode && ( diff --git a/app/frontend/src/features/workspace/storage.ts b/app/frontend/src/features/workspace/storage.ts index 1a8c74c..e221521 100644 --- a/app/frontend/src/features/workspace/storage.ts +++ b/app/frontend/src/features/workspace/storage.ts @@ -171,9 +171,13 @@ export function saveCanvasMetadata(projectId: string, metadata: ProjectCanvasMet canvasStorage()?.setItem(canvasStorageKey(projectId), JSON.stringify(metadata)); } -export function loadCanvasMetadata(projectId: string, services: ServiceEntity[]): ProjectCanvasMetadata { +export function loadCanvasMetadata( + projectId: string, + services: ServiceEntity[], + layout?: Map, +): ProjectCanvasMetadata { const key = canvasStorageKey(projectId); - const fallback = createDefaultCanvasMetadata(services); + const fallback = createDefaultCanvasMetadata(services, layout); const serviceIds = new Set(services.map((service) => service.id)); const raw = canvasStorage()?.getItem(key); @@ -195,7 +199,14 @@ export function loadCanvasMetadata(projectId: string, services: ServiceEntity[]) const nodeMap = new Map(parsed.nodes.map((node) => [node.serviceId, node])); const normalizedNodes: CanvasNodeLayout[] = []; - for (const [index, service] of services.entries()) { + // Services added after the layout was saved park in a trailing column to + // the right of everything placed so far, instead of overlapping nodes the + // user already arranged. + const placedXs = parsed.nodes.map((node) => node.position.x); + let parkedRow = 0; + const parkedX = placedXs.length > 0 ? Math.max(...placedXs) + 320 : 70; + + for (const service of services) { const existing = nodeMap.get(service.id); if (existing) { normalizedNodes.push({ @@ -206,15 +217,14 @@ export function loadCanvasMetadata(projectId: string, services: ServiceEntity[]) continue; } - const col = index % 3; - const row = Math.floor(index / 3); + const parked = layout?.get(service.id); normalizedNodes.push({ serviceId: service.id, - position: { - x: 70 + col * 260, - y: 80 + row * 170, - }, + position: parked ?? { x: parkedX, y: 80 + parkedRow * 160 }, }); + if (!parked) { + parkedRow += 1; + } } const seenEdgeIds = new Set(); diff --git a/app/frontend/src/index.css b/app/frontend/src/index.css index e10257d..e0db988 100644 --- a/app/frontend/src/index.css +++ b/app/frontend/src/index.css @@ -634,13 +634,13 @@ textarea { .edge-premium .react-flow__edge-path { stroke-linecap: round; stroke-linejoin: round; - filter: drop-shadow(0 0 4px rgba(156, 126, 240, 0.3)); + filter: drop-shadow(0 0 4px rgba(180, 227, 74, 0.25)); transition: filter 0.2s ease, stroke-width 0.2s ease; } .edge-premium:hover .react-flow__edge-path { - filter: drop-shadow(0 0 8px rgba(156, 126, 240, 0.5)); - stroke-width: 3px; + filter: drop-shadow(0 0 8px rgba(180, 227, 74, 0.45)); + stroke-width: 2.6px; } /* ============================================ @@ -1685,3 +1685,86 @@ textarea { margin: 24px 0; } .docs-article img { max-width: 100%; border-radius: var(--radius-md); } + +/* ============================================ + CANVAS — fullscreen workspace graph + ============================================ */ + +/* Floating glass pills (zoom controls, env filter, hints) */ +.canvas-pill { + display: inline-flex; + align-items: center; + background: rgba(19, 21, 24, 0.82); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border: 1px solid var(--border-default); + border-radius: 999px; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); +} + +.canvas-pill-btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 30px; + height: 30px; + padding: 0 6px; + border-radius: 999px; + color: var(--text-tertiary); + transition: color 0.15s ease, background 0.15s ease; +} + +.canvas-pill-btn:hover { + color: var(--text-primary); + background: var(--surface-muted); +} + +/* React Flow pane affordances */ +.react-flow__pane { + cursor: grab; +} +.react-flow__pane.dragging { + cursor: grabbing; +} +.react-flow__node.selectable:focus { + outline: none; +} + +/* Marquee selection tint */ +.react-flow__selection { + background: var(--accent-primary-soft); + border: 1px solid var(--border-strong); +} + +/* MiniMap — match surface card, dimmed nodes */ +.react-flow__minimap { + border-radius: var(--radius-md) !important; + border: 1px solid var(--border-default); + overflow: hidden; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); +} +.react-flow__minimap-svg { + display: block; +} + +/* Inspector panel entrance */ +.canvas-inspector { + animation: canvas-panel-in 0.22s cubic-bezier(0.22, 1, 0.36, 1) both; +} + +@keyframes canvas-panel-in { + from { + opacity: 0; + transform: translateX(14px); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@media (prefers-reduced-motion: reduce) { + .canvas-inspector { + animation: none; + } +} diff --git a/docs/screenshots/canvas.png b/docs/screenshots/canvas.png index ab2e1d5128543bb87ad8fa4117f9ea7cc5d3ca35..578ce1e1b936761d120002d9fb184d6a8e84dae4 100644 GIT binary patch literal 148849 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 DeN&B9P0A#D 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 Z?V3}2dZZN}jQKSUW>+CsDlWS{{U3LFX@UR% From 1425618c92bd3527bf3311d1b1748f5436b30842 Mon Sep 17 00:00:00 2001 From: Tomas Dvorak Date: Wed, 23 Sep 2026 18:12:15 +0200 Subject: [PATCH 2/5] feat(canvas): brand tech icons on services, matching site preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve a service's tech (postgres, redis, go, node, nginx, kafka, ~50 slugs) from its image/name and render the Simple Icons logo in the tinted icon tile — canvas nodes, inspector, service detail header, and database rows — with graceful fallback to type icons. Demo services get resolvable images, ports, and domains; a Redis Cache service joins Core Platform so the demo canvas mirrors the landing preview (5 services, web/api/worker → api → postgres/redis). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- app/frontend/src/features/secondary/pages.tsx | 12 ++- .../service/pages/ServiceDetailPage.tsx | 17 ++-- .../workspace/canvas/ProjectCanvas.tsx | 9 ++- .../features/workspace/canvas/ServiceIcon.tsx | 26 ++++++ .../src/features/workspace/canvas/nodes.tsx | 16 ++-- .../workspace/canvas/service-visuals.tsx | 81 +++++++++++++++++++ app/frontend/src/lib/demo-data.ts | 50 +++++++++--- 7 files changed, 180 insertions(+), 31 deletions(-) create mode 100644 app/frontend/src/features/workspace/canvas/ServiceIcon.tsx diff --git a/app/frontend/src/features/secondary/pages.tsx b/app/frontend/src/features/secondary/pages.tsx index 66caa3f..b26f057 100644 --- a/app/frontend/src/features/secondary/pages.tsx +++ b/app/frontend/src/features/secondary/pages.tsx @@ -51,6 +51,8 @@ import { type FailoverPolicy, } from '@/lib/api-client'; import { demoDatabases } from '@/lib/demo-data'; +import { ServiceIcon } from '@/features/workspace/canvas/ServiceIcon'; +import { serviceAccent } from '@/features/workspace/canvas/service-visuals'; import { DocsBrowser } from '@/features/docs/DocsBrowser'; import { useAuthSession } from '@/lib/use-auth-session'; import { formatRelative } from '@/lib/time'; @@ -1668,8 +1670,14 @@ export function DatabasesPage() { onClick={() => setExpandedId(expanded ? null : (db.id ?? null))} className="flex w-full items-center gap-3 p-4 text-left" > -

- +
+
diff --git a/app/frontend/src/features/service/pages/ServiceDetailPage.tsx b/app/frontend/src/features/service/pages/ServiceDetailPage.tsx index 43bd837..797f3f7 100644 --- a/app/frontend/src/features/service/pages/ServiceDetailPage.tsx +++ b/app/frontend/src/features/service/pages/ServiceDetailPage.tsx @@ -36,6 +36,8 @@ import { type CronJobEntity, } from '@/lib/api-client'; import { getDemoProjectById, getDemoServiceById, getDemoCronJobsByService } from '@/lib/demo-data'; +import { ServiceIcon } from '@/features/workspace/canvas/ServiceIcon'; +import { serviceAccent } from '@/features/workspace/canvas/service-visuals'; import { useAuthSession } from '@/lib/use-auth-session'; import { getCurrentUserProfile } from '@/lib/api-client'; import { parseDotenv, validateVariableRows, type VariableDraft } from '../variable-utils'; @@ -590,18 +592,17 @@ export function ServiceDetailPage() { {/* Project Header - self.html exact match */}
-
- - - +
diff --git a/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx b/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx index bc70fb8..5ea433c 100644 --- a/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx +++ b/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx @@ -34,7 +34,8 @@ import { import { hasCanvasMetadata, loadCanvasMetadata, saveCanvasMetadata } from '../storage'; import { computeLayeredLayout, layoutFromVariables, NODE_HEIGHT, NODE_WIDTH } from './auto-layout'; import { GroupNode, ServiceNode, type GroupNodeData, type ServiceNodeData } from './nodes'; -import { serviceTypeColor, serviceTypeIcon } from './service-visuals'; +import { ServiceIcon } from './ServiceIcon'; +import { serviceAccent } from './service-visuals'; import { Plus, Layers, @@ -656,7 +657,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on if (node.type === 'groupNode') { return 'rgba(255,255,255,0.08)'; } - return serviceTypeColor((node.data as ServiceNodeData).service.type); + return serviceAccent((node.data as ServiceNodeData).service); }, [], ); @@ -762,9 +763,9 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on
- {serviceTypeIcon(selectedService.type, 16)} +

{selectedService.name}

diff --git a/app/frontend/src/features/workspace/canvas/ServiceIcon.tsx b/app/frontend/src/features/workspace/canvas/ServiceIcon.tsx new file mode 100644 index 0000000..17d9fc0 --- /dev/null +++ b/app/frontend/src/features/workspace/canvas/ServiceIcon.tsx @@ -0,0 +1,26 @@ +import { useState } from 'react'; +import { serviceIcon, serviceIconUrl, serviceTypeIcon, type ServiceIconInput } from './service-visuals'; + +export function ServiceIcon({ + service, + size = 16, +}: { + service: ServiceIconInput; + size?: number; +}) { + const [failed, setFailed] = useState(false); + const brand = serviceIcon(service); + if (brand && !failed) { + return ( + setFailed(true)} + /> + ); + } + return serviceTypeIcon(service.type ?? 'service', size); +} diff --git a/app/frontend/src/features/workspace/canvas/nodes.tsx b/app/frontend/src/features/workspace/canvas/nodes.tsx index 8203097..e2f66ee 100644 --- a/app/frontend/src/features/workspace/canvas/nodes.tsx +++ b/app/frontend/src/features/workspace/canvas/nodes.tsx @@ -3,7 +3,8 @@ import type { ServiceEntity } from '@/lib/api-client'; import { serviceStatusClass } from '@/lib/api-client'; import { Box, ExternalLink, Copy, Layers, Loader2 } from 'lucide-react'; import { useState } from 'react'; -import { serviceTypeColor, serviceTypeIcon } from './service-visuals'; +import { serviceIcon, serviceAccent } from './service-visuals'; +import { ServiceIcon } from './ServiceIcon'; export type ServiceNodeData = { service: ServiceEntity; @@ -52,7 +53,8 @@ const TRANSIENT_STATUSES = new Set(['building', 'deploying', 'pending', 'rolling export function ServiceNode({ data }: NodeProps) { const { service, selected } = data; - const typeColor = serviceTypeColor(service.type); + const brand = serviceIcon(service); + const typeColor = brand?.color ?? serviceAccent(service); const replicas = service.replicas ?? 0; const stateColor = statusColor(service.status); const isTransient = TRANSIENT_STATUSES.has(service.status); @@ -88,11 +90,15 @@ export function ServiceNode({ data }: NodeProps) {
- {isTransient ? : serviceTypeIcon(service.type, 16)} + {isTransient ? ( + + ) : ( + + )}

diff --git a/app/frontend/src/features/workspace/canvas/service-visuals.tsx b/app/frontend/src/features/workspace/canvas/service-visuals.tsx index e50576a..0fe768d 100644 --- a/app/frontend/src/features/workspace/canvas/service-visuals.tsx +++ b/app/frontend/src/features/workspace/canvas/service-visuals.tsx @@ -29,3 +29,84 @@ export function serviceTypeColor(type: string): string { return '#9295a4'; } } + +export type ServiceBrandIcon = { + slug: string; + color: string; +}; + +const TECH_ICONS: (ServiceBrandIcon & { patterns: RegExp[] })[] = [ + { slug: 'postgresql', color: '#7ab8ff', patterns: [/postgres/i, /postgis/i] }, + { slug: 'redis', color: '#ff6b6b', patterns: [/redis/i, /dragonfly/i, /valkey/i, /keydb/i] }, + { slug: 'mysql', color: '#5ba4e5', patterns: [/mysql/i] }, + { slug: 'mariadb', color: '#4ea5ff', patterns: [/mariadb/i] }, + { slug: 'mongodb', color: '#47a248', patterns: [/mongo/i] }, + { slug: 'clickhouse', color: '#ffcc01', patterns: [/clickhouse/i] }, + { slug: 'couchdb', color: '#e42528', patterns: [/couchdb/i] }, + { slug: 'sqlite', color: '#69b7e4', patterns: [/sqlite/i] }, + { slug: 'influxdb', color: '#22adf6', patterns: [/influx/i] }, + { slug: 'elasticsearch', color: '#fec514', patterns: [/elastic/i, /opensearch/i] }, + { slug: 'meilisearch', color: '#ff5caa', patterns: [/meili/i] }, + { slug: 'typesense', color: '#d90368', patterns: [/typesense/i] }, + { slug: 'qdrant', color: '#dc244c', patterns: [/qdrant/i] }, + { slug: 'weaviate', color: '#01c9a7', patterns: [/weaviate/i] }, + { slug: 'minio', color: '#c72e49', patterns: [/minio/i] }, + { slug: 'rabbitmq', color: '#ff6600', patterns: [/rabbitmq/i, /rabbit/i] }, + { slug: 'apachekafka', color: '#d6dae4', patterns: [/kafka/i] }, + { slug: 'natsdotio', color: '#8be1d3', patterns: [/\bnats/i] }, + { slug: 'nginx', color: '#009639', patterns: [/nginx/i] }, + { slug: 'caddy', color: '#1f88c0', patterns: [/caddy/i] }, + { slug: 'traefikproxy', color: '#24a1c1', patterns: [/traefik/i] }, + { slug: 'nodedotjs', color: '#5fa04e', patterns: [/node(?=[:\-\d]|$)/i, /nodejs/i] }, + { slug: 'go', color: '#00add8', patterns: [/golang/i, /(?:^|[^a-z])go(?=[:\-\d]|$)/i] }, + { slug: 'python', color: '#6fa8dc', patterns: [/python/i, /\bpy(?:thon)?(?=[:\-\d]|$)/i] }, + { slug: 'rust', color: '#f74c00', patterns: [/rust/i] }, + { slug: 'php', color: '#8892bf', patterns: [/php/i] }, + { slug: 'ruby', color: '#cc342d', patterns: [/ruby/i, /rails/i] }, + { slug: 'openjdk', color: '#e6a23c', patterns: [/java/i, /openjdk/i, /jdk/i, /jre/i] }, + { slug: 'dotnet', color: '#6f4bd8', patterns: [/dotnet/i, /aspnet/i] }, + { slug: 'deno', color: '#70ffaf', patterns: [/\bdeno/i] }, + { slug: 'bun', color: '#f9f1e1', patterns: [/bun(?=[:\-\d]|$)/i] }, + { slug: 'react', color: '#61dafb', patterns: [/react/i] }, + { slug: 'vuedotjs', color: '#4fc08d', patterns: [/vue/i] }, + { slug: 'angular', color: '#dd0031', patterns: [/angular/i] }, + { slug: 'svelte', color: '#ff3e00', patterns: [/svelte/i] }, + { slug: 'nextdotjs', color: '#e6edf3', patterns: [/nextjs/i, /next\.js/i] }, + { slug: 'nuxtdotjs', color: '#00dc82', patterns: [/nuxt/i] }, + { slug: 'astro', color: '#ff5d01', patterns: [/astro/i] }, + { slug: 'prometheus', color: '#e6522c', patterns: [/prometheus/i] }, + { slug: 'grafana', color: '#f46800', patterns: [/grafana/i] }, + { slug: 'uptimekuma', color: '#5cdd8b', patterns: [/uptime.?kuma/i, /\bkuma/i] }, + { slug: 'n8n', color: '#ea4b71', patterns: [/n8n/i] }, + { slug: 'wordpress', color: '#4b9cd3', patterns: [/wordpress/i, /\bwp-/i] }, + { slug: 'ghost', color: '#a8b8c4', patterns: [/ghost/i] }, + { slug: 'nextcloud', color: '#0082c9', patterns: [/nextcloud/i] }, + { slug: 'immich', color: '#7c9ef5', patterns: [/immich/i] }, + { slug: 'supabase', color: '#3fcf8e', patterns: [/supabase/i] }, + { slug: 'pocketbase', color: '#b8dbe4', patterns: [/pocketbase/i] }, + { slug: 'keycloak', color: '#d6dae4', patterns: [/keycloak/i] }, + { slug: 'authentik', color: '#fd4b2d', patterns: [/authentik/i] }, + { slug: 'portainer', color: '#13bef9', patterns: [/portainer/i] }, + { slug: 'docker', color: '#2496ed', patterns: [/docker/i, /dind/i] }, + { slug: 'kubernetes', color: '#326ce5', patterns: [/kubernetes/i, /\bk8s/i] }, +]; + +export type ServiceIconInput = { image?: string; name?: string; type?: string }; + +export function serviceIcon(service: ServiceIconInput): ServiceBrandIcon | null { + const text = `${service.image ?? ''} ${service.name ?? ''}`.toLowerCase(); + for (const icon of TECH_ICONS) { + if (icon.patterns.some((pattern) => pattern.test(text))) { + return icon; + } + } + return null; +} + +export function serviceIconUrl(icon: ServiceBrandIcon): string { + return `https://cdn.simpleicons.org/${icon.slug}/${icon.color.replace('#', '')}`; +} + +export function serviceAccent(service: ServiceIconInput): string { + return serviceIcon(service)?.color ?? serviceTypeColor(service.type ?? 'service'); +} diff --git a/app/frontend/src/lib/demo-data.ts b/app/frontend/src/lib/demo-data.ts index c2f6fd0..d688a50 100644 --- a/app/frontend/src/lib/demo-data.ts +++ b/app/frontend/src/lib/demo-data.ts @@ -10,9 +10,9 @@ export const demoProjects: ProjectEntity[] = [ createdAt: '2026-03-12T09:30:00Z', updatedAt: '2026-03-31T09:10:00Z', stats: { - service_count: 4, + service_count: 5, deployment_count: 27, - running_services: 3, + running_services: 4, last_deployment: '2026-03-31T08:42:00Z', }, }, @@ -55,9 +55,11 @@ export const demoServicesByProject: Record = { type: 'web', status: 'running', environment: 'production', - image: 'ghcr.io/containr/web:2026.03.31', + image: 'ghcr.io/containr/web-react:v42', command: 'npm run serve', gitBranch: 'main', + port: 3000, + domain: 'web.containr.local', createdAt: '2026-03-12T10:00:00Z', updatedAt: '2026-03-31T08:42:00Z', }, @@ -68,9 +70,11 @@ export const demoServicesByProject: Record = { type: 'web', status: 'running', environment: 'production', - image: 'ghcr.io/containr/api:2026.03.31', + image: 'ghcr.io/containr/api-go:v2.4.1', command: './server', gitBranch: 'main', + port: 8080, + domain: 'api.containr.local', createdAt: '2026-03-12T10:02:00Z', updatedAt: '2026-03-31T08:43:00Z', }, @@ -81,9 +85,10 @@ export const demoServicesByProject: Record = { type: 'worker', status: 'building', environment: 'production', - image: 'ghcr.io/containr/worker:2026.03.31', + image: 'ghcr.io/containr/worker:edge', command: './worker', gitBranch: 'main', + port: 9100, createdAt: '2026-03-12T10:05:00Z', updatedAt: '2026-03-31T08:44:00Z', }, @@ -94,12 +99,27 @@ export const demoServicesByProject: Record = { type: 'database', status: 'running', environment: 'production', - image: 'postgres:15-alpine', + image: 'postgres:16', command: 'postgres', gitBranch: 'main', + port: 5432, createdAt: '2026-03-12T10:08:00Z', updatedAt: '2026-03-31T08:40:00Z', }, + { + id: 'demo-svc-redis', + projectId: 'demo-project-core', + name: 'Redis Cache', + type: 'database', + status: 'running', + environment: 'production', + image: 'dragonfly:1.25', + command: 'redis-server', + gitBranch: 'main', + port: 6379, + createdAt: '2026-03-12T10:12:00Z', + updatedAt: '2026-03-31T08:40:00Z', + }, ], 'demo-project-growth': [ { @@ -109,9 +129,11 @@ export const demoServicesByProject: Record = { type: 'web', status: 'running', environment: 'production', - image: 'ghcr.io/containr/marketing:latest', - command: 'npm run start', + image: 'nginx:1.27-alpine', + command: 'nginx -g daemon off;', gitBranch: 'main', + port: 8080, + domain: 'growth.containr.local', createdAt: '2026-03-03T09:00:00Z', updatedAt: '2026-03-30T12:10:00Z', }, @@ -122,9 +144,10 @@ export const demoServicesByProject: Record = { type: 'web', status: 'running', environment: 'production', - image: 'ghcr.io/containr/campaign-api:latest', + image: 'node:20-alpine', command: './api', gitBranch: 'main', + port: 3000, createdAt: '2026-03-03T09:04:00Z', updatedAt: '2026-03-30T12:08:00Z', }, @@ -135,9 +158,10 @@ export const demoServicesByProject: Record = { type: 'database', status: 'running', environment: 'production', - image: 'redis:7-alpine', + image: 'dragonfly:1.25', command: 'redis-server', gitBranch: 'main', + port: 6379, createdAt: '2026-03-03T09:07:00Z', updatedAt: '2026-03-30T12:07:00Z', }, @@ -150,9 +174,10 @@ export const demoServicesByProject: Record = { type: 'web', status: 'running', environment: 'production', - image: 'ghcr.io/containr/inference-api:latest', + image: 'python:3.12-slim', command: './serve', gitBranch: 'main', + port: 8000, createdAt: '2026-02-18T08:00:00Z', updatedAt: '2026-03-29T18:00:00Z', }, @@ -163,7 +188,7 @@ export const demoServicesByProject: Record = { type: 'worker', status: 'failed', environment: 'production', - image: 'ghcr.io/containr/evaluator:latest', + image: 'python:3.12-slim', command: './run-jobs', gitBranch: 'main', createdAt: '2026-02-18T08:03:00Z', @@ -195,6 +220,7 @@ export const demoVariablesByProject: Record Date: Wed, 23 Sep 2026 18:20:05 +0200 Subject: [PATCH 3/5] feat(canvas): fullscreen workspace outside the app shell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move /projects/:id and its service detail route out of PlatformShell — the project view now owns the entire viewport like Railway's canvas: no sidebar, no global nav, just the slim project bar over the graph. Service detail inherits the same chrome-free context with a breadcrumb back to the canvas, and back/delete navigation preserves ?demo=1. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- app/frontend/src/app/App.tsx | 6 ++++-- .../src/features/service/pages/ServiceDetailPage.tsx | 2 +- .../src/features/workspace/pages/ProjectWorkspacePage.tsx | 8 +++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/frontend/src/app/App.tsx b/app/frontend/src/app/App.tsx index ef3444c..b73d21c 100644 --- a/app/frontend/src/app/App.tsx +++ b/app/frontend/src/app/App.tsx @@ -116,10 +116,12 @@ export default function App() { } /> {/* Public browsing — approved projects, templates, docs. */} + {/* Project workspace renders outside the shell — fullscreen canvas, no nav chrome */} + } /> + } /> + }> } /> - } /> - } /> } /> } /> } /> diff --git a/app/frontend/src/features/service/pages/ServiceDetailPage.tsx b/app/frontend/src/features/service/pages/ServiceDetailPage.tsx index 797f3f7..26b6570 100644 --- a/app/frontend/src/features/service/pages/ServiceDetailPage.tsx +++ b/app/frontend/src/features/service/pages/ServiceDetailPage.tsx @@ -384,7 +384,7 @@ export function ServiceDetailPage() { onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['project-services', projectId] }); queryClient.invalidateQueries({ queryKey: ['projects'] }); - navigate(`/projects/${projectId}`); + navigate(isDemoMode ? `/projects/${projectId}?demo=1` : `/projects/${projectId}`); }, }); diff --git a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx index 6c3b8e8..126c5bd 100644 --- a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx +++ b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx @@ -644,7 +644,7 @@ export function ProjectWorkspacePage() { This project may have been deleted or you don't have access.

-

- -
- {selectedService.image && ( -
-

Image

-

{selectedService.image}

-
- )} - {(selectedService.domain || selectedService.publicUrl || selectedService.port) && ( -
-

Address

- {selectedService.domain || selectedService.publicUrl ? ( - - {(selectedService.domain ?? selectedService.publicUrl ?? '').replace(/^https?:\/\//, '')} - - ) : null} - {selectedService.port ? ( -

- {selectedService.name}:{selectedService.port} -

- ) : null} -
- )} - -
-

- Connections ({selectedConnections.length}) -

- {selectedConnections.length === 0 ? ( -

- No inferred connections. Reference another service via {'{{variable}}'} placeholders in env vars. -

- ) : ( -
- {selectedConnections.map((conn) => ( - - ))} -
- )} -
-
- -
- -
- - {selectedService.status !== 'running' ? ( - - ) : ( - - )} - -
- -
- + deployMutation.mutate(selectedService.id), + start: () => startMutation.mutate(selectedService.id), + restart: () => restartMutation.mutate(selectedService.id), + stop: () => stopMutation.mutate(selectedService.id), + remove: () => { + if (window.confirm(`Delete service "${selectedService.name}"? Its containers will be removed.`)) { + deleteMutation.mutate(selectedService.id); + } + }, + pending: actionPending, + deployPending: deployMutation.isPending, + restartPending: restartMutation.isPending, + }} + onClose={() => setSelectedServiceId(null)} + onOpenService={onOpenService} + onOpenSection={(serviceId, section) => + onOpenSection ? onOpenSection(serviceId, section) : onOpenService(serviceId) + } + onSelectPeer={setSelectedServiceId} + onAssignGroup={assignToGroup} + onNewGroupFor={newGroupForService} + /> )} {/* Empty state */} @@ -935,12 +1043,100 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on
)} - {/* Node context menu */} - {contextMenu && contextService && ( + {/* Context menus — service node, group frame, or empty pane */} + {contextMenu && (
+ {contextMenu.kind === 'pane' && ( + <> + + +
+ + +
+ + )} + + {contextMenu.kind === 'group' && contextGroup && ( + <> +
+

{contextGroup.data.title}

+

Group

+
+ +
+ +
+ + )} + + {contextMenu.kind === 'service' && contextService && ( + <>

{contextService.name}

{contextService.status}

@@ -1037,6 +1233,8 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on
)} + + )}
)}
diff --git a/app/frontend/src/features/workspace/canvas/inspector.tsx b/app/frontend/src/features/workspace/canvas/inspector.tsx new file mode 100644 index 0000000..b3c748c --- /dev/null +++ b/app/frontend/src/features/workspace/canvas/inspector.tsx @@ -0,0 +1,415 @@ +import type { ServiceEntity } from '@/lib/api-client'; +import { serviceStatusClass } from '@/lib/api-client'; +import type { ServiceVariable } from '../auto-connections'; +import { ServiceIcon } from './ServiceIcon'; +import { serviceAccent } from './service-visuals'; +import { formatRelative } from '@/lib/time'; +import { + ArrowUpRight, + Copy, + Globe, + KeyRound, + Layers, + Link2, + Loader2, + Play, + Rocket, + Square, + Trash2, + X, +} from 'lucide-react'; +import { useState } from 'react'; + +export type InspectorGroup = { id: string; title: string }; +export type InspectorConnection = { + id: string; + outbound: boolean; + peer: string; + peerId: string; + reasons: string[]; +}; + +export type InspectorActions = { + deploy: () => void; + start: () => void; + restart: () => void; + stop: () => void; + remove: () => void; + pending: boolean; + deployPending: boolean; + restartPending: boolean; +}; + +function statusLabel(status: string): string { + switch (status) { + case 'running': + return 'Online'; + case 'deployed': + return 'Deployed'; + case 'building': + return 'Building'; + case 'deploying': + return 'Deploying'; + case 'pending': + return 'Pending'; + case 'failed': + return 'Failed'; + case 'stopped': + return 'Stopped'; + case 'rolling_back': + return 'Rolling back'; + default: + return status; + } +} + +function statusColor(status: string): string { + switch (status) { + case 'running': + case 'deployed': + return 'var(--success)'; + case 'failed': + return 'var(--error)'; + case 'building': + case 'deploying': + case 'pending': + case 'rolling_back': + return 'var(--warning)'; + default: + return 'var(--text-tertiary)'; + } +} + +function Section({ title, children, action }: { title: string; children: React.ReactNode; action?: React.ReactNode }) { + return ( +
+
+

{title}

+ {action} +
+ {children} +
+ ); +} + +function SectionLink({ onClick, children }: { onClick: () => void; children: React.ReactNode }) { + return ( + + ); +} + +export function ServiceInspector({ + service, + variables, + connections, + groups, + groupId, + readOnly, + actions, + onClose, + onOpenService, + onOpenSection, + onSelectPeer, + onAssignGroup, + onNewGroupFor, +}: { + service: ServiceEntity; + variables: ServiceVariable[]; + connections: InspectorConnection[]; + groups: InspectorGroup[]; + groupId: string | undefined; + readOnly?: boolean; + actions: InspectorActions; + onClose: () => void; + onOpenService: (serviceId: string) => void; + onOpenSection: (serviceId: string, section: string) => void; + onSelectPeer: (serviceId: string) => void; + onAssignGroup: (serviceId: string, groupId: string | null) => void; + onNewGroupFor: (serviceId: string) => void; +}) { + const accent = serviceAccent(service); + const publicUrl = service.domain ? `https://${service.domain}` : service.publicUrl; + const [copied, setCopied] = useState(false); + + const copyAddress = () => { + const text = publicUrl ?? (service.port ? `${service.name}:${service.port}` : service.name); + void navigator.clipboard?.writeText(text).then(() => { + setCopied(true); + window.setTimeout(() => setCopied(false), 1200); + }); + }; + + const configRows: [string, string | undefined][] = [ + ['Image', service.image], + ['Command', service.command], + ['Port', service.port ? String(service.port) : undefined], + ['Domain', service.domain], + ['Git repo', service.gitRepo], + ['Branch', service.gitBranch], + ['Build path', service.buildPath], + ['CPU', service.cpu], + ['Memory', service.memory], + ['Restart', service.restartPolicy], + ['Healthcheck', service.healthcheckPath], + ]; + const visibleConfig = configRows.filter(([, value]) => value); + + return ( +
+ ); +} diff --git a/app/frontend/src/features/workspace/canvas/nodes.tsx b/app/frontend/src/features/workspace/canvas/nodes.tsx index e2f66ee..f6b85da 100644 --- a/app/frontend/src/features/workspace/canvas/nodes.tsx +++ b/app/frontend/src/features/workspace/canvas/nodes.tsx @@ -15,6 +15,7 @@ export type ServiceNodeData = { export type GroupNodeData = { title: string; onRename?: (groupId: string, title: string) => void; + renameNonce?: number; }; export type ServiceNodeType = Node; @@ -170,6 +171,16 @@ export function GroupNode({ id, data }: NodeProps) { const [editing, setEditing] = useState(false); const [draft, setDraft] = useState(data.title); + // Context-menu rename requests bump the nonce; enter edit mode when it + // changes. Render-phase state adjustment — the React-sanctioned pattern. + const [seenRenameNonce, setSeenRenameNonce] = useState(data.renameNonce ?? 0); + const incomingNonce = data.renameNonce ?? 0; + if (incomingNonce > seenRenameNonce) { + setSeenRenameNonce(incomingNonce); + setDraft(data.title); + setEditing(true); + } + const commit = () => { const next = draft.trim() || data.title; setEditing(false); diff --git a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx index 126c5bd..9f0dace 100644 --- a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx +++ b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx @@ -620,6 +620,8 @@ export function ProjectWorkspacePage() { isDemoMode ? `/projects/${projectId}/services/${serviceId}?demo=1` : `/projects/${projectId}/services/${serviceId}`; + const serviceSectionHref = (serviceId: string, section: string) => + `${serviceHref(serviceId)}${isDemoMode ? '&' : '?'}section=${section}`; if (!isDemoMode && projectQuery.isLoading) { return ( @@ -738,6 +740,7 @@ export function ProjectWorkspacePage() { variablesByService={variablesByService} onAddService={openAddService} onOpenService={(serviceId) => navigate(serviceHref(serviceId))} + onOpenSection={(serviceId, section) => navigate(serviceSectionHref(serviceId, section))} readOnly={isDemoMode} /> {isDemoMode && ( From 66613579635db056d6877717cf33c229c57163ec Mon Sep 17 00:00:00 2001 From: Tomas Dvorak Date: Wed, 23 Sep 2026 18:59:14 +0200 Subject: [PATCH 5/5] feat(canvas): shared 26px grid + collision-free node placement Nodes snapped to the dot-grid lattice on drop; occupied spots resolve to the nearest free lattice cell instead of stacking. Same protection inside groups (sibling-aware), on inspector assign, and on ungroup. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../workspace/canvas/ProjectCanvas.tsx | 210 +++++++++++++++--- .../features/workspace/canvas/auto-layout.ts | 11 +- 2 files changed, 182 insertions(+), 39 deletions(-) diff --git a/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx b/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx index 023c25f..508e92c 100644 --- a/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx +++ b/app/frontend/src/features/workspace/canvas/ProjectCanvas.tsx @@ -180,6 +180,59 @@ const GROUP_PAD_X = 28; const GROUP_PAD_TOP = 56; const GROUP_PAD_BOTTOM = 24; const GROUP_ROW_GAP = 16; +const GRID_STEP = 26; +const NODE_GAP = 14; + +type Rect = { x: number; y: number; w: number; h: number }; + +function rectsOverlap(a: Rect, b: Rect): boolean { + return ( + a.x < b.x + b.w + NODE_GAP && + a.x + a.w + NODE_GAP > b.x && + a.y < b.y + b.h + NODE_GAP && + a.y + a.h + NODE_GAP > b.y + ); +} + +// Nearest grid-aligned position where a node fits without touching any +// occupied rect. Spiral-searches outward on the canvas lattice; falls back to +// the given position when the neighbourhood is fully boxed in. +function resolveFreeSpot( + desired: { x: number; y: number }, + occupied: Rect[], + fallback: { x: number; y: number }, + bounds?: Rect, +): { x: number; y: number } { + const snap = (v: number) => Math.round(v / GRID_STEP) * GRID_STEP; + const base = { x: snap(desired.x), y: snap(desired.y) }; + const fits = (x: number, y: number) => { + if (bounds && (x < bounds.x || y < bounds.y || x + NODE_WIDTH > bounds.x + bounds.w || y + NODE_HEIGHT > bounds.y + bounds.h)) { + return false; + } + return !occupied.some((rect) => rectsOverlap({ x, y, w: NODE_WIDTH, h: NODE_HEIGHT }, rect)); + }; + + if (fits(base.x, base.y)) { + return base; + } + + for (let ring = 1; ring <= 12; ring++) { + for (let dx = -ring; dx <= ring; dx++) { + for (let dy = -ring; dy <= ring; dy++) { + if (Math.max(Math.abs(dx), Math.abs(dy)) !== ring) { + continue; + } + const x = base.x + dx * GRID_STEP; + const y = base.y + dy * GRID_STEP; + if (fits(x, y)) { + return { x, y }; + } + } + } + } + + return fallback; +} // Where an incoming service lands inside a group frame. If the point already // fits inside the padded area, honour it. Otherwise append beneath the lowest @@ -196,14 +249,29 @@ function groupSlot( const width = typeof group.style?.width === 'number' ? group.style.width : GROUP_DEFAULT_WIDTH; const height = typeof group.style?.height === 'number' ? group.style.height : GROUP_DEFAULT_HEIGHT; - const fits = - desiredX >= GROUP_PAD_X && - desiredY >= GROUP_PAD_TOP && - desiredX + NODE_WIDTH <= width - GROUP_PAD_X && - desiredY + NODE_HEIGHT <= height - GROUP_PAD_BOTTOM; + const members = nodes.filter( + (node) => node.type === 'serviceNode' && node.parentId === groupId && node.id !== ignoreServiceId, + ); + const memberRects: Rect[] = members.map((node) => ({ + x: node.position.x, + y: node.position.y, + w: NODE_WIDTH, + h: NODE_HEIGHT, + })); + const snap = (v: number) => Math.round(v / GRID_STEP) * GRID_STEP; + const snappedX = snap(desiredX); + const snappedY = snap(desiredY); + const snappedFits = + snappedX >= GROUP_PAD_X && + snappedY >= GROUP_PAD_TOP && + snappedX + NODE_WIDTH <= width - GROUP_PAD_X && + snappedY + NODE_HEIGHT <= height - GROUP_PAD_BOTTOM; + const collides = memberRects.some((rect) => + rectsOverlap({ x: snappedX, y: snappedY, w: NODE_WIDTH, h: NODE_HEIGHT }, rect), + ); - if (fits) { - return { x: desiredX, y: desiredY, width, height }; + if (snappedFits && !collides) { + return { x: snappedX, y: snappedY, width, height }; } let bottom = GROUP_PAD_TOP - GROUP_ROW_GAP; @@ -561,6 +629,27 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on return null; }, [getInternalNode, nodes]); + const dragStartPositions = useRef>(new Map()); + + const onNodeDragStart = useCallback( + (_event: MouseEvent, node: CanvasNode) => { + const abs = getInternalNode(node.id)?.internals.positionAbsolute ?? node.position; + dragStartPositions.current.set(node.id, { ...abs }); + }, + [getInternalNode], + ); + + const absoluteServiceRects = useCallback( + (excludeId: string): Rect[] => + nodes + .filter((node) => node.type === 'serviceNode' && node.id !== excludeId) + .map((node) => { + const abs = getInternalNode(node.id)?.internals.positionAbsolute ?? node.position; + return { x: abs.x, y: abs.y, w: NODE_WIDTH, h: NODE_HEIGHT }; + }), + [getInternalNode, nodes], + ); + const onNodeDragStop = useCallback( (_event: MouseEvent, movedNode: CanvasNode) => { if (movedNode.type !== 'serviceNode') { @@ -568,6 +657,7 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on } const basePosition = getInternalNode(movedNode.id)?.internals.positionAbsolute ?? movedNode.position; + const fallback = dragStartPositions.current.get(movedNode.id) ?? basePosition; const centerX = basePosition.x + NODE_WIDTH / 2; const centerY = basePosition.y + NODE_HEIGHT / 2; const targetGroup = getGroupUnderPoint(centerX, centerY, movedNode.parentId); @@ -604,26 +694,54 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on return; } - if (!movedNode.parentId) { - return; - } - - // Still inside its own frame — keep membership, the relative move stands. - const parent = nodes.find((entry) => entry.id === movedNode.parentId && entry.type === 'groupNode'); - if (parent) { - const parentAbs = getInternalNode(parent.id)?.internals.positionAbsolute ?? parent.position; - const parentW = typeof parent.style?.width === 'number' ? parent.style.width : GROUP_DEFAULT_WIDTH; - const parentH = typeof parent.style?.height === 'number' ? parent.style.height : GROUP_DEFAULT_HEIGHT; - const inside = - centerX >= parentAbs.x && - centerX <= parentAbs.x + parentW && - centerY >= parentAbs.y && - centerY <= parentAbs.y + parentH; - if (inside) { - return; + // Member staying inside its own frame — keep membership, but resolve + // against siblings so nodes can't stack on each other. + if (movedNode.parentId) { + const parent = nodes.find((entry) => entry.id === movedNode.parentId && entry.type === 'groupNode'); + if (parent) { + const parentAbs = getInternalNode(parent.id)?.internals.positionAbsolute ?? parent.position; + const parentW = typeof parent.style?.width === 'number' ? parent.style.width : GROUP_DEFAULT_WIDTH; + const parentH = typeof parent.style?.height === 'number' ? parent.style.height : GROUP_DEFAULT_HEIGHT; + const inside = + centerX >= parentAbs.x && + centerX <= parentAbs.x + parentW && + centerY >= parentAbs.y && + centerY <= parentAbs.y + parentH; + if (inside) { + const siblingRects: Rect[] = nodes + .filter( + (entry) => + entry.type === 'serviceNode' && entry.parentId === parent.id && entry.id !== movedNode.id, + ) + .map((entry) => ({ x: entry.position.x, y: entry.position.y, w: NODE_WIDTH, h: NODE_HEIGHT })); + const relDesired = { x: basePosition.x - parentAbs.x, y: basePosition.y - parentAbs.y }; + const relFallback = { + x: Math.max(GROUP_PAD_X, Math.min(parentW - GROUP_PAD_X - NODE_WIDTH, fallback.x - parentAbs.x)), + y: Math.max(GROUP_PAD_TOP, Math.min(parentH - GROUP_PAD_BOTTOM - NODE_HEIGHT, fallback.y - parentAbs.y)), + }; + const bounds: Rect = { + x: GROUP_PAD_X, + y: GROUP_PAD_TOP, + w: Math.max(NODE_WIDTH, parentW - GROUP_PAD_X * 2), + h: Math.max(NODE_HEIGHT, parentH - GROUP_PAD_TOP - GROUP_PAD_BOTTOM), + }; + const spot = resolveFreeSpot(relDesired, siblingRects, relFallback, bounds); + setNodes((current) => + current.map((entry) => + entry.id === movedNode.id && entry.type === 'serviceNode' + ? { ...entry, position: spot } + : entry, + ), + ); + return; + } } } + // Free placement — snapped to the canvas grid and pushed off any node it + // would overlap; reverts to the pre-drag spot if fully boxed in. + const spot = resolveFreeSpot(basePosition, absoluteServiceRects(movedNode.id), fallback); + setNodes((current) => current.map((node) => { if (node.id !== movedNode.id || node.type !== 'serviceNode') { @@ -634,15 +752,12 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on ...node, parentId: undefined, extent: undefined, - position: { - x: basePosition.x, - y: basePosition.y, - }, + position: spot, }; }), ); }, - [getGroupUnderPoint, getInternalNode, nodes, setNodes], + [absoluteServiceRects, getGroupUnderPoint, getInternalNode, nodes, setNodes], ); const addGroup = useCallback( @@ -696,13 +811,20 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on const abs = getInternalNode(serviceId)?.internals.positionAbsolute ?? node.position; if (groupId === null) { - setNodes((current) => - current.map((entry) => + setNodes((current) => { + const occupied: Rect[] = current + .filter((entry) => entry.type === 'serviceNode' && entry.id !== serviceId) + .map((entry) => { + const entryAbs = getInternalNode(entry.id)?.internals.positionAbsolute ?? entry.position; + return { x: entryAbs.x, y: entryAbs.y, w: NODE_WIDTH, h: NODE_HEIGHT }; + }); + const spot = resolveFreeSpot(abs, occupied, abs); + return current.map((entry) => entry.id === serviceId && entry.type === 'serviceNode' - ? { ...entry, parentId: undefined, extent: undefined, position: abs } + ? { ...entry, parentId: undefined, extent: undefined, position: spot } : entry, - ), - ); + ); + }); return; } @@ -773,12 +895,27 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on const deleteGroup = useCallback( (groupId: string) => { setNodes((current) => { + const memberIds = new Set( + current + .filter((entry) => entry.type === 'serviceNode' && entry.parentId === groupId) + .map((entry) => entry.id), + ); + // Freed members must not land on free nodes — resolve each in turn and + // treat already-placed members as occupied for the next. + const occupied: Rect[] = current + .filter((entry) => entry.type === 'serviceNode' && !memberIds.has(entry.id)) + .map((entry) => { + const abs = getInternalNode(entry.id)?.internals.positionAbsolute ?? entry.position; + return { x: abs.x, y: abs.y, w: NODE_WIDTH, h: NODE_HEIGHT }; + }); const unparented = current.map((entry) => { if (entry.type !== 'serviceNode' || entry.parentId !== groupId) { return entry; } const abs = getInternalNode(entry.id)?.internals.positionAbsolute ?? entry.position; - return { ...entry, parentId: undefined, extent: undefined, position: abs }; + const spot = resolveFreeSpot(abs, occupied, abs); + occupied.push({ x: spot.x, y: spot.y, w: NODE_WIDTH, h: NODE_HEIGHT }); + return { ...entry, parentId: undefined, extent: undefined, position: spot }; }); return unparented.filter((entry) => entry.id !== groupId); }); @@ -913,7 +1050,10 @@ function CanvasInner({ projectId, services, variablesByService, onAddService, on }} onNodeContextMenu={onNodeContextMenu} onPaneContextMenu={onPaneContextMenu} + onNodeDragStart={onNodeDragStart} onNodeDragStop={onNodeDragStop} + snapToGrid + snapGrid={[GRID_STEP, GRID_STEP]} onMoveEnd={() => setViewportTick((value) => value + 1)} panOnDrag zoomOnScroll diff --git a/app/frontend/src/features/workspace/canvas/auto-layout.ts b/app/frontend/src/features/workspace/canvas/auto-layout.ts index 8b26e9f..3c710c8 100644 --- a/app/frontend/src/features/workspace/canvas/auto-layout.ts +++ b/app/frontend/src/features/workspace/canvas/auto-layout.ts @@ -4,8 +4,9 @@ import { inferAutoConnections } from '../auto-connections'; export const NODE_WIDTH = 240; export const NODE_HEIGHT = 104; -export const COL_GAP = 340; -export const ROW_GAP = 172; +// Multiples of the 26px canvas grid so laid-out nodes land on the lattice. +export const COL_GAP = 338; +export const ROW_GAP = 182; type LinkEdge = { sourceServiceId: string; targetServiceId: string }; @@ -81,8 +82,10 @@ export function computeLayeredLayout( looseServices.length, ); + const gridOffset = (value: number) => Math.round(value / 26) * 26; + for (const [col, list] of columns) { - const offsetY = ((maxRows - list.length) * ROW_GAP) / 2; + const offsetY = gridOffset(((maxRows - list.length) * ROW_GAP) / 2); list.forEach((service, row) => { positions.set(service.id, { x: col * COL_GAP, y: offsetY + row * ROW_GAP }); }); @@ -90,7 +93,7 @@ export function computeLayeredLayout( looseServices.forEach((service, row) => { const col = connectedColCount > 0 ? connectedColCount : 0; - const offsetY = ((maxRows - looseServices.length) * ROW_GAP) / 2; + const offsetY = gridOffset(((maxRows - looseServices.length) * ROW_GAP) / 2); positions.set(service.id, { x: col * COL_GAP, y: offsetY + row * ROW_GAP }); });