github excalidraw/excalidraw v0.14.0
v0.14.0 (2023-01-13)

latest releases: v0.16.4, v0.17.6, v0.16.3...
22 months ago

0.14.0 (2023-01-13)

Features

  • Support customization for the editor welcome screen #6048.

  • Expose component API for the Excalidraw main menu #6034, You can read more about its usage here

  • Support customization for the Excalidraw main menu #6034.

  • Footer is now rendered as child component instead of passed as a render prop #5970.

  • 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.

  • Expose LiveCollaborationTrigger component. Replaces props.onCollabButtonClick #6104.

BREAKING CHANGES

  • props.onCollabButtonClick is now removed. You need to render the main menu item yourself, and optionally also render the <LiveCollaborationTrigger> component using renderTopRightUI prop if you want to retain the canvas button at top-right.
  • The prop renderFooter is now removed in favor of rendering as a child component.

Excalidraw schema

  • 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.

Excalidraw Library

This section lists the updates made to the excalidraw library and will not affect the integration.

Features

  • Generic button export #6092

  • Scroll using PageUp and PageDown #6038

  • Support shrinking text containers to original height when text removed #6025

  • Move contextMenu into the component tree and control via appState #6021

  • Allow readonly actions to be used in viewMode #5982

  • Support labels for arrow 🔥 #5723

  • Don't add midpoint until dragged beyond a threshold #5927

  • Changed text copy/paste behaviour #5786

  • Reintroduce x shortcut for freedraw #5840

  • Tweak toolbar shortcuts & remove library shortcut #5832

  • Clean unused images only after 24hrs (local-only) #5839

  • Refetch errored/pending images on collab room init load #5833

  • Stop deleting whole line when no point select in line editor #5676

  • Editor redesign 🔥 #5780

Fixes

  • Mobile tools positioning #6107

  • Renamed folder MainMenu->main-menu and support rest props #6103

  • Use position absolute for mobile misc tools #6099

  • React.memo resolvers not accounting for all props #6042

  • Image horizontal flip fix + improved tests #5799

  • Png-exporting does not preserve angles correctly for flipped images #6085

  • Stale appState of MainMenu defaultItems rendered from Actions #6074

  • HelpDialog #6072

  • Show error message on collab save failure #6063

  • Remove ga from docker build #6059

  • Use displayName since name gets stripped off when uglifying/minifiyng in production #6036

  • Remove background from wysiwyg when editing arrow label #6033

  • Use canvas measureText to calculate width in measureText #6030

  • Restoring deleted bindings #6029

  • ColorPicker getColor #5949

  • 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

  • Showing grabbing cursor when holding spacebar #6015

  • Resize sometimes throwing on missing null-checks #6013

  • PWA not working after CRA@5 update #6012

  • Not properly restoring element stroke and bg colors #6002

  • Avatar outline on safari & center #5997

  • Chart pasting not working due to removing tab characters #5987

  • Apply the right type of roundness when pasting styles #5979

  • Remove editor onpaste handler #5971

  • Remove blank space #5950

  • Galego and Kurdî missing in languages plus two locale typos #5954
    excalidraw-excalidraw-v0.14.0.tgz

  • ExcalidrawArrowElement rather than ExcalidrawArrowEleement #5955

  • RenderFooter styling #5962

  • Repair element bindings on restore #5956

  • Don't allow whitespaces for bound text #5939

  • Bindings do not survive history serialization #5942

  • Dedupe boundElement ids when container duplicated with alt+drag #5938

  • Scale font correctly when using shift #5935

  • Always bind to container selected by user #5880

  • Fonts not rendered on init if loadingdone not fired #5923

  • Stop replacing del word with Delete #5897

  • Remove legacy React.render() from the editor #5893

  • Allow adding text via enter only for text containers #5891

  • Stop font loadingdone loop when rendering element SVGs #5883

  • Refresh text dimensions only after font load done #5878

  • Correctly paste contents parsed by JSON.parse() as text. #5868

  • SVG element attributes in icons.tsx #5871

  • Merge existing text with new when pasted #5856

  • Disable FAST_REFRESH to fix live reload #5852

  • Paste clipboard contents into unbound text elements #5849

  • Compute dimensions of container correctly when text pasted on container #5845

  • Line editor points rendering below elements #5781

  • Syncing 1-point lines to remote clients #5677

  • Incorrectly selecting linear elements on creation while tool-locked #5785

  • Corrected typo in toggle theme shortcut #5813

  • Hide canvas-modifying UI in view mode #5815

  • Fix vertical/horizntal centering icons #5812

  • Consistent use of ZOOM_STEP #5801

  • Multiple elements resizing regressions #5586

  • Changelog typo #5795

Refactor

  • Remove unnecessary code #5933

Build

  • Move release scripts to use release branch #5958

  • Stops ignoring .env files from docker context so env variables get set during react app build. #5809


Don't miss a new excalidraw release

NewReleases is sending notifications on new releases.