The cups history looks like it was last “really” developed in 2015ish. There were a few PRs made since then but is really more of a wrapper than anything else. Cupsffi seems to provide more of a Ruby interface.
I think that this is where importmaps adds a bit of confusion. It's only going to pin the javascript assets and won't include the CSS bits of the library. Have you tried adding CSSbundling to import in the CSS assets?
This is in part why I prefer esbuild via jsbundling-rails over importmaps. It seems like it brings the familiarity of the asset pipeline (either via sprockets or propshaft) and what we've become accustomed to with Webpacker, but without all of the headaches.
Typically I do put classes that do not touch database records in a different folder. However, the organizational bit really depends on the team that is developing the app. We very well could have put the twitter and printer classes in a "services", "business_domain", or similar kind of folder.