@dwelle/excalidraw 0.4.0-d68dd48 → 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 (163) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +4 -0
  3. package/dist/excalidraw.development.js +1314 -248
  4. package/dist/excalidraw.production.min.js +1 -1
  5. package/package.json +2 -2
  6. package/types/actions/actionAddToLibrary.d.ts +36 -12
  7. package/types/actions/actionAlign.d.ts +6 -0
  8. package/types/actions/actionBoundText.d.ts +24 -8
  9. package/types/actions/actionCanvas.d.ts +235 -41
  10. package/types/actions/actionClipboard.d.ts +60 -20
  11. package/types/actions/actionDeleteSelected.d.ts +36 -12
  12. package/types/actions/actionElementLock.d.ts +254 -0
  13. package/types/actions/actionExport.d.ts +109 -37
  14. package/types/actions/actionFinalize.d.ts +24 -8
  15. package/types/actions/actionFlip.d.ts +2 -4
  16. package/types/actions/actionFrame.d.ts +397 -0
  17. package/types/actions/actionGroup.d.ts +2 -2
  18. package/types/actions/actionHistory.d.ts +1 -1
  19. package/types/actions/actionLinearEditor.d.ts +12 -4
  20. package/types/actions/actionMenu.d.ts +37 -14
  21. package/types/actions/actionNavigate.d.ts +1 -1
  22. package/types/actions/actionProperties.d.ts +158 -54
  23. package/types/actions/actionStyles.d.ts +12 -4
  24. package/types/actions/actionToggleGridMode.d.ts +12 -4
  25. package/types/actions/actionToggleStats.d.ts +12 -4
  26. package/types/actions/actionToggleViewMode.d.ts +12 -4
  27. package/types/actions/actionToggleZenMode.d.ts +12 -4
  28. package/types/actions/actionZindex.d.ts +4 -4
  29. package/types/actions/index.d.ts +1 -1
  30. package/types/actions/manager.d.ts +1 -1
  31. package/types/actions/shortcuts.d.ts +1 -1
  32. package/types/actions/types.d.ts +7 -7
  33. package/types/appState.d.ts +6 -3
  34. package/types/charts.d.ts +2 -2
  35. package/types/clients.d.ts +5 -6
  36. package/types/clipboard.d.ts +2 -2
  37. package/types/colors.d.ts +60 -5
  38. package/types/components/Actions.d.ts +5 -5
  39. package/types/components/ActiveConfirmDialog.d.ts +1 -21
  40. package/types/components/App.d.ts +32 -9
  41. package/types/components/Avatar.d.ts +1 -2
  42. package/types/components/Button.d.ts +3 -1
  43. package/types/components/ColorPicker/ColorInput.d.ts +7 -0
  44. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  45. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  46. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  47. package/types/components/ColorPicker/Picker.d.ts +18 -0
  48. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  49. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  50. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  51. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  52. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  53. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +21 -0
  54. package/types/components/ContextMenu.d.ts +3 -3
  55. package/types/components/DefaultSidebar.d.ts +30 -0
  56. package/types/components/Dialog.d.ts +3 -4
  57. package/types/components/EyeDropper.d.ts +18 -0
  58. package/types/components/FilledButton.d.ts +17 -0
  59. package/types/components/FixedSideContainer.d.ts +1 -1
  60. package/types/components/HandButton.d.ts +1 -1
  61. package/types/components/HelpButton.d.ts +1 -1
  62. package/types/components/HintViewer.d.ts +2 -2
  63. package/types/components/HomeButton.d.ts +1 -1
  64. package/types/components/ImageExportDialog.d.ts +8 -13
  65. package/types/components/Island.d.ts +1 -1
  66. package/types/components/JSONExportDialog.d.ts +4 -4
  67. package/types/components/LayerUI.d.ts +4 -10
  68. package/types/components/LibraryMenu.d.ts +13 -14
  69. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  70. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  71. package/types/components/LibraryMenuHeaderContent.d.ts +11 -28
  72. package/types/components/LibraryMenuItems.d.ts +6 -7
  73. package/types/components/LibraryMenuSection.d.ts +22 -0
  74. package/types/components/LibraryUnit.d.ts +7 -3
  75. package/types/components/LockButton.d.ts +1 -1
  76. package/types/components/MobileMenu.d.ts +4 -4
  77. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  78. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  79. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  80. package/types/components/PasteChartDialog.d.ts +4 -5
  81. package/types/components/PenModeButton.d.ts +1 -1
  82. package/types/components/Popover.d.ts +1 -1
  83. package/types/components/ProjectName.d.ts +2 -1
  84. package/types/components/PublishLibrary.d.ts +2 -2
  85. package/types/components/RadioGroup.d.ts +12 -0
  86. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  87. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  88. package/types/components/Sidebar/SidebarTab.d.ts +9 -0
  89. package/types/components/Sidebar/SidebarTabTrigger.d.ts +10 -0
  90. package/types/components/Sidebar/SidebarTabTriggers.d.ts +7 -0
  91. package/types/components/Sidebar/SidebarTabs.d.ts +7 -0
  92. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  93. package/types/components/Sidebar/common.d.ts +24 -7
  94. package/types/components/Spinner.d.ts +2 -1
  95. package/types/components/Stack.d.ts +4 -3
  96. package/types/components/Stats.d.ts +3 -3
  97. package/types/components/Switch.d.ts +9 -0
  98. package/types/components/ToolButton.d.ts +5 -4
  99. package/types/components/Tooltip.d.ts +1 -1
  100. package/types/components/Trans.d.ts +8 -0
  101. package/types/components/dropdownMenu/DropdownMenu.d.ts +3 -2
  102. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +4 -2
  103. package/types/components/footer/Footer.d.ts +2 -2
  104. package/types/components/icons.d.ts +11 -1
  105. package/types/components/main-menu/MainMenu.d.ts +3 -2
  106. package/types/constants.d.ts +42 -6
  107. package/types/context/tunnels.d.ts +19 -0
  108. package/types/context/ui-appState.d.ts +4 -0
  109. package/types/data/blob.d.ts +2 -2
  110. package/types/data/encode.d.ts +1 -1
  111. package/types/data/filesystem.d.ts +2 -1
  112. package/types/data/library.d.ts +3 -45
  113. package/types/data/restore.d.ts +2 -2
  114. package/types/data/types.d.ts +3 -5
  115. package/types/element/Hyperlink.d.ts +14 -6
  116. package/types/element/binding.d.ts +3 -3
  117. package/types/element/bounds.d.ts +31 -6
  118. package/types/element/collision.d.ts +7 -7
  119. package/types/element/dragElements.d.ts +2 -1
  120. package/types/element/image.d.ts +11 -1
  121. package/types/element/index.d.ts +3 -2
  122. package/types/element/linearElementEditor.d.ts +13 -5
  123. package/types/element/mutateElement.d.ts +1 -1
  124. package/types/element/newElement.d.ts +10 -3
  125. package/types/element/resizeElements.d.ts +1 -0
  126. package/types/element/showSelectedShapeActions.d.ts +2 -2
  127. package/types/element/textElement.d.ts +3 -2
  128. package/types/element/transformHandles.d.ts +12 -5
  129. package/types/element/typeChecks.d.ts +2 -1
  130. package/types/element/types.d.ts +40 -35
  131. package/types/emitter.d.ts +1 -1
  132. package/types/errors.d.ts +1 -1
  133. package/types/frame.d.ts +40 -0
  134. package/types/ga.d.ts +5 -5
  135. package/types/groups.d.ts +4 -0
  136. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  137. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  138. package/types/hooks/useOutsideClick.d.ts +19 -1
  139. package/types/hooks/useScrollPosition.d.ts +2 -0
  140. package/types/hooks/useTransition.d.ts +2 -0
  141. package/types/i18n.d.ts +2 -2
  142. package/types/jotai.d.ts +16 -104
  143. package/types/keys.d.ts +2 -1
  144. package/types/math.d.ts +1 -0
  145. package/types/packages/excalidraw/example/initialData.d.ts +6 -0
  146. package/types/packages/excalidraw/index.d.ts +2 -1
  147. package/types/packages/utils.d.ts +2 -2
  148. package/types/renderer/renderElement.d.ts +4 -3
  149. package/types/renderer/renderScene.d.ts +12 -3
  150. package/types/renderer/roundRect.d.ts +1 -1
  151. package/types/scene/Scene.d.ts +12 -5
  152. package/types/scene/export.d.ts +3 -2
  153. package/types/scene/selection.d.ts +15 -5
  154. package/types/scene/types.d.ts +4 -4
  155. package/types/types.d.ts +91 -52
  156. package/types/utility-types.d.ts +13 -13
  157. package/types/utils.d.ts +20 -25
  158. package/types/zindex.d.ts +4 -4
  159. package/types/actions/actionToggleLock.d.ts +0 -119
  160. package/types/components/ColorPicker.d.ts +0 -14
  161. package/types/components/LibraryButton.d.ts +0 -8
  162. package/types/components/context/tunnels.d.ts +0 -16
  163. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import "./OverwriteConfirm.scss";
