0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-22 07:13:08 -05:00
Squire/CHANGELOG.md
Neil Jenkins fe0dfdf6c4 Squire 2.0
This is a massive refactor to port Squire to TypeScript, fix a bunch of small
bugs and modernise our tooling. The development was done on an internal
repository, so apologies to anyone following externally for the commit dump;
updates from here should come as real commits again.

Co-authored-by: Joe Woods <woods@fastmailteam.com>
2023-01-23 13:18:29 +11:00

2.5 KiB

Changelog

All notable changes to this project will be documented in this file, starting from v2.0.0.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.0.0] - 2023-01-23

Added

  • Builds as an ES module.

Changed

  • All code ported to Typescript and ES modules for compatibility with modern frontend projects and future maintainability.
  • New off-the-shelf tooling for the build process and code quality assurance.
  • Config option sanitizeToDOMFragment no longer takes an isPaste argument.
  • Custom events (e.g. pathChange) use the browser native CustomEvent class, which means the custom properties (e.g. path) are now available on the detail property of the event object, rather than directly added to the event object.
  • When the user pastes an image, instead of simulating drag/drop events, Squire now fires a custom pasteImage event, with a clipboardData property on the detail
  • When there is a selection and you paste text that looks like a URL, it will now make the selection a link rather than replacing it with the URL text.
  • In the object returned by the getFontInfo method, the font size property is now called "fontSize" instead of "size", and the font family property is now called "fontFamily" instead of "family". This means all properties now use the same name as in the CSSStyleDeclaration API.
  • The key function for setKeyHandler now uses the same names (including case) as the KeyboardEvent.key property (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). For example, "enter" is now "Enter" and "left" is now "ArrowLeft".

Fixed

  • Fixed iOS autocorrect/text substitution fails to activate when hitting "enter".
  • Fixed Samsung keyboard on Android causes bizarre changes to the input, making it unusable.
  • Fixed bug trimming insignificant trailing white space, which could result in some formatting actions behaving oddly.
  • Fixed spaces "vanish" sometimes after deleting text.

Removed

  • Support for any version of IE.
  • Support for using an iframe document as the editor, rather than just a normal DOM node.
  • Support for using it without an HTML sanitiser - this is essential for security, so it's now required.
  • isInsertedHTMLSanitized and isSetHTMLSanitized config options - as per the above, the HTML is always sanitised on insertion for security.