@dwelle/excalidraw 0.4.0-cfd6fb7 → 0.4.0-d3c10d6

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