system.cssthe engine GitHub

Dialogs on a live page

Dialogs on a live page

Every <dialog> on a land-and-stream page carries data-preserve-attr="open" (Mike, 2026-09-17). A push from the stream morphs the whole page; without the preserve, the morph resets the open attribute and the dialog closes under the person mid-form for a reason they cannot see. The contact and vote dialogs are the exemplars.

Local draft state in a public dialog rides _-prefixed signals (off the wire) kept by the Pro persist plugin — data-persist:contact="{include: /^_contact\./}" on the form, the submit handler clearing them and setting the dialog's own _sent flag (__ifmissing, so a push cannot reset it) — view/layout.templ, gf-358.