@dwelle/excalidraw 0.4.0-7ba56c3 → 0.4.0-83d46fe

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 (136) hide show
  1. package/CHANGELOG.md +195 -659
  2. package/README.md +485 -31
  3. package/dist/excalidraw-assets/Assistant-Bold.woff2 +0 -0
  4. package/dist/excalidraw-assets/Assistant-Medium.woff2 +0 -0
  5. package/dist/excalidraw-assets/Assistant-Regular.woff2 +0 -0
  6. package/dist/excalidraw-assets/Assistant-SemiBold.woff2 +0 -0
  7. package/dist/excalidraw-assets/vendor-2002fe1b8862917b36c1.js +2 -0
  8. package/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.js.LICENSE.txt → vendor-2002fe1b8862917b36c1.js.LICENSE.txt} +0 -0
  9. package/dist/excalidraw-assets-dev/Assistant-Bold.woff2 +0 -0
  10. package/dist/excalidraw-assets-dev/Assistant-Medium.woff2 +0 -0
  11. package/dist/excalidraw-assets-dev/Assistant-Regular.woff2 +0 -0
  12. package/dist/excalidraw-assets-dev/Assistant-SemiBold.woff2 +0 -0
  13. package/dist/excalidraw-assets-dev/{vendor-c0592035c3911af79359.js → vendor-e6df8519da951026ff69.js} +1 -1
  14. package/dist/excalidraw.development.js +871 -336
  15. package/dist/excalidraw.production.min.js +1 -1
  16. package/dist/excalidraw.production.min.js.LICENSE.txt +1 -8
  17. package/package.json +1 -1
  18. package/types/actions/actionAddToLibrary.d.ts +45 -33
  19. package/types/actions/actionBoundText.d.ts +17 -13
  20. package/types/actions/actionCanvas.d.ts +248 -100
  21. package/types/actions/actionClipboard.d.ts +104 -57
  22. package/types/actions/actionDeleteSelected.d.ts +55 -34
  23. package/types/actions/actionExport.d.ts +147 -110
  24. package/types/actions/actionFinalize.d.ts +30 -22
  25. package/types/actions/actionFlip.d.ts +2 -2
  26. package/types/actions/actionGroup.d.ts +2 -2
  27. package/types/actions/actionLinearEditor.d.ts +118 -0
  28. package/types/actions/actionMenu.d.ts +47 -34
  29. package/types/actions/actionNavigate.d.ts +1 -0
  30. package/types/actions/actionProperties.d.ts +197 -145
  31. package/types/actions/actionStyles.d.ts +15 -11
  32. package/types/actions/actionToggleGridMode.d.ts +17 -11
  33. package/types/actions/actionToggleLock.d.ts +15 -11
  34. package/types/actions/actionToggleStats.d.ts +16 -11
  35. package/types/actions/actionToggleViewMode.d.ts +17 -11
  36. package/types/actions/actionToggleZenMode.d.ts +17 -11
  37. package/types/actions/index.d.ts +1 -0
  38. package/types/actions/manager.d.ts +1 -0
  39. package/types/actions/shortcuts.d.ts +1 -1
  40. package/types/actions/types.d.ts +5 -2
  41. package/types/appState.d.ts +23 -21
  42. package/types/clients.d.ts +1 -1
  43. package/types/clipboard.d.ts +6 -1
  44. package/types/components/Actions.d.ts +3 -2
  45. package/types/components/ActiveConfirmDialog.d.ts +24 -0
  46. package/types/components/App.d.ts +24 -16
  47. package/types/components/Avatar.d.ts +1 -1
  48. package/types/components/Button.d.ts +15 -0
  49. package/types/components/ContextMenu.d.ts +8 -21
  50. package/types/components/DialogActionButton.d.ts +10 -0
  51. package/types/components/HandButton.d.ts +10 -0
  52. package/types/components/HelpButton.d.ts +8 -0
  53. package/types/components/HintViewer.d.ts +3 -2
  54. package/types/components/HomeButton.d.ts +5 -0
  55. package/types/components/ImageExportDialog.d.ts +3 -1
  56. package/types/components/InitializeApp.d.ts +2 -0
  57. package/types/components/JSONExportDialog.d.ts +5 -3
  58. package/types/components/LayerUI.d.ts +6 -6
  59. package/types/components/LibraryButton.d.ts +2 -2
  60. package/types/components/LibraryMenu.d.ts +14 -5
  61. package/types/components/LibraryMenuBrowseButton.d.ts +7 -0
  62. package/types/components/LibraryMenuHeaderContent.d.ts +35 -0
  63. package/types/components/LibraryMenuItems.d.ts +5 -14
  64. package/types/components/LibraryUnit.d.ts +2 -3
  65. package/types/components/LoadingMessage.d.ts +2 -0
  66. package/types/components/LockButton.d.ts +0 -1
  67. package/types/components/MobileMenu.d.ts +9 -11
  68. package/types/components/Sidebar/Sidebar.d.ts +12 -6
  69. package/types/components/Sidebar/common.d.ts +8 -3
  70. package/types/components/ToolButton.d.ts +1 -1
  71. package/types/components/UserList.d.ts +0 -3
  72. package/types/components/dropdownMenu/DropdownMenu.d.ts +66 -0
  73. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  74. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  75. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -0
  76. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  77. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -0
  78. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -0
  79. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  80. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +9 -0
  81. package/types/components/dropdownMenu/common.d.ts +6 -0
  82. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  83. package/types/components/footer/Footer.d.ts +13 -0
  84. package/types/components/footer/FooterCenter.d.ts +8 -0
  85. package/types/components/icons.d.ts +82 -122
  86. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -0
  87. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  88. package/types/components/main-menu/MainMenu.d.ts +60 -0
  89. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
  90. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  91. package/types/components/welcome-screen/WelcomeScreen.d.ts +85 -0
  92. package/types/constants.d.ts +31 -15
  93. package/types/data/blob.d.ts +1 -1
  94. package/types/data/index.d.ts +1 -1
  95. package/types/data/restore.d.ts +1 -1
  96. package/types/data/types.d.ts +16 -1
  97. package/types/element/Hyperlink.d.ts +16 -12
  98. package/types/element/bounds.d.ts +3 -2
  99. package/types/element/image.d.ts +1 -1
  100. package/types/element/index.d.ts +1 -1
  101. package/types/element/linearElementEditor.d.ts +64 -21
  102. package/types/element/newElement.d.ts +16 -3
  103. package/types/element/resizeElements.d.ts +0 -1
  104. package/types/element/textElement.d.ts +30 -4
  105. package/types/element/textWysiwyg.d.ts +6 -1
  106. package/types/element/transformHandles.d.ts +3 -4
  107. package/types/element/typeChecks.d.ts +10 -1
  108. package/types/element/types.d.ts +12 -5
  109. package/types/hooks/useOutsideClick.d.ts +2 -0
  110. package/types/keys.d.ts +15 -6
  111. package/types/math.d.ts +9 -1
  112. package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.d.ts → vendor-2002fe1b8862917b36c1.d.ts} +0 -0
  113. package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-c0592035c3911af79359.d.ts → vendor-e6df8519da951026ff69.d.ts} +0 -0
  114. package/types/packages/excalidraw/example/App.d.ts +2 -1
  115. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  116. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  117. package/types/packages/excalidraw/index.d.ts +13 -1
  118. package/types/packages/utils.d.ts +22 -25
  119. package/types/renderer/renderElement.d.ts +4 -3
  120. package/types/renderer/renderScene.d.ts +2 -4
  121. package/types/scene/Fonts.d.ts +21 -0
  122. package/types/scene/Scene.d.ts +15 -0
  123. package/types/scene/comparisons.d.ts +2 -3
  124. package/types/scene/export.d.ts +143 -9
  125. package/types/scene/index.d.ts +1 -1
  126. package/types/scene/types.d.ts +10 -1
  127. package/types/shapes.d.ts +27 -3
  128. package/types/types.d.ts +75 -40
  129. package/types/utils.d.ts +23 -3
  130. package/dist/excalidraw-assets/vendor-52b1f3361986b6c6a4fe.js +0 -2
  131. package/types/components/ActiveFile.d.ts +0 -7
  132. package/types/components/BackgroundPickerAndDarkModeToggle.d.ts +0 -9
  133. package/types/components/ClearCanvas.d.ts +0 -4
  134. package/types/components/CollabButton.d.ts +0 -7
  135. package/types/components/Footer.d.ts +0 -9
  136. package/types/components/HelpIcon.d.ts +0 -8
package/CHANGELOG.md CHANGED
@@ -13,106 +13,40 @@ Please add the latest change on the top under the correct section.
13
13
 
14
14
  ## Unreleased
15
15
 
