A massive shout out to DockingFrames + jsyntaxpane + FlatLaf. Java libraries just don't get the love or attention they deserve. Docking Frames has solved the multi-windows in docks better than any JS library I've used or looked at. It's the only one I've seen allows grouping multiples by end users seamlessly and this was over 10 years ago. Sadly Swing/jsyntaxpane have been left to stagnate. They work but are beginning to miss functionality compared to more modern alternatives.
Language: Java, GUI: Swing, Docking framework: DockingFrames (LGPL)