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

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 (63) hide show
  1. package/dist/excalidraw.development.js +462 -198
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/package.json +1 -1
  4. package/types/actions/actionAddToLibrary.d.ts +15 -6
  5. package/types/actions/actionBoundText.d.ts +10 -4
  6. package/types/actions/actionCanvas.d.ts +50 -20
  7. package/types/actions/actionClipboard.d.ts +25 -10
  8. package/types/actions/actionDeleteSelected.d.ts +15 -6
  9. package/types/actions/actionExport.d.ts +45 -18
  10. package/types/actions/actionFinalize.d.ts +10 -4
  11. package/types/actions/actionLinearEditor.d.ts +5 -2
  12. package/types/actions/actionMenu.d.ts +15 -6
  13. package/types/actions/actionProperties.d.ts +65 -26
  14. package/types/actions/actionStyles.d.ts +5 -2
  15. package/types/actions/actionToggleGridMode.d.ts +5 -2
  16. package/types/actions/actionToggleLock.d.ts +5 -2
  17. package/types/actions/actionToggleStats.d.ts +5 -2
  18. package/types/actions/actionToggleViewMode.d.ts +5 -2
  19. package/types/actions/actionToggleZenMode.d.ts +5 -2
  20. package/types/appState.d.ts +5 -2
  21. package/types/clipboard.d.ts +2 -2
  22. package/types/components/Actions.d.ts +5 -5
  23. package/types/components/App.d.ts +10 -3
  24. package/types/components/Button.d.ts +3 -1
  25. package/types/components/DefaultSidebar.d.ts +30 -0
  26. package/types/components/HintViewer.d.ts +2 -2
  27. package/types/components/ImageExportDialog.d.ts +4 -4
  28. package/types/components/JSONExportDialog.d.ts +3 -3
  29. package/types/components/LayerUI.d.ts +3 -10
  30. package/types/components/LibraryMenu.d.ts +32 -13
  31. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  32. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  33. package/types/components/LibraryMenuHeaderContent.d.ts +9 -28
  34. package/types/components/LibraryMenuItems.d.ts +2 -2
  35. package/types/components/MobileMenu.d.ts +3 -3
  36. package/types/components/PasteChartDialog.d.ts +4 -5
  37. package/types/components/PublishLibrary.d.ts +2 -2
  38. package/types/components/Sidebar/Sidebar.d.ts +68 -45
  39. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  40. package/types/components/Sidebar/SidebarTab.d.ts +9 -0
  41. package/types/components/Sidebar/SidebarTabTrigger.d.ts +10 -0
  42. package/types/components/Sidebar/SidebarTabTriggers.d.ts +7 -0
  43. package/types/components/Sidebar/SidebarTabs.d.ts +7 -0
  44. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  45. package/types/components/Sidebar/common.d.ts +23 -6
  46. package/types/components/Stats.d.ts +3 -3
  47. package/types/components/Trans.d.ts +8 -0
  48. package/types/components/footer/Footer.d.ts +2 -2
  49. package/types/constants.d.ts +5 -0
  50. package/types/context/tunnels.d.ts +18 -0
  51. package/types/context/ui-appState.d.ts +4 -0
  52. package/types/data/types.d.ts +2 -4
  53. package/types/element/Hyperlink.d.ts +7 -4
  54. package/types/element/linearElementEditor.d.ts +5 -2
  55. package/types/element/newElement.d.ts +6 -1
  56. package/types/element/showSelectedShapeActions.d.ts +2 -2
  57. package/types/element/textElement.d.ts +2 -2
  58. package/types/hooks/useOutsideClick.d.ts +1 -1
  59. package/types/packages/excalidraw/index.d.ts +2 -1
  60. package/types/packages/utils.d.ts +1 -1
  61. package/types/scene/selection.d.ts +4 -4
  62. package/types/types.d.ts +23 -12
  63. package/types/utils.d.ts +2 -2
@@ -1,35 +1,16 @@
1
- import React from "react";
1
+ /// <reference types="react" />
2
+ import { LibraryItem, UIAppState } from "../types";
2
3
  import Library from "../data/library";
