diff --git a/apps/electron/src/renderer/components/CanvasView.test.tsx b/apps/electron/src/renderer/components/CanvasView.test.tsx
new file mode 100644
index 00000000..a797eadf
--- /dev/null
+++ b/apps/electron/src/renderer/components/CanvasView.test.tsx
@@ -0,0 +1,70 @@
+/**
+ * @vitest-environment jsdom
+ */
+
+import { render, screen } from '@testing-library/react'
+import React from 'react'
+import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { CanvasView } from './CanvasView'
+
+const mockUseIdentity = vi.fn()
+const mockUseNode = vi.fn()
+
+vi.mock('@xnetjs/canvas', async () => {
+ const ReactModule = await import('react')
+
+ return {
+ Canvas: ReactModule.forwardRef(function MockCanvas() {
+ return
canvas
+ }),
+ createNode: vi.fn(() => ({
+ id: 'node-1',
+ type: 'card',
+ position: { x: 0, y: 0, width: 100, height: 100 },
+ properties: {}
+ }))
+ }
+})
+
+vi.mock('@xnetjs/data', () => ({
+ CanvasSchema: {
+ schema: {
+ '@id': 'xnet://schema/canvas'
+ }
+ }
+}))
+
+vi.mock('@xnetjs/react', () => ({
+ useIdentity: (...args: unknown[]) => mockUseIdentity(...args),
+ useNode: (...args: unknown[]) => mockUseNode(...args)
+}))
+
+describe('CanvasView', () => {
+ beforeEach(() => {
+ const nodesMap = {
+ size: 0,
+ observe: vi.fn(),
+ unobserve: vi.fn()
+ }
+
+ mockUseIdentity.mockReturnValue({ did: 'did:key:test' })
+ mockUseNode.mockReturnValue({
+ data: { title: 'Workspace Canvas' },
+ doc: {
+ getMap: vi.fn(() => nodesMap)
+ },
+ loading: false,
+ awareness: null
+ })
+ })
+
+ it('keeps the canvas host at full height for the renderer shell', () => {
+ render()
+
+ const canvas = screen.getByTestId('mock-canvas')
+ const canvasHost = canvas.parentElement?.parentElement
+
+ expect(canvasHost).not.toBeNull()
+ expect(canvasHost?.className).toContain('h-full')
+ })
+})
diff --git a/apps/electron/src/renderer/components/CanvasView.tsx b/apps/electron/src/renderer/components/CanvasView.tsx
index ea2a0fe0..b086aa63 100644
--- a/apps/electron/src/renderer/components/CanvasView.tsx
+++ b/apps/electron/src/renderer/components/CanvasView.tsx
@@ -227,7 +227,7 @@ export const CanvasView = forwardRef(function
}
return (
-
+
{canvas?.title || 'Workspace Canvas'}
diff --git a/packages/ui/src/primitives/Menu.tsx b/packages/ui/src/primitives/Menu.tsx
index e68bdf73..fd24578a 100644
--- a/packages/ui/src/primitives/Menu.tsx
+++ b/packages/ui/src/primitives/Menu.tsx
@@ -115,11 +115,7 @@ export function MenuSeparator() {
* A label for use with the simple Menu component.
*/
export function MenuLabel({ children }: { children: React.ReactNode }) {
- return (
-
- {children}
-
- )
+ return
{children}
}
// ─── Compound Components (for advanced usage) ───────────────────────