Releases: michael/svedit
Releases · michael/svedit
0.6.4
- fix: Run oncut/oncopy/onpaste handlers only in edit mode
- fix: Do not extend an annotation when the caret is exactly at its start
- fix: Make sure text-transform is always disabled when a TextProperty is editable and focused
- demo: Type switcher now does nothing if there's only one type to switch to
Full Changelog: v0.6.3...v0.6.4
0.6.3
- fix: Expose node ids via id attribute, enabling deep linking
- fix: Revert to caret-shape: bar (caret-shape: block doesn’t feel nice)
Full Changelog: v0.6.2...v0.6.3
0.6.2
- fix: Selection mapping was wrong when last character is a newline and cursor is placed after
- fix: Negative tab-index for the Svedit canvas element (avoids accidental scrolls to the top of the canvas)
- fix: Make NodeCursorTrap render correctly in Firefox
Full Changelog: v0.6.1...v0.6.2
0.6.1
- fix: Ensure selection direction is preserved in when rendering text selections
- fix: Do not render selection highlight span for collapsed cursors, as this breaks Safari cursor navigation in empty nodes (see https://bugs.webkit.org/show_bug.cgi?id=304143)
Full Changelog: v0.6.0...v0.6.1
0.6.0
- feat: Opt-in batching of history entries
- feat: Set custom tag and class for Node / AnnotatedTextProperty / CustomProperty
- feat: Each change now yields a new document (session.doc) using copy on write making them immutable
- feat: New Command API that introduces custom command state (e.g. active state for annotation toggles)
- feat: Introduce KeyMapper for handling key combos on both app level and inside a Svedit scope
- feat: Render selection highlight for text selections to be used as an anchor for overlay positioning.
- feat: Add comprehensive API docs in README.md
- breaking: Serialization format now corresponds 1:1 with session.doc
- breaking: Equivalent, transparent, and fully controllable DOM structure (Node / AnnotatedTextProperty / CustomProperty) in read and edit mode.
- breaking: Removed Document in favor of Session, which holds a doc, selection and history (all immutable).
- fix: Handle text replacements at onbeforeinput stage (no more DOM leaking/diffing/recovery)
- fix: Stabilized character composition (relying only on oncompositionstart, oncompositionend, no more DOM diffing)
- fix: Annotation nodes are now properly disposed on tr.insert_text (when the selection is wrapping annotations)
- fix: Ensure sure annotations can not be created on a collapsed range
- fix: Fixed a series of bugs related to composition events on Android
- fix: Also handle input types ‘deleteWordBackward’, ‘deleteWordForward’, and ‘deleteContent’ which are fired by Mobile Safari
- fix: Rollback DOM at oncompositionend stage, enabling incremental re-rendering (no keyed block needed anymore).
Full Changelog: v0.5.0...v0.6.0
0.5.0
- feat: much improved copy & paste experience
- feat: image pastes from the file system can now be handled via handle_image_paste
- feat: automatically transform text nodes to other types if needed (e.g. pasting paragraphs into a list will turn them into list_items)
- feat: default values can now be specified in property definitions
- breaking: tr.insert_nodes now takes an array of node ids, which may have to be created with tr.create before
- fix: node selections are only copied when they are valid within the target, and are otherwise rejected
- fix: text annotations are now part of the copy payload
- fix: plain text payload for external copies is now correct
- fix: Much improved HTML export with a new default html exporter that only considers annotated_text properties
Full Changelog: v0.4.0...v0.5.0
0.4.0
- breaking: In a node schema properties are now defined inside a properties key.
- breaking: annotations are now modeled as nodes too
- breaking: doc.kind() got replaced with schema[node_type].kind
- breaking: annotated_string renamed to annotated_text and represented as an object rather than a tuple
- fix: when setting a selection it will be first validated (out of bound errors, etc.)
- fix: layout selector now also available when selection is in a child of the layout owner node
- feat: specify which annotations are allowed for an annotated_text property
- feat: specify if newlines are allowed in an annotated_text property
- demo: introduce a new ‘highlight’ annotation type in the Svedit demo
Full Changelog: v0.3.0...v0.4.0
0.3.0
- feat: Experimental support for editing on mobile platforms (iOS, Android)
- fix: Support character composition via dead-keys and long-press
- fix: Consider multi-byte characters and emoji grapheme clusters
- fix: Support auto-complete, auto-correct, native spellchecking, and predictive text
- fix: Improve cross-browser editing compatibility
- fix: Fix a bug related to annotation transformations
- fix: Support native formatting events (bold/italic)
- fix: Selection mapping incorrect when text ends with a
<br>and cursor is right after - fix: Cross-browser clipboard, using HTML-encoded payload
- fix: Show native selection in mobile and in browsers that don’t yet support CSS Anchor Positioning
Full Changelog: v0.2.0...v0.3.0
0.2.0
- breaking: NodeCursorTrap has different structure now (adapt from updated NodeCursorTrap reference implementation)
- breaking: bind soft breaks to Alt+Enter instead of Shift+Enter
- fix: blinking node-cursor was creating additional cursor positions.
- fix: catch a few more edge cases in node-selection mapping
- demo: small layout tweaks
Full Changelog: v0.1.1...v0.2.0
0.1.1
- fix: offset correction for focus_offset/anchor_offset when after-node-cursor-trap is wrongly associated with the predecessor node.
Full Changelog: v0.1.0...v0.1.1