3
- import { AppState, LibraryItem } from "../types";
4
- export declare const isLibraryMenuOpenAtom: import("jotai").Atom<boolean> & {
5
- write: (get: {
6
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
7
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
8
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
9
- } & {
10
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
11
- unstable_promise: true;
12
- }): Value_3 | Promise<Value_3>;
13
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
14
- unstable_promise: true;
15
- }): Value_4 | Promise<Value_4>;
16
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
17
- unstable_promise: true;
18
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
19
- }, set: {
20
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
21
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
22
- }, update: boolean | ((prev: boolean) => boolean)) => void;
23
- onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
24
- } & {
25
- init: boolean;
26
- };
27
- export declare const LibraryMenuHeader: React.FC<{
28
- setAppState: React.Component<any, AppState>["setState"];
4
+ export declare const LibraryDropdownMenuButton: React.FC<{
5
+ setAppState: React.Component<any, UIAppState>["setState"];
29
6
  selectedItems: LibraryItem["id"][];
30
7
  library: Library;
31
8
  onRemoveFromLibrary: () => void;
32
9
  resetLibrary: () => void;
33
10
  onSelectItems: (items: LibraryItem["id"][]) => void;
34
- appState: AppState;
11
+ appState: UIAppState;
35
12
  }>;
13
+ export declare const LibraryDropdownMenu: ({ selectedItems, onSelectItems, }: {
14
+ selectedItems: LibraryItem["id"][];
15
+ onSelectItems: (id: LibraryItem["id"][]) => void;
16
+ }) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { AppState, ExcalidrawProps, LibraryItem, LibraryItems } from "../types";
1
+ import { ExcalidrawProps, LibraryItem, LibraryItems, UIAppState } from "../types";
2
2
  import "./LibraryMenuItems.scss";
3
3
  declare const LibraryMenuItems: ({ isLoading, libraryItems, onAddToLibrary, onInsertLibraryItems, pendingElements, selectedItems, onSelectItems, theme, id, libraryReturnUrl, }: {
4
4
  isLoading: boolean;
@@ -9,7 +9,7 @@ declare const LibraryMenuItems: ({ isLoading, libraryItems, onAddToLibrary, onIn
9
9
  selectedItems: LibraryItem["id"][];
10
10
  onSelectItems: (id: LibraryItem["id"][]) => void;
11
11
  libraryReturnUrl: ExcalidrawProps["libraryReturnUrl"];
12
- theme: AppState["theme"];
12
+ theme: UIAppState["theme"];
13
13
  id: string;
14
14
  }) => JSX.Element;
15
15
  export default LibraryMenuItems;
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { AppState, Device, ExcalidrawProps } from "../types";
2
+ import { AppState, Device, ExcalidrawProps, UIAppState } from "../types";
3
3
  import { ActionManager } from "../actions/manager";
4
4
  import { NonDeletedExcalidrawElement } from "../element/types";
5
5
  declare type MobileMenuProps = {
6
- appState: AppState;
6
+ appState: UIAppState;
7
7
  actionManager: ActionManager;
8
8
  renderJSONExportDialog: () => React.ReactNode;
9
9
  renderImageExportDialog: () => React.ReactNode;
@@ -16,7 +16,7 @@ declare type MobileMenuProps = {
16
16
  onImageAction: (data: {
17
17
  insertOnCanvasDirectly: boolean;
18
18
  }) => void;
19
- renderTopRightUI?: (isMobile: boolean, appState: AppState) => JSX.Element | null;
19
+ renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
20
20
  renderCustomStats?: ExcalidrawProps["renderCustomStats"];
21
21
  renderSidebars: () => JSX.Element | null;
22
22
  device: Device;
@@ -1,9 +1,8 @@
1
1
  import React from "react";
2
- import { AppState, LibraryItem } from "../types";
2
+ import { UIAppState } from "../types";
3
3
  import "./PasteChartDialog.scss";
4
- export declare const PasteChartDialog: ({ setAppState, appState, onClose, onInsertChart, }: {
5
- appState: AppState;
4
+ export declare const PasteChartDialog: ({ setAppState, appState, onClose, }: {
5
+ appState: UIAppState;
6
6
  onClose: () => void;
7
- setAppState: React.Component<any, AppState>["setState"];
8
- onInsertChart: (elements: LibraryItem["elements"]) => void;
7
+ setAppState: React.Component<any, UIAppState>["setState"];
9
8
  }) => JSX.Element;
@@ -1,9 +1,9 @@
1
- import { AppState, LibraryItems } from "../types";
1
+ import { LibraryItems, UIAppState } from "../types";
2
2
  import "./PublishLibrary.scss";
3
3
  declare const PublishLibrary: ({ onClose, libraryItems, appState, onSuccess, onError, updateItemsInStorage, onRemove, }: {
4
4
  onClose: () => void;
5
5
  libraryItems: LibraryItems;
6
- appState: AppState;
6
+ appState: UIAppState;
7
7
  onSuccess: (data: {
8
8
  url: string;
9
9
  authorName: string;
@@ -1,11 +1,14 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import "./Sidebar.scss";
3
- /** using a counter instead of boolean to handle race conditions where
4
- * the host app may render (mount/unmount) multiple different sidebar */
5
- export declare const hostSidebarCountersAtom: import("jotai").Atom<{
6
- rendered: number;
7
- docked: number;
8
- }> & {
3
+ /**
4
+ * Flags whether the currently rendered Sidebar is docked or not, for use
5
+ * in upstream components that need to act on this (e.g. LayerUI to shift the
6
+ * UI). We use an atom because of potential host app sidebars (for the default
7
+ * sidebar we could just read from appState.defaultSidebarDockedPreference).
8
+ *
9
+ * Since we can only render one Sidebar at a time, we can use a simple flag.
10
+ */
11
+ export declare const isSidebarDockedAtom: import("jotai").Atom<boolean> & {
9
12
  write: (get: {
10
13
  <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
11
14
  <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
@@ -23,51 +26,71 @@ export declare const hostSidebarCountersAtom: import("jotai").Atom<{
23
26
  }, set: {
24
27
  <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
25
28
  <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
26
- }, update: {
27
- rendered: number;
28
- docked: number;
29
- } | ((prev: {
30
- rendered: number;
31
- docked: number;
32
- }) => {
33
- rendered: number;
34
- docked: number;
35
- })) => void;
36
- onMount?: (<S extends (update: {
37
- rendered: number;
38
- docked: number;
39
- } | ((prev: {
40
- rendered: number;
41
- docked: number;
42
- }) => {
43
- rendered: number;
44
- docked: number;
45
- })) => void>(setAtom: S) => void | (() => void)) | undefined;
29
+ }, update: boolean | ((prev: boolean) => boolean)) => void;
30
+ onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
46
31
  } & {
47
- init: {
48
- rendered: number;
49
- docked: number;
50
- };
32
+ init: boolean;
51
33
  };
52
- export declare const Sidebar: import("react").ForwardRefExoticComponent<{
53
- children: import("react").ReactNode;
54
- onClose?: (() => boolean | void) | undefined;
34
+ export declare const SidebarInner: React.ForwardRefExoticComponent<Pick<{
35
+ name: string;
36
+ children: React.ReactNode;
37
+ onStateChange?: ((state: {
38
+ name: string;
39
+ tab?: string | undefined;
40
+ } | null) => void) | undefined;
55
41
  onDock?: ((docked: boolean) => void) | undefined;
56
42
  docked?: boolean | undefined;
57
- initialDockedState?: boolean | undefined;
58
- dockable?: boolean | undefined;
59
43
  className?: string | undefined;
60
- } & {
61
- /** @private internal */
62
- __isInternal?: boolean | undefined;
63
- } & import("react").RefAttributes<HTMLDivElement>> & {
44
+ __fallback?: boolean | undefined;
45
+ } & Omit<React.RefAttributes<HTMLDivElement>, "onSelect">, "className" | "name" | "children" | "key" | "onDock" | "docked" | "onStateChange" | "__fallback"> & React.RefAttributes<HTMLDivElement>>;
46
+ export declare const Sidebar: React.ForwardRefExoticComponent<{
47
+ name: string;
48
+ children: React.ReactNode;
49
+ onStateChange?: ((state: {
50
+ name: string;
51
+ tab?: string | undefined;
52
+ } | null) => void) | undefined;
53
+ onDock?: ((docked: boolean) => void) | undefined;
54
+ docked?: boolean | undefined;
55
+ className?: string | undefined;
56
+ __fallback?: boolean | undefined;
57
+ } & React.RefAttributes<HTMLDivElement>> & {
64
58
  Header: {
65
- (props: {
66
- children?: import("react").ReactNode;
59
+ ({ children, className, }: {
60
+ children?: React.ReactNode;
67
61
  className?: string | undefined;
68
- } & {
69
- __isFallback?: boolean | undefined;
70
- }): JSX.Element | null;
62
+ }): JSX.Element;
63
+ displayName: string;
64
+ };
65
+ TabTriggers: {
66
+ ({ children, ...rest }: {
67
+ children: React.ReactNode;
68
+ } & Omit<React.RefAttributes<HTMLDivElement>, "onSelect">): JSX.Element;
69
+ displayName: string;
70
+ };
71
+ TabTrigger: {
72
+ ({ children, tab, onSelect, ...rest }: {
73
+ children: React.ReactNode;
74
+ tab: string;
75
+ onSelect?: React.ReactEventHandler<HTMLButtonElement> | undefined;
76
+ } & Omit<React.HTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
77
+ displayName: string;
78
+ };
79
+ Tabs: {
80
+ ({ children, ...rest }: {
81
+ children: React.ReactNode;
82
+ } & Omit<React.RefAttributes<HTMLDivElement>, "onSelect">): JSX.Element | null;
83
+ displayName: string;
84
+ };
85
+ Tab: {
86
+ ({ tab, children, ...rest }: {
87
+ tab: string;
88
+ children: React.ReactNode;
89
+ } & React.HTMLAttributes<HTMLDivElement>): JSX.Element;
90
+ displayName: string;
91
+ };
92
+ Trigger: {
93
+ ({ name, tab, icon, title, children, onToggle, className, style, }: import("./common").SidebarTriggerProps): JSX.Element;
71
94
  displayName: string;
72
95
  };
73
96
  };
@@ -1,20 +1,7 @@
1
- /// <reference types="react" />
2
- export declare const SidebarDockButton: (props: {
3
- checked: boolean;
4
- onChange?(): void;
5
- }) => JSX.Element;
6
- /** @private */
7
- export declare const SidebarHeaderComponents: {
8
- Context: import("react").FC<{
9
- children: import("react").ReactNode;
10
- }>;
11
- Component: {
12
- (props: {
13
- children?: React.ReactNode;
14
- className?: string | undefined;
15
- } & {
16
- __isFallback?: boolean | undefined;
17
- }): JSX.Element | null;
18
- displayName: string;
19
- };
1
+ export declare const SidebarHeader: {
2
+ ({ children, className, }: {
3
+ children?: React.ReactNode;
4
+ className?: string | undefined;
5
+ }): JSX.Element;
6
+ displayName: string;
20
7
  };
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { SidebarTabName } from "../../types";
3
+ export declare const SidebarTab: {
4
+ ({ tab, children, ...rest }: {
5
+ tab: SidebarTabName;
6
+ children: React.ReactNode;
7
+ } & import("react").HTMLAttributes<HTMLDivElement>): JSX.Element;
8
+ displayName: string;
9
+ };
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { SidebarTabName } from "../../types";
3
+ export declare const SidebarTabTrigger: {
4
+ ({ children, tab, onSelect, ...rest }: {
5
+ children: React.ReactNode;
6
+ tab: SidebarTabName;
7
+ onSelect?: React.ReactEventHandler<HTMLButtonElement> | undefined;
8
+ } & Omit<import("react").HTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
9
+ displayName: string;
10
+ };
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare const SidebarTabTriggers: {
3
+ ({ children, ...rest }: {
4
+ children: React.ReactNode;
5
+ } & Omit<import("react").RefAttributes<HTMLDivElement>, "onSelect">): JSX.Element;
6
+ displayName: string;
7
+ };
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare const SidebarTabs: {
3
+ ({ children, ...rest }: {
4
+ children: React.ReactNode;
5
+ } & Omit<import("react").RefAttributes<HTMLDivElement>, "onSelect">): JSX.Element | null;
6
+ displayName: string;
7
+ };
@@ -0,0 +1,6 @@
1
+ import { SidebarTriggerProps } from "./common";
2
+ import "./SidebarTrigger.scss";
3
+ export declare const SidebarTrigger: {
4
+ ({ name, tab, icon, title, children, onToggle, className, style, }: SidebarTriggerProps): JSX.Element;
5
+ displayName: string;
6
+ };
@@ -1,16 +1,33 @@
1
1
  import React from "react";
2
+ import { AppState, SidebarName, SidebarTabName } from "../../types";
3
+ export declare type SidebarTriggerProps = {
4
+ name: SidebarName;
5
+ tab?: SidebarTabName;
6
+ icon?: JSX.Element;
7
+ children?: React.ReactNode;
8
+ title?: string;
9
+ className?: string;
10
+ onToggle?: (open: boolean) => void;
11
+ style?: React.CSSProperties;
12
+ };
2
13
  export declare type SidebarProps<P = {}> = {
14
+ name: SidebarName;
3
15
  children: React.ReactNode;
4
16
  /**
5
- * Called on sidebar close (either by user action or by the editor).
17
+ * Called on sidebar open/close or tab change.
18
+ */
19
+ onStateChange?: (state: AppState["openSidebar"]) => void;
20
+ /**
21
+ * supply alongside `docked` prop in order to make the Sidebar user-dockable
6
22
  */
7
- onClose?: () => void | boolean;
8
- /** if not supplied, sidebar won't be dockable */
9
23
  onDock?: (docked: boolean) => void;
10
24
  docked?: boolean;
11
- initialDockedState?: boolean;
12
- dockable?: boolean;
13
25
  className?: string;
26
+ /** @private internal */
27
+ __fallback?: boolean;
14
28
  } & P;
15
- export declare type SidebarPropsContextValue = Pick<SidebarProps, "onClose" | "onDock" | "docked" | "dockable">;
29
+ export declare type SidebarPropsContextValue = Pick<SidebarProps, "onDock" | "docked"> & {
30
+ onCloseRequest: () => void;
31
+ shouldRenderDockButton: boolean;
32
+ };
16
33
  export declare const SidebarPropsContext: React.Context<SidebarPropsContextValue>;
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import { NonDeletedExcalidrawElement } from "../element/types";
3
- import { AppState, ExcalidrawProps } from "../types";
3
+ import { ExcalidrawProps, UIAppState } from "../types";
4
4
  import "./Stats.scss";
5
5
  export declare const Stats: (props: {
6
- appState: AppState;
7
- setAppState: React.Component<any, AppState>["setState"];
6
+ appState: UIAppState;
7
+ setAppState: React.Component<any, UIAppState>["setState"];
8
8
  elements: readonly NonDeletedExcalidrawElement[];
9
9
  onClose: () => void;
10
10
  renderCustomStats: ExcalidrawProps["renderCustomStats"];
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ declare const Trans: ({ i18nKey, children, ...props }: {
3
+ [key: string]: React.ReactNode | ((el: React.ReactNode) => React.ReactNode);
4
+ i18nKey: string;
5
+ }) => React.FunctionComponentElement<{
6
+ children?: React.ReactNode;
7
+ }>;
8
+ export default Trans;
@@ -1,8 +1,8 @@
1
1
  import { ActionManager } from "../../actions/manager";
2
- import { AppState } from "../../types";
2
+ import { UIAppState } from "../../types";
3
3
  declare const Footer: {
4
4
  ({ appState, actionManager, showExitZenModeBtn, renderWelcomeScreen, }: {
5
- appState: AppState;
5
+ appState: UIAppState;
6
6
  actionManager: ActionManager;
7
7
  showExitZenModeBtn: boolean;
8
8
  renderWelcomeScreen: boolean;
@@ -190,3 +190,8 @@ export declare const DEFAULT_ELEMENT_PROPS: {
190
190
  opacity: ExcalidrawElement["opacity"];
191
191
  locked: ExcalidrawElement["locked"];
192
192
  };
193
+ export declare const LIBRARY_SIDEBAR_TAB = "library";
194
+ export declare const DEFAULT_SIDEBAR: {
195
+ readonly name: "default";
196
+ readonly defaultTab: "library";
197
+ };
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import tunnel from "tunnel-rat";
3
+ export declare type Tunnel = ReturnType<typeof tunnel>;
4
+ declare type TunnelsContextValue = {
5
+ MainMenuTunnel: Tunnel;
6
+ WelcomeScreenMenuHintTunnel: Tunnel;
7
+ WelcomeScreenToolbarHintTunnel: Tunnel;
8
+ WelcomeScreenHelpHintTunnel: Tunnel;
9
+ WelcomeScreenCenterTunnel: Tunnel;
10
+ FooterCenterTunnel: Tunnel;
11
+ DefaultSidebarTriggerTunnel: Tunnel;
12
+ DefaultSidebarTabTriggersTunnel: Tunnel;
13
+ jotaiScope: symbol;
14
+ };
15
+ export declare const TunnelsContext: React.Context<TunnelsContextValue>;
16
+ export declare const useTunnels: () => TunnelsContextValue;
17
+ export declare const useInitializeTunnels: () => TunnelsContextValue;
18
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { UIAppState } from "../types";
3
+ export declare const UIAppStateContext: React.Context<UIAppState>;
4
+ export declare const useUIAppState: () => UIAppState;
@@ -18,10 +18,8 @@ export interface ExportedDataState {
18
18
  * Don't consume on its own.
19
19
  */
20
20
  export declare type LegacyAppState = {
21
- /** @deprecated #5663 TODO remove 22-12-15 */
22
- isLibraryOpen: [boolean, "openSidebar"];
23
- /** @deprecated #5663 TODO remove 22-12-15 */
24
- isLibraryMenuDocked: [boolean, "isSidebarDocked"];
21
+ /** @deprecated #6213 TODO remove 23-06-01 */
22
+ isSidebarDocked: [boolean, "defaultSidebarDockedPreference"];
25
23
  };
26
24
  export interface ImportedDataState {
27
25
  type?: string;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { AppState, ExcalidrawProps } from "../types";
2
+ import { AppState, ExcalidrawProps, UIAppState } from "../types";
3
3
  import { NonDeletedExcalidrawElement } from "./types";
4
4
  import { Bounds } from "./bounds";
5
5
  import "./Hyperlink.scss";
@@ -76,9 +76,12 @@ export declare const actionLink: {
76
76
  value: import("../types").NormalizedZoomValue;
77
77
  }>;
78
78
  openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
79
- openSidebar: "library" | "customSidebar" | null;
79
+ openSidebar: {
80
+ name: string;
81
+ tab?: string | undefined;
82
+ } | null;
80
83
  openDialog: "imageExport" | "help" | "jsonExport" | null;
81
- isSidebarDocked: boolean;
84
+ defaultSidebarDockedPreference: boolean;
82
85
  lastPointerDownWith: import("./types").PointerType;
83
86
  selectedElementIds: {
84
87
  [id: string]: boolean;
@@ -149,7 +152,7 @@ export declare const actionLink: {
149
152
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
150
153
  };
151
154
  export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => "labels.link.edit" | "labels.link.create";
152
- export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: number, appState: AppState) => [x: number, y: number, width: number, height: number];
155
+ export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: number, appState: UIAppState) => [x: number, y: number, width: number, height: number];
153
156
  export declare const isPointHittingLinkIcon: (element: NonDeletedExcalidrawElement, appState: AppState, [x, y]: readonly [number, number], isMobile: boolean) => boolean;
154
157
  export declare const showHyperlinkTooltip: (element: NonDeletedExcalidrawElement, appState: AppState) => void;
155
158
  export declare const hideHyperlinkToolip: () => void;
@@ -181,9 +181,12 @@ export declare class LinearElementEditor {
181
181
  }>;
182
182
  openMenu: "canvas" | "shape" | null;
183
183
  openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
184
- openSidebar: "library" | "customSidebar" | null;
184
+ openSidebar: {
185
+ name: string;
186
+ tab?: string | undefined;
187
+ } | null;
185
188
  openDialog: "imageExport" | "help" | "jsonExport" | null;
186
- isSidebarDocked: boolean;
189
+ defaultSidebarDockedPreference: boolean;
187
190
  lastPointerDownWith: import("./types").PointerType;
188
191
  selectedElementIds: {
189
192
  [id: string]: boolean;
@@ -80,6 +80,11 @@ export declare const duplicateElement: <TElement extends ExcalidrawElement>(edit
80
80
  * it's advised to supply the whole elements array, or sets of elements that
81
81
  * are encapsulated (such as library items), if the purpose is to retain
82
82
  * bindings to the cloned elements intact.
83
+ *
84
+ * NOTE by default does not randomize or regenerate anything except the id.
83
85
  */
84
- export declare const duplicateElements: (elements: readonly ExcalidrawElement[]) => ExcalidrawElement[];
86
+ export declare const duplicateElements: (elements: readonly ExcalidrawElement[], opts?: {
87
+ /** NOTE also updates version flags and `updated` */
88
+ randomizeSeed: boolean;
89
+ }) => ExcalidrawElement[];
85
90
  export {};
@@ -1,3 +1,3 @@
1
- import { AppState } from "../types";
2
1
  import { NonDeletedExcalidrawElement } from "./types";
3
- export declare const showSelectedShapeActions: (appState: AppState, elements: readonly NonDeletedExcalidrawElement[]) => boolean;
2
+ import { UIAppState } from "../types";
3
+ export declare const showSelectedShapeActions: (appState: UIAppState, elements: readonly NonDeletedExcalidrawElement[]) => boolean;
@@ -71,8 +71,8 @@ export declare const getTextBindableContainerAtPosition: (elements: readonly Exc
71
71
  declare const VALID_CONTAINER_TYPES: Set<string>;
72
72
  export declare const isValidTextContainer: (element: ExcalidrawElement) => boolean;
73
73
  export declare const computeContainerDimensionForBoundText: (dimension: number, containerType: ExtractSetType<typeof VALID_CONTAINER_TYPES>, legacy?: boolean) => number;
74
- export declare const getMaxContainerWidth: (container: ExcalidrawElement) => number;
75
- export declare const getMaxContainerHeight: (container: ExcalidrawElement) => number;
74
+ export declare const getBoundTextMaxWidth: (container: ExcalidrawElement) => number;
75
+ export declare const getBoundTextMaxHeight: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer) => number;
76
76
  export declare const isMeasureTextSupported: () => boolean;
77
77
  export declare const getDefaultLineHeight: (fontFamily: FontFamilyValues) => number & {
78
78
  _brand: "unitlessLineHeight";
@@ -1,2 +1,2 @@
1
1
  /// <reference types="react" />
2
- export declare const useOutsideClickHook: (handler: (event: Event) => void) => import("react").MutableRefObject<null>;
2
+ export declare const useOutsideClick: (handler: (event: Event) => void) => import("react").MutableRefObject<null>;
@@ -19,7 +19,7 @@ measureText, //zsviczian
19
19
  getDefaultLineHeight, //zsviczian
20
20
  wrapText, //zsviczian
21
21
  getFontString, //zsviczian
22
- getMaxContainerWidth, //zsviczian
22
+ getBoundTextMaxWidth, //zsviczian
23
23
  exportToClipboard, mergeLibraryItems, } from "../../packages/utils";
24
24
  export { isLinearElement } from "../../element/typeChecks";
25
25
  export { FONT_FAMILY, THEME, MIME_TYPES } from "../../constants";
@@ -33,3 +33,4 @@ export { MainMenu };
33
33
  export { useDevice } from "../../components/App";
34
34
  export { WelcomeScreen };
35
35
  export { LiveCollaborationTrigger };
36
+ export { DefaultSidebar } from "../../components/DefaultSidebar";
@@ -38,5 +38,5 @@ export { intersectElementWithLine } from "../element/collision";
38
38
  export { determineFocusDistance } from "../element/collision";
39
39
  export { measureText, wrapText, getDefaultLineHeight } from "../element/textElement";
40
40
  export { getFontString } from "../utils";
41
- export { getMaxContainerWidth } from "../element/textElement";
41
+ export { getBoundTextMaxWidth } from "../element/textElement";
42
42
  export { mergeLibraryItems } from "../data/library";
@@ -1,11 +1,11 @@
1
1
  import { ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
2
2
  import { AppState } from "../types";
3
3
  export declare const getElementsWithinSelection: (elements: readonly NonDeletedExcalidrawElement[], selection: NonDeletedExcalidrawElement) => NonDeletedExcalidrawElement[];
4
- export declare const isSomeElementSelected: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => boolean;
4
+ export declare const isSomeElementSelected: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">) => boolean;
5
5
  /**
6
6
  * Returns common attribute (picked by `getAttribute` callback) of selected
7
7
  * elements. If elements don't share the same value, returns `null`.
8
8
  */
9
- export declare const getCommonAttributeOfSelectedElements: <T>(elements: readonly NonDeletedExcalidrawElement[], appState: AppState, getAttribute: (element: ExcalidrawElement) => T) => T | null;
10
- export declare const getSelectedElements: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, includeBoundTextElement?: boolean) => NonDeletedExcalidrawElement[];
11
- export declare const getTargetElements: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => NonDeletedExcalidrawElement[];
9
+ export declare const getCommonAttributeOfSelectedElements: <T>(elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, getAttribute: (element: ExcalidrawElement) => T) => T | null;
10
+ export declare const getSelectedElements: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, includeBoundTextElement?: boolean) => NonDeletedExcalidrawElement[];
11
+ export declare const getTargetElements: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds" | "editingElement">) => NonDeletedExcalidrawElement[];