From ae9f0d92f3b0c50d7715ede99f9f7b66f2aa2d07 Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Mon, 27 Apr 2026 11:50:39 +0200 Subject: [PATCH 1/8] switch EmergencyBadge tooltip to popover with anchor positioning for mobile tap support --- .../emergencyaccess/EmergencyBadge.vue | 114 ++++++++++++++---- 1 file changed, 88 insertions(+), 26 deletions(-) diff --git a/frontend/src/components/emergencyaccess/EmergencyBadge.vue b/frontend/src/components/emergencyaccess/EmergencyBadge.vue index 174796e90..63ba5d097 100644 --- a/frontend/src/components/emergencyaccess/EmergencyBadge.vue +++ b/frontend/src/components/emergencyaccess/EmergencyBadge.vue @@ -1,34 +1,40 @@ + + From 39935ac32024e2dd472083dbff1ef016563766e1 Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Mon, 27 Apr 2026 14:40:47 +0200 Subject: [PATCH 2/8] simplify EmergencyBadge to warning/error types and drop position prop --- frontend/src/components/VaultList.vue | 6 +- .../EmergencyAccessVaultList.vue | 14 +-- .../emergencyaccess/EmergencyBadge.vue | 100 ++---------------- 3 files changed, 16 insertions(+), 104 deletions(-) diff --git a/frontend/src/components/VaultList.vue b/frontend/src/components/VaultList.vue index d7e4bff8f..c9b0e2063 100644 --- a/frontend/src/components/VaultList.vue +++ b/frontend/src/components/VaultList.vue @@ -95,17 +95,15 @@
diff --git a/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue b/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue index 4af0db197..ea8f6dae7 100644 --- a/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue +++ b/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue @@ -98,23 +98,20 @@
- - @@ -155,10 +152,9 @@
-
+
{{ title }}
{{ message }}
@@ -38,14 +38,14 @@ import { computed, ref, useId } from 'vue'; import { ExclamationTriangleIcon } from '@heroicons/vue/24/solid'; const props = defineProps<{ - type: 'notCouncil' | 'broken' | 'noRedundancy' | 'insufficientCouncilMembers' | 'none'; + type: 'warning' | 'error'; title: string; message: string; - position?: 'center' | 'left' | 'right'; }>(); const anchor = `--ea-anchor-${useId()}`; -const panel = ref(null); +const panel = ref(); +const isError = computed(() => props.type === 'error'); function isHoverDevice() { return window.matchMedia('(hover: hover) and (pointer: fine)').matches; @@ -70,73 +70,6 @@ function toggleOnTouch() { if (p.matches(':popover-open')) p.hidePopover(); else p.showPopover(); } - -const positionAreaClass = computed(() => { - switch (props.position) { - case 'left': - return 'pos-left'; - case 'right': - return 'pos-right'; - case 'center': - default: - return 'pos-center'; - } -}); - -const badgeClasses = computed(() => { - switch (props.type) { - case 'notCouncil': - case 'insufficientCouncilMembers': - case 'noRedundancy': - return 'bg-yellow-50 ring-yellow-300/70 text-yellow-800'; - case 'broken': - return 'bg-red-100 ring-red-300/70 text-red-800'; - default: - return ''; - } -}); - -const tooltipClasses = computed(() => { - switch (props.type) { - case 'notCouncil': - case 'insufficientCouncilMembers': - case 'noRedundancy': - return 'bg-yellow-50 border-yellow-300 text-yellow-900'; - case 'broken': - return 'bg-red-50 border-red-300 text-red-900'; - default: - return ''; - } -}); - -const arrowClasses = computed(() => { - switch (props.type) { - case 'notCouncil': - case 'insufficientCouncilMembers': - case 'noRedundancy': - return 'bg-yellow-50 border-yellow-300'; - case 'broken': - return 'bg-red-50 border-red-300'; - default: - return ''; - } -}); - -const arrowPositionClasses = computed(() => { - switch (props.position) { - case 'left': - return 'left-3'; - case 'right': - return 'right-3'; - case 'center': - default: - return 'left-1/2 -translate-x-1/2'; - } -}); - -const iconColor = computed(() => { - return props.type === 'broken' ? 'text-red-600' : 'text-yellow-500'; -}); From 0b6c801d5deaf277cdbeee5ed1e59f214e637f77 Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Mon, 27 Apr 2026 14:44:19 +0200 Subject: [PATCH 3/8] undo --- .../src/components/emergencyaccess/EmergencyAccessVaultList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue b/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue index ea8f6dae7..63c462c68 100644 --- a/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue +++ b/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue @@ -98,7 +98,7 @@
Date: Mon, 27 Apr 2026 14:52:30 +0200 Subject: [PATCH 4/8] use error type for broken vault EmergencyBadge --- .../src/components/emergencyaccess/EmergencyAccessVaultList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue b/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue index 63c462c68..99115dbcf 100644 --- a/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue +++ b/frontend/src/components/emergencyaccess/EmergencyAccessVaultList.vue @@ -99,7 +99,7 @@
From 4babd92883a62cb08765a99c1a73e10397e85feb Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Mon, 27 Apr 2026 15:31:38 +0200 Subject: [PATCH 5/8] replace popover API with CSS-only hover tooltip in EmergencyBadge --- .../emergencyaccess/EmergencyBadge.vue | 63 +++++++------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/frontend/src/components/emergencyaccess/EmergencyBadge.vue b/frontend/src/components/emergencyaccess/EmergencyBadge.vue index ae8e6baaf..31d66c8f7 100644 --- a/frontend/src/components/emergencyaccess/EmergencyBadge.vue +++ b/frontend/src/components/emergencyaccess/EmergencyBadge.vue @@ -1,27 +1,20 @@ From aace8465e0a2b08ff2ae3ed7aca2c1c6e62f303d Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Mon, 27 Apr 2026 17:09:52 +0200 Subject: [PATCH 6/8] remove arrow, add min-width and flip-block fallback to EmergencyBadge tooltip --- .../components/emergencyaccess/EmergencyBadge.vue | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/emergencyaccess/EmergencyBadge.vue b/frontend/src/components/emergencyaccess/EmergencyBadge.vue index 31d66c8f7..a85e06f50 100644 --- a/frontend/src/components/emergencyaccess/EmergencyBadge.vue +++ b/frontend/src/components/emergencyaccess/EmergencyBadge.vue @@ -1,5 +1,5 @@ @@ -43,15 +39,15 @@ const isError = computed(() => props.type === 'error'); From a4f27a78b5241b8af307e9e903f20bd81366a560 Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Tue, 28 Apr 2026 16:15:18 +0200 Subject: [PATCH 8/8] shift EmergencyBadge tooltip away from viewport edge and suppress desktop click trigger --- frontend/src/components/emergencyaccess/EmergencyBadge.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/emergencyaccess/EmergencyBadge.vue b/frontend/src/components/emergencyaccess/EmergencyBadge.vue index e896e0e94..ea3a12ef3 100644 --- a/frontend/src/components/emergencyaccess/EmergencyBadge.vue +++ b/frontend/src/components/emergencyaccess/EmergencyBadge.vue @@ -11,7 +11,7 @@