Skip to content

v0.17.0 (2023-11-14)

Compare
Choose a tag to compare
@ad1992 ad1992 released this 14 Nov 14:26
· 182 commits to master since this release
ddb7585

v0.17.0 (2023-11-14)

Features

  • Added support for disabling image tool (also disabling image insertion in general, though keeps support for importing from .excalidraw files) #6320.

    For disabling image you need to set 👇

    UIOptions.tools = {
      image: false
    }
    
  • Support excalidrawAPI prop for accessing the Excalidraw API #7251.

  • Export getCommonBounds helper from the package #7247.

  • Support frames via programmatic API #7205.

  • Export elementsOverlappingBBox, isElementInsideBBox, elementPartiallyOverlapsWithOrContainsBBox helpers for filtering/checking if elements within bounds. #6727

  • Regenerate ids by default when using transform api and also update bindings by 0.5px to avoid possible overlapping #7195

  • Add onChange, onPointerDown, onPointerUp api subscribers #7154.

  • Support props.locked for setActiveTool #7153.

  • Add selected prop for MainMenu.Item and MainMenu.ItemCustom components to indicate active state. #7078

Fixes

  • Double image dialog on image insertion #7152.

Breaking Changes

  • The Ref support has been removed in v0.17.0 so if you are using refs, please update the integration to use the excalidrawAPI #7251.

  • Additionally ready and readyPromise from the API have been discontinued. These APIs were found to be superfluous, and as part of the effort to streamline the APIs and maintain simplicity, they were removed in version v0.17.0 #7251.

  • useDevice hook's return value was changed to differentiate between editor and viewport breakpoints. #7243

Build

  • Support Preact #7255. The host needs to set process.env.IS_PREACT to true

    When using vite or any build tools, you will have to make sure the process is accessible as we are accessing process.env.IS_PREACT to decide whether to use the preact build.

    Since Vite removes env variables by default, you can update the Vite config to ensure it's available 👇

    define: {
      "process.env.IS_PREACT": process.env.IS_PREACT,
    },
    

Excalidraw Library

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

Features

  • Allow D&D dice app domain for embeds #7263

  • Remove full screen shortcut #7222

  • Make adaptive-roughness less aggressive #7250

  • Render frames on export #7210

  • Support mermaid flowchart and sequence diagrams to excalidraw diagrams 🥳 #6920

  • Support frames via programmatic API #7205

  • Make clipboard more robust and reintroduce contextmenu actions #7198

  • Support giphy.com embed domain #7192

  • Renderer tweaks #6698

  • Closing of "Save to.." Dialog on Save To Disk #7168

  • Added Copy/Paste from Google Docs #7136

  • Remove bound-arrows from frames #7157

  • New dark mode theme & light theme tweaks #7104

  • Better laser cursor for dark mode #7132

  • Laser pointer improvements #7128

  • Initial Laser Pointer MVP #6739

  • Export iconFillColor() #6996

  • Element alignments - snapping #6256

Fixes

  • Image insertion bugs #7278

  • ExportToSvg to honor frameRendering also for name not only for frame itself #7270

  • Can't toggle penMode off due to missing typecheck in togglePenMode #7273

  • Replace hard coded font family with const value in addFrameLabelsAsTextElements #7269

  • Perf issue when ungrouping elements within frame #7265

  • Fixes the shortcut collision between "toggleHandTool" and "distributeHorizontally" #7189

  • Allow pointer events when editing a linear element #7238

  • Make modal use viewport breakpoints #7246

  • Align input :hover/:focus with spec #7225

  • Dialog remounting on className updates #7224

  • Don't update label position when dragging labelled arrows #6891

  • Frame add/remove/z-index ordering changes #7194

  • Element relative position when dragging multiple elements on grid #7107

  • Freedraw non-solid bg hitbox not working #7193

  • Actions panel ux improvement #6850

  • Better fill rendering with latest RoughJS #7031

  • Fix for Strange Symbol Appearing on Canvas after Deleting Grouped Graphics (Issue #7116) #7170

  • Attempt to fix flake in wysiwyg tests #7173

  • Ensure ClipboardItem created in the same tick to fix safari #7066

  • Wysiwyg left in undefined state on reload #7123

  • Ensure relative z-index of elements added to frame is retained #7134

  • Memoize static canvas on props.renderConfig #7131

  • Regression from #6739 preventing redirect link in view mode #7120

  • Update links to excalidraw-app #7072

  • Ensure we do not stop laser update prematurely #7100

  • Remove invisible elements safely #7083

  • Icon size in manifest #7073

  • Elements being dropped/duplicated when added to frame #7057

  • Frame name not editable on dbl-click #7037

  • Polyfill Element.replaceChildren #7034

Refactor

  • DRY out tool typing #7086

  • Refactor event globals to differentiate from lastPointerUp #7084

  • DRY out and simplify setting active tool from toolbar #7079

Performance

  • Improve element in frame check #7124