@dwelle/excalidraw 0.4.0-d8d86cf → 0.4.0-e03b600

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 (203) hide show
  1. package/CHANGELOG.md +458 -0
  2. package/README.md +18 -1422
  3. package/dist/excalidraw.development.js +1882 -498
  4. package/dist/excalidraw.production.min.js +1 -1
  5. package/dist/excalidraw.production.min.js.LICENSE.txt +20 -0
  6. package/package.json +3 -3
  7. package/types/actions/actionAddToLibrary.d.ts +68 -34
  8. package/types/actions/actionAlign.d.ts +12 -18
  9. package/types/actions/actionBoundText.d.ts +158 -19
  10. package/types/actions/actionCanvas.d.ts +544 -118
  11. package/types/actions/actionClipboard.d.ts +132 -59
  12. package/types/actions/actionDeleteSelected.d.ts +72 -41
  13. package/types/actions/actionDistribute.d.ts +2 -6
  14. package/types/actions/actionDuplicateSelection.d.ts +2 -4
  15. package/types/actions/actionElementLock.d.ts +254 -0
  16. package/types/actions/actionExport.d.ts +215 -131
  17. package/types/actions/actionFinalize.d.ts +47 -27
  18. package/types/actions/actionFlip.d.ts +2 -4
  19. package/types/actions/actionFrame.d.ts +397 -0
  20. package/types/actions/actionGroup.d.ts +6 -10
  21. package/types/actions/actionHistory.d.ts +1 -1
  22. package/types/actions/actionLinearEditor.d.ts +25 -13
  23. package/types/actions/actionMenu.d.ts +73 -46
  24. package/types/actions/actionNavigate.d.ts +2 -3
  25. package/types/actions/actionProperties.d.ts +315 -198
  26. package/types/actions/actionStyles.d.ts +23 -12
  27. package/types/actions/actionToggleGridMode.d.ts +25 -12
  28. package/types/actions/actionToggleStats.d.ts +24 -12
  29. package/types/actions/actionToggleViewMode.d.ts +25 -12
  30. package/types/actions/actionToggleZenMode.d.ts +25 -12
  31. package/types/actions/actionZindex.d.ts +8 -16
  32. package/types/actions/index.d.ts +1 -1
  33. package/types/actions/manager.d.ts +3 -2
  34. package/types/actions/shortcuts.d.ts +2 -1
  35. package/types/actions/types.d.ts +13 -11
  36. package/types/appState.d.ts +16 -12
  37. package/types/charts.d.ts +2 -2
  38. package/types/clients.d.ts +5 -6
  39. package/types/clipboard.d.ts +2 -2
  40. package/types/colors.d.ts +60 -5
  41. package/types/components/Actions.d.ts +5 -5
  42. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  43. package/types/components/App.d.ts +58 -68
  44. package/types/components/Avatar.d.ts +1 -2
  45. package/types/components/BraveMeasureTextError.d.ts +2 -0
  46. package/types/components/Button.d.ts +17 -0
  47. package/types/components/ButtonIconSelect.d.ts +11 -3
  48. package/types/components/Card.d.ts +7 -0
  49. package/types/components/ColorPicker/ColorInput.d.ts +7 -0
  50. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  51. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  52. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  53. package/types/components/ColorPicker/Picker.d.ts +18 -0
  54. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  55. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  56. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  57. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  58. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  59. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +21 -0
  60. package/types/components/ContextMenu.d.ts +9 -22
  61. package/types/components/DefaultSidebar.d.ts +30 -0
  62. package/types/components/Dialog.d.ts +3 -4
  63. package/types/components/ErrorDialog.d.ts +3 -2
  64. package/types/components/EyeDropper.d.ts +18 -0
  65. package/types/components/FilledButton.d.ts +17 -0
  66. package/types/components/FixedSideContainer.d.ts +1 -1
  67. package/types/components/HandButton.d.ts +10 -0
  68. package/types/components/HelpButton.d.ts +1 -2
  69. package/types/components/HintViewer.d.ts +2 -2
  70. package/types/components/HomeButton.d.ts +1 -1
  71. package/types/components/ImageExportDialog.d.ts +8 -13
  72. package/types/components/Island.d.ts +1 -1
  73. package/types/components/JSONExportDialog.d.ts +6 -4
  74. package/types/components/LayerUI.d.ts +7 -15
  75. package/types/components/LibraryMenu.d.ts +13 -14
  76. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  77. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  78. package/types/components/LibraryMenuHeaderContent.d.ts +11 -5
  79. package/types/components/LibraryMenuItems.d.ts +6 -7
  80. package/types/components/LibraryMenuSection.d.ts +22 -0
  81. package/types/components/LibraryUnit.d.ts +7 -3
  82. package/types/components/LockButton.d.ts +1 -2
  83. package/types/components/MobileMenu.d.ts +8 -11
  84. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  85. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  86. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  87. package/types/components/PasteChartDialog.d.ts +4 -5
  88. package/types/components/PenModeButton.d.ts +1 -1
  89. package/types/components/Popover.d.ts +1 -1
  90. package/types/components/ProjectName.d.ts +2 -1
  91. package/types/components/PublishLibrary.d.ts +2 -2
  92. package/types/components/RadioGroup.d.ts +12 -0
  93. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  94. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  95. package/types/components/Sidebar/SidebarTab.d.ts +9 -0
  96. package/types/components/Sidebar/SidebarTabTrigger.d.ts +10 -0
  97. package/types/components/Sidebar/SidebarTabTriggers.d.ts +7 -0
  98. package/types/components/Sidebar/SidebarTabs.d.ts +7 -0
  99. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  100. package/types/components/Sidebar/common.d.ts +24 -7
  101. package/types/components/Spinner.d.ts +2 -1
  102. package/types/components/Stack.d.ts +4 -3
  103. package/types/components/Stats.d.ts +3 -3
  104. package/types/components/Switch.d.ts +9 -0
  105. package/types/components/ToolButton.d.ts +6 -5
  106. package/types/components/Tooltip.d.ts +1 -1
  107. package/types/components/Trans.d.ts +8 -0
  108. package/types/components/UserList.d.ts +0 -2
  109. package/types/components/dropdownMenu/DropdownMenu.d.ts +67 -0
  110. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  111. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  112. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -0
  113. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  114. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -0
  115. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -0
  116. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  117. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +11 -0
  118. package/types/components/dropdownMenu/common.d.ts +6 -0
  119. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  120. package/types/components/footer/Footer.d.ts +12 -0
  121. package/types/components/footer/FooterCenter.d.ts +8 -0
  122. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  123. package/types/components/icons.d.ts +14 -2
  124. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -0
  125. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  126. package/types/components/main-menu/MainMenu.d.ts +61 -0
  127. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
  128. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  129. package/types/components/welcome-screen/WelcomeScreen.d.ts +85 -0
  130. package/types/constants.d.ts +73 -16
  131. package/types/context/tunnels.d.ts +19 -0
  132. package/types/context/ui-appState.d.ts +4 -0
  133. package/types/data/blob.d.ts +3 -2
  134. package/types/data/encode.d.ts +1 -1
  135. package/types/data/filesystem.d.ts +2 -1
  136. package/types/data/index.d.ts +1 -1
  137. package/types/data/library.d.ts +3 -45
  138. package/types/data/restore.d.ts +10 -4
  139. package/types/data/types.d.ts +3 -5
  140. package/types/element/Hyperlink.d.ts +27 -18
  141. package/types/element/binding.d.ts +3 -3
  142. package/types/element/bounds.d.ts +32 -7
  143. package/types/element/collision.d.ts +7 -7
  144. package/types/element/dragElements.d.ts +2 -1
  145. package/types/element/image.d.ts +11 -1
  146. package/types/element/index.d.ts +3 -2
  147. package/types/element/linearElementEditor.d.ts +24 -13
  148. package/types/element/mutateElement.d.ts +2 -1
  149. package/types/element/newElement.d.ts +37 -11
  150. package/types/element/resizeElements.d.ts +1 -0
  151. package/types/element/showSelectedShapeActions.d.ts +2 -2
  152. package/types/element/sortElements.d.ts +2 -0
  153. package/types/element/textElement.d.ts +40 -5
  154. package/types/element/textWysiwyg.d.ts +6 -1
  155. package/types/element/transformHandles.d.ts +12 -5
  156. package/types/element/typeChecks.d.ts +12 -2
  157. package/types/element/types.d.ts +53 -36
  158. package/types/emitter.d.ts +1 -1
  159. package/types/errors.d.ts +1 -1
  160. package/types/frame.d.ts +40 -0
  161. package/types/ga.d.ts +5 -5
  162. package/types/groups.d.ts +4 -0
  163. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  164. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  165. package/types/hooks/useOutsideClick.d.ts +19 -1
  166. package/types/hooks/useScrollPosition.d.ts +2 -0
  167. package/types/hooks/useTransition.d.ts +2 -0
  168. package/types/i18n.d.ts +7 -1
  169. package/types/jotai.d.ts +20 -108
  170. package/types/keys.d.ts +4 -4
  171. package/types/math.d.ts +4 -1
  172. package/types/packages/excalidraw/example/App.d.ts +7 -1
  173. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  174. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  175. package/types/packages/excalidraw/example/initialData.d.ts +6 -0
  176. package/types/packages/excalidraw/index.d.ts +17 -3
  177. package/types/packages/utils.d.ts +26 -25
  178. package/types/renderer/renderElement.d.ts +7 -5
  179. package/types/renderer/renderScene.d.ts +13 -6
  180. package/types/renderer/roundRect.d.ts +1 -1
  181. package/types/scene/Scene.d.ts +12 -5
  182. package/types/scene/comparisons.d.ts +1 -1
  183. package/types/scene/export.d.ts +157 -10
  184. package/types/scene/index.d.ts +1 -1
  185. package/types/scene/selection.d.ts +15 -5
  186. package/types/scene/types.d.ts +13 -5
  187. package/types/types.d.ts +126 -77
  188. package/types/utility-types.d.ts +22 -0
  189. package/types/utils.d.ts +30 -9
  190. package/types/zindex.d.ts +4 -4
  191. package/types/actions/actionToggleLock.d.ts +0 -116
  192. package/types/components/ActiveFile.d.ts +0 -7
  193. package/types/components/ClearCanvas.d.ts +0 -4
  194. package/types/components/CollabButton.d.ts +0 -6
  195. package/types/components/ColorPicker.d.ts +0 -14
  196. package/types/components/Footer.d.ts +0 -10
  197. package/types/components/LibraryButton.d.ts +0 -8
  198. package/types/components/MenuItem.d.ts +0 -11
  199. package/types/components/MenuUtils.d.ts +0 -1
  200. package/types/components/SingleLibraryItem.d.ts +0 -10
  201. package/types/components/WelcomeScreen.d.ts +0 -10
  202. package/types/components/WelcomeScreenDecor.d.ts +0 -6
  203. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { Theme } from "../element/types";
