This commit is contained in:
Thomas Peterson 2024-11-11 09:07:13 +01:00
parent f0c5cca58c
commit 5597446e95
51 changed files with 16411 additions and 105 deletions

View File

@ -7,6 +7,10 @@
<entry key="Nextcloud/Views/Notes.axaml" value="PSCHelpdesk/PSCHelpdesk.Browser/PSCHelpdesk.Browser.csproj" />
<entry key="Nextcloud/Views/NotesView.axaml" value="PSCHelpdesk/PSCHelpdesk.Browser/PSCHelpdesk.Browser.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/App.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Controls/ProgressRing.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/LightTheme.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Toasts/Display/ToastHolder.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Toasts/Display/ToastNotification.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Views/ContentDisplayView.axaml" value="PSCHelpdesk/PSCHelpdesk.Browser/PSCHelpdesk.Browser.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MainView.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
@ -18,6 +22,7 @@
<entry key="PSCHelpdesk/PSCHelpdesk/Views/SettingsView.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Views/SettingsWindow.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="PSCHelpdesk/PSCHelpdesk/Views/TestView.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="Shared/Shared.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
<entry key="Shared/Views/MenuItem.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
</map>
</option>

View File

@ -11,20 +11,25 @@
</component>
<component name="ChangeListManager">
<list default="true" id="95257dc5-08bd-4c50-8726-85956b3c2c92" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/avalonia.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/avalonia.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/HetznerServer.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/HetznerServer.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/HetznerServerBootstrap.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/HetznerServerBootstrap.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/HetznerServer.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/HetznerServer.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/Models/Server.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Models/Server.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/Service/ServerService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Service/ServerService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Nextcloud/Nextcloud.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/Nextcloud/Nextcloud.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk.sln.DotSettings.user" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/MenuService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/MenuService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/App.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/App.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Startup.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Startup.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewLocator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewLocator.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/TestViewModel.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/TestView.axaml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/TestView.axaml.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Shared/Shared.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/Shared/Shared.csproj" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -38,22 +43,21 @@
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/1b81cb3be224213a6a73519b6e340a628d9a1fb8629c351a186a26f6376669/List.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be/ReplaySubject.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/2e6883f773fb7c69a15db509adac9a0c068e4ca54fa119e835fd2324311c3b/Ioc.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/3c92637ae2e83da0a63791071c41eae291d594156062866d8621b7ed7245c/CastHelpers.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/548232ed526ec850f8e542b7449b4145e5c2c61a6576c9328c36e56a27e4/ThrowHelper.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/5cde391207de75962d7bacb899ca2bd3985c86911b152d185b58999a422bf0/Type.CoreCLR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/819105751cb46128114fa4bd3d06a3c14edf957b59ea6fc88b56a13cd93/AvaloniaProperty.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/823a55a44235a82bb5b699f3503a8ea8aaed43d77afde74a37843abbf1e43/ObservableObject.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/9c351d1cc59a183483a88f5532e1891b7ba62d3717a56fe054af25451258bfaf/ObservableCacheEx.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/9d4f4ac7db6d2c5d183ab2d92602280ed4349fd6e6a1b6313546b3d01fdab5/ServiceProvider.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/c7102cd0ffb8973777e61b1942c3fffac7e14016a511d055c3adf73ff91748/ThrowHelper.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/a24e12ad3c769dda2069974789f3b97e5250dcb2392b867444b835b79199ff5/CancellationTokenSource.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/d5f9ed2178f3d3dcf1fd45e7604d8217cd25a16edff8d7dc27769ff7c958e6/RelayCommand{T}.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Shared/IconPack/Icons/PackIconFontAwesomeDataFactory.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Shared/IconPack/Icons/PackIconMaterialDataFactory.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Shared/IconPack/Icons/PackIconMaterialKind.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Vendor/Prise/AssemblyScanning/DefaultAssemblyResolver.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Vendor/Prise/DefaultPluginLoader.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Vendor/Prise/DependencyInjection/ServiceCollectionExtensions.cs" root0="FORCE_HIGHLIGHTING" />
@ -85,6 +89,8 @@
".NET Project.PSCHelpdesk.Desktop.executor": "Run",
"Publish to folder.Build HetznerServer Plugin Debug.executor": "Run",
"Publish to folder.Publish HetznerServer to folder.executor": "Run",
"Publish to folder.Publish NextCloud to folder.executor": "Run",
"Publish to folder.Publish Nextcloud to folder.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"XThreadsFramesViewSplitterKey": "0.4427131",
"git-widget-placeholder": "master",
@ -100,7 +106,11 @@
}]]></component>
<component name="RunManager" selected=".NET Project.PSCHelpdesk.Desktop">
<configuration name="Publish HetznerServer to folder" type="DotNetFolderPublish" factoryName="Publish to folder">
<riderPublish configuration="Debug" delete_existing_files="true" platform="Any CPU" runtime="Portable" target_folder="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk.Desktop/bin/Debug/net9.0/plugins" target_framework="net9.0" uuid_high="6134591891200954270" uuid_low="-7110083162272853959" />
<riderPublish configuration="Debug" platform="Any CPU" runtime="Portable" target_folder="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk.Desktop/bin/Debug/net9.0/plugins" target_framework="net9.0" uuid_high="6134591891200954270" uuid_low="-7110083162272853959" />
<method v="2" />
</configuration>
<configuration name="Publish Nextcloud to folder" type="DotNetFolderPublish" factoryName="Publish to folder">
<riderPublish configuration="Debug" platform="Any CPU" runtime="Portable" target_folder="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk.Desktop/bin/Debug/net9.0/plugins" target_framework="net9.0" uuid_high="5491264484688088597" uuid_low="-7520256693357449726" />
<method v="2" />
</configuration>
<configuration name="PSCHelpdesk.Browser" type="DotNetProject" factoryName=".NET Project">
@ -156,6 +166,7 @@
<method v="2">
<option name="Build" />
<option name="RunConfigurationTask" enabled="true" run_configuration_name="Publish HetznerServer to folder" run_configuration_type="DotNetFolderPublish" />
<option name="RunConfigurationTask" enabled="true" run_configuration_name="Publish Nextcloud to folder" run_configuration_type="DotNetFolderPublish" />
</method>
</configuration>
<configuration name="PSCHelpdesk.Android" type="XamarinAndroidProject" factoryName="Xamarin.Android">
@ -181,6 +192,7 @@
<item itemvalue="Android.PSCHelpdesk.Android" />
<item itemvalue="iOS.PSCHelpdesk.iOS" />
<item itemvalue="Publish to folder.Publish HetznerServer to folder" />
<item itemvalue="Publish to folder.Publish Nextcloud to folder" />
</list>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
@ -199,6 +211,8 @@
<workItem from="1730887536949" duration="12370000" />
<workItem from="1730923358764" duration="8836000" />
<workItem from="1731007273821" duration="2499000" />
<workItem from="1731092625067" duration="8735000" />
<workItem from="1731170148773" duration="22780000" />
</task>
<servers />
</component>
@ -302,6 +316,71 @@
</properties>
<option name="timeStamp" value="168" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs</url>
<line>80</line>
<properties documentPath="$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs" containingFunctionPresentation="Method 'OnClick'">
<startOffsets>
<option value="2752" />
</startOffsets>
<endOffsets>
<option value="2775" />
</endOffsets>
</properties>
<option name="timeStamp" value="185" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs</url>
<line>78</line>
<properties documentPath="$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs" containingFunctionPresentation="Method 'OnClick'">
<startOffsets>
<option value="2723" />
</startOffsets>
<endOffsets>
<option value="2738" />
</endOffsets>
</properties>
<option name="timeStamp" value="186" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs</url>
<line>60</line>
<properties documentPath="$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/dd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a/HyperlinkButton.cs" containingFunctionPresentation="Property 'NavigateUri'">
<startOffsets>
<option value="2172" />
</startOffsets>
<endOffsets>
<option value="2209" />
</endOffsets>
</properties>
<option name="timeStamp" value="187" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs</url>
<line>29</line>
<properties documentPath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" containingFunctionPresentation="Method 'InputElement_OnDoubleTapped'">
<startOffsets>
<option value="849" />
</startOffsets>
<endOffsets>
<option value="869" />
</endOffsets>
</properties>
<option name="timeStamp" value="189" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs</url>
<line>28</line>
<properties documentPath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" containingFunctionPresentation="Method 'InputElement_OnDoubleTapped'">
<startOffsets>
<option value="784" />
</startOffsets>
<endOffsets>
<option value="840" />
</endOffsets>
</properties>
<option name="timeStamp" value="190" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>

View File

@ -32,7 +32,7 @@ public class HetznerServer : Contract
var settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
var hetznerSettings = new Shared.Setting.Item()
{
Header = "HetznerSettings",
Header = "Hetzner",
CommandParameter = new HetznerSettingsViewModel()
};
settingsService.AddSetting(hetznerSettings);

View File

@ -36,6 +36,11 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Private="false" Version="8.0.1" />
<PackageReference Include="Prise.Plugin" Version="6.0.0" Private="false" />
<PackageReference Include="Prise.ReverseProxy" Version="6.1.0" Private="false" />
<PackageReference Include="SSH.NET" Version="2024.1.0" />
</ItemGroup>
<ItemGroup>
<UpToDateCheckInput Remove="Controls\ProgressRing.axaml" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,11 @@
namespace PSCHelpdesk.Plugins.HetznerServer.Models;
public class Domain
{
public string Name { get; set; }
public Domain(String name)
{
this.Name = name;
}
}

View File

@ -1,10 +1,11 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using ReactiveUI;
namespace PSCHelpdesk.Plugins.HetznerServer.Models;
public class Server
public class Server : ReactiveObject
{
public long Id { get; set; }
public string Name { get; set; }
@ -23,5 +24,43 @@ public class Server
Status = status;
Ipv4 = ipv4;
Ipv6 = ipv6;
this.Domains = new List<Domain>();
}
private List<Domain> _domains;
public List<Domain> Domains
{
get => _domains;
set => this.RaiseAndSetIfChanged(ref _domains, value);
}
private string _datum;
public string Datum
{
get => _datum;
set => this.RaiseAndSetIfChanged(ref _datum, value);
}
private float _release;
public float Release
{
get => _release;
set => this.RaiseAndSetIfChanged(ref _release, value);
}
private DateTime _backupLastModified;
public DateTime BackupLastModified {
get => _backupLastModified;
set => this.RaiseAndSetIfChanged(ref _backupLastModified, value);
}
private bool _hasBackup = false;
public bool HasBackup {
get => _hasBackup;
set => this.RaiseAndSetIfChanged(ref _hasBackup, value);
}
}

View File

@ -1,13 +1,17 @@
using System.Collections.ObjectModel;
using System.Net.Http.Headers;
using Avalonia.Threading;
using CommunityToolkit.Mvvm.DependencyInjection;
using DynamicData;
using DynamicData.Binding;
using HetznerCloudApi;
using Newtonsoft.Json.Linq;
using PSCHelpdesk.Plugins.HetznerServer.Models;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Setting;
using PSCHelpdesk.Shared.Tasks;
using ReactiveUI;
using Renci.SshNet;
namespace PSCHelpdesk.Plugins.HetznerServer.Service;
@ -17,19 +21,23 @@ public class ServerService: IServerService
private SettingsManager _settingsManager;
private readonly DispatcherTimer _reloadTimer = new DispatcherTimer();
private string _searchText = string.Empty;
private static readonly HttpClient httpClient = new HttpClient();
private ITaskManager _taskManager;
private readonly IToastManager? _toastManager;
public ServerService()
{
_settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
_taskManager = Ioc.Default.GetService<ITaskManager>();
_toastManager = (IToastManager)Ioc.Default.GetService<IToastManager>();
this._reloadTimer.Tick += (sender, args) =>
{
this.reloadServer();
this.reloadServerStatus();
};
_reloadTimer.Interval = TimeSpan.FromMinutes(10);
_reloadTimer.Interval = TimeSpan.FromMinutes(2);
_reloadTimer.Start();
Task.Run(async () => await this.reloadServer());
this.reloadServer();
}
private async Task reloadServer()
@ -52,5 +60,89 @@ public class ServerService: IServerService
}
}
Task.Run(async () => await this.reloadServerStatus());
}
private async Task reloadServerStatus()
{
var uiDispatcher = Ioc.Default.GetService<IUserInterfaceDispatchService>();
await uiDispatcher.InvokeAsync(() =>
{
_reloadTimer.Stop();
});
foreach (Server serv in SourceCache.Items)
{
var connectionInfo = new ConnectionInfo(serv.Ipv4,
"root",
new PrivateKeyAuthenticationMethod("root", new PrivateKeyFile(this._settingsManager.CoreSettings.PrivateSSHKeyPath)));
using (var client = new SshClient(connectionInfo))
{
try
{
client.Connect();
var command = client.RunCommand("borgmatic info --json");
if (command.ExitStatus == 0)
{
serv.HasBackup = true;
JArray borgMatic = JArray.Parse(command.Result);
await uiDispatcher.InvokeAsync(() =>
{
serv.BackupLastModified = DateTime.Parse(borgMatic[0]["repository"]["last_modified"].ToString());
});
}
command = client.RunCommand("docker inspect psc_web_1");
if (command.ExitStatus == 0)
{
JArray web = JArray.Parse(command.Result);
var webEnvArray = web[0]["Config"]["Env"];
foreach (String entry in webEnvArray)
{
var webExploded = entry.Split("=");
if (webExploded[0] == "LETSENCRYPT_HOST")
{
var webHosts = webExploded[1].Split(",");
serv.Domains.Clear();
foreach (String dom in webHosts)
{
serv.Domains.Add(new Domain(dom));
}
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/ld+json"));
httpClient.DefaultRequestHeaders.Add("User-Agent", "PSC Client");
var stringTask = httpClient.GetStringAsync("https://" + webHosts[0] + "/apps/api/system/version");
var msg = await stringTask;
JObject versionMSg = JObject.Parse(msg);
serv.Datum = versionMSg["datum"].ToString();
serv.Release = float.Parse(versionMSg["release"].ToString());
}
}
}
client.Disconnect();
_toastManager.DisplayNewToast("Server " + serv.Name + " finished");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
await uiDispatcher.InvokeAsync(() =>
{
this._reloadTimer.Start();
});
}
}

View File

@ -36,7 +36,7 @@ public partial class ServerViewModel : ViewModelBase, IViewModelBase
ServerService.SourceCache.Connect()
// Sort Ascending on the OrderIndex property
.Sort(SortExpressionComparer<Server>.Ascending(t => t.Id))
.Filter(x => x.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase))
.Filter(x => x.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase) || x.Domains.Count(d => d.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase)) > 0)
// Bind to our ReadOnlyObservableCollection<T>
.Bind(out _server)
// Subscribe for changes

View File

@ -19,7 +19,7 @@
DisplayMode="Inline"
PanePlacement="Right">
<Grid Margin="20" RowDefinitions="Auto,*">
<StackPanel Grid.Row="0">
<StackPanel Grid.Row="0" Margin="0 0 0 5">
<TextBlock Margin="0 5" >Suchtext</TextBlock>
<TextBox Text="{Binding SearchText}"></TextBox>
</StackPanel>
@ -42,26 +42,23 @@
</EventTriggerBehavior>
</Interaction.Behaviors>
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Id}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Status" Binding="{Binding Status}" CellStyleClasses="status" />
<DataGridTextColumn Header="Type" Binding="{Binding Type}" />
<DataGridTextColumn IsReadOnly="False" Header="IpV4" Binding="{Binding Ipv4}" />
<DataGridTextColumn Header="IpV6" Binding="{Binding Ipv6}" />
<DataGridTemplateColumn Width="*" Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button
HorizontalAlignment="Center"
HorizontalContentAlignment="Center"
Background="#232323"
Command="{Binding ShowServerDetails}"
CommandParameter="{Binding $self}"
Content="View"
Foreground="White" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="*" Header="Id" Binding="{Binding Id}"/>
<DataGridTextColumn Width="*" Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Width="*" Header="Status" Binding="{Binding Status}" CellStyleClasses="status" />
<DataGridTextColumn Width="*" Header="Type" Binding="{Binding Type}" />
<DataGridTextColumn Width="*" IsReadOnly="False" Header="IpV4" Binding="{Binding Ipv4}" />
<DataGridTextColumn Width="*" Header="IpV6" Binding="{Binding Ipv6}" />
<DataGridTextColumn Header="Datum"
Binding="{Binding Datum}"
Width="*" />
<DataGridTextColumn Header="Release"
Binding="{Binding Release}"
Width="*" />
<DataGridTextColumn Header="Last Backup"
Binding="{Binding BackupLastModified}"
Width="*"
CellStyleClasses="lastBackup"/>
<DataGridTemplateColumn Width="*" Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
@ -92,10 +89,18 @@
</DataGrid>
</Grid>
<SplitView.Pane>
<TextBlock Text="{Binding SelectedServer.Name}"
FontSize="24"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<StackPanel>
<TextBlock Text="{Binding SelectedServer.Name}" FontSize="24"/>
<ListBox ItemsSource="{Binding SelectedServer.Domains}" Margin="0" Padding="0">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Padding="1" Margin="0">
<TextBox Text="{Binding Name}" DoubleTapped="InputElement_OnDoubleTapped"></TextBox>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</SplitView.Pane>
</SplitView>
</UserControl>

View File

@ -1,5 +1,7 @@
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Threading;
using PSCHelpdesk.Plugins.HetznerServer.Models;
using PSCHelpdesk.Plugins.HetznerServer.ViewModels;
@ -21,4 +23,16 @@ public partial class ServerView : UserControl
{
((ServerViewModel)DataContext).SCP(((Button)sender).DataContext as Server);
}
private void InputElement_OnDoubleTapped(object? sender, TappedEventArgs e)
{
Uri? uri = new Uri("https://" + ((TextBox)sender).Text);
if (uri is not null)
{
Dispatcher.UIThread.Post(async () =>
{
bool success = await TopLevel.GetTopLevel(this)!.Launcher.LaunchUriAsync(uri);
});
}
}
}

View File

@ -0,0 +1,11 @@
namespace PSCHelpdesk.Plugins.Nextcloud.Models;
public class Settings
{
public string ServerUrl { get; set; }
public Settings()
{
ServerUrl = "https://api.nextcloud.com";
}
}

43
Nextcloud/Nextcloud.cs Normal file
View File

@ -0,0 +1,43 @@
using CommunityToolkit.Mvvm.DependencyInjection;
using Prise.Plugin;
using PSCHelpdesk.Plugins.Nextcloud.ViewModels;
using PSCHelpdesk.Plugins.Nextcloud.Views;
using PSCHelpdesk.Shared.Menu;
using PSCHelpdesk.Shared.Plugin;
using PSCHelpdesk.Shared.Service;
namespace PSCHelpdesk.Plugins.Nextcloud;
[Plugin(PluginType = typeof(Contract))]
public class Nextcloud : Contract
{
public string GetName()
{
return "NextcloudPlugin";
}
public void Configure()
{
var menuService = Ioc.Default.GetRequiredService<IMenuService>();
/*var serverTab = new Item()
{
Header = "Server",
CommandParameter = new ServerViewModel(new ServerService())
};
menuService.AddMenuItem(serverTab);
*/
var settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
var hetznerSettings = new Shared.Setting.Item()
{
Header = "Nextcloud",
CommandParameter = new NextcloudSettingsViewModel()
};
settingsService.AddSetting(hetznerSettings);
}
public List<Type> LoadViews()
{
return [typeof(NextcloudSettingsView)];
}
}

View File

@ -8,14 +8,21 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.2.0" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.2.0" />
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.2.0" />
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="11.2.0" />
<PackageReference Include="Avalonia" Version="11.2.0" Private="false" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.2.0" Private="false" />
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.2.0" Private="false" />
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="11.2.0" Private="false" />
<PackageReference Include="Prise.Plugin" Version="6.0.0" Private="false" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Shared\Shared.csproj" />
<ProjectReference Include="..\Shared\Shared.csproj" Private="false"/>
</ItemGroup>
<ItemGroup>
<Reference Include="CommunityToolkit.Mvvm" Private="false">
<HintPath>..\..\..\.nuget\packages\communitytoolkit.mvvm\8.3.2\lib\net8.0\CommunityToolkit.Mvvm.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View File

@ -0,0 +1,27 @@
using CommunityToolkit.Mvvm.DependencyInjection;
using PSCHelpdesk.Plugins.Nextcloud.Models;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Setting;
using PSCHelpdesk.Shared.ViewModels;
namespace PSCHelpdesk.Plugins.Nextcloud.ViewModels;
public class NextcloudSettingsViewModel: ViewModelBase, IViewModelBase
{
private string _serverUrl;
public NextcloudSettingsViewModel()
{
var settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
var settings = new Settings();
settingsManager.LoadPluginSettings("NextcloudSettings", settings);
ServerUrl = settings.ServerUrl;
}
public string ServerUrl
{
get => _serverUrl;
set => SetAndRaisePropertyChanged(ref _serverUrl, value);
}
}

View File

@ -0,0 +1,18 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:PSCHelpdesk.Plugins.Nextcloud.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="PSCHelpdesk.Plugins.Nextcloud.Views.NextcloudSettingsView">
<Design.DataContext>
<vm:NextcloudSettingsViewModel></vm:NextcloudSettingsViewModel>
</Design.DataContext>
<StackPanel>
<TextBlock Margin="0 5" >Server Url</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="1">
<TextBox Text="{Binding ServerUrl}" Width="400"></TextBox>
</StackPanel>
<Button Margin="0 5" Content="Save Settings" Click="SaveSettings_OnClick"></Button>
</StackPanel>
</UserControl>

View File

@ -0,0 +1,31 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using CommunityToolkit.Mvvm.DependencyInjection;
using PSCHelpdesk.Plugins.Nextcloud.Models;
using PSCHelpdesk.Plugins.Nextcloud.ViewModels;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Setting;
namespace PSCHelpdesk.Plugins.Nextcloud.Views;
public partial class NextcloudSettingsView : UserControl
{
private SettingsManager settingsManager;
private Settings settings;
public NextcloudSettingsView()
{
InitializeComponent();
settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
settings = new Settings();
settingsManager.LoadPluginSettings("NextcloudSettings", settings);
}
private void SaveSettings_OnClick(object? sender, RoutedEventArgs e)
{
settings.ServerUrl = ((NextcloudSettingsViewModel)this.DataContext).ServerUrl;
settingsManager.SavePluginSettings("NextcloudSettings", settings);
}
}

View File

@ -5,6 +5,8 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAsyncVoidMethodBuilder_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fe91a2750b979a5265711aaa020b980ebe7c5168bdf221ad2e32d16e3f74b8382_003FAsyncVoidMethodBuilder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAttribute_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F733ec677d6c51f97541ef76ab82bf19a08e02c42b0f78d439f4b3b24dfdbb_003FAttribute_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAvaloniaObject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fa119bbffad50bc743b255772611ceba491d63fce14a64e86c71a607766c5b0_003FAvaloniaObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAvaloniaProperty_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F819105751cb46128114fa4bd3d06a3c14edf957b59ea6fc88b56a13cd93_003FAvaloniaProperty_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACancellationTokenSource_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fa24e12ad3c769dda2069974789f3b97e5250dcb2392b867444b835b79199ff5_003FCancellationTokenSource_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F3c92637ae2e83da0a63791071c41eae291d594156062866d8621b7ed7245c_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F45c62c1f9af1eb2248ec17220752868b3b6728095879e849b6ea733ef7f5ff_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AChar_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F711f7792fa6122388fd055dc53371e134cb0064e6918a15d025c8778db5b73_003FChar_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@ -19,6 +21,7 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFile_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fe6a62e457eaef3f1f68c2a3e51b1b1351d3f2a3cef1a7379c6248f38bb8d64e8_003FFile_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFirst_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fc9f1e78ef04f5214281bc448c6a251bb5f9a3135b662f76745bbfb39b14150_003FFirst_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHeaderedSelectingItemsControl_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F16a25d89779ca224b34f189688787a4b4f091751ee7706b8b396a5e88aa225_003FHeaderedSelectingItemsControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHyperlinkButton_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fdd582eafcc7da4dc5ece1e7e4de37b1f271b42b4cea54a2aecfe3bda3fd2e5a_003FHyperlinkButton_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIoc_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F2e6883f773fb7c69a15db509adac9a0c068e4ca54fa119e835fd2324311c3b_003FIoc_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIoc_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F2e6883f773fb7c69a15db509adac9a0c068e4ca54fa119e835fd2324311c3b_003FIoc_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIpv6_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F95e899f2b13d4189874af98ec00443321e400_003Ff7_003F54c88032_003FIpv6_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@ -30,10 +33,13 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemoryExtensions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fd7bc48c79f70bd7a187cf86258b2815e2deb22274953837f735bbfe18f6c69e2_003FMemoryExtensions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemoryMarshal_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fc05785bcebd2c944852db620e6681c606cd57f85b59fc5ddfcfbe9a68d634f_003FMemoryMarshal_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMethodBaseInvoker_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fd6b757e154dd7f8c23e0e785431c97a76e4b9c6bdae38b978238421dbab55d_003FMethodBaseInvoker_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObservableCacheEx_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9c351d1cc59a183483a88f5532e1891b7ba62d3717a56fe054af25451258bfaf_003FObservableCacheEx_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObservableObject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F823a55a44235a82bb5b699f3503a8ea8aaed43d77afde74a37843abbf1e43_003FObservableObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APath_002EUnix_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fad21a37fb9c62642a9445c29321d3d136d19fa60425b26806692bbfee3523c_003FPath_002EUnix_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APublicNet_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F95e899f2b13d4189874af98ec00443321e400_003F0d_003F00fcbad0_003FPublicNet_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReactiveCommandBase_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9d493cae194a42808b62a282d8d797b4ef18a9435baa6da7a73bee8e66ca1_003FReactiveCommandBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReadOnlySpan_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fd0d96f40fdd9bc395fad59e4a8a6539e4eecce4865809ef4be1a473f911eceaa_003FReadOnlySpan_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARelayCommand_007BT_007D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fd5f9ed2178f3d3dcf1fd45e7604d8217cd25a16edff8d7dc27769ff7c958e6_003FRelayCommand_007BT_007D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReplaySubject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be_003FReplaySubject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReplaySubject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be_003FReplaySubject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARuntimeHelpers_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F5ef9e37e2f99ef2688a1586afed1cff6eef912a11aa9b20a56943a255a6e6b_003FRuntimeHelpers_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

View File

@ -11,7 +11,18 @@
<Application.Styles>
<FluentTheme/>
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml"/>
<StyleInclude Source="avares://PSCHelpdesk/LightTheme.axaml"/>
<Style Selector="Button.styleless">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Margin" Value="0" />
<Setter Property="Padding" Value="0" />
</Style>
<Style Selector="Button.styleless:pressed /template/ ContentPresenter">
<Setter Property="Background" Value="{TemplateBinding Background}"/>
</Style>
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Simple.xaml"/>
<StyleInclude Source="avares://PSCHelpdesk/Views/ContentDisplay.axaml" />
<StyleInclude Source="avares://Shared/Shared.axaml" />
</Application.Styles>
</Application>

View File

