diff --git a/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml b/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml
index 2f4bef9..7ab2c67 100644
--- a/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml
+++ b/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml
@@ -1,25 +1,43 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
A
B
C
-
+
diff --git a/demo/Ursa.Demo/Dialogs/PlainDialog.axaml b/demo/Ursa.Demo/Dialogs/PlainDialog.axaml
index 903a8b1..89dbb0d 100644
--- a/demo/Ursa.Demo/Dialogs/PlainDialog.axaml
+++ b/demo/Ursa.Demo/Dialogs/PlainDialog.axaml
@@ -9,10 +9,5 @@
x:Class="Ursa.Demo.Dialogs.PlainDialog">
-
- A
- B
- C
-
diff --git a/demo/Ursa.Demo/Models/MenuKeys.cs b/demo/Ursa.Demo/Models/MenuKeys.cs
index 7f0c655..2283b6a 100644
--- a/demo/Ursa.Demo/Models/MenuKeys.cs
+++ b/demo/Ursa.Demo/Models/MenuKeys.cs
@@ -9,6 +9,7 @@ public static class MenuKeys
public const string MenuKeyClassInput = "Class Input";
public const string MenuKeyDialog = "Dialog";
public const string MenuKeyDivider = "Divider";
+ public const string MenuKeyDrawer = "Drawer";
public const string MenuKeyDualBadge = "DualBadge";
public const string MenuKeyEnumSelector = "EnumSelector";
public const string MenuKeyImageViewer = "ImageViewer";
diff --git a/demo/Ursa.Demo/Pages/DrawerDemo.axaml b/demo/Ursa.Demo/Pages/DrawerDemo.axaml
new file mode 100644
index 0000000..fca5d36
--- /dev/null
+++ b/demo/Ursa.Demo/Pages/DrawerDemo.axaml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/Ursa.Demo/Pages/DrawerDemo.axaml.cs b/demo/Ursa.Demo/Pages/DrawerDemo.axaml.cs
new file mode 100644
index 0000000..3aa8916
--- /dev/null
+++ b/demo/Ursa.Demo/Pages/DrawerDemo.axaml.cs
@@ -0,0 +1,13 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace Ursa.Demo.Pages;
+
+public partial class DrawerDemo : UserControl
+{
+ public DrawerDemo()
+ {
+ InitializeComponent();
+ }
+}
\ No newline at end of file
diff --git a/demo/Ursa.Demo/Pages/IconButtonDemo.axaml b/demo/Ursa.Demo/Pages/IconButtonDemo.axaml
index cde464e..59c0099 100644
--- a/demo/Ursa.Demo/Pages/IconButtonDemo.axaml
+++ b/demo/Ursa.Demo/Pages/IconButtonDemo.axaml
@@ -14,7 +14,7 @@
-
+
(
+ vm,
+ IsGlobal ? null : "LocalHost",
+ new DefaultDrawerOptions()
+ {
+ Title = "Please select a date",
+ Position = SelectedPosition,
+ Buttons = SelectedButton,
+ CanClickOnMaskToClose = CanCloseMaskToClose,
+ ShowMask = ShowMask,
+ });
+ Date = vm.Date;
+ }
+
+ private async Task ShowCustomDrawer()
+ {
+ var vm = new DialogWithActionViewModel();
+ Result = await Drawer.ShowCustom(
+ vm,
+ IsGlobal ? null : "LocalHost",
+ new CustomDrawerOptions()
+ {
+ Position = SelectedPosition,
+ CanClickOnMaskToClose = CanCloseMaskToClose,
+ ShowMask = ShowMask,
+ });
+ Date = vm.Date;
+ }
+}
\ No newline at end of file
diff --git a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs
index 752530f..0206b1d 100644
--- a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs
+++ b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs
@@ -31,6 +31,7 @@ public class MainViewViewModel : ViewModelBase
MenuKeys.MenuKeyClassInput => new ClassInputDemoViewModel(),
MenuKeys.MenuKeyDialog => new DialogDemoViewModel(),
MenuKeys.MenuKeyDivider => new DividerDemoViewModel(),
+ MenuKeys.MenuKeyDrawer => new DrawerDemoViewModel(),
MenuKeys.MenuKeyDualBadge => new DualBadgeDemoViewModel(),
MenuKeys.MenuKeyEnumSelector => new EnumSelectorDemoViewModel(),
MenuKeys.MenuKeyImageViewer => new ImageViewerDemoViewModel(),
diff --git a/demo/Ursa.Demo/ViewModels/MenuViewModel.cs b/demo/Ursa.Demo/ViewModels/MenuViewModel.cs
index 0f7c41e..74b5ff7 100644
--- a/demo/Ursa.Demo/ViewModels/MenuViewModel.cs
+++ b/demo/Ursa.Demo/ViewModels/MenuViewModel.cs
@@ -18,6 +18,7 @@ public class MenuViewModel: ViewModelBase
new() { MenuHeader = "Class Input", Key = MenuKeys.MenuKeyClassInput, Status = "New" },
new() { MenuHeader = "Dialog", Key = MenuKeys.MenuKeyDialog },
new() { MenuHeader = "Divider", Key = MenuKeys.MenuKeyDivider },
+ new() { MenuHeader = "Drawer", Key = MenuKeys.MenuKeyDrawer },
new() { MenuHeader = "DualBadge", Key = MenuKeys.MenuKeyDualBadge },
new() { MenuHeader = "Enum Selector", Key = MenuKeys.MenuKeyEnumSelector },
new() { MenuHeader = "Icon Button", Key = MenuKeys.MenuKeyIconButton },
diff --git a/src/Ursa.Themes.Semi/Controls/Dialog.axaml b/src/Ursa.Themes.Semi/Controls/Dialog.axaml
index 61fed7a..5980151 100644
--- a/src/Ursa.Themes.Semi/Controls/Dialog.axaml
+++ b/src/Ursa.Themes.Semi/Controls/Dialog.axaml
@@ -7,10 +7,16 @@
-
+
+
+
+
+
+
+
-
+
@@ -46,12 +52,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Ursa.Themes.Semi/Controls/MessageBox.axaml b/src/Ursa.Themes.Semi/Controls/MessageBox.axaml
index dc06e21..0527628 100644
--- a/src/Ursa.Themes.Semi/Controls/MessageBox.axaml
+++ b/src/Ursa.Themes.Semi/Controls/MessageBox.axaml
@@ -165,7 +165,7 @@
@@ -247,7 +247,7 @@