3
- declare type Opts = {
3
+ type Opts = {
4
4
  width?: number;
5
5
  height?: number;
6
6
  mirror?: true;
@@ -73,7 +73,7 @@ export declare const DistributeHorizontallyIcon: JSX.Element;
73
73
  export declare const DistributeVerticallyIcon: JSX.Element;
74
74
  export declare const CenterVerticallyIcon: JSX.Element;
75
75
  export declare const CenterHorizontallyIcon: JSX.Element;
76
- export declare const UsersIcon: JSX.Element;
76
+ export declare const usersIcon: JSX.Element;
77
77
  export declare const start: JSX.Element;
78
78
  export declare const stop: JSX.Element;
79
79
  export declare const CloseIcon: JSX.Element;
@@ -87,6 +87,7 @@ export declare const GroupIcon: React.MemoExoticComponent<({ theme }: {
87
87
  export declare const UngroupIcon: React.MemoExoticComponent<({ theme }: {
88
88
  theme: Theme;
89
89
  }) => JSX.Element>;
90
+ export declare const FillZigZagIcon: JSX.Element;
90
91
  export declare const FillHachureIcon: JSX.Element;
91
92
  export declare const FillCrossHatchIcon: JSX.Element;
92
93
  export declare const FillSolidIcon: JSX.Element;
@@ -136,4 +137,15 @@ export declare const TextAlignMiddleIcon: React.MemoExoticComponent<({ theme }:
136
137
  }) => JSX.Element>;
137
138
  export declare const publishIcon: JSX.Element;
138
139
  export declare const eraser: JSX.Element;
140
+ export declare const handIcon: JSX.Element;
141
+ export declare const downloadIcon: JSX.Element;
142
+ export declare const copyIcon: JSX.Element;
143
+ export declare const helpIcon: JSX.Element;
144
+ export declare const playerPlayIcon: JSX.Element;
145
+ export declare const playerStopFilledIcon: JSX.Element;
146
+ export declare const tablerCheckIcon: JSX.Element;
147
+ export declare const alertTriangleIcon: JSX.Element;
148
+ export declare const eyeDropperIcon: JSX.Element;
149
+ export declare const extraToolsIcon: JSX.Element;
150
+ export declare const frameToolIcon: JSX.Element;
139
151
  export {};
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import "./LiveCollaborationTrigger.scss";
3
+ declare const LiveCollaborationTrigger: {
4
+ ({ isCollaborating, onSelect, ...rest }: {
5
+ isCollaborating: boolean;
6
+ onSelect: () => void;
7
+ } & import("react").ButtonHTMLAttributes<HTMLButtonElement>): JSX.Element;
8
+ displayName: string;
9
+ };
10
+ export default LiveCollaborationTrigger;
@@ -0,0 +1,47 @@
1
+ import "./DefaultItems.scss";
2
+ import { Theme } from "../../element/types";
3
+ export declare const LoadScene: {
4
+ (): JSX.Element | null;
5
+ displayName: string;
6
+ };
7
+ export declare const SaveToActiveFile: {
8
+ (): JSX.Element | null;
9
+ displayName: string;
10
+ };
11
+ export declare const SaveAsImage: {
12
+ (): JSX.Element;
13
+ displayName: string;
14
+ };
15
+ export declare const Help: {
16
+ (): JSX.Element;
17
+ displayName: string;
18
+ };
19
+ export declare const ClearCanvas: {
20
+ (): JSX.Element | null;
21
+ displayName: string;
22
+ };
23
+ export declare const ToggleTheme: {
24
+ (props?: {
25
+ onSelect?: ((theme: Theme) => void | boolean) | undefined;
26
+ } | undefined): JSX.Element | null;
27
+ displayName: string;
28
+ };
29
+ export declare const ChangeCanvasBackground: {
30
+ (): JSX.Element | null;
31
+ displayName: string;
32
+ };
33
+ export declare const Export: {
34
+ (): JSX.Element;
35
+ displayName: string;
36
+ };
37
+ export declare const Socials: {
38
+ (): JSX.Element;
39
+ displayName: string;
40
+ };
41
+ export declare const LiveCollaborationTrigger: {
42
+ ({ onSelect, isCollaborating, }: {
43
+ onSelect: () => void;
44
+ isCollaborating: boolean;
45
+ }): JSX.Element;
46
+ displayName: string;
47
+ };
@@ -0,0 +1,61 @@
1
+ import React from "react";
2
+ import * as DefaultItems from "./DefaultItems";
3
+ declare const MainMenu: React.FC<{
4
+ children?: React.ReactNode;
5
+ /**
6
+ * Called when any menu item is selected (clicked on).
7
+ */
8
+ onSelect?: ((event: Event) => void) | undefined;
9
+ } & {
10
+ __fallback?: boolean | undefined;
11
+ }> & {
12
+ Trigger: {
13
+ ({ className, children, onToggle, title, ...rest }: {
14
+ className?: string | undefined;
15
+ children: React.ReactNode;
16
+ onToggle: () => void;
17
+ title?: string | undefined;
18
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
19
+ displayName: string;
20
+ };
21
+ Item: {
22
+ ({ icon, onSelect, children, shortcut, className, ...rest }: {
23
+ icon?: JSX.Element | undefined;
24
+ onSelect: (event: Event) => void;
25
+ children: React.ReactNode;
26
+ shortcut?: string | undefined;
27
+ className?: string | undefined;
28
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
29
+ displayName: string;
30
+ };
31
+ ItemLink: {
32
+ ({ icon, shortcut, href, children, onSelect, className, ...rest }: {
33
+ href: string;
34
+ icon?: JSX.Element | undefined;
35
+ children: React.ReactNode;
36
+ shortcut?: string | undefined;
37
+ className?: string | undefined;
38
+ onSelect?: ((event: Event) => void) | undefined;
39
+ } & React.AnchorHTMLAttributes<HTMLAnchorElement>): JSX.Element;
40
+ displayName: string;
41
+ };
42
+ ItemCustom: ({ children, className, ...rest }: {
43
+ children: React.ReactNode;
44
+ className?: string | undefined;
45
+ } & React.HTMLAttributes<HTMLDivElement>) => JSX.Element;
46
+ Group: {
47
+ ({ children, className, style, title, }: {
48
+ children: React.ReactNode;
49
+ className?: string | undefined;
50
+ style?: React.CSSProperties | undefined;
51
+ title?: string | undefined;
52
+ }): JSX.Element;
53
+ displayName: string;
54
+ };
55
+ Separator: {
56
+ (): JSX.Element;
57
+ displayName: string;
58
+ };
59
+ DefaultItems: typeof DefaultItems;
60
+ };
61
+ export default MainMenu;
@@ -0,0 +1,58 @@
1
+ /// <reference types="react" />
2
+ declare const Center: {
3
+ ({ children }: {
4
+ children?: React.ReactNode;
5
+ }): JSX.Element;
6
+ displayName: string;
7
+ Logo: {
8
+ ({ children }: {
9
+ children?: React.ReactNode;
10
+ }): JSX.Element;
11
+ displayName: string;
12
+ };
13
+ Heading: {
14
+ ({ children }: {
15
+ children: React.ReactNode;
16
+ }): JSX.Element;
17
+ displayName: string;
18
+ };
19
+ Menu: {
20
+ ({ children }: {
21
+ children?: React.ReactNode;
22
+ }): JSX.Element;
23
+ displayName: string;
24
+ };
25
+ MenuItem: {
26
+ ({ onSelect, children, icon, shortcut, className, ...props }: {
27
+ onSelect: () => void;
28
+ children: React.ReactNode;
29
+ icon?: JSX.Element | undefined;
30
+ shortcut?: string | null | undefined;
31
+ } & import("react").ButtonHTMLAttributes<HTMLButtonElement>): JSX.Element;
32
+ displayName: string;
33
+ };
34
+ MenuItemLink: {
35
+ ({ children, href, icon, shortcut, className, ...props }: {
36
+ children: React.ReactNode;
37
+ href: string;
38
+ icon?: JSX.Element | undefined;
39
+ shortcut?: string | null | undefined;
40
+ } & import("react").AnchorHTMLAttributes<HTMLAnchorElement>): JSX.Element;
41
+ displayName: string;
42
+ };
43
+ MenuItemHelp: {
44
+ (): JSX.Element;
45
+ displayName: string;
46
+ };
47
+ MenuItemLoadScene: {
48
+ (): JSX.Element | null;
49
+ displayName: string;
50
+ };
51
+ MenuItemLiveCollaborationTrigger: {
52
+ ({ onSelect, }: {
53
+ onSelect: () => any;
54
+ }): JSX.Element;
55
+ displayName: string;
56
+ };
57
+ };
58
+ export { Center };
@@ -0,0 +1,19 @@
1
+ declare const MenuHint: {
2
+ ({ children }: {
3
+ children?: React.ReactNode;
4
+ }): JSX.Element;
5
+ displayName: string;
6
+ };
7
+ declare const ToolbarHint: {
8
+ ({ children }: {
9
+ children?: React.ReactNode;
10
+ }): JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const HelpHint: {
14
+ ({ children }: {
15
+ children?: React.ReactNode;
16
+ }): JSX.Element;
17
+ displayName: string;
18
+ };
19
+ export { HelpHint, MenuHint, ToolbarHint };
@@ -0,0 +1,85 @@
1
+ /// <reference types="react" />
2
+ import "./WelcomeScreen.scss";
3
+ declare const WelcomeScreen: {
4
+ (props: {
5
+ children?: React.ReactNode;
6
+ }): JSX.Element;
7
+ displayName: string;
8
+ Center: {
9
+ ({ children }: {
10
+ children?: import("react").ReactNode;
11
+ }): JSX.Element;
12
+ displayName: string;
13
+ Logo: {
14
+ ({ children }: {
15
+ children?: import("react").ReactNode;
16
+ }): JSX.Element;
17
+ displayName: string;
18
+ };
19
+ Heading: {
20
+ ({ children }: {
21
+ children: import("react").ReactNode;
22
+ }): JSX.Element;
23
+ displayName: string;
24
+ };
25
+ Menu: {
26
+ ({ children }: {
27
+ children?: import("react").ReactNode;
28
+ }): JSX.Element;
29
+ displayName: string;
30
+ };
31
+ MenuItem: {
32
+ ({ onSelect, children, icon, shortcut, className, ...props }: {
33
+ onSelect: () => void;
34
+ children: import("react").ReactNode;
35
+ icon?: JSX.Element | undefined;
36
+ shortcut?: string | null | undefined;
37
+ } & import("react").ButtonHTMLAttributes<HTMLButtonElement>): JSX.Element;
38
+ displayName: string;
39
+ };
40
+ MenuItemLink: {
41
+ ({ children, href, icon, shortcut, className, ...props }: {
42
+ children: import("react").ReactNode;
43
+ href: string;
44
+ icon?: JSX.Element | undefined;
45
+ shortcut?: string | null | undefined;
46
+ } & import("react").AnchorHTMLAttributes<HTMLAnchorElement>): JSX.Element;
47
+ displayName: string;
48
+ };
49
+ MenuItemHelp: {
50
+ (): JSX.Element;
51
+ displayName: string;
52
+ };
53
+ MenuItemLoadScene: {
54
+ (): JSX.Element | null;
55
+ displayName: string;
56
+ };
57
+ MenuItemLiveCollaborationTrigger: {
58
+ ({ onSelect, }: {
59
+ onSelect: () => any;
60
+ }): JSX.Element;
61
+ displayName: string;
62
+ };
63
+ };
64
+ Hints: {
65
+ MenuHint: {
66
+ ({ children }: {
67
+ children?: import("react").ReactNode;
68
+ }): JSX.Element;
69
+ displayName: string;
70
+ };
71
+ ToolbarHint: {
72
+ ({ children }: {
73
+ children?: import("react").ReactNode;
74
+ }): JSX.Element;
75
+ displayName: string;
76
+ };
77
+ HelpHint: {
78
+ ({ children }: {
79
+ children?: import("react").ReactNode;
80
+ }): JSX.Element;
81
+ displayName: string;
82
+ };
83
+ };
84
+ };
85
+ export default WelcomeScreen;
@@ -1,5 +1,12 @@
1
- import { AppProps } from "./types";
2
- import { FontFamilyValues } from "./element/types";
1
+ import { AppProps, NormalizedZoomValue } from "./types";
2
+ import { ExcalidrawElement, FontFamilyValues } from "./element/types";
3
+ export declare const isDarwin: boolean;
4
+ export declare const isWindows: boolean;
5
+ export declare const isAndroid: boolean;
6
+ export declare const isFirefox: boolean;
7
+ export declare const isChrome: boolean;
8
+ export declare const isSafari: boolean;
9
+ export declare const isBrave: () => boolean;
3
10
  export declare const APP_NAME = "Excalidraw";
4
11
  export declare const DRAGGING_THRESHOLD = 10;
5
12
  export declare const LINE_CONFIRM_THRESHOLD = 8;
@@ -40,6 +47,7 @@ export declare enum EVENT {
40
47
  GESTURE_START = "gesturestart",
41
48
  GESTURE_CHANGE = "gesturechange",
42
49
  POINTER_MOVE = "pointermove",
50
+ POINTER_DOWN = "pointerdown",
43
51
  POINTER_UP = "pointerup",
44
52
  STATE_CHANGE = "statechange",
45
53
  WHEEL = "wheel",
@@ -48,11 +56,13 @@ export declare enum EVENT {
48
56
  HASHCHANGE = "hashchange",
49
57
  VISIBILITY_CHANGE = "visibilitychange",
50
58
  SCROLL = "scroll",
51
- EXCALIDRAW_LINK = "excalidraw-link"
59
+ EXCALIDRAW_LINK = "excalidraw-link",
60
+ MENU_ITEM_SELECT = "menu.itemSelect"
52
61
  }
53
62
  export declare const ENV: {
54
63
  TEST: string;
55
64
  DEVELOPMENT: string;
65
+ PRODUCTION: string;
56
66
  };
57
67
  export declare const CLASSES: {
58
68
  SHAPE_ACTIONS_MENU: string;
@@ -66,29 +76,63 @@ export declare const THEME: {
66
76
  LIGHT: string;
67
77
  DARK: string;
68
78
  };
79
+ export declare const FRAME_STYLE: {
80
+ strokeColor: string;
81
+ strokeWidth: number;
82
+ strokeStyle: import("./element/types").StrokeStyle;
83
+ fillStyle: import("./element/types").FillStyle;
84
+ roughness: number;
85
+ roundness: {
86
+ type: import("./element/types").RoundnessType;
87
+ value?: number | undefined;
88
+ } | null;
89
+ backgroundColor: string;
90
+ radius: number;
91
+ };
69
92
  export declare const WINDOWS_EMOJI_FALLBACK_FONT = "Segoe UI Emoji";
70
93
  export declare const DEFAULT_FONT_SIZE = 20;
71
94
  export declare const DEFAULT_FONT_FAMILY: FontFamilyValues;
72
95
  export declare const DEFAULT_TEXT_ALIGN = "left";
73
96
  export declare const DEFAULT_VERTICAL_ALIGN = "top";
74
97
  export declare const DEFAULT_VERSION = "{version}";
98
+ export declare const DEFAULT_BACKGROUND_COLOR = "#ffffff";
99
+ export declare const DEFAULT_STROKE_COLOR = "#000000";
100
+ export declare const DEFAULT_ZOOM_VALUE: NormalizedZoomValue;
75
101
  export declare const CANVAS_ONLY_ACTIONS: string[];
76
102
  export declare const GRID_SIZE = 20;
103
+ export declare const IMAGE_MIME_TYPES: {
104
+ readonly svg: "image/svg+xml";
105
+ readonly png: "image/png";
106
+ readonly jpg: "image/jpeg";
107
+ readonly gif: "image/gif";
108
+ readonly webp: "image/webp";
109
+ readonly bmp: "image/bmp";
110
+ readonly ico: "image/x-icon";
111
+ readonly avif: "image/avif";
112
+ readonly jfif: "image/jfif";
113
+ };
77
114
  export declare const MIME_TYPES: {
78
- readonly excalidraw: "application/vnd.excalidraw+json";
79
- readonly excalidrawlib: "application/vnd.excalidrawlib+json";
80
- readonly json: "application/json";
81
115
  readonly svg: "image/svg+xml";
82
- readonly "excalidraw.svg": "image/svg+xml";
83
116
  readonly png: "image/png";
84
- readonly "excalidraw.png": "image/png";
85
117
  readonly jpg: "image/jpeg";
86
118
  readonly gif: "image/gif";
87
119
  readonly webp: "image/webp";
88
120
  readonly bmp: "image/bmp";
89
121
  readonly ico: "image/x-icon";
122
+ readonly avif: "image/avif";
123
+ readonly jfif: "image/jfif";
124
+ readonly json: "application/json";
125
+ readonly excalidraw: "application/vnd.excalidraw+json";
126
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
127
+ readonly "excalidraw.svg": "image/svg+xml";
128
+ readonly "excalidraw.png": "image/png";
90
129
  readonly binary: "application/octet-stream";
91
130
  };
131
+ export declare const EXPORT_IMAGE_TYPES: {
132
+ readonly png: "png";
133
+ readonly svg: "svg";
134
+ readonly clipboard: "clipboard";
135
+ };
92
136
  export declare const EXPORT_DATA_TYPES: {
93
137
  readonly excalidraw: "excalidraw";
94
138
  readonly excalidrawClipboard: "excalidraw/clipboard";
@@ -106,11 +150,6 @@ export declare const MIN_ZOOM = 0.1;
106
150
  export declare const HYPERLINK_TOOLTIP_DELAY = 300;
107
151
  export declare const IDLE_THRESHOLD = 60000;
108
152
  export declare const ACTIVE_THRESHOLD = 3000;
109
- export declare const MODES: {
110
- VIEW: string;
111
- ZEN: string;
112
- GRID: string;
113
- };
114
153
  export declare const THEME_FILTER: any;
115
154
  export declare const URL_QUERY_KEYS: {
116
155
  readonly addLibrary: "addLibrary";
@@ -129,7 +168,6 @@ export declare const MAX_DECIMALS_FOR_SVG_EXPORT = 2;
129
168
  export declare const EXPORT_SCALES: number[];
130
169
  export declare const DEFAULT_EXPORT_PADDING = 10;
131
170
  export declare const DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;
132
- export declare const ALLOWED_IMAGE_MIME_TYPES: readonly ["image/png", "image/jpeg", "image/svg+xml", "image/gif", "image/webp", "image/bmp", "image/x-icon"];
133
171
  export declare const MAX_ALLOWED_FILE_BYTES: number;
134
172
  export declare const SVG_NS = "http://www.w3.org/2000/svg";
135
173
  export declare const ENCRYPTION_KEY_BITS = 128;
@@ -149,9 +187,28 @@ export declare const TEXT_ALIGN: {
149
187
  RIGHT: string;
150
188
  };
151
189
  export declare const ELEMENT_READY_TO_ERASE_OPACITY = 20;
152
- export declare const COOKIES: {
153
- readonly AUTH_STATE_COOKIE: "excplus-auth";
190
+ export declare const DEFAULT_PROPORTIONAL_RADIUS = 0.25;
191
+ export declare const DEFAULT_ADAPTIVE_RADIUS = 32;
192
+ export declare const ROUNDNESS: {
193
+ readonly LEGACY: 1;
194
+ readonly PROPORTIONAL_RADIUS: 2;
195
+ readonly ADAPTIVE_RADIUS: 3;
154
196
  };
155
197
  /** key containt id of precedeing elemnt id we use in reconciliation during
156
198
  * collaboration */
157
199
  export declare const PRECEDING_ELEMENT_KEY = "__precedingElement__";
200
+ export declare const DEFAULT_ELEMENT_PROPS: {
201
+ strokeColor: ExcalidrawElement["strokeColor"];
202
+ backgroundColor: ExcalidrawElement["backgroundColor"];
203
+ fillStyle: ExcalidrawElement["fillStyle"];
204
+ strokeWidth: ExcalidrawElement["strokeWidth"];
205
+ strokeStyle: ExcalidrawElement["strokeStyle"];
206
+ roughness: ExcalidrawElement["roughness"];
207
+ opacity: ExcalidrawElement["opacity"];
208
+ locked: ExcalidrawElement["locked"];
209
+ };
210
+ export declare const LIBRARY_SIDEBAR_TAB = "library";
211
+ export declare const DEFAULT_SIDEBAR: {
212
+ readonly name: "default";
213
+ readonly defaultTab: "library";
214
+ };
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import tunnel from "tunnel-rat";
3
+ export type Tunnel = ReturnType<typeof tunnel>;
4
+ 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
+ OverwriteConfirmDialogTunnel: Tunnel;
14
+ jotaiScope: symbol;
15
+ };
16
+ export declare const TunnelsContext: React.Context<TunnelsContextValue>;
17
+ export declare const useTunnels: () => TunnelsContextValue;
18
+ export declare const useInitializeTunnels: () => TunnelsContextValue;
19
+ 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;
@@ -1,6 +1,7 @@
1
- import { ALLOWED_IMAGE_MIME_TYPES, MIME_TYPES } from "../constants";
1
+ import { IMAGE_MIME_TYPES, MIME_TYPES } from "../constants";
2
2
  import { ExcalidrawElement, FileId } from "../element/types";
3
3
  import { AppState, DataURL, LibraryItem } from "../types";
4
+ import { ValueOf } from "../utility-types";
4
5
  import { FileSystemHandle } from "./filesystem";
5
6
  import { ImportedLibraryData } from "./types";
6
7
  export declare const getMimeType: (blob: Blob | string) => string;
@@ -8,7 +9,7 @@ export declare const getFileHandleType: (handle: FileSystemHandle | null) => str
8
9
  export declare const isImageFileHandleType: (type: string | null) => type is "svg" | "png";
9
10
  export declare const isImageFileHandle: (handle: FileSystemHandle | null) => boolean;
10
11
  export declare const isSupportedImageFile: (blob: Blob | null | undefined) => blob is Blob & {
11
- type: (typeof ALLOWED_IMAGE_MIME_TYPES)[number];
12
+ type: ValueOf<typeof IMAGE_MIME_TYPES>;
12
13
  };
13
14
  export declare const loadSceneOrLibraryFromBlob: (blob: Blob | File, localAppState: AppState | null, localElements: readonly ExcalidrawElement[] | null, fileHandle?: FileSystemHandle | null) => Promise<{
14
15
  type: "application/vnd.excalidraw+json";
@@ -5,7 +5,7 @@ export declare const toByteString: (data: string | Uint8Array | ArrayBuffer) =>
5
5
  */
6
6
  export declare const stringToBase64: (str: string, isByteString?: boolean) => Promise<string>;
7
7
  export declare const base64ToString: (base64: string, isByteString?: boolean) => Promise<string>;
8
- declare type EncodedData = {
8
+ type EncodedData = {
9
9
  encoded: string;
10
10
  encoding: "bstring";
11
11
  /** whether text is compressed (zlib) */
@@ -1,5 +1,6 @@
1
1
  import { FileSystemHandle, supported as nativeFileSystemSupported } from "browser-fs-access";
2
- declare type FILE_EXTENSION = "gif" | "jpg" | "png" | "excalidraw.png" | "svg" | "excalidraw.svg" | "json" | "excalidraw" | "excalidrawlib";
2
+ import { MIME_TYPES } from "../constants";
3
+ type FILE_EXTENSION = Exclude<keyof typeof MIME_TYPES, "binary">;
3
4
  export declare const fileOpen: <M extends boolean | undefined = false>(opts: {
4
5
  extensions?: FILE_EXTENSION[] | undefined;
5
6
  description: string;
@@ -4,7 +4,7 @@ import { AppState, BinaryFiles } from "../types";
4
4
  import { FileSystemHandle } from "./filesystem";
5
5
  export { loadFromBlob } from "./blob";
6
6
  export { loadFromJSON, saveAsJSON } from "./json";
7
- export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, name, fileHandle, }: {
7
+ export declare const exportAsImage: (type: Omit<ExportType, "backend">, elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, name, fileHandle, }: {
8
8
  exportBackground: boolean;
9
9
  exportPadding?: number | undefined;
10
10
  viewBackgroundColor: string;
@@ -1,55 +1,11 @@
1
1
  import { LibraryItems, ExcalidrawImperativeAPI, LibraryItemsSource } from "../types";
2
2
  import type App from "../components/App";
3
3
  import { ExcalidrawElement } from "../element/types";
4
- export declare const libraryItemsAtom: import("jotai").Atom<{
4
+ export declare const libraryItemsAtom: import("jotai").PrimitiveAtom<{
5
5
  status: "loading" | "loaded";
6
6
  isInitialized: boolean;
7
7
  libraryItems: LibraryItems;
8
8
  }> & {
9
- write: (get: {
10
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
11
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
12
- <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;
13
- } & {
14
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
15
- unstable_promise: true;
16
- }): Value_3 | Promise<Value_3>;
17
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
18
- unstable_promise: true;
19
- }): Value_4 | Promise<Value_4>;
20
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
21
- unstable_promise: true;
22
- }): (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>;
23
- }, set: {
24
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
25
- <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
- status: "loading" | "loaded";
28
- isInitialized: boolean;
29
- libraryItems: LibraryItems;
30
- } | ((prev: {
31
- status: "loading" | "loaded";
32
- isInitialized: boolean;
33
- libraryItems: LibraryItems;
34
- }) => {
35
- status: "loading" | "loaded";
36
- isInitialized: boolean;
37
- libraryItems: LibraryItems;
38
- })) => void;
39
- onMount?: (<S extends (update: {
40
- status: "loading" | "loaded";
41
- isInitialized: boolean;
42
- libraryItems: LibraryItems;
43
- } | ((prev: {
44
- status: "loading" | "loaded";
45
- isInitialized: boolean;
46
- libraryItems: LibraryItems;
47
- }) => {
48
- status: "loading" | "loaded";
49
- isInitialized: boolean;
50
- libraryItems: LibraryItems;
51
- })) => void>(setAtom: S) => void | (() => void)) | undefined;
52
- } & {
53
9
  init: {
54
10
  status: "loading" | "loaded";
55
11
  isInitialized: boolean;
@@ -70,6 +26,8 @@ declare class Library {
70
26
  private updateQueue;
71
27
  private getLastUpdateTask;
72
28
  private notifyListeners;
29
+ /** call on excalidraw instance unmount */
30
+ destroy: () => void;
73
31
  resetLibrary: () => Promise<LibraryItems>;
74
32
  /**
75
33
  * @returns latest cloned libraryItems. Awaits all in-progress updates first.
@@ -1,15 +1,21 @@
1
1
  import { ExcalidrawElement } from "../element/types";
2
2
  import { AppState, BinaryFiles, LibraryItem } from "../types";
3
3
  import { ImportedDataState } from "./types";
4
- declare type RestoredAppState = Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
4
+ type RestoredAppState = Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
5
5
  export declare const AllowedExcalidrawActiveTools: Record<AppState["activeTool"]["type"], boolean>;
6
- export declare type RestoredDataState = {
6
+ export type RestoredDataState = {
7
7
  elements: ExcalidrawElement[];
8
8
  appState: RestoredAppState;
9
9
  files: BinaryFiles;
10
10
  };
11
- export declare const restoreElements: (elements: ImportedDataState["elements"], localElements: readonly ExcalidrawElement[] | null | undefined, refreshDimensions?: boolean) => ExcalidrawElement[];
11
+ export declare const restoreElements: (elements: ImportedDataState["elements"], localElements: readonly ExcalidrawElement[] | null | undefined, opts?: {
12
+ refreshDimensions?: boolean;
13
+ repairBindings?: boolean;
14
+ } | undefined) => ExcalidrawElement[];
12
15
  export declare const restoreAppState: (appState: ImportedDataState["appState"], localAppState: Partial<AppState> | null | undefined) => RestoredAppState;
13
- export declare const restore: (data: Pick<ImportedDataState, "appState" | "elements" | "files"> | null, localAppState: Partial<AppState> | null | undefined, localElements: readonly ExcalidrawElement[] | null | undefined) => RestoredDataState;
16
+ export declare const restore: (data: Pick<ImportedDataState, "appState" | "elements" | "files"> | null, localAppState: Partial<AppState> | null | undefined, localElements: readonly ExcalidrawElement[] | null | undefined, elementsConfig?: {
17
+ refreshDimensions?: boolean;
18
+ repairBindings?: boolean;
19
+ }) => RestoredDataState;
14
20
  export declare const restoreLibraryItems: (libraryItems: ImportedDataState["libraryItems"], defaultStatus: LibraryItem["status"]) => LibraryItem[];
15
21
  export {};
@@ -17,11 +17,9 @@ export interface ExportedDataState {
17
17
  * This is a helper type used in downstream abstractions.
18
18
  * Don't consume on its own.
19
19
  */
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"];
20
+ export type LegacyAppState = {
21
+ /** @deprecated #6213 TODO remove 23-06-01 */
22
+ isSidebarDocked: [boolean, "defaultSidebarDockedPreference"];
25
23
  };
26
24
  export interface ImportedDataState {
27
25
  type?: string;