@ -0,0 +1,392 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:PSCHelpdesk.Controls">
<Design.PreviewWith>
<Border Padding="20">
<controls:ProgressRing Foreground="Blue" Background="White" IsActive="True"/>
</Border>
</Design.PreviewWith>
<Style Selector="controls|ProgressRing">
<Setter Property="Width" Value="60" />
<Setter Property="Height" Value="60" />
<Setter Property="MinWidth" Value="20" />
<Setter Property="MinHeight" Value="20" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate TargetType="controls:ProgressRing">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Border.Styles>
<Style Selector="Ellipse">
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Opacity" Value="1" />
<Setter Property="VerticalAlignment" Value="Top" />
</Style>
<!--<Style Selector="Canvas#e1 > Ellipse">
<Style.Animations>
<Animation Duration="0:0:3.47" IterationCount="Infinite">
<KeyFrame Cue="0">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.51%">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.80%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e2 > Ellipse">
<Style.Animations>
<Animation Duration="0:0:3.47" IterationCount="Infinite" Delay="0.167">
<KeyFrame Cue="0">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.51%">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.80%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e3 > Ellipse">
<Style.Animations>
<Animation Duration="0:0:3.47" IterationCount="Infinite" Delay="0.334">
<KeyFrame Cue="0">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.51%">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.80%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e4 > Ellipse">
<Style.Animations>
<Animation Duration="0:0:3.47" IterationCount="Infinite" Delay="0.501">
<KeyFrame Cue="0">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.51%">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.80%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e5 > Ellipse">
<Style.Animations>
<Animation Duration="0:0:3.47" IterationCount="Infinite" Delay="0.668">
<KeyFrame Cue="0">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.51%">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.80%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e6 > Ellipse">
<Style.Animations>
<Animation Duration="0:0:3.47" IterationCount="Infinite" Delay="0.835">
<KeyFrame Cue="0">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.51%">
<Setter Property="Opacity" Value="1" />
</KeyFrame>
<KeyFrame Cue="92.80%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="Opacity" Value="0" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>-->
<Style Selector="Canvas#e1">
<Style.Animations>
<Animation Duration="0:0:3.217" IterationCount="Infinite">
<KeyFrame Cue="0">
<Setter Property="RotateTransform.Angle" Value="-110" />
</KeyFrame>
<KeyFrame Cue="13.8%">
<Setter Property="RotateTransform.Angle" Value="10" />
</KeyFrame>
<KeyFrame Cue="37.3%">
<Setter Property="RotateTransform.Angle" Value="93" />
</KeyFrame>
<KeyFrame Cue="50.3%">
<Setter Property="RotateTransform.Angle" Value="205" />
</KeyFrame>
<KeyFrame Cue="62.7%">
<Setter Property="RotateTransform.Angle" Value="357" />
</KeyFrame>
<KeyFrame Cue="86.5%">
<Setter Property="RotateTransform.Angle" Value="439" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="RotateTransform.Angle" Value="585" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e2">
<Style.Animations>
<Animation Duration="0:0:3.217" IterationCount="Infinite" Delay="0.167">
<KeyFrame Cue="0">
<Setter Property="RotateTransform.Angle" Value="-116" />
</KeyFrame>
<KeyFrame Cue="13.8%">
<Setter Property="RotateTransform.Angle" Value="4" />
</KeyFrame>
<KeyFrame Cue="37.3%">
<Setter Property="RotateTransform.Angle" Value="93" />
</KeyFrame>
<KeyFrame Cue="50.3%">
<Setter Property="RotateTransform.Angle" Value="199" />
</KeyFrame>
<KeyFrame Cue="62.7%">
<Setter Property="RotateTransform.Angle" Value="351" />
</KeyFrame>
<KeyFrame Cue="86.5%">
<Setter Property="RotateTransform.Angle" Value="433" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="RotateTransform.Angle" Value="579" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e3">
<Style.Animations>
<Animation Duration="0:0:3.217" IterationCount="Infinite" Delay="0.334">
<KeyFrame Cue="0">
<Setter Property="RotateTransform.Angle" Value="-122" />
</KeyFrame>
<KeyFrame Cue="13.8%">
<Setter Property="RotateTransform.Angle" Value="-2" />
</KeyFrame>
<KeyFrame Cue="37.3%">
<Setter Property="RotateTransform.Angle" Value="81" />
</KeyFrame>
<KeyFrame Cue="50.3%">
<Setter Property="RotateTransform.Angle" Value="193" />
</KeyFrame>
<KeyFrame Cue="62.7%">
<Setter Property="RotateTransform.Angle" Value="345" />
</KeyFrame>
<KeyFrame Cue="86.5%">
<Setter Property="RotateTransform.Angle" Value="427" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="RotateTransform.Angle" Value="573" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e4">
<Style.Animations>
<Animation Duration="0:0:3.217" IterationCount="Infinite" Delay="0.501">
<KeyFrame Cue="0">
<Setter Property="RotateTransform.Angle" Value="-128" />
</KeyFrame>
<KeyFrame Cue="13.8%">
<Setter Property="RotateTransform.Angle" Value="-8" />
</KeyFrame>
<KeyFrame Cue="37.3%">
<Setter Property="RotateTransform.Angle" Value="75" />
</KeyFrame>
<KeyFrame Cue="50.3%">
<Setter Property="RotateTransform.Angle" Value="187" />
</KeyFrame>
<KeyFrame Cue="62.7%">
<Setter Property="RotateTransform.Angle" Value="339" />
</KeyFrame>
<KeyFrame Cue="86.5%">
<Setter Property="RotateTransform.Angle" Value="421" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="RotateTransform.Angle" Value="567" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e5">
<Style.Animations>
<Animation Duration="0:0:3.217" IterationCount="Infinite" Delay="0.668">
<KeyFrame Cue="0">
<Setter Property="RotateTransform.Angle" Value="-134" />
</KeyFrame>
<KeyFrame Cue="13.8%">
<Setter Property="RotateTransform.Angle" Value="-14" />
</KeyFrame>
<KeyFrame Cue="37.3%">
<Setter Property="RotateTransform.Angle" Value="69" />
</KeyFrame>
<KeyFrame Cue="50.3%">
<Setter Property="RotateTransform.Angle" Value="181" />
</KeyFrame>
<KeyFrame Cue="62.7%">
<Setter Property="RotateTransform.Angle" Value="331" />
</KeyFrame>
<KeyFrame Cue="86.5%">
<Setter Property="RotateTransform.Angle" Value="415" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="RotateTransform.Angle" Value="561" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Canvas#e6">
<Style.Animations>
<Animation Duration="0:0:3.217" IterationCount="Infinite" Delay="0.835">
<KeyFrame Cue="0">
<Setter Property="RotateTransform.Angle" Value="-140" />
</KeyFrame>
<KeyFrame Cue="13.8%">
<Setter Property="RotateTransform.Angle" Value="-20" />
</KeyFrame>
<KeyFrame Cue="37.3%">
<Setter Property="RotateTransform.Angle" Value="63" />
</KeyFrame>
<KeyFrame Cue="50.3%">
<Setter Property="RotateTransform.Angle" Value="175" />
</KeyFrame>
<KeyFrame Cue="62.7%">
<Setter Property="RotateTransform.Angle" Value="325" />
</KeyFrame>
<KeyFrame Cue="86.5%">
<Setter Property="RotateTransform.Angle" Value="409" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="RotateTransform.Angle" Value="555" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
</Border.Styles>
<Grid MaxWidth="{Binding MaxSideLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"
MaxHeight="{Binding MaxSideLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{TemplateBinding Padding}"
Background="Transparent"
RenderTransformOrigin="50%,50%"
IsVisible="{TemplateBinding IsActive}">
<Canvas RenderTransformOrigin="50%,50%" Name="e1">
<Canvas.RenderTransform>
<RotateTransform />
</Canvas.RenderTransform>
<Ellipse Width="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Height="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{Binding EllipseOffset, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Fill="{TemplateBinding Foreground}" />
</Canvas>
<Canvas RenderTransformOrigin="50%,50%" Name="e2">
<Canvas.RenderTransform>
<RotateTransform />
</Canvas.RenderTransform>
<Ellipse x:Name="E2"
Width="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Height="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{Binding EllipseOffset, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Fill="{TemplateBinding Foreground}" />
</Canvas>
<Canvas RenderTransformOrigin="50%,50%" Name="e3">
<Canvas.RenderTransform>
<RotateTransform />
</Canvas.RenderTransform>
<Ellipse x:Name="E3"
Width="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Height="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{Binding EllipseOffset, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Fill="{TemplateBinding Foreground}" />
</Canvas>
<Canvas RenderTransformOrigin="50%,50%" Name="e4">
<Canvas.RenderTransform>
<RotateTransform />
</Canvas.RenderTransform>
<Ellipse x:Name="E4"
Width="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Height="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{Binding EllipseOffset, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Fill="{TemplateBinding Foreground}" />
</Canvas>
<Canvas RenderTransformOrigin="50%,50%" Name="e5">
<Canvas.RenderTransform>
<RotateTransform />
</Canvas.RenderTransform>
<Ellipse x:Name="E5"
Width="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Height="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{Binding EllipseOffset, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Fill="{TemplateBinding Foreground}" />
</Canvas>
<Canvas RenderTransformOrigin="50%,50%"
IsVisible="True"
Name="e6">
<Canvas.RenderTransform>
<RotateTransform />
</Canvas.RenderTransform>
<Ellipse x:Name="E6"
Width="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Height="{Binding EllipseDiameter, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="{Binding EllipseOffset, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Fill="{TemplateBinding Foreground}">
</Ellipse>
</Canvas>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
</Styles>

View File

@ -0,0 +1,102 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using System.Reactive.Disposables;
using System.Reactive.Linq;
namespace PSCHelpdesk.Controls
{
/// <summary>
/// <see cref="ProgressRing"/> provides a Windows 10 styled circular loading animation.
/// </summary>
/// <remarks>
/// Adapted from the MahApps Metro implementation at
/// https://github.com/MahApps/MahApps.Metro/blob/develop/src/MahApps.Metro/Controls/ProgressRing.cs.
/// </remarks>
public class ProgressRing : TemplatedControl
{
public static readonly StyledProperty<bool> IsActiveProperty =
AvaloniaProperty.Register<ProgressRing, bool>(
"IsActive",
inherits: true,
defaultValue: true);
public static readonly StyledProperty<double> MaxSideLengthProperty =
AvaloniaProperty.Register<ProgressRing, double>(
"MaxSideLength",
inherits: true);
public static readonly StyledProperty<double> EllipseDiameterProperty =
AvaloniaProperty.Register<ProgressRing, double>(
"EllipseDiameter",
inherits: true);
public static readonly StyledProperty<Thickness> EllipseOffsetProperty =
AvaloniaProperty.Register<ProgressRing, Thickness>(
"EllipseOffset",
inherits: true);
public static readonly StyledProperty<double> EllipseDiameterScaleProperty =
AvaloniaProperty.Register<ProgressRing, double>(
"EllipseDiameterScale",
inherits: true,
defaultValue: 1D);
private readonly CompositeDisposable disposables = new CompositeDisposable();
public ProgressRing()
{
this.GetObservable(Control.BoundsProperty).ForEachAsync((rect) =>
{
this.SetEllipseDiameter(rect.Width);
this.SetEllipseOffset(rect.Width);
this.SetMaxSideLength(rect.Width);
}).DisposeWith(this.disposables);
}
public double MaxSideLength
{
get => (double)this.GetValue(MaxSideLengthProperty);
private set => this.SetValue(MaxSideLengthProperty, value);
}
public double EllipseDiameter
{
get => (double)this.GetValue(EllipseDiameterProperty);
private set => this.SetValue(EllipseDiameterProperty, value);
}
public double EllipseDiameterScale
{
get => (double)this.GetValue(EllipseDiameterScaleProperty);
set => this.SetValue(EllipseDiameterScaleProperty, value);
}
public Thickness EllipseOffset
{
get => (Thickness)this.GetValue(EllipseOffsetProperty);
private set => this.SetValue(EllipseOffsetProperty, value);
}
public bool IsActive
{
get => (bool)this.GetValue(IsActiveProperty);
set => this.SetValue(IsActiveProperty, value);
}
private void SetMaxSideLength(double width)
{
this.MaxSideLength = width <= 20 ? 20 : width;
}
private void SetEllipseDiameter(double width)
{
this.EllipseDiameter = (width / 8) * this.EllipseDiameterScale;
}
private void SetEllipseOffset(double width)
{
this.EllipseOffset = new Thickness(0, width / 2, 0, 0);
}
}
}

View File

@ -0,0 +1,54 @@
<Style xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
<Style.Resources>
<FontFamily x:Key="GroupMeFont">WeblySleek UI</FontFamily>
<Color x:Key="LoadingSpinnerDarkColor">#CC119EDA</Color>
<Color x:Key="MenuButtonLightColor">#F7F7F7</Color>
<Color x:Key="GroupsSidebarFontColor">#637182</Color>
<Color x:Key="MessageFontColor">#637182</Color>
<Color x:Key="MessageDetailsColor">#FFD3D3D3</Color>
<Color x:Key="DividerLineColor">#637182</Color>
<Color x:Key="UnreadBubbleForegroundColor">#FFFFFF</Color>
<Color x:Key="ScrollToBottomButtonColor">#637182</Color>
<Color x:Key="SidebarColor">#1873BA</Color>
<Color x:Key="SidebarHoverColor">#1584C7</Color>
<Color x:Key="MessageISentBackdropColor">#DBF4FD</Color>
<Color x:Key="MessageTheySentBackdropColor">#F7F7F7</Color>
<Color x:Key="MessageILikedColor">#F77070</Color>
<Color x:Key="MessageTheyLikedColor">#FF808080</Color>
<Color x:Key="LikerAreaBackgroundColor">#F7F7F7</Color>
<Color x:Key="TweetBackgroundColor">#FFFFFF</Color>
<Color x:Key="NotificationBackgroundColor">#F7F7F7</Color>
<Color x:Key="NotificationBorder1Color">#F7F7F7</Color>
<Color x:Key="NotificationBorder2Color">#AFAFAF</Color>
<Color x:Key="PluginButtonBackgroundColor">#D5D5D5</Color>
<Color x:Key="PluginButtonFontColor">#414A6E</Color>
<Color x:Key="PluginMenuColor">#FFFFFF</Color>
<SolidColorBrush x:Key="LoadingSpinnerDarkBrush" Color="{DynamicResource LoadingSpinnerDarkColor}"/>
<SolidColorBrush x:Key="MenuButtonLightBrush" Color="{DynamicResource MenuButtonLightColor}"/>
<SolidColorBrush x:Key="GroupsSidebarFontBrush" Color="{DynamicResource GroupsSidebarFontColor}"/>
<SolidColorBrush x:Key="MessageFontBrush" Color="{DynamicResource MessageFontColor}"/>
<SolidColorBrush x:Key="MessageDetailsBrush" Color="{DynamicResource MessageDetailsColor}"/>
<SolidColorBrush x:Key="DividerLineBrush" Color="{DynamicResource DividerLineColor}"/>
<SolidColorBrush x:Key="UnreadBubbleForegroundBrush" Color="{DynamicResource UnreadBubbleForegroundColor}"/>
<SolidColorBrush x:Key="ScrollToBottomButtonBrush" Color="{DynamicResource ScrollToBottomButtonColor}"/>
<SolidColorBrush x:Key="SidebarBrush" Color="{DynamicResource SidebarColor}"/>
<SolidColorBrush x:Key="SidebarHoverBrush" Color="{DynamicResource SidebarHoverColor}"/>
<SolidColorBrush x:Key="MessageISentBackdropBrush" Color="{DynamicResource MessageISentBackdropColor}"/>
<SolidColorBrush x:Key="MessageTheySentBackdropBrush" Color="{DynamicResource MessageTheySentBackdropColor}"/>
<SolidColorBrush x:Key="MessageILikedBrush" Color="{DynamicResource MessageILikedColor}"/>
<SolidColorBrush x:Key="MessageTheyLikedBrush" Color="{DynamicResource MessageTheyLikedColor}"/>
<SolidColorBrush x:Key="LikerAreaBackgroundBrush" Color="{DynamicResource LikerAreaBackgroundColor}"/>
<SolidColorBrush x:Key="TweetBackgroundBrush" Color="{DynamicResource TweetBackgroundColor}"/>
<SolidColorBrush x:Key="NotificationBackgroundBrush" Color="{DynamicResource NotificationBackgroundColor}"/>
<SolidColorBrush x:Key="NotificationBorder1Brush" Color="{DynamicResource NotificationBorder1Color}"/>
<SolidColorBrush x:Key="NotificationBorder2Brush" Color="{DynamicResource NotificationBorder2Color}"/>
<SolidColorBrush x:Key="PluginButtonBackgroundBrush" Color="{DynamicResource PluginButtonBackgroundColor}" />
<SolidColorBrush x:Key="PluginButtonFontBrush" Color="{DynamicResource PluginButtonFontColor}" />
<SolidColorBrush x:Key="PluginMenuBrush" Color="{DynamicResource PluginMenuColor}" />
</Style.Resources>
</Style>

View File

@ -49,6 +49,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Model\" />
<AdditionalFiles Include="Controls\ProgressRing.axaml" />
</ItemGroup>
</Project>

View File

@ -6,6 +6,7 @@ using Microsoft.Extensions.DependencyInjection;
using PSCHelpdesk.Shared.Menu;
using PSCHelpdesk.Shared.Plugin;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Tasks;
namespace PSCHelpdesk.Services;
@ -26,6 +27,7 @@ public class PluginService
{
this.scanPlugins();
this.LoadPlugin("HetznerServer");
this.LoadPlugin("Nextcloud");
}
public Dictionary<string, string> GetPlugins()
{
@ -65,6 +67,7 @@ public class PluginService
var menuService = Ioc.Default.GetRequiredService<IMenuService>();
var settingsService = Ioc.Default.GetRequiredService<ISettingsService>();
var settingsManager = Ioc.Default.GetRequiredService<ISettingsManager>();
var taskManager = Ioc.Default.GetRequiredService<ITaskManager>();
var testService = Ioc.Default.GetRequiredService<ITestService>();
var appService = Ioc.Default.GetService(typeof(AppService)) as AppService;
@ -81,6 +84,7 @@ public class PluginService
.AddHostService<IMenuService>(menuService)
.AddHostService<ISettingsService>(settingsService)
.AddHostService<ISettingsManager>(settingsManager)
.AddHostService<ITaskManager>(taskManager)
.AddHostService<ITestService>(testService)
//.AddHostService<SettingsManager>(settingsService)

View File

@ -6,6 +6,10 @@ using PSCHelpdesk.Converter;
using PSCHelpdesk.Services;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Setting;
using PSCHelpdesk.Shared.Tasks;
using PSCHelpdesk.Tasks;
using PSCHelpdesk.Toasts;
using PSCHelpdesk.Toasts.Display;
using PSCHelpdesk.ViewModels;
namespace PSCHelpdesk;
@ -17,6 +21,8 @@ class Startup
var menuService = new MenuService();
var settingsManager = new SettingsManager();
var settingsService = new SettingsService();
var taskManager = new TaskManager();
var toastManager = new ToastManager();
var te = new ServiceCollection()
.AddSingleton<IUserInterfaceDispatchService, AvaloniaDispatcherService>()
@ -24,10 +30,12 @@ class Startup
.AddFactory<IResultConverter>(()=> new AvaloniaPluginResultConverter())
.AddSingleton<AppService>()
.AddSingleton<ISettingsManager>(settingsManager)
.AddSingleton<IMenuService>(menuService)
.AddSingleton<ISettingsService>(settingsService)
.AddSingleton<ITaskManager>(taskManager)
.AddSingleton<IMenuService>(menuService)
.AddSingleton<ITestService>(new TestService())
.AddSingleton<PluginService>()
.AddSingleton<IToastManager>(toastManager)
.AddTransient<PluginListViewModel>();

View File

@ -0,0 +1,146 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.DependencyInjection;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Tasks;
namespace PSCHelpdesk.Tasks
{
/// <summary>
/// <see cref="TaskManager"/> manages a collection of running <see cref="GroupMeTask"/>s.
/// </summary>
public class TaskManager: ITaskManager
{
/// <summary>
/// Initializes a new instance of the <see cref="TaskManager"/> class.
/// </summary>
public TaskManager()
{
this.RunningTasks = new ObservableCollection<GroupMeTask>();
}
/// <summary>
/// Event that fires when the number of tasks that are currently executing changes.
/// </summary>
public event Action<object, EventArgs> TaskCountChanged;
/// <summary>
/// Gets a listing of <see cref="GroupMeTask"/> that are currently running.
/// </summary>
public ObservableCollection<GroupMeTask> RunningTasks { get; }
/// <summary>
/// Begins execution of a new task.
/// </summary>
/// <param name="name">The name of the operation.</param>
/// <param name="tag">A user-defined tag for the <see cref="GroupMeTask"/>.</param>
/// <param name="payload">The task payload that should be scheduled for execution.</param>
/// <param name="cancellationTokenSource">The token source that should be used to cancel the task.</param>
public void AddTask(string name, string tag, Task payload, CancellationTokenSource cancellationTokenSource = null)
{
var task = new GroupMeTask(name, tag, payload, cancellationTokenSource);
payload.ContinueWith(x => this.TaskCompleted(task));
var uiDispatcher = Ioc.Default.GetService<IUserInterfaceDispatchService>();
uiDispatcher.Invoke(() =>
{
this.RunningTasks.Add(task);
});
this.TaskCountChanged?.Invoke(this, new EventArgs());
}
/// <summary>
/// Updates the count of unnamed, background loading tasks that are currently executing.
/// </summary>
/// <param name="loadCount">The number of background tasks running.</param>
public void UpdateNumberOfBackgroundLoads(int loadCount)
{
var uiDispatcher = Ioc.Default.GetService<IUserInterfaceDispatchService>();
GroupMeTask currentBackgroundTask = this.RunningTasks.FirstOrDefault(t => t.Tag == "backgroundcount");
if (currentBackgroundTask != null)
{
uiDispatcher.Invoke(() =>
{
this.RunningTasks.Remove(currentBackgroundTask);
});
}
if (loadCount > 0)
{
var newBackgroundTask = new GroupMeTask(
$"{loadCount} Group Updates",
"backgroundcount",
Task.CompletedTask);
uiDispatcher.Invoke(() =>
{
this.RunningTasks.Insert(0, newBackgroundTask);
});
}
this.TaskCountChanged?.Invoke(this, new EventArgs());
}
private void TaskCompleted(GroupMeTask taskWrapper)
{
var uiDispatcher = Ioc.Default.GetService<IUserInterfaceDispatchService>();
uiDispatcher.Invoke(() =>
{
this.RunningTasks.Remove(taskWrapper);
});
this.TaskCountChanged?.Invoke(this, new EventArgs());
}
/// <summary>
/// <see cref="GroupMeTask"/> represents an asychronous named operation that runs with access to <see cref="Group"/> or <see cref="Chat"/> data.
/// </summary>
public class GroupMeTask
{
/// <summary>
/// Initializes a new instance of the <see cref="GroupMeTask"/> class.
/// </summary>
/// <param name="name">The name of the operation.</param>
/// <param name="tag">A user-defined tag for the <see cref="GroupMeTask"/>.</param>
/// <param name="payload">The task payload that should be scheduled for execution.</param>
/// <param name="cancellationTokenSource">The token source that should be used to cancel the task.</param>
public GroupMeTask(string name, string tag, Task payload, CancellationTokenSource cancellationTokenSource = null)
{
this.Name = name;
this.Tag = tag;
this.Payload = payload;
this.CancellationTokenSource = cancellationTokenSource ?? new CancellationTokenSource();
}
/// <summary>
/// Gets the name of the background task.
/// </summary>
public string Name { get; }
/// <summary>
/// Gets the tag used to uniquely identify this task.
/// </summary>
public string Tag { get; }
private CancellationTokenSource CancellationTokenSource { get; }
private Task Payload { get; }
/// <summary>
/// Cancels the ongoing task.
/// </summary>
public void Cancel()
{
if (!this.Payload.IsCompleted)
{
this.CancellationTokenSource.Cancel();
}
}
}
}
}

View File

@ -0,0 +1,47 @@
<UserControl x:Class="PSCHelpdesk.Toasts.Display.ToastHolder"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:PSCHelpdesk.Toasts.Display"
x:DataType="vm:ToastHolderViewModel"
mc:Ignorable="d" d:DesignWidth="200" d:DesignHeight="300">
<Grid Margin="5">
<ItemsControl ItemsSource="{Binding ToastManager.Notifications}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<UserControl Content="{Binding Path=.}"
Padding="0,2,0,0"
RenderTransformOrigin="50%, 50%">
<UserControl.RenderTransform>
<ScaleTransform />
</UserControl.RenderTransform>
<UserControl.Styles>
<Style Selector="UserControl">
<Style.Animations>
<Animation Duration="0:0:0.3">
<KeyFrame Cue="0">
<Setter Property="ScaleTransform.ScaleX" Value="0" />
<Setter Property="ScaleTransform.ScaleY" Value="0" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="ScaleTransform.ScaleX" Value="1" />
<Setter Property="ScaleTransform.ScaleY" Value="1" />
</KeyFrame>
</Animation>
</Style.Animations>
</Style>
</UserControl.Styles>
</UserControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace PSCHelpdesk.Toasts.Display;
public partial class ToastHolder : UserControl
{
public ToastHolder()
{
InitializeComponent();
}
}

View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.DependencyInjection;
using CommunityToolkit.Mvvm.Input;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.ViewModels;
using PSCHelpdesk.Toasts.Display;
namespace PSCHelpdesk.Toasts.Display;
public class ToastHolderViewModel : ViewModelBase, IViewModelBase
{
public ToastManager ToastManager {get; private set;}
public ToastHolderViewModel()
{
ToastManager = (ToastManager)Ioc.Default.GetService<IToastManager>();
}
}

View File

@ -0,0 +1,40 @@
<UserControl x:Class="PSCHelpdesk.Toasts.Display.ToastNotification"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPack="clr-namespace:PSCHelpdesk.Shared;assembly=Shared"
xmlns:vm="using:PSCHelpdesk.Toasts.Display"
x:DataType="vm:ToastNotificationViewModel"
mc:Ignorable="d" d:DesignWidth="250" d:DesignHeight="100">
<Grid ColumnDefinitions="*,Auto" Background="{DynamicResource NotificationBackgroundColor}">
<Border Grid.ColumnSpan="2" Height="65" Background="{DynamicResource NotificationBackgroundBrush}"
BorderBrush="{DynamicResource NotificationBorder1Brush}" BorderThickness="4,4,4,0" />
<Border Grid.ColumnSpan="2" Height="65" Background="Transparent"
BorderBrush="{DynamicResource NotificationBorder2Brush}" BorderThickness="0,0,0,4" />
<TextBlock Grid.Column="0"
FontSize="11"
FontWeight="Regular"
Text="{Binding Message}"
TextWrapping="Wrap"
TextTrimming="CharacterEllipsis"
MaxHeight="50"
VerticalAlignment="Center"
Margin="5"/>
<Button Grid.Column="1"
Margin="1"
VerticalAlignment="Top"
Width="20"
Height="20"
BorderThickness="0"
Background="{DynamicResource NotificationBackgroundBrush}"
Classes="styleless"
Command="{Binding Path=CloseAction}"
CommandParameter="{Binding Path=.}">
<iconPack:IconControl Kind="PackIconMaterialKind.Close" Width="8" Height="8" />
</Button>
</Grid>
</UserControl>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace PSCHelpdesk.Toasts.Display;
public partial class ToastNotification : UserControl
{
public ToastNotification()
{
InitializeComponent();
}
}

View File

@ -0,0 +1,16 @@
using System.Windows.Input;
using CommunityToolkit.Mvvm.ComponentModel;
using PSCHelpdesk.Shared.ViewModels;
namespace PSCHelpdesk.Toasts.Display;
public class ToastNotificationViewModel : ViewModelBase, IViewModelBase
{
public ToastNotificationViewModel(string message)
{
this.Message = message;
}
public string Message { get; }
public ICommand CloseAction { get; set; }
}

View File

@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Input;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.ViewModels;
using PSCHelpdesk.Toasts.Display;
namespace PSCHelpdesk.Toasts;
public class ToastManager: ViewModelBase,IToastManager
{
private ObservableCollection<ToastNotificationViewModel> _notifications;
public ObservableCollection<ToastNotificationViewModel> Notifications
{
get => this._notifications;
private set => SetAndRaisePropertyChanged(ref _notifications, value);
}
public int MaximumNotifications { get; set; } = 5;
public TimeSpan AutomaticDismissalTime { get; set; } = TimeSpan.FromSeconds(7);
private List<Task> DismissalTasks { get; }
public EventHandler OnAdd;
public ToastManager()
{
this.Notifications = new ObservableCollection<ToastNotificationViewModel>() { };
this.DismissalTasks = new List<Task>();
}
public void DisplayNewToast(string message)
{
var notification = new ToastNotificationViewModel(message);
notification.CloseAction = new RelayCommand<ToastNotificationViewModel>(this.CloseToast);
this.Notifications.Add(notification);
OnAdd?.Invoke(this, EventArgs.Empty);
this.DismissalTasks.Add(this.DelayedDismissal(notification));
Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() =>
{
while (this.Notifications.Count > this.MaximumNotifications)
{
//this.Notifications.RemoveAt(this.Notifications.Count - 1);
}
});
}
private void CloseToast(ToastNotificationViewModel notification)
{
Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() =>
{
this.Notifications.Remove(notification);
});
}
private async Task DelayedDismissal(ToastNotificationViewModel toast)
{
await Task.Delay(this.AutomaticDismissalTime);
this.CloseToast(toast);
}
}

View File

@ -15,15 +15,30 @@ public class ViewLocator : IDataTemplate
public Control? Build(object? data)
{
if (data is null)
return null;
var originalName = data.GetType().FullName;
if (_pluginService == null)
{
_pluginService = Ioc.Default.GetService<PluginService>();
}
if (data is null)
return null;
var name = data.GetType().FullName!.Replace("ViewModel", "View", StringComparison.Ordinal);
var type = Type.GetType(name);
if (type != null)
{
return (Control)Activator.CreateInstance(type)!;
}
// Try it without "View" (ex. GroupControlsControlViewModel -> GroupContentsControl)
type = Type.GetType(name.Substring(0, name.LastIndexOf("View")));
if (type != null && name != originalName)
{
var control = (Control)Activator.CreateInstance(type);
return control;
}
if (_pluginService.ViewExists(name))
{
@ -31,10 +46,7 @@ public class ViewLocator : IDataTemplate
return v;
}
if (type != null)
{
return (Control)Activator.CreateInstance(type)!;
}
return new TextBlock { Text = "Not Found: " + name };
}

View File

@ -3,12 +3,16 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reactive;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.DependencyInjection;
using PSCHelpdesk.Services;
using PSCHelpdesk.Shared.Menu;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Tasks;
using PSCHelpdesk.Shared.ViewModels;
using PSCHelpdesk.Tasks;
using PSCHelpdesk.Toasts;
using PSCHelpdesk.Toasts.Display;
using ReactiveUI;
namespace PSCHelpdesk.ViewModels;
@ -16,14 +20,23 @@ namespace PSCHelpdesk.ViewModels;
public class MainWindowViewModel : ViewModelBase, IViewModelBase
{
private MenuService MenuService;
public ToastHolderViewModel ToastHolderManager { get; private set; }
public TaskManager TaskManager { get; private set; }
private bool _isReconnecting;
public ReactiveCommand<string, Unit> ClickMenu { get; }
private ObservableCollection<TabItemViewModel> _tabItems;
private TabItemViewModel _selectedTabItem;
public ObservableCollection<TabItemViewModel> TabItems
{
get => _tabItems;
set => SetAndRaisePropertyChanged(ref _tabItems, value);
}
public TabItemViewModel SelectedTabItem
{
get => _selectedTabItem;
set => SetAndRaisePropertyChanged(ref _selectedTabItem, value);
}
private List<Item> _menuItems;
public List<Item> MenuItems
@ -31,10 +44,15 @@ public class MainWindowViewModel : ViewModelBase, IViewModelBase
get => _menuItems;
set => SetAndRaisePropertyChanged(ref _menuItems, value);
}
public bool IsReconnecting
{
get => this._isReconnecting;
private set => SetAndRaisePropertyChanged(ref _isReconnecting, value);
}
public MainWindowViewModel()
{
IsReconnecting = true;
Startup.RegisterServices();
ClickMenu = ReactiveCommand.Create<string>(SelectMenu);
TabItems = new ObservableCollection<TabItemViewModel>();
@ -72,17 +90,28 @@ public class MainWindowViewModel : ViewModelBase, IViewModelBase
private void InitializeClient()
{
this.MenuService.CreateMenu();
this.ToastHolderManager = new ToastHolderViewModel();
this.TaskManager = (TaskManager)Ioc.Default.GetService<ITaskManager>();
this.TaskManager.TaskCountChanged += this.TaskManager_TaskCountChanged;
}
private void TaskManager_TaskCountChanged(object sender, EventArgs e)
{
Avalonia.Threading.Dispatcher.UIThread.Post(() =>
{
this.IsReconnecting = this.TaskManager.RunningTasks.Count > 0;
});
}
public void SelectMenu(string parameter)
{
//this.SelectedItem = parameter;
var obj = this.MenuService.MenuItems.FirstOrDefault(menuItem => menuItem.Header == parameter.ToString(), null);
if (obj != null)
{
if (TabItems.Count(x => x.Header == obj.Header) == 0)
{
TabItems.Add(new TabItemViewModel(obj.Header, obj.CommandParameter));
SelectedTabItem = TabItems.Last();
}
}
}

View File

@ -5,14 +5,16 @@
xmlns:vm="clr-namespace:PSCHelpdesk.ViewModels"
xmlns:vs="clr-namespace:PSCHelpdesk.Shared.Menu;assembly=Shared"
xmlns:views="clr-namespace:PSCHelpdesk.Views"
xmlns:toasts="clr-namespace:PSCHelpdesk.Toasts."
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="PSCHelpdesk.Views.MainWindow"
Icon="/Assets/avalonia-logo.ico"
x:DataType="vm:MainWindowViewModel"
Title="PSCHelpdesk"
x:Name="MainWindowView">
<DockPanel>
<Menu DockPanel.Dock="Top">
<Grid>
<Grid RowDefinitions="Auto,*">
<Menu Grid.Row="0">
<MenuItem Header="_File">
<MenuItem Click="Settings_OnClick" Header="_Settings"/>
<Separator/>
@ -29,7 +31,7 @@
</MenuItem.Styles>
</MenuItem>
</Menu>
<TabControl ItemsSource="{Binding TabItems}">
<TabControl Grid.Row="1" ItemsSource="{Binding TabItems}" SelectedItem="{Binding SelectedTabItem}">
<TabControl.ItemTemplate>
<DataTemplate DataType="vm:TabItemViewModel">
<TextBlock Text="{Binding Header}" />
@ -43,8 +45,11 @@
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</DockPanel>
<!--<ContentControl ContentTemplate="" Content="{Binding ContentDisplay}"></ContentControl>-->
</Grid>
<!--<views:ContentDisplay SelectedItem="{Binding SelectedItem}"></views:ContentDisplay>-->
<UserControl HorizontalAlignment="Right"
VerticalAlignment="Top"
Margin="0,0,0,0"
Content="{Binding ToastHolderManager}" />
</Grid>
</Window>

View File

@ -0,0 +1,37 @@
<Styles xmlns:iconPack="clr-namespace:PSCHelpdesk.Shared"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Design.PreviewWith>
<Border Padding="20">
<iconPack:IconControl Width="20" Height="20" Background="Red" Foreground="Blue" Kind="PackIconEntypoKind.Calendar" />
</Border>
</Design.PreviewWith>
<Style Selector="iconPack|IconControl">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate TargetType="iconPack:IconControl">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid x:Name="PART_InnerGrid"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Margin="{TemplateBinding BorderThickness}">
<Viewbox Margin="{TemplateBinding Padding}">
<Path x:Name="PART_IconPath"
Stretch="Uniform"
UseLayoutRounding="False"
Fill="{TemplateBinding Foreground}"
Data="{Binding IconData, RelativeSource={RelativeSource Mode=TemplatedParent}}"
/>
</Viewbox>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
</Styles>

View File

@ -0,0 +1,139 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.LogicalTree;
using Avalonia.Media;
using PSCHelpdesk.Shared.Icons;
using System;
namespace PSCHelpdesk.Shared
{
public class IconControl : ContentControl
{
public static readonly AvaloniaProperty KindProperty =
AvaloniaProperty.Register<IconControl, string>(
nameof(Kind),
inherits: true);
public static readonly AvaloniaProperty BindableKindProperty =
AvaloniaProperty.Register<IconControl, object>(
nameof(BindableKind),
inherits: true);
public static readonly DirectProperty<IconControl, Geometry> IconDataProperty =
AvaloniaProperty.RegisterDirect<IconControl, Geometry>(
"IconData",
(ic) => ic.iconData);
private Geometry iconData;
/// <summary>
/// Gets or sets the icon to display.
/// </summary>
public string Kind
{
get => (string)this.GetValue(KindProperty);
set
{
this.SetValue(KindProperty, value);
this.UpdateData();
}
}
/// <summary>
/// Gets or sets the icon to display.
/// </summary>
public object BindableKind
{
get => (object)this.GetValue(BindableKindProperty);
set
{
this.SetValue(BindableKindProperty, value);
this.UpdateData();
}
}
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
if (change.Property == KindProperty ||
change.Property == BindableKindProperty)
{
this.UpdateData();
}
base.OnPropertyChanged(change);
}
private void UpdateData()
{
var newIconPathData = string.Empty;
if (this.BindableKind != null)
{
newIconPathData = this.GetPathData(this.BindableKind);
}
else if (!string.IsNullOrEmpty(this.Kind))
{
newIconPathData = this.GetPathData(this.Kind);
}
var newGeometry = Geometry.Parse(newIconPathData);
this.SetAndRaise(IconDataProperty, ref this.iconData, newGeometry);
}
private string GetPathData(string iconPath)
{
var iconNameParts = iconPath.Split(new char[] { '.' }, 2);
var iconPackName = iconNameParts[0];
var iconName = iconNameParts[1];
var data = string.Empty;
switch (iconPackName)
{
case nameof(PackIconEntypoKind):
PackIconEntypoDataFactory.DataIndex.Value?.TryGetValue((PackIconEntypoKind)Enum.Parse(typeof(PackIconEntypoKind), iconName), out data);
return data;
case nameof(PackIconFeatherIconsKind):
PackIconFeatherIconsDataFactory.DataIndex.Value?.TryGetValue((PackIconFeatherIconsKind)Enum.Parse(typeof(PackIconFeatherIconsKind), iconName), out data);
return data;
case nameof(PackIconFontAwesomeKind):
PackIconFontAwesomeDataFactory.DataIndex.Value?.TryGetValue((PackIconFontAwesomeKind)Enum.Parse(typeof(PackIconFontAwesomeKind), iconName), out data);
return data;
case nameof(PackIconMaterialKind):
PackIconMaterialDataFactory.DataIndex.Value?.TryGetValue((PackIconMaterialKind)Enum.Parse(typeof(PackIconMaterialKind), iconName), out data);
return data;
case nameof(PackIconOcticonsKind):
PackIconOcticonsDataFactory.DataIndex.Value?.TryGetValue((PackIconOcticonsKind)Enum.Parse(typeof(PackIconOcticonsKind), iconName), out data);
return data;
default:
return null;
}
}
private string GetPathData(object iconKind)
{
string data = null;
switch (iconKind)
{
case PackIconEntypoKind entypoKind:
PackIconEntypoDataFactory.DataIndex.Value?.TryGetValue(entypoKind, out data);
return data;
case PackIconFeatherIconsKind featherKind:
PackIconFeatherIconsDataFactory.DataIndex.Value?.TryGetValue(featherKind, out data);
return data;
case PackIconFontAwesomeKind fontAwesomeKind:
PackIconFontAwesomeDataFactory.DataIndex.Value?.TryGetValue(fontAwesomeKind, out data);
return data;
case PackIconMaterialKind materialKind:
PackIconMaterialDataFactory.DataIndex.Value?.TryGetValue(materialKind, out data);
return data;
case PackIconOcticonsKind octiconsKind:
PackIconOcticonsDataFactory.DataIndex.Value?.TryGetValue(octiconsKind, out data);
return data;
default:
return null;
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,431 @@
namespace PSCHelpdesk.Shared.Icons
{
using System.ComponentModel;
/// ******************************************
/// This code is auto generated. Do not amend.
/// ******************************************
/// <summary>
/// List of available icons for use with <see cref="PackIconEntypo" />.
/// </summary>
/// <remarks>
/// All icons sourced from Entypo+ Icons Font <see><cref>http://www.entypo.com</cref></see>
/// Licensed under <see><cref>http://creativecommons.org/licenses/by-sa/4.0/</cref></see>.
/// </remarks>
public enum PackIconEntypoKind
{
[Description("Empty placeholder")] None,
[Description("500px (Social Extension)")] _500px,
[Description("500px-with-circle (Social Extension)")] _500pxWithCircle,
[Description("address")] Address,
[Description("add-to-list")] AddToList,
[Description("add-user")] AddUser,
[Description("adjust")] Adjust,
[Description("air")] Air,
[Description("aircraft")] Aircraft,
[Description("aircraft-landing")] AircraftLanding,
[Description("aircraft-take-off")] AircraftTakeOff,
[Description("align-bottom")] AlignBottom,
[Description("align-horizontal-middle")] AlignHorizontalMiddle,
[Description("align-left")] AlignLeft,
[Description("align-right")] AlignRight,
[Description("align-top")] AlignTop,
[Description("align-vertical-middle")] AlignVerticalMiddle,
[Description("app-store (Social Extension)")] AppStore,
[Description("archive")] Archive,
[Description("area-graph")] AreaGraph,
[Description("arrow-bold-down")] ArrowBoldDown,
[Description("arrow-bold-left")] ArrowBoldLeft,
[Description("arrow-bold-right")] ArrowBoldRight,
[Description("arrow-bold-up")] ArrowBoldUp,
[Description("arrow-down")] ArrowDown,
[Description("arrow-left")] ArrowLeft,
[Description("arrow-long-down")] ArrowLongDown,
[Description("arrow-long-left")] ArrowLongLeft,
[Description("arrow-long-right")] ArrowLongRight,
[Description("arrow-long-up")] ArrowLongUp,
[Description("arrow-right")] ArrowRight,
[Description("arrow-up")] ArrowUp,
[Description("arrow-with-circle-down")] ArrowWithCircleDown,
[Description("arrow-with-circle-left")] ArrowWithCircleLeft,
[Description("arrow-with-circle-right")] ArrowWithCircleRight,
[Description("arrow-with-circle-up")] ArrowWithCircleUp,
[Description("attachment")] Attachment,
[Description("awareness-ribbon")] AwarenessRibbon,
[Description("back")] Back,
[Description("back-in-time")] BackInTime,
[Description("baidu (Social Extension)")] Baidu,
[Description("bar-graph")] BarGraph,
[Description("basecamp (Social Extension)")] Basecamp,
[Description("battery")] Battery,
[Description("beamed-note")] BeamedNote,
[Description("behance (Social Extension)")] Behance,
[Description("bell")] Bell,
[Description("blackboard")] Blackboard,
[Description("block")] Block,
[Description("book")] Book,
[Description("bookmark")] Bookmark,
[Description("bookmarks")] Bookmarks,
[Description("bowl")] Bowl,
[Description("box")] Box,
[Description("briefcase")] Briefcase,
[Description("browser")] Browser,
[Description("brush")] Brush,
[Description("bucket")] Bucket,
[Description("bug")] Bug,
[Description("cake")] Cake,
[Description("calculator")] Calculator,
[Description("calendar")] Calendar,
[Description("camera")] Camera,
[Description("ccw")] Ccw,
[Description("chat")] Chat,
[Description("check")] Check,
[Description("chevron-down")] ChevronDown,
[Description("chevron-left")] ChevronLeft,
[Description("chevron-right")] ChevronRight,
[Description("chevron-small-down")] ChevronSmallDown,
[Description("chevron-small-left")] ChevronSmallLeft,
[Description("chevron-small-right")] ChevronSmallRight,
[Description("chevron-small-up")] ChevronSmallUp,
[Description("chevron-thin-down")] ChevronThinDown,
[Description("chevron-thin-left")] ChevronThinLeft,
[Description("chevron-thin-right")] ChevronThinRight,
[Description("chevron-thin-up")] ChevronThinUp,
[Description("chevron-up")] ChevronUp,
[Description("chevron-with-circle-down")] ChevronWithCircleDown,
[Description("chevron-with-circle-left")] ChevronWithCircleLeft,
[Description("chevron-with-circle-right")] ChevronWithCircleRight,
[Description("chevron-with-circle-up")] ChevronWithCircleUp,
[Description("circle")] Circle,
[Description("circle-with-cross")] CircleWithCross,
[Description("circle-with-minus")] CircleWithMinus,
[Description("circle-with-plus")] CircleWithPlus,
[Description("circular-graph")] CircularGraph,
[Description("clapperboard")] Clapperboard,
[Description("classic-computer")] ClassicComputer,
[Description("clipboard")] Clipboard,
[Description("clock")] Clock,
[Description("cloud")] Cloud,
[Description("code")] Code,
[Description("cog")] Cog,
[Description("colours")] Colours,
[Description("compass")] Compass,
[Description("controller-fast-backward")] ControllerFastBackward,
[Description("controller-fast-forward")] ControllerFastForward,
[Description("controller-jump-to-start")] ControllerJumpToStart,
[Description("controller-next")] ControllerNext,
[Description("controller-paus")] ControllerPaus,
[Description("controller-play")] ControllerPlay,
[Description("controller-record")] ControllerRecord,
[Description("controller-stop")] ControllerStop,
[Description("controller-volume")] ControllerVolume,
[Description("copy")] Copy,
[Description("creative-cloud (Social Extension)")] CreativeCloud,
[Description("creative-commons")] CreativeCommons,
[Description("creative-commons-attribution")] CreativeCommonsAttribution,
[Description("creative-commons-noderivs")] CreativeCommonsNoderivs,
[Description("creative-commons-noncommercial-eu")] CreativeCommonsNoncommercialEu,
[Description("creative-commons-noncommercial-us")] CreativeCommonsNoncommercialUs,
[Description("creative-commons-public-domain")] CreativeCommonsPublicDomain,
[Description("creative-commons-remix")] CreativeCommonsRemix,
[Description("creative-commons-share")] CreativeCommonsShare,
[Description("creative-commons-sharealike")] CreativeCommonsSharealike,
[Description("credit")] Credit,
[Description("credit-card")] CreditCard,
[Description("crop")] Crop,
[Description("cross")] Cross,
[Description("cup")] Cup,
[Description("cw")] Cw,
[Description("cycle")] Cycle,
[Description("database")] Database,
[Description("dial-pad")] DialPad,
[Description("direction")] Direction,
[Description("document")] Document,
[Description("document-landscape")] DocumentLandscape,
[Description("documents")] Documents,
[Description("dot-single")] DotSingle,
[Description("dots-three-horizontal")] DotsThreeHorizontal,
[Description("dots-three-vertical")] DotsThreeVertical,
[Description("dots-two-horizontal")] DotsTwoHorizontal,
[Description("dots-two-vertical")] DotsTwoVertical,
[Description("download")] Download,
[Description("dribbble (Social Extension)")] Dribbble,
[Description("dribbble-with-circle (Social Extension)")] DribbbleWithCircle,
[Description("drink")] Drink,
[Description("drive")] Drive,
[Description("drop")] Drop,
[Description("dropbox (Social Extension)")] Dropbox,
[Description("edit")] Edit,
[Description("email")] Email,
[Description("emoji-flirt")] EmojiFlirt,
[Description("emoji-happy")] EmojiHappy,
[Description("emoji-neutral")] EmojiNeutral,
[Description("emoji-sad")] EmojiSad,
[Description("erase")] Erase,
[Description("eraser")] Eraser,
[Description("evernote (Social Extension)")] Evernote,
[Description("export")] Export,
[Description("eye")] Eye,
[Description("eye-with-line")] EyeWithLine,
[Description("facebook (Social Extension)")] Facebook,
[Description("facebook-with-circle (Social Extension)")] FacebookWithCircle,
[Description("feather")] Feather,
[Description("fingerprint")] Fingerprint,
[Description("flag")] Flag,
[Description("flash")] Flash,
[Description("flashlight")] Flashlight,
[Description("flat-brush")] FlatBrush,
[Description("flattr (Social Extension)")] Flattr,
[Description("flickr (Social Extension)")] Flickr,
[Description("flickr-with-circle (Social Extension)")] FlickrWithCircle,
[Description("flow-branch")] FlowBranch,
[Description("flow-cascade")] FlowCascade,
[Description("flower")] Flower,
[Description("flow-line")] FlowLine,
[Description("flow-parallel")] FlowParallel,
[Description("flow-tree")] FlowTree,
[Description("folder")] Folder,
[Description("folder-images")] FolderImages,
[Description("folder-music")] FolderMusic,
[Description("folder-video")] FolderVideo,
[Description("forward")] Forward,
[Description("foursquare (Social Extension)")] Foursquare,
[Description("funnel")] Funnel,
[Description("game-controller")] GameController,
[Description("gauge")] Gauge,
[Description("github (Social Extension)")] Github,
[Description("github-with-circle (Social Extension)")] GithubWithCircle,
[Description("globe")] Globe,
[Description("google-drive (Social Extension)")] GoogleDrive,
[Description("google-hangouts (Social Extension)")] GoogleHangouts,
[Description("google-play (Social Extension)")] GooglePlay,
[Description("google+ (Social Extension)")] GooglePlus,
[Description("google+-with-circle (Social Extension)")] GooglePlusWithCircle,
[Description("graduation-cap")] GraduationCap,
[Description("grid")] Grid,
[Description("grooveshark (Social Extension)")] Grooveshark,
[Description("hair-cross")] HairCross,
[Description("hand")] Hand,
[Description("heart")] Heart,
[Description("heart-outlined")] HeartOutlined,
[Description("help")] Help,
[Description("help-with-circle")] HelpWithCircle,
[Description("home")] Home,
[Description("hour-glass")] HourGlass,
[Description("houzz (Social Extension)")] Houzz,
[Description("icloud (Social Extension)")] Icloud,
[Description("image")] Image,
[Description("image-inverted")] ImageInverted,
[Description("images")] Images,
[Description("inbox")] Inbox,
[Description("infinity")] Infinity,
[Description("info")] Info,
[Description("info-with-circle")] InfoWithCircle,
[Description("instagram (Social Extension)")] Instagram,
[Description("instagram-with-circle (Social Extension)")] InstagramWithCircle,
[Description("install")] Install,
[Description("key")] Key,
[Description("keyboard")] Keyboard,
[Description("lab-flask")] LabFlask,
[Description("landline")] Landline,
[Description("language")] Language,
[Description("laptop")] Laptop,
[Description("lastfm (Social Extension)")] Lastfm,
[Description("lastfm-with-circle (Social Extension)")] LastfmWithCircle,
[Description("layers")] Layers,
[Description("leaf")] Leaf,
[Description("level-down")] LevelDown,
[Description("level-up")] LevelUp,
[Description("lifebuoy")] Lifebuoy,
[Description("light-bulb")] LightBulb,
[Description("light-down")] LightDown,
[Description("light-up")] LightUp,
[Description("line-graph")] LineGraph,
[Description("link")] Link,
[Description("linkedin (Social Extension)")] Linkedin,
[Description("linkedin-with-circle (Social Extension)")] LinkedinWithCircle,
[Description("list")] List,
[Description("location")] Location,
[Description("location-pin")] LocationPin,
[Description("lock")] Lock,
[Description("lock-open")] LockOpen,
[Description("login")] Login,
[Description("log-out")] LogOut,
[Description("loop")] Loop,
[Description("magnet")] Magnet,
[Description("magnifying-glass")] MagnifyingGlass,
[Description("mail")] Mail,
[Description("mail-with-circle (Social Extension)")] MailWithCircle,
[Description("man")] Man,
[Description("map")] Map,
[Description("mask")] Mask,
[Description("medal")] Medal,
[Description("medium (Social Extension)")] Medium,
[Description("medium-with-circle (Social Extension)")] MediumWithCircle,
[Description("megaphone")] Megaphone,
[Description("menu")] Menu,
[Description("merge")] Merge,
[Description("message")] Message,
[Description("mic")] Mic,
[Description("minus")] Minus,
[Description("mixi (Social Extension)")] Mixi,
[Description("mobile")] Mobile,
[Description("modern-mic")] ModernMic,
[Description("moon")] Moon,
[Description("mouse")] Mouse,
[Description("mouse-pointer")] MousePointer,
[Description("music")] Music,
[Description("network")] Network,
[Description("new")] New,
[Description("new-message")] NewMessage,
[Description("news")] News,
[Description("newsletter")] Newsletter,
[Description("note")] Note,
[Description("notification")] Notification,
[Description("notifications-off")] NotificationsOff,
[Description("old-mobile")] OldMobile,
[Description("old-phone")] OldPhone,
[Description("onedrive (Social Extension)")] Onedrive,
[Description("open-book")] OpenBook,
[Description("palette")] Palette,
[Description("paper-plane")] PaperPlane,
[Description("paypal (Social Extension)")] Paypal,
[Description("pencil")] Pencil,
[Description("phone")] Phone,
[Description("picasa (Social Extension)")] Picasa,
[Description("pie-chart")] PieChart,
[Description("pin")] Pin,
[Description("pinterest (Social Extension)")] Pinterest,
[Description("pinterest-with-circle (Social Extension)")] PinterestWithCircle,
[Description("plus")] Plus,
[Description("popup")] Popup,
[Description("power-plug")] PowerPlug,
[Description("price-ribbon")] PriceRibbon,
[Description("price-tag")] PriceTag,
[Description("print")] Print,
[Description("progress-empty")] ProgressEmpty,
[Description("progress-full")] ProgressFull,
[Description("progress-one")] ProgressOne,
[Description("progress-two")] ProgressTwo,
[Description("publish")] Publish,
[Description("qq (Social Extension)")] Qq,
[Description("qq-with-circle (Social Extension)")] QqWithCircle,
[Description("quote")] Quote,
[Description("radio")] Radio,
[Description("raft (Social Extension)")] Raft,
[Description("raft-with-circle (Social Extension)")] RaftWithCircle,
[Description("rainbow (Social Extension)")] Rainbow,
[Description("rdio (Social Extension)")] Rdio,
[Description("rdio-with-circle (Social Extension)")] RdioWithCircle,
[Description("remove-user")] RemoveUser,
[Description("renren (Social Extension)")] Renren,
[Description("reply")] Reply,
[Description("reply-all")] ReplyAll,
[Description("resize-100%")] Resize100Percent,
[Description("resize-full-screen")] ResizeFullScreen,
[Description("retweet")] Retweet,
[Description("rocket")] Rocket,
[Description("round-brush")] RoundBrush,
[Description("rss")] Rss,
[Description("ruler")] Ruler,
[Description("save")] Save,
[Description("scissors")] Scissors,
[Description("scribd (Social Extension)")] Scribd,
[Description("select-arrows")] SelectArrows,
[Description("share")] Share,
[Description("shareable")] Shareable,
[Description("share-alternative")] ShareAlternative,
[Description("shield")] Shield,
[Description("shop")] Shop,
[Description("shopping-bag")] ShoppingBag,
[Description("shopping-basket")] ShoppingBasket,
[Description("shopping-cart")] ShoppingCart,
[Description("shuffle")] Shuffle,
[Description("signal")] Signal,
[Description("sina-weibo (Social Extension)")] SinaWeibo,
[Description("skype (Social Extension)")] Skype,
[Description("skype-with-circle (Social Extension)")] SkypeWithCircle,
[Description("slideshare (Social Extension)")] Slideshare,
[Description("smashing (Social Extension)")] Smashing,
[Description("sound")] Sound,
[Description("soundcloud (Social Extension)")] Soundcloud,
[Description("sound-mix")] SoundMix,
[Description("sound-mute")] SoundMute,
[Description("sports-club")] SportsClub,
[Description("spotify (Social Extension)")] Spotify,
[Description("spotify-with-circle (Social Extension)")] SpotifyWithCircle,
[Description("spreadsheet")] Spreadsheet,
[Description("squared-cross")] SquaredCross,
[Description("squared-minus")] SquaredMinus,
[Description("squared-plus")] SquaredPlus,
[Description("star")] Star,
[Description("star-outlined")] StarOutlined,
[Description("stopwatch")] Stopwatch,
[Description("stumbleupon (Social Extension)")] Stumbleupon,
[Description("stumbleupon-with-circle (Social Extension)")] StumbleuponWithCircle,
[Description("suitcase")] Suitcase,
[Description("swap")] Swap,
[Description("swarm (Social Extension)")] Swarm,
[Description("sweden")] Sweden,
[Description("switch")] Switch,
[Description("tablet")] Tablet,
[Description("tablet-mobile-combo")] TabletMobileCombo,
[Description("tag")] Tag,
[Description("text")] Text,
[Description("text-document")] TextDocument,
[Description("text-document-inverted")] TextDocumentInverted,
[Description("thermometer")] Thermometer,
[Description("thumbs-down")] ThumbsDown,
[Description("thumbs-up")] ThumbsUp,
[Description("thunder-cloud")] ThunderCloud,
[Description("ticket")] Ticket,
[Description("time-slot")] TimeSlot,
[Description("tools")] Tools,
[Description("traffic-cone")] TrafficCone,
[Description("trash")] Trash,
[Description("tree")] Tree,
[Description("triangle-down")] TriangleDown,
[Description("triangle-left")] TriangleLeft,
[Description("triangle-right")] TriangleRight,
[Description("triangle-up")] TriangleUp,
[Description("tripadvisor (Social Extension)")] Tripadvisor,
[Description("trophy")] Trophy,
[Description("tumblr (Social Extension)")] Tumblr,
[Description("tumblr-with-circle (Social Extension)")] TumblrWithCircle,
[Description("tv")] Tv,
[Description("twitter (Social Extension)")] Twitter,
[Description("twitter-with-circle (Social Extension)")] TwitterWithCircle,
[Description("typing")] Typing,
[Description("uninstall")] Uninstall,
[Description("unread")] Unread,
[Description("untag")] Untag,
[Description("upload")] Upload,
[Description("upload-to-cloud")] UploadToCloud,
[Description("user")] User,
[Description("users")] Users,
[Description("v-card")] VCard,
[Description("video")] Video,
[Description("video-camera")] VideoCamera,
[Description("vimeo (Social Extension)")] Vimeo,
[Description("vimeo-with-circle (Social Extension)")] VimeoWithCircle,
[Description("vine (Social Extension)")] Vine,
[Description("vine-with-circle (Social Extension)")] VineWithCircle,
[Description("vinyl")] Vinyl,
[Description("vk (Social Extension)")] Vk,
[Description("vk-alternitive (Social Extension)")] VkAlternitive,
[Description("vk-with-circle (Social Extension)")] VkWithCircle,
[Description("voicemail")] Voicemail,
[Description("wallet")] Wallet,
[Description("warning")] Warning,
[Description("water")] Water,
[Description("windows-store (Social Extension)")] WindowsStore,
[Description("xing (Social Extension)")] Xing,
[Description("xing-with-circle (Social Extension)")] XingWithCircle,
[Description("yelp (Social Extension)")] Yelp,
[Description("youko (Social Extension)")] Youko,
[Description("youko-with-circle (Social Extension)")] YoukoWithCircle,
[Description("youtube (Social Extension)")] Youtube,
[Description("youtube-with-circle (Social Extension)")] YoutubeWithCircle,
}
}

View File

@ -0,0 +1,312 @@
using System;
using System.Collections.Generic;
namespace PSCHelpdesk.Shared.Icons
{
/// ******************************************
/// This code is auto generated. Do not amend.
/// ******************************************
public static class PackIconFeatherIconsDataFactory
{
public static Lazy<IDictionary<PackIconFeatherIconsKind, string>> DataIndex { get; }
static PackIconFeatherIconsDataFactory()
{
if (DataIndex == null)
{
DataIndex = new Lazy<IDictionary<PackIconFeatherIconsKind, string>>(PackIconFeatherIconsDataFactory.Create);
}
}
public static IDictionary<PackIconFeatherIconsKind, string> Create()
{
return new Dictionary<PackIconFeatherIconsKind, string>
{
{PackIconFeatherIconsKind.None, ""},
{PackIconFeatherIconsKind.Activity, "M 22,12 H 18 L 15,21 9,3 6,12 H 2"},
{PackIconFeatherIconsKind.Airplay, "m 12,15 5,6 H 7 Z M 5,17 H 4 A 2,2 0 0 1 2,15 V 5 A 2,2 0 0 1 4,3 h 16 a 2,2 0 0 1 2,2 v 10 a 2,2 0 0 1 -2,2 h -1"},
{PackIconFeatherIconsKind.AlertCircle, "m 12,16 h 0.01 M 12,8 v 4 m 10,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.AlertOctagon, "m 12,16 h 0.01 M 12,8 v 4 M 7.86,2 h 8.28 L 22,7.86 v 8.28 L 16.14,22 H 7.86 L 2,16.14 V 7.86 Z"},
{PackIconFeatherIconsKind.AlertTriangle, "m 12,17 h 0.01 M 12,9 v 4 M 10.29,3.86 1.82,18 a 2,2 0 0 0 1.71,3 h 16.94 a 2,2 0 0 0 1.71,-3 L 13.71,3.86 a 2,2 0 0 0 -3.42,0 z"},
{PackIconFeatherIconsKind.AlignCenter, "M 18,18 H 6 M 21,14 H 3 M 21,6 H 3 m 15,4 H 6"},
{PackIconFeatherIconsKind.AlignJustify, "M 21,18 H 3 M 21,14 H 3 M 21,6 H 3 m 18,4 H 3"},
{PackIconFeatherIconsKind.AlignLeft, "M 17,18 H 3 M 21,14 H 3 M 21,6 H 3 m 14,4 H 3"},
{PackIconFeatherIconsKind.AlignRight, "M 21,18 H 7 M 21,14 H 3 M 21,6 H 3 m 18,4 H 7"},
{PackIconFeatherIconsKind.Anchor, "M 5,12 H 2 a 10,10 0 0 0 20,0 H 19 M 12,22 V 8 M 15,5 A 3,3 0 0 1 12,8 3,3 0 0 1 9,5 3,3 0 0 1 12,2 3,3 0 0 1 15,5 Z"},
{PackIconFeatherIconsKind.Aperture, "M 16.620001,12 10.88,21.940001 M 14.31,16 H 2.8299999 M 9.6899996,16 3.95,6.0599999 M 7.3800001,12 13.12,2.0599999 M 9.6899996,8 H 21.17 m -6.86,0 5.739999,9.940001 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Archive, "m 10,12 h 4 M 1,3 H 23 V 8 H 1 Z M 21,8 V 21 H 3 V 8"},
{PackIconFeatherIconsKind.ArrowDown, "M 19,12 12,19 5,12 M 12,5 V 19"},
{PackIconFeatherIconsKind.ArrowDownCircle, "m 12,8 v 8 m -4,-4 4,4 4,-4 m 6,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.ArrowDownLeft, "M 17,17 H 7 V 7 M 17,7 7,17"},
{PackIconFeatherIconsKind.ArrowDownRight, "M 17,7 V 17 H 7 M 7,7 17,17"},
{PackIconFeatherIconsKind.ArrowLeft, "M 12,19 5,12 12,5 m 7,7 H 5"},
{PackIconFeatherIconsKind.ArrowLeftCircle, "M 16,12 H 8 m 4,-4 -4,4 4,4 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.ArrowRight, "m 12,5 7,7 -7,7 M 5,12 h 14"},
{PackIconFeatherIconsKind.ArrowRightCircle, "m 8,12 h 8 m -4,4 4,-4 -4,-4 m 10,4 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.ArrowUp, "m 5,12 7,-7 7,7 m -7,7 V 5"},
{PackIconFeatherIconsKind.ArrowUpCircle, "M 12,16 V 8 m 4,4 -4,-4 -4,4 m 14,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.ArrowUpLeft, "M 7,17 V 7 H 17 M 17,17 7,7"},
{PackIconFeatherIconsKind.ArrowUpRight, "M 7,7 H 17 V 17 M 7,17 17,7"},
{PackIconFeatherIconsKind.AtSign, "m 16,8 v 5 a 3,3 0 0 0 6,0 v -1 a 10,10 0 1 0 -3.92,7.94 M 16,12 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z"},
{PackIconFeatherIconsKind.Award, "M 8.21,13.89 7,23 l 5,-3 5,3 -1.21,-9.12 M 19,8 a 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 7,7 0 0 1 7,7 z"},
{PackIconFeatherIconsKind.BarChart, "m 6,20 v -4 m 12,4 V 4 M 12,20 V 10"},
{PackIconFeatherIconsKind.BarChart2, "m 6,20 v -6 m 6,6 V 4 m 6,16 V 10"},
{PackIconFeatherIconsKind.Battery, "M 23,13 V 11 M 3,6 h 14 c 1.108,0 2,0.892 2,2 v 8 c 0,1.108 -0.892,2 -2,2 H 3 C 1.892,18 1,17.108 1,16 V 8 C 1,6.892 1.892,6 3,6 Z"},
{PackIconFeatherIconsKind.BatteryCharging, "m 11,6 -4,6 h 6 L 9,18 M 23,13 V 11 M 5,18 H 3 A 2,2 0 0 1 1,16 V 8 A 2,2 0 0 1 3,6 H 6.19 M 15,6 h 2 a 2,2 0 0 1 2,2 v 8 a 2,2 0 0 1 -2,2 h -3.19"},
{PackIconFeatherIconsKind.Bell, "m 13.73,21 a 2,2 0 0 1 -3.46,0 M 18,8 A 6,6 0 0 0 6,8 c 0,7 -3,9 -3,9 h 18 c 0,0 -3,-2 -3,-9"},
{PackIconFeatherIconsKind.BellOff, "M 1,1 23,23 M 18,8 A 6,6 0 0 0 8.67,3 M 6.26,6.26 A 5.86,5.86 0 0 0 6,8 c 0,7 -3,9 -3,9 h 14 m 1.63,-4 A 17.89,17.89 0 0 1 18,8 m -4.27,13 a 2,2 0 0 1 -3.46,0"},
{PackIconFeatherIconsKind.Bluetooth, "m 6.5,6.5 11,11 L 12,23 V 1 l 5.5,5.5 -11,11"},
{PackIconFeatherIconsKind.Bold, "m 6,12 h 9 a 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 H 6 Z M 6,4 h 8 a 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 H 6 Z"},
{PackIconFeatherIconsKind.Book, "M 6.5,2 H 20 V 22 H 6.5 A 2.5,2.5 0 0 1 4,19.5 V 4.5 A 2.5,2.5 0 0 1 6.5,2 Z M 4,19.5 A 2.5,2.5 0 0 1 6.5,17 H 20"},
{PackIconFeatherIconsKind.Bookmark, "M 19,21 12,16 5,21 V 5 A 2,2 0 0 1 7,3 h 10 a 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.BookOpen, "m 22,3 h -6 a 4,4 0 0 0 -4,4 v 14 a 3,3 0 0 1 3,-3 h 7 z M 2,3 h 6 a 4,4 0 0 1 4,4 V 21 A 3,3 0 0 0 9,18 H 2 Z"},
{PackIconFeatherIconsKind.Box, "M 12,22.08 V 12 M 3.27,6.96 12,12.01 20.73,6.96 M 21,16 V 8 A 2,2 0 0 0 20,6.27 l -7,-4 a 2,2 0 0 0 -2,0 l -7,4 A 2,2 0 0 0 3,8 v 8 a 2,2 0 0 0 1,1.73 l 7,4 a 2,2 0 0 0 2,0 l 7,-4 A 2,2 0 0 0 21,16 Z"},
{PackIconFeatherIconsKind.Briefcase, "M 16,21 V 5 A 2,2 0 0 0 14,3 H 10 A 2,2 0 0 0 8,5 V 21 M 4,7 h 16 c 1.108,0 2,0.892 2,2 v 10 c 0,1.108 -0.892,2 -2,2 H 4 C 2.892,21 2,20.108 2,19 V 9 C 2,7.892 2.892,7 4,7 Z"},
{PackIconFeatherIconsKind.Calendar, "M 3,10 H 21 M 8,2 V 6 M 16,2 V 6 M 5,4 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,22 3,21.108 3,20 V 6 C 3,4.892 3.892,4 5,4 Z"},
{PackIconFeatherIconsKind.Camera, "m 16,13 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z m 7,6 a 2,2 0 0 1 -2,2 H 3 A 2,2 0 0 1 1,19 V 8 A 2,2 0 0 1 3,6 H 7 L 9,3 h 6 l 2,3 h 4 a 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.CameraOff, "M 21,21 H 3 A 2,2 0 0 1 1,19 V 8 A 2,2 0 0 1 3,6 H 6 M 9,3 h 6 l 2,3 h 4 a 2,2 0 0 1 2,2 v 9.34 M 15.28,15.28 A 4,4 0 1 1 9.72,9.72 M 1,1 23,23"},
{PackIconFeatherIconsKind.Cast, "M 2,20 H 2.01 M 2,16.1 A 5,5 0 0 1 5.9,20 M 2,12.05 A 9,9 0 0 1 9.95,20 M 2,8 V 6 A 2,2 0 0 1 4,4 h 16 a 2,2 0 0 1 2,2 v 12 a 2,2 0 0 1 -2,2 h -6"},
{PackIconFeatherIconsKind.Check, "M 20,6 9,17 4,12"},
{PackIconFeatherIconsKind.CheckCircle, "m 22,4 -10,10.01 -3,-3 m 13,0.07 V 12 A 10,10 0 1 1 16.07,2.86"},
{PackIconFeatherIconsKind.CheckSquare, "m 21,12 v 7 a 2,2 0 0 1 -2,2 H 5 A 2,2 0 0 1 3,19 V 5 A 2,2 0 0 1 5,3 h 11 m -7,8 3,3 10,-10"},
{PackIconFeatherIconsKind.ChevronDown, "m 6,9 6,6 6,-6"},
{PackIconFeatherIconsKind.ChevronLeft, "M 15,18 9,12 15,6"},
{PackIconFeatherIconsKind.ChevronRight, "M 9,18 15,12 9,6"},
{PackIconFeatherIconsKind.ChevronsDown, "m 7,6 5,5 5,-5 m -10,7 5,5 5,-5"},
{PackIconFeatherIconsKind.ChevronsLeft, "M 18,17 13,12 18,7 M 11,17 6,12 11,7"},
{PackIconFeatherIconsKind.ChevronsRight, "M 6,17 11,12 6,7 m 7,10 5,-5 -5,-5"},
{PackIconFeatherIconsKind.ChevronsUp, "M 17,18 12,13 7,18 M 17,11 12,6 7,11"},
{PackIconFeatherIconsKind.ChevronUp, "M 18,15 12,9 6,15"},
{PackIconFeatherIconsKind.Chrome, "M 10.88,21.940001 15.46,14 M 3.95,6.0599999 8.54,14 M 21.17,8 H 12 m 4,4 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z m 6,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Circle, "M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Clipboard, "m 9,2 h 6 c 0.554,0 1,0.446 1,1 v 2 c 0,0.554 -0.446,1 -1,1 H 9 C 8.446,6 8,5.554 8,5 V 3 C 8,2.446 8.446,2 9,2 Z m 7,2 h 2 a 2,2 0 0 1 2,2 v 14 a 2,2 0 0 1 -2,2 H 6 A 2,2 0 0 1 4,20 V 6 A 2,2 0 0 1 6,4 h 2"},
{PackIconFeatherIconsKind.Clock, "m 12,6 v 6 l 4,2 m 6,-2 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Cloud, "M 18,10 H 16.74 A 8,8 0 1 0 9,20 h 9 a 5,5 0 0 0 0,-10 z"},
{PackIconFeatherIconsKind.CloudDrizzle, "M 20,16.58 A 5,5 0 0 0 18,7 H 16.74 A 8,8 0 1 0 4,15.25 M 12,15 v 2 m 0,4 v 2 m 4,-10 v 2 m 0,4 v 2 M 8,13 v 2 m 0,4 v 2"},
{PackIconFeatherIconsKind.CloudLightning, "m 13,11 -4,6 h 6 l -4,6 m 8,-6.1 A 5,5 0 0 0 18,7 H 16.74 A 8,8 0 1 0 5.12,16"},
{PackIconFeatherIconsKind.CloudOff, "M 1,1 23,23 M 22.61,16.95 A 5,5 0 0 0 18,10 H 16.74 A 8,8 0 0 0 9.69,4 M 5,5 a 8,8 0 0 0 4,15 h 9 a 5,5 0 0 0 1.7,-0.3"},
{PackIconFeatherIconsKind.CloudRain, "M 20,16.58 A 5,5 0 0 0 18,7 H 16.74 A 8,8 0 1 0 4,15.25 M 12,15 v 8 M 8,13 v 8 m 8,-8 v 8"},
{PackIconFeatherIconsKind.CloudSnow, "m 16,20 h 0.01 M 16,16 h 0.01 M 12,22 h 0.01 M 12,18 h 0.01 M 8,20 H 8.01 M 8,16 H 8.01 M 20,17.58 A 5,5 0 0 0 18,8 H 16.74 A 8,8 0 1 0 4,16.25"},
{PackIconFeatherIconsKind.Code, "m 8,6 -6,6 6,6 m 8,0 6,-6 -6,-6"},
{PackIconFeatherIconsKind.Codepen, "m 12,2 v 6.5 m -10,7 10,-7 10,7 m 0,-7 -10,7 -10,-7 M 12,22 V 15.5 M 12,2 22,8.5 v 7 L 12,22 2,15.5 v -7 z"},
{PackIconFeatherIconsKind.Codesandbox, "M 12,22.08 V 12 M 3.27,6.96 12,12.01 20.73,6.96 M 21,12 16.5,14.6 v 5.19 m -9,0 V 14.6 L 3,12 M 7.5,4.21 12,6.81 16.5,4.21 M 21,16 V 8 A 2,2 0 0 0 20,6.27 l -7,-4 a 2,2 0 0 0 -2,0 l -7,4 A 2,2 0 0 0 3,8 v 8 a 2,2 0 0 0 1,1.73 l 7,4 a 2,2 0 0 0 2,0 l 7,-4 A 2,2 0 0 0 21,16 Z"},
{PackIconFeatherIconsKind.Coffee, "M 14,1 V 4 M 10,1 V 4 M 6,1 V 4 M 2,8 h 16 v 9 a 4,4 0 0 1 -4,4 H 6 A 4,4 0 0 1 2,17 Z m 16,0 h 1 a 4,4 0 0 1 0,8 h -1"},
{PackIconFeatherIconsKind.Columns, "m 12,3 h 7 a 2,2 0 0 1 2,2 v 14 a 2,2 0 0 1 -2,2 H 12 M 12,3 H 5 A 2,2 0 0 0 3,5 v 14 a 2,2 0 0 0 2,2 h 7 M 12,3 v 18"},
{PackIconFeatherIconsKind.Command, "m 18,3 a 3,3 0 0 0 -3,3 v 12 a 3,3 0 0 0 3,3 3,3 0 0 0 3,-3 3,3 0 0 0 -3,-3 H 6 a 3,3 0 0 0 -3,3 3,3 0 0 0 3,3 3,3 0 0 0 3,-3 V 6 A 3,3 0 0 0 6,3 3,3 0 0 0 3,6 3,3 0 0 0 6,9 H 18 A 3,3 0 0 0 21,6 3,3 0 0 0 18,3 Z"},
{PackIconFeatherIconsKind.Compass, "M 16.24,7.76 14.12,14.12 7.76,16.24 9.88,9.88 Z M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Copy, "M 5,15 H 4 A 2,2 0 0 1 2,13 V 4 A 2,2 0 0 1 4,2 h 9 a 2,2 0 0 1 2,2 v 1 m -4,4 h 9 c 1.108,0 2,0.892 2,2 v 9 c 0,1.108 -0.892,2 -2,2 H 11 C 9.892,22 9,21.108 9,20 V 11 C 9,9.892 9.892,9 11,9 Z"},
{PackIconFeatherIconsKind.CornerDownLeft, "m 20,4 v 7 a 4,4 0 0 1 -4,4 H 4 m 5,-5 -5,5 5,5"},
{PackIconFeatherIconsKind.CornerDownRight, "m 4,4 v 7 a 4,4 0 0 0 4,4 h 12 m -5,-5 5,5 -5,5"},
{PackIconFeatherIconsKind.CornerLeftDown, "M 20,4 H 13 A 4,4 0 0 0 9,8 v 12 m 5,-5 -5,5 -5,-5"},
{PackIconFeatherIconsKind.CornerLeftUp, "M 20,20 H 13 A 4,4 0 0 1 9,16 V 4 M 14,9 9,4 4,9"},
{PackIconFeatherIconsKind.CornerRightDown, "m 4,4 h 7 a 4,4 0 0 1 4,4 v 12 m -5,-5 5,5 5,-5"},
{PackIconFeatherIconsKind.CornerRightUp, "m 4,20 h 7 a 4,4 0 0 0 4,-4 V 4 m -5,5 5,-5 5,5"},
{PackIconFeatherIconsKind.CornerUpLeft, "M 20,20 V 13 A 4,4 0 0 0 16,9 H 4 M 9,14 4,9 9,4"},
{PackIconFeatherIconsKind.CornerUpRight, "M 4,20 V 13 A 4,4 0 0 1 8,9 h 12 m -5,5 5,-5 -5,-5"},
{PackIconFeatherIconsKind.Cpu, "M 1,14 H 4 M 1,9 h 3 m 16,5 h 3 M 20,9 h 3 m -8,11 v 3 M 9,20 v 3 M 15,1 V 4 M 9,1 v 3 m 0,5 h 6 v 6 H 9 Z M 6,4 h 12 c 1.108,0 2,0.892 2,2 v 12 c 0,1.108 -0.892,2 -2,2 H 6 C 4.892,20 4,19.108 4,18 V 6 C 4,4.892 4.892,4 6,4 Z"},
{PackIconFeatherIconsKind.CreditCard, "M 1,10 H 23 M 3,4 h 18 c 1.108,0 2,0.892 2,2 v 12 c 0,1.108 -0.892,2 -2,2 H 3 C 1.892,20 1,19.108 1,18 V 6 C 1,4.892 1.892,4 3,4 Z"},
{PackIconFeatherIconsKind.Crop, "M 1,6.13 16,6 a 2,2 0 0 1 2,2 V 23 M 6.13,1 6,16 a 2,2 0 0 0 2,2 h 15"},
{PackIconFeatherIconsKind.Crosshair, "M 12,22 V 18 M 12,6 V 2 M 6,12 H 2 m 20,0 h -4 m 4,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Database, "m 3,5 v 14 c 0,1.66 4,3 9,3 5,0 9,-1.34 9,-3 V 5 m 0,7 c 0,1.66 -4,3 -9,3 C 7,15 3,13.66 3,12 M 21,5 A 9,3 0 0 1 12,8 9,3 0 0 1 3,5 9,3 0 0 1 12,2 9,3 0 0 1 21,5 Z"},
{PackIconFeatherIconsKind.Delete, "m 12,9 6,6 m 0,-6 -6,6 M 21,4 H 8 l -7,8 7,8 h 13 a 2,2 0 0 0 2,-2 V 6 A 2,2 0 0 0 21,4 Z"},
{PackIconFeatherIconsKind.Disc, "m 15,12 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z m 7,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.DollarSign, "M 17,5 H 9.5 a 3.5,3.5 0 0 0 0,7 h 5 a 3.5,3.5 0 0 1 0,7 H 6 M 12,1 v 22"},
{PackIconFeatherIconsKind.Download, "M 12,15 V 3 m -5,7 5,5 5,-5 m 4,5 v 4 a 2,2 0 0 1 -2,2 H 5 A 2,2 0 0 1 3,19 v -4"},
{PackIconFeatherIconsKind.DownloadCloud, "M 20.88,18.09 A 5,5 0 0 0 18,9 H 16.74 A 8,8 0 1 0 3,16.29 M 12,12 v 9 m -4,-4 4,4 4,-4"},
{PackIconFeatherIconsKind.Droplet, "m 12,2.69 5.66,5.66 a 8,8 0 1 1 -11.31,0 z"},
{PackIconFeatherIconsKind.Edit, "m 18.5,2.5 a 2.1213203,2.1213203 0 0 1 3,3 L 12,15 8,16 9,12 Z M 11,4 H 4 A 2,2 0 0 0 2,6 v 14 a 2,2 0 0 0 2,2 h 14 a 2,2 0 0 0 2,-2 v -7"},
{PackIconFeatherIconsKind.Edit2, "m 17,3 a 2.8284271,2.8284271 0 1 1 4,4 L 7.5,20.5 2,22 3.5,16.5 Z"},
{PackIconFeatherIconsKind.Edit3, "m 16.5,3.5 a 2.1213203,2.1213203 0 0 1 3,3 L 7,19 3,20 4,16 Z M 12,20 h 9"},
{PackIconFeatherIconsKind.ExternalLink, "M 10,14 21,3 m -6,0 h 6 v 6 m -3,4 v 6 a 2,2 0 0 1 -2,2 H 5 A 2,2 0 0 1 3,19 V 8 A 2,2 0 0 1 5,6 h 6"},
{PackIconFeatherIconsKind.Eye, "m 15,12 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z M 1,12 c 0,0 4,-8 11,-8 7,0 11,8 11,8 0,0 -4,8 -11,8 C 5,20 1,12 1,12 Z"},
{PackIconFeatherIconsKind.EyeOff, "M 1,1 23,23 M 17.94,17.94 A 10.07,10.07 0 0 1 12,20 C 5,20 1,12 1,12 A 18.45,18.45 0 0 1 6.06,6.06 M 9.9,4.24 A 9.12,9.12 0 0 1 12,4 c 7,0 11,8 11,8 a 18.5,18.5 0 0 1 -2.16,3.19 M 14.12,14.12 A 3,3 0 1 1 9.88,9.88"},
{PackIconFeatherIconsKind.Facebook, "m 18,2 h -3 a 5,5 0 0 0 -5,5 v 3 H 7 v 4 h 3 v 8 h 4 v -8 h 3 l 1,-4 H 14 V 7 a 1,1 0 0 1 1,-1 h 3 z"},
{PackIconFeatherIconsKind.FastForward, "M 2,19 11,12 2,5 Z m 11,0 9,-7 -9,-7 z"},
{PackIconFeatherIconsKind.Feather, "M 17.5,15 H 9 M 16,8 2,22 M 20.24,12.24 A 6.0033366,6.0033366 0 0 0 11.75,3.75 L 5,10.5 V 19 h 8.5 z"},
{PackIconFeatherIconsKind.Figma, "M 5,12.5 A 3.5,3.5 0 0 1 8.5,9 H 12 v 7 H 8.5 A 3.5,3.5 0 0 1 5,12.5 Z m 0,7 A 3.5,3.5 0 0 1 8.5,16 H 12 v 3.5 a 3.5,3.5 0 1 1 -7,0 z m 7,-7 a 3.5,3.5 0 1 1 7,0 3.5,3.5 0 1 1 -7,0 z M 12,2 h 3.5 a 3.5,3.5 0 1 1 0,7 H 12 Z M 5,5.5 A 3.5,3.5 0 0 1 8.5,2 H 12 V 9 H 8.5 A 3.5,3.5 0 0 1 5,5.5 Z"},
{PackIconFeatherIconsKind.File, "m 13,2 v 7 h 7 M 13,2 H 6 A 2,2 0 0 0 4,4 v 16 a 2,2 0 0 0 2,2 h 12 a 2,2 0 0 0 2,-2 V 9 Z"},
{PackIconFeatherIconsKind.FileMinus, "m 9,15 h 6 M 14,2 v 6 h 6 M 14,2 H 6 A 2,2 0 0 0 4,4 v 16 a 2,2 0 0 0 2,2 h 12 a 2,2 0 0 0 2,-2 V 8 Z"},
{PackIconFeatherIconsKind.FilePlus, "m 9,15 h 6 m -3,3 V 12 M 14,2 v 6 h 6 M 14,2 H 6 A 2,2 0 0 0 4,4 v 16 a 2,2 0 0 0 2,2 h 12 a 2,2 0 0 0 2,-2 V 8 Z"},
{PackIconFeatherIconsKind.FileText, "M 10,9 H 9 8 m 8,8 H 8 m 8,-4 H 8 M 14,2 v 6 h 6 M 14,2 H 6 A 2,2 0 0 0 4,4 v 16 a 2,2 0 0 0 2,2 h 12 a 2,2 0 0 0 2,-2 V 8 Z"},
{PackIconFeatherIconsKind.Film, "m 17,7 h 5 m -5,10 h 5 M 2,17 H 7 M 2,7 H 7 M 2,12 H 22 M 17,2 V 22 M 7,2 V 22 M 4.1800001,2 H 19.82 C 21.02772,2 22,2.97228 22,4.1800001 V 19.82 C 22,21.02772 21.02772,22 19.82,22 H 4.1800001 C 2.97228,22 2,21.02772 2,19.82 V 4.1800001 C 2,2.97228 2.97228,2 4.1800001,2 Z"},
{PackIconFeatherIconsKind.Filter, "M 22,3 H 2 l 8,9.46 V 19 l 4,2 v -8.54 z"},
{PackIconFeatherIconsKind.Flag, "m 4,22 v -7 m 0,0 c 0,0 1,-1 4,-1 3,0 5,2 8,2 3,0 4,-1 4,-1 V 3 C 20,3 19,4 16,4 13,4 11,2 8,2 5,2 4,3 4,3 Z"},
{PackIconFeatherIconsKind.Folder, "m 22,19 a 2,2 0 0 1 -2,2 H 4 A 2,2 0 0 1 2,19 V 5 A 2,2 0 0 1 4,3 h 5 l 2,3 h 9 a 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.FolderMinus, "m 9,14 h 6 m 7,5 a 2,2 0 0 1 -2,2 H 4 A 2,2 0 0 1 2,19 V 5 A 2,2 0 0 1 4,3 h 5 l 2,3 h 9 a 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.FolderPlus, "m 9,14 h 6 m -3,-3 v 6 m 10,2 a 2,2 0 0 1 -2,2 H 4 A 2,2 0 0 1 2,19 V 5 A 2,2 0 0 1 4,3 h 5 l 2,3 h 9 a 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.Framer, "M 5,16 V 9 H 19 V 2 H 5 l 14,14 h -7 m -7,0 7,7 v -7 m -7,0 h 7"},
{PackIconFeatherIconsKind.Frown, "m 15,9 h 0.01 M 9,9 H 9.01 M 16,16 c 0,0 -1.5,-2 -4,-2 -2.5,0 -4,2 -4,2 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Gift, "m 12,7 h 4.5 a 2.5,2.5 0 0 0 0,-5 C 13,2 12,7 12,7 Z m 0,0 H 7.5 a 2.5,2.5 0 0 1 0,-5 C 11,2 12,7 12,7 Z m 0,15 V 7 M 2,7 h 20 v 5 H 2 Z m 18,5 V 22 H 4 V 12"},
{PackIconFeatherIconsKind.GitBranch, "m 18,9 a 9,9 0 0 1 -9,9 m 0,0 A 3,3 0 0 1 6,21 3,3 0 0 1 3,18 3,3 0 0 1 6,15 3,3 0 0 1 9,18 Z M 21,6 A 3,3 0 0 1 18,9 3,3 0 0 1 15,6 3,3 0 0 1 18,3 3,3 0 0 1 21,6 Z M 6,3 v 12"},
{PackIconFeatherIconsKind.GitCommit, "m 17.01,12 h 5.949999 M 1.05,12 H 7 m 9,0 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z"},
{PackIconFeatherIconsKind.Github, "M 9,19 C 4,20.5 4,16.5 2,16 m 14,6 v -3.87 a 3.37,3.37 0 0 0 -0.94,-2.61 c 3.14,-0.35 6.44,-1.54 6.44,-7 A 5.44,5.44 0 0 0 20,4.77 5.07,5.07 0 0 0 19.91,1 c 0,0 -1.18,-0.35 -3.91,1.48 a 13.38,13.38 0 0 0 -7,0 C 6.27,0.65 5.09,1 5.09,1 A 5.07,5.07 0 0 0 5,4.77 5.44,5.44 0 0 0 3.5,8.55 c 0,5.42 3.3,6.61 6.44,7 A 3.37,3.37 0 0 0 9,18.13 V 22"},
{PackIconFeatherIconsKind.Gitlab, "M 22.65,14.39 12,22.13 1.35,14.39 A 0.84,0.84 0 0 1 1.05,13.45 L 2.27,9.67 4.71,2.16 A 0.42,0.42 0 0 1 4.82,2 0.43,0.43 0 0 1 5.4,2 0.42,0.42 0 0 1 5.51,2.18 l 2.44,7.49 h 8.1 L 18.49,2.16 A 0.42,0.42 0 0 1 18.6,2 a 0.43,0.43 0 0 1 0.58,0 0.42,0.42 0 0 1 0.11,0.18 l 2.44,7.51 1.27,3.76 a 0.84,0.84 0 0 1 -0.35,0.94 z"},
{PackIconFeatherIconsKind.GitMerge, "M 6,21 V 9 a 9,9 0 0 0 9,9 M 9,6 A 3,3 0 0 1 6,9 3,3 0 0 1 3,6 3,3 0 0 1 6,3 3,3 0 0 1 9,6 Z m 12,12 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z"},
{PackIconFeatherIconsKind.GitPullRequest, "M 6,9 V 21 M 13,6 h 3 a 2,2 0 0 1 2,2 v 7 M 9,6 A 3,3 0 0 1 6,9 3,3 0 0 1 3,6 3,3 0 0 1 6,3 3,3 0 0 1 9,6 Z m 12,12 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z"},
{PackIconFeatherIconsKind.Globe, "M 12,2 A 15.3,15.3 0 0 1 16,12 15.3,15.3 0 0 1 12,22 15.3,15.3 0 0 1 8,12 15.3,15.3 0 0 1 12,2 Z M 2,12 h 20 m 0,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Grid, "m 3,14 h 7 v 7 H 3 Z m 11,0 h 7 v 7 H 14 Z M 14,3 h 7 v 7 H 14 Z M 3,3 h 7 v 7 H 3 Z"},
{PackIconFeatherIconsKind.HardDrive, "m 10,16 h 0.01 M 6,16 H 6.01 M 5.45,5.11 2,12 v 6 a 2,2 0 0 0 2,2 h 16 a 2,2 0 0 0 2,-2 V 12 L 18.55,5.11 A 2,2 0 0 0 16.76,4 H 7.24 A 2,2 0 0 0 5.45,5.11 Z M 22,12 H 2"},
{PackIconFeatherIconsKind.Hash, "M 16,3 14,21 M 10,3 8,21 M 4,15 H 20 M 4,9 h 16"},
{PackIconFeatherIconsKind.Headphones, "m 21,19 a 2,2 0 0 1 -2,2 h -1 a 2,2 0 0 1 -2,-2 v -3 a 2,2 0 0 1 2,-2 h 3 z M 3,19 a 2,2 0 0 0 2,2 H 6 A 2,2 0 0 0 8,19 V 16 A 2,2 0 0 0 6,14 H 3 Z m 0,-1 v -6 a 9,9 0 0 1 18,0 v 6"},
{PackIconFeatherIconsKind.Heart, "m 20.84,4.61 a 5.5,5.5 0 0 0 -7.78,0 L 12,5.67 10.94,4.61 a 5.5012908,5.5012908 0 0 0 -7.78,7.78 l 1.06,1.06 7.78,7.78 7.78,-7.78 1.06,-1.06 a 5.5,5.5 0 0 0 0,-7.78 z"},
{PackIconFeatherIconsKind.HelpCircle, "m 12,17 h 0.01 M 9.09,9 a 3,3 0 0 1 5.83,1 c 0,2 -3,3 -3,3 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Hexagon, "M 21,16 V 8 A 2,2 0 0 0 20,6.27 l -7,-4 a 2,2 0 0 0 -2,0 l -7,4 A 2,2 0 0 0 3,8 v 8 a 2,2 0 0 0 1,1.73 l 7,4 a 2,2 0 0 0 2,0 l 7,-4 A 2,2 0 0 0 21,16 Z"},
{PackIconFeatherIconsKind.Home, "M 9,22 V 12 h 6 V 22 M 3,9 12,2 21,9 v 11 a 2,2 0 0 1 -2,2 H 5 A 2,2 0 0 1 3,20 Z"},
{PackIconFeatherIconsKind.Image, "M 21,15 16,10 5,21 M 10,8.5 A 1.5,1.5 0 0 1 8.5,10 1.5,1.5 0 0 1 7,8.5 1.5,1.5 0 0 1 8.5,7 1.5,1.5 0 0 1 10,8.5 Z M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.Inbox, "M 5.45,5.11 2,12 v 6 a 2,2 0 0 0 2,2 h 16 a 2,2 0 0 0 2,-2 V 12 L 18.55,5.11 A 2,2 0 0 0 16.76,4 H 7.24 A 2,2 0 0 0 5.45,5.11 Z M 22,12 h -6 l -2,3 H 10 L 8,12 H 2"},
{PackIconFeatherIconsKind.Info, "m 12,8 h 0.01 M 12,16 v -4 m 10,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Instagram, "m 17.5,6.5 h 0.01 M 16,11.37 A 4,4 0 1 1 12.63,8 4,4 0 0 1 16,11.37 Z M 7,2 h 10 c 2.77,0 5,2.23 5,5 v 10 c 0,2.77 -2.23,5 -5,5 H 7 C 4.23,22 2,19.77 2,17 V 7 C 2,4.23 4.23,2 7,2 Z"},
{PackIconFeatherIconsKind.Italic, "M 15,4 9,20 m 5,0 H 5 M 19,4 h -9"},
{PackIconFeatherIconsKind.Key, "m 21,2 -2,2 m -7.61,7.61 a 5.5,5.5 0 1 1 -7.778,7.778 5.5,5.5 0 0 1 7.777,-7.777 z m 0,0 4.11,-4.11 m 0,0 3,3 L 22,7 19,4 M 15.5,7.5 19,4"},
{PackIconFeatherIconsKind.Layers, "m 2,12 10,5 10,-5 M 2,17 12,22 22,17 M 12,2 2,7 12,12 22,7 Z"},
{PackIconFeatherIconsKind.Layout, "M 9,21 V 9 M 3,9 H 21 M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.LifeBuoy, "M 4.9299998,19.07 9.1700001,14.83 M 14.83,9.1700001 18.360001,5.6399999 M 14.83,9.1700001 19.07,4.9299998 M 14.83,14.83 19.07,19.07 M 4.9299998,4.9299998 9.1700001,9.1700001 M 16,12 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z m 6,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Link, "M 14,11 A 5,5 0 0 0 6.46,10.46 l -3,3 a 5,5 0 0 0 7.07,7.07 l 1.71,-1.71 M 10,13 a 5,5 0 0 0 7.54,0.54 l 3,-3 A 5,5 0 0 0 13.47,3.47 l -1.72,1.71"},
{PackIconFeatherIconsKind.Link2, "m 8,12 h 8 M 15,7 h 3 a 5,5 0 0 1 5,5 5,5 0 0 1 -5,5 H 15 M 9,17 H 6 A 5,5 0 0 1 1,12 5,5 0 0 1 6,7 h 3"},
{PackIconFeatherIconsKind.Linkedin, "M 6,4 A 2,2 0 0 1 4,6 2,2 0 0 1 2,4 2,2 0 0 1 4,2 2,2 0 0 1 6,4 Z M 2,9 H 6 V 21 H 2 Z M 16,8 a 6,6 0 0 1 6,6 v 7 h -4 v -7 a 2,2 0 0 0 -2,-2 2,2 0 0 0 -2,2 v 7 h -4 v -7 a 6,6 0 0 1 6,-6 z"},
{PackIconFeatherIconsKind.List, "M 3,18 H 3.01 M 3,12 H 3.01 M 3,6 H 3.01 M 8,18 H 21 M 8,12 H 21 M 8,6 h 13"},
{PackIconFeatherIconsKind.Loader, "M 16.24,7.7600002 19.07,4.9299998 M 4.9299998,19.07 7.7600002,16.24 M 18,12 h 4 M 2,12 h 4 m 10.24,4.24 2.83,2.83 M 4.9299998,4.9299998 7.7600002,7.7600002 M 12,18 v 4 M 12,2 v 4"},
{PackIconFeatherIconsKind.Lock, "M 7,11 V 7 a 5,5 0 0 1 10,0 v 4 M 5,11 h 14 c 1.108,0 2,0.892 2,2 v 7 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,22 3,21.108 3,20 v -7 c 0,-1.108 0.892,-2 2,-2 z"},
{PackIconFeatherIconsKind.LogIn, "M 15,12 H 3 m 7,5 5,-5 -5,-5 m 5,-4 h 4 a 2,2 0 0 1 2,2 v 14 a 2,2 0 0 1 -2,2 h -4"},
{PackIconFeatherIconsKind.LogOut, "M 21,12 H 9 m 7,5 5,-5 -5,-5 M 9,21 H 5 A 2,2 0 0 1 3,19 V 5 A 2,2 0 0 1 5,3 h 4"},
{PackIconFeatherIconsKind.Mail, "M 22,6 12,13 2,6 M 4,4 h 16 c 1.1,0 2,0.9 2,2 v 12 c 0,1.1 -0.9,2 -2,2 H 4 C 2.9,20 2,19.1 2,18 V 6 C 2,4.9 2.9,4 4,4 Z"},
{PackIconFeatherIconsKind.Map, "M 16,6 V 22 M 8,2 V 18 M 1,6 v 16 l 7,-4 8,4 7,-4 V 2 L 16,6 8,2 Z"},
{PackIconFeatherIconsKind.MapPin, "m 15,10 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z m 6,0 c 0,7 -9,13 -9,13 0,0 -9,-6 -9,-13 a 9,9 0 0 1 18,0 z"},
{PackIconFeatherIconsKind.Maximize, "M 8,3 H 5 A 2,2 0 0 0 3,5 V 8 M 21,8 V 5 A 2,2 0 0 0 19,3 h -3 m 0,18 h 3 a 2,2 0 0 0 2,-2 V 16 M 3,16 v 3 a 2,2 0 0 0 2,2 h 3"},
{PackIconFeatherIconsKind.Maximize2, "m 3,21 7,-7 M 21,3 14,10 M 9,21 H 3 V 15 M 15,3 h 6 v 6"},
{PackIconFeatherIconsKind.Meh, "m 15,9 h 0.01 M 9,9 H 9.01 M 8,15 h 8 m 6,-3 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Menu, "M 3,18 H 21 M 3,6 H 21 M 3,12 h 18"},
{PackIconFeatherIconsKind.MessageCircle, "M 21,11.5 A 8.38,8.38 0 0 1 20.1,15.3 8.5,8.5 0 0 1 12.5,20 8.38,8.38 0 0 1 8.7,19.1 L 3,21 4.9,15.3 A 8.38,8.38 0 0 1 4,11.5 8.5,8.5 0 0 1 8.7,3.9 8.38,8.38 0 0 1 12.5,3 H 13 a 8.48,8.48 0 0 1 8,8 z"},
{PackIconFeatherIconsKind.MessageSquare, "m 21,15 a 2,2 0 0 1 -2,2 H 7 L 3,21 V 5 A 2,2 0 0 1 5,3 h 14 a 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.Mic, "m 8,23 h 8 m -4,-4 v 4 m 7,-13 v 2 A 7,7 0 0 1 5,12 V 10 M 12,1 A 3,3 0 0 0 9,4 v 8 a 3,3 0 0 0 6,0 V 4 A 3,3 0 0 0 12,1 Z"},
{PackIconFeatherIconsKind.MicOff, "m 8,23 h 8 m -4,-4 v 4 m 5,-6.05 A 7,7 0 0 1 5,12 v -2 m 14,0 v 2 a 7,7 0 0 1 -0.11,1.23 M 9,9 v 3 a 3,3 0 0 0 5.12,2.12 M 15,9.34 V 4 A 3,3 0 0 0 9.06,3.4 M 1,1 23,23"},
{PackIconFeatherIconsKind.Minimize, "M 8,3 V 6 A 2,2 0 0 1 6,8 H 3 M 21,8 H 18 A 2,2 0 0 1 16,6 V 3 m 0,18 v -3 a 2,2 0 0 1 2,-2 h 3 M 3,16 h 3 a 2,2 0 0 1 2,2 v 3"},
{PackIconFeatherIconsKind.Minimize2, "m 3,21 7,-7 m 4,-4 7,-7 m -1,7 H 14 V 4 M 4,14 h 6 v 6"},
{PackIconFeatherIconsKind.Minus, "M 5,12 H 19"},
{PackIconFeatherIconsKind.MinusCircle, "m 8,12 h 8 m 6,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.MinusSquare, "m 8,12 h 8 M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.Monitor, "m 12,17 v 4 m -4,0 h 8 M 4,3 h 16 c 1.108,0 2,0.892 2,2 v 10 c 0,1.108 -0.892,2 -2,2 H 4 C 2.892,17 2,16.108 2,15 V 5 C 2,3.892 2.892,3 4,3 Z"},
{PackIconFeatherIconsKind.Moon, "M 21,12.79 A 9,9 0 1 1 11.21,3 7,7 0 0 0 21,12.79 Z"},
{PackIconFeatherIconsKind.MoreHorizontal, "m 6,12 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z m 14,0 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z m -7,0 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z"},
{PackIconFeatherIconsKind.MoreVertical, "m 13,19 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z M 13,5 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z m 0,7 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z"},
{PackIconFeatherIconsKind.MousePointer, "m 13,13 6,6 M 3,3 l 7.07,16.97 2.51,-7.39 7.39,-2.51 z"},
{PackIconFeatherIconsKind.Move, "M 12,2 V 22 M 2,12 h 20 m -3,-3 3,3 -3,3 m -4,4 -3,3 -3,-3 M 9,5 12,2 15,5 M 5,9 2,12 5,15"},
{PackIconFeatherIconsKind.Music, "m 21,16 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z M 9,18 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z m 0,0 V 5 L 21,3 v 13"},
{PackIconFeatherIconsKind.Navigation, "M 3,11 22,2 13,21 11,13 Z"},
{PackIconFeatherIconsKind.Navigation2, "m 12,2 7,19 -7,-4 -7,4 z"},
{PackIconFeatherIconsKind.Octagon, "m 7.86,2 h 8.28 L 22,7.86 v 8.28 L 16.14,22 H 7.86 L 2,16.14 V 7.86 Z"},
{PackIconFeatherIconsKind.Package, "M 12,22.08 V 12 M 3.27,6.96 12,12.01 20.73,6.96 M 21,16 V 8 A 2,2 0 0 0 20,6.27 l -7,-4 a 2,2 0 0 0 -2,0 l -7,4 A 2,2 0 0 0 3,8 v 8 a 2,2 0 0 0 1,1.73 l 7,4 a 2,2 0 0 0 2,0 l 7,-4 A 2,2 0 0 0 21,16 Z M 16.5,9.3999996 7.5,4.21"},
{PackIconFeatherIconsKind.Paperclip, "m 21.44,11.05 -9.19,9.19 A 6.0033366,6.0033366 0 0 1 3.76,11.75 l 9.19,-9.19 a 4.0022244,4.0022244 0 0 1 5.66,5.66 l -9.2,9.19 A 2.0011122,2.0011122 0 0 1 6.58,14.58 L 15.07,6.1"},
{PackIconFeatherIconsKind.Pause, "m 14,4 h 4 V 20 H 14 Z M 6,4 h 4 V 20 H 6 Z"},
{PackIconFeatherIconsKind.PauseCircle, "M 14,15 V 9 m -4,6 V 9 m 12,3 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.PenTool, "m 13,11 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 z M 2,2 9.586,9.586 M 18,13 16.5,5.5 2,2 5.5,16.5 13,18 Z m -6,6 7,-7 3,3 -7,7 z"},
{PackIconFeatherIconsKind.Percent, "M 20,17.5 A 2.5,2.5 0 0 1 17.5,20 2.5,2.5 0 0 1 15,17.5 2.5,2.5 0 0 1 17.5,15 2.5,2.5 0 0 1 20,17.5 Z M 9,6.5 A 2.5,2.5 0 0 1 6.5,9 2.5,2.5 0 0 1 4,6.5 2.5,2.5 0 0 1 6.5,4 2.5,2.5 0 0 1 9,6.5 Z M 19,5 5,19"},
{PackIconFeatherIconsKind.Phone, "m 22,16.92 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.5,19.5 0 0 1 -6,-6 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91 a 16,16 0 0 0 6,6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2.03 z"},
{PackIconFeatherIconsKind.PhoneCall, "M 15.05,5 A 5,5 0 0 1 19,8.95 M 15.05,1 A 9,9 0 0 1 23,8.94 m -1,7.98 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.5,19.5 0 0 1 -6,-6 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91 a 16,16 0 0 0 6,6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2.03 z"},
{PackIconFeatherIconsKind.PhoneForwarded, "m 22,16.92 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.5,19.5 0 0 1 -6,-6 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91 a 16,16 0 0 0 6,6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2.03 z M 15,5 h 8 m -4,-4 4,4 -4,4"},
{PackIconFeatherIconsKind.PhoneIncoming, "m 22,16.92 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.5,19.5 0 0 1 -6,-6 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91 a 16,16 0 0 0 6,6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2.03 z M 23,1 16,8 m 0,-6 v 6 h 6"},
{PackIconFeatherIconsKind.PhoneMissed, "m 22,16.92 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.5,19.5 0 0 1 -6,-6 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91 a 16,16 0 0 0 6,6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2.03 z M 17,1 23,7 m 0,-6 -6,6"},
{PackIconFeatherIconsKind.PhoneOff, "M 23,1 1,23 m 9.68,-9.69 a 16,16 0 0 0 3.41,2.6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.42,19.42 0 0 1 -3.33,-2.67 M 5.19,12.81 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91"},
{PackIconFeatherIconsKind.PhoneOutgoing, "m 22,16.92 v 3 a 2,2 0 0 1 -2.18,2 19.79,19.79 0 0 1 -8.63,-3.07 19.5,19.5 0 0 1 -6,-6 A 19.79,19.79 0 0 1 2.12,4.18 2,2 0 0 1 4.11,2 h 3 a 2,2 0 0 1 2,1.72 12.84,12.84 0 0 0 0.7,2.81 2,2 0 0 1 -0.45,2.11 L 8.09,9.91 a 16,16 0 0 0 6,6 l 1.27,-1.27 a 2,2 0 0 1 2.11,-0.45 12.84,12.84 0 0 0 2.81,0.7 2,2 0 0 1 1.72,2.03 z M 16,8 23,1 m 0,6 V 1 h -6"},
{PackIconFeatherIconsKind.PieChart, "M 22,12 A 10,10 0 0 0 12,2 v 10 z m -0.79,3.89 A 10,10 0 1 1 8,2.83"},
{PackIconFeatherIconsKind.Play, "M 5,3 19,12 5,21 Z"},
{PackIconFeatherIconsKind.PlayCircle, "m 10,8 6,4 -6,4 z m 12,4 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Plus, "M 5,12 H 19 M 12,5 v 14"},
{PackIconFeatherIconsKind.PlusCircle, "m 8,12 h 8 M 12,8 v 8 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.PlusSquare, "m 8,12 h 8 M 12,8 v 8 M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.Pocket, "m 8,10 4,4 4,-4 M 4,3 h 16 a 2,2 0 0 1 2,2 v 6 A 10,10 0 0 1 12,21 10,10 0 0 1 2,11 V 5 A 2,2 0 0 1 4,3 Z"},
{PackIconFeatherIconsKind.Power, "m 12,2 v 10 m 6.36,-5.36 a 9,9 0 1 1 -12.73,0"},
{PackIconFeatherIconsKind.Printer, "m 6,14 h 12 v 8 H 6 Z m 0,4 H 4 A 2,2 0 0 1 2,16 V 11 A 2,2 0 0 1 4,9 h 16 a 2,2 0 0 1 2,2 v 5 a 2,2 0 0 1 -2,2 H 18 M 6,9 V 2 h 12 v 7"},
{PackIconFeatherIconsKind.Radio, "m 16.24,7.76 a 6,6 0 0 1 0,8.49 M 7.76,16.24 a 6,6 0 0 1 0,-8.49 M 19.07,4.93 a 10,10 0 0 1 0,14.14 m -14.14,0 a 10,10 0 0 1 0,-14.14 M 14,12 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 z"},
{PackIconFeatherIconsKind.RefreshCcw, "M 20.49,9 A 9,9 0 0 0 5.64,5.64 L 1,10 m 22,4 -4.64,4.36 A 9,9 0 0 1 3.51,15 M 23,20 V 14 H 17 M 1,4 v 6 h 6"},
{PackIconFeatherIconsKind.RefreshCw, "M 3.51,9 A 9,9 0 0 1 18.36,5.64 L 23,10 M 1,14 5.64,18.36 A 9,9 0 0 0 20.49,15 M 1,20 V 14 H 7 M 23,4 v 6 h -6"},
{PackIconFeatherIconsKind.Repeat, "m 21,13 v 2 a 4,4 0 0 1 -4,4 H 3 M 7,23 3,19 7,15 M 3,11 V 9 A 4,4 0 0 1 7,5 h 14 m -4,-4 4,4 -4,4"},
{PackIconFeatherIconsKind.Rewind, "M 22,19 13,12 22,5 Z M 11,19 2,12 11,5 Z"},
{PackIconFeatherIconsKind.RotateCcw, "M 3.51,15 A 9,9 0 1 0 5.64,5.64 L 1,10 M 1,4 v 6 h 6"},
{PackIconFeatherIconsKind.RotateCw, "M 20.49,15 A 9,9 0 1 1 18.37,5.64 L 23,10 m 0,-6 v 6 h -6"},
{PackIconFeatherIconsKind.Rss, "M 6,19 A 1,1 0 0 1 5,20 1,1 0 0 1 4,19 1,1 0 0 1 5,18 1,1 0 0 1 6,19 Z M 4,4 A 16,16 0 0 1 20,20 M 4,11 a 9,9 0 0 1 9,9"},
{PackIconFeatherIconsKind.Save, "m 7,3 v 5 h 8 m 2,13 V 13 H 7 v 8 m 12,0 H 5 A 2,2 0 0 1 3,19 V 5 A 2,2 0 0 1 5,3 h 11 l 5,5 v 11 a 2,2 0 0 1 -2,2 z"},
{PackIconFeatherIconsKind.Scissors, "M 8.1199999,8.1199999 12,12 M 14.47,14.48 20,20 M 20,4 8.1199999,15.88 M 9,18 A 3,3 0 0 1 6,21 3,3 0 0 1 3,18 3,3 0 0 1 6,15 3,3 0 0 1 9,18 Z M 9,6 A 3,3 0 0 1 6,9 3,3 0 0 1 3,6 3,3 0 0 1 6,3 3,3 0 0 1 9,6 Z"},
{PackIconFeatherIconsKind.Search, "M 21,21 16.65,16.65 M 19,11 a 8,8 0 0 1 -8,8 8,8 0 0 1 -8,-8 8,8 0 0 1 8,-8 8,8 0 0 1 8,8 z"},
{PackIconFeatherIconsKind.Send, "M 22,2 15,22 11,13 2,9 Z m 0,0 -11,11"},
{PackIconFeatherIconsKind.Server, "M 6,18 H 6.01 M 6,6 H 6.01 M 4,14 h 16 c 1.108,0 2,0.892 2,2 v 4 c 0,1.108 -0.892,2 -2,2 H 4 C 2.892,22 2,21.108 2,20 V 16 C 2,14.892 2.892,14 4,14 Z M 4,2 h 16 c 1.108,0 2,0.892 2,2 v 4 c 0,1.108 -0.892,2 -2,2 H 4 C 2.892,10 2,9.108 2,8 V 4 C 2,2.892 2.892,2 4,2 Z"},
{PackIconFeatherIconsKind.Settings, "m 19.4,15 a 1.65,1.65 0 0 0 0.33,1.82 l 0.06,0.06 a 2,2 0 0 1 0,2.83 2,2 0 0 1 -2.83,0 L 16.9,19.65 a 1.65,1.65 0 0 0 -1.82,-0.33 1.65,1.65 0 0 0 -1,1.51 V 21 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 V 20.91 A 1.65,1.65 0 0 0 9,19.4 1.65,1.65 0 0 0 7.18,19.73 l -0.06,0.06 a 2,2 0 0 1 -2.83,0 2,2 0 0 1 0,-2.83 L 4.35,16.9 a 1.65,1.65 0 0 0 0.33,-1.82 1.65,1.65 0 0 0 -1.51,-1 H 3 a 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 H 3.09 A 1.65,1.65 0 0 0 4.6,9 1.65,1.65 0 0 0 4.27,7.18 L 4.21,7.12 a 2,2 0 0 1 0,-2.83 2,2 0 0 1 2.83,0 L 7.1,4.35 A 1.65,1.65 0 0 0 8.92,4.68 H 9 A 1.65,1.65 0 0 0 10,3.17 V 3 a 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 v 0.09 a 1.65,1.65 0 0 0 1,1.51 1.65,1.65 0 0 0 1.82,-0.33 l 0.06,-0.06 a 2,2 0 0 1 2.83,0 2,2 0 0 1 0,2.83 L 19.65,7.1 A 1.65,1.65 0 0 0 19.32,8.92 V 9 a 1.65,1.65 0 0 0 1.51,1 H 21 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 H 20.91 A 1.65,1.65 0 0 0 19.4,15 Z M 15,12 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z"},
{PackIconFeatherIconsKind.Share, "M 12,2 V 15 M 16,6 12,2 8,6 m -4,6 v 8 a 2,2 0 0 0 2,2 h 12 a 2,2 0 0 0 2,-2 v -8"},
{PackIconFeatherIconsKind.Share2, "M 15.41,6.5100002 8.5900002,10.49 m 0,3.02 L 15.42,17.49 M 21,19 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z M 9,12 A 3,3 0 0 1 6,15 3,3 0 0 1 3,12 3,3 0 0 1 6,9 3,3 0 0 1 9,12 Z M 21,5 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z"},
{PackIconFeatherIconsKind.Shield, "m 12,22 c 0,0 8,-4 8,-10 V 5 L 12,2 4,5 v 7 c 0,6 8,10 8,10 z"},
{PackIconFeatherIconsKind.ShieldOff, "M 1,1 23,23 M 4.73,4.73 4,5 v 7 c 0,6 8,10 8,10 a 20.29,20.29 0 0 0 5.62,-4.38 M 19.69,14 A 6.9,6.9 0 0 0 20,12 V 5 L 12,2 8.84,3.18"},
{PackIconFeatherIconsKind.ShoppingBag, "M 16,10 A 4,4 0 0 1 8,10 M 3,6 H 21 M 6,2 3,6 v 14 a 2,2 0 0 0 2,2 h 14 a 2,2 0 0 0 2,-2 V 6 L 18,2 Z"},
{PackIconFeatherIconsKind.ShoppingCart, "m 1,1 h 4 l 2.68,13.39 a 2,2 0 0 0 2,1.61 h 9.72 a 2,2 0 0 0 2,-1.61 L 23,6 H 6 m 15,15 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z m -11,0 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z"},
{PackIconFeatherIconsKind.Shuffle, "m 4,4 5,5 m 6,6 6,6 m 0,-5 v 5 H 16 M 4,20 21,3 m -5,0 h 5 v 5"},
{PackIconFeatherIconsKind.Sidebar, "M 9,3 V 21 M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.SkipBack, "M 5,19 V 5 M 19,20 9,12 19,4 Z"},
{PackIconFeatherIconsKind.SkipForward, "M 19,5 V 19 M 5,4 15,12 5,20 Z"},
{PackIconFeatherIconsKind.Slack, "M 8.5,5 H 10 V 3.5 C 10,2.67 9.33,2 8.5,2 7.67,2 7,2.67 7,3.5 7,4.33 7.67,5 8.5,5 Z M 10,9.5 C 10,8.67 9.33,8 8.5,8 h -5 C 2.67,8 2,8.67 2,9.5 2,10.33 2.67,11 3.5,11 h 5 C 9.33,11 10,10.33 10,9.5 Z M 15.5,19 H 14 v 1.5 C 14,21.33 14.67,22 15.5,22 16.33,22 17,21.33 17,20.5 17,19.67 16.33,19 15.5,19 Z M 14,14.5 C 14,13.67 14.67,13 15.5,13 h 5 c 0.83,0 1.5,0.67 1.5,1.5 0,0.83 -0.67,1.5 -1.5,1.5 h -5 C 14.67,16 14,15.33 14,14.5 Z M 3.5,14 H 5 v 1.5 C 5,16.33 4.33,17 3.5,17 2.67,17 2,16.33 2,15.5 2,14.67 2.67,14 3.5,14 Z m 6,0 c 0.83,0 1.5,0.67 1.5,1.5 v 5 C 11,21.33 10.33,22 9.5,22 8.67,22 8,21.33 8,20.5 v -5 C 8,14.67 8.67,14 9.5,14 Z m 11,-4 H 19 V 8.5 C 19,7.67 19.67,7 20.5,7 21.33,7 22,7.67 22,8.5 22,9.33 21.33,10 20.5,10 Z m -6,0 C 13.67,10 13,9.33 13,8.5 v -5 C 13,2.67 13.67,2 14.5,2 15.33,2 16,2.67 16,3.5 v 5 C 16,9.33 15.33,10 14.5,10 Z"},
{PackIconFeatherIconsKind.Slash, "M 4.9299998,4.9299998 19.07,19.07 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Sliders, "m 17,16 h 6 M 9,8 h 6 M 1,14 H 7 M 20,12 V 3 m 0,18 V 16 M 12,8 V 3 m 0,18 V 12 M 4,10 V 3 m 0,18 v -7"},
{PackIconFeatherIconsKind.Smartphone, "m 12,18 h 0.01 M 7,2 h 10 c 1.108,0 2,0.892 2,2 v 16 c 0,1.108 -0.892,2 -2,2 H 7 C 5.892,22 5,21.108 5,20 V 4 C 5,2.892 5.892,2 7,2 Z"},
{PackIconFeatherIconsKind.Smile, "m 15,9 h 0.01 M 9,9 H 9.01 M 8,14 c 0,0 1.5,2 4,2 2.5,0 4,-2 4,-2 m 6,-2 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Speaker, "m 12,6 h 0.01 M 16,14 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z M 6,2 h 12 c 1.108,0 2,0.892 2,2 v 16 c 0,1.108 -0.892,2 -2,2 H 6 C 4.892,22 4,21.108 4,20 V 4 C 4,2.892 4.892,2 6,2 Z"},
{PackIconFeatherIconsKind.Square, "m 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.Star, "M 12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26 Z"},
{PackIconFeatherIconsKind.StopCircle, "m 9,9 h 6 v 6 H 9 Z m 13,3 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Sun, "m 18.360001,5.6399999 1.42,-1.4200001 M 4.2199998,19.780001 l 1.4200001,-1.42 M 21,12 h 2 M 1,12 h 2 m 15.360001,6.360001 1.42,1.42 M 4.2199998,4.2199998 5.6399999,5.6399999 M 12,21 v 2 M 12,1 v 2 m 5,9 a 5,5 0 0 1 -5,5 5,5 0 0 1 -5,-5 5,5 0 0 1 5,-5 5,5 0 0 1 5,5 z"},
{PackIconFeatherIconsKind.Sunrise, "m 8,6 4,-4 4,4 m 7,16 H 1 m 17.360001,-10.36 1.42,-1.42 M 21,18 h 2 M 1,18 h 2 m 1.2199998,-7.78 1.4200001,1.42 M 12,2 v 7 m 5,9 A 5,5 0 0 0 7,18"},
{PackIconFeatherIconsKind.Sunset, "M 16,5 12,9 8,5 M 23,22 H 1 m 17.360001,-10.36 1.42,-1.42 M 21,18 h 2 M 1,18 h 2 m 1.2199998,-7.78 1.4200001,1.42 M 12,9 V 2 m 5,16 A 5,5 0 0 0 7,18"},
{PackIconFeatherIconsKind.Tablet, "m 12,18 h 0.01 M 6,2 h 12 c 1.108,0 2,0.892 2,2 v 16 c 0,1.108 -0.892,2 -2,2 H 6 C 4.892,22 4,21.108 4,20 V 4 C 4,2.892 4.892,2 6,2 Z"},
{PackIconFeatherIconsKind.Tag, "m 7,7 h 0.01 m 13.58,6.41 -7.17,7.17 a 2,2 0 0 1 -2.83,0 L 2,12 V 2 h 10 l 8.59,8.59 a 2,2 0 0 1 0,2.82 z"},
{PackIconFeatherIconsKind.Target, "m 14,12 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 z m 4,0 a 6,6 0 0 1 -6,6 6,6 0 0 1 -6,-6 6,6 0 0 1 6,-6 6,6 0 0 1 6,6 z m 4,0 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.Terminal, "m 12,19 h 8 M 4,17 10,11 4,5"},
{PackIconFeatherIconsKind.Thermometer, "M 14,14.76 V 3.5 a 2.5,2.5 0 0 0 -5,0 v 11.26 a 4.5,4.5 0 1 0 5,0 z"},
{PackIconFeatherIconsKind.ThumbsDown, "m 10,15 v 4 a 3,3 0 0 0 3,3 l 4,-9 V 2 H 5.72 a 2,2 0 0 0 -2,1.7 l -1.38,9 a 2,2 0 0 0 2,2.3 z M 17,2 h 2.67 A 2.31,2.31 0 0 1 22,4 v 7 a 2.31,2.31 0 0 1 -2.33,2 H 17"},
{PackIconFeatherIconsKind.ThumbsUp, "M 14,9 V 5 A 3,3 0 0 0 11,2 l -4,9 v 11 h 11.28 a 2,2 0 0 0 2,-1.7 l 1.38,-9 A 2,2 0 0 0 19.66,9 Z M 7,22 H 4 A 2,2 0 0 1 2,20 v -7 a 2,2 0 0 1 2,-2 h 3"},
{PackIconFeatherIconsKind.ToggleLeft, "M 11,12 A 3,3 0 0 1 8,15 3,3 0 0 1 5,12 3,3 0 0 1 8,9 3,3 0 0 1 11,12 Z M 8,5 h 8 c 3.878,0 7,3.122 7,7 0,3.878 -3.122,7 -7,7 H 8 C 4.122,19 1,15.878 1,12 1,8.122 4.122,5 8,5 Z"},
{PackIconFeatherIconsKind.ToggleRight, "m 19,12 a 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 3,3 z M 8,5 h 8 c 3.878,0 7,3.122 7,7 0,3.878 -3.122,7 -7,7 H 8 C 4.122,19 1,15.878 1,12 1,8.122 4.122,5 8,5 Z"},
{PackIconFeatherIconsKind.Tool, "m 14.7,6.3 a 1,1 0 0 0 0,1.4 l 1.6,1.6 a 1,1 0 0 0 1.4,0 l 3.77,-3.77 a 6,6 0 0 1 -7.94,7.94 l -6.91,6.91 a 2.1213203,2.1213203 0 0 1 -3,-3 l 6.91,-6.91 a 6,6 0 0 1 7.94,-7.94 l -3.76,3.76 z"},
{PackIconFeatherIconsKind.Trash, "m 19,6 v 14 a 2,2 0 0 1 -2,2 H 7 A 2,2 0 0 1 5,20 V 6 M 8,6 V 4 a 2,2 0 0 1 2,-2 h 4 a 2,2 0 0 1 2,2 V 6 M 3,6 h 2 16"},
{PackIconFeatherIconsKind.Trash2, "m 14,11 v 6 m -4,-6 v 6 M 19,6 v 14 a 2,2 0 0 1 -2,2 H 7 A 2,2 0 0 1 5,20 V 6 M 8,6 V 4 a 2,2 0 0 1 2,-2 h 4 a 2,2 0 0 1 2,2 V 6 M 3,6 h 2 16"},
{PackIconFeatherIconsKind.Trello, "m 14,7 h 3 v 5 H 14 Z M 7,7 h 3 v 9 H 7 Z M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.TrendingDown, "m 17,18 h 6 v -6 m 0,6 -9.5,-9.5 -5,5 L 1,6"},
{PackIconFeatherIconsKind.TrendingUp, "m 17,6 h 6 v 6 m 0,-6 -9.5,9.5 -5,-5 L 1,18"},
{PackIconFeatherIconsKind.Triangle, "M 10.29,3.86 1.82,18 a 2,2 0 0 0 1.71,3 h 16.94 a 2,2 0 0 0 1.71,-3 L 13.71,3.86 a 2,2 0 0 0 -3.42,0 z"},
{PackIconFeatherIconsKind.Truck, "M 21,18.5 A 2.5,2.5 0 0 1 18.5,21 2.5,2.5 0 0 1 16,18.5 2.5,2.5 0 0 1 18.5,16 2.5,2.5 0 0 1 21,18.5 Z m -13,0 A 2.5,2.5 0 0 1 5.5,21 2.5,2.5 0 0 1 3,18.5 2.5,2.5 0 0 1 5.5,16 2.5,2.5 0 0 1 8,18.5 Z M 16,8 h 4 l 3,3 v 5 H 16 Z M 1,3 H 16 V 16 H 1 Z"},
{PackIconFeatherIconsKind.Tv, "M 17,2 12,7 7,2 M 4,7 h 16 c 1.108,0 2,0.892 2,2 v 11 c 0,1.108 -0.892,2 -2,2 H 4 C 2.892,22 2,21.108 2,20 V 9 C 2,7.892 2.892,7 4,7 Z"},
{PackIconFeatherIconsKind.Twitch, "M 21,2 H 3 v 16 h 5 v 4 l 4,-4 h 5 l 4,-4 z M 11,11 V 7 m 5,4 V 7"},
{PackIconFeatherIconsKind.Twitter, "m 23,3 a 10.9,10.9 0 0 1 -3.14,1.53 4.48,4.48 0 0 0 -7.86,3 v 1 A 10.66,10.66 0 0 1 3,4 c 0,0 -4,9 5,13 a 11.64,11.64 0 0 1 -7,2 c 9,5 20,0 20,-11.5 A 4.5,4.5 0 0 0 20.92,6.67 7.72,7.72 0 0 0 23,3 Z"},
{PackIconFeatherIconsKind.Type, "m 12,4 v 16 m -3,0 h 6 M 4,7 V 4 h 16 v 3"},
{PackIconFeatherIconsKind.Umbrella, "M 23,12 A 11.05,11.05 0 0 0 1,12 Z m -5,7 a 3,3 0 0 1 -6,0 v -7"},
{PackIconFeatherIconsKind.Underline, "M 4,21 H 20 M 6,3 v 7 a 6,6 0 0 0 6,6 6,6 0 0 0 6,-6 V 3"},
{PackIconFeatherIconsKind.Unlock, "M 7,11 V 7 A 5,5 0 0 1 16.9,6 M 5,11 h 14 c 1.108,0 2,0.892 2,2 v 7 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,22 3,21.108 3,20 v -7 c 0,-1.108 0.892,-2 2,-2 z"},
{PackIconFeatherIconsKind.Upload, "M 12,3 V 15 M 17,8 12,3 7,8 m 14,7 v 4 a 2,2 0 0 1 -2,2 H 5 A 2,2 0 0 1 3,19 v -4"},
{PackIconFeatherIconsKind.UploadCloud, "m 16,16 -4,-4 -4,4 m 12.39,2.39 A 5,5 0 0 0 18,9 H 16.74 A 8,8 0 1 0 3,16.3 M 12,12 v 9 m 4,-5 -4,-4 -4,4"},
{PackIconFeatherIconsKind.User, "m 16,7 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z m 4,14 V 19 A 4,4 0 0 0 16,15 H 8 a 4,4 0 0 0 -4,4 v 2"},
{PackIconFeatherIconsKind.UserCheck, "m 17,11 2,2 4,-4 M 12.5,7 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z M 16,21 V 19 A 4,4 0 0 0 12,15 H 5 a 4,4 0 0 0 -4,4 v 2"},
{PackIconFeatherIconsKind.UserMinus, "M 23,11 H 17 M 12.5,7 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z M 16,21 V 19 A 4,4 0 0 0 12,15 H 5 a 4,4 0 0 0 -4,4 v 2"},
{PackIconFeatherIconsKind.UserPlus, "m 23,11 h -6 m 3,-3 v 6 M 12.5,7 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z M 16,21 V 19 A 4,4 0 0 0 12,15 H 5 a 4,4 0 0 0 -4,4 v 2"},
{PackIconFeatherIconsKind.Users, "m 16,3.13 a 4,4 0 0 1 0,7.75 M 23,21 V 19 A 4,4 0 0 0 20,15.13 M 13,7 A 4,4 0 0 1 9,11 4,4 0 0 1 5,7 4,4 0 0 1 9,3 4,4 0 0 1 13,7 Z m 4,14 V 19 A 4,4 0 0 0 13,15 H 5 a 4,4 0 0 0 -4,4 v 2"},
{PackIconFeatherIconsKind.UserX, "m 23,8 -5,5 m 0,-5 5,5 M 12.5,7 a 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 z M 16,21 V 19 A 4,4 0 0 0 12,15 H 5 a 4,4 0 0 0 -4,4 v 2"},
{PackIconFeatherIconsKind.Video, "m 3,5 h 11 c 1.108,0 2,0.892 2,2 v 10 c 0,1.108 -0.892,2 -2,2 H 3 C 1.892,19 1,18.108 1,17 V 7 C 1,5.892 1.892,5 3,5 Z m 20,2 -7,5 7,5 z"},
{PackIconFeatherIconsKind.VideoOff, "m 1,1 22,22 m -7,-7 v 1 a 2,2 0 0 1 -2,2 H 3 A 2,2 0 0 1 1,17 V 7 A 2,2 0 0 1 3,5 h 2 m 5.66,0 H 14 a 2,2 0 0 1 2,2 v 3.34 l 1,1 L 23,7 v 10"},
{PackIconFeatherIconsKind.Voicemail, "m 5.5,16 h 13 M 23,11.5 A 4.5,4.5 0 0 1 18.5,16 4.5,4.5 0 0 1 14,11.5 4.5,4.5 0 0 1 18.5,7 4.5,4.5 0 0 1 23,11.5 Z m -13,0 A 4.5,4.5 0 0 1 5.5,16 4.5,4.5 0 0 1 1,11.5 4.5,4.5 0 0 1 5.5,7 4.5,4.5 0 0 1 10,11.5 Z"},
{PackIconFeatherIconsKind.Volume, "M 11,5 6,9 H 2 v 6 h 4 l 5,4 z"},
{PackIconFeatherIconsKind.Volume1, "m 15.54,8.46 a 5,5 0 0 1 0,7.07 M 11,5 6,9 H 2 v 6 h 4 l 5,4 z"},
{PackIconFeatherIconsKind.Volume2, "m 19.07,4.93 a 10,10 0 0 1 0,14.14 M 15.54,8.46 a 5,5 0 0 1 0,7.07 M 11,5 6,9 H 2 v 6 h 4 l 5,4 z"},
{PackIconFeatherIconsKind.VolumeX, "m 17,9 6,6 m 0,-6 -6,6 M 11,5 6,9 H 2 v 6 h 4 l 5,4 z"},
{PackIconFeatherIconsKind.Watch, "m 16.51,17.35 -0.35,3.83 a 2,2 0 0 1 -2,1.82 H 9.83 a 2,2 0 0 1 -2,-1.82 L 7.48,17.35 M 7.49,6.65 7.84,2.82 A 2,2 0 0 1 9.83,1 h 4.35 a 2,2 0 0 1 2,1.82 l 0.35,3.83 M 12,9 v 3 l 1.5,1.5 M 19,12 a 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 7,7 0 0 1 7,7 z"},
{PackIconFeatherIconsKind.Wifi, "m 12,20 h 0.01 M 8.53,16.11 a 6,6 0 0 1 6.95,0 M 1.42,9 A 16,16 0 0 1 22.58,9 M 5,12.55 a 11,11 0 0 1 14.08,0"},
{PackIconFeatherIconsKind.WifiOff, "m 12,20 h 0.01 M 8.53,16.11 a 6,6 0 0 1 6.95,0 M 1.42,9 A 15.91,15.91 0 0 1 6.12,6.12 M 10.71,5.05 A 16,16 0 0 1 22.58,9 M 5,12.55 a 10.94,10.94 0 0 1 5.17,-2.39 m 6.55,0.9 A 10.94,10.94 0 0 1 19,12.55 M 1,1 23,23"},
{PackIconFeatherIconsKind.Wind, "M 9.59,4.59 A 2,2 0 1 1 11,8 H 2 M 12.59,19.41 A 2,2 0 1 0 14,16 H 2 M 17.73,7.73 A 2.5,2.5 0 1 1 19.5,12 H 2"},
{PackIconFeatherIconsKind.X, "M 6,6 18,18 M 18,6 6,18"},
{PackIconFeatherIconsKind.XCircle, "m 9,9 6,6 M 15,9 9,15 M 22,12 A 10,10 0 0 1 12,22 10,10 0 0 1 2,12 10,10 0 0 1 12,2 10,10 0 0 1 22,12 Z"},
{PackIconFeatherIconsKind.XOctagon, "m 9,9 6,6 M 15,9 9,15 M 7.86,2 h 8.28 L 22,7.86 v 8.28 L 16.14,22 H 7.86 L 2,16.14 V 7.86 Z"},
{PackIconFeatherIconsKind.XSquare, "m 15,9 -6,6 m 0,-6 6,6 M 5,3 h 14 c 1.108,0 2,0.892 2,2 v 14 c 0,1.108 -0.892,2 -2,2 H 5 C 3.892,21 3,20.108 3,19 V 5 C 3,3.892 3.892,3 5,3 Z"},
{PackIconFeatherIconsKind.Youtube, "M 9.75,15.02 15.5,11.75 9.75,8.48 Z m 12.79,-8.6 a 2.78,2.78 0 0 0 -1.94,-2 C 18.88,4 12,4 12,4 12,4 5.12,4 3.4,4.46 A 2.78,2.78 0 0 0 1.46,6.46 29,29 0 0 0 1,11.75 29,29 0 0 0 1.46,17.08 2.78,2.78 0 0 0 3.4,19 c 1.72,0.46 8.6,0.46 8.6,0.46 0,0 6.88,0 8.6,-0.46 A 2.78,2.78 0 0 0 22.54,17 29,29 0 0 0 23,11.75 29,29 0 0 0 22.54,6.42 Z"},
{PackIconFeatherIconsKind.Zap, "M 13,2 3,14 h 9 l -1,8 10,-12 h -9 z"},
{PackIconFeatherIconsKind.ZapOff, "M 1,1 23,23 M 8,8 3,14 h 9 l -1,8 5,-6 M 18.57,12.91 21,10 H 15.66 M 12.41,6.75 13,2 10.57,4.92"},
{PackIconFeatherIconsKind.ZoomIn, "m 8,11 h 6 M 11,8 v 6 m 10,7 -4.35,-4.35 M 19,11 a 8,8 0 0 1 -8,8 8,8 0 0 1 -8,-8 8,8 0 0 1 8,-8 8,8 0 0 1 8,8 z"},
{PackIconFeatherIconsKind.ZoomOut, "m 8,11 h 6 m 7,10 -4.35,-4.35 M 19,11 a 8,8 0 0 1 -8,8 8,8 0 0 1 -8,-8 8,8 0 0 1 8,-8 8,8 0 0 1 8,8 z"},
};
}
}
}

View File

@ -0,0 +1,302 @@
namespace PSCHelpdesk.Shared.Icons
{
using System.ComponentModel;
/// ******************************************
/// This code is auto generated. Do not amend.
/// ******************************************
/// <summary>
/// List of available icons for use with <see cref="PackIconFeatherIcons" />.
/// </summary>
/// <remarks>
/// Feather is licensed under the MIT License <see><cref>https://github.com/feathericons/feather/blob/master/LICENSE</cref></see>
/// Contributions, corrections and requests can be made on GitHub <see><cref>https://github.com/feathericons/feather</cref></see>.
/// </remarks>
public enum PackIconFeatherIconsKind
{
[Description("Empty placeholder")] None,
[Description("activity (Pulse, Health, Action, Motion)")] Activity,
[Description("airplay (Stream, Cast, Mirroring)")] Airplay,
[Description("alert-circle (Warning, Alert, Danger)")] AlertCircle,
[Description("alert-octagon (Warning, Alert, Danger)")] AlertOctagon,
[Description("alert-triangle (Warning, Alert, Danger)")] AlertTriangle,
[Description("align-center")] AlignCenter,
[Description("align-justify")] AlignJustify,
[Description("align-left")] AlignLeft,
[Description("align-right")] AlignRight,
[Description("anchor")] Anchor,
[Description("aperture (Camera, Photo)")] Aperture,
[Description("archive")] Archive,
[Description("arrow-down")] ArrowDown,
[Description("arrow-down-circle")] ArrowDownCircle,
[Description("arrow-down-left")] ArrowDownLeft,
[Description("arrow-down-right")] ArrowDownRight,
[Description("arrow-left")] ArrowLeft,
[Description("arrow-left-circle")] ArrowLeftCircle,
[Description("arrow-right")] ArrowRight,
[Description("arrow-right-circle")] ArrowRightCircle,
[Description("arrow-up")] ArrowUp,
[Description("arrow-up-circle")] ArrowUpCircle,
[Description("arrow-up-left")] ArrowUpLeft,
[Description("arrow-up-right")] ArrowUpRight,
[Description("at-sign (Mention, At, Email, Message)")] AtSign,
[Description("award (Achievement, Badge)")] Award,
[Description("bar-chart")] BarChart,
[Description("bar-chart-2")] BarChart2,
[Description("battery")] Battery,
[Description("battery-charging")] BatteryCharging,
[Description("bell (Alarm, Notification, Sound)")] Bell,
[Description("bell-off (Alarm, Notification, Silent)")] BellOff,
[Description("bluetooth (Wireless)")] Bluetooth,
[Description("bold")] Bold,
[Description("book (Read, Dictionary, Booklet, Magazine, Library)")] Book,
[Description("bookmark (Read, Clip, Marker, Tag)")] Bookmark,
[Description("book-open (Read, Library)")] BookOpen,
[Description("box")] Box,
[Description("briefcase (Work, Bag, Baggage, Folder)")] Briefcase,
[Description("calendar")] Calendar,
[Description("camera")] Camera,
[Description("camera-off")] CameraOff,
[Description("cast")] Cast,
[Description("check")] Check,
[Description("check-circle")] CheckCircle,
[Description("check-square")] CheckSquare,
[Description("chevron-down")] ChevronDown,
[Description("chevron-left")] ChevronLeft,
[Description("chevron-right")] ChevronRight,
[Description("chevrons-down")] ChevronsDown,
[Description("chevrons-left")] ChevronsLeft,
[Description("chevrons-right")] ChevronsRight,
[Description("chevrons-up")] ChevronsUp,
[Description("chevron-up")] ChevronUp,
[Description("chrome")] Chrome,
[Description("circle")] Circle,
[Description("clipboard (Copy)")] Clipboard,
[Description("clock (Time, Watch, Alarm)")] Clock,
[Description("cloud (Weather)")] Cloud,
[Description("cloud-drizzle (Weather, Shower)")] CloudDrizzle,
[Description("cloud-lightning (Weather, Bolt)")] CloudLightning,
[Description("cloud-off")] CloudOff,
[Description("cloud-rain (Weather)")] CloudRain,
[Description("cloud-snow (Weather, Blizzard)")] CloudSnow,
[Description("code")] Code,
[Description("codepen (Logo)")] Codepen,
[Description("codesandbox (Logo)")] Codesandbox,
[Description("coffee (Drink, Cup, Mug, Tea, Cafe, Hot, Beverage)")] Coffee,
[Description("columns")] Columns,
[Description("command (Keyboard, Cmd, Terminal, Prompt)")] Command,
[Description("compass (Navigation, Safari, Travel, Direction)")] Compass,
[Description("copy (Clone, Duplicate)")] Copy,
[Description("corner-down-left (Arrow)")] CornerDownLeft,
[Description("corner-down-right (Arrow)")] CornerDownRight,
[Description("corner-left-down (Arrow)")] CornerLeftDown,
[Description("corner-left-up (Arrow)")] CornerLeftUp,
[Description("corner-right-down (Arrow)")] CornerRightDown,
[Description("corner-right-up (Arrow)")] CornerRightUp,
[Description("corner-up-left (Arrow)")] CornerUpLeft,
[Description("corner-up-right (Arrow)")] CornerUpRight,
[Description("cpu")] Cpu,
[Description("credit-card (Purchase, Payment, Cc)")] CreditCard,
[Description("crop (Photo, Image)")] Crop,
[Description("crosshair (Aim, Target)")] Crosshair,
[Description("database (Storage, Memory)")] Database,
[Description("delete (Remove)")] Delete,
[Description("disc (Album, Cd, Dvd, Music)")] Disc,
[Description("dollar-sign (Currency, Money, Payment)")] DollarSign,
[Description("download")] Download,
[Description("download-cloud")] DownloadCloud,
[Description("droplet (Water)")] Droplet,
[Description("edit (Pencil, Change)")] Edit,
[Description("edit-2 (Pencil, Change)")] Edit2,
[Description("edit-3 (Pencil, Change)")] Edit3,
[Description("external-link (Outbound)")] ExternalLink,
[Description("eye (View, Watch)")] Eye,
[Description("eye-off (View, Watch, Hide, Hidden)")] EyeOff,
[Description("facebook (Logo, Social)")] Facebook,
[Description("fast-forward (Music)")] FastForward,
[Description("feather")] Feather,
[Description("figma (Logo, Design, Tool)")] Figma,
[Description("file")] File,
[Description("file-minus")] FileMinus,
[Description("file-plus")] FilePlus,
[Description("file-text")] FileText,
[Description("film (Movie, Video)")] Film,
[Description("filter")] Filter,
[Description("flag")] Flag,
[Description("folder (Directory)")] Folder,
[Description("folder-minus (Directory)")] FolderMinus,
[Description("folder-plus (Directory)")] FolderPlus,
[Description("framer (Logo, Design, Tool)")] Framer,
[Description("frown (Emoji, Face, Bad, Sad, Emotion)")] Frown,
[Description("gift (Present, Box, Birthday, Party)")] Gift,
[Description("git-branch (Code, VersionControl)")] GitBranch,
[Description("git-commit (Code, VersionControl)")] GitCommit,
[Description("github (Logo, VersionControl)")] Github,
[Description("gitlab (Logo, VersionControl)")] Gitlab,
[Description("git-merge (Code, VersionControl)")] GitMerge,
[Description("git-pull-request (Code, VersionControl)")] GitPullRequest,
[Description("globe")] Globe,
[Description("grid")] Grid,
[Description("hard-drive (Computer, Server, Memory, Data)")] HardDrive,
[Description("hash (Hashtag, Number, Pound)")] Hash,
[Description("headphones (Music, Audio, Sound)")] Headphones,
[Description("heart (Like, Love, Emotion)")] Heart,
[Description("help-circle (QuestionMark)")] HelpCircle,
[Description("hexagon (Shape, NodeJs, Logo)")] Hexagon,
[Description("home (House, Living)")] Home,
[Description("image (Picture)")] Image,
[Description("inbox (Email)")] Inbox,
[Description("info")] Info,
[Description("instagram (Logo, Camera)")] Instagram,
[Description("italic")] Italic,
[Description("key (Password, Login, Authentication, Secure)")] Key,
[Description("layers")] Layers,
[Description("layout")] Layout,
[Description("life-buoy")] LifeBuoy,
[Description("link")] Link,
[Description("link-2")] Link2,
[Description("linkedin (Logo, SocialMedia)")] Linkedin,
[Description("list")] List,
[Description("loader")] Loader,
[Description("lock (Security, Password, Secure)")] Lock,
[Description("log-in (SignIn, Arrow, Enter)")] LogIn,
[Description("log-out (SignOut, Arrow, Exit)")] LogOut,
[Description("mail (Email, Message)")] Mail,
[Description("map (Location, Navigation, Travel)")] Map,
[Description("map-pin (Location, Navigation, Travel, Marker)")] MapPin,
[Description("maximize (Fullscreen)")] Maximize,
[Description("maximize-2 (Fullscreen, Arrows, Expand)")] Maximize2,
[Description("meh (Emoji, Face, Neutral, Emotion)")] Meh,
[Description("menu (Bars, Navigation, Hamburger)")] Menu,
[Description("message-circle (Comment, Chat)")] MessageCircle,
[Description("message-square (Comment, Chat)")] MessageSquare,
[Description("mic (Record, Sound, Listen)")] Mic,
[Description("mic-off (Record, Sound, Mute)")] MicOff,
[Description("minimize (ExitFullscreen, Close)")] Minimize,
[Description("minimize-2 (ExitFullscreen, Arrows, Close)")] Minimize2,
[Description("minus")] Minus,
[Description("minus-circle")] MinusCircle,
[Description("minus-square")] MinusSquare,
[Description("monitor (Tv, Screen, Display)")] Monitor,
[Description("moon (Dark, Night)")] Moon,
[Description("more-horizontal (Ellipsis)")] MoreHorizontal,
[Description("more-vertical (Ellipsis)")] MoreVertical,
[Description("mouse-pointer (Arrow, Cursor)")] MousePointer,
[Description("move (Arrows)")] Move,
[Description("music")] Music,
[Description("navigation (Location, Travel)")] Navigation,
[Description("navigation-2 (Location, Travel)")] Navigation2,
[Description("octagon (Stop)")] Octagon,
[Description("package (Box, Container)")] Package,
[Description("paperclip (Attachment)")] Paperclip,
[Description("pause (Music, Stop)")] Pause,
[Description("pause-circle (Music, Audio, Stop)")] PauseCircle,
[Description("pen-tool (Vector, Drawing)")] PenTool,
[Description("percent")] Percent,
[Description("phone")] Phone,
[Description("phone-call")] PhoneCall,
[Description("phone-forwarded")] PhoneForwarded,
[Description("phone-incoming")] PhoneIncoming,
[Description("phone-missed")] PhoneMissed,
[Description("phone-off")] PhoneOff,
[Description("phone-outgoing")] PhoneOutgoing,
[Description("pie-chart")] PieChart,
[Description("play (Music, Start)")] Play,
[Description("play-circle (Music, Start)")] PlayCircle,
[Description("plus (Add, New)")] Plus,
[Description("plus-circle (Add, New)")] PlusCircle,
[Description("plus-square (Add, New)")] PlusSquare,
[Description("pocket (Logo, Save)")] Pocket,
[Description("power (On, Off)")] Power,
[Description("printer")] Printer,
[Description("radio (Signal)")] Radio,
[Description("refresh-ccw")] RefreshCcw,
[Description("refresh-cw")] RefreshCw,
[Description("repeat")] Repeat,
[Description("rewind (Music)")] Rewind,
[Description("rotate-ccw")] RotateCcw,
[Description("rotate-cw")] RotateCw,
[Description("rss (Feed, Subscribe)")] Rss,
[Description("save (FloppyDisk)")] Save,
[Description("scissors")] Scissors,
[Description("search (Find, Magnifier, MagnifyingGlass)")] Search,
[Description("send (Message, Mail, Email, PaperAirplane, PaperAeroplane)")] Send,
[Description("server")] Server,
[Description("settings (Cog, Edit, Gear, Preferences)")] Settings,
[Description("share")] Share,
[Description("share-2")] Share2,
[Description("shield (Security, Secure)")] Shield,
[Description("shield-off (Security, Insecure)")] ShieldOff,
[Description("shopping-bag (Ecommerce, Cart, Purchase, Store)")] ShoppingBag,
[Description("shopping-cart (Ecommerce, Cart, Purchase, Store)")] ShoppingCart,
[Description("shuffle (Music)")] Shuffle,
[Description("sidebar")] Sidebar,
[Description("skip-back (Music)")] SkipBack,
[Description("skip-forward (Music)")] SkipForward,
[Description("slack")] Slack,
[Description("slash (Ban, No)")] Slash,
[Description("sliders (Settings, Controls)")] Sliders,
[Description("smartphone")] Smartphone,
[Description("smile (Emoji, Face, Happy, Good, Emotion)")] Smile,
[Description("speaker (Music)")] Speaker,
[Description("square")] Square,
[Description("star (Bookmark, Favorite, Like)")] Star,
[Description("stop-circle")] StopCircle,
[Description("sun (Brightness, Weather, Light)")] Sun,
[Description("sunrise (Weather, Time, Morning, Day)")] Sunrise,
[Description("sunset (Weather, Time, Evening, Night)")] Sunset,
[Description("tablet")] Tablet,
[Description("tag (Label)")] Tag,
[Description("target (Bullseye)")] Target,
[Description("terminal (Code, CommandLine, Prompt)")] Terminal,
[Description("thermometer")] Thermometer,
[Description("thumbs-down (Dislike, Bad, Emotion)")] ThumbsDown,
[Description("thumbs-up (Like, Good, Emotion)")] ThumbsUp,
[Description("toggle-left (On, Off, Switch)")] ToggleLeft,
[Description("toggle-right (On, Off, Switch)")] ToggleRight,
[Description("tool")] Tool,
[Description("trash (Garbage, Delete, Remove, Bin)")] Trash,
[Description("trash-2 (Garbage, Delete, Remove, Bin)")] Trash2,
[Description("trello")] Trello,
[Description("trending-down")] TrendingDown,
[Description("trending-up")] TrendingUp,
[Description("triangle (Delta)")] Triangle,
[Description("truck (Delivery, Van, Shipping, Transport, Lorry)")] Truck,
[Description("tv")] Tv,
[Description("twitch")] Twitch,
[Description("twitter (Logo, Social)")] Twitter,
[Description("type")] Type,
[Description("umbrella (Rain, Weather)")] Umbrella,
[Description("underline")] Underline,
[Description("unlock")] Unlock,
[Description("upload")] Upload,
[Description("upload-cloud")] UploadCloud,
[Description("user")] User,
[Description("user-check")] UserCheck,
[Description("user-minus")] UserMinus,
[Description("user-plus")] UserPlus,
[Description("users")] Users,
[Description("user-x")] UserX,
[Description("video (Camera, Movie, Film)")] Video,
[Description("video-off (Camera, Movie, Film)")] VideoOff,
[Description("voicemail (Phone)")] Voicemail,
[Description("volume (Music, Sound, Mute)")] Volume,
[Description("volume-1 (Music, Sound)")] Volume1,
[Description("volume-2 (Music, Sound)")] Volume2,
[Description("volume-x (Music, Sound, Mute)")] VolumeX,
[Description("watch (Clock, Time)")] Watch,
[Description("wifi")] Wifi,
[Description("wifi-off")] WifiOff,
[Description("wind (Weather, Air)")] Wind,
[Description("x (Cancel, Close, Delete, Remove, Times, Clear)")] X,
[Description("x-circle (Cancel, Close, Delete, Remove, Times, Clear)")] XCircle,
[Description("x-octagon (Delete, Stop, Alert, Warning, Times, Clear)")] XOctagon,
[Description("x-square (Cancel, Close, Delete, Remove, Times, Clear)")] XSquare,
[Description("youtube (Logo, Video, Play)")] Youtube,
[Description("zap (Flash, Camera, Lightning)")] Zap,
[Description("zap-off (Flash, Camera, Lightning)")] ZapOff,
[Description("zoom-in")] ZoomIn,
[Description("zoom-out")] ZoomOut,
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,226 @@
using System;
using System.Collections.Generic;
namespace PSCHelpdesk.Shared.Icons
{
/// ******************************************
/// This code is auto generated. Do not amend.
/// ******************************************
public static class PackIconOcticonsDataFactory
{
public static Lazy<IDictionary<PackIconOcticonsKind, string>> DataIndex { get; }
static PackIconOcticonsDataFactory()
{
if (DataIndex == null)
{
DataIndex = new Lazy<IDictionary<PackIconOcticonsKind, string>>(PackIconOcticonsDataFactory.Create);
}
}
public static IDictionary<PackIconOcticonsKind, string> Create()
{
return new Dictionary<PackIconOcticonsKind, string>
{
{PackIconOcticonsKind.None, ""},
{PackIconOcticonsKind.Alert, "M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"},
{PackIconOcticonsKind.Archive, "M13 2H1v2h12V2zM0 4a1 1 0 001 1v9a1 1 0 001 1h10a1 1 0 001-1V5a1 1 0 001-1V2a1 1 0 00-1-1H1a1 1 0 00-1 1v2zm2 1h10v9H2V5zm2 3h6V7H4v1z"},
{PackIconOcticonsKind.ArrowBoth, "M0 8l6-5v3h8V3l6 5-6 5v-3H6v3L0 8z"},
{PackIconOcticonsKind.ArrowDown, "M7 7V3H3v4H0l5 6 5-6H7z"},
{PackIconOcticonsKind.ArrowLeft, "M6 3L0 8l6 5v-3h4V6H6V3z"},
{PackIconOcticonsKind.ArrowRight, "M10 8L4 3v3H0v4h4v3l6-5z"},
{PackIconOcticonsKind.ArrowSmallDown, "M4 7V5H2v2H0l3 4 3-4H4z"},
{PackIconOcticonsKind.ArrowSmallLeft, "M4 7V5L0 8l4 3V9h2V7H4z"},
{PackIconOcticonsKind.ArrowSmallRight, "M6 8L2 5v2H0v2h2v2l4-3z"},
{PackIconOcticonsKind.ArrowSmallUp, "M3 5L0 9h2v2h2V9h2L3 5z"},
{PackIconOcticonsKind.ArrowUp, "M5 3L0 9h3v4h4V9h3L5 3z"},
{PackIconOcticonsKind.Beaker, "M14.38 14.59L11 7V3h1V2H3v1h1v4L.63 14.59A1 1 0 001.54 16h11.94c.72 0 1.2-.75.91-1.41h-.01zM3.75 10L5 7V3h5v4l1.25 3h-7.5zM8 8h1v1H8V8zM7 7H6V6h1v1zm0-3h1v1H7V4zm0-3H6V0h1v1z"},
{PackIconOcticonsKind.Bell, "M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z"},
{PackIconOcticonsKind.Bold, "M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"},
{PackIconOcticonsKind.Book, "M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"},
{PackIconOcticonsKind.Bookmark, "M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"},
{PackIconOcticonsKind.Briefcase, "M9 4V3c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H9zM6 3h2v1H6V3zm7 6H8v1H6V9H1V5h1v3h10V5h1v4z"},
{PackIconOcticonsKind.Broadcast, "M9 9H8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1H6c-.55 0-1 .45-1 1v2h1v3c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-3h1v-2c0-.55-.45-1-1-1zM7 7h1v1H7V7zm2 4H8v4H7v-4H6v-1h3v1zm2.09-3.5c0-1.98-1.61-3.59-3.59-3.59A3.593 3.593 0 004 8.31v1.98c-.61-.77-1-1.73-1-2.8 0-2.48 2.02-4.5 4.5-4.5S12 5.01 12 7.49c0 1.06-.39 2.03-1 2.8V8.31c.06-.27.09-.53.09-.81zm3.91 0c0 2.88-1.63 5.38-4 6.63v-1.05a6.553 6.553 0 003.09-5.58A6.59 6.59 0 007.5.91 6.59 6.59 0 00.91 7.5c0 2.36 1.23 4.42 3.09 5.58v1.05A7.497 7.497 0 017.5 0C11.64 0 15 3.36 15 7.5z"},
{PackIconOcticonsKind.Browser, "M5 3h1v1H5V3zM3 3h1v1H3V3zM1 3h1v1H1V3zm12 10H1V5h12v8zm0-9H7V3h6v1zm1-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V3z"},
{PackIconOcticonsKind.Bug, "M11 10h3V9h-3V8l3.17-1.03-.34-.94L11 7V6c0-.55-.45-1-1-1V4c0-.48-.36-.88-.83-.97L10.2 2H12V1H9.8l-2 2h-.59L5.2 1H3v1h1.8l1.03 1.03C5.36 3.12 5 3.51 5 4v1c-.55 0-1 .45-1 1v1l-2.83-.97-.34.94L4 8v1H1v1h3v1L.83 12.03l.34.94L4 12v1c0 .55.45 1 1 1h1l1-1V6h1v7l1 1h1c.55 0 1-.45 1-1v-1l2.83.97.34-.94L11 11v-1zM9 5H6V4h3v1z"},
{PackIconOcticonsKind.Calendar, "M13 2h-1v1.5c0 .28-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5V2H6v1.5c0 .28-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5V2H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 12H2V5h11v9zM5 3H4V1h1v2zm6 0h-1V1h1v2zM6 7H5V6h1v1zm2 0H7V6h1v1zm2 0H9V6h1v1zm2 0h-1V6h1v1zM4 9H3V8h1v1zm2 0H5V8h1v1zm2 0H7V8h1v1zm2 0H9V8h1v1zm2 0h-1V8h1v1zm-8 2H3v-1h1v1zm2 0H5v-1h1v1zm2 0H7v-1h1v1zm2 0H9v-1h1v1zm2 0h-1v-1h1v1zm-8 2H3v-1h1v1zm2 0H5v-1h1v1zm2 0H7v-1h1v1zm2 0H9v-1h1v1z"},
{PackIconOcticonsKind.Check, "M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"},
{PackIconOcticonsKind.Checklist, "M16 8.5l-6 6-3-3L8.5 10l1.5 1.5L14.5 7 16 8.5zM5.7 12.2l.8.8H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h7c.55 0 1 .45 1 1v6.5l-.8-.8c-.39-.39-1.03-.39-1.42 0L5.7 10.8a.996.996 0 000 1.41v-.01zM4 4h5V3H4v1zm0 2h5V5H4v1zm0 2h3V7H4v1zM3 9H2v1h1V9zm0-2H2v1h1V7zm0-2H2v1h1V5zm0-2H2v1h1V3z"},
{PackIconOcticonsKind.ChevronDown, "M5 11L0 6l1.5-1.5L5 8.25 8.5 4.5 10 6l-5 5z"},
{PackIconOcticonsKind.ChevronLeft, "M5.5 3L7 4.5 3.25 8 7 11.5 5.5 13l-5-5 5-5z"},
{PackIconOcticonsKind.ChevronRight, "M7.5 8l-5 5L1 11.5 4.75 8 1 4.5 2.5 3l5 5z"},
{PackIconOcticonsKind.ChevronUp, "M10 10l-1.5 1.5L5 7.75 1.5 11.5 0 10l5-5 5 5z"},
{PackIconOcticonsKind.CircleSlash, "M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm0 1.3c1.3 0 2.5.44 3.47 1.17l-8 8A5.755 5.755 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zm0 11.41c-1.3 0-2.5-.44-3.47-1.17l8-8c.73.97 1.17 2.17 1.17 3.47 0 3.14-2.56 5.7-5.7 5.7z"},
{PackIconOcticonsKind.CircuitBoard, "M3 5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm8 0c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 6c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm2-10H5v2.17c.36.19.64.47.83.83h2.34c.42-.78 1.33-1.28 2.34-1.05.75.19 1.36.8 1.53 1.55.31 1.38-.72 2.59-2.05 2.59-.8 0-1.48-.44-1.83-1.09H5.83c-.42.8-1.33 1.28-2.34 1.03-.73-.17-1.34-.78-1.52-1.52C1.72 4.49 2.2 3.59 3 3.17V1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1l5-5h2.17c.42-.78 1.33-1.28 2.34-1.05.75.19 1.36.8 1.53 1.55.31 1.38-.72 2.59-2.05 2.59-.8 0-1.48-.44-1.83-1.09H6.99L4 15h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z"},
{PackIconOcticonsKind.Clippy, "M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"},
{PackIconOcticonsKind.Clock, "M8 8h3v2H7c-.55 0-1-.45-1-1V4h2v4zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"},
{PackIconOcticonsKind.CloudDownload, "M9 12h2l-3 3-3-3h2V7h2v5zm3-8c0-.44-.91-3-4.5-3C5.08 1 3 2.92 3 5 1.02 5 0 6.52 0 8c0 1.53 1 3 3 3h3V9.7H3C1.38 9.7 1.3 8.28 1.3 8c0-.17.05-1.7 1.7-1.7h1.3V5c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2H12c.81 0 2.7.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2h-2V11h2c2.08 0 4-1.16 4-3.5C16 5.06 14.08 4 12 4z"},
{PackIconOcticonsKind.CloudUpload, "M7 9H5l3-3 3 3H9v5H7V9zm5-4c0-.44-.91-3-4.5-3C5.08 2 3 3.92 3 6 1.02 6 0 7.52 0 9c0 1.53 1 3 3 3h3v-1.3H3c-1.62 0-1.7-1.42-1.7-1.7 0-.17.05-1.7 1.7-1.7h1.3V6c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2H12c.81 0 2.7.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2h-2V12h2c2.08 0 4-1.16 4-3.5C16 6.06 14.08 5 12 5z"},
{PackIconOcticonsKind.Code, "M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"},
{PackIconOcticonsKind.Comment, "M14 1H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2v3.5L7.5 11H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 9H7l-2 2v-2H2V2h12v8z"},
{PackIconOcticonsKind.CommentDiscussion, "M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z"},
{PackIconOcticonsKind.CreditCard, "M12 9H2V8h10v1zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 3H1v6h14V6zm0-3H1v1h14V3zm-9 7H2v1h4v-1z"},
{PackIconOcticonsKind.Dash, "M0 7v2h8V7H0z"},
{PackIconOcticonsKind.Dashboard, "M9 5H8V4h1v1zm4 3h-1v1h1V8zM6 5H5v1h1V5zM5 8H4v1h1V8zm11-5.5l-.5-.5L9 7c-.06-.02-1 0-1 0-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-.92l6-5.58zm-1.59 4.09c.19.61.3 1.25.3 1.91 0 3.42-2.78 6.2-6.2 6.2-3.42 0-6.21-2.78-6.21-6.2 0-3.42 2.78-6.2 6.2-6.2 1.2 0 2.31.34 3.27.94l.94-.94A7.459 7.459 0 008.51 1C4.36 1 1 4.36 1 8.5 1 12.64 4.36 16 8.5 16c4.14 0 7.5-3.36 7.5-7.5 0-1.03-.2-2.02-.59-2.91l-1 1z"},
{PackIconOcticonsKind.Database, "M6 15c-3.31 0-6-.9-6-2v-2c0-.17.09-.34.21-.5.67.86 3 1.5 5.79 1.5s5.12-.64 5.79-1.5c.13.16.21.33.21.5v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V7c0-.11.04-.21.09-.31.03-.06.07-.13.12-.19C.88 7.36 3.21 8 6 8s5.12-.64 5.79-1.5c.05.06.09.13.12.19.05.1.09.21.09.31v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V3c0-1.1 2.69-2 6-2s6 .9 6 2v2c0 1.1-2.69 2-6 2zm0-5c-2.21 0-4 .45-4 1s1.79 1 4 1 4-.45 4-1-1.79-1-4-1z"},
{PackIconOcticonsKind.Dependent, "M1 1h7.5l2 2H9L8 2H1v12h10v-1h1v1c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1zm9 6h3v1h-3V7zm2 2h-2v1h2V9zM8.583 4h4.375L15 6v5.429a.58.58 0 01-.583.571H8.583A.58.58 0 018 11.429V10h1v1h5V6.5L12.5 5H9v1H8V4.571A.58.58 0 018.583 4zM9.5 7H6.667V5l-4 3 4 3V9H9.5V7z"},
{PackIconOcticonsKind.DesktopDownload, "M4 6h3V0h2v6h3l-4 4-4-4zm11-4h-4v1h4v8H1V3h4V2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"},
{PackIconOcticonsKind.DeviceCamera, "M15 3H7c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM6 5H2V4h4v1zm4.5 7C8.56 12 7 10.44 7 8.5S8.56 5 10.5 5 14 6.56 14 8.5 12.44 12 10.5 12zM13 8.5c0 1.38-1.13 2.5-2.5 2.5S8 9.87 8 8.5 9.13 6 10.5 6 13 7.13 13 8.5z"},
{PackIconOcticonsKind.DeviceCameraVideo, "M15.2 2.09L10 5.72V3c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V9.28l5.2 3.63c.33.23.8 0 .8-.41v-10c0-.41-.47-.64-.8-.41z"},
{PackIconOcticonsKind.DeviceDesktop, "M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z"},
{PackIconOcticonsKind.DeviceMobile, "M9 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 15.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zM9 12H1V2h8v10z"},
{PackIconOcticonsKind.Diff, "M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z"},
{PackIconOcticonsKind.DiffAdded, "M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z"},
{PackIconOcticonsKind.DiffIgnored, "M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zm-8.5-2H3v-1.5L9.5 4H11v1.5L4.5 12z"},
{PackIconOcticonsKind.DiffModified, "M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z"},
{PackIconOcticonsKind.DiffRemoved, "M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zm-2-5H3V7h8v2z"},
{PackIconOcticonsKind.DiffRenamed, "M6 9H3V7h3V4l5 4-5 4V9zm8-7v12c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h12c.55 0 1 .45 1 1zm-1 0H1v12h12V2z"},
{PackIconOcticonsKind.Ellipsis, "M11 5H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM4 9H2V7h2v2zm3 0H5V7h2v2zm3 0H8V7h2v2z"},
{PackIconOcticonsKind.Eye, "M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"},
{PackIconOcticonsKind.EyeClosed, "M14.822.854a.5.5 0 10-.707-.708l-2.11 2.11C10.89 1.483 9.565.926 8.06.926c-5.06 0-8.06 6-8.06 6s1.162 2.323 3.258 4.078l-2.064 2.065a.5.5 0 10.707.707L14.822.854zM4.86 9.403L6.292 7.97A1.999 1.999 0 016 6.925c0-1.11.89-2 2-2 .384 0 .741.106 1.045.292l1.433-1.433A3.98 3.98 0 008 2.925c-2.2 0-4 1.8-4 4 0 .938.321 1.798.859 2.478zm7.005-3.514l1.993-1.992A14.873 14.873 0 0116 6.925s-3 6-7.94 6a6.609 6.609 0 01-2.661-.57l1.565-1.566c.33.089.678.136 1.036.136 2.22 0 4-1.78 4-4 0-.358-.047-.705-.136-1.036zM9.338 8.415l.152-.151a1.996 1.996 0 01-.152.151z"},
{PackIconOcticonsKind.File, "M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"},
{PackIconOcticonsKind.FileBinary, "M4 12h1v1H2v-1h1v-2H2V9h2v3zm8-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5zM8 4H6v1h1v2H6v1h3V7H8V4zM2 4h3v4H2V4zm1 3h1V5H3v2zm3 2h3v4H6V9zm1 3h1v-2H7v2z"},
{PackIconOcticonsKind.FileCode, "M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM5 6.98L3.5 8.5 5 10l-.5 1L2 8.5 4.5 6l.5.98zM7.5 6L10 8.5 7.5 11l-.5-.98L8.5 8.5 7 7l.5-1z"},
{PackIconOcticonsKind.FileDirectory, "M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"},
{PackIconOcticonsKind.FileMedia, "M6 5h2v2H6V5zm6-.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v11l3-5 2 4 2-2 3 3V5z"},
{PackIconOcticonsKind.FilePdf, "M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM1 2h4a.68.68 0 00-.31.2 1.08 1.08 0 00-.23.47 4.22 4.22 0 00-.09 1.47c.06.609.173 1.211.34 1.8A21.78 21.78 0 013.6 8.6c-.5 1-.8 1.66-.91 1.84a7.156 7.156 0 00-.69.3c-.362.165-.699.38-1 .64V2zm4.42 4.8a5.65 5.65 0 001.17 2.09c.275.237.595.417.94.53-.64.09-1.23.2-1.81.33-.618.15-1.223.347-1.81.59s.22-.44.61-1.25c.365-.74.67-1.51.91-2.3l-.01.01zM11 14H1.5a.743.743 0 01-.17 0 2.12 2.12 0 00.73-.44 10.14 10.14 0 001.78-2.38c.31-.13.58-.23.81-.31l.42-.14c.45-.13.94-.23 1.44-.33s1-.16 1.48-.2c.447.216.912.394 1.39.53.403.11.814.188 1.23.23h.38V14H11zm0-4.86a3.743 3.743 0 00-.64-.28 4.221 4.221 0 00-.75-.11c-.411.003-.822.03-1.23.08a3 3 0 01-1-.64 6.07 6.07 0 01-1.29-2.33c.111-.661.178-1.33.2-2 .02-.25.02-.5 0-.75a1.05 1.05 0 00-.2-.88.82.82 0 00-.61-.23H8l3 3v4.14z"},
{PackIconOcticonsKind.FileSubmodule, "M10 7H4v7h9c.55 0 1-.45 1-1V8h-4V7zM9 9H5V8h4v1zm4-5H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h2V7c0-.55.45-1 1-1h6c.55 0 1 .45 1 1h3V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"},
{PackIconOcticonsKind.FileSymlinkDirectory, "M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM1 3h5v1H1V3zm6 9v-2c-.98-.02-1.84.22-2.55.7-.71.48-1.19 1.25-1.45 2.3.02-1.64.39-2.88 1.13-3.73C4.86 8.43 5.82 8 7.01 8V6l4 3-4 3H7z"},
{PackIconOcticonsKind.FileSymlinkFile, "M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM6 4.5l4 3-4 3v-2c-.98-.02-1.84.22-2.55.7-.71.48-1.19 1.25-1.45 2.3.02-1.64.39-2.88 1.13-3.73.73-.84 1.69-1.27 2.88-1.27v-2H6z"},
{PackIconOcticonsKind.FileZip, "M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"},
{PackIconOcticonsKind.Flame, "M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"},
{PackIconOcticonsKind.Fold, "M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"},
{PackIconOcticonsKind.FoldDown, "M4 11l3 3 3-3H8V5H6v6H4zm-4 0c0 .55.45 1 1 1h2.5l-1-1h-1l2-2H5V8H3.5l-2-2H5V5H1c-.55 0-1 .45-1 1l2.5 2.5L0 11zm10.5-2H9V8h1.5l2-2H9V5h4c.55 0 1 .45 1 1l-2.5 2.5L14 11c0 .55-.45 1-1 1h-2.5l1-1h1l-2-2z"},
{PackIconOcticonsKind.FoldUp, "M10 6L7 3 4 6h2v6h2V6h2zm4 0c0-.55-.45-1-1-1h-2.5l1 1h1l-2 2H9v1h1.5l2 2H9v1h4c.55 0 1-.45 1-1l-2.5-2.5L14 6zM3.5 8H5v1H3.5l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 6c0-.55.45-1 1-1h2.5l-1 1h-1l2 2z"},
{PackIconOcticonsKind.Gear, "M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"},
{PackIconOcticonsKind.Gift, "M13 4h-1.38c.19-.33.33-.67.36-.91.06-.67-.11-1.22-.52-1.61C11.1 1.1 10.65 1 10.1 1h-.11c-.53.02-1.11.25-1.53.58-.42.33-.73.72-.97 1.2-.23-.48-.55-.88-.97-1.2-.42-.32-1-.58-1.53-.58h-.03c-.56 0-1.06.09-1.44.48-.41.39-.58.94-.52 1.61.03.23.17.58.36.91H1.98c-.55 0-1 .45-1 1v3h1v5c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8h1V5c0-.55-.45-1-1-1H13zm-4.78-.88c.17-.36.42-.67.75-.92.3-.23.72-.39 1.05-.41h.09c.45 0 .66.11.8.25s.33.39.3.95c-.05.19-.25.61-.5 1h-2.9l.41-.88v.01zM4.09 2.04c.13-.13.31-.25.91-.25.31 0 .72.17 1.03.41.33.25.58.55.75.92L7.2 4H4.3c-.25-.39-.45-.81-.5-1-.03-.56.16-.81.3-.95l-.01-.01zM7 12.99H3V8h4v5-.01zm0-6H2V5h5v2-.01zm5 6H8V8h4v5-.01zm1-6H8V5h5v2-.01z"},
{PackIconOcticonsKind.Gist, "M7.5 5L10 7.5 7.5 10l-.75-.75L8.5 7.5 6.75 5.75 7.5 5zm-3 0L2 7.5 4.5 10l.75-.75L3.5 7.5l1.75-1.75L4.5 5zM0 13V2c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v11c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1zm1 0h10V2H1v11z"},
{PackIconOcticonsKind.GistSecret, "M8 10.5L9 14H5l1-3.5L5.25 9h3.5L8 10.5zM10 6H4L2 7h10l-2-1zM9 2L7 3 5 2 4 5h6L9 2zm4.03 7.75L10 9l1 2-2 3h3.22c.45 0 .86-.31.97-.75l.56-2.28c.14-.53-.19-1.08-.72-1.22zM4 9l-3.03.75c-.53.14-.86.69-.72 1.22l.56 2.28c.11.44.52.75.97.75H5l-2-3 1-2z"},
{PackIconOcticonsKind.GitBranch, "M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 00-1-3.72C.88 1 0 1.89 0 3a2 2 0 001 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"},
{PackIconOcticonsKind.GitCommit, "M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"},
{PackIconOcticonsKind.GitCompare, "M5 12H4c-.27-.02-.48-.11-.69-.31-.21-.2-.3-.42-.31-.69V4.72A1.993 1.993 0 002 1a1.993 1.993 0 00-1 3.72V11c.03.78.34 1.47.94 2.06.6.59 1.28.91 2.06.94h1v2l3-3-3-3v2zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm11 9.48V5c-.03-.78-.34-1.47-.94-2.06-.6-.59-1.28-.91-2.06-.94H9V0L6 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0012 15a1.993 1.993 0 001-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"},
{PackIconOcticonsKind.GithubAction, "M9 2h6c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1H9a1 1 0 11-2 0H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6a1 1 0 112 0zm6 1v10H1V3h14zm-2.5 4a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"},
{PackIconOcticonsKind.GitMerge, "M10 7c-.73 0-1.38.41-1.73 1.02V8C7.22 7.98 6 7.64 5.14 6.98c-.75-.58-1.5-1.61-1.89-2.44A1.993 1.993 0 002 .99C.89.99 0 1.89 0 3a2 2 0 001 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2a1.993 1.993 0 001-3.72V7.67c.67.7 1.44 1.27 2.3 1.69.86.42 2.03.63 2.97.64v-.02c.36.61 1 1.02 1.73 1.02 1.11 0 2-.89 2-2 0-1.11-.89-2-2-2zm-6.8 6c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm8 6c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"},
{PackIconOcticonsKind.GitPullRequest, "M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0010 15a1.993 1.993 0 001-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v6.56A1.993 1.993 0 002 15a1.993 1.993 0 001-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"},
{PackIconOcticonsKind.Globe, "M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7c.48 0 .94-.05 1.38-.14-.17-.08-.2-.73-.02-1.09.19-.41.81-1.45.2-1.8-.61-.35-.44-.5-.81-.91-.37-.41-.22-.47-.25-.58-.08-.34.36-.89.39-.94.02-.06.02-.27 0-.33 0-.08-.27-.22-.34-.23-.06 0-.11.11-.2.13-.09.02-.5-.25-.59-.33-.09-.08-.14-.23-.27-.34-.13-.13-.14-.03-.33-.11s-.8-.31-1.28-.48c-.48-.19-.52-.47-.52-.66-.02-.2-.3-.47-.42-.67-.14-.2-.16-.47-.2-.41-.04.06.25.78.2.81-.05.02-.16-.2-.3-.38-.14-.19.14-.09-.3-.95s.14-1.3.17-1.75c.03-.45.38.17.19-.13-.19-.3 0-.89-.14-1.11-.13-.22-.88.25-.88.25.02-.22.69-.58 1.16-.92.47-.34.78-.06 1.16.05.39.13.41.09.28-.05-.13-.13.06-.17.36-.13.28.05.38.41.83.36.47-.03.05.09.11.22s-.06.11-.38.3c-.3.2.02.22.55.61s.38-.25.31-.55c-.07-.3.39-.06.39-.06.33.22.27.02.5.08.23.06.91.64.91.64-.83.44-.31.48-.17.59.14.11-.28.3-.28.3-.17-.17-.19.02-.3.08-.11.06-.02.22-.02.22-.56.09-.44.69-.42.83 0 .14-.38.36-.47.58-.09.2.25.64.06.66-.19.03-.34-.66-1.31-.41-.3.08-.94.41-.59 1.08.36.69.92-.19 1.11-.09.19.1-.06.53-.02.55.04.02.53.02.56.61.03.59.77.53.92.55.17 0 .7-.44.77-.45.06-.03.38-.28 1.03.09.66.36.98.31 1.2.47.22.16.08.47.28.58.2.11 1.06-.03 1.28.31.22.34-.88 2.09-1.22 2.28-.34.19-.48.64-.84.92s-.81.64-1.27.91c-.41.23-.47.66-.66.8 3.14-.7 5.48-3.5 5.48-6.84 0-3.86-3.14-7-7-7L7 1zm1.64 6.56c-.09.03-.28.22-.78-.08-.48-.3-.81-.23-.86-.28 0 0-.05-.11.17-.14.44-.05.98.41 1.11.41.13 0 .19-.13.41-.05.22.08.05.13-.05.14zM6.34 1.7c-.05-.03.03-.08.09-.14.03-.03.02-.11.05-.14.11-.11.61-.25.52.03-.11.27-.58.3-.66.25zm1.23.89c-.19-.02-.58-.05-.52-.14.3-.28-.09-.38-.34-.38-.25-.02-.34-.16-.22-.19.12-.03.61.02.7.08.08.06.52.25.55.38.02.13 0 .25-.17.25zm1.47-.05c-.14.09-.83-.41-.95-.52-.56-.48-.89-.31-1-.41-.11-.1-.08-.19.11-.34.19-.15.69.06 1 .09.3.03.66.27.66.55.02.25.33.5.19.63h-.01z"},
{PackIconOcticonsKind.Grabber, "M8 4v1H0V4h8zM0 8h8V7H0v1zm0 3h8v-1H0v1z"},
{PackIconOcticonsKind.Graph, "M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"},
{PackIconOcticonsKind.Heart, "M9 2c-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-1.632.086-2.954 1.333-3 3 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.047-1.69-1.342-2.913-3-3z"},
{PackIconOcticonsKind.History, "M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z"},
{PackIconOcticonsKind.Home, "M16 9l-3-3V2h-2v2L8 1 0 9h2l1 5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1l1-5h2zm-4 5H9v-4H7v4H4L2.81 7.69 8 2.5l5.19 5.19L12 14z"},
{PackIconOcticonsKind.HorizontalRule, "M1 7h2v2h1V3H3v3H1V3H0v6h1V7zm9 2V7H9v2h1zm0-3V4H9v2h1zM7 6V4h2V3H6v6h1V7h2V6H7zm-7 7h10v-2H0v2z"},
{PackIconOcticonsKind.Hubot, "M3 6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3zm8 1.75L9.75 9h-1.5L7 7.75 5.75 9h-1.5L3 7.75V7h.75L5 8.25 6.25 7h1.5L9 8.25 10.25 7H11v.75zM5 11h4v1H5v-1zm2-9C3.14 2 0 4.91 0 8.5V13c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V8.5C14 4.91 10.86 2 7 2zm6 11H1V8.5c0-3.09 2.64-5.59 6-5.59s6 2.5 6 5.59V13z"},
{PackIconOcticonsKind.Inbox, "M14 9l-1.13-7.14c-.08-.48-.5-.86-1-.86H2.13c-.5 0-.92.38-1 .86L0 9v5c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V9zm-3.28.55l-.44.89c-.17.34-.52.56-.91.56H4.61c-.38 0-.72-.22-.89-.55l-.44-.91c-.17-.33-.52-.55-.89-.55H1l1-7h10l1 7h-1.38c-.39 0-.73.22-.91.55l.01.01z"},
{PackIconOcticonsKind.Info, "M6.3 5.69a.942.942 0 01-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 01-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"},
{PackIconOcticonsKind.IssueClosed, "M7 10h2v2H7v-2zm2-6H7v5h2V4zm1.5 1.5l-1 1L12 9l4-4.5-1-1L12 7l-1.5-1.5zM8 13.7A5.71 5.71 0 012.3 8c0-3.14 2.56-5.7 5.7-5.7 1.83 0 3.45.88 4.5 2.2l.92-.92A6.947 6.947 0 008 1C4.14 1 1 4.14 1 8s3.14 7 7 7 7-3.14 7-7l-1.52 1.52c-.66 2.41-2.86 4.19-5.48 4.19v-.01z"},
{PackIconOcticonsKind.IssueOpened, "M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"},
{PackIconOcticonsKind.IssueReopened, "M8 9H6V4h2v5zm-2 3h2v-2H6v2zm6.33-2H10l1.5 1.5c-1.05 1.33-2.67 2.2-4.5 2.2A5.71 5.71 0 011.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7 2.19 0 4.13-1.02 5.41-2.59L14 14v-4h-1.67zM1.67 6H4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7 0 .34-.03.67-.09 1h1.31c.05-.33.08-.66.08-1 0-3.86-3.14-7-7-7-2.19 0-4.13 1.02-5.41 2.59L0 2v4h1.67z"},
{PackIconOcticonsKind.Italic, "M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"},
{PackIconOcticonsKind.Jersey, "M4.5 6l-.5.5v5l.5.5h2l.5-.5v-5L6.5 6h-2zM6 11H5V7h1v4zm6.27-7.25C12.05 2.37 11.96 1.12 12 0H9.02c0 .27-.13.48-.39.69-.25.2-.63.3-1.13.3-.5 0-.88-.09-1.13-.3-.23-.2-.36-.42-.36-.69H3c.05 1.13-.03 2.38-.25 3.75C2.55 5.13 1.95 5.88 1 6v9c.02.27.11.48.31.69.2.21.42.3.69.31h11c.27-.02.48-.11.69-.31.21-.2.3-.42.31-.69V6c-.95-.13-1.53-.88-1.75-2.25h.02zM13 15H2V7c.89-.5 1.48-1.25 1.72-2.25S4.03 2.5 4 1h1c-.02.78.16 1.47.52 2.06.36.58 1.02.89 2 .94.98-.02 1.64-.33 2-.94.36-.59.5-1.28.48-2.06h1c.02 1.42.13 2.55.33 3.38.2.81.69 2 1.67 2.63v8V15zM8.5 6l-.5.5v5l.5.5h2l.5-.5v-5l-.5-.5h-2zm1.5 5H9V7h1v4z"},
{PackIconOcticonsKind.KebabHorizontal, "M1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm5 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM13 7.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"},
{PackIconOcticonsKind.KebabVertical, "M0 2.5a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zm0 5a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zM1.5 14a1.5 1.5 0 110-3 1.5 1.5 0 010 3z"},
{PackIconOcticonsKind.Key, "M12.83 2.17C12.08 1.42 11.14 1.03 10 1c-1.13.03-2.08.42-2.83 1.17S6.04 3.86 6.01 5c0 .3.03.59.09.89L0 12v1l1 1h2l1-1v-1h1v-1h1v-1h2l1.09-1.11c.3.08.59.11.91.11 1.14-.03 2.08-.42 2.83-1.17S13.97 6.14 14 5c-.03-1.14-.42-2.08-1.17-2.83zM11 5.38c-.77 0-1.38-.61-1.38-1.38 0-.77.61-1.38 1.38-1.38.77 0 1.38.61 1.38 1.38 0 .77-.61 1.38-1.38 1.38z"},
{PackIconOcticonsKind.Keyboard, "M10 5H9V4h1v1zM3 6H2v1h1V6zm5-2H7v1h1V4zM4 4H2v1h2V4zm8 7h2v-1h-2v1zM8 7h1V6H8v1zm-4 3H2v1h2v-1zm8-6h-1v1h1V4zm2 0h-1v1h1V4zm-2 5h2V6h-2v3zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 0H1v9h14V3zM6 7h1V6H6v1zm0-3H5v1h1V4zM4 7h1V6H4v1zm1 4h6v-1H5v1zm5-4h1V6h-1v1zM3 8H2v1h1V8zm5 0v1h1V8H8zM6 8v1h1V8H6zM5 8H4v1h1V8zm5 1h1V8h-1v1z"},
{PackIconOcticonsKind.Law, "M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z"},
{PackIconOcticonsKind.LightBulb, "M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"},
{PackIconOcticonsKind.Link, "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},
{PackIconOcticonsKind.LinkExternal, "M11 10h1v3c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h3v1H1v10h10v-3zM6 2l2.25 2.25L5 7.5 6.5 9l3.25-3.25L12 8V2H6z"},
{PackIconOcticonsKind.ListOrdered, "M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"},
{PackIconOcticonsKind.ListUnordered, "M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"},
{PackIconOcticonsKind.Location, "M6 0C2.69 0 0 2.5 0 5.5 0 10.02 6 16 6 16s6-5.98 6-10.5C12 2.5 9.31 0 6 0zm0 14.55C4.14 12.52 1 8.44 1 5.5 1 3.02 3.25 1 6 1c1.34 0 2.61.48 3.56 1.36.92.86 1.44 1.97 1.44 3.14 0 2.94-3.14 7.02-5 9.05zM8 5.5c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"},
{PackIconOcticonsKind.Lock, "M4 13H3v-1h1v1zm8-6v7c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h1V4c0-2.2 1.8-4 4-4s4 1.8 4 4v2h1c.55 0 1 .45 1 1zM3.8 6h4.41V4c0-1.22-.98-2.2-2.2-2.2-1.22 0-2.2.98-2.2 2.2v2H3.8zM11 7H2v7h9V7zM4 8H3v1h1V8zm0 2H3v1h1v-1z"},
{PackIconOcticonsKind.LogoGist, "M4.7 8.73h2.45v4.02c-.55.27-1.64.34-2.53.34-2.56 0-3.47-2.2-3.47-5.05 0-2.85.91-5.06 3.48-5.06 1.28 0 2.06.23 3.28.73V2.66C7.27 2.33 6.25 2 4.63 2 1.13 2 0 4.69 0 8.03c0 3.34 1.11 6.03 4.63 6.03 1.64 0 2.81-.27 3.59-.64V7.73H4.7v1zm6.39 3.72V6.06h-1.05v6.28c0 1.25.58 1.72 1.72 1.72v-.89c-.48 0-.67-.16-.67-.7v-.02zm.25-8.72c0-.44-.33-.78-.78-.78s-.77.34-.77.78.33.78.77.78.78-.34.78-.78zm4.34 5.69c-1.5-.13-1.78-.48-1.78-1.17 0-.77.33-1.34 1.88-1.34 1.05 0 1.66.16 2.27.36v-.94c-.69-.3-1.52-.39-2.25-.39-2.2 0-2.92 1.2-2.92 2.31 0 1.08.47 1.88 2.73 2.08 1.55.13 1.77.63 1.77 1.34 0 .73-.44 1.42-2.06 1.42-1.11 0-1.86-.19-2.33-.36v.94c.5.2 1.58.39 2.33.39 2.38 0 3.14-1.2 3.14-2.41 0-1.28-.53-2.03-2.75-2.23h-.03zm8.58-2.47v-.86h-2.42v-2.5l-1.08.31v2.11l-1.56.44v.48h1.56v5c0 1.53 1.19 2.13 2.5 2.13.19 0 .52-.02.69-.05v-.89c-.19.03-.41.03-.61.03-.97 0-1.5-.39-1.5-1.34V6.94h2.42v.02-.01z"},
{PackIconOcticonsKind.LogoGithub, "M18.53 12.03h-.02c.009 0 .015.01.024.011h.006l-.01-.01zm.004.011c-.093.001-.327.05-.574.05-.78 0-1.05-.36-1.05-.83V8.13h1.59c.09 0 .16-.08.16-.19v-1.7c0-.09-.08-.17-.16-.17h-1.59V3.96c0-.08-.05-.13-.14-.13h-2.16c-.09 0-.14.05-.14.13v2.17s-1.09.27-1.16.28c-.08.02-.13.09-.13.17v1.36c0 .11.08.19.17.19h1.11v3.28c0 2.44 1.7 2.69 2.86 2.69.53 0 1.17-.17 1.27-.22.06-.02.09-.09.09-.16v-1.5a.177.177 0 00-.146-.18zM42.23 9.84c0-1.81-.73-2.05-1.5-1.97-.6.04-1.08.34-1.08.34v3.52s.49.34 1.22.36c1.03.03 1.36-.34 1.36-2.25zm2.43-.16c0 3.43-1.11 4.41-3.05 4.41-1.64 0-2.52-.83-2.52-.83s-.04.46-.09.52c-.03.06-.08.08-.14.08h-1.48c-.1 0-.19-.08-.19-.17l.02-11.11c0-.09.08-.17.17-.17h2.13c.09 0 .17.08.17.17v3.77s.82-.53 2.02-.53l-.01-.02c1.2 0 2.97.45 2.97 3.88zm-8.72-3.61h-2.1c-.11 0-.17.08-.17.19v5.44s-.55.39-1.3.39-.97-.34-.97-1.09V6.25c0-.09-.08-.17-.17-.17h-2.14c-.09 0-.17.08-.17.17v5.11c0 2.2 1.23 2.75 2.92 2.75 1.39 0 2.52-.77 2.52-.77s.05.39.08.45c.02.05.09.09.16.09h1.34c.11 0 .17-.08.17-.17l.02-7.47c0-.09-.08-.17-.19-.17zm-23.7-.01h-2.13c-.09 0-.17.09-.17.2v7.34c0 .2.13.27.3.27h1.92c.2 0 .25-.09.25-.27V6.23c0-.09-.08-.17-.17-.17zm-1.05-3.38c-.77 0-1.38.61-1.38 1.38 0 .77.61 1.38 1.38 1.38.75 0 1.36-.61 1.36-1.38 0-.77-.61-1.38-1.36-1.38zm16.49-.25h-2.11c-.09 0-.17.08-.17.17v4.09h-3.31V2.6c0-.09-.08-.17-.17-.17h-2.13c-.09 0-.17.08-.17.17v11.11c0 .09.09.17.17.17h2.13c.09 0 .17-.08.17-.17V8.96h3.31l-.02 4.75c0 .09.08.17.17.17h2.13c.09 0 .17-.08.17-.17V2.6c0-.09-.08-.17-.17-.17zM8.81 7.35v5.74c0 .04-.01.11-.06.13 0 0-1.25.89-3.31.89-2.49 0-5.44-.78-5.44-5.92S2.58 1.99 5.1 2c2.18 0 3.06.49 3.2.58.04.05.06.09.06.14L7.94 4.5c0 .09-.09.2-.2.17-.36-.11-.9-.33-2.17-.33-1.47 0-3.05.42-3.05 3.73s1.5 3.7 2.58 3.7c.92 0 1.25-.11 1.25-.11v-2.3H4.88c-.11 0-.19-.08-.19-.17V7.35c0-.09.08-.17.19-.17h3.74c.11 0 .19.08.19.17z"},
{PackIconOcticonsKind.Mail, "M0 4v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1zm13 0L7 9 1 4h12zM1 5.5l4 3-4 3v-6zM2 12l3.5-3L7 10.5 8.5 9l3.5 3H2zm11-.5l-4-3 4-3v6z"},
{PackIconOcticonsKind.MailRead, "M6 5H4V4h2v1zm3 1H4v1h5V6zm5-.48V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5.52c0-.33.16-.63.42-.81L2 3.58V3c0-.55.45-1 1-1h1.2L7 0l2.8 2H11c.55 0 1 .45 1 1v.58l1.58 1.13c.27.19.42.48.42.81zM3 7.5L7 10l4-2.5V3H3v4.5zm-2 6l4.5-3-4.5-3v6zm11 .5l-5-3-5 3h10zm1-6.5l-4.5 3 4.5 3v-6z"},
{PackIconOcticonsKind.Markdown, "M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"},
{PackIconOcticonsKind.MarkGithub, "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"},
{PackIconOcticonsKind.Megaphone, "M10 1c-.17 0-.36.05-.52.14C8.04 2.02 4.5 4.58 3 5c-1.38 0-3 .67-3 2.5S1.63 10 3 10c.3.08.64.23 1 .41V15h2v-3.45c1.34.86 2.69 1.83 3.48 2.31.16.09.34.14.52.14.52 0 1-.42 1-1V2c0-.58-.48-1-1-1zm0 12c-.38-.23-.89-.58-1.5-1-.16-.11-.33-.22-.5-.34V3.31c.16-.11.31-.2.47-.31.61-.41 1.16-.77 1.53-1v11zm2-6h4v1h-4V7zm0 2l4 2v1l-4-2V9zm4-6v1l-4 2V5l4-2z"},
{PackIconOcticonsKind.Mention, "M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"},
{PackIconOcticonsKind.Milestone, "M8 2H6V0h2v2zm4 5H2c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h10l2 2-2 2zM8 4H6v2h2V4zM6 16h2V8H6v8z"},
{PackIconOcticonsKind.Mirror, "M15.5 4.7L8.5 0l-7 4.7c-.3.19-.5.45-.5.8V16l7.5-4 7.5 4V5.5c0-.34-.2-.61-.5-.8zm-.5 9.8l-6-3.25V10H8v1.25L2 14.5v-9l6-4V6h1V1.5l6 4v9zM6 7h5V5l3 3-3 3V9H6v2L3 8l3-3v2z"},
{PackIconOcticonsKind.MortarBoard, "M8.11 2.8a.34.34 0 00-.2 0L.27 5.18a.35.35 0 000 .67L2 6.4v1.77c-.3.17-.5.5-.5.86 0 .19.05.36.14.5-.08.14-.14.31-.14.5v2.58c0 .55 2 .55 2 0v-2.58c0-.19-.05-.36-.14-.5.08-.14.14-.31.14-.5 0-.38-.2-.69-.5-.86V6.72l4.89 1.53c.06.02.14.02.2 0l7.64-2.38a.35.35 0 000-.67L8.1 2.81l.01-.01zM4 8l3.83 1.19h-.02c.13.03.25.03.36 0L12 8v2.5c0 1-1.8 1.5-4 1.5s-4-.5-4-1.5V8zm3.02-2.5c0 .28.45.5 1 .5s1-.22 1-.5-.45-.5-1-.5-1 .22-1 .5z"},
{PackIconOcticonsKind.Mute, "M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"},
{PackIconOcticonsKind.NoNewline, "M16 5v3c0 .55-.45 1-1 1h-3v2L9 8l3-3v2h2V5h2zM8 8c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zM1.5 9.66L5.66 5.5C5.18 5.19 4.61 5 4 5 2.34 5 1 6.34 1 8c0 .61.19 1.17.5 1.66zM7 8c0-.61-.19-1.17-.5-1.66L2.34 10.5c.48.31 1.05.5 1.66.5 1.66 0 3-1.34 3-3z"},
{PackIconOcticonsKind.Note, "M3 10h4V9H3v1zm0-2h6V7H3v1zm0-2h8V5H3v1zm10 6H1V3h12v9zM1 2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H1z"},
{PackIconOcticonsKind.Octoface, "M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"},
{PackIconOcticonsKind.Organization, "M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z"},
{PackIconOcticonsKind.Package, "M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"},
{PackIconOcticonsKind.Paintcan, "M6 0C2.69 0 0 2.69 0 6v1c0 .55.45 1 1 1v5c0 1.1 2.24 2 5 2s5-.9 5-2V8c.55 0 1-.45 1-1V6c0-3.31-2.69-6-6-6zm3 10v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V10c0-.28-.22-.5-.5-.5s-.5.22-.5.5v2.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-2c0-.28-.22-.5-.5-.5s-.5.22-.5.5v.5c0 .55-.45 1-1 1s-1-.45-1-1v-1c-.55 0-1-.45-1-1V7.2c.91.49 2.36.8 4 .8 1.64 0 3.09-.31 4-.8V9c0 .55-.45 1-1 1zM6 7c-1.68 0-3.12-.41-3.71-1C2.88 5.41 4.32 5 6 5c1.68 0 3.12.41 3.71 1-.59.59-2.03 1-3.71 1zm0-3c-2.76 0-5 .89-5 2 0-2.76 2.24-5 5-5s5 2.24 5 5c0-1.1-2.24-2-5-2z"},
{PackIconOcticonsKind.Pencil, "M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 011.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"},
{PackIconOcticonsKind.Person, "M12 14.002a.998.998 0 01-.998.998H1.001A1 1 0 010 13.999V13c0-2.633 4-4 4-4s.229-.409 0-1c-.841-.62-.944-1.59-1-4 .173-2.413 1.867-3 3-3s2.827.586 3 3c-.056 2.41-.159 3.38-1 4-.229.59 0 1 0 1s4 1.367 4 4v1.002z"},
{PackIconOcticonsKind.Pin, "M10 1.2V2l.5 1L6 6H2.2c-.44 0-.67.53-.34.86L5 10l-4 5 5-4 3.14 3.14a.5.5 0 00.86-.34V10l3-4.5 1 .5h.8c.44 0 .67-.53.34-.86L10.86.86a.5.5 0 00-.86.34z"},
{PackIconOcticonsKind.Play, "M14 8A7 7 0 110 8a7 7 0 0114 0zm-8.223 3.482l4.599-3.066a.5.5 0 000-.832L5.777 4.518A.5.5 0 005 4.934v6.132a.5.5 0 00.777.416z"},
{PackIconOcticonsKind.Plug, "M14 6V5h-4V3H8v1H6c-1.03 0-1.77.81-2 2L3 7c-1.66 0-3 1.34-3 3v2h1v-2c0-1.11.89-2 2-2l1 1c.25 1.16.98 2 2 2h2v1h2v-2h4V9h-4V6h4z"},
{PackIconOcticonsKind.Plus, "M12 9H7v5H5V9H0V7h5V2h2v5h5v2z"},
{PackIconOcticonsKind.PlusSmall, "M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"},
{PackIconOcticonsKind.PrimitiveDot, "M0 8c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4-4-1.8-4-4z"},
{PackIconOcticonsKind.PrimitiveDotStroke, "M4 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM4 12a4 4 0 100-8 4 4 0 000 8z"},
{PackIconOcticonsKind.PrimitiveSquare, "M8 12H0V4h8v8z"},
{PackIconOcticonsKind.Project, "M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"},
{PackIconOcticonsKind.Pulse, "M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8h-2.5z"},
{PackIconOcticonsKind.Question, "M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"},
{PackIconOcticonsKind.Quote, "M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"},
{PackIconOcticonsKind.RadioTower, "M4.79 6.11c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 00-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.33.52a.651.651 0 00-.92 0C.48 1.48.01 2.74.01 3.99c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 00.01-.93zm5.69 5.1A1.62 1.62 0 106.4 4c-.01.89.72 1.62 1.62 1.62zM14.59.53a.628.628 0 00-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 00.92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0014.59.53zM8.02 6.92c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.21 6.62c-.38.2-.78.3-1.19.3zm-.01.48L9.02 11h-2l.99-3.6zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 00.9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 00-.9 0z"},
{PackIconOcticonsKind.Reply, "M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"},
{PackIconOcticonsKind.Repo, "M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"},
{PackIconOcticonsKind.RepoClone, "M15 0H9v7c0 .55.45 1 1 1h1v1h1V8h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 7h-1V6h1v1zm4 0h-3V6h3v1zm0-2h-4V1h4v4zM4 5H3V4h1v1zm0-2H3V2h1v1zM2 1h6V0H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h2v2l1.5-1.5L6 16v-2h5c.55 0 1-.45 1-1v-3H2V1zm9 10v2H6v-1H3v1H1v-2h10zM3 8h1v1H3V8zm1-1H3V6h1v1z"},
{PackIconOcticonsKind.RepoForcePush, "M10 9H8v7H6V9H4l2.25-3H4l3-4 3 4H7.75L10 9zm1-9H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9v9H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"},
{PackIconOcticonsKind.RepoForked, "M8 1a1.993 1.993 0 00-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 002 1a1.993 1.993 0 00-1 3.72V6.5l3 3v1.78A1.993 1.993 0 005 15a1.993 1.993 0 001-3.72V9.5l3-3V4.72A1.993 1.993 0 008 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"},
{PackIconOcticonsKind.RepoPull, "M13 8V6H7V4h6V2l3 3-3 3zM4 2H3v1h1V2zm7 5h1v6c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v2h-1V1H2v9h9V7zm0 4H1v2h2v-1h3v1h5v-2zM4 6H3v1h1V6zm0-2H3v1h1V4zM3 9h1V8H3v1z"},
{PackIconOcticonsKind.RepoPush, "M4 3H3V2h1v1zM3 5h1V4H3v1zm4 0L4 9h2v7h2V9h2L7 5zm4-5H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9.02L11 10H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"},
{PackIconOcticonsKind.Report, "M0 2a1 1 0 011-1h14a1 1 0 011 1v9a1 1 0 01-1 1H7l-4 4v-4H1a1 1 0 01-1-1V2zm1 0h14v9H6.5L4 13.5V11H1V2zm6 6h2v2H7V8zm0-5h2v4H7V3z"},
{PackIconOcticonsKind.RepoTemplate, "M12 8V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h2v2l1.5-1.5L6 16v-4H3v1H1v-2h7v-1H2V1h9v7h1zM4 2H3v1h1V2zM3 4h1v1H3V4zm1 2H3v1h1V6zm0 3H3V8h1v1zm6 3H8v2h2v2h2v-2h2v-2h-2v-2h-2v2z"},
{PackIconOcticonsKind.RepoTemplatePrivate, "M12 6c0-.55-.45-1-1-1h-1V4c0-2.2-1.8-4-4-4S2 1.8 2 4v1H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h5v-1H2V6h9v2h1V6zM8.21 5V4c0-1.22-.98-2.2-2.2-2.2-1.22 0-2.2.98-2.2 2.2v1h4.4zM12 12h2v2h-2v2h-2v-2H8v-2h2v-2h2v2zm-9 0h1v-1H3v1zm0-5h1v1H3V7zm1 2H3v1h1V9z"},
{PackIconOcticonsKind.RequestChanges, "M0 1a1 1 0 011-1h14a1 1 0 011 1v10a1 1 0 01-1 1H7.5L4 15.5V12H1a1 1 0 01-1-1V1zm1 0v10h4v2l2-2h8V1H1zm7.5 3h2v1h-2v2h-1V5h-2V4h2V2h1v2zm2 5h-5V8h5v1z"},
{PackIconOcticonsKind.Rocket, "M12.17 3.83c-.27-.27-.47-.55-.63-.88-.16-.31-.27-.66-.34-1.02-.58.33-1.16.7-1.73 1.13-.58.44-1.14.94-1.69 1.48-.7.7-1.33 1.81-1.78 2.45H3L0 10h3l2-2c-.34.77-1.02 2.98-1 3l1 1c.02.02 2.23-.64 3-1l-2 2v3l3-3v-3c.64-.45 1.75-1.09 2.45-1.78.55-.55 1.05-1.13 1.47-1.7.44-.58.81-1.16 1.14-1.72-.36-.08-.7-.19-1.03-.34a3.39 3.39 0 01-.86-.63zM16 0s-.09.38-.3 1.06c-.2.7-.55 1.58-1.06 2.66-.7-.08-1.27-.33-1.66-.72-.39-.39-.63-.94-.7-1.64C13.36.84 14.23.48 14.92.28 15.62.08 16 0 16 0z"},
{PackIconOcticonsKind.Rss, "M2 13H0v-2c1.11 0 2 .89 2 2zM0 3v1a9 9 0 019 9h1C10 7.48 5.52 3 0 3zm0 4v1c2.75 0 5 2.25 5 5h1c0-3.31-2.69-6-6-6z"},
{PackIconOcticonsKind.Ruby, "M13 6l-5 5V4h3l2 2zm3 0l-8 8-8-8 4-4h8l4 4zm-8 6.5L14.5 6l-3-3h-7l-3 3L8 12.5z"},
{PackIconOcticonsKind.Saved, "M12 0H4c-.73 0-1 .27-1 1v15l5-3.09L13 16V1c0-.73-.27-1-1-1z"},
{PackIconOcticonsKind.ScreenFull, "M13 10h1v3c0 .547-.453 1-1 1h-3v-1h3v-3zM1 10H0v3c0 .547.453 1 1 1h3v-1H1v-3zm0-7h3V2H1c-.547 0-1 .453-1 1v3h1V3zm1 1h10v8H2V4zm2 6h6V6H4v4zm6-8v1h3v3h1V3c0-.547-.453-1-1-1h-3z"},
{PackIconOcticonsKind.ScreenNormal, "M2 4H0V3h2V1h1v2c0 .547-.453 1-1 1zm0 8H0v1h2v2h1v-2c0-.547-.453-1-1-1zm9-2c0 .547-.453 1-1 1H4c-.547 0-1-.453-1-1V6c0-.547.453-1 1-1h6c.547 0 1 .453 1 1v4zM9 7H5v2h4V7zm2 6v2h1v-2h2v-1h-2c-.547 0-1 .453-1 1zm1-10V1h-1v2c0 .547.453 1 1 1h2V3h-2z"},
{PackIconOcticonsKind.Search, "M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"},
{PackIconOcticonsKind.Server, "M11 6H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM2 9H1V7h1v2zm2 0H3V7h1v2zm2 0H5V7h1v2zm2 0H7V7h1v2zm3-8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM2 4H1V2h1v2zm2 0H3V2h1v2zm2 0H5V2h1v2zm2 0H7V2h1v2zm3-1h-1V2h1v1zm0 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm-9 3H1v-2h1v2zm2 0H3v-2h1v2zm2 0H5v-2h1v2zm2 0H7v-2h1v2z"},
{PackIconOcticonsKind.Settings, "M4 7H3V2h1v5zm-1 7h1v-3H3v3zm5 0h1V8H8v6zm5 0h1v-2h-1v2zm1-12h-1v6h1V2zM9 2H8v2h1V2zM5 8H2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm5-3H7c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm5 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1z"},
{PackIconOcticonsKind.Shield, "M0 2l7-2 7 2v6.02C14 12.69 8.69 16 7 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L7 1l6 1.75v5.268C13 12.104 8.449 15 7 15c-1.449 0-6-2.896-6-6.982V2.75zm1 .75L7 2v12c-1.207 0-5-2.482-5-5.985V3.5z"},
{PackIconOcticonsKind.ShieldCheck, "M6.5 0L0 1.875v5.644C0 11.897 4.93 15 6.5 15c.741 0 2.232-.692 3.6-1.884l-.713-.61C8.275 13.453 7.099 14 6.5 14 5.172 14 1 11.31 1 7.516V2.625L6.5 1 12 2.625v4.891c0 .128-.005.255-.014.38L13 6.713V1.875L6.5 0zm5 10l-2-1.5L8 10l3.5 3L16 8l-1.5-1.5-3 3.5zM2 3.375L6.5 2v11C5.414 13 2 10.724 2 7.514V3.375z"},
{PackIconOcticonsKind.ShieldLock, "M7 0L0 2v6.02C0 12.69 5.31 16 7 16c1.69 0 7-3.31 7-7.98V2L7 0zM5 11l1.14-2.8a.568.568 0 00-.25-.59C5.33 7.25 5 6.66 5 6c0-1.09.89-2 1.98-2C8.06 4 9 4.91 9 6c0 .66-.33 1.25-.89 1.61-.19.13-.3.36-.25.59L9 11H5z"},
{PackIconOcticonsKind.ShieldX, "M6.5 0L0 1.875v5.644C0 11.897 4.93 15 6.5 15c.63 0 1.8-.5 2.976-1.38l-.663-.663C7.889 13.625 6.996 14 6.5 14 5.172 14 1 11.31 1 7.516V2.625L6.5 1 12 2.625v4.23l.48.48.52-.52v-4.94L6.5 0zm5.98 8.75L10.73 7 9.25 8.48 11 10.23l-1.75 1.75 1.48 1.48 1.75-1.75 1.75 1.75 1.48-1.48-1.75-1.75 1.75-1.75L14.23 7l-1.75 1.75zM2 3.375L6.5 2v11C5.414 13 2 10.724 2 7.514V3.375z"},
{PackIconOcticonsKind.SignIn, "M7 6.75V12h4V8h1v4c0 .55-.45 1-1 1H7v3l-5.45-2.72c-.33-.17-.55-.52-.55-.91V1c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v3h-1V1H3l4 2v2.25L10 3v2h4v2h-4v2L7 6.75z"},
{PackIconOcticonsKind.SignOut, "M12 9V7H8V5h4V3l4 3-4 3zm-2 3H6V3L2 1h8v3h1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v11.38c0 .39.22.73.55.91L6 16.01V13h4c.55 0 1-.45 1-1V8h-1v4z"},
{PackIconOcticonsKind.Skip, "M5.79 11.624l-1.326-.088-.088-1.326 5.834-5.834 1.326.088.088 1.326-5.834 5.834zM8 15A7 7 0 108 1a7 7 0 000 14zm5.5-7a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z"},
{PackIconOcticonsKind.Smiley, "M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 01-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 01-1.45-2.17A6.59 6.59 0 011.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 018 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"},
{PackIconOcticonsKind.Squirrel, "M12 1C9.79 1 8 2.31 8 3.92c0 1.94.5 3.03 0 6.08 0-4.5-2.77-6.34-4-6.34.05-.5-.48-.66-.48-.66s-.22.11-.3.34c-.27-.31-.56-.27-.56-.27l-.13.58S.7 4.29.68 6.87c.2.33 1.53.6 2.47.43.89.05.67.79.47.99C2.78 9.13 2 8 1 8S0 9 1 9s1 1 3 1c-3.09 1.2 0 4 0 4H3c-1 0-1 1-1 1h6c3 0 5-1 5-3.47 0-.85-.43-1.79-1-2.53-1.11-1.46.23-2.68 1-2 .77.68 3 1 3-2 0-2.21-1.79-4-4-4zM2.5 6c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5z"},
{PackIconOcticonsKind.Star, "M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"},
{PackIconOcticonsKind.Stop, "M10 1H4L0 5v6l4 4h6l4-4V5l-4-4zm3 9.5L9.5 14h-5L1 10.5v-5L4.5 2h5L13 5.5v5zM6 4h2v5H6V4zm0 6h2v2H6v-2z"},
{PackIconOcticonsKind.Sync, "M10.24 7.4a4.15 4.15 0 01-1.2 3.6 4.346 4.346 0 01-5.41.54L4.8 10.4.5 9.8l.6 4.2 1.31-1.26c2.36 1.74 5.7 1.57 7.84-.54a5.876 5.876 0 001.74-4.46l-1.75-.34zM2.96 5a4.346 4.346 0 015.41-.54L7.2 5.6l4.3.6-.6-4.2-1.31 1.26c-2.36-1.74-5.7-1.57-7.85.54C.5 5.03-.06 6.65.01 8.26l1.75.35A4.17 4.17 0 012.96 5z"},
{PackIconOcticonsKind.Tag, "M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"},
{PackIconOcticonsKind.Tasklist, "M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"},
{PackIconOcticonsKind.Telescope, "M8 9l3 6h-1l-2-4v5H7v-6l-2 5H4l2-5 2-1zM7 0H6v1h1V0zM5 3H4v1h1V3zM2 1H1v1h1V1zM.63 9a.52.52 0 00-.16.67l.55.92c.13.23.41.31.64.2l1.39-.66-1.16-2-1.27.86.01.01zm7.89-5.39l-5.8 3.95L3.95 9.7l6.33-3.03-1.77-3.06h.01zm4.22 1.28l-1.47-2.52a.51.51 0 00-.72-.17l-1.2.83 1.84 3.2 1.33-.64c.27-.13.36-.44.22-.7z"},
{PackIconOcticonsKind.Terminal, "M7 10h4v1H7v-1zm-3 1l3-3-3-3-.75.75L5.5 8l-2.25 2.25L4 11zm10-8v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h12c.55 0 1 .45 1 1zm-1 0H1v10h12V3z"},
{PackIconOcticonsKind.TextSize, "M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"},
{PackIconOcticonsKind.ThreeBars, "M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"},
{PackIconOcticonsKind.Thumbsdown, "M15.98 7.83l-.97-5.95C14.84.5 13.13 0 12 0H5.69c-.2 0-.38.05-.53.14L3.72 1H2C.94 1 0 1.94 0 3v4c0 1.06.94 2.02 2 2h2c.91 0 1.39.45 2.39 1.55.91 1 .88 1.8.63 3.27-.08.5.06 1 .42 1.42.39.47.98.76 1.56.76 1.83 0 3-3.71 3-5.01l-.02-.98h2.04c1.16 0 1.95-.8 1.98-1.97 0-.11-.02-.21-.02-.21zm-1.97 1.19h-1.99c-.7 0-1.03.28-1.03.97l.03 1.03c0 1.27-1.17 4-2 4-.5 0-1.08-.5-1-1 .25-1.58.34-2.78-.89-4.14C6.11 8.75 5.36 8 4 8V2l1.67-1H12c.73 0 1.95.31 2 1l.02.02 1 6c-.03.64-.38 1-1 1h-.01z"},
{PackIconOcticonsKind.Thumbsup, "M15.98 8.17l-.97 5.95C14.84 15.5 13.13 16 12 16H5.69c-.2 0-.38-.05-.53-.14L3.72 15H2c-1.06 0-2-.94-2-2V9c0-1.06.94-2.02 2-2h2c.91 0 1.39-.45 2.39-1.55.91-1 .88-1.8.63-3.27-.08-.5.06-1 .42-1.42C7.83.29 8.42 0 9 0c1.83 0 3 3.71 3 5.01l-.02.98h2.04c1.16 0 1.95.8 1.98 1.97 0 .11-.02.21-.02.21zm-1.97-1.19h-1.99c-.7 0-1.03-.28-1.03-.97l.03-1.03c0-1.27-1.17-4-2-4-.5 0-1.08.5-1 1 .25 1.58.34 2.78-.89 4.14C6.11 7.25 5.36 8 4 8v6l1.67 1H12c.73 0 1.95-.31 2-1l.02-.02 1-6c-.03-.64-.38-1-1-1h-.01z"},
{PackIconOcticonsKind.Tools, "M4.48 7.27c.26.26 1.28 1.33 1.28 1.33l.56-.58-.88-.91 1.69-1.8s-.76-.74-.43-.45c.32-1.19.03-2.51-.87-3.44C4.93.5 3.66.2 2.52.51l1.93 2-.51 1.96-1.89.52-1.93-2C-.19 4.17.1 5.48 1 6.4c.94.98 2.29 1.26 3.48.87zm6.44 1.94l-2.33 2.3 3.84 3.98c.31.33.73.49 1.14.49.41 0 .82-.16 1.14-.49.63-.65.63-1.7 0-2.35l-3.79-3.93zM16 2.53L13.55 0 6.33 7.46l.88.91-4.31 4.46-.99.53-1.39 2.27.35.37 2.2-1.44.51-1.02L7.9 9.08l.88.91L16 2.53z"},
{PackIconOcticonsKind.Trashcan, "M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"},
{PackIconOcticonsKind.TriangleDown, "M0 5l6 6 6-6H0z"},
{PackIconOcticonsKind.TriangleLeft, "M6 2L0 8l6 6V2z"},
{PackIconOcticonsKind.TriangleRight, "M0 14l6-6-6-6v12z"},
{PackIconOcticonsKind.TriangleUp, "M12 11L6 5l-6 6h12z"},
{PackIconOcticonsKind.Unfold, "M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z"},
{PackIconOcticonsKind.Unmute, "M12 8.02c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0112 8.02zM7.72 2.28L4 6H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.81c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 012.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0016 8c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 011.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.971 5.971 0 0014 8.02c0-1.65-.67-3.16-1.75-4.25z"},
{PackIconOcticonsKind.Unsaved, "M12 0H4c-.73 0-1 .27-1 1v1.982l10 5.774V1c0-.73-.27-1-1-1zm1 12.203l1.606.928.75-1.3-13.856-8-.75 1.3L3 6.43V16l5-3.09L13 16v-3.797z"},
{PackIconOcticonsKind.Unverified, "M15.67 7.066l-1.08-1.34a1.5 1.5 0 01-.309-.77l-.19-1.698a1.51 1.51 0 00-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 00-1.878 0l-1.34 1.08a1.5 1.5 0 01-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 000 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 000-1.878zM9 11.5c0 .28-.22.5-.5.5h-1c-.27 0-.5-.22-.5-.5v-1c0-.28.23-.5.5-.5h1c.28 0 .5.22.5.5v1zm1.56-4.89c-.06.17-.17.33-.3.47-.13.16-.14.19-.33.38-.16.17-.31.3-.52.45-.11.09-.2.19-.28.27-.08.08-.14.17-.19.27-.05.1-.08.19-.11.3-.03.11-.03.13-.03.25H7.13c0-.22 0-.31.03-.48.03-.19.08-.36.14-.52.06-.14.14-.28.25-.42.11-.13.23-.25.41-.38.27-.19.36-.3.48-.52.12-.22.2-.38.2-.59 0-.27-.06-.45-.2-.58-.13-.13-.31-.19-.58-.19-.09 0-.19.02-.3.05-.11.03-.17.09-.25.16-.08.07-.14.11-.2.2a.41.41 0 00-.09.28h-2c0-.38.13-.56.27-.83.16-.27.36-.5.61-.67.25-.17.55-.3.88-.38.33-.08.7-.13 1.09-.13.44 0 .83.05 1.17.13.34.09.63.22.88.39.23.17.41.38.55.63.13.25.19.55.19.88 0 .22 0 .42-.08.59l-.02-.01z"},
{PackIconOcticonsKind.Verified, "M15.67 7.066l-1.08-1.34a1.5 1.5 0 01-.309-.77l-.19-1.698a1.51 1.51 0 00-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 00-1.878 0l-1.34 1.08a1.5 1.5 0 01-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 000 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 000-1.878zM6.5 12.01L3 8.51l1.5-1.5 2 2 5-5L13 5.56l-6.5 6.45z"},
{PackIconOcticonsKind.Versions, "M13 3H7c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 8H8V5h4v6zM4 4h1v1H4v6h1v1H4c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zM1 5h1v1H1v4h1v1H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1z"},
{PackIconOcticonsKind.Watch, "M6 8h2v1H5V5h1v3zm6 0c0 2.22-1.2 4.16-3 5.19V15c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1v-1.81C1.2 12.16 0 10.22 0 8s1.2-4.16 3-5.19V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.81c1.8 1.03 3 2.97 3 5.19zm-1 0c0-2.77-2.23-5-5-5S1 5.23 1 8s2.23 5 5 5 5-2.23 5-5z"},
{PackIconOcticonsKind.Workflow, "M3 4.949a2.5 2.5 0 10-1 0v8.049c0 .547.453 1 1 1h2.05a2.5 2.5 0 004.9 0h1.1a2.5 2.5 0 100-1h-1.1a2.5 2.5 0 00-4.9 0H3v-5h2.05a2.5 2.5 0 004.9 0h1.1a2.5 2.5 0 100-1h-1.1a2.5 2.5 0 00-4.9 0H3v-2.05zm9 2.55a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zm-3 0a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zm4.5 7.499a1.5 1.5 0 110-3.001 1.5 1.5 0 010 3zm-6-3a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"},
{PackIconOcticonsKind.WorkflowAll, "M10 8A5 5 0 110 8a5 5 0 0110 0zM3.5 5.5l4 2.5-4 2.5v-5zm3.75 7.444a5.001 5.001 0 000-9.888 5 5 0 110 9.888zm3 0a5.001 5.001 0 000-9.888 5 5 0 110 9.888z"},
{PackIconOcticonsKind.X, "M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"},
{PackIconOcticonsKind.Zap, "M10 7H6l3-7-9 9h4l-3 7 9-9z"},
};
}
}
}

View File

@ -0,0 +1,216 @@
namespace PSCHelpdesk.Shared.Icons
{
using System.ComponentModel;
/// ******************************************
/// This code is auto generated. Do not amend.
/// ******************************************
/// <summary>
/// List of available icons for use with <see cref="PackIconOcticons" />.
/// </summary>
/// <remarks>
/// All icons sourced from GitHub Octicons - <see><cref>https://octicons.github.com</cref></see> -
/// <see><cref>https://github.com/primer/octicons/blob/master/LICENSE</cref></see>.
/// </remarks>
public enum PackIconOcticonsKind
{
[Description("Empty placeholder")] None,
[Description("Alert (Warning, Triangle, Exclamation, Point)")] Alert,
[Description("Archive (Box, Catalog)")] Archive,
[Description("ArrowBoth (Point, Direction, Left, Right)")] ArrowBoth,
[Description("ArrowDown (Point, Direction)")] ArrowDown,
[Description("ArrowLeft (Point, Direction)")] ArrowLeft,
[Description("ArrowRight (Point, Direction)")] ArrowRight,
[Description("ArrowSmallDown (Point, Direction, Little, Tiny)")] ArrowSmallDown,
[Description("ArrowSmallLeft (Point, Direction, Little, Tiny)")] ArrowSmallLeft,
[Description("ArrowSmallRight (Point, Direction, Little, Tiny)")] ArrowSmallRight,
[Description("ArrowSmallUp (Point, Direction, Little, Tiny)")] ArrowSmallUp,
[Description("ArrowUp (Point, Direction)")] ArrowUp,
[Description("Beaker (Experiment, Labs, Experimental, Feature, Test, Science, Education, Study, Development, Testing)")] Beaker,
[Description("Bell (Notification)")] Bell,
[Description("Bold (Markdown, Bold, Text)")] Bold,
[Description("Book (Book, Journal, Wiki, Readme)")] Book,
[Description("Bookmark (Tab, Star)")] Bookmark,
[Description("Briefcase (Suitcase, Business)")] Briefcase,
[Description("Broadcast (Rss, Radio, Signal)")] Broadcast,
[Description("Browser (Window, Web)")] Browser,
[Description("Bug (Insect, Issue)")] Bug,
[Description("Calendar (Time, Day, Month, Year, Date, Appointment)")] Calendar,
[Description("Check (Mark, Yes, Confirm, Accept, Ok, Success)")] Check,
[Description("Checklist (Todo, Tasks)")] Checklist,
[Description("ChevronDown (Triangle, Arrow)")] ChevronDown,
[Description("ChevronLeft (Triangle, Arrow)")] ChevronLeft,
[Description("ChevronRight (Triangle, Arrow)")] ChevronRight,
[Description("ChevronUp (Triangle, Arrow)")] ChevronUp,
[Description("CircleSlash (No, Deny, Fail, Failure, Error, Bad)")] CircleSlash,
[Description("CircuitBoard (Developer, Hardware, Electricity)")] CircuitBoard,
[Description("Clippy (Copy, Paste, Save, Capture, Clipboard)")] Clippy,
[Description("Clock (Time, Hour, Minute, Second, Watch)")] Clock,
[Description("CloudDownload (Save, Install, Get)")] CloudDownload,
[Description("CloudUpload (Put, Export)")] CloudUpload,
[Description("Code (Brackets)")] Code,
[Description("Comment (Speak, Bubble)")] Comment,
[Description("CommentDiscussion (Converse, Talk)")] CommentDiscussion,
[Description("CreditCard (Money, Billing, Payments, Transactions)")] CreditCard,
[Description("Dash (Hyphen, Range)")] Dash,
[Description("Dashboard (Speed, Dial)")] Dashboard,
[Description("Database (Disks, Data)")] Database,
[Description("Dependent (Dependency, Dependent, File)")] Dependent,
[Description("DesktopDownload (Clone, Download)")] DesktopDownload,
[Description("DeviceCamera (Photo, Picture, Image, Snapshot)")] DeviceCamera,
[Description("DeviceCameraVideo (Watch, View, Media, Stream)")] DeviceCameraVideo,
[Description("DeviceDesktop (Computer, Monitor)")] DeviceDesktop,
[Description("DeviceMobile (Phone, Iphone, Cellphone)")] DeviceMobile,
[Description("Diff (Difference, Changes, Compare)")] Diff,
[Description("DiffAdded (New, Addition, Plus)")] DiffAdded,
[Description("DiffIgnored (Slash)")] DiffIgnored,
[Description("DiffModified (Dot, Changed, Updated)")] DiffModified,
[Description("DiffRemoved (Deleted, Subtracted, Dash)")] DiffRemoved,
[Description("DiffRenamed (Moved, Arrow)")] DiffRenamed,
[Description("Ellipsis (Dot, Read, More, Hidden, Expand)")] Ellipsis,
[Description("Eye (Look, Watch, See)")] Eye,
[Description("EyeClosed (Hidden, Invisible, Concealed, )")] EyeClosed,
[Description("File (File, Text, Words)")] File,
[Description("FileBinary (Image, Video, Word, Powerpoint, Excel)")] FileBinary,
[Description("FileCode (Text, Javascript, Html, Css, Php, Ruby, Coffeescript, Sass, Scss)")] FileCode,
[Description("FileDirectory (Folder)")] FileDirectory,
[Description("FileMedia (Image, Video, Audio)")] FileMedia,
[Description("FilePdf (Adobe)")] FilePdf,
[Description("FileSubmodule (Folder)")] FileSubmodule,
[Description("FileSymlinkDirectory (Folder, Subfolder, Link, Alias)")] FileSymlinkDirectory,
[Description("FileSymlinkFile (Link, Alias)")] FileSymlinkFile,
[Description("FileZip (Compress, Archive)")] FileZip,
[Description("Flame (Fire, Hot, Burn, Trending)")] Flame,
[Description("Fold (Unfold, Hide, Collapse)")] Fold,
[Description("FoldDown (Unfold, Hide, Collapse, Down)")] FoldDown,
[Description("FoldUp (Unfold, Hide, Collapse, Up)")] FoldUp,
[Description("Gear (Settings)")] Gear,
[Description("Gift (Package, Present, Skill, Craft, Freebie)")] Gift,
[Description("Gist (Gist, Github)")] Gist,
[Description("GistSecret (Gist, Secret, Private)")] GistSecret,
[Description("GitBranch (Fork, Branch, Git, Duplicate)")] GitBranch,
[Description("GitCommit (Save)")] GitCommit,
[Description("GitCompare (Difference, Changes)")] GitCompare,
[Description("GithubAction (Board, Workflow, Action, Automation)")] GithubAction,
[Description("GitMerge (Join)")] GitMerge,
[Description("GitPullRequest (Review)")] GitPullRequest,
[Description("Globe (World, Earth, Planet)")] Globe,
[Description("Grabber (Mover, Drap, Drop, Sort)")] Grabber,
[Description("Graph (Trend, Stats, Statistics)")] Graph,
[Description("Heart (Love, Beat)")] Heart,
[Description("History (Time, Past, Revert, Back)")] History,
[Description("Home (Welcome, Index, House, Building)")] Home,
[Description("HorizontalRule (Hr)")] HorizontalRule,
[Description("Hubot (Robot, Bot)")] Hubot,
[Description("Inbox (Mail, Todo, New, Messages)")] Inbox,
[Description("Info (Help)")] Info,
[Description("IssueClosed (Done, Complete)")] IssueClosed,
[Description("IssueOpened (New)")] IssueOpened,
[Description("IssueReopened (Regression)")] IssueReopened,
[Description("Italic (Font, Italic, Style)")] Italic,
[Description("Jersey (Team, Game, Basketball)")] Jersey,
[Description("KebabHorizontal (Kebab, Dot, Menu, More)")] KebabHorizontal,
[Description("KebabVertical (Kebab, Dot, Menu, More)")] KebabVertical,
[Description("Key (Key, Lock, Secure, Safe)")] Key,
[Description("Keyboard (Type, Keys, Write, Shortcuts)")] Keyboard,
[Description("Law (Legal, Bill)")] Law,
[Description("LightBulb (Idea)")] LightBulb,
[Description("Link (Connect, Hyperlink)")] Link,
[Description("LinkExternal (Out, See, More, Go, To)")] LinkExternal,
[Description("ListOrdered (Numbers, Tasks, Todo, Items)")] ListOrdered,
[Description("ListUnordered (Bullet, Point, Tasks, Todo, Items)")] ListUnordered,
[Description("Location (Here, Marker)")] Location,
[Description("Lock (Secure, Safe, Protected)")] Lock,
[Description("LogoGist (Brand, Github, Logo)")] LogoGist,
[Description("LogoGithub (Brand, Github, Logo)")] LogoGithub,
[Description("Mail (Email, Unread)")] Mail,
[Description("MailRead (Email, Open)")] MailRead,
[Description("Markdown (Markup, Style)")] Markdown,
[Description("MarkGithub (Octocat, Brand, Github, Logo)")] MarkGithub,
[Description("Megaphone (Bullhorn, Loud, Shout, Broadcast)")] Megaphone,
[Description("Mention (At, Ping)")] Mention,
[Description("Milestone (Marker)")] Milestone,
[Description("Mirror (Reflect)")] Mirror,
[Description("MortarBoard (Education, Learn, Teach)")] MortarBoard,
[Description("Mute (Quiet, Sound, Audio, Turn, Off)")] Mute,
[Description("NoNewline (Return)")] NoNewline,
[Description("Note (Card, Paper, Ticket)")] Note,
[Description("Octoface (Octocat, Brand)")] Octoface,
[Description("Organization (People, Group, Team)")] Organization,
[Description("Package (Box, Ship)")] Package,
[Description("Paintcan (Style, Theme, Art, Color)")] Paintcan,
[Description("Pencil (Edit, Change, Update, Write)")] Pencil,
[Description("Person (People, Man, Woman, Human)")] Person,
[Description("Pin (Save, Star, Bookmark)")] Pin,
[Description("Play (Play, Start, Begin, Action)")] Play,
[Description("Plug (Hook, Webhook)")] Plug,
[Description("Plus (Add, New, More)")] Plus,
[Description("PlusSmall (Add, New, More, Small)")] PlusSmall,
[Description("PrimitiveDot (Circle)")] PrimitiveDot,
[Description("PrimitiveDotStroke (Circle, Dot, Unread)")] PrimitiveDotStroke,
[Description("PrimitiveSquare (Box)")] PrimitiveSquare,
[Description("Project (Board, Kanban, Columns, Scrum)")] Project,
[Description("Pulse (Graph, Trend, Line, Activity)")] Pulse,
[Description("Question (Help, Explain)")] Question,
[Description("Quote (Quotation)")] Quote,
[Description("RadioTower (Broadcast)")] RadioTower,
[Description("Reply (ReplyAll, Back)")] Reply,
[Description("Repo (Book, Journal, Repository)")] Repo,
[Description("RepoClone (Book, Journal, Repository)")] RepoClone,
[Description("RepoForcePush (Book, Journal, Put)")] RepoForcePush,
[Description("RepoForked (Book, Journal, Copy)")] RepoForked,
[Description("RepoPull (Book, Journal, Get)")] RepoPull,
[Description("RepoPush (Book, Journal, Repository, Put)")] RepoPush,
[Description("Report (Report, Abuse, Flag)")] Report,
[Description("RepoTemplate (Book, New, Add, Template)")] RepoTemplate,
[Description("RepoTemplatePrivate (Book, New, Template)")] RepoTemplatePrivate,
[Description("RequestChanges (Diff, Changes, Request)")] RequestChanges,
[Description("Rocket (Staff, Stafftools, Blast, Off, Space, Launch, Ship)")] Rocket,
[Description("Rss (Broadcast, Feed, Atom)")] Rss,
[Description("Ruby (Code, Language)")] Ruby,
[Description("Saved (Saved, Bookmark)")] Saved,
[Description("ScreenFull (Fullscreen, Expand)")] ScreenFull,
[Description("ScreenNormal (Fullscreen, Expand, Exit)")] ScreenNormal,
[Description("Search (Magnifying, Glass)")] Search,
[Description("Server (Computers, Racks, Ops)")] Server,
[Description("Settings (Sliders, Filters, Controls, Levels)")] Settings,
[Description("Shield (Security, Shield, Protection)")] Shield,
[Description("ShieldCheck (Security, Shield, Protection, Check, Success)")] ShieldCheck,
[Description("ShieldLock (Protect, Shield, Lock)")] ShieldLock,
[Description("ShieldX (Security, Shield, Protection, Fail)")] ShieldX,
[Description("SignIn (Door, Arrow, Direction, Enter, LogIn)")] SignIn,
[Description("SignOut (Door, Arrow, Direction, Leave, LogOut)")] SignOut,
[Description("Skip (Skip, Slash)")] Skip,
[Description("Smiley (Emoji, Smile, Mood, Emotion)")] Smiley,
[Description("Squirrel (Ship, Shipit, Launch)")] Squirrel,
[Description("Star (Save, Remember, Like)")] Star,
[Description("Stop (Block, Spam, Report)")] Stop,
[Description("Sync (Cycle, Refresh, Loop)")] Sync,
[Description("Tag (Release)")] Tag,
[Description("Tasklist (Todo)")] Tasklist,
[Description("Telescope (Science, Space, Look, View, Explore)")] Telescope,
[Description("Terminal (Code, Ops, Shell)")] Terminal,
[Description("TextSize (Font, Size, Text)")] TextSize,
[Description("ThreeBars (Hamburger, Menu, Dropdown)")] ThreeBars,
[Description("Thumbsdown (Thumb, Thumbsdown, Rejected, Dislike)")] Thumbsdown,
[Description("Thumbsup (Thumb, Thumbsup, Prop, Ship, Like)")] Thumbsup,
[Description("Tools (Screwdriver, Wrench, Settings)")] Tools,
[Description("Trashcan (Garbage, Rubbish, Recycle, Delete)")] Trashcan,
[Description("TriangleDown (Arrow, Point, Direction)")] TriangleDown,
[Description("TriangleLeft (Arrow, Point, Direction)")] TriangleLeft,
[Description("TriangleRight (Arrow, Point, Direction)")] TriangleRight,
[Description("TriangleUp (Arrow, Point, Direction)")] TriangleUp,
[Description("Unfold (Expand, Open, Reveal)")] Unfold,
[Description("Unmute (Loud, Volume, Audio, Sound, Play)")] Unmute,
[Description("Unsaved (Unsaved, Bookmark)")] Unsaved,
[Description("Unverified (Insecure, Untrusted, Signed)")] Unverified,
[Description("Verified (Trusted, Secure, Trustworthy, Signed)")] Verified,
[Description("Versions (History, Commits)")] Versions,
[Description("Watch (Wait, Hourglass, Time, Date)")] Watch,
[Description("Workflow (Workflow, Actions)")] Workflow,
[Description("WorkflowAll (Workflow, Actions)")] WorkflowAll,
[Description("X (Remove, Close, Delete)")] X,
[Description("Zap (Electricity, Lightning, Props, Like, Star, Save)")] Zap,
}
}

View File

@ -0,0 +1,6 @@
namespace PSCHelpdesk.Shared.Service;
public interface IToastManager
{
public void DisplayNewToast(string message);
}

5
Shared/Shared.axaml Normal file
View File

@ -0,0 +1,5 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StyleInclude Source="avares://Shared/IconPack/IconControl.axaml" />
</Styles>

View File

@ -14,6 +14,9 @@
<Reference Include="Avalonia.Controls">
<HintPath>..\..\..\.nuget\packages\avalonia\11.2.0\ref\net8.0\Avalonia.Controls.dll</HintPath>
</Reference>
<Reference Include="Avalonia.Markup">
<HintPath>..\..\..\.nuget\packages\avalonia\11.2.0\ref\net8.0\Avalonia.Markup.dll</HintPath>
</Reference>
<Reference Include="Avalonia.Markup.Xaml">
<HintPath>..\..\..\.nuget\packages\avalonia\11.1.0\ref\net8.0\Avalonia.Markup.Xaml.dll</HintPath>
</Reference>
@ -22,4 +25,8 @@
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.2.0" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,6 @@
namespace PSCHelpdesk.Shared.Tasks;
public interface ITaskManager
{
public void AddTask(string name, string tag, Task payload, CancellationTokenSource cancellationTokenSource = null);
}