Only the listed sites may sign in with {{ dialog.data.rp_id }} passkeys. Wildcards may be used: **.{{ dialog.data.rp_id }} allows the whole domain, *.{{ dialog.data.rp_id }} only a single subdomain level. 🔗 means related host requiring WebAuthn ROR setup. 🔑 is the dedicated Paskia host for all account management.
-
-
Some entries are invalid — check for typos in the hostname; a bare '*' or '**' is not allowed, and wildcards only within the domain.
-
Some sites are unreachable — make sure they are routed to this instance.
-
Some sites are reachable but do not serve this domain.
-
At most 5 related origins are allowed ({{ relatedEntries.length }} listed) — the save is rejected.
-
Saving would lock you out: {{ lockoutWarning }} could no longer run sign-in ceremonies for this domain. Keep it listed, or mark an auth host.
-
@@ -574,12 +586,6 @@ function onRemoveOrigin(i) {
{{ wellKnownJson }}
-
-
Checking the published document…
-
✓ The published document lists all related origins.
-
The published document does not list: {{ (dialog.data.wellKnownMissing || []).join(', ') }}
-
Could not fetch the published document to verify it.
-
diff --git a/frontend/src/assets/style.css b/frontend/src/assets/style.css
index ba1fafd..f5557ca 100644
--- a/frontend/src/assets/style.css
+++ b/frontend/src/assets/style.css
@@ -490,6 +490,22 @@ th {
left: 0;
}
+/* The diagnostics panel attaches below the dialog, so feedback appearing
+ or disappearing never shifts the dialog's layout or position */
+.diag-panel {
+ position: absolute;
+ top: calc(100% + 0.5rem);
+ left: 0;
+ right: 0;
+ background: var(--color-dialog);
+ border: 1px solid var(--color-border);
+ border-radius: var(--radius-lg);
+ box-shadow: var(--shadow-xl);
+ padding: var(--space-md) var(--space-lg);
+ max-height: 30vh;
+ overflow-y: auto;
+}
+
.icon-btn {
background: none;
border: none;
@@ -599,6 +615,12 @@ th {
padding: 1.5rem;
}
+/* Positions attachments (e.g. the diagnostics panel) relative to the
+ dialog; shrink-wraps the panel in the overlay's flex layout */
+.modal-wrap {
+ position: relative;
+}
+
.device-dialog,
.modal {
background: var(--color-dialog);
diff --git a/frontend/src/components/Modal.vue b/frontend/src/components/Modal.vue
index a918fbc..7508630 100644
--- a/frontend/src/components/Modal.vue
+++ b/frontend/src/components/Modal.vue
@@ -1,7 +1,10 @@