All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.32.7 - 2025-09-28
- runtime error in certain marker creation flows
2.32.6 - 2025-07-18
- removed leftover debug code
2.32.5 - 2025-07-18
- indeterminate state when creating markers on touch devices and more than one touch point is present
2.32.4 - 2025-03-19
- deprecation notice to readme since v3 is now out
- when switching to select mode programmatically while new marker is being created active toolbar button isn't updated correctly
2.32.3 - 2024-10-06
- scrollbar is shown in color picker even when all colors fit without scrolling
2.32.2 - 2024-09-21
- deleting current marker while creating a new one results in a faulty state
2.32.1 - 2024-03-04
- marker events not firing on state-restored markers
2.32.0 - 2024-01-24
defaultTextsetting for modifying the initial text inTextMarkerbased markers
2.31.5 - 2024-01-14
- change how toolbox panel ids are set to enable unique ids when same panel is used multiple times (eg. color picker)
2.31.4 - 2023-12-11
role,aria-label,data-actionattributes to all toolbar and toolbox buttons
- color picker panel behavior to scroll when all the colors don't fit
2.31.3 - 2023-11-30
markercreateevent received a next (not yet finished) marker as an argument in thenewFreehandMarkerOnPointerUp=truescenario for Freehand markers.
2.31.2 - 2023-10-30
- popup moves off-screen after editing text in Safari on iOS
2.31.1 - 2023-09-30
- incorrect positioning when
uiOffsetLeftwasundefined statechangeevent was sometimes fired on zooming
2.31.0 - 2023-09-16
Settings.uiOffsetLeftproperty to manually adjust placement of the UI horizontally.
2.30.1 - 2023-09-05
wrapTexttoTextMarkerState(not used in marker.js but needed for mjs Live).
wrapTextwasn't applied when restoring state.
2.30.0 - 2023-09-04
- text wrapping option in text based markers. Set
settings.wrapText = trueto enable.
- incorrect text positioning in RTL mode
2.29.10 - 2023-09-01
inlinemode image margin logic was applied topopupmode as well
2.29.9 - 2023-08-22
- null reference exceptions on resizing in some cases
2.29.8 - 2023-08-21
- incorrect placement of markers when used inside a scaled parent element
2.29.7 - 2023-08-16
- in popup mode some property panels would extend beyond the UI boundaries
2.29.6 - 2023-08-01
- missing strokes with Apple Pencil
2.29.5 - 2023-07-24
titleandaria-labelattributes on toolbar buttons
2.29.4 - 2023-06-12
- (third attempt) markers not removed from instance when closing and reopening the same MarkerArea.
2.29.3 - 2023-06-09
- (second attempt as this still wasn't fixed in some instances) markers not removed from instance when closing and reopening the same MarkerArea
2.29.2 - 2023-06-09
- markers not removed from instance when closing and reopening the same MarkerArea
2.29.1 - 2023-04-25
- incorrect arrow head placement on vertical arrows
2.29.0 - 2023-03-06
CaptionFrameMarker- rectangular frame marker with built-in text caption
2.28.1 - 2022-11-29
- resize observer isn't unobserving editor canvas in popup mode on close.
2.28.0 - 2022-10-24
Settings.uiOffsetTopproperty to manually adjust placement of the UI. See reference for the usage scenarios.
- UI placement algorithm adjusted to be more universal.
- UI was placed incorrectly when activating marker.js over a partially off-screen image.
2.27.0 - 2022-09-26
- public getter for
MarkerArea.currentMarker
- undo/redo removes defs from the underlying SVG
2.26.0 - 2022-09-12
isUndoPossible/isRedoPossibleproperties onMarkerArea- true when operation is possible
2.25.0 - 2022-09-06
- static
Styleto instance level style management viaMarkerArea.styles. WARNING: DOM-level "hacky" modifications may break.
2.24.0 - 2022-08-22
- switchToSelectMode() is now public enabling switching from code
- exception when switching to select mode with newFreehandMarkerOnPointerUp=true
- calling redo() from code caused corruption of the undo stack in some instances
- UI was incorrectly positioned when target image is inside absolutely positioned target root
- text editor is opening every time CalloutMarker tip was moved
2.23.0 - 2022-08-15
statechangeevent. Fired when the state of marker area changes.markerchangeevent - fired when marker state changes
markerdeleteandmarkerbeforedeleteevents weren't fired on clear all. Nowmarkerdeleteevent is fired for each marker andmarkerbeforedeleteis fired once withmarkerset to undefined.
2.22.0 - 2022-07-25
disableRotationsetting to disable the rotation feature on all markers
2.21.6 - 2022-07-18
- text markers were offset incorrectly when windows was resized while creating
2.21.5 - 2022-07-04
- markercreate event was fired too early on text-based markers. This caused unexpected side-effects when creating new markers from code on the event.
2.21.4 - 2022-05-10
- 'markerselect' and 'markerdeselect' events were fired on resize
2.21.3 - 2022-04-26
- undo step isn't registered when creating a marker from code
2.21.2 - 2022-04-21
- "ghost" control box is shown when creating a new marker from code on launch or when resizing while creating
2.21.1 - 2022-04-15
- delete button is not disabled after undo of the last remaining marker
- undo doesn't work after window resize
2.21.0 - 2022-04-07
addDefs()method for adding "defs" element to the marker SVG element. Useful for using custom fonts and potentially other scenarios. See documentation article on adding custom fonts for an example.
2.20.0 - 2022-02-22
- Settings.freehandPixelRatio to control resolution of the FreehandMarker
- toolbar loses currently selected marker type on resize
2.19.0 - 2022-01-31
MarkerArea.focus()andblur()methods andfocus/blurevents
- global event listeners weren't removed on close
- deleting a marker from keyboard didn't trigger delete events
2.18.0 - 2022-01-13
resultButtonBlockVisiblesetting determining if render (ok) and close buttons are visible (defaults to true)
- pasting rich text resulted in inconsistent results (now converts to plain text on paste)
2.17.2 - 2021-12-01
renderState()resulted in a UI blinking for a split second in some cases
2.17.1 - 2021-11-22
toolboxBackgroundColordidn't change the toolbox flyout color
2.17.0 - 2021-11-15
- renderState() method to render previously saved state without opening the UI
- createNewMarker can accept string as a marker type
- when new marker is created from code its type isn't reflected in the toolbar
2.16.2 - 2021-10-28
markercreateevent was fired before all related actions were completed
2.16.1 - 2021-10-28
- doc comments and readme sample used the old eventing system.
2.16.0 - 2021-10-27
- new and expanded event system with events for all kinds of MarkerArea and individual marker lifecycle events.
typeNameinstance property on markersisSelectedmarker property returning true if marker is currently selected
2.15.0 - 2021-10-15
- configurable zIndex for the whole UI
- a way to remove all markers (
clear()method) and a toolbar button (hidden by default) MarkerArea.addLicenseKey()proxy instance method for Activator.addKey()
- toolbars were rendered inside the target rectangle when inside
position: relativeparent, even if there was enough space on top
2.14.1 - 2021-10-13
- deprecated CSSStyleSheet
rulesandaddRule()members replaced with standardcssRulesandinsertRule
2.14.0 - 2021-10-06
- renderTarget property to specify a canvas for rendering the results to (in addition to rendering an image)
- ability to pass non-image target to the constructor (sizes UI according to the target and renders markers only)
- positioning of the logo (left (default) or right) in the free version
2.13.0 - 2021-09-28
- Zoom out button for one-click restoring to 100% zoom (enable via markerArea.uiStyleSettings.zoomOutButtonVisible)
2.12.0 - 2021-09-27
- Zooming feature (enable by setting markerArea.uiStyleSettings.zoomButtonVisible = true)
2.11.2 - 2021-08-26
- CurveMarker wasn't scaled properly when resizing
2.11.1 - 2021-08-09
- clicking on delete button for the second time resulted in exception
- setting properties on some marker types before drawing them caused exceptions
2.11.0 - 2021-08-04
- CurveMarker - quadratic Bézier curve marker support.
2.10.0 - 2021-07-27
- marker notes (UI off by default) - stored in MarkerBase.notes and state
- selected marker is kept selected after the window/target image resize.
2.9.0 - 2021-07-15
- optional
deselectCurrentMarkerparameter togetState()- when true deselects current marker before getting the state.
setCurrentMarker()to public so markers can be [de]selected programmatically
- Uncaught TypeError exception when restoring TextMarker in edit state
- color picker wrapping on smaller UI sizes
2.8.4 - 2021-07-05
- couldn't render image when text marker text ended in space (workaround: lines are trimmed before rendering now)
2.8.3 - 2021-07-02
- text is sized incorrectly in Safari
2.8.2 - 2021-06-01
- it's impossible to select text with a mouse in TextMarker
2.8.1 - 2021-05-26
- Freehand markers were added twice in newFreehandMarkerOnPointerUp mode
2.8.0 - 2021-05-26
- support for line width in Freehand marker.
- double-clicking on any toolbar button causes content selection
2.7.1 - 2021-05-20
- not working in the "legacy" Microsoft Edge (compatibility won't be officially maintained going forward).
- added feature check for ResizeObserver as it was causing exceptions on some browsers.
2.7.0 - 2021-05-05
- settings.defaultColorsFollowCurrentColors switch to maintain selected color for new markers.
2.6.2 - 2021-04-29
- keyboard wouldn't show up on Chrome on Android in some instances.
- popup wasn't sized correctly when content was larger than window size.
2.6.1 - 2021-04-13
- exception during undo of text markers
- redo stack was broken when clicking undo on an empty area
2.6.0 - 2021-04-13
- undo/redo functionality (redo button is hidden by default).
2.5.0 - 2021-03-17
- UI-less APIs. Create and delete markers from code, hide toolbar and/or toolbox.
- support for customizing icon color in action buttons (see IStyleSettings.selectButtonColor, deleteButtonColor, okButtonColor, closeButtonColor)
- touch behavior to pass multi-touch events to the browser (this way pinch-zoom of the whole page (and other events) are handled by the browser as expected).
2.4.1 - 2021-03-05
- hitting delete/backspace while editing text deleted text/callout markers
- text markers were not rendered when toolbar was clicked while editing text
2.4.0 - 2021-02-24
newFreehandMarkerOnPointerUpsetting to create a new free-hand marker one every pointer up event.- deleting markers with Delete or Backspace keys on a keyboard.
2.3.3 - 2021-02-10
IPointwasn't exported.
- internal refactoring of
RectangularBoxMarkerBaseand its descendants.
2.3.2 - 2021-02-01
- server-side builds failed due to static
Style.styleSheetRootdefaulting to document.head
2.3.1 - 2021-01-25
Style.styleSheetRootproperty to support Shadow DOM scenarios. Defaults to document.head.
- fix EllipseFrameMarker wasn't exported.
2.3.0 - 2021-01-19
- EllipseFrameMarker - unfilled ellipse.
- renderWidth/Height to set specific rendering dimensions.
- text editing on long-press (TextMarker, CalloutMarker).
- ellipse marker icon to a filled one for consistency.
- font-size setting on parent elements (eg. body) was affecting UI and renders.
- default-size callout marker was created with wrongly positioned tip.
- text wasn't editable on iOS devices (use long-press to edit).
2.2.0 - 2021-01-15
- responsiveness in
popupmode. Target image is now scaled to fit the whole available space for more convenient editing. popupMarginsetting to control margin between UI and window border in popup mode.canvasBackgroundColorsetting to control editing canvas in popup mode
- z-index in inline mode to a more modest value for easier integration in various layouts
- white toolbar/toolbox corners in inline mode.
- in popup mode when content didn't fit into window toolbars were cut.
- popup sizing issues in Safari.
- when resizing marker area was switched to select mode but toolbar wasn't.
- momentary flicker when rendering with
renderAtNaturalSize. - free-hand markers weren't rendered in Safari on the first try.
2.1.1 - 2021-01-11
- text editor was placed incorrectly after rotation and movement.
- fix longer single words caused text editor to go outside bounds
2.1.0 - 2021-01-08
- responsiveness while editing the markers and underlying image size changes.
- scaling of markers when opening previously saved markup of differing dimensions.
2.0.0 - 2021-01-05
- promoted RC7 to final 2.0
2.0.0-rc.7 - 2020-12-31
- support for transparent "color" in color picker (context dependent).
- EllipseMarker didn't respect the defaultFillColor setting [potentially breaking].
2.0.0-rc.6 - 2020-12-29
- opening popup editor after inline and vice versa caused styling issues.
- unnecessary rounded corners in popup mode.
2.0.0-rc.5 - 2020-12-22
- doc comments for better intellisense experience and class reference.
- Cover and Highlight markers didn't have typeName set making it impossible to request them by string and resulting in state restoration bug.
2.0.0-rc.4 - 2020-12-19
- changing UI styles affected all future MarkerArea instances.
2.0.0-rc.3 - 2020-12-19
- renderAtNaturalSize, renderImageType, renderImageQuality, renderMarkersOnly to control rendering results.
- trying to close() an already closed marker area caused an exception.
2.0.0-rc.2 - 2020-12-16
- public targetRoot property to set positioning root other than document.body.
- width/height to MarkerAreaState for future compatibility.
2.0.0-rc.1 - 2020-12-15
- Text marker style changes were not reflected while editing text.
- Target image sizing in Safari in some instances.
2.0.0-rc.0 - 2020-12-14
- internal build process issues.
2.0.0-beta.4 - 2020-12-12
- Active toolbar button icon color wasn't set by default.
- Exact fitting number of toolbar buttons still resulted in an overflow toolbar.
- Marker canvas sometimes was created with 0 height making it impossible to place markers.
2.0.0-beta.3 - 2020-12-11
- Custom styling issues
2.0.0-beta.2 - 2020-12-10
- Measurement marker.
- Context-aware cursor styles.
- Add toolbar/toolbox rounded corners.
- Add subtle UI animations.
- Exports for all externally relevant classes, interfaces, and types.
- Updated default colorset.
- Toolbox active button icon style wasn't set in default theme.
- Delete button is now context sensitive (disabled when no marker is selected).
- Rotated and moved rectangle-based marker positions were off on state restore.
- Removed debug messages.
2.0.0-beta.1 - 2020-12-08
- toolbar styling customization classes.
- property to manage available marker types (
availableMarkerTypes).
- box-sizing of the parent elements was distorting the UI.
- internal fixes.
2.0.0-beta.0 - 2020-12-02
- Line style toolbox (used in frame, line, arrow markers).
- Saving and restoring of state.
- Ellipse marker.
- Overflow toolbar for when marker buttons don't fit in the toolbar.
- Callout tip color wasn't changed together with the background color.
- Freehand marker wasn't "committed" unless explicitly switched to Select tool.
- Internal fixes.
2.0.0-alpha.2 - 2020-11-20
- Added Callout marker.
- Newly created markers default to their internally set sizes on simple click (with no dragging).
- Improved text positioning and sizing in TextMarker.
- Replaced text toolbox buttons with icons.
- Changed toolbox behavior from static to popup
- Initial public release.