diff --git a/frontend/src/components/AppShell.vue b/frontend/src/components/AppShell.vue
index 2c02403..fac73a3 100644
--- a/frontend/src/components/AppShell.vue
+++ b/frontend/src/components/AppShell.vue
@@ -7,6 +7,7 @@ import { useLabelsStore } from "../stores/labels";
import { useSavedFiltersStore, type SavedFilter } from "../stores/savedFilters";
import { useReminderStore } from "../stores/reminders";
import { useUiStore } from "../stores/ui";
+import BaseModal from "./BaseModal.vue";
import CommandPalette from "./CommandPalette.vue";
import Icon from "./Icon.vue";
import ImportNotes from "./ImportNotes.vue";
@@ -382,17 +383,13 @@ async function signOut() {
-
+
diff --git a/frontend/src/components/BaseModal.vue b/frontend/src/components/BaseModal.vue
new file mode 100644
index 0000000..edf031b
--- /dev/null
+++ b/frontend/src/components/BaseModal.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/frontend/src/components/CommandPalette.vue b/frontend/src/components/CommandPalette.vue
index a9408b8..707301f 100644
--- a/frontend/src/components/CommandPalette.vue
+++ b/frontend/src/components/CommandPalette.vue
@@ -4,6 +4,7 @@ import { useRouter } from "vue-router";
import { useSessionStore } from "../stores/session";
import { useTitlesStore } from "../stores/titles";
import { useUiStore } from "../stores/ui";
+import BaseModal from "./BaseModal.vue";
const emit = defineEmits<{ (e: "close"): void }>();
@@ -94,16 +95,11 @@ onMounted(async () => {
-
+
diff --git a/frontend/src/components/LabelsModal.vue b/frontend/src/components/LabelsModal.vue
index 4f96c96..f0a8a4b 100644
--- a/frontend/src/components/LabelsModal.vue
+++ b/frontend/src/components/LabelsModal.vue
@@ -2,6 +2,7 @@
import { computed, ref } from "vue";
import { useLabelsStore, type Label } from "../stores/labels";
import { NOTE_COLOR_KEYS, NOTE_COLOR_LABELS, NOTE_SWATCH_CLASSES, type NoteColor } from "../notes/colors";
+import BaseModal from "./BaseModal.vue";
import Icon from "./Icon.vue";
const emit = defineEmits<{ (e: "close"): void }>();
@@ -54,17 +55,8 @@ async function doMerge(sourceId: string, targetId: string) {
-
-
-
+
+
Manage labels
@@ -161,6 +153,5 @@ async function doMerge(sourceId: string, targetId: string) {
No labels yet — create one above.
-
-
+
diff --git a/frontend/src/views/AccountView.vue b/frontend/src/views/AccountView.vue
index d421dc7..d078b45 100644
--- a/frontend/src/views/AccountView.vue
+++ b/frontend/src/views/AccountView.vue
@@ -3,6 +3,7 @@ import { onMounted, ref } from "vue";
import { useDevicesStore } from "../stores/devices";
import { useUiStore } from "../stores/ui";
import BaseButton from "../components/BaseButton.vue";
+import BaseInput from "../components/BaseInput.vue";
import Icon from "../components/Icon.vue";
// Per-user (not admin) management of linked native clients — the Tauri desktop and
@@ -124,18 +125,13 @@ onMounted(load);