For panels, the docs state:
Panels are interface elements displayed above or below the editor. They use sticky positioning to stay in view even when the editor is partially scrolled out of view. They are a good way to display things like dialogs, status bars, and menu bars.
Excellent! Is there value in:
leftandrightpositioning in addition totop?- an option to stack multiple panels and tab between them?
- a way to access open panels to dynamically determine layout? I went down the rabbit hole to see how to do this, but it looks like you need access to
panelPluginor the panel’s constructor. - a way to override panels rendering, similar to menubar?
For dialogs, the docs state:
Dialogs are panels opened as a side-effect, and closed by user action.
…
The result should contain at least one
<form>element.
Why? I can see uses for inspecting attributes like blame tracking. Closable status bars seem good to me.
Looking through the source to try to understand, I see a lot of inflexible form handling code – like adding wg-* classes, input names, buttons, and event handlers for keydown and onsubmit.
Extensible form builders are nearly impossible to get right. Is there really a need for a form builder, or can it be left to the user? Removing this code could allow for the form constraint to be lifted.