diff --git a/README.md b/README.md
index 52c49c3..c806dbd 100644
--- a/README.md
+++ b/README.md
@@ -23,3 +23,24 @@ There are three entry points provided:
- The main entry point `@nextcloud/sharing` provides general utils for file sharing
- The _public_ entry point `@nextcloud/sharing/public` provides utils for handling public file shares
- The _ui_ entry point `@nextcloud/sharing/ui` provides API bindings to interact with the files sharing interface in the files app.
+- The _dialog_ entry point `@nextcloud/sharing/dialog` provides the sharing dialog for the unified sharing API (**experimental**, see below).
+
+### Sharing dialog (experimental)
+
+> [!WARNING]
+> This entry point is experimental. It requires the unified sharing API
+> (Nextcloud 35 or later) and its API may change in any minor release.
+> Some inline validation requires a not-yet-released `@nextcloud/vue` version
+> and degrades gracefully on older ones.
+
+```ts
+import { openSharingDialog, isSharingDialogAvailable } from '@nextcloud/sharing/dialog'
+
+if (isSharingDialogAvailable()) {
+ await openSharingDialog(node)
+}
+```
+
+The entry point also exports the `SharingDialog` component for embedding, a
+typed client for the sharing API (`createShare`, `addShareRecipient`,
+`selectSharePermissionPreset`, ...) and all its request/response types.
diff --git a/lib/assets.d.ts b/lib/assets.d.ts
new file mode 100644
index 0000000..57d871c
--- /dev/null
+++ b/lib/assets.d.ts
@@ -0,0 +1,9 @@
+/*!
+ * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+declare module '*?raw' {
+ const content: string
+ export default content
+}
diff --git a/lib/dialog/SharingDialog.vue b/lib/dialog/SharingDialog.vue
new file mode 100644
index 0000000..eb62aaa
--- /dev/null
+++ b/lib/dialog/SharingDialog.vue
@@ -0,0 +1,212 @@
+
+
+
+