Whenever you drag & drop a widget from such a package onto your form, the IDE recognizes this and will automatically copy these resources into your project folder. So if you want to create an app that use Vue.js fancy HTML5 controls, everything you need is copied into your project when you compile. The package file itself is only useful for the IDE, so you dont have to ship that with your website, mobile application or service.
I should also mention that packages are ordinary zip files that use a ‘dpk’ extension rather than ‘zip’. The zip file-format is well established to the point of universal acceptance at this point, so introducing a new binary format in 2022 would be pointless and just result in unnecessary maintenance. Everyone knows how to create a zip file, and this makes it so much easier to expand the IDE with new widgets.
So the QTX form designer is not like, say, Macromedia Dreamweaver, where you essentially work directly with the HTML itself. There is no HTML to edit because it’s all created at runtime. You can write or inject HTML of-course, or load it at runtime, including stylesheets and whatever else. The RTL tries very hard to not interfere with the natural order of things, so you are not forced to use QTX only. In fact, several wrappers for popular libraries have already been implemented.
There is also no resource loading (like Delphi loads the .DFM files at runtime), instead the IDE converts your form files into pascal code during compile-time. This ensures that everything follows ordinary OOP inheritance rules, and that there are no delays of having to wait for a resource to be loaded from the server (you can also convert images and binary files into code if needed).