= (args) => ({
+ components: { BccDialog, BccButton },
+ setup() {
+ return { args };
+ },
+ template: `
+
+
+
+
+ {{ args.slotDefault }}
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac posuere turpis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
+
+
+
+
+
+ {{ args.secondaryActionText || "Cancel" }}
+
+
+
+
+
+ {{ args.primaryActionText || "Submit" }}
+
+
+
+
+ Open dialog
+
+ `,
+});
+
+// Default story
+export const Default = Template.bind({});
+Default.args = {
+ open: false,
+ title: "Question?",
+ subtitle: "Subtitle if needed",
+ closeButton: true,
+ variant: "action",
+ destructive: false,
+ slotDefault: "",
+ slotSecondaryAction: true,
+ slotPrimaryAction: true,
+};
+Default.parameters = {
+ docs: {
+ source: {
+ language: "html",
+ code: `
+
+ Do you want to update something?
+
+
+ Cancel
+
+
+
+ Submit
+
+
+ `,
+ },
+ },
+};
+
+export const ActionVariant = Template.bind({});
+ActionVariant.args = {
+ ...Default.args,
+ variant: "action",
+ destructive: false,
+};
+
+export const DestructiveAction = Template.bind({});
+DestructiveAction.args = {
+ ...Default.args,
+ variant: "action",
+ destructive: true,
+};
+
+export const DestructiveAlert = Template.bind({});
+DestructiveAlert.args = {
+ ...Default.args,
+ variant: "alert",
+ destructive: true, // Enforce destructive for alert
+};
+
+export const NoActions = Template.bind({});
+NoActions.args = {
+ open: false,
+ title: "Question?",
+ closeButton: true,
+ variant: "action",
+ destructive: false,
+ slotDefault: "",
+ slotSecondaryAction: false,
+ slotPrimaryAction: false,
+};
+NoActions.parameters = {
+ docs: {
+ source: {
+ language: "html",
+ code: `
+
+ Do you want to update something?
+
+ `,
+ },
+ },
+};
diff --git a/design-library/src/components/BccDialog/BccDialog.vue b/design-library/src/components/BccDialog/BccDialog.vue
new file mode 100644
index 00000000..a987e157
--- /dev/null
+++ b/design-library/src/components/BccDialog/BccDialog.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
diff --git a/design-library/src/css/index.css b/design-library/src/css/index.css
index 429d60eb..3326f699 100644
--- a/design-library/src/css/index.css
+++ b/design-library/src/css/index.css
@@ -34,3 +34,4 @@
@import "../components/BccTooltip/BccTooltip.css";
@import "../components/BccAccordion/BccAccordion.css";
@import "../components/BccPagination/BccPagination.css";
+@import "../components/BccDialog/BccDialog.css";
diff --git a/design-library/src/index.ts b/design-library/src/index.ts
index a7d22e6d..e9bf2260 100644
--- a/design-library/src/index.ts
+++ b/design-library/src/index.ts
@@ -41,3 +41,4 @@ export { default as BccStepper } from "./components/BccStepper/BccStepper.vue";
export { default as BccTooltip } from "./components/BccTooltip/BccTooltip.vue";
export { default as BccAccordion } from "./components/BccAccordion/BccAccordion.vue";
export { default as BccPagination } from "./components/BccPagination/BccPagination.vue";
+export { default as BccDialog } from "./components/BccDialog/BccDialog.vue";