16
- ### Excalidraw API
17
-
18
- #### Features
19
-
20
- - Added support for storing [`customData`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#storing-custom-data-to-excalidraw-elements) on Excalidraw elements [#5592].
21
- - Added `exportPadding?: number;` to [exportToCanvas](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exporttocanvas) and [exportToBlob](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exporttoblob). The default value of the padding is 10.
22
-
23
- #### Breaking Changes
24
-
25
- - `setToastMessage` API is now renamed to `setToast` API and the function signature is also updated [#5427](https://github.com/excalidraw/excalidraw/pull/5427). You can also pass `duration` and `closable` attributes along with `message`.
26
-
27
- ## 0.12.0 (2022-07-07)
28
-
29
- ### Excalidraw API
30
-
31
- #### Features
32
-
33
- - [`loadLibraryFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadLibraryFromBlob) now takes an additional parameter `defaultStatus` which sets the default status of library item if not present, defaults to `unpublished` [#5067](https://github.com/excalidraw/excalidraw/pull/5067).
34
-
35
- - Add [`UIOptions.dockedSidebarBreakpoint`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#dockedSidebarBreakpoint) to customize at which point to break from the docked sidebar [#5274](https://github.com/excalidraw/excalidraw/pull/5274).
36
-
37
- - Added support for supplying user `id` in the Collaborator object (see `collaborators` in [`updateScene()`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateScene)), which will be used to deduplicate users when rendering collaborator avatar list. Cursors will still be rendered for every user. [#5309](https://github.com/excalidraw/excalidraw/pull/5309)
38
-
39
- - Export API to [set](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#setCursor) and [reset](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#resetCursor) mouse cursor on the canvas [#5215](https://github.com/excalidraw/excalidraw/pull/5215).
40
-
41
- - Export [`sceneCoordsToViewportCoords`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPointerDown) and [`viewportCoordsToSceneCoords`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPointerDown) utilities [#5187](https://github.com/excalidraw/excalidraw/pull/5187).
42
-
43
- - Added [`useHandleLibrary`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#useHandleLibrary) hook to automatically handle importing of libraries when `#addLibrary` URL hash key is present, and potentially for initializing library as well [#5115](https://github.com/excalidraw/excalidraw/pull/5115).
44
-
45
- Also added [`parseLibraryTokensFromUrl`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#parseLibraryTokensFromUrl) to help in manually importing library from URL if desired.
46
-
47
- ##### BREAKING CHANGE
48
-
49
- - Libraries are no longer automatically initialized from URL when `#addLibrary` hash key is present. Host apps now need to handle this themselves with the help of either of the above APIs (`useHandleLibrary` is recommended).
50
-
51
- - Added [`updateLibrary`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateLibrary) API to update (replace/merge) the library [#5115](https://github.com/excalidraw/excalidraw/pull/5115).
52
-
53
- ##### BREAKING CHANGE
54
-
55
- - `updateScene` API no longer supports passing `libraryItems`. Instead, use the `updateLibrary` API.
56
-
57
- - Add support for integrating custom elements [#5164](https://github.com/excalidraw/excalidraw/pull/5164).
58
-
59
- - Add [`onPointerDown`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPointerDown) callback which gets triggered on pointer down events.
60
- - Add [`onScrollChange`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onScrollChange) callback which gets triggered when scrolling the canvas.
61
- - Add API [`setActiveTool`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#setActiveTool) which host can call to set the active tool.
62
-
63
- - Exported [`loadSceneOrLibraryFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadSceneOrLibraryFromBlob) function [#5057](https://github.com/excalidraw/excalidraw/pull/5057).
64
- - Export [`MIME_TYPES`](https://github.com/excalidraw/excalidraw/blob/master/src/constants.ts#L92) supported by Excalidraw [#5135](https://github.com/excalidraw/excalidraw/pull/5135).
65
- - Support [`avatarUrl`](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L50) for collaborators. Now onwards host can pass `avatarUrl` to render the customized avatar for collaborators [#5114](https://github.com/excalidraw/excalidraw/pull/5114), renamed in [#5177](https://github.com/excalidraw/excalidraw/pull/5177).
66
- - Support `libraryItems` argument in `initialData.libraryItems` and `updateScene({ libraryItems })` to be a Promise resolving to `LibraryItems`, and support functional update of `libraryItems` in [`updateScene({ libraryItems })`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateScene). [#5101](https://github.com/excalidraw/excalidraw/pull/5101).
67
- - Expose util [`mergeLibraryItems`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#mergeLibraryItems) [#5101](https://github.com/excalidraw/excalidraw/pull/5101).
68
- - Expose util [`exportToClipboard`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToClipboard) which allows to copy the scene contents to clipboard as `svg`, `png` or `json` [#5103](https://github.com/excalidraw/excalidraw/pull/5103).
69
- - Expose `window.EXCALIDRAW_EXPORT_SOURCE` which you can use to overwrite the `source` field in exported data [#5095](https://github.com/excalidraw/excalidraw/pull/5095).
70
- - The `exportToBlob` utility now supports the `exportEmbedScene` option when generating a png image [#5047](https://github.com/excalidraw/excalidraw/pull/5047).
71
- - Exported [`restoreLibraryItems`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restoreLibraryItems) API [#4995](https://github.com/excalidraw/excalidraw/pull/4995).
72
-
73
- #### Fixes
16
+ ### Features
74
17
 
75
- - Allow returning `null ` in [`renderFooter`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderFooter) prop [#5282](https://github.com/excalidraw/excalidraw/pull/5282).
18
+ - `MainMenu`, `MainMenu.Item`, and `MainMenu.ItemLink` components now all support `onSelect(event: Event): void` callback. If you call `event.preventDefault()`, it will prevent the menu from closing when an item is selected (clicked on). [#6152](https://github.com/excalidraw/excalidraw/pull/6152)
76
19
 
77
- - Transpile `browser-fs-access` dependency so that its `for await` syntax doesn't force `es2018` requirement onto dependent projects [#5041](https://github.com/excalidraw/excalidraw/pull/5041).
20
+ ## 0.14.1 (2023-01-16)
78
21
 
79
- - Use `window.EXCALIDRAW_ASSET_PATH` for fonts when exporting to svg [#5065](https://github.com/excalidraw/excalidraw/pull/5065).
80
- - Library menu now properly rerenders if open when library is updated using `updateScene({ libraryItems })` [#4995](https://github.com/excalidraw/excalidraw/pull/4995).
22
+ ### Fixes
81
23
 
82
- #### Refactor
24
+ - remove overflow hidden from button [#6110](https://github.com/excalidraw/excalidraw/pull/6110). This fixes the collaborator count css in the [LiveCollaborationTrigger](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#LiveCollaborationTrigger) component.
83
25
 
84
- - Rename `appState.elementLocked` to `appState.activeTool.locked` [#4983](https://github.com/excalidraw/excalidraw/pull/4983).
85
- - Expose [`serializeLibraryAsJSON`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#serializeLibraryAsJSON) helper that we use when saving Excalidraw Library to a file.
26
+ ## 0.14.0 (2023-01-13)
86
27
 
87
- ##### BREAKING CHANGE
28
+ ### Features
88
29
 
89
- You will need to pass `activeTool.locked` instead of `elementType` from now onwards in `appState`.
30
+ - Support customization for the editor [welcome screen](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#WelcomeScreen) [#6048](https://github.com/excalidraw/excalidraw/pull/6048).
90
31
 
91
- - Rename `appState.elementType` to [`appState.activeTool`](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L80) which is now an object [#4698](https://github.com/excalidraw/excalidraw/pull/4968).
32
+ - Expose component API for the Excalidraw main menu [#6034](https://github.com/excalidraw/excalidraw/pull/6034), You can read more about its usage [here](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#MainMenu)
92
33
 
93
- ##### BREAKING CHANGE
34
+ - Support customization for the Excalidraw [main menu](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#MainMenu) [#6034](https://github.com/excalidraw/excalidraw/pull/6034).
94
35
 
95
- You will need to pass `activeTool` instead of `elementType` from now onwards in `appState`
36
+ - [Footer](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#Footer) is now rendered as child component instead of passed as a render prop [#5970](https://github.com/excalidraw/excalidraw/pull/5970).
96
37
 
97
- ### Build
38
+ - Any top-level children passed to the `<Excalidraw/>` component that do not belong to one of the officially supported Excalidraw children components are now rendered directly inside the Excalidraw container (previously, they weren't rendered at all) [#6096](https://github.com/excalidraw/excalidraw/pull/6096).
98
39
 
99
- - Use only named exports [#5045](https://github.com/excalidraw/excalidraw/pull/5045).
40
+ - Expose [LiveCollaborationTrigger](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#LiveCollaborationTrigger) component. Replaces `props.onCollabButtonClick` [#6104](https://github.com/excalidraw/excalidraw/pull/6104).
100
41
 
101
- #### BREAKING CHANGE
42
+ #### BREAKING CHANGES
102
43
 
103
- You will need to import the named export from now onwards to use the component
44
+ - `props.onCollabButtonClick` is now removed. You need to render the main menu item yourself, and optionally also render the `<LiveCollaborationTrigger>` component using [renderTopRightUI](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderTopRightUI) prop if you want to retain the canvas button at top-right.
45
+ - The prop `renderFooter` is now removed in favor of rendering as a child component.
104
46
 
105
- Using bundler :point_down:
47
+ ### Excalidraw schema
106
48
 
107
- ```js
108
- import { Excalidraw } from "@excalidraw/excalidraw";
109
- ```
110
-
111
- In Browser :point_down:
112
-
113
- ```js
114
- React.createElement(ExcalidrawLib.Excalidraw, opts);
115
- ```
49
+ - Merged `appState.currentItemStrokeSharpness` and `appState.currentItemLinearStrokeSharpness` into `appState.currentItemRoundness`. Renamed `changeSharpness` action to `changeRoundness`. Excalidraw element's `strokeSharpness` was changed to `roundness`. Check the PR for types and more details [#5553](https://github.com/excalidraw/excalidraw/pull/5553).
116
50
 
117
51
  ## Excalidraw Library
118
52
 
@@ -120,315 +54,175 @@ React.createElement(ExcalidrawLib.Excalidraw, opts);
120
54
 
121
55
  ### Features
122
56
 
123
- - Throttle scene rendering to animation framerate [#5422](https://github.com/excalidraw/excalidraw/pull/5422)
124
-
125
- - Make toast closable and allow custom duration [#5308](https://github.com/excalidraw/excalidraw/pull/5308)
126
-
127
- - Collab component state handling rewrite & fixes [#5046](https://github.com/excalidraw/excalidraw/pull/5046)
128
-
129
- - Support debugging PWA in dev [#4853](https://github.com/excalidraw/excalidraw/pull/4853)
130
-
131
- - Redirect vscode.excalidraw.com to vscode marketplace [#5285](https://github.com/excalidraw/excalidraw/pull/5285)
132
-
133
- - Go-to-excalidrawplus button [#5202](https://github.com/excalidraw/excalidraw/pull/5202)
134
-
135
- - Autoredirect to Excalidraw+ if special cookie is present [#5183](https://github.com/excalidraw/excalidraw/pull/5183)
136
-
137
- - Support resubmitting published library items [#5174](https://github.com/excalidraw/excalidraw/pull/5174)
138
-
139
- - Support adding multiple library items on canvas [#5116](https://github.com/excalidraw/excalidraw/pull/5116)
140
-
141
- - Support customType in activeTool [#5144](https://github.com/excalidraw/excalidraw/pull/5144)
142
-
143
- - Stop event propagation when key handled [#5091](https://github.com/excalidraw/excalidraw/pull/5091)
144
-
145
- - Rewrite library state management & related refactor [#5067](https://github.com/excalidraw/excalidraw/pull/5067)
146
-
147
- - Delay initial loading message & tweak design [#5049](https://github.com/excalidraw/excalidraw/pull/5049)
148
-
149
- - Reconcile when saving to firebase [#4991](https://github.com/excalidraw/excalidraw/pull/4991)
150
-
151
- - Hide trash button during collaboration [#5037](https://github.com/excalidraw/excalidraw/pull/5037)
152
-
153
- - Refactor local persistence & fix race condition on SW reload [#5032](https://github.com/excalidraw/excalidraw/pull/5032)
57
+ - Generic button export [#6092](https://github.com/excalidraw/excalidraw/pull/6092)
154
58
 
155
- - Element locking [#4964](https://github.com/excalidraw/excalidraw/pull/4964)
59
+ - Scroll using PageUp and PageDown [#6038](https://github.com/excalidraw/excalidraw/pull/6038)
156
60
 
157
- - Copy to clipboard all text nodes as text [#5013](https://github.com/excalidraw/excalidraw/pull/5013)
61
+ - Support shrinking text containers to original height when text removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)
158
62
 
159
- - Create and expose serializeLibraryAsJSON [#5009](https://github.com/excalidraw/excalidraw/pull/5009)
63
+ - Move contextMenu into the component tree and control via appState [#6021](https://github.com/excalidraw/excalidraw/pull/6021)
160
64
 
161
- - Hide penMode button on reload if not enabled [#4992](https://github.com/excalidraw/excalidraw/pull/4992)
65
+ - Allow readonly actions to be used in viewMode [#5982](https://github.com/excalidraw/excalidraw/pull/5982)
162
66
 
163
- - Eraser toggle to switch back to the previous tool [#4981](https://github.com/excalidraw/excalidraw/pull/4981)
67
+ - Support labels for arrow 🔥 [#5723](https://github.com/excalidraw/excalidraw/pull/5723)
164
68
 
165
- - Save penDetected and penMode, and detect pen already on ToolButton click [#4955](https://github.com/excalidraw/excalidraw/pull/4955)
69
+ - Don't add midpoint until dragged beyond a threshold [#5927](https://github.com/excalidraw/excalidraw/pull/5927)
166
70
 
167
- - Support binding text to container via context menu [#4935](https://github.com/excalidraw/excalidraw/pull/4935)
71
+ - Changed text copy/paste behaviour [#5786](https://github.com/excalidraw/excalidraw/pull/5786)
168
72
 
169
- - Map shortcut O to ellipse and Add eraser shortcut E [#4930](https://github.com/excalidraw/excalidraw/pull/4930)
73
+ - Reintroduce `x` shortcut for `freedraw` [#5840](https://github.com/excalidraw/excalidraw/pull/5840)
170
74
 
171
- - Update eraser cursor [#4922](https://github.com/excalidraw/excalidraw/pull/4922)
75
+ - Tweak toolbar shortcuts & remove library shortcut [#5832](https://github.com/excalidraw/excalidraw/pull/5832)
172
76
 
173
- - Add Eraser 🎉 [#4887](https://github.com/excalidraw/excalidraw/pull/4887)
77
+ - Clean unused images only after 24hrs (local-only) [#5839](https://github.com/excalidraw/excalidraw/pull/5839)
174
78
 
175
- - Added optional REACT_APP_WS_SERVER_URL for forks usecases [#4889](https://github.com/excalidraw/excalidraw/pull/4889)
79
+ - Refetch errored/pending images on collab room init load [#5833](https://github.com/excalidraw/excalidraw/pull/5833)
176
80
 
177
- - Rewrite collab server connecting [#4881](https://github.com/excalidraw/excalidraw/pull/4881)
81
+ - Stop deleting whole line when no point select in line editor [#5676](https://github.com/excalidraw/excalidraw/pull/5676)
178
82
 
179
- - Support vertical text align for bound containers [#4852](https://github.com/excalidraw/excalidraw/pull/4852)
180
-
181
- - Support custom colors 🎉 [#4843](https://github.com/excalidraw/excalidraw/pull/4843)
182
-
183
- - Support Links in Exported SVG [#4791](https://github.com/excalidraw/excalidraw/pull/4791)
184
-
185
- - Scale font size when bound text containers resized with shift pressed [#4828](https://github.com/excalidraw/excalidraw/pull/4828)
83
+ - Editor redesign 🔥 [#5780](https://github.com/excalidraw/excalidraw/pull/5780)
186
84
 
187
85
  ### Fixes
188
86
 
189
- - Autorelease job name [#5412](https://github.com/excalidraw/excalidraw/pull/5412)
190
-
191
- - Action name for autorelease [#5411](https://github.com/excalidraw/excalidraw/pull/5411)
192
-
193
- - Typecast file to fix the build [#5410](https://github.com/excalidraw/excalidraw/pull/5410)
194
-
195
- - File handle not persisted when importing excalidraw files [#5372](https://github.com/excalidraw/excalidraw/pull/5372)
196
-
197
- - Library not scrollable when no published items installed [#5352](https://github.com/excalidraw/excalidraw/pull/5352)
198
-
199
- - Focus traps inside popovers [#5317](https://github.com/excalidraw/excalidraw/pull/5317)
200
-
201
- - Unable to use cmd/ctrl-delete/backspace in inputs [#5348](https://github.com/excalidraw/excalidraw/pull/5348)
202
-
203
- - Delay loading until language imported [#5344](https://github.com/excalidraw/excalidraw/pull/5344)
204
-
205
- - Command to trigger release [#5347](https://github.com/excalidraw/excalidraw/pull/5347)
206
-
207
- - Remove unnecessary options passed to language detector [#5336](https://github.com/excalidraw/excalidraw/pull/5336)
208
-
209
- - Stale `appState.pendingImageElement` [#5322](https://github.com/excalidraw/excalidraw/pull/5322)
210
-
211
- - Non-letter shortcuts being swallowed by color picker [#5316](https://github.com/excalidraw/excalidraw/pull/5316)
212
-
213
- - Bind text to correct container when nested [#5307](https://github.com/excalidraw/excalidraw/pull/5307)
214
-
215
- - Copy bound text style when copying element having bound text [#5305](https://github.com/excalidraw/excalidraw/pull/5305)
216
-
217
- - Copy arrow head when using copy styles [#5303](https://github.com/excalidraw/excalidraw/pull/5303)
87
+ - Mobile tools positioning [#6107](https://github.com/excalidraw/excalidraw/pull/6107)
218
88
 
219
- - Unsafely accessing draggingElement [#5216](https://github.com/excalidraw/excalidraw/pull/5216)
89
+ - Renamed folder MainMenu->main-menu and support rest props [#6103](https://github.com/excalidraw/excalidraw/pull/6103)
220
90
 
221
- - Library load button does not work [#5205](https://github.com/excalidraw/excalidraw/pull/5205)
91
+ - Use position absolute for mobile misc tools [#6099](https://github.com/excalidraw/excalidraw/pull/6099)
222
92
 
223
- - Do not deselect when not zooming using touchscreen pinch [#5181](https://github.com/excalidraw/excalidraw/pull/5181)
93
+ - React.memo resolvers not accounting for all props [#6042](https://github.com/excalidraw/excalidraw/pull/6042)
224
94
 
225
- - Wheel zoom normalization [#5165](https://github.com/excalidraw/excalidraw/pull/5165)
95
+ - Image horizontal flip fix + improved tests [#5799](https://github.com/excalidraw/excalidraw/pull/5799)
226
96
 
227
- - Hide sidebar when `custom` tool active [#5179](https://github.com/excalidraw/excalidraw/pull/5179)
97
+ - Png-exporting does not preserve angles correctly for flipped images [#6085](https://github.com/excalidraw/excalidraw/pull/6085)
228
98
 
229
- - Don't save deleted ExcalidrawElements to Firebase [#5108](https://github.com/excalidraw/excalidraw/pull/5108)
99
+ - Stale appState of MainMenu defaultItems rendered from Actions [#6074](https://github.com/excalidraw/excalidraw/pull/6074)
230
100
 
231
- - Eraser removed deleted elements [#5155](https://github.com/excalidraw/excalidraw/pull/5155)
101
+ - HelpDialog [#6072](https://github.com/excalidraw/excalidraw/pull/6072)
232
102
 
233
- - Handle `ColorPicker` parentSelector being undefined [#5152](https://github.com/excalidraw/excalidraw/pull/5152)
103
+ - Show error message on collab save failure [#6063](https://github.com/excalidraw/excalidraw/pull/6063)
234
104
 
235
- - Library multiselect not accounting for published state [#5132](https://github.com/excalidraw/excalidraw/pull/5132)
105
+ - Remove ga from docker build [#6059](https://github.com/excalidraw/excalidraw/pull/6059)
236
106
 
237
- - Chart display fix [#5154](https://github.com/excalidraw/excalidraw/pull/5154)
107
+ - Use displayName since name gets stripped off when uglifying/minifiyng in production [#6036](https://github.com/excalidraw/excalidraw/pull/6036)
238
108
 
239
- - Update opacity of bound text when opacity of container updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)
109
+ - Remove background from wysiwyg when editing arrow label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)
240
110
 
241
- - Jumping of text when typing single line in bound text [#5139](https://github.com/excalidraw/excalidraw/pull/5139)
111
+ - Use canvas measureText to calculate width in measureText [#6030](https://github.com/excalidraw/excalidraw/pull/6030)
242
112
 
243
- - Remove opacity scroll wheel interaction [#5111](https://github.com/excalidraw/excalidraw/pull/5111)
113
+ - Restoring deleted bindings [#6029](https://github.com/excalidraw/excalidraw/pull/6029)
244
114
 
245
- - Propagate keydown events from excalidraw-wysiwyg inputs [#5099](https://github.com/excalidraw/excalidraw/pull/5099)
115
+ - ColorPicker getColor [#5949](https://github.com/excalidraw/excalidraw/pull/5949)
246
116
 
247
- - Don't bind text to container if double clicked else instead of center [#5105](https://github.com/excalidraw/excalidraw/pull/5105)
117
+ - Don't push whitespace to next line when exceeding max width during wrapping and make sure to use same width of text editor on DOM when measuring dimensions [#5996](https://github.com/excalidraw/excalidraw/pull/5996)
248
118
 
249
- - ToolIcon height not using rem [#5092](https://github.com/excalidraw/excalidraw/pull/5092)
119
+ - Showing `grabbing` cursor when holding `spacebar` [#6015](https://github.com/excalidraw/excalidraw/pull/6015)
250
120
 
251
- - Excalidraw named export type [#5078](https://github.com/excalidraw/excalidraw/pull/5078)
121
+ - Resize sometimes throwing on missing null-checks [#6013](https://github.com/excalidraw/excalidraw/pull/6013)
252
122
 
253
- - BoundElementIds when arrows bound to elements are deleted [#5077](https://github.com/excalidraw/excalidraw/pull/5077)
123
+ - PWA not working after CRA@5 update [#6012](https://github.com/excalidraw/excalidraw/pull/6012)
254
124
 
255
- - Don't merge libraryItems on updateScene [#5076](https://github.com/excalidraw/excalidraw/pull/5076)
125
+ - Not properly restoring element stroke and bg colors [#6002](https://github.com/excalidraw/excalidraw/pull/6002)
256
126
 
257
- - SVG metadata extraction regex on multiline elements [#5074](https://github.com/excalidraw/excalidraw/pull/5074)
127
+ - Avatar outline on safari & center [#5997](https://github.com/excalidraw/excalidraw/pull/5997)
258
128
 
259
- - Eraser cursor showing on theme change when not using eraser [#4990](https://github.com/excalidraw/excalidraw/pull/4990)
129
+ - Chart pasting not working due to removing tab characters [#5987](https://github.com/excalidraw/excalidraw/pull/5987)
260
130
 
261
- - Update `storage.rules` [#5020](https://github.com/excalidraw/excalidraw/pull/5020)
131
+ - Apply the right type of roundness when pasting styles [#5979](https://github.com/excalidraw/excalidraw/pull/5979)
262
132
 
263
- - Add image button not working on iPad [#5038](https://github.com/excalidraw/excalidraw/pull/5038)
133
+ - Remove editor onpaste handler [#5971](https://github.com/excalidraw/excalidraw/pull/5971)
264
134
 
265
- - Ensure svg image dimensions are always set [#5044](https://github.com/excalidraw/excalidraw/pull/5044)
135
+ - Remove blank space [#5950](https://github.com/excalidraw/excalidraw/pull/5950)
266
136
 
267
- - Pinch zoom in view mode [#5001](https://github.com/excalidraw/excalidraw/pull/5001)
137
+ - Galego and Kurdî missing in languages plus two locale typos [#5954](https://github.com/excalidraw/excalidraw/pull/5954)
268
138
 
269
- - Select whole group on righclick & few lock-related fixes [#5022](https://github.com/excalidraw/excalidraw/pull/5022)
139
+ - `ExcalidrawArrowElement` rather than `ExcalidrawArrowEleement` [#5955](https://github.com/excalidraw/excalidraw/pull/5955)
270
140
 
271
- - Export serializeLibraryAsJSON from the package [#5017](https://github.com/excalidraw/excalidraw/pull/5017)
141
+ - RenderFooter styling [#5962](https://github.com/excalidraw/excalidraw/pull/5962)
272
142
 
273
- - Support copying PNG to clipboard on Safari [#3746](https://github.com/excalidraw/excalidraw/pull/3746)
143
+ - Repair element bindings on restore [#5956](https://github.com/excalidraw/excalidraw/pull/5956)
274
144
 
275
- - More copyText fixes [#5016](https://github.com/excalidraw/excalidraw/pull/5016)
145
+ - Don't allow whitespaces for bound text [#5939](https://github.com/excalidraw/excalidraw/pull/5939)
276
146
 
277
- - Copy to clipboard all text nodes as text [#5014](https://github.com/excalidraw/excalidraw/pull/5014)
147
+ - Bindings do not survive history serialization [#5942](https://github.com/excalidraw/excalidraw/pull/5942)
278
148
 
279
- - Update cursorButton once freedraw is released [#4996](https://github.com/excalidraw/excalidraw/pull/4996)
149
+ - Dedupe boundElement ids when container duplicated with alt+drag [#5938](https://github.com/excalidraw/excalidraw/pull/5938)
280
150
 
281
- - Decouple actionFinalize and actionErase [#4984](https://github.com/excalidraw/excalidraw/pull/4984)
151
+ - Scale font correctly when using shift [#5935](https://github.com/excalidraw/excalidraw/pull/5935)
282
152
 
283
- - Using stale state when switching tools [#4989](https://github.com/excalidraw/excalidraw/pull/4989)
153
+ - Always bind to container selected by user [#5880](https://github.com/excalidraw/excalidraw/pull/5880)
284
154
 
285
- - UpdateWysiwygStyle updatedElement is undefined TypeError [#4980](https://github.com/excalidraw/excalidraw/pull/4980)
155
+ - Fonts not rendered on init if `loadingdone` not fired [#5923](https://github.com/excalidraw/excalidraw/pull/5923)
286
156
 
287
- - Adding check for link length to prevent early return [#4982](https://github.com/excalidraw/excalidraw/pull/4982)
157
+ - Stop replacing `del` word with `Delete` [#5897](https://github.com/excalidraw/excalidraw/pull/5897)
288
158
 
289
- - Show link icon for bound text containers [#4960](https://github.com/excalidraw/excalidraw/pull/4960)
159
+ - Remove legacy React.render() from the editor [#5893](https://github.com/excalidraw/excalidraw/pull/5893)
290
160
 
291
- - Cancel erase elements on pointer up if eraser is not active on pointer up [#4956](https://github.com/excalidraw/excalidraw/pull/4956)
161
+ - Allow adding text via enter only for text containers [#5891](https://github.com/excalidraw/excalidraw/pull/5891)
292
162
 
293
- - Restore original opacities when alt pressed while erasing [#4954](https://github.com/excalidraw/excalidraw/pull/4954)
163
+ - Stop font `loadingdone` loop when rendering element SVGs [#5883](https://github.com/excalidraw/excalidraw/pull/5883)
294
164
 
295
- - Don't bind text to container if already present [#4946](https://github.com/excalidraw/excalidraw/pull/4946)
165
+ - Refresh text dimensions only after font load done [#5878](https://github.com/excalidraw/excalidraw/pull/5878)
296
166
 
297
- - Erase all elements which are hit with single point click [#4934](https://github.com/excalidraw/excalidraw/pull/4934)
167
+ - Correctly paste contents parsed by `JSON.parse()` as text. [#5868](https://github.com/excalidraw/excalidraw/pull/5868)
298
168
 
299
- - Add multiElement-edit finalize action to Desktop (currently only visible in Mobile view) [#4764](https://github.com/excalidraw/excalidraw/pull/4764)
169
+ - SVG element attributes in icons.tsx [#5871](https://github.com/excalidraw/excalidraw/pull/5871)
300
170
 
301
- - Hide eraser in view mode in desktop [#4929](https://github.com/excalidraw/excalidraw/pull/4929)
171
+ - Merge existing text with new when pasted [#5856](https://github.com/excalidraw/excalidraw/pull/5856)
302
172
 
303
- - Undo when erasing elements by clicking [#4921](https://github.com/excalidraw/excalidraw/pull/4921)
173
+ - Disable FAST_REFRESH to fix live reload [#5852](https://github.com/excalidraw/excalidraw/pull/5852)
304
174
 
305
- - Undo when erasing [#4900](https://github.com/excalidraw/excalidraw/pull/4900)
175
+ - Paste clipboard contents into unbound text elements [#5849](https://github.com/excalidraw/excalidraw/pull/5849)
306
176
 
307
- - Incorrectly erasing on mobile [#4899](https://github.com/excalidraw/excalidraw/pull/4899)
177
+ - Compute dimensions of container correctly when text pasted on container [#5845](https://github.com/excalidraw/excalidraw/pull/5845)
308
178
 
309
- - Don't crash on drop highlighted text onto canvas [#4890](https://github.com/excalidraw/excalidraw/pull/4890)
179
+ - Line editor points rendering below elements [#5781](https://github.com/excalidraw/excalidraw/pull/5781)
310
180
 
311
- - Paste styles shortcut [#4886](https://github.com/excalidraw/excalidraw/pull/4886)
181
+ - Syncing 1-point lines to remote clients [#5677](https://github.com/excalidraw/excalidraw/pull/5677)
312
182
 
313
- - Freedraw element's background fill color missing from SVG when exporting with package API exportToSvg() [#4871](https://github.com/excalidraw/excalidraw/pull/4871)
183
+ - Incorrectly selecting linear elements on creation while tool-locked [#5785](https://github.com/excalidraw/excalidraw/pull/5785)
314
184
 
315
- - Improve pointer syncing performance [#4883](https://github.com/excalidraw/excalidraw/pull/4883)
185
+ - Corrected typo in toggle theme shortcut [#5813](https://github.com/excalidraw/excalidraw/pull/5813)
316
186
 
317
- - Collab room initialization [#4882](https://github.com/excalidraw/excalidraw/pull/4882)
187
+ - Hide canvas-modifying UI in view mode [#5815](https://github.com/excalidraw/excalidraw/pull/5815)
318
188
 
319
- - Ensure verticalAlign properties not shown when no element selected [#4860](https://github.com/excalidraw/excalidraw/pull/4860)
189
+ - Fix vertical/horizntal centering icons [#5812](https://github.com/excalidraw/excalidraw/pull/5812)
320
190
 
321
- - Binding text to non-bindable containers and not always preferring selection [#4655](https://github.com/excalidraw/excalidraw/pull/4655)
191
+ - Consistent use of ZOOM_STEP [#5801](https://github.com/excalidraw/excalidraw/pull/5801)
322
192
 
323
- - Don't show align icons for single bound container element [#4846](https://github.com/excalidraw/excalidraw/pull/4846)
193
+ - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)
324
194
 
325
- - Redraw text bounding box when pasting styles [#4845](https://github.com/excalidraw/excalidraw/pull/4845)
326
-
327
- - Restore cursor position after bound text container value updated [#4836](https://github.com/excalidraw/excalidraw/pull/4836)
328
-
329
- - Support resizing multiple bound text containers [#4824](https://github.com/excalidraw/excalidraw/pull/4824)
330
-
331
- - Also check overflowY: overlay in detectScroll [#4806](https://github.com/excalidraw/excalidraw/pull/4806)
332
-
333
- - Stuck resizing when resizing bound text container very fast beyond threshold [#4804](https://github.com/excalidraw/excalidraw/pull/4804)
195
+ - Changelog typo [#5795](https://github.com/excalidraw/excalidraw/pull/5795)
334
196
 
335
197
  ### Refactor
336
198
 
337
- - Don't pass array to handleBindTextResize [#4826](https://github.com/excalidraw/excalidraw/pull/4826)
199
+ - Remove unnecessary code [#5933](https://github.com/excalidraw/excalidraw/pull/5933)
338
200
 
339
201
  ### Build
340
202
 
341
- - Extract all i18n files into locales folder [#5419](https://github.com/excalidraw/excalidraw/pull/5419)
342
-
343
- - Automate release step fully [#5414](https://github.com/excalidraw/excalidraw/pull/5414)
203
+ - Move release scripts to use release branch [#5958](https://github.com/excalidraw/excalidraw/pull/5958)
344
204
 
345
- - Use next and preview tags instead of separate packages for next and preview release [#5346](https://github.com/excalidraw/excalidraw/pull/5346)
346
-
347
- - Support runtime React Jsx in @excalidraw/utils [#4866](https://github.com/excalidraw/excalidraw/pull/4866)
348
-
349
- - Release @excalidraw/utils 0.1.1 [#4862](https://github.com/excalidraw/excalidraw/pull/4862)
350
-
351
- - Remove build packages workflow [#4835](https://github.com/excalidraw/excalidraw/pull/4835)
205
+ - Stops ignoring .env files from docker context so env variables get set during react app build. [#5809](https://github.com/excalidraw/excalidraw/pull/5809)
352
206
 
353
207
  ---
354
208
 
355
- ## 0.11.0 (2022-02-17)
356
-
357
- ## Excalidraw API
358
-
359
- ### Features
360
-
361
- - Add `onLinkOpen` prop which will be triggered when clicked on element hyperlink if present [#4694](https://github.com/excalidraw/excalidraw/pull/4694).
362
- - Support updating library using [`updateScene`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateScene) API [#4546](https://github.com/excalidraw/excalidraw/pull/4546).
363
-
364
- - Introduced primary colors to the app. The colors can be overridden. Check [readme](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#customizing-styles) on how to do so [#4387](https://github.com/excalidraw/excalidraw/pull/4387).
365
-
366
- - [`exportToBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToBlob) now automatically sets `appState.exportBackground` to `true` if exporting to `image/jpeg` MIME type (to ensure that alpha channel is not compressed to black color) [#4342](https://github.com/excalidraw/excalidraw/pull/4342).
367
-
368
- #### BREAKING CHANGE
369
-
370
- Remove `getElementMap` util [#4306](https://github.com/excalidraw/excalidraw/pull/4306).
371
-
372
- - Changes to [`exportToCanvas`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToCanvas) util function [#4321](https://github.com/excalidraw/excalidraw/pull/4321):
373
-
374
- - Add `maxWidthOrHeight?: number` attribute.
375
- - `scale` returned from `getDimensions()` is now optional (default to `1`).
376
-
377
- - Image support added for host [PR](https://github.com/excalidraw/excalidraw/pull/4011)
378
-
379
- General notes:
380
-
381
- - File data are encoded as DataURLs (base64) for portability reasons.
382
-
383
- [ExcalidrawAPI](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onLibraryChange):
384
-
385
- - added `getFiles()` to get current `BinaryFiles` (`Record<FileId, BinaryFileData>`). It may contain files that aren't referenced by any element, so if you're persisting the files to a storage, you should compare them against stored elements.
386
-
387
- Excalidraw app props:
388
-
389
- - added `generateIdForFile(file: File)` optional prop so you can generate your own ids for added files.
390
- - `onChange(elements, appState, files)` prop callback is now passed `BinaryFiles` as third argument.
391
- - `onPaste(data, event)` data prop should contain `data.files` (`BinaryFiles`) if the elements pasted are referencing new files.
392
- - `initialData` object now supports additional `files` (`BinaryFiles`) attribute.
393
-
394
- Other notes:
395
-
396
- - `.excalidraw` files may now contain top-level `files` key in format of `Record<FileId, BinaryFileData>` when exporting any (image) elements.
397
- - Changes were made to various export utilities exported from the package so that they take `files`, you can refer to the docs for the same.
398
-
399
- - Export [`isLinearElement`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#isLinearElement) and [`getNonDeletedElements`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#getNonDeletedElements) [#4072](https://github.com/excalidraw/excalidraw/pull/4072).
400
-
401
- - Support [`renderTopRightUI`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderTopRightUI) in mobile UI [#4065](https://github.com/excalidraw/excalidraw/pull/4065).
402
-
403
- - Export `THEME` constant from the package so host can use this when passing the theme [#4055](https://github.com/excalidraw/excalidraw/pull/4055).
404
-
405
- #### BREAKING CHANGE
406
-
407
- The `Appearance` type is now removed and renamed to `Theme` so `Theme` type needs to be used.
408
-
409
- ### Fixes
410
-
411
- - Reset `unmounted` state on the component once component mounts to fix the mounting/unmounting repeatedly when used with `useEffect` [#4682](https://github.com/excalidraw/excalidraw/pull/4682).
412
- - Panning the canvas using `mousewheel-drag` and `space-drag` now prevents the browser from scrolling the container/page [#4489](https://github.com/excalidraw/excalidraw/pull/4489).
413
- - Scope drag and drop events to Excalidraw container to prevent overriding host application drag and drop events [#4445](https://github.com/excalidraw/excalidraw/pull/4445).
414
-
415
- ### Build
416
-
417
- - Release preview package [@excalidraw/excalidraw-preview](https://www.npmjs.com/package/@excalidraw/excalidraw-preview) when triggered via comment
418
-
419
- ```
420
- @excalibot trigger release
421
- ```
209
+ ## 0.13.0 (2022-10-27)
422
210
 
423
- [#4750](https://github.com/excalidraw/excalidraw/pull/4750).
211
+ ### Excalidraw API
424
212
 
425
- - Added an example to test and develop the package [locally](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#Development) using `yarn start` [#4488](https://github.com/excalidraw/excalidraw/pull/4488)
213
+ #### Features
426
214
 
427
- - Remove `file-loader` so font assets are not duplicated by webpack and use webpack asset modules for font generation [#4380](https://github.com/excalidraw/excalidraw/pull/4380).
215
+ - `restoreElements()` now takes an optional parameter to indicate whether we should also recalculate text element dimensions. Defaults to `true`, but since this is a potentially costly operation, you may want to disable it if you restore elements in tight loops, such as during collaboration [#5432](https://github.com/excalidraw/excalidraw/pull/5432).
216
+ - Support rendering custom sidebar using [`renderSidebar`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderSidebar) prop ([#5663](https://github.com/excalidraw/excalidraw/pull/5663)).
217
+ - Add [`toggleMenu`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#toggleMenu) prop to toggle specific menu open/close state ([#5663](https://github.com/excalidraw/excalidraw/pull/5663)).
218
+ - Support [theme](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#theme) to be semi-controlled [#5660](https://github.com/excalidraw/excalidraw/pull/5660).
219
+ - Added support for storing [`customData`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#storing-custom-data-on-excalidraw-elements) on Excalidraw elements [#5592].
220
+ - Added `exportPadding?: number;` to [exportToCanvas](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exporttocanvas) and [exportToBlob](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exporttoblob). The default value of the padding is `10`.
428
221
 
429
- - We're now compiling to `es2017` target. Notably, `async/await` is not compiled down to generators. [#4341](https://github.com/excalidraw/excalidraw/pull/4341).
222
+ #### Breaking Changes
430
223
 
431
- ---
224
+ - `props.UIOptions.canvasActions.theme` is now renamed to `props.UIOptions.canvasActions.toggleTheme` [#5660](https://github.com/excalidraw/excalidraw/pull/5660).
225
+ - `setToastMessage` API is now renamed to `setToast` API and the function signature is also updated [#5427](https://github.com/excalidraw/excalidraw/pull/5427). You can also pass `duration` and `closable` attributes along with `message`.
432
226
 
433
227
  ## Excalidraw Library
434
228
 
@@ -436,459 +230,201 @@ React.createElement(ExcalidrawLib.Excalidraw, opts);
436
230
 
437
231
  ### Features
438
232
 
439
- - Show group/group and link action in mobile [#4795](https://github.com/excalidraw/excalidraw/pull/4795)
440
-
441
- - Support background fill for freedraw shapes [#4610](https://github.com/excalidraw/excalidraw/pull/4610)
442
-
443
- - Keep selected tool on canvas reset [#4728](https://github.com/excalidraw/excalidraw/pull/4728)
444
-
445
- - Make whole element clickable in view mode when it has hyperlink [#4735](https://github.com/excalidraw/excalidraw/pull/4735)
446
-
447
- - Allow any precision when zooming [#4730](https://github.com/excalidraw/excalidraw/pull/4730)
448
-
449
- - Throttle `pointermove` events per framerate [#4727](https://github.com/excalidraw/excalidraw/pull/4727)
450
-
451
- - Support hyperlinks 🔥 [#4620](https://github.com/excalidraw/excalidraw/pull/4620)
452
-
453
- - Added penMode for palm rejection [#4657](https://github.com/excalidraw/excalidraw/pull/4657)
454
-
455
- - Support unbinding bound text [#4686](https://github.com/excalidraw/excalidraw/pull/4686)
456
-
457
- - Sync local storage state across tabs when out of sync [#4545](https://github.com/excalidraw/excalidraw/pull/4545)
458
-
459
- - Support contextMenuLabel to be of function type to support dynamic labels [#4654](https://github.com/excalidraw/excalidraw/pull/4654)
460
-
461
- - Support decreasing/increasing `fontSize` via keyboard [#4553](https://github.com/excalidraw/excalidraw/pull/4553)
462
-
463
- - Link to new LP for excalidraw plus [#4549](https://github.com/excalidraw/excalidraw/pull/4549)
464
-
465
- - Update stroke color of bounded text along with container [#4541](https://github.com/excalidraw/excalidraw/pull/4541)
466
-
467
- - Hints and shortcuts help around deep selection [#4502](https://github.com/excalidraw/excalidraw/pull/4502)
468
-
469
- - Support updating text properties by clicking on container [#4499](https://github.com/excalidraw/excalidraw/pull/4499)
470
-
471
- - Bind text to shapes when pressing enter and support sticky notes 🎉 [#4343](https://github.com/excalidraw/excalidraw/pull/4343)
472
-
473
- - Change `boundElementIds` → `boundElements` [#4404](https://github.com/excalidraw/excalidraw/pull/4404)
474
-
475
- - Support selecting multiple points when editing line [#4373](https://github.com/excalidraw/excalidraw/pull/4373)
476
-
477
- - Horizontally center toolbar menu [commit link](https://github.com/excalidraw/excalidraw/commit/9b8ee3cacfec239617c357693cf2a3ca9972d2cb)
478
-
479
- - Add support for rounded corners in diamond [#4369](https://github.com/excalidraw/excalidraw/pull/4369)
233
+ - Render library into `Sidebar` on mobile [#5774](https://github.com/excalidraw/excalidraw/pull/5774)
480
234
 
481
- - Allow zooming up to 3000% [#4358](https://github.com/excalidraw/excalidraw/pull/4358)
235
+ - Additional drag and drop image format support (webp, bmp, ico) [#5749](https://github.com/excalidraw/excalidraw/pull/5749)
482
236
 
483
- - Stop discarding precision when rendering [#4357](https://github.com/excalidraw/excalidraw/pull/4357)
237
+ - Enter and Exit line editor via context menu [#5719](https://github.com/excalidraw/excalidraw/pull/5719)
484
238
 
485
- - Support Image binding [#4347](https://github.com/excalidraw/excalidraw/pull/4347)
239
+ - Further reduce darkmode init flash [#5701](https://github.com/excalidraw/excalidraw/pull/5701)
486
240
 
487
- - Add `element.updated` [#4070](https://github.com/excalidraw/excalidraw/pull/4070)
241
+ - Support segment midpoints in line editor [#5641](https://github.com/excalidraw/excalidraw/pull/5641)
488
242
 
489
- - Compress shareLink data when uploading to json server [#4225](https://github.com/excalidraw/excalidraw/pull/4225)
243
+ - Added exportPadding to PNG (blob) export in @excalidraw/utils [#5626](https://github.com/excalidraw/excalidraw/pull/5626)
490
244
 
491
- - Supply `version` param when installing libraries [#4305](https://github.com/excalidraw/excalidraw/pull/4305)
245
+ - Introduce ExcalidrawElements and ExcalidrawAppState provider [#5463](https://github.com/excalidraw/excalidraw/pull/5463)
492
246
 
493
- - Log FS abortError to console [#4279](https://github.com/excalidraw/excalidraw/pull/4279)
247
+ - Enable midpoint inside linear element editor [#5564](https://github.com/excalidraw/excalidraw/pull/5564)
494
248
 
495
- - Add validation for website and remove validation for library item name [#4269](https://github.com/excalidraw/excalidraw/pull/4269)
249
+ - Show a mid point for linear elements [#5534](https://github.com/excalidraw/excalidraw/pull/5534)
496
250
 
497
- - Allow publishing libraries from UI [#4115](https://github.com/excalidraw/excalidraw/pull/4115)
251
+ - Lock angle when editing linear elements with shift pressed [#5527](https://github.com/excalidraw/excalidraw/pull/5527)
498
252
 
499
- - Create confirm dialog to use instead of window.confirm [#4256](https://github.com/excalidraw/excalidraw/pull/4256)
253
+ - Redesign linear elements 🎉 [#5501](https://github.com/excalidraw/excalidraw/pull/5501)
500
254
 
501
- - Allow letters in IDs for storing files in backend [#4224](https://github.com/excalidraw/excalidraw/pull/4224)
255
+ - Cursor alignment when creating linear elements with shift pressed [#5518](https://github.com/excalidraw/excalidraw/pull/5518)
502
256
 
503
- - Remove support for V1 unencrypted backend [#4189](https://github.com/excalidraw/excalidraw/pull/4189)
257
+ - Shift-clamp when creating multi-point lines/arrows [#5500](https://github.com/excalidraw/excalidraw/pull/5500)
504
258
 
505
- - Use separate backend for local storage [#4187](https://github.com/excalidraw/excalidraw/pull/4187)
259
+ - Cursor alignment when creating generic elements [#5516](https://github.com/excalidraw/excalidraw/pull/5516)
506
260
 
507
- - Add hint around canvas panning [#4159](https://github.com/excalidraw/excalidraw/pull/4159)
508
-
509
- - Stop using production services for development [#4113](https://github.com/excalidraw/excalidraw/pull/4113)
510
-
511
- - Add triangle arrowhead [#4024](https://github.com/excalidraw/excalidraw/pull/4024)
512
-
513
- - Add rewrite to webex landing page [#4102](https://github.com/excalidraw/excalidraw/pull/4102)
514
-
515
- - Switch collab server [#4092](https://github.com/excalidraw/excalidraw/pull/4092)
516
-
517
- - Use dialog component for clear canvas instead of window confirm [#4075](https://github.com/excalidraw/excalidraw/pull/4075)
261
+ - Make context menu scrollable [#4030](https://github.com/excalidraw/excalidraw/pull/4030)
518
262
 
519
263
  ### Fixes
520
264
 
521
- - Rename --color-primary-chubb to --color-primary-contrast-offset and fallback to primary color if not present [#4803](https://github.com/excalidraw/excalidraw/pull/4803)
522
-
523
- - Add commits directly pushed to master in changelog [#4798](https://github.com/excalidraw/excalidraw/pull/4798)
524
-
525
- - Don't bump element version when adding files data [#4794](https://github.com/excalidraw/excalidraw/pull/4794)
526
-
527
- - Mobile link click [#4742](https://github.com/excalidraw/excalidraw/pull/4742)
528
-
529
- - ContextMenu timer & pointers not correctly reset on iOS [#4765](https://github.com/excalidraw/excalidraw/pull/4765)
530
-
531
- - Use absolute coords when rendering link popover [#4753](https://github.com/excalidraw/excalidraw/pull/4753)
532
-
533
- - Changing font size when text is not selected or edited [#4751](https://github.com/excalidraw/excalidraw/pull/4751)
534
-
535
- - Disable contextmenu on non-secondary `pen` events or `touch` [#4675](https://github.com/excalidraw/excalidraw/pull/4675)
536
-
537
- - Mobile context menu won't show on long press [#4741](https://github.com/excalidraw/excalidraw/pull/4741)
538
-
539
- - Do not open links twice [#4738](https://github.com/excalidraw/excalidraw/pull/4738)
540
-
541
- - Make link icon clickable in mobile [#4736](https://github.com/excalidraw/excalidraw/pull/4736)
542
-
543
- - Apple Pen missing strokes [#4705](https://github.com/excalidraw/excalidraw/pull/4705)
544
-
545
- - Freedraw slow movement jittery lines [#4726](https://github.com/excalidraw/excalidraw/pull/4726)
265
+ - Ungroup short cut key [#5779](https://github.com/excalidraw/excalidraw/pull/5779)
546
266
 
547
- - Disable three finger pinch zoom in penMode [#4725](https://github.com/excalidraw/excalidraw/pull/4725)
267
+ - Replaced KeyboardEvent.code with KeyboardEvent.key for all letters [#5523](https://github.com/excalidraw/excalidraw/pull/5523)
548
268
 
549
- - Remove click listener for opening popup [#4700](https://github.com/excalidraw/excalidraw/pull/4700)
269
+ - Free draw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)
550
270
 
551
- - Link popup position not accounting for offsets [#4695](https://github.com/excalidraw/excalidraw/pull/4695)
271
+ - Wait for window focus until prompting for library install [#5751](https://github.com/excalidraw/excalidraw/pull/5751)
552
272
 
553
- - PenMode darkmode style [#4692](https://github.com/excalidraw/excalidraw/pull/4692)
273
+ - Update perfect freehand library to fix extra dot [#5727](https://github.com/excalidraw/excalidraw/pull/5727)
554
274
 
555
- - Typing `_+` in wysiwyg not working [#4681](https://github.com/excalidraw/excalidraw/pull/4681)
275
+ - RestoreElementWithProperties drops "parent" property [#5742](https://github.com/excalidraw/excalidraw/pull/5742)
556
276
 
557
- - Keyboard-zooming in wysiwyg should zoom canvas [#4676](https://github.com/excalidraw/excalidraw/pull/4676)
277
+ - Horizontal text alignment for bound text when resizing [#5721](https://github.com/excalidraw/excalidraw/pull/5721)
558
278
 
559
- - SceneCoordsToViewportCoords, jumping text when there is an offset [#4413](https://github.com/excalidraw/excalidraw/pull/4413) (#4630)
279
+ - Set the dimensions of bound text correctly [#5710](https://github.com/excalidraw/excalidraw/pull/5710)
560
280
 
561
- - Right-click object menu displays partially off-screen [#4572](https://github.com/excalidraw/excalidraw/pull/4572) (#4631)
281
+ - Image-mirroring in export preview and in exported svg [#5700](https://github.com/excalidraw/excalidraw/pull/5700)
562
282
 
563
- - Support collaboration in bound text [#4573](https://github.com/excalidraw/excalidraw/pull/4573)
283
+ - Double state update incorrectly resetting state [#5704](https://github.com/excalidraw/excalidraw/pull/5704)
564
284
 
565
- - Cmd/ctrl native browser behavior blocked in inputs [#4589](https://github.com/excalidraw/excalidraw/pull/4589)
285
+ - Remove no longer used code related to collab room loading [#5699](https://github.com/excalidraw/excalidraw/pull/5699)
566
286
 
567
- - Use cached width when calculating min width during resize [#4585](https://github.com/excalidraw/excalidraw/pull/4585)
287
+ - Revert webpack deduping to fix `@next` runtime [#5695](https://github.com/excalidraw/excalidraw/pull/5695)
568
288
 
569
- - Support collaboration in bounded text [#4580](https://github.com/excalidraw/excalidraw/pull/4580)
289
+ - Move to release notes for v0.9.0 and after [#5686](https://github.com/excalidraw/excalidraw/pull/5686)
570
290
 
571
- - Port for collab server and update docs [#4569](https://github.com/excalidraw/excalidraw/pull/4569)
291
+ - Zen-mode exit button not working [#5682](https://github.com/excalidraw/excalidraw/pull/5682)
572
292
 
573
- - Don't mutate the bounded text if not updated when submitted [#4543](https://github.com/excalidraw/excalidraw/pull/4543)
293
+ - Buttons jump around on the mobile menu [#5658](https://github.com/excalidraw/excalidraw/pull/5658)
574
294
 
575
- - Prevent canvas drag while editing text [#4552](https://github.com/excalidraw/excalidraw/pull/4552)
295
+ - #5622 - prevent session theme reset during collaboration [#5640](https://github.com/excalidraw/excalidraw/pull/5640)
576
296
 
577
- - Support shift+P for freedraw [#4550](https://github.com/excalidraw/excalidraw/pull/4550)
297
+ - Library actions inside the sidebar [#5638](https://github.com/excalidraw/excalidraw/pull/5638)
578
298
 
579
- - Prefer spreadsheet data over image [#4533](https://github.com/excalidraw/excalidraw/pull/4533)
299
+ - Don't render library menu twice for mobile [#5636](https://github.com/excalidraw/excalidraw/pull/5636)
580
300
 
581
- - Show text properties button states correctly for bounded text [#4542](https://github.com/excalidraw/excalidraw/pull/4542)
301
+ - Reintroduce help dialog button [#5631](https://github.com/excalidraw/excalidraw/pull/5631)
582
302
 
583
- - Rotate bounded text when container is rotated before typing [#4535](https://github.com/excalidraw/excalidraw/pull/4535)
303
+ - Add display name to components so it doesn't show as anonymous [#5616](https://github.com/excalidraw/excalidraw/pull/5616)
584
304
 
585
- - Undo should work when selecting bounded textr [#4537](https://github.com/excalidraw/excalidraw/pull/4537)
305
+ - Improve solveQuadratic when a = 0 [#5618](https://github.com/excalidraw/excalidraw/pull/5618)
586
306
 
587
- - Reduce padding to 5px for bounded text [#4530](https://github.com/excalidraw/excalidraw/pull/4530)
307
+ - Add random tiny offsets to avoid linear elements from being clipped [#5615](https://github.com/excalidraw/excalidraw/pull/5615)
588
308
 
589
- - Bound text doesn't inherit container [#4521](https://github.com/excalidraw/excalidraw/pull/4521)
309
+ - Crash when adding a new point in the line editor #5602 [#5606](https://github.com/excalidraw/excalidraw/pull/5606)
590
310
 
591
- - Text wrapping with grid [#4505](https://github.com/excalidraw/excalidraw/pull/4505) (#4506)
311
+ - Allow box selection of points when inside editor [#5594](https://github.com/excalidraw/excalidraw/pull/5594)
592
312
 
593
- - Check if process is defined before using so it works in browser [#4497](https://github.com/excalidraw/excalidraw/pull/4497)
313
+ - Remove unnecessary conditions in pointerup for linear elements [#5575](https://github.com/excalidraw/excalidraw/pull/5575)
594
314
 
595
- - Pending review fixes for sticky notes [#4493](https://github.com/excalidraw/excalidraw/pull/4493)
315
+ - Check if hitting link in handleSelectionOnPointerDown [#5589](https://github.com/excalidraw/excalidraw/pull/5589)
596
316
 
597
- - Pasted elements except binded text once paste action is complete [#4472](https://github.com/excalidraw/excalidraw/pull/4472)
317
+ - Points not being normalized on single-elem resize [#5581](https://github.com/excalidraw/excalidraw/pull/5581)
598
318
 
599
- - Don't select binded text when ungrouping [#4470](https://github.com/excalidraw/excalidraw/pull/4470)
319
+ - Deselect linear element when clicked inside bounding box outside editor [#5579](https://github.com/excalidraw/excalidraw/pull/5579)
600
320
 
601
- - Set height correctly when text properties updated while editing in container until first submit [#4469](https://github.com/excalidraw/excalidraw/pull/4469)
321
+ - Resize multiple elements from center [#5560](https://github.com/excalidraw/excalidraw/pull/5560)
602
322
 
603
- - Align and distribute binded text in container and cleanup [#4468](https://github.com/excalidraw/excalidraw/pull/4468)
323
+ - Call static methods via class instead of instance in linearElementEditor [#5561](https://github.com/excalidraw/excalidraw/pull/5561)
604
324
 
605
- - Move binded text when moving container using keyboard [#4466](https://github.com/excalidraw/excalidraw/pull/4466)
325
+ - Show bounding box for 3 or more linear point elements [#5554](https://github.com/excalidraw/excalidraw/pull/5554)
606
326
 
607
- - Support dragging binded text in container selected in a group [#4462](https://github.com/excalidraw/excalidraw/pull/4462)
327
+ - Cleanup the condition for dragging elements [#5555](https://github.com/excalidraw/excalidraw/pull/5555)
608
328
 
609
- - Vertically align single line when deleting text in bounded container [#4460](https://github.com/excalidraw/excalidraw/pull/4460)
329
+ - Shareable links being merged with current scene data [#5547](https://github.com/excalidraw/excalidraw/pull/5547)
610
330
 
611
- - Update height correctly when updating text properties in binded text [#4459](https://github.com/excalidraw/excalidraw/pull/4459)
331
+ - Scene lookup failing when looking up by id [#5542](https://github.com/excalidraw/excalidraw/pull/5542)
612
332
 
613
- - Align library item previews to center [#4447](https://github.com/excalidraw/excalidraw/pull/4447)
333
+ - Remove rounding to fix jitter when shift-editing [#5543](https://github.com/excalidraw/excalidraw/pull/5543)
614
334
 
615
- - Vertically center align text when text deleted [#4457](https://github.com/excalidraw/excalidraw/pull/4457)
335
+ - Line deselected when shift-dragging point outside editor [#5540](https://github.com/excalidraw/excalidraw/pull/5540)
616
336
 
617
- - Vertically center the first line as user starts typing in container [#4454](https://github.com/excalidraw/excalidraw/pull/4454)
337
+ - Flip linear elements after redesign [#5538](https://github.com/excalidraw/excalidraw/pull/5538)
618
338
 
619
- - Switch cursor to center of container when adding text when dimensions are too small [#4452](https://github.com/excalidraw/excalidraw/pull/4452)
339
+ - Disable locking aspect ratio for box-selection [#5525](https://github.com/excalidraw/excalidraw/pull/5525)
620
340
 
621
- - Vertically center align the bounded text correctly when zoomed [#4444](https://github.com/excalidraw/excalidraw/pull/4444)
341
+ - Add `title` attribute to the modal close button [#5521](https://github.com/excalidraw/excalidraw/pull/5521)
622
342
 
623
- - Support updating stroke color for text by typing in color picker input [#4415](https://github.com/excalidraw/excalidraw/pull/4415)
343
+ - Context menu positioning when component has offsets [#5520](https://github.com/excalidraw/excalidraw/pull/5520)
624
344
 
625
- - Bound text not atomic with container when changing z-index [#4414](https://github.com/excalidraw/excalidraw/pull/4414)
345
+ - Resolve paths in prebuild.js script [#5498](https://github.com/excalidraw/excalidraw/pull/5498)
626
346
 
627
- - Update viewport coords correctly when editing text [#4416](https://github.com/excalidraw/excalidraw/pull/4416)
347
+ - Use flushSync when moving line editor since we need to read previous value after setting state [#5508](https://github.com/excalidraw/excalidraw/pull/5508)
628
348
 
629
- - Use word-break break-word only and update text editor height only when binded to container [#4410](https://github.com/excalidraw/excalidraw/pull/4410)
349
+ - UseLayout effect cleanup in dev mode for charts [#5505](https://github.com/excalidraw/excalidraw/pull/5505)
630
350
 
631
- - Husky not able to execute pre-commit on windows [#4370](https://github.com/excalidraw/excalidraw/pull/4370)
351
+ - Revert browser toast for high/low zoom [#5495](https://github.com/excalidraw/excalidraw/pull/5495)
632
352
 
633
- - Make firebase config parsing not fail on undefined env [#4381](https://github.com/excalidraw/excalidraw/pull/4381)
353
+ - Fixing push to DockerHub [#5468](https://github.com/excalidraw/excalidraw/pull/5468)
634
354
 
635
- - Adding to library via contextmenu when no image is selected [#4356](https://github.com/excalidraw/excalidraw/pull/4356)
355
+ - Incorrectly rendering freedraw elements [#5481](https://github.com/excalidraw/excalidraw/pull/5481)
636
356
 
637
- - Export scale quality regression [#4316](https://github.com/excalidraw/excalidraw/pull/4316)
357
+ - Generate types when building example [#5480](https://github.com/excalidraw/excalidraw/pull/5480)
638
358
 
639
- - Remove `100%` height from tooltip container to fix layout issues [#3980](https://github.com/excalidraw/excalidraw/pull/3980)
359
+ - Use React.FC as react-dom is not able to infer types of Modal [#5479](https://github.com/excalidraw/excalidraw/pull/5479)
640
360
 
641
- - Inline ENV variables when building excalidraw package [#4311](https://github.com/excalidraw/excalidraw/pull/4311)
361
+ - Missing translation for "Scale" to Export Dialog [#5456](https://github.com/excalidraw/excalidraw/pull/5456)
642
362
 
643
- - SVG export in dark mode with embedded bitmap image [#4285](https://github.com/excalidraw/excalidraw/pull/4285)
363
+ - Add display name for Excalidraw component so it doesn't show as anonymous [#5464](https://github.com/excalidraw/excalidraw/pull/5464)
644
364
 
645
- - New FS API not working on Linux [#4280](https://github.com/excalidraw/excalidraw/pull/4280)
365
+ - Account for safe area for floating buttons on mobile [#5420](https://github.com/excalidraw/excalidraw/pull/5420)
646
366
 
647
- - Url -> URL for consistency [#4277](https://github.com/excalidraw/excalidraw/pull/4277)
367
+ - Attribute warnings in comment svg example [#5465](https://github.com/excalidraw/excalidraw/pull/5465)
648
368
 
649
- - Prevent adding images to library via contextMenu [#4264](https://github.com/excalidraw/excalidraw/pull/4264)
369
+ - Check for ctrl key when wheel event triggered to only disable zooming [#5459](https://github.com/excalidraw/excalidraw/pull/5459)
650
370
 
651
- - Account for libraries v2 when prompting [#4263](https://github.com/excalidraw/excalidraw/pull/4263)
371
+ - Disable render throttling by default & during resize [#5451](https://github.com/excalidraw/excalidraw/pull/5451)
652
372
 
653
- - Skia rendering issues [#4200](https://github.com/excalidraw/excalidraw/pull/4200)
373
+ - Attach wheel event to exscalidraw container only [#5443](https://github.com/excalidraw/excalidraw/pull/5443)
654
374
 
655
- - Ellipse roughness when `0` [#4194](https://github.com/excalidraw/excalidraw/pull/4194)
375
+ - Show toast when browser zoom is not 100% [#5304](https://github.com/excalidraw/excalidraw/pull/5304)
656
376
 
657
- - Proper string for invalid SVG [#4191](https://github.com/excalidraw/excalidraw/pull/4191)
377
+ - Prevent browser zoom inside Excalidraw [#5426](https://github.com/excalidraw/excalidraw/pull/5426)
658
378
 
659
- - Images not initialized correctly [#4157](https://github.com/excalidraw/excalidraw/pull/4157)
660
-
661
- - Image-related fixes [#4147](https://github.com/excalidraw/excalidraw/pull/4147)
662
-
663
- - Rewrite collab element reconciliation to fix z-index issues [#4076](https://github.com/excalidraw/excalidraw/pull/4076)
664
-
665
- - Redirect excalidraw.com/about to for-webex.excalidraw.com [#4104](https://github.com/excalidraw/excalidraw/pull/4104)
666
-
667
- - Redirect to webex LP instead of rewrite to fix SW [#4103](https://github.com/excalidraw/excalidraw/pull/4103)
668
-
669
- - Clear image/shape cache of affected elements when adding files [#4089](https://github.com/excalidraw/excalidraw/pull/4089)
670
-
671
- - Clear `LibraryUnit` DOM on unmount [#4084](https://github.com/excalidraw/excalidraw/pull/4084)
672
-
673
- - Pasting images on firefox [#4085](https://github.com/excalidraw/excalidraw/pull/4085)
379
+ - Typo in changelog [#5425](https://github.com/excalidraw/excalidraw/pull/5425)
674
380
 
675
381
  ### Refactor
676
382
 
677
- - Simplify zoom by removing `zoom.translation` [#4477](https://github.com/excalidraw/excalidraw/pull/4477)
383
+ - Create a util to compute container dimensions for bound text container [#5708](https://github.com/excalidraw/excalidraw/pull/5708)
678
384
 
679
- - Deduplicate encryption helpers [#4146](https://github.com/excalidraw/excalidraw/pull/4146)
385
+ - Reuse common ui dialogs and message for mobile and LayerUI [#5611](https://github.com/excalidraw/excalidraw/pull/5611)
680
386
 
681
- ### Performance
387
+ - Stats component [#5610](https://github.com/excalidraw/excalidraw/pull/5610)
682
388
 
683
- - Cache approx line height in textwysiwg [#4651](https://github.com/excalidraw/excalidraw/pull/4651)
684
-
685
- ### Build
389
+ - Move footer to its own component [#5609](https://github.com/excalidraw/excalidraw/pull/5609)
686
390
 
687
- - Rename release command to 'release package' [#4783](https://github.com/excalidraw/excalidraw/pull/4783)
688
-
689
- - Deploy excalidraw package example [#4762](https://github.com/excalidraw/excalidraw/pull/4762)
690
-
691
- - Allow package.json changes when autoreleasing next [#4068](https://github.com/excalidraw/excalidraw/pull/4068)
692
-
693
- ---
694
-
695
- ## 0.10.0 (2021-10-13)
696
-
697
- ## Excalidraw API
391
+ - Remove unused attribute hasHitElementInside from pointerDownState [#5591](https://github.com/excalidraw/excalidraw/pull/5591)
698
392
 
699
- ### Fixes
393
+ - Cleanup renderScene [#5573](https://github.com/excalidraw/excalidraw/pull/5573)
700
394
 
701
- - Don't show save file to disk button in export dialog when `saveFileToDisk` passed as `false` in [`UIOptions.canvasActions.export`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportOpts) [#4073](https://github.com/excalidraw/excalidraw/pull/4073).
395
+ - Rename docs to dev-docs [#5487](https://github.com/excalidraw/excalidraw/pull/5487)
702
396
 
703
- - [`onPaste`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPaste) prop should return false to prevent the native excalidraw paste action [#3974](https://github.com/excalidraw/excalidraw/pull/3974).
397
+ - Remove unnecessary if condition for linear element onKeyDown [#5486](https://github.com/excalidraw/excalidraw/pull/5486)
704
398
 
705
- #### BREAKING CHANGE
399
+ - Improve typing & check [#5415](https://github.com/excalidraw/excalidraw/pull/5415)
706
400
 
707
- - Earlier the paste action was prevented when the prop [`onPaste`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPaste) returned true, but now it should return false to prevent the paste action. This was done to make it semantically more correct and intuitive.
401
+ - Don't pass zenModeEnable, viewModeEnabled and toggleZenMode props to LayerUI [#5444](https://github.com/excalidraw/excalidraw/pull/5444)
708
402
 
709
403
  ### Build
710
404
 
711
- - Enable jsx transform in webpack [#4049](https://github.com/excalidraw/excalidraw/pull/4049)
712
-
713
- ### Docs
714
-
715
- - Correct exportToBackend in README to onExportToBackend [#3952](https://github.com/excalidraw/excalidraw/pull/3952)
716
-
717
- ## Excalidraw Library
718
-
719
- **_This section lists the updates made to the excalidraw library and will not affect the integration._**
720
-
721
- ### Features
722
-
723
- - Improve freedraw shape [#3984](https://github.com/excalidraw/excalidraw/pull/3984)
724
-
725
- - Make color ARIA labels better [#3871](https://github.com/excalidraw/excalidraw/pull/3871)
726
-
727
- - Add origin trial tokens [#3853](https://github.com/excalidraw/excalidraw/pull/3853)
728
-
729
- - Re-order zoom buttons [#3837](https://github.com/excalidraw/excalidraw/pull/3837)
730
-
731
- - Add undo/redo buttons & tweak footer [#3832](https://github.com/excalidraw/excalidraw/pull/3832)
732
-
733
- - Resave to png/svg with metadata if you loaded your scene from a png/svg file [#3645](https://github.com/excalidraw/excalidraw/pull/3645)
405
+ - Add missing dependencies: pica, lodash [#5656](https://github.com/excalidraw/excalidraw/pull/5656)
734
406
 
735
- ### Fixes
736
-
737
- - Abstract and fix legacy fs [#4032](https://github.com/excalidraw/excalidraw/pull/4032)
738
-
739
- - Context menu positioning [#4025](https://github.com/excalidraw/excalidraw/pull/4025)
740
-
741
- - Added alert for bad encryption key [#3998](https://github.com/excalidraw/excalidraw/pull/3998)
742
-
743
- - OnPaste should return false to prevent paste action [#3974](https://github.com/excalidraw/excalidraw/pull/3974)
744
-
745
- - Help-icon now visible on Safari [#3939](https://github.com/excalidraw/excalidraw/pull/3939)
746
-
747
- - Permanent zoom mode [#3931](https://github.com/excalidraw/excalidraw/pull/3931)
748
-
749
- - Undo/redo buttons gap in Safari [#3836](https://github.com/excalidraw/excalidraw/pull/3836)
750
-
751
- - Prevent gradual canvas misalignment [#3833](https://github.com/excalidraw/excalidraw/pull/3833)
752
-
753
- - Color picker shortcuts not working when elements selected [#3817](https://github.com/excalidraw/excalidraw/pull/3817)
407
+ - Move dotenv to dev deps [#5472](https://github.com/excalidraw/excalidraw/pull/5472)
754
408
 
755
409
  ---
756
410
 
757
- ## 0.9.0 (2021-07-10)
758
-
759
- ## Excalidraw API
760
-
761
- ### Features
762
-
763
- - [`restore(data, localAppState, localElements)`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restore) and [`restoreElements(elements, localElements)`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restoreElements) now take `localElements` argument which will be used to ensure existing elements' versions are used and incremented. This fixes an issue where importing the same file would resolve to elements with older versions, potentially causing issues when reconciling [#3797](https://github.com/excalidraw/excalidraw/pull/3797).
764
-
765
- #### BREAKING CHANGE
766
-
767
- - `localElements` argument is mandatory (can be `null`/`undefined`) if using TypeScript.
768
-
769
- - Support `appState.exportEmbedScene` attribute in [`exportToSvg`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToSvg) which allows to embed the scene data [#3777](https://github.com/excalidraw/excalidraw/pull/3777).
770
-
771
- #### BREAKING CHANGE
772
-
773
- - The attribute `metadata` is now removed as `metadata` was only used to embed scene data which is now supported with the `appState.exportEmbedScene` attribute.
774
- - [`exportToSvg`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToSvg) now resolves to a promise which resolves to `svg` of the exported drawing.
775
-
776
- - Expose [`loadLibraryFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadLibraryFromBlobY), [`loadFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadFromBlob), and [`getFreeDrawSvgPath`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#getFreeDrawSvgPath) [#3764](https://github.com/excalidraw/excalidraw/pull/3764).
777
-
778
- - Expose [`FONT_FAMILY`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#FONT_FAMILY) so that consumer can use when passing `initialData.appState.currentItemFontFamily` [#3710](https://github.com/excalidraw/excalidraw/pull/3710).
779
-
780
- - Added prop [`autoFocus`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#autoFocus) to focus the excalidraw component on page load when enabled, defaults to false [#3691](https://github.com/excalidraw/excalidraw/pull/3691).
781
-
782
- Note: Earlier Excalidraw component was focused by default on page load, you need to enable `autoFocus` prop to retain the same behaviour.
783
-
784
- - Added prop `UIOptions.canvasActions.export.renderCustomUI` to support Custom UI rendering inside export dialog [#3666](https://github.com/excalidraw/excalidraw/pull/3666).
785
- - Added prop `UIOptions.canvasActions.saveAsImage` to show/hide the **Save as image** button in the canvas actions. Defaults to `true` hence the **Save as Image** button is rendered [#3662](https://github.com/excalidraw/excalidraw/pull/3662).
786
-
787
- - Export dialog can be customised with [`UiOptions.canvasActions.export`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportOpts) [#3658](https://github.com/excalidraw/excalidraw/pull/3658).
788
-
789
- Also, [`UIOptions`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#UIOptions) is now memoized to avoid unnecessary rerenders.
790
-
791
- #### BREAKING CHANGE
792
-
793
- - `UIOptions.canvasActions.saveAsScene` is now renamed to `UiOptions.canvasActions.export.saveFileToDisk`. Defaults to `true` hence the **save file to disk** button is rendered inside the export dialog.
794
- - `exportToBackend` is now renamed to `UIOptions.canvasActions.export.exportToBackend`. If this prop is not passed, the **shareable-link** button will not be rendered, same as before.
795
-
796
- ### Fixes
797
-
798
- - Use excalidraw Id in elements so every element has unique id [#3696](https://github.com/excalidraw/excalidraw/pull/3696).
799
-
800
- ### Refactor
801
-
802
- - #### BREAKING CHANGE
803
- - Rename `UIOptions.canvasActions.saveScene` to `UIOptions.canvasActions.saveToActiveFile`[#3657](https://github.com/excalidraw/excalidraw/pull/3657).
804
- - Removed `shouldAddWatermark: boolean` attribute from options for [export](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#export-utilities) APIs [#3639](https://github.com/excalidraw/excalidraw/pull/3639).
805
- - Removed `appState.shouldAddWatermark` so in case you were passing `shouldAddWatermark` in [initialData.AppState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L42) it will not work anymore.
411
+ ## 0.12.0 (2022-07-07)
806
412
 
807
- ## Excalidraw Library
413
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.12.0) )
808
414
 
809
415
  **_This section lists the updates made to the excalidraw library and will not affect the integration._**
810
416
 
811
- ### Features
812
-
813
- - Switch to selection tool on library item insert [#3773](https://github.com/excalidraw/excalidraw/pull/3773)
814
-
815
- - Show active file name when saving to current file [#3733](https://github.com/excalidraw/excalidraw/pull/3733)
816
-
817
- - Add hint around text editing [#3708](https://github.com/excalidraw/excalidraw/pull/3708)
818
-
819
- - Change library icon to be more clear [#3583](https://github.com/excalidraw/excalidraw/pull/3583)
820
-
821
- - Pass current `theme` when installing libraries [#3701](https://github.com/excalidraw/excalidraw/pull/3701)
822
-
823
- - Update virgil font [#3692](https://github.com/excalidraw/excalidraw/pull/3692)
824
-
825
- - Support exporting json to excalidraw plus [#3678](https://github.com/excalidraw/excalidraw/pull/3678)
826
-
827
- - Save exportScale in AppState [#3580](https://github.com/excalidraw/excalidraw/pull/3580)
828
-
829
- - Add shortcuts for stroke and background color picker [#3318](https://github.com/excalidraw/excalidraw/pull/3318)
830
-
831
- - Exporting redesign [#3613](https://github.com/excalidraw/excalidraw/pull/3613)
832
-
833
- - Auto-position tooltip and support overflowing container [#3631](https://github.com/excalidraw/excalidraw/pull/3631)
834
-
835
- - Auto release @excalidraw/excalidraw-next on every change [#3614](https://github.com/excalidraw/excalidraw/pull/3614)
836
-
837
- - Allow inner-drag-selecting with cmd/ctrl [#3603](https://github.com/excalidraw/excalidraw/pull/3603)
838
-
839
- ### Fixes
840
-
841
- - view mode cursor adjustments [#3809](https://github.com/excalidraw/excalidraw/pull/3809).
842
-
843
- - Pass next release to updatePackageVersion & replace ## unreleased with new version [#3806](https://github.com/excalidraw/excalidraw/pull/3806)
844
-
845
- - Include deleted elements when passing to restore [#3802](https://github.com/excalidraw/excalidraw/pull/3802)
846
-
847
- - Import React before using jsx [#3804](https://github.com/excalidraw/excalidraw/pull/3804)
848
-
849
- - Ensure `s` and `g` shortcuts work on no selection [#3800](https://github.com/excalidraw/excalidraw/pull/3800)
850
-
851
- - Keep binding for attached arrows after changing text [#3754](https://github.com/excalidraw/excalidraw/pull/3754)
852
-
853
- - Deselect elements on viewMode toggle [#3741](https://github.com/excalidraw/excalidraw/pull/3741)
854
-
855
- - Allow pointer events for disable zen mode button [#3743](https://github.com/excalidraw/excalidraw/pull/3743)
856
-
857
- - Use rgba instead of shorthand alpha [#3688](https://github.com/excalidraw/excalidraw/pull/3688)
858
-
859
- - Color pickers not opening on mobile [#3676](https://github.com/excalidraw/excalidraw/pull/3676)
860
-
861
- - On contextMenu, use selected element regardless of z-index [#3668](https://github.com/excalidraw/excalidraw/pull/3668)
862
-
863
- - SelectedGroupIds not being stored in history [#3630](https://github.com/excalidraw/excalidraw/pull/3630)
864
-
865
- - Overscroll on touch devices [#3663](https://github.com/excalidraw/excalidraw/pull/3663)
866
-
867
- - Small UI issues around image export dialog [#3642](https://github.com/excalidraw/excalidraw/pull/3642)
868
-
869
- - Normalize linear element points on restore [#3633](https://github.com/excalidraw/excalidraw/pull/3633)
870
-
871
- - Disable pointer-events on footer-center container [#3629](https://github.com/excalidraw/excalidraw/pull/3629)
872
-
873
- ### Refactor
874
-
875
- - Delete React SyntheticEvent persist [#3700](https://github.com/excalidraw/excalidraw/pull/3700)
876
-
877
- - Code clean up [#3681](https://github.com/excalidraw/excalidraw/pull/3681)
878
-
879
- ### Performance
880
-
881
- - Improve arrow head sizing [#3480](https://github.com/excalidraw/excalidraw/pull/3480)
417
+ ## 0.11.0 (2022-02-17)
882
418
 
883
- ### Build
419
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.11.0)
884
420
 
885
- - Add release script to update relevant files and commit for next release [#3805](https://github.com/excalidraw/excalidraw/pull/3805)
421
+ ## 0.10.0 (2021-10-13)
886
422
 
887
- - Add script to update changelog before a stable release [#3784](https://github.com/excalidraw/excalidraw/pull/3784)
423
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.10.0)
888
424
 
889
- - Add script to update readme before stable release [#3781](https://github.com/excalidraw/excalidraw/pull/3781)
425
+ ## 0.9.0 (2021-07-10)
890
426
 
891
- ---
427
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.9.0)
892
428
 
893
429
  ## 0.8.0 (2021-05-15)
894
430