Set default culture to "fa-IR" + Consider RTL in main layout and basic layout + Add font "IRANSansX" in layout + Change logo and branding

This commit is contained in:
2025-08-20 17:35:58 +03:30
parent be7768f282
commit 4bc2b0d09c
32 changed files with 3989 additions and 3413 deletions
@@ -1,61 +1,71 @@
@inherits LayoutComponentBase
@using System.Globalization
@inherits LayoutComponentBase
<link href="_content/Elsa.Studio.Shell/css/custom.css" rel="stylesheet">
<link href="_content/Elsa.Studio.Shell/css/fontiran.css" rel="stylesheet">
<link href="_content/Elsa.Studio.Shell/css/fontstyle.css" rel="stylesheet">
<MudRTLProvider RightToLeft="@IsRtl(CultureInfo.CurrentUICulture)">
<MudThemeProvider IsDarkMode="@IsDarkMode" Theme="CurrentTheme" />
<MudPopoverProvider />
<MudDialogProvider />
<MudSnackbarProvider />
<MudThemeProvider IsDarkMode="@IsDarkMode" Theme="CurrentTheme"/>
<MudPopoverProvider/>
<MudDialogProvider/>
<MudSnackbarProvider/>
<MudLayout>
<MudAppBar Elevation="0" Color="Color.Inherit">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@DrawerToggle" />
<MudSpacer />
@foreach (var appBarItem in AppBarService.AppBarItems)
{
@appBarItem
}
<MudLayout>
<MudAppBar Elevation="0" Color="Color.Inherit">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@DrawerToggle"/>
<MudSpacer/>
@foreach (var appBarItem in AppBarService.AppBarItems)
{
@appBarItem
}
@* <MudIconButton Icon="@Icons.Material.Outlined.Book" Color="Color.Inherit" Href="https://v3.elsaworkflows.io/" Target="_blank" Title="Documentation"/>
<MudIconButton Icon="@Icons.Custom.Brands.GitHub" Color="Color.Inherit" Href="https://github.com/elsa-workflows/elsa-core" Target="_blank" Title="Source code"/> *@
<MudIconButton Icon="@Icons.Material.Outlined.Book" Color="Color.Inherit" Href="https://v3.elsaworkflows.io/" Target="_blank" Title="Documentation"/>
<MudIconButton Icon="@Icons.Custom.Brands.GitHub" Color="Color.Inherit" Href="https://github.com/elsa-workflows/elsa-core" Target="_blank" Title="Source code"/>
@if (IsDarkMode)
{
<MudToggleIconButton Icon="@Icons.Material.Outlined.LightMode" Color="Color.Inherit" @onclick="@ToggleDarkMode"></MudToggleIconButton>
}
else
{
<MudToggleIconButton Icon="@Icons.Material.Outlined.DarkMode" Color="Color.Inherit" @onclick="@ToggleDarkMode"></MudToggleIconButton>
}
@if (IsDarkMode)
{
<MudToggleIconButton Icon="@Icons.Material.Outlined.LightMode" Color="Color.Inherit" @onclick="@ToggleDarkMode"></MudToggleIconButton>
}
else
{
<MudToggleIconButton Icon="@Icons.Material.Outlined.DarkMode" Color="Color.Inherit" @onclick="@ToggleDarkMode"></MudToggleIconButton>
}
<MudIconButton Icon="@Icons.Material.Outlined.Info" Color="Color.Inherit" @onclick="@ShowProductInfo" />
</MudAppBar>
<MudDrawer @bind-Open="_drawerOpen" Elevation="0" ClipMode="DrawerClipMode.Always">
<MudDrawerHeader>
@BrandingProvider.Branding
</MudDrawerHeader>
<div class="mt-10">
<NavMenu />
</div>
</MudDrawer>
<MudMainContent>
<ErrorBoundary @ref="@_errorBoundary">
<ChildContent>
@Body
</ChildContent>
<ErrorContent>
@if (context is UnauthorizedAccessException)
{
@UnauthorizedComponent
}
else
{
<Well>
<MudAlert Severity="Severity.Error" Variant="Variant.Filled">
@context.GetType().Name: @context.Message
</MudAlert>
</Well>
}
</ErrorContent>
</ErrorBoundary>
<MudIconButton Icon="@Icons.Material.Outlined.Info" Color="Color.Inherit" @onclick="@ShowProductInfo"/>
</MudAppBar>
<MudDrawer @bind-Open="_drawerOpen" Elevation="0" ClipMode="DrawerClipMode.Always">
<MudDrawerHeader>
@BrandingProvider.Branding
</MudDrawerHeader>
<div class="mt-10">
<NavMenu/>
</div>
</MudDrawer>
<MudMainContent>
<ErrorBoundary @ref="@_errorBoundary">
<ChildContent>
@Body
</ChildContent>
<ErrorContent>
@if (context is UnauthorizedAccessException)
{
@UnauthorizedComponent
}
else
{
<Well>
<MudAlert Severity="Severity.Error" Variant="Variant.Filled">
@context.GetType().Name: @context.Message
</MudAlert>
</Well>
}
</ErrorContent>
</ErrorBoundary>
</MudMainContent>
</MudLayout>
</MudRTLProvider>
</MudMainContent>
</MudLayout>
@code {
private static bool IsRtl(CultureInfo culture)
=> culture?.TwoLetterISOLanguageName == "fa" || culture?.TextInfo?.IsRightToLeft == true;
}