@zsviczian/excalidraw 0.15.2-obsidian-2 → 0.15.2-obsidian-4

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 (108) hide show
  1. package/dist/excalidraw.development.js +1022 -158
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/package.json +2 -2
  4. package/types/actions/actionAddToLibrary.d.ts +33 -18
  5. package/types/actions/actionBoundText.d.ts +22 -12
  6. package/types/actions/actionCanvas.d.ts +110 -60
  7. package/types/actions/actionClipboard.d.ts +55 -30
  8. package/types/actions/actionDeleteSelected.d.ts +33 -18
  9. package/types/actions/actionElementLock.d.ts +287 -0
  10. package/types/actions/actionExport.d.ts +100 -55
  11. package/types/actions/actionFinalize.d.ts +22 -12
  12. package/types/actions/actionFlip.d.ts +2 -4
  13. package/types/actions/actionHistory.d.ts +1 -1
  14. package/types/actions/actionLinearEditor.d.ts +11 -6
  15. package/types/actions/actionMenu.d.ts +33 -18
  16. package/types/actions/actionProperties.d.ts +145 -80
  17. package/types/actions/actionStyles.d.ts +11 -6
  18. package/types/actions/actionToggleGridMode.d.ts +11 -6
  19. package/types/actions/actionToggleStats.d.ts +11 -6
  20. package/types/actions/actionToggleViewMode.d.ts +11 -6
  21. package/types/actions/actionToggleZenMode.d.ts +11 -6
  22. package/types/actions/index.d.ts +1 -1
  23. package/types/actions/manager.d.ts +1 -1
  24. package/types/actions/shortcuts.d.ts +1 -1
  25. package/types/actions/types.d.ts +7 -7
  26. package/types/charts.d.ts +2 -2
  27. package/types/clients.d.ts +4 -1
  28. package/types/colors.d.ts +60 -5
  29. package/types/components/ActiveConfirmDialog.d.ts +1 -21
  30. package/types/components/App.d.ts +6 -2
  31. package/types/components/Avatar.d.ts +1 -1
  32. package/types/components/ColorPicker/ColorInput.d.ts +7 -0
  33. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  34. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  35. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  36. package/types/components/ColorPicker/Picker.d.ts +18 -0
  37. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  38. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  39. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  40. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  41. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  42. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +21 -0
  43. package/types/components/ContextMenu.d.ts +3 -3
  44. package/types/components/Dialog.d.ts +2 -4
  45. package/types/components/EyeDropper.d.ts +18 -0
  46. package/types/components/FilledButton.d.ts +16 -0
  47. package/types/components/FixedSideContainer.d.ts +1 -1
  48. package/types/components/HandButton.d.ts +1 -1
  49. package/types/components/HelpButton.d.ts +1 -1
  50. package/types/components/ImageExportDialog.d.ts +7 -12
  51. package/types/components/Island.d.ts +1 -1
  52. package/types/components/JSONExportDialog.d.ts +1 -1
  53. package/types/components/LayerUI.d.ts +3 -2
  54. package/types/components/LibraryMenu.d.ts +3 -23
  55. package/types/components/LibraryMenuControlButtons.d.ts +4 -4
  56. package/types/components/LibraryMenuHeaderContent.d.ts +3 -1
  57. package/types/components/LibraryMenuItems.d.ts +4 -5
  58. package/types/components/LibraryMenuSection.d.ts +22 -0
  59. package/types/components/LibraryUnit.d.ts +7 -3
  60. package/types/components/LockButton.d.ts +1 -1
  61. package/types/components/MobileMenu.d.ts +1 -1
  62. package/types/components/PenModeButton.d.ts +1 -1
  63. package/types/components/Popover.d.ts +1 -1
  64. package/types/components/ProjectName.d.ts +2 -1
  65. package/types/components/RadioGroup.d.ts +12 -0
  66. package/types/components/Sidebar/Sidebar.d.ts +1 -21
  67. package/types/components/Sidebar/common.d.ts +3 -3
  68. package/types/components/Spinner.d.ts +2 -1
  69. package/types/components/Stack.d.ts +4 -3
  70. package/types/components/Switch.d.ts +9 -0
  71. package/types/components/ToolButton.d.ts +3 -3
  72. package/types/components/Tooltip.d.ts +1 -1
  73. package/types/components/icons.d.ts +8 -1
  74. package/types/constants.d.ts +6 -0
  75. package/types/context/tunnels.d.ts +2 -2
  76. package/types/data/encode.d.ts +1 -1
  77. package/types/data/filesystem.d.ts +1 -1
  78. package/types/data/library.d.ts +3 -45
  79. package/types/data/restore.d.ts +2 -2
  80. package/types/data/types.d.ts +1 -1
  81. package/types/element/Hyperlink.d.ts +11 -6
  82. package/types/element/binding.d.ts +2 -2
  83. package/types/element/bounds.d.ts +1 -1
  84. package/types/element/linearElementEditor.d.ts +11 -6
  85. package/types/element/mutateElement.d.ts +1 -1
  86. package/types/element/newElement.d.ts +1 -1
  87. package/types/element/resizeElements.d.ts +1 -0
  88. package/types/element/transformHandles.d.ts +5 -5
  89. package/types/element/types.d.ts +35 -35
  90. package/types/errors.d.ts +1 -1
  91. package/types/ga.d.ts +5 -5
  92. package/types/hooks/useCreatePortalContainer.d.ts +5 -0
  93. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  94. package/types/hooks/useOutsideClick.d.ts +19 -1
  95. package/types/hooks/useScrollPosition.d.ts +2 -0
  96. package/types/hooks/useTransition.d.ts +2 -0
  97. package/types/i18n.d.ts +2 -2
  98. package/types/jotai.d.ts +16 -104
  99. package/types/keys.d.ts +1 -1
  100. package/types/packages/excalidraw/index.d.ts +1 -1
  101. package/types/packages/utils.d.ts +2 -2
  102. package/types/renderer/easingFunctions.d.ts +1 -1
  103. package/types/renderer/renderElement.d.ts +2 -2
  104. package/types/scene/Scene.d.ts +4 -4
  105. package/types/scene/types.d.ts +4 -4
  106. package/types/types.d.ts +46 -37
  107. package/types/utility-types.d.ts +13 -13
  108. package/types/utils.d.ts +3 -3
