## Summary of the Pull Request
Replaces the `warning.confirmCloseAllTabs` setting with a
`warning.confirmOnClose` enum setting that accepts the following:
- `never`: don't present a warning dialog when closing a session
- `automatic`: present a warning dialog when closing multiple tabs/panes
at once
- `always`: present a warning dialog when closing any session
The confirmation dialog contains a "don't ask me again" checkbox. When
checked, we update the setting to `never`.
This setting also affects the following actions:
- "close other tabs"
- "close tabs after"
- "close other panes"
- "quit"
The appropriate confirmation dialog is shown in these scenarios. We also
present an aggregate dialog instead of prompting the user once per
tab/pane. If there are no other tabs/panes, we don't present a dialog
and treat the key binding as unhandled (passing the key through).
## References and Relevant Issues
Iteration of #19944
## Validation Steps Performed
- closing a tab:
- ✅ 1 pane --> no dialog
- ✅ 2 panes --> dialog
- ✅ action and middle clicking tab trigger same flow
- close all other tabs:
- ✅ no other tabs --> no dialog
- ✅ 1 other tab --> dialog
- close all other panes:
- ✅ 1 pane --> no dialog
- ✅ 2 panes --> dialog
- close all tabs after the current tab:
- ✅ no tabs after --> no dialog (even if tabs before)
- ✅ 1 tab after --> dialog
- close window:
- ✅ 2 tabs --> dialog
- ✅ 2 panes --> dialog
- ✅ 1 tab with one pane --> no dialog
- Quit the Terminal:
- ✅ 3 windows --> dialog
- ✅1 window --> dialog
- ✅ "don't ask me again" checkbox checked --> setting changed to "never"
- ✅ "never" --> no dialog for scenarios above
- ✅ "always" --> dialog always appears, even when closing a single pane
## PR Checklist
Closes#5301Closes#6641
"don't ask me again" checkbox is also mentioned in #10000
Co-authored by @zadjii-msft
## Summary of the Pull Request
Implements an `InteractionViewModel` for the Interaction page in the SUI
## PR Checklist
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
## Validation Steps Performed
Interaction page still works