Dialog improvements.
This commit is contained in:
@@ -1156,10 +1156,23 @@
|
|||||||
"WinoAccount_SignOutButton_Description": "Remove the locally stored Wino Account session.",
|
"WinoAccount_SignOutButton_Description": "Remove the locally stored Wino Account session.",
|
||||||
"WinoAccount_SignOutButton_Action": "Sign out",
|
"WinoAccount_SignOutButton_Action": "Sign out",
|
||||||
"WinoAccount_RegisterDialog_Title": "Create Wino Account",
|
"WinoAccount_RegisterDialog_Title": "Create Wino Account",
|
||||||
"WinoAccount_RegisterDialog_Description": "Register a new Wino Account using the localhost API.",
|
"WinoAccount_RegisterDialog_Description": "Create a Wino Account to keep your Wino experience in sync and unlock account-based add-ons.",
|
||||||
|
"WinoAccount_RegisterDialog_HeroTitle": "Create your Wino Account",
|
||||||
|
"WinoAccount_RegisterDialog_BenefitsTitle": "Why create one?",
|
||||||
|
"WinoAccount_RegisterDialog_BenefitSyncTitle": "Import and export settings across devices",
|
||||||
|
"WinoAccount_RegisterDialog_BenefitSyncDescription": "Move your Wino preferences between devices without rebuilding your setup from scratch.",
|
||||||
|
"WinoAccount_RegisterDialog_BenefitAiTitle": "Access exclusive add-ons like Wino AI Pack (paid)",
|
||||||
|
"WinoAccount_RegisterDialog_BenefitAiDescription": "Use one account to unlock premium Wino features as they become available.",
|
||||||
|
"WinoAccount_RegisterDialog_DifferenceTitle": "Wino Account is separate from your mail accounts",
|
||||||
|
"WinoAccount_RegisterDialog_DifferenceDescription": "Your Outlook, Gmail, IMAP, or other email accounts stay exactly as they are. A Wino Account only manages Wino-specific features and account-based add-ons.",
|
||||||
"WinoAccount_RegisterDialog_PrimaryButton": "Register",
|
"WinoAccount_RegisterDialog_PrimaryButton": "Register",
|
||||||
"WinoAccount_LoginDialog_Title": "Sign In to Wino Account",
|
"WinoAccount_LoginDialog_Title": "Sign In to Wino Account",
|
||||||
"WinoAccount_LoginDialog_Description": "Sign in using the localhost API.",
|
"WinoAccount_LoginDialog_Description": "Sign in to your Wino Account to sync your Wino setup and access account-based features.",
|
||||||
|
"WinoAccount_LoginDialog_HeroTitle": "Welcome back",
|
||||||
|
"WinoAccount_LoginDialog_BenefitsTitle": "What signing in gives you",
|
||||||
|
"WinoAccount_LoginDialog_BenefitsDescription": "Use your Wino Account to continue syncing settings across devices and to access paid add-ons such as Wino AI Pack.",
|
||||||
|
"WinoAccount_LoginDialog_DifferenceTitle": "This is not your email mailbox sign-in",
|
||||||
|
"WinoAccount_LoginDialog_DifferenceDescription": "Signing in here does not add or replace your Outlook, Gmail, or IMAP accounts in Wino. It only signs you in to Wino-specific services.",
|
||||||
"WinoAccount_EmailLabel": "Email",
|
"WinoAccount_EmailLabel": "Email",
|
||||||
"WinoAccount_EmailPlaceholder": "name@example.com",
|
"WinoAccount_EmailPlaceholder": "name@example.com",
|
||||||
"WinoAccount_PasswordLabel": "Password",
|
"WinoAccount_PasswordLabel": "Password",
|
||||||
|
|||||||
@@ -7,45 +7,93 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
Title="{x:Bind domain:Translator.WinoAccount_LoginDialog_Title}"
|
Title="{x:Bind domain:Translator.WinoAccount_LoginDialog_Title}"
|
||||||
PrimaryButtonClick="LoginClicked"
|
PrimaryButtonClick="LoginClicked"
|
||||||
|
PrimaryButtonStyle="{ThemeResource AccentButtonStyle}"
|
||||||
PrimaryButtonText="{x:Bind domain:Translator.Buttons_SignIn}"
|
PrimaryButtonText="{x:Bind domain:Translator.Buttons_SignIn}"
|
||||||
SecondaryButtonText="{x:Bind domain:Translator.Buttons_Cancel}"
|
SecondaryButtonText="{x:Bind domain:Translator.Buttons_Cancel}"
|
||||||
Style="{StaticResource WinoDialogStyle}"
|
Style="{StaticResource WinoDialogStyle}"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
|
||||||
<ContentDialog.Resources>
|
<ContentDialog.Resources>
|
||||||
<x:Double x:Key="ContentDialogMinWidth">440</x:Double>
|
<x:Double x:Key="ContentDialogMinWidth">520</x:Double>
|
||||||
<x:Double x:Key="ContentDialogMaxWidth">440</x:Double>
|
<x:Double x:Key="ContentDialogMaxWidth">520</x:Double>
|
||||||
</ContentDialog.Resources>
|
</ContentDialog.Resources>
|
||||||
|
|
||||||
<StackPanel Spacing="12">
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||||
<TextBlock
|
<StackPanel Spacing="16">
|
||||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
<Border
|
||||||
Text="{x:Bind domain:Translator.WinoAccount_LoginDialog_Description}"
|
Padding="14"
|
||||||
TextWrapping="WrapWholeWords" />
|
Background="{ThemeResource CardBackgroundFillColorSecondaryBrush}"
|
||||||
|
CornerRadius="16">
|
||||||
|
<Grid ColumnSpacing="12">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<FontIcon
|
||||||
|
FontSize="18"
|
||||||
|
Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}"
|
||||||
|
Glyph="" />
|
||||||
|
<StackPanel Grid.Column="1" Spacing="4">
|
||||||
|
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind domain:Translator.WinoAccount_LoginDialog_BenefitsTitle}" />
|
||||||
|
<TextBlock
|
||||||
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||||
|
Text="{x:Bind domain:Translator.WinoAccount_LoginDialog_BenefitsDescription}"
|
||||||
|
TextWrapping="WrapWholeWords" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
|
||||||
<TextBox
|
<Border
|
||||||
x:Name="EmailTextBox"
|
Padding="14"
|
||||||
Header="{x:Bind domain:Translator.WinoAccount_EmailLabel}"
|
Background="{ThemeResource CardBackgroundFillColorSecondaryBrush}"
|
||||||
PlaceholderText="{x:Bind domain:Translator.WinoAccount_EmailPlaceholder}"
|
BorderBrush="{ThemeResource TextFillColorDisabledBrush}"
|
||||||
TextChanging="InputChanged" />
|
BorderThickness="1"
|
||||||
|
CornerRadius="16">
|
||||||
|
<Grid ColumnSpacing="12">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<FontIcon
|
||||||
|
FontSize="18"
|
||||||
|
Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}"
|
||||||
|
Glyph="" />
|
||||||
|
<StackPanel Grid.Column="1" Spacing="4">
|
||||||
|
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind domain:Translator.WinoAccount_LoginDialog_DifferenceTitle}" />
|
||||||
|
<TextBlock
|
||||||
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||||
|
Text="{x:Bind domain:Translator.WinoAccount_LoginDialog_DifferenceDescription}"
|
||||||
|
TextWrapping="WrapWholeWords" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
|
||||||
<PasswordBox
|
<StackPanel Spacing="12">
|
||||||
x:Name="PasswordBox"
|
<TextBox
|
||||||
Header="{x:Bind domain:Translator.WinoAccount_PasswordLabel}"
|
x:Name="EmailTextBox"
|
||||||
PasswordChanged="InputChanged" />
|
Header="{x:Bind domain:Translator.WinoAccount_EmailLabel}"
|
||||||
|
PlaceholderText="{x:Bind domain:Translator.WinoAccount_EmailPlaceholder}"
|
||||||
|
TextChanging="InputChanged" />
|
||||||
|
|
||||||
<ProgressRing
|
<PasswordBox
|
||||||
x:Name="BusyRing"
|
x:Name="PasswordBox"
|
||||||
Width="20"
|
Header="{x:Bind domain:Translator.WinoAccount_PasswordLabel}"
|
||||||
Height="20"
|
PasswordChanged="InputChanged" />
|
||||||
HorizontalAlignment="Left"
|
</StackPanel>
|
||||||
IsActive="False"
|
|
||||||
Visibility="Collapsed" />
|
|
||||||
|
|
||||||
<TextBlock
|
<ProgressRing
|
||||||
x:Name="ErrorTextBlock"
|
x:Name="BusyRing"
|
||||||
Foreground="{ThemeResource SystemFillColorCriticalBrush}"
|
Width="20"
|
||||||
TextWrapping="WrapWholeWords"
|
Height="20"
|
||||||
Visibility="Collapsed" />
|
HorizontalAlignment="Left"
|
||||||
</StackPanel>
|
IsActive="False"
|
||||||
|
Visibility="Collapsed" />
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
x:Name="ErrorTextBlock"
|
||||||
|
Foreground="{ThemeResource SystemFillColorCriticalBrush}"
|
||||||
|
TextWrapping="WrapWholeWords"
|
||||||
|
Visibility="Collapsed" />
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
</ContentDialog>
|
</ContentDialog>
|
||||||
|
|||||||
@@ -7,50 +7,104 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
Title="{x:Bind domain:Translator.WinoAccount_RegisterDialog_Title}"
|
Title="{x:Bind domain:Translator.WinoAccount_RegisterDialog_Title}"
|
||||||
PrimaryButtonClick="RegisterClicked"
|
PrimaryButtonClick="RegisterClicked"
|
||||||
|
PrimaryButtonStyle="{ThemeResource AccentButtonStyle}"
|
||||||
PrimaryButtonText="{x:Bind domain:Translator.WinoAccount_RegisterDialog_PrimaryButton}"
|
PrimaryButtonText="{x:Bind domain:Translator.WinoAccount_RegisterDialog_PrimaryButton}"
|
||||||
SecondaryButtonText="{x:Bind domain:Translator.Buttons_Cancel}"
|
SecondaryButtonText="{x:Bind domain:Translator.Buttons_Cancel}"
|
||||||
Style="{StaticResource WinoDialogStyle}"
|
Style="{StaticResource WinoDialogStyle}"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
|
||||||
<ContentDialog.Resources>
|
<ContentDialog.Resources>
|
||||||
<x:Double x:Key="ContentDialogMinWidth">440</x:Double>
|
<x:Double x:Key="ContentDialogMinWidth">560</x:Double>
|
||||||
<x:Double x:Key="ContentDialogMaxWidth">440</x:Double>
|
<x:Double x:Key="ContentDialogMaxWidth">560</x:Double>
|
||||||
</ContentDialog.Resources>
|
</ContentDialog.Resources>
|
||||||
|
|
||||||
<StackPanel Spacing="12">
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||||
<TextBlock
|
<StackPanel Spacing="4">
|
||||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
<Image
|
||||||
Text="{x:Bind domain:Translator.WinoAccount_RegisterDialog_Description}"
|
Width="64"
|
||||||
TextWrapping="WrapWholeWords" />
|
Height="64"
|
||||||
|
Source="/Assets/AppEntries/MailAssets/LargeTile.png" />
|
||||||
|
<StackPanel Spacing="10">
|
||||||
|
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind domain:Translator.WinoAccount_RegisterDialog_BenefitsTitle}" />
|
||||||
|
|
||||||
<TextBox
|
<Border
|
||||||
x:Name="EmailTextBox"
|
Padding="14"
|
||||||
Header="{x:Bind domain:Translator.WinoAccount_EmailLabel}"
|
Background="{ThemeResource CardBackgroundFillColorSecondaryBrush}"
|
||||||
PlaceholderText="{x:Bind domain:Translator.WinoAccount_EmailPlaceholder}"
|
CornerRadius="16">
|
||||||
TextChanging="InputChanged" />
|
<Grid ColumnSpacing="12">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<FontIcon
|
||||||
|
FontSize="18"
|
||||||
|
Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}"
|
||||||
|
Glyph="" />
|
||||||
|
<StackPanel Grid.Column="1" Spacing="2">
|
||||||
|
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind domain:Translator.WinoAccount_RegisterDialog_BenefitSyncTitle}" />
|
||||||
|
<TextBlock
|
||||||
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||||
|
Text="{x:Bind domain:Translator.WinoAccount_RegisterDialog_BenefitSyncDescription}"
|
||||||
|
TextWrapping="WrapWholeWords" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
|
||||||
<PasswordBox
|
<Border
|
||||||
x:Name="PasswordBox"
|
Padding="14"
|
||||||
Header="{x:Bind domain:Translator.WinoAccount_PasswordLabel}"
|
Background="{ThemeResource CardBackgroundFillColorSecondaryBrush}"
|
||||||
PasswordChanged="InputChanged" />
|
CornerRadius="16">
|
||||||
|
<Grid ColumnSpacing="12">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<FontIcon
|
||||||
|
FontSize="18"
|
||||||
|
Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}"
|
||||||
|
Glyph="" />
|
||||||
|
<StackPanel Grid.Column="1" Spacing="2">
|
||||||
|
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind domain:Translator.WinoAccount_RegisterDialog_BenefitAiTitle}" />
|
||||||
|
<TextBlock
|
||||||
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||||
|
Text="{x:Bind domain:Translator.WinoAccount_RegisterDialog_BenefitAiDescription}"
|
||||||
|
TextWrapping="WrapWholeWords" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
<PasswordBox
|
<StackPanel Margin="0,12" Spacing="12">
|
||||||
x:Name="ConfirmPasswordBox"
|
<TextBox
|
||||||
Header="{x:Bind domain:Translator.WinoAccount_ConfirmPasswordLabel}"
|
x:Name="EmailTextBox"
|
||||||
PasswordChanged="InputChanged" />
|
Header="{x:Bind domain:Translator.WinoAccount_EmailLabel}"
|
||||||
|
PlaceholderText="{x:Bind domain:Translator.WinoAccount_EmailPlaceholder}"
|
||||||
|
TextChanging="InputChanged" />
|
||||||
|
|
||||||
<ProgressRing
|
<PasswordBox
|
||||||
x:Name="BusyRing"
|
x:Name="PasswordBox"
|
||||||
Width="20"
|
Header="{x:Bind domain:Translator.WinoAccount_PasswordLabel}"
|
||||||
Height="20"
|
PasswordChanged="InputChanged" />
|
||||||
HorizontalAlignment="Left"
|
|
||||||
IsActive="False"
|
|
||||||
Visibility="Collapsed" />
|
|
||||||
|
|
||||||
<TextBlock
|
<PasswordBox
|
||||||
x:Name="ErrorTextBlock"
|
x:Name="ConfirmPasswordBox"
|
||||||
Foreground="{ThemeResource SystemFillColorCriticalBrush}"
|
Header="{x:Bind domain:Translator.WinoAccount_ConfirmPasswordLabel}"
|
||||||
TextWrapping="WrapWholeWords"
|
PasswordChanged="InputChanged" />
|
||||||
Visibility="Collapsed" />
|
</StackPanel>
|
||||||
</StackPanel>
|
|
||||||
|
<ProgressRing
|
||||||
|
x:Name="BusyRing"
|
||||||
|
Width="20"
|
||||||
|
Height="20"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
IsActive="False"
|
||||||
|
Visibility="Collapsed" />
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
x:Name="ErrorTextBlock"
|
||||||
|
Foreground="{ThemeResource SystemFillColorCriticalBrush}"
|
||||||
|
TextWrapping="WrapWholeWords"
|
||||||
|
Visibility="Collapsed" />
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
</ContentDialog>
|
</ContentDialog>
|
||||||
|
|||||||
@@ -91,7 +91,9 @@
|
|||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
BorderBrush="Transparent">
|
BorderBrush="Transparent">
|
||||||
<Button.Flyout>
|
<Button.Flyout>
|
||||||
<Flyout Placement="Bottom">
|
<Flyout
|
||||||
|
x:Name="WinoAccountFlyout"
|
||||||
|
Placement="Bottom">
|
||||||
<Grid MinWidth="320" MaxWidth="360">
|
<Grid MinWidth="320" MaxWidth="360">
|
||||||
<StackPanel
|
<StackPanel
|
||||||
x:Name="WinoAccountSignedOutView"
|
x:Name="WinoAccountSignedOutView"
|
||||||
|
|||||||
@@ -409,6 +409,7 @@ public sealed partial class ShellWindow : WindowEx, IWinoShellWindow,
|
|||||||
|
|
||||||
private async void RegisterWinoAccountClicked(object sender, RoutedEventArgs e)
|
private async void RegisterWinoAccountClicked(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
WinoAccountFlyout.Hide();
|
||||||
var account = await MailDialogService.ShowWinoAccountRegistrationDialogAsync();
|
var account = await MailDialogService.ShowWinoAccountRegistrationDialogAsync();
|
||||||
if (account != null)
|
if (account != null)
|
||||||
{
|
{
|
||||||
@@ -421,6 +422,7 @@ public sealed partial class ShellWindow : WindowEx, IWinoShellWindow,
|
|||||||
|
|
||||||
private async void LoginWinoAccountClicked(object sender, RoutedEventArgs e)
|
private async void LoginWinoAccountClicked(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
WinoAccountFlyout.Hide();
|
||||||
var account = await MailDialogService.ShowWinoAccountLoginDialogAsync();
|
var account = await MailDialogService.ShowWinoAccountLoginDialogAsync();
|
||||||
if (account != null)
|
if (account != null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user