Skip to content

Releases: michael/svedit

0.6.4

07 Feb 21:27

Choose a tag to compare

  • 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

07 Feb 21:26

Choose a tag to compare

  • 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

24 Jan 14:31

Choose a tag to compare

  • 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

16 Dec 16:15

Choose a tag to compare

  • 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

27 Nov 22:10

Choose a tag to compare

  • 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

01 Oct 20:11

Choose a tag to compare

  • 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

14 Sep 18:28

Choose a tag to compare

  • 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

03 Sep 19:35

Choose a tag to compare

  • 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

21 Aug 17:16

Choose a tag to compare

  • 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

19 Aug 20:36

Choose a tag to compare

  • 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