@myoc/element 0.19.517 → 0.19.519

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.
Files changed (41) hide show
  1. package/dist/dev/index.js +540 -542
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +14 -14
  4. package/dist/types/common/src/colors.d.ts +1 -1
  5. package/dist/types/element/src/bounds.d.ts +18 -1
  6. package/dist/types/element/src/visualdebug.d.ts +1 -2
  7. package/dist/types/excalidraw/actions/actionBoundText.d.ts +2 -0
  8. package/dist/types/excalidraw/actions/actionCanvas.d.ts +11 -0
  9. package/dist/types/excalidraw/actions/actionClipboard.d.ts +2 -0
  10. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +1 -0
  11. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +3 -0
  12. package/dist/types/excalidraw/actions/actionDeselect.d.ts +1 -0
  13. package/dist/types/excalidraw/actions/actionElementLink.d.ts +1 -0
  14. package/dist/types/excalidraw/actions/actionElementLock.d.ts +2 -0
  15. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +1 -0
  16. package/dist/types/excalidraw/actions/actionExport.d.ts +2 -0
  17. package/dist/types/excalidraw/actions/actionFrame.d.ts +4 -0
  18. package/dist/types/excalidraw/actions/actionGroup.d.ts +2 -0
  19. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +1 -0
  20. package/dist/types/excalidraw/actions/actionLink.d.ts +1 -0
  21. package/dist/types/excalidraw/actions/actionMenu.d.ts +1 -0
  22. package/dist/types/excalidraw/actions/actionProperties.d.ts +2 -0
  23. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +1 -0
  24. package/dist/types/excalidraw/actions/actionStyles.d.ts +1 -0
  25. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +1 -0
  26. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +1 -0
  27. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +1 -0
  28. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +1 -0
  29. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +1 -0
  30. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +1 -0
  31. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +3 -2
  32. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +1 -0
  33. package/dist/types/excalidraw/components/App.d.ts +1 -0
  34. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +7 -4
  35. package/dist/types/excalidraw/data/blob.d.ts +1 -0
  36. package/dist/types/excalidraw/data/json.d.ts +1 -0
  37. package/dist/types/excalidraw/types.d.ts +8 -0
  38. package/dist/types/utils/src/index.d.ts +1 -2
  39. package/package.json +4 -4
  40. package/dist/types/utils/src/bbox.d.ts +0 -9
  41. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,4 +1,4 @@
1
- export declare const applyDarkModeFilter: (color: string) => string;
1
+ export declare const applyDarkModeFilter: (color: string, enable?: boolean) => string;
2
2
  export type ColorTuple = readonly [string, string, string, string, string];
