Do ESM module imports work from a browser?
It depends. If you're going to use SCI async then you can make this work. https://github.com/babashka/sci/blob/master/doc/async.md
If you want better ESM support you might want to look at #cherry or #squint https://github.com/squint-cljs/cherry/blob/main/doc/embed.md is kind of overlapping with the SCI use case
and does ^:export work?
No. You can manually add a CLJS function onto the global state though, with
(set! (.-my_alert js/window) my-alert)