@yuzhouu/canvas-kit 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,7 +33,7 @@ import type { LayerOrderDirection, LayerOrderEdge, ShapeSelectionSiblingOrderSta
33
33
  import type { ReparentShapePlacementInput, ReparentShapePlacementResult } from "./shapes/shapeReparenting";
34
34
  import { SnapManager, type SnapDiagnostics } from "./snapping/snapManager";
35
35
  import type { EditorRenderSignals, EditorStateSignals } from "./state/editorSignals";
36
- import { type CameraAnimationScheduler } from "./viewport/cameraManager";
36
+ import { type CameraAnimationScheduler, type CameraLockPoint } from "./viewport/cameraManager";
37
37
  export interface EditorOptions {
38
38
  shapeUtils?: ShapeUtil[];
39
39
  shapeSvgExporters?: ShapeSvgExporter[];
@@ -293,6 +293,7 @@ export declare class Editor {
293
293
  pageId?: PageId;
294
294
  source?: ChangeSource;
295
295
  }) => void;
296
+ readonly setLock: (pagePoint: CameraLockPoint | null) => boolean;
296
297
  readonly pan: (delta: Vec, source?: ChangeSource) => void;
297
298
  readonly zoomAtScreenPoint: (screenPoint: Vec, deltaY: number, source?: ChangeSource) => void;
298
299
  readonly zoomToScreenPoint: (screenPoint: Vec, zoom: number, source?: ChangeSource) => void;
@@ -4,6 +4,7 @@ import type { Mat } from "../../geometry/mat";
4
4
  import type { Vec } from "../../geometry/vec";
5
5
  import type { Camera, PageId, PageRecord, SessionRecord, ShapeEditingEntryRequest, ShapeEditingSession, ShapeId, ShapeRecord } from "../../schema/records";
6
6
  import type { HistoryState } from "../history/historyManager";
7
+ import type { CameraLock } from "../viewport/cameraManager";
7
8
  import type { BindingPreviewState, SelectionBindingSegment, SelectionOverlayFrameGeometryState, SelectionOverlayFrameStyleState, SelectionOverlayHandleAnchorsState, SelectionOverlayHandlesState, SnapIndicatorState, TerminalBindingGuideState } from "../selection/selection";
8
9
  import type { SelectedShapeOverlayItem } from "../selection/selectionOverlay";
9
10
  import type { RenderItem } from "../viewport/renderWindow";
@@ -31,6 +32,7 @@ export interface EditorStateSignals {
31
32
  readonly selectionLocalBounds: Signal<Box | null>;
32
33
  readonly selectionAnchorPagePoint: Signal<Vec | null>;
33
34
  readonly camera: Signal<Camera>;
35
+ readonly cameraLock: Signal<CameraLock | null>;
34
36
  readonly cameraZoom: Signal<number>;
35
37
  readonly pageTransform: Signal<Mat>;
36
38
  readonly viewportScreenSize: Signal<{
@@ -14,6 +14,14 @@ export interface CameraAnimationOptions {
14
14
  pageId?: PageId;
15
15
  source?: ChangeSource;
16
16
  }
17
+ export interface CameraLockPoint {
18
+ readonly x: number;
19
+ readonly y: number;
20
+ }
21
+ export interface CameraLock {
22
+ readonly pageId: PageId;
23
+ readonly pagePoint: CameraLockPoint;
24
+ }
17
25
  /**
18
26
  * Camera and viewport-screen-size state for the editor. Owns the viewport size
19
27
  * atom (viewport + camera together define the page<->screen transform) and the
@@ -29,6 +37,8 @@ export declare class CameraManager {
29
37
  w: number;
30
38
  h: number;
31
39
  }>;
40
+ private readonly _cameraLockSignal;
41
+ readonly cameraLockSignal: Signal<CameraLock | null>;
32
42
  private animationFrame;
33
43
  private animationGeneration;
34
44
  constructor(editor: Editor, animationScheduler?: CameraAnimationScheduler | undefined);
@@ -40,6 +50,7 @@ export declare class CameraManager {
40
50
  pageId?: PageId;
41
51
  source?: ChangeSource;
42
52
  }): void;
53
+ setLock(pagePoint: CameraLockPoint | null): boolean;
43
54
  animateCameraTo(target: Camera, options: CameraAnimationOptions): void;
44
55
  cancelAnimation(): void;
45
56
  dispose(): void;
@@ -1,5 +1,5 @@
1
1
  export { Editor, type CenterOnShapeOptions, } from "./editor/editor";
2
- export type { CameraAnimationScheduler } from "./editor/viewport/cameraManager";
2
+ export type { CameraAnimationScheduler, CameraLock, CameraLockPoint, } from "./editor/viewport/cameraManager";
3
3
  export { createEditor, type CreateEditorOptions, } from "./editor/createEditor";
4
4
  export { HistoryManager, type HistoryScope, type HistoryState, } from "./editor/history/historyManager";
5
5
  export { EditorOperationManager, type EditorCommit, type EditorOperation, type EditorOperationHistory, type EditorOperationOptions, } from "./editor/history/operationManager";
@@ -11,3 +11,17 @@ export declare function useCanvasKitFloatingPosition({ viewport, fallbackPlaceme
11
11
  placement: Placement;
12
12
  visible?: boolean;
13
13
  }): void;
14
+ export declare function createCanvasKitFloatingMiddleware({ fallbackPlacements, offset, padding, }: {
15
+ fallbackPlacements: readonly Placement[];
16
+ offset: number;
17
+ padding: {
18
+ top: number;
19
+ right: number;
20
+ bottom: number;
21
+ left: number;
22
+ };
23
+ }): {
24
+ name: string;
25
+ options?: any;
26
+ fn: (state: import("@floating-ui/dom").MiddlewareState) => import("@floating-ui/dom").MiddlewareReturn | Promise<import("@floating-ui/dom").MiddlewareReturn>;
27
+ }[];