3
+ export type OverwriteConfirmDialogProps = {
4
+ children: React.ReactNode;
5
+ };
6
+ declare const OverwriteConfirmDialog: React.FC<OverwriteConfirmDialogProps & {
7
+ __fallback?: boolean | undefined;
8
+ }> & {
9
+ Actions: (({ children }: {
10
+ children: React.ReactNode;
11
+ }) => JSX.Element) & {
12
+ ExportToImage: () => JSX.Element;
13
+ SaveToDisk: () => JSX.Element;
14
+ };
15
+ Action: ({ title, children, actionLabel, onClick, }: import("./OverwriteConfirmActions").ActionProps) => JSX.Element;
16
+ };
17
+ export { OverwriteConfirmDialog };
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ export type ActionProps = {
3
+ title: string;
4
+ children: React.ReactNode;
5
+ actionLabel: string;
6
+ onClick: () => void;
7
+ };
8
+ export declare const Action: ({ title, children, actionLabel, onClick, }: ActionProps) => JSX.Element;
9
+ export declare const ExportToImage: () => JSX.Element;
10
+ export declare const SaveToDisk: () => JSX.Element;
11
+ declare const Actions: (({ children }: {
12
+ children: React.ReactNode;
13
+ }) => JSX.Element) & {
14
+ ExportToImage: () => JSX.Element;
15
+ SaveToDisk: () => JSX.Element;
16
+ };
17
+ export { Actions };
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ export type OverwriteConfirmState = {
3
+ active: true;
4
+ title: string;
5
+ description: React.ReactNode;
6
+ actionLabel: string;
7
+ color: "danger" | "warning";
8
+ onClose: () => void;
9
+ onConfirm: () => void;
10
+ onReject: () => void;
11
+ } | {
12
+ active: false;
13
+ };
14
+ export declare const overwriteConfirmStateAtom: import("jotai").PrimitiveAtom<OverwriteConfirmState> & {
15
+ init: OverwriteConfirmState;
16
+ };
17
+ export declare function openConfirmModal({ title, description, actionLabel, color, }: {
18
+ title: string;
19
+ description: React.ReactNode;
20
+ actionLabel: string;
21
+ color: "danger" | "warning";
22
+ }): Promise<boolean>;
@@ -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,5 +1,5 @@
1
1
  import "./ToolIcon.scss";