3
3
  export type ColorPaletteCustom = {
4
4
  [key: string]: ColorTuple | string;
@@ -2,7 +2,7 @@ import { type Bounds } from "@excalidraw/common";
2
2
  import type { Degrees, GlobalPoint, LineSegment, LocalPoint } from "@excalidraw/math";
3
3
  import type { AppState } from "@excalidraw/excalidraw/types";
4
4
  import type { Drawable, Op } from "roughjs/bin/core";
5
- import type { Arrowhead, ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./types";
5
+ import type { Arrowhead, ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawLinearElement, NonDeleted, NonDeletedExcalidrawElement } from "./types";
6
6
  export type RectangleBox = {
7
7
  x: number;
8
8
  y: number;
@@ -80,4 +80,21 @@ export declare const pointInsideBounds: <P extends GlobalPoint | LocalPoint>(p:
80
80
  export declare const pointInsideBoundsInclusive: <P extends GlobalPoint | LocalPoint>(p: P, bounds: Bounds) => boolean;
81
81
  export declare const doBoundsIntersect: (bounds1: Bounds | null, bounds2: Bounds | null) => boolean;
82
82
  export declare const boundsContainBounds: (outerBounds: Bounds, innerBounds: Bounds) => boolean;
83
+ /**
84
+ * High level helper to get elements overlapping a bounding box.
85
+ * It can be used to get elements overlapping a selection box, for example.
86
+ *
87
+ */
88
+ export declare const elementsOverlappingBBox: ({ elements, elementsMap, bounds, type, excludeElementsInFrames, shouldIgnoreElementFromSelection, }: {
89
+ elements: readonly NonDeletedExcalidrawElement[];
90
+ elementsMap?: ElementsMap;
91
+ bounds: Bounds | ExcalidrawElement;
92
+ /**
93
+ * - overlap: elements overlapping or inside bounds
94
+ * - contain: elements inside bounds
95
+ **/
96
+ type: "contain" | "overlap";
97
+ excludeElementsInFrames?: boolean;
98
+ shouldIgnoreElementFromSelection?: (element: NonDeletedExcalidrawElement) => boolean;
99
+ }) => NonDeletedExcalidrawElement[];
83
100
  export declare const elementCenterPoint: (element: ExcalidrawElement, elementsMap: ElementsMap, xOffset?: number, yOffset?: number) => GlobalPoint;
@@ -1,8 +1,7 @@
1
- import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
1
+ import { type GlobalPoint, type LocalPoint, type LineSegment } from "@excalidraw/math";
2
2
  import { type Bounds } from "@excalidraw/common";
3
3
  import type { ElementsMap, ExcalidrawElement } from "@excalidraw/element/types";
4
4
  import type { Curve } from "@excalidraw/math";
5
- import type { LineSegment } from "@excalidraw/utils";
6
5
  declare global {
7
6
  interface Window {
8
7
  visualDebug?: {
@@ -153,6 +153,7 @@ export declare const actionBindText: {
153
153
  gridStep: number;
154
154
  gridModeEnabled: boolean;
155
155
  viewModeEnabled: boolean;
156
+ viewModeOnly: boolean;
156
157
  selectedGroupIds: {
157
158
  [groupId: string]: boolean;
158
159
  };
@@ -331,6 +332,7 @@ export declare const actionWrapTextInContainer: {
331
332
  gridStep: number;
332
333
  gridModeEnabled: boolean;
333
334
  viewModeEnabled: boolean;
335
+ viewModeOnly: boolean;
334
336
  selectedGroupIds: {
335
337
  [groupId: string]: boolean;
336
338
  };
@@ -144,6 +144,7 @@ export declare const actionZoomIn: {
144
144
  gridStep: number;
145
145
  gridModeEnabled: boolean;
146
146
  viewModeEnabled: boolean;
147
+ viewModeOnly: boolean;
147
148
  selectedGroupIds: {
148
149
  [groupId: string]: boolean;
149
150
  };
@@ -326,6 +327,7 @@ export declare const actionZoomOut: {
326
327
  gridStep: number;
327
328
  gridModeEnabled: boolean;
328
329
  viewModeEnabled: boolean;
330
+ viewModeOnly: boolean;
329
331
  selectedGroupIds: {
330
332
  [groupId: string]: boolean;
331
333
  };
@@ -508,6 +510,7 @@ export declare const actionResetZoom: {
508
510
  gridStep: number;
509
511
  gridModeEnabled: boolean;
510
512
  viewModeEnabled: boolean;
513
+ viewModeOnly: boolean;
511
514
  selectedGroupIds: {
512
515
  [groupId: string]: boolean;
513
516
  };
@@ -691,6 +694,7 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
691
694
  gridStep: number;
692
695
  gridModeEnabled: boolean;
693
696
  viewModeEnabled: boolean;
697
+ viewModeOnly: boolean;
694
698
  selectedGroupIds: {
695
699
  [groupId: string]: boolean;
696
700
  };
@@ -870,6 +874,7 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
870
874
  gridStep: number;
871
875
  gridModeEnabled: boolean;
872
876
  viewModeEnabled: boolean;
877
+ viewModeOnly: boolean;
873
878
  selectedGroupIds: {
874
879
  [groupId: string]: boolean;
875
880
  };
@@ -1046,6 +1051,7 @@ export declare const actionZoomToFitSelectionInViewport: {
1046
1051
  gridStep: number;
1047
1052
  gridModeEnabled: boolean;
1048
1053
  viewModeEnabled: boolean;
1054
+ viewModeOnly: boolean;
1049
1055
  selectedGroupIds: {
1050
1056
  [groupId: string]: boolean;
1051
1057
  };
@@ -1226,6 +1232,7 @@ export declare const actionZoomToFitSelection: {
1226
1232
  gridStep: number;
1227
1233
  gridModeEnabled: boolean;
1228
1234
  viewModeEnabled: boolean;
1235
+ viewModeOnly: boolean;
1229
1236
  selectedGroupIds: {
1230
1237
  [groupId: string]: boolean;
1231
1238
  };
@@ -1407,6 +1414,7 @@ export declare const actionZoomToFit: {
1407
1414
  gridStep: number;
1408
1415
  gridModeEnabled: boolean;
1409
1416
  viewModeEnabled: boolean;
1417
+ viewModeOnly: boolean;
1410
1418
  selectedGroupIds: {
1411
1419
  [groupId: string]: boolean;
1412
1420
  };
@@ -1583,6 +1591,7 @@ export declare const actionToggleEraserTool: {
1583
1591
  gridStep: number;
1584
1592
  gridModeEnabled: boolean;
1585
1593
  viewModeEnabled: boolean;
1594
+ viewModeOnly: boolean;
1586
1595
  editingGroupId: import("@excalidraw/element/types").GroupId | null;
1587
1596
  width: number;
1588
1597
  height: number;
@@ -1755,6 +1764,7 @@ export declare const actionToggleLassoTool: {
1755
1764
  gridStep: number;
1756
1765
  gridModeEnabled: boolean;
1757
1766
  viewModeEnabled: boolean;
1767
+ viewModeOnly: boolean;
1758
1768
  editingGroupId: import("@excalidraw/element/types").GroupId | null;
1759
1769
  width: number;
1760
1770
  height: number;
@@ -1926,6 +1936,7 @@ export declare const actionToggleHandTool: {
1926
1936
  gridStep: number;
1927
1937
  gridModeEnabled: boolean;
1928
1938
  viewModeEnabled: boolean;
1939
+ viewModeOnly: boolean;
1929
1940
  editingGroupId: import("@excalidraw/element/types").GroupId | null;
1930
1941
  width: number;
1931
1942
  height: number;
@@ -137,6 +137,7 @@ export declare const actionPaste: {
137
137
  gridStep: number;
138
138
  gridModeEnabled: boolean;
139
139
  viewModeEnabled: boolean;
140
+ viewModeOnly: boolean;
140
141
  selectedGroupIds: {
141
142
  [groupId: string]: boolean;
142
143
  };
@@ -353,6 +354,7 @@ export declare const actionCopyAsPng: {
353
354
  gridStep: number;
354
355
  gridModeEnabled: boolean;
355
356
  viewModeEnabled: boolean;
357
+ viewModeOnly: boolean;
356
358
  selectedGroupIds: {
357
359
  [groupId: string]: boolean;
358
360
  };
@@ -138,6 +138,7 @@ export declare const actionToggleCropEditor: {
138
138
  gridStep: number;
139
139
  gridModeEnabled: boolean;
140
140
  viewModeEnabled: boolean;
141
+ viewModeOnly: boolean;
141
142
  selectedGroupIds: {
142
143
  [groupId: string]: boolean;
143
144
  };
@@ -139,6 +139,7 @@ export declare const actionDeleteSelected: {
139
139
  gridStep: number;
140
140
  gridModeEnabled: boolean;
141
141
  viewModeEnabled: boolean;
142
+ viewModeOnly: boolean;
142
143
  selectedGroupIds: {
143
144
  [groupId: string]: boolean;
144
145
  };
@@ -338,6 +339,7 @@ export declare const actionDeleteSelected: {
338
339
  gridStep: number;
339
340
  gridModeEnabled: boolean;
340
341
  viewModeEnabled: boolean;
342
+ viewModeOnly: boolean;
341
343
  selectedGroupIds: {
342
344
  [groupId: string]: boolean;
343
345
  };
@@ -502,6 +504,7 @@ export declare const actionDeleteSelected: {
502
504
  gridStep: number;
503
505
  gridModeEnabled: boolean;
504
506
  viewModeEnabled: boolean;
507
+ viewModeOnly: boolean;
505
508
  width: number;
506
509
  height: number;
507
510
  offsetTop: number;
@@ -128,6 +128,7 @@ export declare const actionDeselect: {
128
128
  gridStep: number;
129
129
  gridModeEnabled: boolean;
130
130
  viewModeEnabled: boolean;
131
+ viewModeOnly: boolean;
131
132
  width: number;
132
133
  height: number;
133
134
  offsetTop: number;
@@ -155,6 +155,7 @@ export declare const actionLinkToElement: {
155
155
  gridStep: number;
156
156
  gridModeEnabled: boolean;
157
157
  viewModeEnabled: boolean;
158
+ viewModeOnly: boolean;
158
159
  selectedGroupIds: {
159
160
  [groupId: string]: boolean;
160
161
  };
@@ -146,6 +146,7 @@ export declare const actionToggleElementLock: {
146
146
  gridStep: number;
147
147
  gridModeEnabled: boolean;
148
148
  viewModeEnabled: boolean;
149
+ viewModeOnly: boolean;
149
150
  editingGroupId: import("@excalidraw/element/types").GroupId | null;
150
151
  width: number;
151
152
  height: number;
@@ -323,6 +324,7 @@ export declare const actionUnlockAllElements: {
323
324
  gridStep: number;
324
325
  gridModeEnabled: boolean;
325
326
  viewModeEnabled: boolean;
327
+ viewModeOnly: boolean;
326
328
  editingGroupId: import("@excalidraw/element/types").GroupId | null;
327
329
  width: number;
328
330
  height: number;
@@ -135,6 +135,7 @@ export declare const actionSetEmbeddableAsActiveTool: {
135
135
  gridStep: number;
136
136
  gridModeEnabled: boolean;
137
137
  viewModeEnabled: boolean;
138
+ viewModeOnly: boolean;
138
139
  selectedGroupIds: {
139
140
  [groupId: string]: boolean;
140
141
  };
@@ -155,6 +155,7 @@ export declare const actionLoadScene: {
155
155
  currentItemArrowType: "sharp" | "round" | "elbow";
156
156
  bindMode: import("@excalidraw/element/types").BindMode;
157
157
  gridSize: number;
158
+ viewModeOnly: boolean;
158
159
  gridModeEnabled: boolean;
159
160
  objectsSnapModeEnabled: boolean;
160
161
  wheelZoomsOnDefault?: boolean | undefined;
@@ -373,6 +374,7 @@ export declare const actionLoadScene: {
373
374
  gridStep: number;
374
375
  gridModeEnabled: boolean;
375
376
  viewModeEnabled: boolean;
377
+ viewModeOnly: boolean;
376
378
  selectedGroupIds: {
377
379
  [groupId: string]: boolean;
378
380
  };
@@ -134,6 +134,7 @@ export declare const actionSelectAllElementsInFrame: {
134
134
  gridStep: number;
135
135
  gridModeEnabled: boolean;
136
136
  viewModeEnabled: boolean;
137
+ viewModeOnly: boolean;
137
138
  selectedGroupIds: {
138
139
  [groupId: string]: boolean;
139
140
  };
@@ -316,6 +317,7 @@ export declare const actionRemoveAllElementsFromFrame: {
316
317
  gridStep: number;
317
318
  gridModeEnabled: boolean;
318
319
  viewModeEnabled: boolean;
320
+ viewModeOnly: boolean;
319
321
  selectedGroupIds: {
320
322
  [groupId: string]: boolean;
321
323
  };
@@ -499,6 +501,7 @@ export declare const actionupdateFrameRendering: {
499
501
  gridStep: number;
500
502
  gridModeEnabled: boolean;
501
503
  viewModeEnabled: boolean;
504
+ viewModeOnly: boolean;
502
505
  selectedGroupIds: {
503
506
  [groupId: string]: boolean;
504
507
  };
@@ -679,6 +682,7 @@ export declare const actionSetFrameAsActiveTool: {
679
682
  gridStep: number;
680
683
  gridModeEnabled: boolean;
681
684
  viewModeEnabled: boolean;
685
+ viewModeOnly: boolean;
682
686
  selectedGroupIds: {
683
687
  [groupId: string]: boolean;
684
688
  };
@@ -140,6 +140,7 @@ export declare const actionGroup: {
140
140
  gridStep: number;
141
141
  gridModeEnabled: boolean;
142
142
  viewModeEnabled: boolean;
143
+ viewModeOnly: boolean;
143
144
  width: number;
144
145
  height: number;
145
146
  offsetTop: number;
@@ -321,6 +322,7 @@ export declare const actionUngroup: {
321
322
  gridStep: number;
322
323
  gridModeEnabled: boolean;
323
324
  viewModeEnabled: boolean;
325
+ viewModeOnly: boolean;
324
326
  width: number;
325
327
  height: number;
326
328
  offsetTop: number;
@@ -169,6 +169,7 @@ export declare const actionToggleLinearEditor: {
169
169
  gridStep: number;
170
170
  gridModeEnabled: boolean;
171
171
  viewModeEnabled: boolean;
172
+ viewModeOnly: boolean;
172
173
  selectedGroupIds: {
173
174
  [groupId: string]: boolean;
174
175
  };
@@ -133,6 +133,7 @@ export declare const actionLink: {
133
133
  gridStep: number;
134
134
  gridModeEnabled: boolean;
135
135
  viewModeEnabled: boolean;
136
+ viewModeOnly: boolean;
136
137
  selectedGroupIds: {
137
138
  [groupId: string]: boolean;
138
139
  };
@@ -127,6 +127,7 @@ export declare const actionShortcuts: {
127
127
  gridStep: number;
128
128
  gridModeEnabled: boolean;
129
129
  viewModeEnabled: boolean;
130
+ viewModeOnly: boolean;
130
131
  selectedGroupIds: {
131
132
  [groupId: string]: boolean;
132
133
  };
@@ -162,6 +162,7 @@ export declare const actionDecreaseFontSize: {
162
162
  gridStep: number;
163
163
  gridModeEnabled: boolean;
164
164
  viewModeEnabled: boolean;
165
+ viewModeOnly: boolean;
165
166
  selectedGroupIds: {
166
167
  [groupId: string]: boolean;
167
168
  };
@@ -339,6 +340,7 @@ export declare const actionIncreaseFontSize: {
339
340
  gridStep: number;
340
341
  gridModeEnabled: boolean;
341
342
  viewModeEnabled: boolean;
343
+ viewModeOnly: boolean;
342
344
  selectedGroupIds: {
343
345
  [groupId: string]: boolean;
344
346
  };
@@ -138,6 +138,7 @@ export declare const actionSelectAll: {
138
138
  gridStep: number;
139
139
  gridModeEnabled: boolean;
140
140
  viewModeEnabled: boolean;
141
+ viewModeOnly: boolean;
141
142
  width: number;
142
143
  height: number;
143
144
  offsetTop: number;
@@ -134,6 +134,7 @@ export declare const actionCopyStyles: {
134
134
  gridStep: number;
135
135
  gridModeEnabled: boolean;
136
136
  viewModeEnabled: boolean;
137
+ viewModeOnly: boolean;
137
138
  selectedGroupIds: {
138
139
  [groupId: string]: boolean;
139
140
  };
@@ -135,6 +135,7 @@ export declare const actionToggleArrowBinding: {
135
135
  gridStep: number;
136
136
  gridModeEnabled: boolean;
137
137
  viewModeEnabled: boolean;
138
+ viewModeOnly: boolean;
138
139
  selectedGroupIds: {
139
140
  [groupId: string]: boolean;
140
141
  };
@@ -139,6 +139,7 @@ export declare const actionToggleGridMode: {
139
139
  gridSize: number;
140
140
  gridStep: number;
141
141
  viewModeEnabled: boolean;
142
+ viewModeOnly: boolean;
142
143
  selectedGroupIds: {
143
144
  [groupId: string]: boolean;
144
145
  };
@@ -135,6 +135,7 @@ export declare const actionToggleMidpointSnapping: {
135
135
  gridStep: number;
136
136
  gridModeEnabled: boolean;
137
137
  viewModeEnabled: boolean;
138
+ viewModeOnly: boolean;
138
139
  selectedGroupIds: {
139
140
  [groupId: string]: boolean;
140
141
  };
@@ -137,6 +137,7 @@ export declare const actionToggleObjectsSnapMode: {
137
137
  gridSize: number;
138
138
  gridStep: number;
139
139
  viewModeEnabled: boolean;
140
+ viewModeOnly: boolean;
140
141
  selectedGroupIds: {
141
142
  [groupId: string]: boolean;
142
143
  };
@@ -128,6 +128,7 @@ export declare const actionToggleSearchMenu: {
128
128
  gridStep: number;
129
129
  gridModeEnabled: boolean;
130
130
  viewModeEnabled: boolean;
131
+ viewModeOnly: boolean;
131
132
  selectedGroupIds: {
132
133
  [groupId: string]: boolean;
133
134
  };
@@ -140,6 +140,7 @@ export declare const actionToggleStats: {
140
140
  gridStep: number;
141
141
  gridModeEnabled: boolean;
142
142
  viewModeEnabled: boolean;
143
+ viewModeOnly: boolean;
143
144
  selectedGroupIds: {
144
145
  [groupId: string]: boolean;
145
146
  };
@@ -7,7 +7,7 @@ export declare const actionToggleViewMode: {
7
7
  category: "canvas";
8
8
  predicate: (appState: Readonly<import("../types").AppState>) => boolean;
9
9
  };
10
- perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
10
+ perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>): false | {
11
11
  appState: {
12
12
  viewModeEnabled: boolean;
13
13
  contextMenu: {
@@ -136,6 +136,7 @@ export declare const actionToggleViewMode: {
136
136
  gridSize: number;
137
137
  gridStep: number;
138
138
  gridModeEnabled: boolean;
139
+ viewModeOnly: boolean;
139
140
  selectedGroupIds: {
140
141
  [groupId: string]: boolean;
141
142
  };
@@ -177,7 +178,7 @@ export declare const actionToggleViewMode: {
177
178
  checked: (appState: Readonly<import("../types").AppState>) => boolean;
178
179
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
179
180
  keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
180
- PanelComponent: ({ data, updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
181
+ PanelComponent: ({ data, updateData, appState, appProps }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element | null;
181
182
  } & {
182
183
  keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
183
184
  };
@@ -136,6 +136,7 @@ export declare const actionToggleZenMode: {
136
136
  gridStep: number;
137
137
  gridModeEnabled: boolean;
138
138
  viewModeEnabled: boolean;
139
+ viewModeOnly: boolean;
139
140
  selectedGroupIds: {
140
141
  [groupId: string]: boolean;
141
142
  };
@@ -502,6 +502,7 @@ declare class App extends React.Component<AppProps, AppState> {
502
502
  private handleCanvasClick;
503
503
  private getElementLinkAtPosition;
504
504
  private handleElementLinkClick;
505
+ private openElementLink;
505
506
  /**
506
507
  * finds candidate frame under cursor (when dragging frame children/elements
507
508
  * inside frames)
@@ -25,11 +25,14 @@ export declare const Help: {
25
25
  export declare const ToggleTheme: {
26
26
  (props: {
27
27
  allowSystemTheme: true;
28
+ /**
29
+ * Controls the theme of this UI component only.
30
+ * You should subscribe to `props.onThemeChange` and control the theme
31
+ * upstream.
32
+ */
28
33
  theme: Theme | "system";
29
- onSelect: (theme: Theme | "system") => void;
30
34
  } | {
31
- allowSystemTheme?: false;
32
- onSelect?: (theme: Theme) => void;
35
+ allowSystemTheme: false;
33
36
  }): import("react/jsx-runtime").JSX.Element | null;
34
37
  displayName: string;
35
38
  };
@@ -66,7 +69,7 @@ export declare const Preferences: {
66
69
  ToggleMidpointSnapping: () => import("react/jsx-runtime").JSX.Element;
67
70
  ToggleGridMode: () => import("react/jsx-runtime").JSX.Element;
68
71
  ToggleZenMode: () => import("react/jsx-runtime").JSX.Element;
69
- ToggleViewMode: () => import("react/jsx-runtime").JSX.Element;
72
+ ToggleViewMode: () => import("react/jsx-runtime").JSX.Element | null;
70
73
  ToggleElementProperties: () => import("react/jsx-runtime").JSX.Element;
71
74
  displayName: string;
72
75
  };
@@ -90,6 +90,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
90
90
  currentItemArrowType: "sharp" | "round" | "elbow";
91
91
  bindMode: import("@excalidraw/element/types").BindMode;
92
92
  gridSize: number;
93
+ viewModeOnly: boolean;
93
94
  gridModeEnabled: boolean;
94
95
  objectsSnapModeEnabled: boolean;
95
96
  wheelZoomsOnDefault?: boolean | undefined;
@@ -91,6 +91,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
91
91
  currentItemArrowType: "sharp" | "round" | "elbow";
92
92
  bindMode: import("@excalidraw/element/types").BindMode;
93
93
  gridSize: number;
94
+ viewModeOnly: boolean;
94
95
  gridModeEnabled: boolean;
95
96
  objectsSnapModeEnabled: boolean;
96
97
  wheelZoomsOnDefault?: boolean | undefined;
@@ -365,6 +365,7 @@ export interface AppState {
365
365
  gridStep: number;
366
366
  gridModeEnabled: boolean;
367
367
  viewModeEnabled: boolean;
368
+ viewModeOnly: boolean;
368
369
  /** top-most selected groups (i.e. does not include nested groups) */
369
370
  selectedGroupIds: {
370
371
  [groupId: string]: boolean;
@@ -464,6 +465,7 @@ export type CompressImageFileOpts = {
464
465
  export type CompressImageFile = (file: File, opts: CompressImageFileOpts) => Promise<File>;
465
466
  export interface ExcalidrawProps {
466
467
  onChange?: (elements: readonly OrderedExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
468
+ onThemeChange?: (theme: Theme | "system") => void;
467
469
  /**
468
470
  * note: only subscribes if the props.onIncrement is defined on initial render
469
471
  */
@@ -514,6 +516,7 @@ export interface ExcalidrawProps {
514
516
  renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
515
517
  langCode?: Language["code"];
516
518
  viewModeEnabled?: boolean;
519
+ viewModeOnly?: boolean;
517
520
  zenModeEnabled?: boolean;
518
521
  gridModeEnabled?: boolean;
519
522
  objectsSnapModeEnabled?: boolean;
@@ -593,6 +596,11 @@ export type CanvasActions = Partial<{
593
596
  export: false | ExportOpts;
594
597
  loadScene: boolean;
595
598
  saveToActiveFile: boolean;
599
+ /**
600
+ * defaults to true if `props.theme` is omitted or `props.onThemeChange`
601
+ * is supplied (at which point the theme is considered as host-app controlled),
602
+ * else default to false
603
+ * */
596
604
  toggleTheme: boolean | null;
597
605
  saveAsImage: boolean;
598
606
  }>;
@@ -1,4 +1,3 @@
1
1
  export * from "./export";
2
- export * from "./withinBounds";
3
- export * from "./bbox";
2
+ export { elementsOverlappingBBox } from "@excalidraw/element";
4
3
  export { getCommonBounds } from "@excalidraw/element";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myoc/element",
3
- "version": "0.19.517",
3
+ "version": "0.19.519",
4
4
  "type": "module",
5
5
  "types": "./dist/types/element/src/index.d.ts",
6
6
  "main": "./dist/prod/index.js",
@@ -64,8 +64,8 @@
64
64
  "build:esm": "rimraf dist && node ../../scripts/buildBase.js && yarn gen:types"
65
65
  },
66
66
  "dependencies": {
67
- "@excalidraw/common": "npm:@myoc/common@0.19.517",
68
- "@excalidraw/fractional-indexing": "npm:@myoc/fractional-indexing@0.19.517",
69
- "@excalidraw/math": "npm:@myoc/math@0.19.517"
67
+ "@excalidraw/common": "npm:@myoc/common@0.19.519",
68
+ "@excalidraw/fractional-indexing": "npm:@myoc/fractional-indexing@0.19.519",
69
+ "@excalidraw/math": "npm:@myoc/math@0.19.519"
70
70
  }
71
71
  }
@@ -1,9 +0,0 @@
1
- import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
- import type { Bounds } from "@excalidraw/common";
3
- export type LineSegment<P extends LocalPoint | GlobalPoint> = [P, P];
4
- export declare function getBBox<P extends LocalPoint | GlobalPoint>(line: LineSegment<P>): Bounds;
5
- export declare function doBBoxesIntersect(a: Bounds, b: Bounds): boolean;
6
- export declare function isPointOnLine<P extends GlobalPoint | LocalPoint>(l: LineSegment<P>, p: P): boolean;
7
- export declare function isPointRightOfLine<P extends GlobalPoint | LocalPoint>(l: LineSegment<P>, p: P): boolean;
8
- export declare function isLineSegmentTouchingOrCrossingLine<P extends GlobalPoint | LocalPoint>(a: LineSegment<P>, b: LineSegment<P>): boolean;
9
- export declare function doLineSegmentsIntersect<P extends GlobalPoint | LocalPoint>(a: LineSegment<P>, b: LineSegment<P>): boolean;
@@ -1,19 +0,0 @@
1
- import { type Bounds } from "@excalidraw/common";
2
- import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
- type Element = NonDeletedExcalidrawElement;
4
- type Elements = readonly NonDeletedExcalidrawElement[];
5
- export declare const isElementInsideBBox: (element: Element, bbox: Bounds, eitherDirection?: boolean) => boolean;
6
- export declare const elementPartiallyOverlapsWithOrContainsBBox: (element: Element, bbox: Bounds) => boolean;
7
- export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMargin, }: {
8
- elements: Elements;
9
- bounds: Bounds | ExcalidrawElement;
10
- /** safety offset. Defaults to 0. */
11
- errorMargin?: number;
12
- /**
13
- * - overlap: elements overlapping or inside bounds
14
- * - contain: elements inside bounds or bounds inside elements
15
- * - inside: elements inside bounds
16
- **/
17
- type: "overlap" | "contain" | "inside";
18
- }) => NonDeletedExcalidrawElement[];
19
- export {};