diff --git a/src/App.tsx b/src/App.tsx
index 826d05e..7f144da 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -35,8 +35,7 @@ import {
ContextMenuGroup
} from "@/components/ui/context-menu"
import { AppMenubar } from '@/components/AppMenubar'
-import { Button } from '@/components/ui/button'
-import { ClipboardPaste, Code2, Moon, ScrollText, Sparkles, Sun, Variable } from 'lucide-react'
+import { ClipboardPaste, Code2, ScrollText, Sparkles, Variable } from 'lucide-react'
import { DEFAULT_NODE_STYLE, getDefaultDataForType, getNextNodeId } from './lib/flowUtils'
const SNAP_GRID: [number, number] = [15, 15]
@@ -69,7 +68,7 @@ const initialEdges: Edge[] = [
const PROJECT_FILE_EXT = '.zui.json'
export default function App() {
- const { theme, toggleTheme } = useTheme()
+ const { theme } = useTheme()
const {
nodes,
edges,
@@ -378,16 +377,6 @@ export default function App() {
canRedo={canRedo}
/>
-
diff --git a/src/components/AppMenubar.tsx b/src/components/AppMenubar.tsx
index a83c3ad..c26fd7d 100644
--- a/src/components/AppMenubar.tsx
+++ b/src/components/AppMenubar.tsx
@@ -5,9 +5,14 @@ import {
MenubarItem,
MenubarMenu,
MenubarTrigger,
+ MenubarSub,
+ MenubarSubTrigger,
+ MenubarSubContent,
+ MenubarCheckboxItem,
} from '@/components/ui/menubar'
import { Kbd, KbdGroup } from '@/components/ui/kbd'
-import { Download, FolderOpen, Redo2, Undo2 } from 'lucide-react'
+import { useTheme } from '@/lib/themeContext'
+import { Download, FolderOpen, Moon, Redo2, Sun, Undo2 } from 'lucide-react'
type AppMenubarProps = {
onImport: () => void
@@ -31,6 +36,8 @@ function matchKey(ev: KeyboardEvent, want: { key: string; shiftKey: boolean }) {
}
export function AppMenubar({ onImport, onExport, undo, redo, canUndo, canRedo }: AppMenubarProps) {
+ const { theme, setTheme } = useTheme()
+
useEffect(() => {
const onKeyDown = (ev: KeyboardEvent) => {
if (matchKey(ev, UNDO_KEYS)) {
@@ -92,6 +99,32 @@ export function AppMenubar({ onImport, onExport, undo, redo, canUndo, canRedo }:
+
+ View
+
+
+ Theme
+
+ setTheme('light')}
+ className="gap-2"
+ >
+
+ Light
+
+ setTheme('dark')}
+ className="gap-2"
+ >
+
+ Dark
+
+
+
+
+
)
}
diff --git a/src/components/graph/RenderingNode.tsx b/src/components/graph/RenderingNode.tsx
index 88f65b4..8502901 100644
--- a/src/components/graph/RenderingNode.tsx
+++ b/src/components/graph/RenderingNode.tsx
@@ -13,7 +13,7 @@ import { NodeFooterEdgeIndicators } from './NodeFooterEdgeIndicators'
import { NodeHeaderTitle } from './NodeHeaderTitle'
import { NodeMenubar } from './NodeMenubar'
import { NodeStatusIndicator } from './NodeStatusIndicator'
-import { MenubarItem, MenubarSub, MenubarSubContent, MenubarSubTrigger } from '../ui/menubar'
+import { MenubarItem, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger } from '../ui/menubar'
import { Sparkles } from 'lucide-react'
import { InputHandle } from './NodeHandles'
@@ -541,6 +541,7 @@ export const RenderingNode = memo(function RenderingNode({ id, width, height }:
nodeType="render"
nodeMenuExtraContent={
+
Export