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

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