From ba395b2f5a27ead31e425acf4bf346c587540b08 Mon Sep 17 00:00:00 2001 From: SandObserver <260779319+SandObserver@users.noreply.github.com> Date: Tue, 11 Aug 2026 18:57:48 -0400 Subject: [PATCH] Fix: stop the importer losing sections and refusing valid configs The YAML subset refused a flow collection only after a key, so one written as a sequence element parsed into a mapping built from its brace and first key, and the section vanished from the import with no skip recorded. The anchor refusal tested the whole line, including values, so ordinary text containing * or & refused the file. A sequence element indented with more than one space after the dash threw on its continuation keys. The converters passed over a malformed top-level group and a Dashy section carrying no readable items, both without recording a skip, so a mangled file imported smaller than it was with nothing in the preview saying why. The dialog focus trap listened on the dialog element, which cannot hold focus, so a click on text inside it sent Escape and the Tab wrap to the document and neither worked. The backdrop dismissed on any click ending on it, including a text selection released past the edge of the dialog. --- CHANGELOG.md | 3 + ui/admin/index.html | 2 +- ui/index.html | 2 +- ui/js/admin.js | 6 +- ui/js/dashboard.js | 6 +- ui/js/dialog.js | 9 +- ui/js/import-foreign.js | 42 ++++-- ui/js/modal.js | 14 +- ui/js/spotlight.js | 2 +- ui/js/ui.js | 2 +- ui/js/yaml-lite.js | 53 +++++-- ui/test/dialog.test.mjs | 33 ++++- ui/test/import-foreign.test.mjs | 41 ++++++ ui/test/modal.test.mjs | 243 ++++++++++++++++++++++++++++++++ ui/test/yaml-lite.test.mjs | 50 +++++++ 15 files changed, 464 insertions(+), 44 deletions(-) create mode 100644 ui/test/modal.test.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 52a7d8f9..c3e00823 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,6 +63,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The password and Unsplash key status labels are translated instead of always reading in English. +- Escape and the Tab trap keep working in a folder or prompt overlay after + clicking text inside it. + ### Security - A stored credential is only reused for the request it was saved for. diff --git a/ui/admin/index.html b/ui/admin/index.html index ef5fcf49..35386184 100644 --- a/ui/admin/index.html +++ b/ui/admin/index.html @@ -285,6 +285,6 @@