diff --git a/apps/app/src/components-v2/shared/AppDialog.vue b/apps/app/src/components-v2/shared/AppDialog.vue
new file mode 100644
index 00000000..2076b8df
--- /dev/null
+++ b/apps/app/src/components-v2/shared/AppDialog.vue
@@ -0,0 +1,164 @@
+
+
+
+
+
diff --git a/apps/app/src/components-v2/shared/__tests__/AppDialog.spec.ts b/apps/app/src/components-v2/shared/__tests__/AppDialog.spec.ts
new file mode 100644
index 00000000..ecc33347
--- /dev/null
+++ b/apps/app/src/components-v2/shared/__tests__/AppDialog.spec.ts
@@ -0,0 +1,255 @@
+/**
+ * AppDialog.spec.ts — unit tests for the AppDialog reusable modal wrapper.
+ *
+ * Strategy: mount AppDialog with @vue/test-utils, stub PrimeVue