2
- declare type PenModeIconProps = {
2
+ type PenModeIconProps = {
3
3
  title?: string;
4
4
  name?: string;
5
5
  checked: boolean;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import "./Popover.scss";
3
- declare type Props = {
3
+ type Props = {
4
4
  top?: number;
5
5
  left?: number;
6
6
  children?: React.ReactNode;
@@ -1,10 +1,11 @@
1
1
  import "./TextInput.scss";
2
2
  import "./ProjectName.scss";
3
- declare type Props = {
3
+ type Props = {
4
4
  value: string;
5
5
  onChange: (value: string) => void;
6
6
  label: string;
7
7
  isNameEditable: boolean;
8
+ ignoreFocus?: boolean;
8
9
  };
9
10
  export declare const ProjectName: (props: Props) => JSX.Element;
10
11
  export {};
@@ -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;
@@ -0,0 +1,12 @@
1
+ import "./RadioGroup.scss";
2
+ export type RadioGroupChoice<T> = {
3
+ value: T;
4
+ label: string;
5
+ };
6
+ export type RadioGroupProps<T> = {
7
+ choices: RadioGroupChoice<T>[];
8
+ value: T;
9
+ onChange: (value: T) => void;
10
+ name: string;
11
+ };
12
+ export declare const RadioGroup: <T>({ onChange, value, choices, name, }: RadioGroupProps<T>) => JSX.Element;
@@ -1,73 +1,76 @@
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
- }> & {
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
- 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;
46
- } & {
47
- init: {
48
- rendered: number;
49
- docked: number;
50
- };
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").PrimitiveAtom<boolean> & {
12
+ init: boolean;
51
13
  };
52
- export declare const Sidebar: import("react").ForwardRefExoticComponent<{
53
- children: import("react").ReactNode;
54
- onClose?: (() => boolean | void) | undefined;
14
+ export declare const SidebarInner: React.ForwardRefExoticComponent<Pick<{
15
+ name: string;
16
+ children: React.ReactNode;
17
+ onStateChange?: ((state: {
18
+ name: string;
19
+ tab?: string | undefined;
20
+ } | null) => void) | undefined;
21
+ onDock?: ((docked: boolean) => void) | undefined;
22
+ docked?: boolean | undefined;
23
+ className?: string | undefined;
24
+ __fallback?: boolean | undefined;
25
+ } & Omit<React.RefAttributes<HTMLDivElement>, "onSelect">, "className" | "name" | "children" | "key" | "onDock" | "docked" | "onStateChange" | "__fallback"> & React.RefAttributes<HTMLDivElement>>;
26
+ export declare const Sidebar: React.ForwardRefExoticComponent<{
27
+ name: string;
28
+ children: React.ReactNode;
29
+ onStateChange?: ((state: {
30
+ name: string;
31
+ tab?: string | undefined;
32
+ } | null) => void) | undefined;
55
33
  onDock?: ((docked: boolean) => void) | undefined;
56
34
  docked?: boolean | undefined;
57
- initialDockedState?: boolean | undefined;
58
- dockable?: boolean | undefined;
59
35
  className?: string | undefined;
60
- } & {
61
- /** @private internal */
62
- __isInternal?: boolean | undefined;
63
- } & import("react").RefAttributes<HTMLDivElement>> & {
36
+ __fallback?: boolean | undefined;
37
+ } & React.RefAttributes<HTMLDivElement>> & {
64
38
  Header: {
65
- (props: {
66
- children?: import("react").ReactNode;
39
+ ({ children, className, }: {
40
+ children?: React.ReactNode;
67
41
  className?: string | undefined;
68
- } & {
69
- __isFallback?: boolean | undefined;
70
- }): JSX.Element | null;
42
+ }): JSX.Element;
43
+ displayName: string;
44
+ };
45
+ TabTriggers: {
46
+ ({ children, ...rest }: {
47
+ children: React.ReactNode;
48
+ } & Omit<React.RefAttributes<HTMLDivElement>, "onSelect">): JSX.Element;
49
+ displayName: string;
50
+ };
51
+ TabTrigger: {
52
+ ({ children, tab, onSelect, ...rest }: {
53
+ children: React.ReactNode;
54
+ tab: string;
55
+ onSelect?: React.ReactEventHandler<HTMLButtonElement> | undefined;
56
+ } & Omit<React.HTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
57
+ displayName: string;
58
+ };
59
+ Tabs: {
60
+ ({ children, ...rest }: {
61
+ children: React.ReactNode;
62
+ } & Omit<React.RefAttributes<HTMLDivElement>, "onSelect">): JSX.Element | null;
63
+ displayName: string;
64
+ };
65
+ Tab: {
66
+ ({ tab, children, ...rest }: {
67
+ tab: string;
68
+ children: React.ReactNode;
69
+ } & React.HTMLAttributes<HTMLDivElement>): JSX.Element;
70
+ displayName: string;
71
+ };
72
+ Trigger: {
73
+ ({ name, tab, icon, title, children, onToggle, className, style, }: import("./common").SidebarTriggerProps): JSX.Element;
71
74
  displayName: string;
72
75
  };
73
76
  };
@@ -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
- export declare type SidebarProps<P = {}> = {
2
+ import { AppState, SidebarName, SidebarTabName } from "../../types";
3
+ export 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
+ };
13
+ export 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 type SidebarPropsContextValue = Pick<SidebarProps, "onDock" | "docked"> & {
30
+ onCloseRequest: () => void;
31
+ shouldRenderDockButton: boolean;
32
+ };
16
33
  export declare const SidebarPropsContext: React.Context<SidebarPropsContextValue>;
@@ -1,6 +1,7 @@
1
1
  import "./Spinner.scss";
2
- declare const Spinner: ({ size, circleWidth, }: {
2
+ declare const Spinner: ({ size, circleWidth, synchronized, }: {
3
3
  size?: string | number | undefined;
4
4
  circleWidth?: number | undefined;
5
+ synchronized?: boolean | undefined;
5
6
  }) => JSX.Element;
6
7
  export default Spinner;
@@ -1,15 +1,16 @@
1
1
  import "./Stack.scss";
2
2
  import React from "react";
3
- declare type StackProps = {
3
+ type StackProps = {
4
4
  children: React.ReactNode;
5
5
  gap?: number;
6
6
  align?: "start" | "center" | "end" | "baseline";
7
7
  justifyContent?: "center" | "space-around" | "space-between";
8
8
  className?: string | boolean;
9
9
  style?: React.CSSProperties;
10
+ ref: React.RefObject<HTMLDivElement>;
10
11
  };
11
12
  declare const _default: {
12
- Row: ({ children, gap, align, justifyContent, className, style, }: StackProps) => JSX.Element;
13
- Col: ({ children, gap, align, justifyContent, className, style, }: StackProps) => JSX.Element;
13
+ Row: React.ForwardRefExoticComponent<Pick<StackProps, "style" | "className" | "children" | "gap" | "justifyContent" | "align"> & React.RefAttributes<HTMLDivElement>>;
14
+ Col: React.ForwardRefExoticComponent<Pick<StackProps, "style" | "className" | "children" | "gap" | "justifyContent" | "align"> & React.RefAttributes<HTMLDivElement>>;
14
15
  };
15
16
  export default _default;
@@ -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,9 @@
1
+ import "./Switch.scss";
2
+ export type SwitchProps = {
3
+ name: string;
4
+ checked: boolean;
5
+ title?: string;
6
+ onChange: (value: boolean) => void;
7
+ disabled?: boolean;
8
+ };
9
+ export declare const Switch: ({ title, name, checked, onChange, disabled, }: SwitchProps) => JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import "./ToolIcon.scss";
2
- import React from "react";
2
+ import React, { CSSProperties } from "react";
3
3
  import { PointerType } from "../element/types";
4
- export declare type ToolButtonSize = "small" | "medium";
5
- declare type ToolButtonBaseProps = {
4
+ export type ToolButtonSize = "small" | "medium";
5
+ type ToolButtonBaseProps = {
6
6
  icon?: React.ReactNode;
7
7
  "aria-label": string;
8
8
  "aria-keyshortcuts"?: string;
@@ -18,9 +18,10 @@ declare type ToolButtonBaseProps = {
18
18
  visible?: boolean;
19
19
  selected?: boolean;
20
20
  className?: string;
21
+ style?: CSSProperties;
21
22
  isLoading?: boolean;
22
23
  };
23
- declare type ToolButtonProps = (ToolButtonBaseProps & {
24
+ type ToolButtonProps = (ToolButtonBaseProps & {
24
25
  type: "button";
25
26
  children?: React.ReactNode;
26
27
  onClick?(event: React.MouseEvent): void;
@@ -7,7 +7,7 @@ export declare const updateTooltipPosition: (tooltip: HTMLDivElement, item: {
7
7
  width: number;
8
8
  height: number;
9
9
  }, position?: "bottom" | "top") => void;
10
- declare type TooltipProps = {
10
+ type TooltipProps = {
11
11
  children: React.ReactNode;
12
12
  label: string;
13
13
  long?: boolean;
@@ -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;
@@ -6,11 +6,12 @@ declare const DropdownMenu: {
6
6
  open: boolean;
7
7
  }): JSX.Element;
8
8
  Trigger: {
9
- ({ className, children, onToggle, }: {
9
+ ({ className, children, onToggle, title, ...rest }: {
10
10
  className?: string | undefined;
11
11
  children: React.ReactNode;
12
12
  onToggle: () => void;
13
- }): JSX.Element;
13
+ title?: string | undefined;
14
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
14
15
  displayName: string;
15
16
  };
16
17
  Content: {
@@ -1,9 +1,11 @@
1
+ /// <reference types="react" />
1
2
  declare const MenuTrigger: {
2
- ({ className, children, onToggle, }: {
3
+ ({ className, children, onToggle, title, ...rest }: {
3
4
  className?: string | undefined;
4
5
  children: React.ReactNode;
5
6
  onToggle: () => void;
6
- }): JSX.Element;
7
+ title?: string | undefined;
8
+ } & Omit<import("react").ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
7
9
  displayName: string;
8
10
  };
9
11
  export default MenuTrigger;
@@ -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;
@@ -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;
@@ -138,4 +138,14 @@ export declare const TextAlignMiddleIcon: React.MemoExoticComponent<({ theme }:
138
138
  export declare const publishIcon: JSX.Element;
139
139
  export declare const eraser: JSX.Element;
140
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;
141
151
  export {};
@@ -10,11 +10,12 @@ declare const MainMenu: React.FC<{
10
10
  __fallback?: boolean | undefined;
11
11
  }> & {
12
12
  Trigger: {
13
- ({ className, children, onToggle, }: {
13
+ ({ className, children, onToggle, title, ...rest }: {
14
14
  className?: string | undefined;
15
15
  children: React.ReactNode;
16
16
  onToggle: () => void;
17
- }): JSX.Element;
17
+ title?: string | undefined;
18
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
18
19
  displayName: string;
19
20
  };
20
21
  Item: {