From 3d8bdaa90320acc0cf225c3d6374ed98f9879291 Mon Sep 17 00:00:00 2001 From: Matthew L McPeak Date: Mon, 13 Jul 2026 18:14:52 -0400 Subject: [PATCH] refactor: rewrite the Dialog root family without reka-ui Root/Trigger/Overlay/Close/Title/Description now share a small provide/inject context instead of reka-ui's Dialog primitives. DialogContent/DialogScrollContent follow in the next commit since they need the focus-trap and dismissable-layer composables. --- .../src/components/ui/dialog/Dialog.vue | 28 ++++++++++-------- .../src/components/ui/dialog/DialogClose.vue | 18 ++++++++---- .../ui/dialog/DialogDescription.vue | 22 ++++++-------- .../src/components/ui/dialog/DialogFooter.vue | 2 +- .../components/ui/dialog/DialogOverlay.vue | 29 ++++++++++--------- .../src/components/ui/dialog/DialogTitle.vue | 22 ++++++-------- .../components/ui/dialog/DialogTrigger.vue | 20 +++++++++---- .../src/components/ui/dialog/context.ts | 9 ++++++ 8 files changed, 85 insertions(+), 65 deletions(-) create mode 100644 packages/library/src/components/ui/dialog/context.ts diff --git a/packages/library/src/components/ui/dialog/Dialog.vue b/packages/library/src/components/ui/dialog/Dialog.vue index ade5260..2beffb3 100644 --- a/packages/library/src/components/ui/dialog/Dialog.vue +++ b/packages/library/src/components/ui/dialog/Dialog.vue @@ -1,19 +1,23 @@ diff --git a/packages/library/src/components/ui/dialog/DialogClose.vue b/packages/library/src/components/ui/dialog/DialogClose.vue index c5fae04..367dc74 100644 --- a/packages/library/src/components/ui/dialog/DialogClose.vue +++ b/packages/library/src/components/ui/dialog/DialogClose.vue @@ -1,15 +1,21 @@ diff --git a/packages/library/src/components/ui/dialog/DialogDescription.vue b/packages/library/src/components/ui/dialog/DialogDescription.vue index 6f4faa1..7da194c 100644 --- a/packages/library/src/components/ui/dialog/DialogDescription.vue +++ b/packages/library/src/components/ui/dialog/DialogDescription.vue @@ -1,23 +1,19 @@ diff --git a/packages/library/src/components/ui/dialog/DialogFooter.vue b/packages/library/src/components/ui/dialog/DialogFooter.vue index 92f81b8..9a8182d 100644 --- a/packages/library/src/components/ui/dialog/DialogFooter.vue +++ b/packages/library/src/components/ui/dialog/DialogFooter.vue @@ -1,6 +1,6 @@ diff --git a/packages/library/src/components/ui/dialog/DialogTitle.vue b/packages/library/src/components/ui/dialog/DialogTitle.vue index 211ca04..a4af6e5 100644 --- a/packages/library/src/components/ui/dialog/DialogTitle.vue +++ b/packages/library/src/components/ui/dialog/DialogTitle.vue @@ -1,23 +1,19 @@ diff --git a/packages/library/src/components/ui/dialog/DialogTrigger.vue b/packages/library/src/components/ui/dialog/DialogTrigger.vue index 49667e9..134e21e 100644 --- a/packages/library/src/components/ui/dialog/DialogTrigger.vue +++ b/packages/library/src/components/ui/dialog/DialogTrigger.vue @@ -1,15 +1,23 @@ diff --git a/packages/library/src/components/ui/dialog/context.ts b/packages/library/src/components/ui/dialog/context.ts new file mode 100644 index 0000000..ad52a24 --- /dev/null +++ b/packages/library/src/components/ui/dialog/context.ts @@ -0,0 +1,9 @@ +import type { InjectionKey, Ref } from 'vue' + +export interface DialogContext { + open: Ref + titleId: string + descriptionId: string +} + +export const DialogContextKey: InjectionKey = Symbol('DialogContext')