vue3-sketch-ruler
Version:
> 是一个基于 Vue 3 + TypeScript 的标尺组件库,适用于低代码平台、大屏可视化、做图工具等场景,提供类似 Photoshop 的缩放与标尺辅助线体验。
29 lines (24 loc) • 992 B
text/typescript
/**
* RulerContext - 标尺-画布-参考线跨层级状态共享体系
* 基于 Vue 3 provide/inject 机制
* 纯类型已从 @sketch-ruler/core 导入
*/
import type { Ref, InjectionKey } from 'vue'
import type { TransformEngine } from '@sketch-ruler/core'
import type { ScaleMark } from '@sketch-ruler/core'
import type { GuideLine, RulerPalette, SnapConfig } from '@sketch-ruler/core'
// 重新导出纯类型,保持现有文件的引用兼容性
export type { GuideLine, RulerPalette, SnapConfig, ZoomMode } from '@sketch-ruler/core'
export interface RulerContext {
scale: Ref<number>
offset: Ref<{ x: number; y: number }>
viewportSize: Ref<{ width: number; height: number }>
contentSize: Ref<{ width: number; height: number }>
lines: Ref<GuideLine[]>
snapConfig: SnapConfig
palette: RulerPalette
engine: TransformEngine
showRuler: Ref<boolean>
showReferLine: Ref<boolean>
}
export const RulerContextKey: InjectionKey<RulerContext> = Symbol('RulerContext')