The "Palette" in this sample is not a Palette (or GoJS component) at all. It is a collection of HTML elements with draggable attributes using the HTML Drag and Drop API.

This sample lets you drag these HTML elements onto the Diagram to create GoJS nodes. As the mouse passes over stationary nodes or links in the Diagram, they are highlighted.

If a drop happens (based on the mouse point) on an existing node, a new link is also drawn from that existing node to the newly dropped node. If a drop happens on an existing link, the link is reconnected to go to the newly dropped node, and a new link is added to go from that newly dropped node to whatever node the link had been connected to before.

This sample also demonstrates allowing external clipboard pasting, by modifying myDiagram.commandHandler.doKeyDown to do nothing but allow the event to bubble, and then defining a "paste" event on the document. So the user can select some text, either on the page or in some other app, and then a paste in the diagram will create a new node using that text.