refactor(vue-nodes): typed TransformState InjectionKey, safer ResizeObserver sizing, centralized slot tracking, and small readability updates

This commit is contained in:
Benjamin Lu
2025-09-09 16:20:25 -07:00
parent b6269c0e37
commit 428752619c
9 changed files with 335 additions and 293 deletions

View File

@@ -0,0 +1,18 @@
import type { InjectionKey } from 'vue'
import type { Point } from '@/renderer/core/layout/types'
export interface TransformState {
screenToCanvas: (p: Point) => Point
canvasToScreen: (p: Point) => Point
camera?: { x: number; y: number; z: number }
isNodeInViewport?: (
nodePos: ArrayLike<number>,
nodeSize: ArrayLike<number>,
viewport: { width: number; height: number },
margin?: number
) => boolean
}
export const TransformStateKey: InjectionKey<TransformState> =
Symbol('transformState')