Credits
Penpal gratefully uses the following third-party code, under MIT license:
BezierJS by Pomax - for general Bezier magic.
fit-curve by Aleksandr Motsjonov - for the Simplify function to optimise bezier paths.
DragSelect by Thibault Jan Beyer - for selecting elements in the canvas by dragging.
SweetAlert2 by various contributors - for alerts and tooltips.