- {t('unifiedCanvas.clearCanvasHistoryMessage')}
-
- {t('unifiedCanvas.clearCanvasHistoryConfirm')}
-
- >
- );
-};
-export default memo(ClearCanvasHistoryButtonModal);
diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx
deleted file mode 100644
index c08b70a783..0000000000
--- a/invokeai/frontend/web/src/features/canvas/components/IAICanvas.tsx
+++ /dev/null
@@ -1,198 +0,0 @@
-import { Box, chakra, Flex } from '@invoke-ai/ui-library';
-import { useStore } from '@nanostores/react';
-import { createMemoizedSelector } from 'app/store/createMemoizedSelector';
-import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
-import useCanvasDragMove from 'features/canvas/hooks/useCanvasDragMove';
-import useCanvasHotkeys from 'features/canvas/hooks/useCanvasHotkeys';
-import useCanvasMouseDown from 'features/canvas/hooks/useCanvasMouseDown';
-import useCanvasMouseMove from 'features/canvas/hooks/useCanvasMouseMove';
-import useCanvasMouseOut from 'features/canvas/hooks/useCanvasMouseOut';
-import useCanvasMouseUp from 'features/canvas/hooks/useCanvasMouseUp';
-import useCanvasWheel from 'features/canvas/hooks/useCanvasZoom';
-import {
- $canvasBaseLayer,
- $canvasStage,
- $isModifyingBoundingBox,
- $isMouseOverBoundingBox,
- $isMovingStage,
- $isTransformingBoundingBox,
- $tool,
-} from 'features/canvas/store/canvasNanostore';
-import { isStagingSelector } from 'features/canvas/store/canvasSelectors';
-import { canvasResized, selectCanvasSlice } from 'features/canvas/store/canvasSlice';
-import type Konva from 'konva';
-import type { KonvaEventObject } from 'konva/lib/Node';
-import type { Vector2d } from 'konva/lib/types';
-import { memo, useCallback, useEffect, useMemo, useRef } from 'react';
-import { Layer, Stage } from 'react-konva';
-
-import IAICanvasBoundingBoxOverlay from './IAICanvasBoundingBoxOverlay';
-import IAICanvasGrid from './IAICanvasGrid';
-import IAICanvasIntermediateImage from './IAICanvasIntermediateImage';
-import IAICanvasMaskCompositor from './IAICanvasMaskCompositor';
-import IAICanvasMaskLines from './IAICanvasMaskLines';
-import IAICanvasObjectRenderer from './IAICanvasObjectRenderer';
-import IAICanvasStagingArea from './IAICanvasStagingArea';
-import IAICanvasStagingAreaToolbar from './IAICanvasStagingAreaToolbar';
-import IAICanvasStatusText from './IAICanvasStatusText';
-import IAICanvasBoundingBox from './IAICanvasToolbar/IAICanvasBoundingBox';
-import IAICanvasToolPreview from './IAICanvasToolPreview';
-
-const selector = createMemoizedSelector(selectCanvasSlice, (canvas) => {
- return {
- stageCoordinates: canvas.stageCoordinates,
- stageDimensions: canvas.stageDimensions,
- };
-});
-
-const ChakraStage = chakra(Stage, {
- shouldForwardProp: (prop) => !['sx'].includes(prop),
-});
-
-const IAICanvas = () => {
- const isStaging = useAppSelector(isStagingSelector);
- const isMaskEnabled = useAppSelector((s) => s.canvas.isMaskEnabled);
- const shouldShowBoundingBox = useAppSelector((s) => s.canvas.shouldShowBoundingBox);
- const shouldShowGrid = useAppSelector((s) => s.canvas.shouldShowGrid);
- const stageScale = useAppSelector((s) => s.canvas.stageScale);
- const shouldShowIntermediates = useAppSelector((s) => s.canvas.shouldShowIntermediates);
- const shouldAntialias = useAppSelector((s) => s.canvas.shouldAntialias);
- const shouldRestrictStrokesToBox = useAppSelector((s) => s.canvas.shouldRestrictStrokesToBox);
- const { stageCoordinates, stageDimensions } = useAppSelector(selector);
- const dispatch = useAppDispatch();
- const containerRef = useRef