Usage
@prepared911/ui/portal in the app that owns the trigger document, and load @prepared911/ui/styles.css once at the document root.element from the trigger ref (or container when the mount node is known). Portal never uses the global document.body without resolving the owner document first.Portal when React must render outside a DOM parent in the trigger's document, including hosting a <dialog> or popover whose React owner lives elsewhere. Stacking, inertness, and light dismiss still come from showModal() or popover after the node is in the correct document.popup-surface-overlay or popup-surface-modal from tailwind/recipes.css on the portaled shell through colocated .tw.css, not utility strings in className.