From f9172d14315a9049aa50114dcdb8742093ae2ca2 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Fri, 24 Jul 2026 10:53:58 +0700 Subject: [PATCH] feat: add dialog component suite for enhanced UI interactions - Introduced a comprehensive set of dialog components: Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogScrollContent, DialogTitle, and DialogTrigger. - Each component is designed to facilitate various dialog functionalities, including customizable props and slots for flexible content management. - Integrated utility functions for class management to ensure consistent styling across components. --- app/components/ui/dialog/Dialog.vue | 19 ++++++ app/components/ui/dialog/DialogClose.vue | 15 +++++ app/components/ui/dialog/DialogContent.vue | 53 +++++++++++++++++ .../ui/dialog/DialogDescription.vue | 23 ++++++++ app/components/ui/dialog/DialogFooter.vue | 27 +++++++++ app/components/ui/dialog/DialogHeader.vue | 17 ++++++ app/components/ui/dialog/DialogOverlay.vue | 21 +++++++ .../ui/dialog/DialogScrollContent.vue | 59 +++++++++++++++++++ app/components/ui/dialog/DialogTitle.vue | 23 ++++++++ app/components/ui/dialog/DialogTrigger.vue | 15 +++++ app/components/ui/dialog/index.ts | 10 ++++ 11 files changed, 282 insertions(+) create mode 100644 app/components/ui/dialog/Dialog.vue create mode 100644 app/components/ui/dialog/DialogClose.vue create mode 100644 app/components/ui/dialog/DialogContent.vue create mode 100644 app/components/ui/dialog/DialogDescription.vue create mode 100644 app/components/ui/dialog/DialogFooter.vue create mode 100644 app/components/ui/dialog/DialogHeader.vue create mode 100644 app/components/ui/dialog/DialogOverlay.vue create mode 100644 app/components/ui/dialog/DialogScrollContent.vue create mode 100644 app/components/ui/dialog/DialogTitle.vue create mode 100644 app/components/ui/dialog/DialogTrigger.vue create mode 100644 app/components/ui/dialog/index.ts diff --git a/app/components/ui/dialog/Dialog.vue b/app/components/ui/dialog/Dialog.vue new file mode 100644 index 0000000..ade5260 --- /dev/null +++ b/app/components/ui/dialog/Dialog.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/components/ui/dialog/DialogClose.vue b/app/components/ui/dialog/DialogClose.vue new file mode 100644 index 0000000..c5fae04 --- /dev/null +++ b/app/components/ui/dialog/DialogClose.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/DialogContent.vue b/app/components/ui/dialog/DialogContent.vue new file mode 100644 index 0000000..05172f0 --- /dev/null +++ b/app/components/ui/dialog/DialogContent.vue @@ -0,0 +1,53 @@ + + + diff --git a/app/components/ui/dialog/DialogDescription.vue b/app/components/ui/dialog/DialogDescription.vue new file mode 100644 index 0000000..f52e655 --- /dev/null +++ b/app/components/ui/dialog/DialogDescription.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/dialog/DialogFooter.vue b/app/components/ui/dialog/DialogFooter.vue new file mode 100644 index 0000000..c7500a9 --- /dev/null +++ b/app/components/ui/dialog/DialogFooter.vue @@ -0,0 +1,27 @@ + + + diff --git a/app/components/ui/dialog/DialogHeader.vue b/app/components/ui/dialog/DialogHeader.vue new file mode 100644 index 0000000..bfc3c64 --- /dev/null +++ b/app/components/ui/dialog/DialogHeader.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/dialog/DialogOverlay.vue b/app/components/ui/dialog/DialogOverlay.vue new file mode 100644 index 0000000..7790077 --- /dev/null +++ b/app/components/ui/dialog/DialogOverlay.vue @@ -0,0 +1,21 @@ + + + diff --git a/app/components/ui/dialog/DialogScrollContent.vue b/app/components/ui/dialog/DialogScrollContent.vue new file mode 100644 index 0000000..abfb3a1 --- /dev/null +++ b/app/components/ui/dialog/DialogScrollContent.vue @@ -0,0 +1,59 @@ + + + diff --git a/app/components/ui/dialog/DialogTitle.vue b/app/components/ui/dialog/DialogTitle.vue new file mode 100644 index 0000000..860f01a --- /dev/null +++ b/app/components/ui/dialog/DialogTitle.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/dialog/DialogTrigger.vue b/app/components/ui/dialog/DialogTrigger.vue new file mode 100644 index 0000000..49667e9 --- /dev/null +++ b/app/components/ui/dialog/DialogTrigger.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/index.ts b/app/components/ui/dialog/index.ts new file mode 100644 index 0000000..6768b09 --- /dev/null +++ b/app/components/ui/dialog/index.ts @@ -0,0 +1,10 @@ +export { default as Dialog } from "./Dialog.vue" +export { default as DialogClose } from "./DialogClose.vue" +export { default as DialogContent } from "./DialogContent.vue" +export { default as DialogDescription } from "./DialogDescription.vue" +export { default as DialogFooter } from "./DialogFooter.vue" +export { default as DialogHeader } from "./DialogHeader.vue" +export { default as DialogOverlay } from "./DialogOverlay.vue" +export { default as DialogScrollContent } from "./DialogScrollContent.vue" +export { default as DialogTitle } from "./DialogTitle.vue" +export { default as DialogTrigger } from "./DialogTrigger.vue"