diff --git a/.changeset/eight-rocks-dream.md b/.changeset/eight-rocks-dream.md
new file mode 100644
index 00000000000..780ccb6cb87
--- /dev/null
+++ b/.changeset/eight-rocks-dream.md
@@ -0,0 +1,14 @@
+---
+"@itwin/itwinui-react": minor
+---
+
+Added the ability to control `Dialog` imperatively using `show()` and `close()` methods from its instance.
+
+```tsx
+const dialog = Dialog.useInstance();
+
+
+
+```
diff --git a/apps/react-workshop/src/Dialog.stories.tsx b/apps/react-workshop/src/Dialog.stories.tsx
index 20c36771095..b2f01f1e273 100644
--- a/apps/react-workshop/src/Dialog.stories.tsx
+++ b/apps/react-workshop/src/Dialog.stories.tsx
@@ -9,50 +9,25 @@ export default {
title: 'Dialog',
};
-export const Basic = () => {
- const [isOpen, setIsOpen] = React.useState(false);
-
- const closeDialog = () => {
- setIsOpen(false);
- };
-
- const onClose = () => {
- console.log('onClose');
- closeDialog();
- };
-
- const primaryButtonHandle = () => {
- console.log('Primary button');
- closeDialog();
- };
+const lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.`;
- const secondaryButtonHandle = () => {
- console.log('Secondary button');
- closeDialog();
- };
+export const Basic = () => {
+ const dialog = Dialog.useInstance();
return (
<>
-