package/types/types.d.ts CHANGED
@@ -17,8 +17,9 @@ import type { FileSystemHandle } from "./data/filesystem";
17
17
  import type { IMAGE_MIME_TYPES, MIME_TYPES } from "./constants";
18
18
  import { ContextMenuItems } from "./components/ContextMenu";
19
19
  import { Merge, ForwardRef, ValueOf } from "./utility-types";
20
- export declare type Point = Readonly<RoughPoint>;
21
- export declare type Collaborator = {
20
+ import { ColorPaletteCustom } from "./colors";
21
+ export type Point = Readonly<RoughPoint>;
22
+ export type Collaborator = {
22
23
  pointer?: {
23
24
  x: number;
24
25
  y: number;
@@ -34,10 +35,10 @@ export declare type Collaborator = {
34
35
  avatarUrl?: string;
35
36
  id?: string;
36
37
  };
37
- export declare type DataURL = string & {
38
+ export type DataURL = string & {
38
39
  _brand: "DataURL";
39
40
  };
40
- export declare type BinaryFileData = {
41
+ export type BinaryFileData = {
41
42
  mimeType: ValueOf<typeof IMAGE_MIME_TYPES> | typeof MIME_TYPES.binary;
42
43
  id: FileId;
43
44
  dataURL: DataURL;
@@ -54,18 +55,18 @@ export declare type BinaryFileData = {
54
55
  */
55
56
  lastRetrieved?: number;
56
57
  };
57
- export declare type BinaryFileMetadata = Omit<BinaryFileData, "dataURL">;
58
- export declare type BinaryFiles = Record<ExcalidrawElement["id"], BinaryFileData>;
59
- export declare type LastActiveTool = {
58
+ export type BinaryFileMetadata = Omit<BinaryFileData, "dataURL">;
59
+ export type BinaryFiles = Record<ExcalidrawElement["id"], BinaryFileData>;
60
+ export type LastActiveTool = {
60
61
  type: typeof SHAPES[number]["value"] | "eraser" | "hand";
61
62
  customType: null;
62
63
  } | {
63
64
  type: "custom";
64
65
  customType: string;
65
66
  } | null;
66
- export declare type SidebarName = string;
67
- export declare type SidebarTabName = string;
68
- export declare type AppState = {
67
+ export type SidebarName = string;
68
+ export type SidebarTabName = string;
69
+ export type AppState = {
69
70
  contextMenu: {
70
71
  items: ContextMenuItems;
71
72
  top: number;
@@ -126,7 +127,7 @@ export declare type AppState = {
126
127
  isRotating: boolean;
127
128
  zoom: Zoom;
128
129
  openMenu: "canvas" | "shape" | null;
129
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
130
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
130
131
  openSidebar: {
131
132
  name: SidebarName;
132
133
  tab?: SidebarTabName;
@@ -185,10 +186,15 @@ export declare type AppState = {
185
186
  showHyperlinkPopup: false | "info" | "editor";
186
187
  linkOpacity: number;
187
188
  trayModeEnabled: boolean;
188
- colorPalette: {
189
- canvasBackground?: string[];
190
- elementBackground?: string[];
191
- elementStroke?: string[];
189
+ colorPalette?: {
190
+ canvasBackground: ColorPaletteCustom;
191
+ elementBackground: ColorPaletteCustom;
192
+ elementStroke: ColorPaletteCustom;
193
+ topPicks: {
194
+ canvasBackground: [string, string, string, string, string];
195
+ elementStroke: [string, string, string, string, string];
196
+ elementBackground: [string, string, string, string, string];
197
+ };
192
198
  };
193
199
  allowWheelZoom?: boolean;
194
200
  allowPinchZoom?: boolean;
@@ -201,18 +207,18 @@ export declare type AppState = {
201
207
  invertBindingBehaviour: boolean;
202
208
  selectedLinearElement: LinearElementEditor | null;
203
209
  };
204
- export declare type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
205
- export declare type NormalizedZoomValue = number & {
210
+ export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
211
+ export type NormalizedZoomValue = number & {
206
212
  _brand: "normalizedZoom";
207
213
  };
208
- export declare type Zoom = Readonly<{
214
+ export type Zoom = Readonly<{
209
215
  value: NormalizedZoomValue;
210
216
  }>;
211
- export declare type PointerCoords = Readonly<{
217
+ export type PointerCoords = Readonly<{
212
218
  x: number;
213
219
  y: number;
214
220
  }>;
215
- export declare type Gesture = {
221
+ export type Gesture = {
216
222
  pointers: Map<number, PointerCoords>;
217
223
  lastCenter: {
218
224
  x: number;
@@ -226,11 +232,11 @@ export declare class GestureEvent extends UIEvent {
226
232
  readonly scale: number;
227
233
  }
228
234
  /** @deprecated legacy: do not use outside of migration paths */
229
- export declare type LibraryItem_v1 = readonly NonDeleted<ExcalidrawElement>[];
235
+ export type LibraryItem_v1 = readonly NonDeleted<ExcalidrawElement>[];
230
236
  /** @deprecated legacy: do not use outside of migration paths */
231
- declare type LibraryItems_v1 = readonly LibraryItem_v1[];
237
+ type LibraryItems_v1 = readonly LibraryItem_v1[];
232
238
  /** v2 library item */
233
- export declare type LibraryItem = {
239
+ export type LibraryItem = {
234
240
  id: string;
235
241
  status: "published" | "unpublished";
236
242
  elements: readonly NonDeleted<ExcalidrawElement>[];
@@ -239,14 +245,14 @@ export declare type LibraryItem = {
239
245
  name?: string;
240
246
  error?: string;
241
247
  };
242
- export declare type LibraryItems = readonly LibraryItem[];
243
- export declare type LibraryItems_anyVersion = LibraryItems | LibraryItems_v1;
244
- export declare type LibraryItemsSource = ((currentLibraryItems: LibraryItems) => Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>) | Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>;
245
- export declare type ExcalidrawAPIRefValue = ExcalidrawImperativeAPI | {
248
+ export type LibraryItems = readonly LibraryItem[];
249
+ export type LibraryItems_anyVersion = LibraryItems | LibraryItems_v1;
250
+ export type LibraryItemsSource = ((currentLibraryItems: LibraryItems) => Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>) | Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>;
251
+ export type ExcalidrawAPIRefValue = ExcalidrawImperativeAPI | {
246
252
  readyPromise?: ResolvablePromise<ExcalidrawImperativeAPI>;
247
253
  ready?: false;
248
254
  };
249
- export declare type ExcalidrawInitialDataState = Merge<ImportedDataState, {
255
+ export type ExcalidrawInitialDataState = Merge<ImportedDataState, {
250
256
  libraryItems?: Required<ImportedDataState>["libraryItems"] | Promise<Required<ImportedDataState>["libraryItems"]>;
251
257
  }>;
252
258
  export interface ExcalidrawProps {
@@ -292,7 +298,7 @@ export interface ExcalidrawProps {
292
298
  onScrollChange?: (scrollX: number, scrollY: number) => void;
293
299
  children?: React.ReactNode;
294
300
  }
295
- export declare type SceneData = {
301
+ export type SceneData = {
296
302
  elements?: ImportedDataState["elements"];
297
303
  appState?: ImportedDataState["appState"];
298
304
  collaborators?: Map<string, Collaborator>;
@@ -303,12 +309,12 @@ export declare enum UserIdleState {
303
309
  AWAY = "away",
304
310
  IDLE = "idle"
305
311
  }
306
- export declare type ExportOpts = {
312
+ export type ExportOpts = {
307
313
  saveFileToDisk?: boolean;
308
314
  onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement | null) => void;
309
315
  renderCustomUI?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement | null) => JSX.Element;
310
316
  };
311
- declare type CanvasActions = Partial<{
317
+ type CanvasActions = Partial<{
312
318
  changeViewBackgroundColor: boolean;
313
319
  clearCanvas: boolean;
314
320
  export: false | ExportOpts;
@@ -317,13 +323,13 @@ declare type CanvasActions = Partial<{
317
323
  toggleTheme: boolean | null;
318
324
  saveAsImage: boolean;
319
325
  }>;
320
- declare type UIOptions = Partial<{
326
+ type UIOptions = Partial<{
321
327
  dockedSidebarBreakpoint: number;
322
328
  canvasActions: CanvasActions;
323
329
  /** @deprecated does nothing. Will be removed in 0.15 */
324
330
  welcomeScreen?: boolean;
325
331
  }>;
326
- export declare type AppProps = Merge<ExcalidrawProps, {
332
+ export type AppProps = Merge<ExcalidrawProps, {
327
333
  UIOptions: Merge<UIOptions, {
328
334
  canvasActions: Required<CanvasActions> & {
329
335
  export: ExportOpts;
@@ -336,7 +342,7 @@ export declare type AppProps = Merge<ExcalidrawProps, {
336
342
  }>;
337
343
  /** A subset of App class properties that we need to use elsewhere
338
344
  * in the app, eg Manager. Factored out into a separate type to keep DRY. */
339
- export declare type AppClassProperties = {
345
+ export type AppClassProperties = {
340
346
  props: AppProps;
341
347
  canvas: HTMLCanvasElement | null;
342
348
  focusContainer(): void;
@@ -351,8 +357,10 @@ export declare type AppClassProperties = {
351
357
  pasteFromClipboard: App["pasteFromClipboard"];
352
358
  id: App["id"];
353
359
  onInsertElements: App["onInsertElements"];
360
+ onExportImage: App["onExportImage"];
361
+ lastViewportPosition: App["lastViewportPosition"];
354
362
  };
355
- export declare type PointerDownState = Readonly<{
363
+ export type PointerDownState = Readonly<{
356
364
  origin: Readonly<{
357
365
  x: number;
358
366
  y: number;
@@ -411,7 +419,7 @@ export declare type PointerDownState = Readonly<{
411
419
  };
412
420
  };
413
421
  }>;
414
- export declare type ExcalidrawImperativeAPI = {
422
+ export type ExcalidrawImperativeAPI = {
415
423
  updateScene: InstanceType<typeof App>["updateScene"];
416
424
  updateLibrary: InstanceType<typeof Library>["updateLibrary"];
417
425
  resetScene: InstanceType<typeof App>["resetScene"];
@@ -445,10 +453,11 @@ export declare type ExcalidrawImperativeAPI = {
445
453
  resetCursor: InstanceType<typeof App>["resetCursor"];
446
454
  toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
447
455
  };
448
- export declare type Device = Readonly<{
456
+ export type Device = Readonly<{
449
457
  isSmScreen: boolean;
450
458
  isMobile: boolean;
451
459
  isTouchScreen: boolean;
452
460
  canDeviceFitSidebar: boolean;
461
+ isLandscape: boolean;
453
462
  }>;
454
463
  export {};
@@ -1,22 +1,22 @@
1
1
  /// <reference types="react" />
2
- export declare type Mutable<T> = {
2
+ export type Mutable<T> = {
3
3
  -readonly [P in keyof T]: T[P];
4
4
  };
5
- export declare type ValueOf<T> = T[keyof T];
6
- export declare type Merge<M, N> = Omit<M, keyof N> & N;
5
+ export type ValueOf<T> = T[keyof T];
6
+ export type Merge<M, N> = Omit<M, keyof N> & N;
7
7
  /** utility type to assert that the second type is a subtype of the first type.
8
8
  * Returns the subtype. */
9
- export declare type SubtypeOf<Supertype, Subtype extends Supertype> = Subtype;
10
- export declare type ResolutionType<T extends (...args: any) => any> = T extends (...args: any) => Promise<infer R> ? R : any;
11
- export declare type MarkOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
12
- export declare type MarkRequired<T, RK extends keyof T> = Exclude<T, RK> & Required<Pick<T, RK>>;
13
- export declare type MarkNonNullable<T, K extends keyof T> = {
9
+ export type SubtypeOf<Supertype, Subtype extends Supertype> = Subtype;
10
+ export type ResolutionType<T extends (...args: any) => any> = T extends (...args: any) => Promise<infer R> ? R : any;
11
+ export type MarkOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
12
+ export type MarkRequired<T, RK extends keyof T> = Exclude<T, RK> & Required<Pick<T, RK>>;
13
+ export type MarkNonNullable<T, K extends keyof T> = {
14
14
  [P in K]-?: P extends K ? NonNullable<T[P]> : T[P];
15
15
  } & {
16
16
  [P in keyof T]: T[P];
17
17
  };
18
- export declare type NonOptional<T> = Exclude<T, undefined>;
19
- export declare type SignatureType<T> = T extends (...args: infer R) => any ? R : never;
20
- export declare type CallableType<T extends (...args: any[]) => any> = (...args: SignatureType<T>) => ReturnType<T>;
21
- export declare type ForwardRef<T, P = any> = Parameters<CallableType<React.ForwardRefRenderFunction<T, P>>>[1];
22
- export declare type ExtractSetType<T extends Set<any>> = T extends Set<infer U> ? U : never;
18
+ export type NonOptional<T> = Exclude<T, undefined>;
19
+ export type SignatureType<T> = T extends (...args: infer R) => any ? R : never;
20
+ export type CallableType<T extends (...args: any[]) => any> = (...args: SignatureType<T>) => ReturnType<T>;
21
+ export type ForwardRef<T, P = any> = Parameters<CallableType<React.ForwardRefRenderFunction<T, P>>>[1];
22
+ export type ExtractSetType<T extends Set<any>> = T extends Set<infer U> ? U : never;
package/types/utils.d.ts CHANGED
@@ -6,8 +6,8 @@ export declare const setDateTimeForTests: (dateTime: string) => void;
6
6
  export declare const getDateTime: () => string;
7
7
  export declare const capitalizeString: (str: string) => string;
8
8
  export declare const isToolIcon: (target: Element | EventTarget | null) => target is HTMLElement;
9
- export declare const isInputLike: (target: Element | EventTarget | null) => target is HTMLBRElement | HTMLDivElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
10
- export declare const isWritableElement: (target: Element | EventTarget | null) => target is HTMLBRElement | HTMLDivElement | HTMLInputElement | HTMLTextAreaElement;
9
+ export declare const isInputLike: (target: Element | EventTarget | null) => target is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLBRElement | HTMLDivElement;
10
+ export declare const isWritableElement: (target: Element | EventTarget | null) => target is HTMLInputElement | HTMLTextAreaElement | HTMLBRElement | HTMLDivElement;
11
11
  export declare const getFontFamilyString: ({ fontFamily, }: {
12
12
  fontFamily: FontFamilyValues;
13
13
  }) => string;
@@ -111,7 +111,7 @@ export declare const muteFSAbortError: (error?: Error) => void;
111
111
  export declare const findIndex: <T>(array: readonly T[], cb: (element: T, index: number, array: readonly T[]) => boolean, fromIndex?: number) => number;
112
112
  export declare const findLastIndex: <T>(array: readonly T[], cb: (element: T, index: number, array: readonly T[]) => boolean, fromIndex?: number) => number;
113
113
  export declare const isTransparent: (color: string) => boolean;
114
- export declare type ResolvablePromise<T> = Promise<T> & {
114
+ export type ResolvablePromise<T> = Promise<T> & {
115
115
  resolve: [T] extends [undefined] ? (value?: T) => void : (value: T) => void;
116
116
  reject: (error: Error) => void;
117
117
  };