@zsviczian/excalidraw 0.17.1-obsidian-51 → 0.17.1-obsidian-52

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zsviczian/excalidraw",
3
- "version": "0.17.1-obsidian-51",
3
+ "version": "0.17.1-obsidian-52",
4
4
  "main": "main.js",
5
5
  "types": "types/excalidraw/index.d.ts",
6
6
  "files": [
@@ -1,5 +1,5 @@
1
1
  import type { ExcalidrawElement } from "../element/types";
2
- import type { AppClassProperties, AppState } from "../types";
2
+ import type { AppState, Offsets, AppClassProperties } from "../types";
3
3
  import type { SceneBounds } from "../element/bounds";
4
4
  export declare const actionChangeViewBackgroundColor: {
5
5
  name: "changeViewBackgroundColor";
@@ -864,13 +864,21 @@ export declare const actionResetZoom: {
864
864
  } & {
865
865
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
866
866
  };
867
- export declare const zoomToFitBounds: ({ bounds, appState, fitToViewport, viewportZoomFactor, }: {
867
+ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToViewport, viewportZoomFactor, minZoom, maxZoom, }: {
868
868
  bounds: SceneBounds;
869
+ canvasOffsets?: Partial<{
870
+ top: number;
871
+ right: number;
872
+ bottom: number;
873
+ left: number;
874
+ }> | undefined;
869
875
  appState: Readonly<AppState>;
870
876
  /** whether to fit content to viewport (beyond >100%) */
871
877
  fitToViewport: boolean;
872
878
  /** zoom content to cover X of the viewport, when fitToViewport=true */
873
879
  viewportZoomFactor?: number | undefined;
880
+ minZoom?: number | undefined;
881
+ maxZoom?: number | undefined;
874
882
  }) => {
875
883
  appState: {
876
884
  scrollX: number;
@@ -1071,13 +1079,21 @@ export declare const zoomToFitBounds: ({ bounds, appState, fitToViewport, viewpo
1071
1079
  };
1072
1080
  storeAction: "none";
1073
1081
  };
1074
- export declare const zoomToFit: ({ targetElements, appState, fitToViewport, viewportZoomFactor, }: {
1082
+ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitToViewport, viewportZoomFactor, minZoom, maxZoom, }: {
1083
+ canvasOffsets?: Partial<{
1084
+ top: number;
1085
+ right: number;
1086
+ bottom: number;
1087
+ left: number;
1088
+ }> | undefined;
1075
1089
  targetElements: readonly ExcalidrawElement[];
1076
1090
  appState: Readonly<AppState>;
1077
1091
  /** whether to fit content to viewport (beyond >100%) */
1078
1092
  fitToViewport: boolean;
1079
1093
  /** zoom content to cover X of the viewport, when fitToViewport=true */
1080
1094
  viewportZoomFactor?: number | undefined;
1095
+ minZoom?: number | undefined;
1096
+ maxZoom?: number | undefined;
1081
1097
  }) => {
1082
1098
  appState: {
1083
1099
  scrollX: number;
@@ -1708,7 +1724,7 @@ export declare const actionZoomToFit: {
1708
1724
  trackEvent: {
1709
1725
  category: "canvas";
1710
1726
  };
1711
- perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>) => {
1727
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
1712
1728
  appState: {
1713
1729
  scrollX: number;
1714
1730
  scrollY: number;
@@ -209,7 +209,8 @@ export declare const actionToggleSearchMenu: {
209
209
  } | {
210
210
  appState: {
211
211
  openSidebar: {
212
- name: string;
212
+ name: "default";
213
+ tab: string;
213
214
  };
214
215
  openDialog: null;
215
216
  contextMenu: {
@@ -8,7 +8,7 @@ import { LinearElementEditor } from "../element/linearElementEditor";
8
8
  import type { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "../element/types";
9
9
  import { History } from "../history";
10
10
  import Scene from "../scene/Scene";
11
- import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize } from "../types";
11
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
12
12
  import type { FileSystemHandle } from "../data/filesystem";
13
13
  import { Fonts } from "../fonts";
14
14
  import { Renderer } from "../scene/Renderer";
@@ -328,7 +328,7 @@ declare class App extends React.Component<AppProps, AppState> {
328
328
  */
329
329
  zoomCanvas: (value: number) => void;
330
330
  private cancelInProgressAnimation;
331
- scrollToContent: (target?: ExcalidrawElement | readonly ExcalidrawElement[], opts?: {
331
+ scrollToContent: (target?: ExcalidrawElement | readonly ExcalidrawElement[], opts?: ({
332
332
  fitToContent?: boolean;
333
333
  fitToViewport?: never;
334
334
  viewportZoomFactor?: number;
@@ -343,6 +343,10 @@ declare class App extends React.Component<AppProps, AppState> {
343
343
  viewportZoomFactor?: number;
344
344
  animate?: boolean;
345
345
  duration?: number;
346
+ }) & {
347
+ minZoom?: number;
348
+ maxZoom?: number;
349
+ canvasOffsets?: Offsets;
346
350
  }) => void;
347
351
  private maybeUnfollowRemoteUser;
348
352
  /** use when changing scrollX/scrollY/zoom based on user interaction */
@@ -383,12 +387,7 @@ declare class App extends React.Component<AppProps, AppState> {
383
387
  force?: boolean | undefined;
384
388
  }) => boolean;
385
389
  private updateCurrentCursorPosition;
386
- getEditorUIOffsets: () => {
387
- top: number;
388
- right: number;
389
- bottom: number;
390
- left: number;
391
- };
390
+ getEditorUIOffsets: () => Offsets;
392
391
  private onKeyDown;
393
392
  private onKeyUp;
394
393
  private isToolSupported;
@@ -22,9 +22,9 @@ export declare const DefaultSidebar: import("react").FC<Omit<MarkOptional<Omit<{
22
22
  __fallback?: boolean | undefined;
23
23
  }>;
24
24
  TabTriggers: {
25
- ({ children, ...rest }: {
25
+ ({ children }: {
26
26
  children: React.ReactNode;
27
- } & import("react").HTMLAttributes<HTMLDivElement>): JSX.Element;
27
+ }): JSX.Element;
28
28
  displayName: string;
29
29
  };
30
30
  };
@@ -273,13 +273,11 @@ export declare const DEFAULT_ELEMENT_PROPS: {
273
273
  locked: ExcalidrawElement["locked"];
274
274
  };
275
275
  export declare const LIBRARY_SIDEBAR_TAB = "library";
276
+ export declare const CANVAS_SEARCH_TAB = "search";
276
277
  export declare const DEFAULT_SIDEBAR: {
277
278
  readonly name: "default";
278
279
  readonly defaultTab: "library";
279
280
  };
280
- export declare const SEARCH_SIDEBAR: {
281
- name: string;
282
- };
283
281
  export declare const LIBRARY_DISABLED_TYPES: Set<"image" | "iframe" | "embeddable">;
284
282
  export declare const TOOL_TYPE: {
285
283
  readonly selection: "selection";
@@ -27,7 +27,6 @@ export declare const newTextElement: (opts: {
27
27
  verticalAlign?: VerticalAlign;
28
28
  containerId?: ExcalidrawTextContainer["id"] | null;
29
29
  lineHeight?: ExcalidrawTextElement["lineHeight"];
30
- strokeWidth?: ExcalidrawTextElement["strokeWidth"];
31
30
  autoResize?: ExcalidrawTextElement["autoResize"];
32
31
  } & ElementConstructorOpts) => NonDeleted<ExcalidrawTextElement>;
33
32
  export declare const refreshTextDimensions: (textElement: ExcalidrawTextElement, container: ExcalidrawTextContainer | null, elementsMap: ElementsMap, text?: string) => {
@@ -1,5 +1,5 @@
1
1
  import type { ElementsMap, ExcalidrawElement } from "./types";
2
- import type { AppState, Zoom } from "../types";
2
+ import type { AppState, Offsets, Zoom } from "../types";
3
3
  export declare const isInvisiblySmallElement: (element: ExcalidrawElement) => boolean;
4
4
  export declare const isElementInViewport: (element: ExcalidrawElement, width: number, height: number, viewTransformations: {
5
5
  zoom: Zoom;
@@ -14,12 +14,7 @@ export declare const isElementCompletelyInViewport: (elements: ExcalidrawElement
14
14
  offsetTop: number;
15
15
  scrollX: number;
16
16
  scrollY: number;
17
- }, elementsMap: ElementsMap, padding?: Partial<{
18
- top: number;
19
- right: number;
20
- bottom: number;
21
- left: number;
22
- }>) => boolean;
17
+ }, elementsMap: ElementsMap, padding?: Offsets) => boolean;
23
18
  /**
24
19
  * Makes a perfect shape or diagonal/horizontal/vertical line
25
20
  */
@@ -1,12 +1,18 @@
1
- import type { AppState, PointerCoords, Zoom } from "../types";
1
+ import type { AppState, Offsets, PointerCoords, Zoom } from "../types";
2
2
  import type { ExcalidrawElement } from "../element/types";
3
- export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, }: {
3
+ export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, offsets, }: {
4
4
  scenePoint: PointerCoords;
5
5
  viewportDimensions: {
6
6
  height: number;
7
7
  width: number;
8
8
  };
9
9
  zoom: Zoom;
10
+ offsets?: Partial<{
11
+ top: number;
12
+ right: number;
13
+ bottom: number;
14
+ left: number;
15
+ }> | undefined;
10
16
  }) => {
11
17
  scrollX: number;
12
18
  scrollY: number;
@@ -710,4 +710,10 @@ export type GenerateDiagramToCode = (props: {
710
710
  }) => MaybePromise<{
711
711
  html: string;
712
712
  }>;
713
+ export type Offsets = Partial<{
714
+ top: number;
715
+ right: number;
716
+ bottom: number;
717
+ left: number;
718
+ }>;
713
719
  export {};
@@ -1,5 +1,6 @@
1
1
  export declare const PRECISION = 0.0001;
2
- export declare function clamp(value: number, min: number, max: number): number;
3
- export declare function round(value: number, precision: number): number;
2
+ export declare const clamp: (value: number, min: number, max: number) => number;
3
+ export declare const round: (value: number, precision: number, func?: "round" | "floor" | "ceil") => number;
4
+ export declare const roundToStep: (value: number, step: number, func?: "round" | "floor" | "ceil") => number;
4
5
  export declare const average: (a: number, b: number) => number;
5
6
  export declare const isFiniteNumber: (value: any) => value is number;