Update year

This commit is contained in:
Natsumi
2026-01-12 09:49:34 +13:00
parent 2a31a1f988
commit 637201c8f7
33 changed files with 35 additions and 216 deletions
+1 -7
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Specialized; using System.Collections.Specialized;
@@ -216,7 +210,7 @@ namespace VRCX
using var client = MainForm.Instance.Browser.GetDevToolsClient(); using var client = MainForm.Instance.Browser.GetDevToolsClient();
_ = client.Network.SetUserAgentOverrideAsync(Program.Version); _ = client.Network.SetUserAgentOverrideAsync(Program.Version);
} }
public override void SetTrayIconNotification(bool notify) public override void SetTrayIconNotification(bool notify)
{ {
MainForm.Instance.BeginInvoke(new MethodInvoker(() => { MainForm.Instance.SetTrayIconNotification(notify); })); MainForm.Instance.BeginInvoke(new MethodInvoker(() => { MainForm.Instance.SetTrayIconNotification(notify); }));
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
+1 -7
View File
@@ -1,10 +1,4 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors. using CefSharp;
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using CefSharp;
namespace VRCX namespace VRCX
{ {
+1 -6
View File
@@ -1,9 +1,4 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors. using CefSharp;
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using CefSharp;
namespace VRCX namespace VRCX
{ {
+2 -8
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using CefSharp; using CefSharp;
using NLog; using NLog;
@@ -13,14 +7,14 @@ namespace VRCX
public class CustomRequestHandler : IRequestHandler public class CustomRequestHandler : IRequestHandler
{ {
private readonly Logger _logger = LogManager.GetCurrentClassLogger(); private readonly Logger _logger = LogManager.GetCurrentClassLogger();
public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect) public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect)
{ {
if (Program.LaunchDebug || if (Program.LaunchDebug ||
request.Url.StartsWith("file://vrcx/") || request.Url.StartsWith("file://vrcx/") ||
request.Url.StartsWith("chrome-extension://")) request.Url.StartsWith("chrome-extension://"))
return false; return false;
_logger.Error("Blocking navigation to: {Url}", request.Url); _logger.Error("Blocking navigation to: {Url}", request.Url);
return true; return true;
} }
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System.Collections.Generic; using System.Collections.Generic;
using CefSharp; using CefSharp;
using CefSharp.Enums; using CefSharp.Enums;
+1 -6
View File
@@ -1,9 +1,4 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors. using System;
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
+1 -7
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Drawing; using System.Drawing;
@@ -243,7 +237,7 @@ namespace VRCX
{ {
Instance.Browser.ShowDevTools(); Instance.Browser.ShowDevTools();
} }
private void TrayMenu_ForceCrash_Click(object sender, System.EventArgs e) private void TrayMenu_ForceCrash_Click(object sender, System.EventArgs e)
{ {
Instance.Browser.LoadUrl("chrome://crash"); Instance.Browser.LoadUrl("chrome://crash");
+11 -17
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using DiscordRPC; using DiscordRPC;
using System.Text; using System.Text;
@@ -135,21 +129,21 @@ namespace VRCX
} }
return Encoding.UTF8.GetString(bytesArr, 0, bytesArr.Length - bytesToRemove); return Encoding.UTF8.GetString(bytesArr, 0, bytesArr.Length - bytesToRemove);
} }
public void SetAssets( public void SetAssets(
string details, string details,
string state, string state,
string detailsUrl, string detailsUrl,
string largeKey, string largeKey,
string largeText, string largeText,
string smallKey, string smallKey,
string smallText, string smallText,
double startUnixMilliseconds, double startUnixMilliseconds,
double endUnixMilliseconds, double endUnixMilliseconds,
string partyId, string partyId,
int partySize, int partySize,
int partyMax, int partyMax,
@@ -171,21 +165,21 @@ namespace VRCX
_lock.ExitWriteLock(); _lock.ExitWriteLock();
return; return;
} }
_presence.Details = LimitByteLength(details, 127); _presence.Details = LimitByteLength(details, 127);
_presence.DetailsUrl = !string.IsNullOrEmpty(detailsUrl) ? detailsUrl : null; _presence.DetailsUrl = !string.IsNullOrEmpty(detailsUrl) ? detailsUrl : null;
// _presence.StateUrl // _presence.StateUrl
_presence.State = LimitByteLength(state, 127); _presence.State = LimitByteLength(state, 127);
_presence.Assets ??= new Assets(); _presence.Assets ??= new Assets();
_presence.Assets.LargeImageKey = largeKey; _presence.Assets.LargeImageKey = largeKey;
_presence.Assets.LargeImageText = largeText; _presence.Assets.LargeImageText = largeText;
_presence.Assets.LargeImageUrl = VrcxUrl; _presence.Assets.LargeImageUrl = VrcxUrl;
_presence.Assets.SmallImageKey = smallKey; _presence.Assets.SmallImageKey = smallKey;
_presence.Assets.SmallImageText = smallText; _presence.Assets.SmallImageText = smallText;
// m_Presence.Assets.SmallImageUrl // m_Presence.Assets.SmallImageUrl
if (startUnixMilliseconds == 0) if (startUnixMilliseconds == 0)
{ {
_presence.Timestamps = null; _presence.Timestamps = null;
@@ -214,7 +208,7 @@ namespace VRCX
_presence.Type = (ActivityType)activityType; _presence.Type = (ActivityType)activityType;
_presence.StatusDisplay = (StatusDisplayType)statusDisplayType; _presence.StatusDisplay = (StatusDisplayType)statusDisplayType;
Button[] buttons = []; Button[] buttons = [];
if (!string.IsNullOrEmpty(buttonUrl)) if (!string.IsNullOrEmpty(buttonUrl))
{ {
@@ -224,7 +218,7 @@ namespace VRCX
]; ];
} }
_presence.Buttons = buttons; _presence.Buttons = buttons;
if (_discordAppId != appId) if (_discordAppId != appId)
{ {
_discordAppId = appId; _discordAppId = appId;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using Newtonsoft.Json; using Newtonsoft.Json;
using System.IO; using System.IO;
using System.Text; using System.Text;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
+5 -11
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using CefSharp; using CefSharp;
using CefSharp.Enums; using CefSharp.Enums;
using CefSharp.OffScreen; using CefSharp.OffScreen;
@@ -100,22 +94,22 @@ namespace VRCX
{ {
if ((IntPtr)_device1.Handle == IntPtr.Zero) if ((IntPtr)_device1.Handle == IntPtr.Zero)
return; return;
if ((IntPtr)_deviceContext.Handle == IntPtr.Zero) if ((IntPtr)_deviceContext.Handle == IntPtr.Zero)
return; return;
if ((IntPtr)_query.Handle == IntPtr.Zero) if ((IntPtr)_query.Handle == IntPtr.Zero)
return; return;
if ((IntPtr)_renderTarget.Handle == IntPtr.Zero) if ((IntPtr)_renderTarget.Handle == IntPtr.Zero)
return; return;
using ComPtr<ID3D11Texture2D> cefTexture = using ComPtr<ID3D11Texture2D> cefTexture =
_device1.OpenSharedResource1<ID3D11Texture2D>(paintInfo.SharedTextureHandle.ToPointer()); _device1.OpenSharedResource1<ID3D11Texture2D>(paintInfo.SharedTextureHandle.ToPointer());
_deviceContext.CopyResource(_renderTarget, cefTexture); _deviceContext.CopyResource(_renderTarget, cefTexture);
_deviceContext.End(_query); _deviceContext.End(_query);
_deviceContext.Flush(); _deviceContext.Flush();
while (_deviceContext.GetData(_query, IntPtr.Zero.ToPointer(), 0, 0) == 1) while (_deviceContext.GetData(_query, IntPtr.Zero.ToPointer(), 0, 0) == 1)
{ {
Thread.Yield(); Thread.Yield();
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using CefSharp; using CefSharp;
using CefSharp.Enums; using CefSharp.Enums;
using CefSharp.OffScreen; using CefSharp.OffScreen;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading; using System.Threading;
+1 -7
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@@ -33,7 +27,7 @@ namespace VRCX
private static readonly float[] _rotationRight = { -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f) }; private static readonly float[] _rotationRight = { -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f) };
private static OffScreenBrowser _wristOverlay; private static OffScreenBrowser _wristOverlay;
private static OffScreenBrowser _hmdOverlay; private static OffScreenBrowser _hmdOverlay;
private readonly List<string[]> _deviceList; private readonly List<string[]> _deviceList;
private readonly ReaderWriterLockSlim _deviceListLock; private readonly ReaderWriterLockSlim _deviceListLock;
private bool _active; private bool _active;
+2 -8
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@@ -33,7 +27,7 @@ namespace VRCX
private static readonly float[] _rotationRight = { -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f) }; private static readonly float[] _rotationRight = { -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f), -90f * (float)(Math.PI / 180f) };
private static OffScreenBrowserLegacy _wristOverlay; private static OffScreenBrowserLegacy _wristOverlay;
private static OffScreenBrowserLegacy _hmdOverlay; private static OffScreenBrowserLegacy _hmdOverlay;
private readonly List<string[]> _deviceList; private readonly List<string[]> _deviceList;
private readonly ReaderWriterLockSlim _deviceListLock; private readonly ReaderWriterLockSlim _deviceListLock;
private bool _active; private bool _active;
@@ -43,7 +37,7 @@ namespace VRCX
private Thread _thread; private Thread _thread;
private bool _wristOverlayActive; private bool _wristOverlayActive;
private DateTime _nextOverlayUpdate; private DateTime _nextOverlayUpdate;
private DXGI _dxgi; private DXGI _dxgi;
private D3D11 _d3d11; private D3D11 _d3d11;
private ComPtr<IDXGIFactory2> _factory; private ComPtr<IDXGIFactory2> _factory;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
namespace VRCX namespace VRCX
{ {
partial class VRForm partial class VRForm
+1 -6
View File
@@ -1,9 +1,4 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors. using System.IO;
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using CefSharp; using CefSharp;
using CefSharp.WinForms; using CefSharp.WinForms;
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.IO; using System.IO;
using System.Threading; using System.Threading;
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using NLog; using NLog;
using NLog.Targets; using NLog.Targets;
using System; using System;
+3 -9
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
@@ -74,7 +68,7 @@ namespace VRCX
{ {
if (arg == VrcxLaunchArguments.IsStartupPrefix) if (arg == VrcxLaunchArguments.IsStartupPrefix)
arguments.IsStartup = true; arguments.IsStartup = true;
if (arg == VrcxLaunchArguments.IsUpgradePrefix) if (arg == VrcxLaunchArguments.IsUpgradePrefix)
arguments.IsUpgrade = true; arguments.IsUpgrade = true;
@@ -83,7 +77,7 @@ namespace VRCX
if (arg.StartsWith(VrcxLaunchArguments.LaunchCommandPrefix) && arg.Length > VrcxLaunchArguments.LaunchCommandPrefix.Length) if (arg.StartsWith(VrcxLaunchArguments.LaunchCommandPrefix) && arg.Length > VrcxLaunchArguments.LaunchCommandPrefix.Length)
arguments.LaunchCommand = arg.Substring(VrcxLaunchArguments.LaunchCommandPrefix.Length); arguments.LaunchCommand = arg.Substring(VrcxLaunchArguments.LaunchCommandPrefix.Length);
if (arg.StartsWith(VrcxLaunchArguments.LinuxLaunchCommandPrefix) && arg.Length > VrcxLaunchArguments.LinuxLaunchCommandPrefix.Length) if (arg.StartsWith(VrcxLaunchArguments.LinuxLaunchCommandPrefix) && arg.Length > VrcxLaunchArguments.LinuxLaunchCommandPrefix.Length)
arguments.LaunchCommand = arg.Substring(VrcxLaunchArguments.LinuxLaunchCommandPrefix.Length); arguments.LaunchCommand = arg.Substring(VrcxLaunchArguments.LinuxLaunchCommandPrefix.Length);
@@ -100,7 +94,7 @@ namespace VRCX
{ {
public const string IsStartupPrefix = "--startup"; public const string IsStartupPrefix = "--startup";
public bool IsStartup { get; set; } = false; public bool IsStartup { get; set; } = false;
public const string IsUpgradePrefix = "/Upgrade"; public const string IsUpgradePrefix = "/Upgrade";
public bool IsUpgrade { get; set; } = false; public bool IsUpgrade { get; set; } = false;
+2 -8
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@@ -56,7 +50,7 @@ namespace VRCX
{ {
if (Process.GetProcessesByName("VRCX_Setup").Length > 0) if (Process.GetProcessesByName("VRCX_Setup").Length > 0)
Environment.Exit(0); Environment.Exit(0);
if (File.Exists(TempDownload)) if (File.Exists(TempDownload))
File.Delete(TempDownload); File.Delete(TempDownload);
if (File.Exists(VrcxSetupExecutable)) if (File.Exists(VrcxSetupExecutable))
@@ -194,7 +188,7 @@ namespace VRCX
await destination.WriteAsync(buffer.AsMemory(0, bytesRead), _cancellationToken); await destination.WriteAsync(buffer.AsMemory(0, bytesRead), _cancellationToken);
totalBytesRead += bytesRead; totalBytesRead += bytesRead;
} }
destination.Close(); destination.Close();
var data = new FileInfo(TempDownload); var data = new FileInfo(TempDownload);
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
using Microsoft.Win32; using Microsoft.Win32;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2019-2025 pypy and individual contributors. Copyright (c) 2019-2026 pypy and individual contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
-8
View File
@@ -1,11 +1,3 @@
/*
/* Copyright(c) 2019-2025 pypy and individual contributors.
/* All rights reserved.
/*
/* This work is licensed under the terms of the MIT license.
/* For a copy, see <https://opensource.org/licenses/MIT>.
*/
@import 'element-plus/dist/index.css'; @import 'element-plus/dist/index.css';
@import 'element-plus/theme-chalk/dark/css-vars.css'; @import 'element-plus/theme-chalk/dark/css-vars.css';
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
import { createApp } from 'vue'; import { createApp } from 'vue';
import ElementPlus from 'element-plus'; import ElementPlus from 'element-plus';
+1 -1
View File
@@ -133,7 +133,7 @@
}}</a> }}</a>
</p> </p>
<p> <p>
&copy; 2019-2025 &copy; 2019-2026
<a class="x-link" @click="openExternalLink('https://github.com/pypy-vrc')">pypy</a> &amp; <a class="x-link" @click="openExternalLink('https://github.com/pypy-vrc')">pypy</a> &amp;
<a class="x-link" @click="openExternalLink('https://github.com/Natsumi-sama')">Natsumi</a> <a class="x-link" @click="openExternalLink('https://github.com/Natsumi-sama')">Natsumi</a>
</p> </p>
@@ -282,7 +282,7 @@
<span class="header">{{ t('view.settings.general.legal_notice.header') }}</span> <span class="header">{{ t('view.settings.general.legal_notice.header') }}</span>
<div class="options-container-item" style="display: block"> <div class="options-container-item" style="display: block">
<p> <p>
&copy; 2019-2025 &copy; 2019-2026
<a class="x-link" @click="openExternalLink('https://github.com/pypy-vrc')">pypy</a> &amp; <a class="x-link" @click="openExternalLink('https://github.com/pypy-vrc')">pypy</a> &amp;
<a class="x-link" @click="openExternalLink('https://github.com/Natsumi-sama')">Natsumi</a> <a class="x-link" @click="openExternalLink('https://github.com/Natsumi-sama')">Natsumi</a>
</p> </p>
-8
View File
@@ -1,11 +1,3 @@
/*
/* Copyright(c) 2019-2025 pypy and individual contributors.
/* All rights reserved.
/*
/* This work is licensed under the terms of the MIT license.
/* For a copy, see <https://opensource.org/licenses/MIT>.
*/
@import 'tailwindcss'; @import 'tailwindcss';
@import 'animate.css/animate.min.css'; @import 'animate.css/animate.min.css';
-6
View File
@@ -1,9 +1,3 @@
// Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved.
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.
import { createApp } from 'vue'; import { createApp } from 'vue';
import { i18n } from '../plugin/i18n'; import { i18n } from '../plugin/i18n';