Added
- New `waterfall` trace type [[3531](https://github.com/plotly/plotly.js/pull/3531), [#3708](https://github.com/plotly/plotly.js/pull/3708)]
- New `sunburst` trace type [[3594](https://github.com/plotly/plotly.js/pull/3594)]
- Add attributes `node.x` and `node.y` to `sankey` traces [[3583](https://github.com/plotly/plotly.js/pull/3583)]
- Implement `connectgaps` on `surface` traces [[3638](https://github.com/plotly/plotly.js/pull/3638)]
- Implement `hovertemplate` for `box` and `violin` points [[3685](https://github.com/plotly/plotly.js/pull/3685)]
Changed
- Display hover labels above modebar, ensuring that the hover labels
are always visible within the graph div [[3589](https://github.com/plotly/plotly.js/pull/3589), [#3678](https://github.com/plotly/plotly.js/pull/3678)]
Fixed
- Fix horizontal legend item wrapping by pushing overflowed items to newline [[3628](https://github.com/plotly/plotly.js/pull/3628)]
- Fix erroneous gap for histogram under relative `barmode` [[3652](https://github.com/plotly/plotly.js/pull/3652)]
- Fix position of overlapping grouped bars within trace [[3680](https://github.com/plotly/plotly.js/pull/3680)]
- Fix `violin` `bandwidth` logic for traces with identical values in sample [[3626](https://github.com/plotly/plotly.js/pull/3626)]
- Fix `violin` trace `scalegroup` description [[3687](https://github.com/plotly/plotly.js/pull/3687)]
- Fix stacked scatter for groupby traces [[3692](https://github.com/plotly/plotly.js/pull/3692)]
- Fix outside text on empty items in `bar` traces under `textposition: 'outside'` [[3701](https://github.com/plotly/plotly.js/pull/3701)]
- Fix `pie` un-hover event emission after updates [[3662](https://github.com/plotly/plotly.js/pull/3662), 3690]
- Fix `scatter` line decimation algo for filled trace with far-away data points [[3696](https://github.com/plotly/plotly.js/pull/3696)]
- Fix `heatmap` and `contour` computation for traces with category coordinates containing `0` [[3691](https://github.com/plotly/plotly.js/pull/3691)]
- Fix zoom interactions on gl3d subplots using an orthographic projection [[3601](https://github.com/plotly/plotly.js/pull/3601)]
- Fix miscellaneous gl3d camera on-initialization bugs [[3585](https://github.com/plotly/plotly.js/pull/3585)]
- Fix `surface` contour line rendering in some Firefox versions [[3670](https://github.com/plotly/plotly.js/pull/3670)]
- Fix rendering of marker points and gl3d subplots on date axes (or with coordinates close to 64K floating limits)
for WebGL-based traces on some iOS devices [[3666](https://github.com/plotly/plotly.js/pull/3666), [#3672](https://github.com/plotly/plotly.js/pull/3672), [#3674](https://github.com/plotly/plotly.js/pull/3674), [#3676](https://github.com/plotly/plotly.js/pull/3676)]
- Fix center-aligned hover labels positioning [[3681](https://github.com/plotly/plotly.js/pull/3681)]