- Common: Disable invariant assertions by default
- Android: [API breaking change] Add support for mentions
- Common: Read attributes from markdown for mentions
- Common: [API breaking change] Add extra HTML attributes parameter to all link creation APIs
- Common: [API breaking change] Rename
link
parameter tourl
wherever it's relevant - iOS: Expose
set_content_from_markdown
to the hosting application
- iOS: Disable autocorrection if current input is a command
- iOS: Fix an issue with code blocks NBSP placeholder not being replaced on display
- Common: [API breaking change] Change signature of
set_link_suggestion
function to take an attributes argument
- Web: Fix selection issue when formatted text is inside paragraph adjacent to a list
- Web: Prevent memory issues when using
replace_text_suggestion
function
- Common: Fix behaviour when deleting after the first of multiple mentions
- Web: Fix memory managment issue for mentions
- Common: Enable link attribute parsing
- Common: Link button disabling logic exists for immutable links
- Common: Backspace/delete behaviour now handles immutable links
- iOS: Swift-tools-version bump from 5.6 to 5.7
- Web: Selection logic now handles immutable links
- Common: Autocompleted links now have extra attributes when representing a custom link type
- Common:
replace_text
now defaults to writing outside of link label when on edge - iOS: Content of the
UITextView
for the plain text mode is now published - iOS: Updated
PermalinkReplacer
API to allow inserting/removing custom objetcs in the attributed string in plain text mode
- iOS: Fix link button availability around replaced links
- iOS: Fix index computation around multiple replaced links
- iOS: Fix attachment views sometimes not clearing when switching to plain text mode
- iOS: Fix publishing height updates of the composer in plain text mode
- iOS: Remove
select
Rust API call in plain text mode
- Web: Change type of suggestion exported by hook
- Common: Detection for at/hash/slash pattern in text
- Common: API for replacing a detected pattern with link/text
- Web & iOS: Support for inserting mentions/commands
- Common: Set content with HTML/Markdown now returns a
Result
- Common: Fixed creating a list from a selection containing quotes/code blocks
- Common: Fix leading whitespaces ignored by HTML parsing
- iOS: Fix trailing whitespace ignored after a link
- iOS: Fix selection/cursor position after lists
- Common: Add utility to get content as plain text
- Web & iOS: Hide indent/unindent buttons outside of lists in example app
- Android: Update NDK version to r25c (LTS)
- Android: Allow subclassing
EditorStyledTextView
- Common: Recover from Rust model panics
- Web: Don't rerender when testRef is not set
- iOS: Fix pending formats not reapplied in new list item after
enter
- iOS: Improve composer content vertical spacing
- Common: Add transaction functionality to Dom
- Web: Add cmd-e shortcut for inline code
- Web: Add soft delete line backwards implementation
- Common: [API breaking change] Rename UnIndent as Unindent
- iOS: Set BlockStyle parameters as public
- iOS: Update padding and style of quotes and code block
- Common: Fix code block HTML rendering
- Common: Fix links creation panicking when empty nodes are within the range
- Common: Fix enter behaviour on empty list item with formatting
- Common: Fix menu state in empty formatted paragraphs/list items
- Common: Fix parent
li
paragraph hierarchy after backspacing an indentedli
- Web: Handle insertReplacementText input event
- Web: Fix cursor positioning issue when splitting a node into paragraphs
- Web: Fix Ctrl/cmd-a behaviour
- Android: Fix test coverage configuration
- Android: Fix rendering of code with trailing new line
- iOS: Fix line indent after quotes & code blocks
- Common: Add utility to build the array of ancestor handles from a handle
- Web: Add indent and unindent
- Android: Fix crashes in
EditorStyledTextView
- Common: Add
<pre>
,<code>
and<p>
handling to html parsers - Common: Add clippy to CI
- Android: Add configuration options for code size in inline code and code blocks
- Common: Paragraphs are now contained inside
<p>
tags - Common: Further improve link behaviour when spanning block nodes
- Common: Leading and trailing empty paragraphs inside
<pre>
tags will now contain
HTML entity - iOS: Use ZWSP in place of
in some places to allow block rendering - iOS: Improve code utilities for writing Swift tests
- Common: Apply clippy fixes to all files
- Common: Fix parsing of HTML tags containing only
HTML entity - Common: Fix button state behaviour when creating nested lists
- Common: Fix button state behaviour when starting inline code
- Web: Add editor HTMLElement parameter to inputEventProcessor
- Common: Improve link behaviour when the selection contains block or structure nodes
- iOS: Integrate DTCoreText
- Web: Add quotes
- Common: Disable lists, inline code and links inside code blocks
- Common: Blank selections allow the user to create links with text
- Web: Fix isWysiwygReady
- Web: Add code blocks
- iOS: Add live document tree to example app
- Android: Add code block styling
- Android: Add helpers for inline code styling
- Common: Default to https:// or mailto: for links without schemes
- Common: Fixed a bug that created links with generic empty nodes in some cases
- Web: InputEventProcessor is called on keyDown event
- iOS: Add Quote/code blocks integration
- Common: Add parsing of code blocks and quotes to the WASM HTML parser
- iOS: Add attributed string to html mapping for lists with ZWSP
- Android: Add inline code formatting
- Android: Make bullet size configurable
- Android: Add code blocks & quotes to the example app
- Common: Fix creating lists with a leading line break
- Common: Fix selection state after toggling off list
- Web: Add removeLinks and getLinks method
- iOS/Android: Code block & quote bindings
- Common: Code block & quote fixes
- Common: List behavior improvements
- Android: Fix special character handling
- Common: Add TS types to exports for new conversion functions
- Common: Add ability for links to wrap existing elements
- Common: Change RELEASE.md to reflect changes to iOS build script
- iOS: Change iOS build script to increase automation
- Common: Fix edge case performance in
model.state.dom.insert_parent
- Common: Add support for ZWSP in code blocks
- Common: Add conversion functions to convert between rich and plain text
- Common: Add
insert_parent
DOM method - iOS: Show background colour of inline code in the composer
- Common: Change uses of ZWSP to be new DomNode type
- Common: Change
CharType
enum to remove ZWSP - iOS: Change tapping on a link to highlight the link, not open it
- Common: Fix disabling inline code then typing not reordering nodes
- Web: Add link APIs
- Common: Add DomLocationPosition helper
- Common: Add code block support
- Common: Fix issues with line breaks at the start and end of code blocks
- Common: Fix for a bug where attributed string keeps format style for links and inline code after deletion
- iOS: Fix link color
- Common: Add extension to character to create ZWSP easily
- Common: Add 'remove word' functionality
- Common: Extended selection/range for DOM
- Common: Add DOM handle depth helper
- iOS: Add links implementation in the example app for testing
- Android: Add link APIs
- Common: Change link interface to use string
- Common: Make
find_range_by
work symmetrically - Common: Lookup and join ancestor on join nodes
- Web: Add
insertText
method in available functions - Common: Add extension to character to create ZWSP easily
Common & iOS: Remove the Rust & Uniffi version duplication from publish.yml Common: Change Rust panic behaviour from abort to unwind
- Android: Fix crashes in ElementX on config changes
- Common: Fix dom location length with nested tags
- Common: Fix crashes when
replace_text
is called
- Common: inline code formatting now works for selections with several nodes, also, formatting states are disabled when inline code is selected.
- Common:
DomLocation
now haskind()
method to make finding nodes of some kind easier in ranges. - Common:
DomIterator
can now be used in a sub-tree of the DOM (from an internal node instead of the root one).
- Common: when replacing text at the end of a link node, the new text is added to the next text node if exists instead of the link node.
- Android: fixed formatting disappearing from the last typed word when adding a whitespace.
- Web: Handle insertCompositionText as if it were insertText (hopefully fixing accented characters in Element Desktop)
- Common: update to Rust 1.65 and uniffi-rs 0.21.0.
- Common: internal refactor.
- Common: MenuState updates are now always returned when we change some content.
- Common: new API for retrieving parent nodes:
Dom.parent(&child_handle)
andDom.parent_mut(&child_handle)
.
- Common:
Dom
is now iterable. - Common: links can now be added to several nodes and updated.
- Android: add Markdown support.
- Android: add
RustErrorCollector
to be able to collect and treat any Rust errors manually in the integrating clients. - Web: added debug mode.
- Android: text input is now diffed so we don't rely on composition, as it sometimes broke formatting.
- iOS: Voice dictation should work now.
- Common: MenuState updates now contain a single Map/Dictionary with an entry for each possible action, being either
Enabled
,Disabled
orReversed
.
- Common: initial Markdown support.
- Common: added get/set methods for Markdown text (
set_content_from_markdown
,get_content_as_markdown
). Also added a getter for HTML contents (get_content_as_html
). - iOS: added plain text mode with Markdown support.
- iOS: expose
maxExpandedHeight
andmaxCompressedHeight
properties inWysiwygComposerViewModel
. - Web: added
prettier
config toeslint
.
- Common: prevent crash when deleting an emoji or other complex grapheme.
- Common: fix html5ever output when a text node contains escaped HTML entities.
- Android: fixed
TextWatcher
s being called with an empty String for every change in the composer. - Android: fixed back system key being intercepted by the editor, preventing back navigation.
- iOS: fixed bold + italic formatting not being correctly rendered on iOS 14-15.
- iOS: fixed bug when deleting whole words with long press on backspace.
- iOS: fixed missing keystrokes when the user typed very fast.
- iOS: fixed the editor contents being cleared when plain text mode was enabled.
- Common:
replace_all_html
is nowset_content_from_html
. - Web: use native
DOMParser
instead ofhtml5ever
to parse HTML. This should decrease the WASM binary size. - Web: reduced WASM binary size by 76%.
- Android: Add plain text APIs
- Android: Fix issue with hardware backspace key
- Web:
useWysiwyg
hook can be initialized with a content
- Web: Fix losing selection after Ctrl-a Ctrl-b
- iOS: Show placeholder text
- Web: allow instantiating multiple composers
- Android: code improvements
- Web: Allow pressing Enter to send message
- iOS: use correct fonts
- iOS: add support for focused state.
- Android: handle cut & paste events properly.
- Android: only crash on composer exceptions when using DEBUG mode.
- iOS: use right cursor color and fix blinking issue when replacing text.
- Fix inserting characters or new lines before a new line at index 0.
- Android: fix formatting not being replaced at index 0 when using hardware keyboard.
- iOS: remove unneeded UIKit integration code.
- Web: Add formatting states
- Web: Remove onChange handler and return the content instead
- Web: support cut and paste
- Document release process
- NPM releases via a manual github workflow
- Improve React integration
- First attempt at packaging for NPM
- Basic text editing (newlines, bold, italic etc. formatting)
- Draft support for lists
- Draft support for links