mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-01-23 05:24:55 +03:00
Merge branch 'main' into feat/use-native-notification-for-achievements
This commit is contained in:
commit
8f1e71010b
@ -62,7 +62,6 @@
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"knex": "^3.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lottie-react": "^2.4.0",
|
||||
"parse-torrent": "^11.0.17",
|
||||
"piscina": "^4.7.0",
|
||||
"react-hook-form": "^7.53.0",
|
||||
@ -112,6 +111,7 @@
|
||||
"prettier": "^3.2.4",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"sass-embedded": "^1.80.6",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.3.3",
|
||||
"vite": "^5.0.12",
|
||||
|
@ -130,7 +130,7 @@
|
||||
"download": "Download",
|
||||
"executable_path_in_use": "Executable already in use by \"{{game}}\"",
|
||||
"warning": "Warning:",
|
||||
"hydra_needs_to_remain_open": "for this download, Hydra needs to remain open util its conclusion. In case Hydra closes before the conclusion, you will lose your progress.",
|
||||
"hydra_needs_to_remain_open": "for this download, Hydra needs to remain open util it's completed. If Hydra closes before completing, you will lose your progress.",
|
||||
"achievements": "Achievements",
|
||||
"achievements_count": "Achievements {{unlockedCount}}/{{achievementsCount}}",
|
||||
"cloud_save": "Cloud save",
|
||||
@ -215,7 +215,7 @@
|
||||
"language": "Language",
|
||||
"real_debrid_api_token": "API Token",
|
||||
"enable_real_debrid": "Enable Real-Debrid",
|
||||
"real_debrid_description": "Real-Debrid is an unrestricted downloader that allows you to download files instantly and at the best of your Internet speed.",
|
||||
"real_debrid_description": "Real-Debrid is an unrestricted downloader that allows you to quickly download files, only limited by your internet speed.",
|
||||
"real_debrid_invalid_token": "Invalid API token",
|
||||
"real_debrid_api_token_hint": "You can get your API token <0>here</0>",
|
||||
"real_debrid_free_account_error": "The account \"{{username}}\" is a free account. Please subscribe to Real-Debrid",
|
||||
@ -230,7 +230,7 @@
|
||||
"download_count_one": "{{countFormatted}} download option",
|
||||
"download_count_other": "{{countFormatted}} download options",
|
||||
"download_source_url": "Download source URL",
|
||||
"add_download_source_description": "Insert the URL containing the .json file",
|
||||
"add_download_source_description": "Insert the URL of the .json file",
|
||||
"download_source_up_to_date": "Up-to-date",
|
||||
"download_source_errored": "Errored",
|
||||
"sync_download_sources": "Sync sources",
|
||||
@ -249,11 +249,11 @@
|
||||
"profile_visibility": "Profile visibility",
|
||||
"profile_visibility_description": "Choose who can see your profile and library",
|
||||
"required_field": "This field is required",
|
||||
"source_already_exists": "This source has been already added",
|
||||
"source_already_exists": "This source has already been added",
|
||||
"must_be_valid_url": "The source must be a valid URL",
|
||||
"blocked_users": "Blocked users",
|
||||
"user_unblocked": "User has been unblocked",
|
||||
"enable_achievement_notifications": "When an achievement in unlocked",
|
||||
"enable_achievement_notifications": "When an achievement is unlocked",
|
||||
"launch_minimized": "Launch Hydra minimized"
|
||||
},
|
||||
"notifications": {
|
||||
@ -289,7 +289,7 @@
|
||||
"amount_hours": "{{amount}} hours",
|
||||
"amount_minutes": "{{amount}} minutes",
|
||||
"last_time_played": "Last played {{period}}",
|
||||
"activity": "Recent activity",
|
||||
"activity": "Recent Activity",
|
||||
"library": "Library",
|
||||
"total_play_time": "Total playtime: {{amount}}",
|
||||
"no_recent_activity_title": "Hmmm… nothing here",
|
||||
@ -328,7 +328,7 @@
|
||||
"user_block_modal_text": "This will block {{displayName}}",
|
||||
"blocked_users": "Blocked users",
|
||||
"unblock": "Unblock",
|
||||
"no_friends_added": "You still don't have added friends",
|
||||
"no_friends_added": "You have no added friends",
|
||||
"pending": "Pending",
|
||||
"no_pending_invites": "You have no pending invites",
|
||||
"no_blocked_users": "You have no blocked users",
|
||||
|
@ -47,7 +47,7 @@ export class WindowManager {
|
||||
minWidth: 1024,
|
||||
minHeight: 540,
|
||||
backgroundColor: "#1c1c1c",
|
||||
titleBarStyle: process.platform === "win32" ? "hidden" : "default",
|
||||
titleBarStyle: process.platform === "linux" ? "default" : "hidden",
|
||||
...(process.platform === "linux" ? { icon } : {}),
|
||||
trafficLightPosition: { x: 16, y: 16 },
|
||||
titleBarOverlay: {
|
||||
|
@ -5,6 +5,8 @@ import { workerData } from "node:worker_threads";
|
||||
|
||||
const { binaryPath } = workerData;
|
||||
|
||||
let backupGameProcess: cp.ChildProcess | null = null;
|
||||
|
||||
export const backupGame = ({
|
||||
title,
|
||||
backupPath,
|
||||
@ -16,15 +18,32 @@ export const backupGame = ({
|
||||
preview?: boolean;
|
||||
winePrefix?: string;
|
||||
}) => {
|
||||
const args = ["backup", title, "--api", "--force"];
|
||||
if (backupGameProcess && !backupGameProcess.killed) {
|
||||
backupGameProcess.kill();
|
||||
backupGameProcess = null;
|
||||
}
|
||||
|
||||
if (preview) args.push("--preview");
|
||||
if (backupPath) args.push("--path", backupPath);
|
||||
if (winePrefix) args.push("--wine-prefix", winePrefix);
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = ["backup", title, "--api", "--force"];
|
||||
|
||||
const result = cp.execFileSync(binaryPath, args);
|
||||
if (preview) args.push("--preview");
|
||||
if (backupPath) args.push("--path", backupPath);
|
||||
if (winePrefix) args.push("--wine-prefix", winePrefix);
|
||||
|
||||
return JSON.parse(result.toString("utf-8")) as LudusaviBackup;
|
||||
backupGameProcess = cp.execFile(
|
||||
binaryPath,
|
||||
args,
|
||||
(err: cp.ExecFileException | null, stdout: string) => {
|
||||
if (err) {
|
||||
backupGameProcess = null;
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
backupGameProcess = null;
|
||||
return resolve(JSON.parse(stdout) as LudusaviBackup);
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
export const restoreBackup = (backupPath: string) => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { useCallback, useContext, useEffect, useRef, useState } from "react";
|
||||
import { useCallback, useContext, useEffect, useRef } from "react";
|
||||
|
||||
import { Sidebar, BottomPanel, Header, Toast } from "@renderer/components";
|
||||
|
||||
@ -29,11 +29,6 @@ import { UserFriendModal } from "./pages/shared-modals/user-friend-modal";
|
||||
import { downloadSourcesWorker } from "./workers";
|
||||
import { repacksContext } from "./context";
|
||||
import { logger } from "./logger";
|
||||
import { SubscriptionTourModal } from "./pages/shared-modals/subscription-tour-modal";
|
||||
|
||||
interface TourModals {
|
||||
subscriptionModal?: boolean;
|
||||
}
|
||||
|
||||
export interface AppProps {
|
||||
children: React.ReactNode;
|
||||
@ -77,9 +72,6 @@ export function App() {
|
||||
|
||||
const { showSuccessToast } = useToast();
|
||||
|
||||
const [showSubscritionTourModal, setShowSubscritionTourModal] =
|
||||
useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
Promise.all([window.electron.getUserPreferences(), updateLibrary()]).then(
|
||||
([preferences]) => {
|
||||
@ -125,16 +117,6 @@ export function App() {
|
||||
});
|
||||
}, [fetchUserDetails, syncFriendRequests, updateUserDetails, dispatch]);
|
||||
|
||||
useEffect(() => {
|
||||
const tourModalsString = window.localStorage.getItem("tourModals") || "{}";
|
||||
|
||||
const tourModals = JSON.parse(tourModalsString) as TourModals;
|
||||
|
||||
if (!tourModals.subscriptionModal) {
|
||||
setShowSubscritionTourModal(true);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const onSignIn = useCallback(() => {
|
||||
fetchUserDetails().then((response) => {
|
||||
if (response) {
|
||||
@ -280,14 +262,6 @@ export function App() {
|
||||
});
|
||||
}, [indexRepacks]);
|
||||
|
||||
const handleCloseSubscriptionTourModal = () => {
|
||||
setShowSubscritionTourModal(false);
|
||||
window.localStorage.setItem(
|
||||
"tourModals",
|
||||
JSON.stringify({ subscriptionModal: true } as TourModals)
|
||||
);
|
||||
};
|
||||
|
||||
const handleToastClose = useCallback(() => {
|
||||
dispatch(closeToast());
|
||||
}, [dispatch]);
|
||||
@ -307,11 +281,6 @@ export function App() {
|
||||
onClose={handleToastClose}
|
||||
/>
|
||||
|
||||
<SubscriptionTourModal
|
||||
visible={showSubscritionTourModal && false}
|
||||
onClose={handleCloseSubscriptionTourModal}
|
||||
/>
|
||||
|
||||
{userDetails && (
|
||||
<UserFriendModal
|
||||
visible={isFriendsModalVisible}
|
||||
|
BIN
src/renderer/src/assets/icons/cloud-animated.gif
Normal file
BIN
src/renderer/src/assets/icons/cloud-animated.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
BIN
src/renderer/src/assets/icons/flame-animated.gif
Normal file
BIN
src/renderer/src/assets/icons/flame-animated.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 229 KiB |
BIN
src/renderer/src/assets/icons/flame-static.png
Normal file
BIN
src/renderer/src/assets/icons/flame-static.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
BIN
src/renderer/src/assets/icons/stars-animated.gif
Normal file
BIN
src/renderer/src/assets/icons/stars-animated.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
@ -1,725 +0,0 @@
|
||||
{
|
||||
"v": "5.12.1",
|
||||
"fr": 30,
|
||||
"ip": 0,
|
||||
"op": 60,
|
||||
"w": 400,
|
||||
"h": 400,
|
||||
"nm": "Cloud",
|
||||
"ddd": 0,
|
||||
"assets": [],
|
||||
"layers": [
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 2,
|
||||
"ty": 4,
|
||||
"nm": "Layer 6",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 0,
|
||||
"s": [322.789, 202.565, 0],
|
||||
"to": [-1.5, -0.167, 0],
|
||||
"ti": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 30,
|
||||
"s": [313.789, 201.565, 0],
|
||||
"to": [0, 0, 0],
|
||||
"ti": [-1.5, -0.167, 0]
|
||||
},
|
||||
{ "t": 60, "s": [322.789, 202.565, 0] }
|
||||
],
|
||||
"ix": 2,
|
||||
"l": 2
|
||||
},
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, -38.564],
|
||||
[38.564, 0],
|
||||
[0, 38.564],
|
||||
[-38.564, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 38.564],
|
||||
[-38.564, 0],
|
||||
[0, -38.564],
|
||||
[38.564, 0]
|
||||
],
|
||||
"v": [
|
||||
[69.827, 0],
|
||||
[0, 69.827],
|
||||
[-69.827, 0],
|
||||
[0, -69.827]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": {
|
||||
"a": 0,
|
||||
"k": [0.839215686275, 0.854901960784, 0.933333333333, 1],
|
||||
"ix": 4
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"ct": 1,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 3,
|
||||
"ty": 4,
|
||||
"nm": "Layer 5",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 0,
|
||||
"s": [243.704, 202.565, 0],
|
||||
"to": [-1.667, 0, 0],
|
||||
"ti": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 30,
|
||||
"s": [233.704, 202.565, 0],
|
||||
"to": [0, 0, 0],
|
||||
"ti": [-1.667, 0, 0]
|
||||
},
|
||||
{ "t": 60, "s": [243.704, 202.565, 0] }
|
||||
],
|
||||
"ix": 2,
|
||||
"l": 2
|
||||
},
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, -38.564],
|
||||
[38.564, 0],
|
||||
[0, 38.564],
|
||||
[-38.564, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 38.564],
|
||||
[-38.564, 0],
|
||||
[0, -38.564],
|
||||
[38.564, 0]
|
||||
],
|
||||
"v": [
|
||||
[69.827, 0],
|
||||
[0, 69.827],
|
||||
[-69.827, 0],
|
||||
[0, -69.827]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": {
|
||||
"a": 0,
|
||||
"k": [0.839215686275, 0.854901960784, 0.933333333333, 1],
|
||||
"ix": 4
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"ct": 1,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 4,
|
||||
"ty": 4,
|
||||
"nm": "Layer 4",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 0,
|
||||
"s": [260.681, 151.053, 0],
|
||||
"to": [1.333, -1.333, 0],
|
||||
"ti": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 30,
|
||||
"s": [268.681, 143.053, 0],
|
||||
"to": [0, 0, 0],
|
||||
"ti": [1.333, -1.333, 0]
|
||||
},
|
||||
{ "t": 60, "s": [260.681, 151.053, 0] }
|
||||
],
|
||||
"ix": 2,
|
||||
"l": 2
|
||||
},
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, -38.564],
|
||||
[38.564, 0],
|
||||
[0, 38.564],
|
||||
[-38.564, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 38.564],
|
||||
[-38.564, 0],
|
||||
[0, -38.564],
|
||||
[38.564, 0]
|
||||
],
|
||||
"v": [
|
||||
[69.827, 0],
|
||||
[0, 69.827],
|
||||
[-69.827, 0],
|
||||
[0, -69.827]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": {
|
||||
"a": 0,
|
||||
"k": [0.839215686275, 0.854901960784, 0.933333333333, 1],
|
||||
"ix": 4
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"ct": 1,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 5,
|
||||
"ty": 4,
|
||||
"nm": "Layer 3",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 0,
|
||||
"s": [162.135, 206.563, 0],
|
||||
"to": [-0.833, -0.167, 0],
|
||||
"ti": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 30,
|
||||
"s": [157.135, 205.563, 0],
|
||||
"to": [0, 0, 0],
|
||||
"ti": [-0.833, -0.167, 0]
|
||||
},
|
||||
{ "t": 60, "s": [162.135, 206.563, 0] }
|
||||
],
|
||||
"ix": 2,
|
||||
"l": 2
|
||||
},
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, -36.66],
|
||||
[36.66, 0],
|
||||
[0, 36.66],
|
||||
[-36.66, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 36.66],
|
||||
[-36.66, 0],
|
||||
[0, -36.66],
|
||||
[36.66, 0]
|
||||
],
|
||||
"v": [
|
||||
[66.378, 0],
|
||||
[0, 66.378],
|
||||
[-66.378, 0],
|
||||
[0, -66.378]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": {
|
||||
"a": 0,
|
||||
"k": [0.839215686275, 0.854901960784, 0.933333333333, 1],
|
||||
"ix": 4
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"ct": 1,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 6,
|
||||
"ty": 4,
|
||||
"nm": "Layer 2",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 0,
|
||||
"s": [180.178, 132.225, 0],
|
||||
"to": [-0.5, -2.333, 0],
|
||||
"ti": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 30,
|
||||
"s": [177.178, 118.225, 0],
|
||||
"to": [0, 0, 0],
|
||||
"ti": [-0.5, -2.333, 0]
|
||||
},
|
||||
{ "t": 60, "s": [180.178, 132.225, 0] }
|
||||
],
|
||||
"ix": 2,
|
||||
"l": 2
|
||||
},
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, -50.068],
|
||||
[50.068, 0],
|
||||
[0, 50.068],
|
||||
[-50.068, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 50.068],
|
||||
[-50.068, 0],
|
||||
[0, -50.068],
|
||||
[50.068, 0]
|
||||
],
|
||||
"v": [
|
||||
[90.655, 0],
|
||||
[0, 90.655],
|
||||
[-90.655, 0],
|
||||
[0, -90.655]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": {
|
||||
"a": 0,
|
||||
"k": [0.839215686275, 0.854901960784, 0.933333333333, 1],
|
||||
"ix": 4
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"ct": 1,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 7,
|
||||
"ty": 4,
|
||||
"nm": "Layer 1",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 0,
|
||||
"s": [95.756, 208.288, 0],
|
||||
"to": [-1.167, 0, 0],
|
||||
"ti": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"i": { "x": 0.667, "y": 1 },
|
||||
"o": { "x": 0.333, "y": 0 },
|
||||
"t": 30,
|
||||
"s": [88.756, 208.288, 0],
|
||||
"to": [0, 0, 0],
|
||||
"ti": [-1.167, 0, 0]
|
||||
},
|
||||
{ "t": 60, "s": [95.756, 208.288, 0] }
|
||||
],
|
||||
"ix": 2,
|
||||
"l": 2
|
||||
},
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, -35.403],
|
||||
[35.403, 0],
|
||||
[0, 35.403],
|
||||
[-35.403, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 35.403],
|
||||
[-35.403, 0],
|
||||
[0, -35.403],
|
||||
[35.403, 0]
|
||||
],
|
||||
"v": [
|
||||
[64.103, 0],
|
||||
[0, 64.103],
|
||||
[-64.103, 0],
|
||||
[0, -64.103]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": {
|
||||
"a": 0,
|
||||
"k": [0.839215686275, 0.854901960784, 0.933333333333, 1],
|
||||
"ix": 4
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"ct": 1,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 8,
|
||||
"ty": 3,
|
||||
"nm": "Null 1",
|
||||
"parent": 6,
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 0, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": { "a": 0, "k": [19.822, 67.775, 0], "ix": 2, "l": 2 },
|
||||
"a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"ip": 0,
|
||||
"op": 270,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
}
|
||||
],
|
||||
"markers": [],
|
||||
"props": {}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,928 +0,0 @@
|
||||
{
|
||||
"v": "4.8.0",
|
||||
"meta": { "g": "LottieFiles AE 3.5.6", "a": "", "k": "", "d": "", "tc": "" },
|
||||
"fr": 60,
|
||||
"ip": 0,
|
||||
"op": 120,
|
||||
"w": 300,
|
||||
"h": 300,
|
||||
"nm": "Comp 1",
|
||||
"ddd": 0,
|
||||
"assets": [
|
||||
{
|
||||
"id": "comp_0",
|
||||
"layers": [
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 1,
|
||||
"ty": 5,
|
||||
"nm": "3",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.055], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 0,
|
||||
"s": [0]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0.055], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 30,
|
||||
"s": [8]
|
||||
},
|
||||
{ "t": 60, "s": [0] }
|
||||
],
|
||||
"ix": 10
|
||||
},
|
||||
"p": { "a": 0, "k": [930, 525, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [16.605, -23.904, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [170, 170, 100], "ix": 6 }
|
||||
},
|
||||
"ao": 0,
|
||||
"hasMask": true,
|
||||
"masksProperties": [
|
||||
{
|
||||
"inv": false,
|
||||
"mode": "a",
|
||||
"pt": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[14.987, -34.426],
|
||||
[9.105, -30.309],
|
||||
[9.987, -22.073],
|
||||
[17.487, -16.779],
|
||||
[24.105, -23.544],
|
||||
[22.193, -30.603]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 1
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 3 },
|
||||
"x": { "a": 0, "k": 0, "ix": 4 },
|
||||
"nm": "Mask 1"
|
||||
}
|
||||
],
|
||||
"ef": [
|
||||
{
|
||||
"ty": 21,
|
||||
"nm": "Fill",
|
||||
"np": 9,
|
||||
"mn": "ADBE Fill",
|
||||
"ix": 1,
|
||||
"en": 1,
|
||||
"ef": [
|
||||
{
|
||||
"ty": 10,
|
||||
"nm": "Fill Mask",
|
||||
"mn": "ADBE Fill-0001",
|
||||
"ix": 1,
|
||||
"v": { "a": 0, "k": 0, "ix": 1 }
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "All Masks",
|
||||
"mn": "ADBE Fill-0007",
|
||||
"ix": 2,
|
||||
"v": { "a": 0, "k": 0, "ix": 2 }
|
||||
},
|
||||
{
|
||||
"ty": 2,
|
||||
"nm": "Color",
|
||||
"mn": "ADBE Fill-0002",
|
||||
"ix": 3,
|
||||
"v": {
|
||||
"a": 0,
|
||||
"k": [0.992156863213, 0.880375564098, 0.128396704793, 1],
|
||||
"ix": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "Invert",
|
||||
"mn": "ADBE Fill-0006",
|
||||
"ix": 4,
|
||||
"v": { "a": 0, "k": 0, "ix": 4 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Horizontal Feather",
|
||||
"mn": "ADBE Fill-0003",
|
||||
"ix": 5,
|
||||
"v": { "a": 0, "k": 0, "ix": 5 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Vertical Feather",
|
||||
"mn": "ADBE Fill-0004",
|
||||
"ix": 6,
|
||||
"v": { "a": 0, "k": 0, "ix": 6 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Opacity",
|
||||
"mn": "ADBE Fill-0005",
|
||||
"ix": 7,
|
||||
"v": { "a": 0, "k": 1, "ix": 7 }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"t": {
|
||||
"d": {
|
||||
"k": [
|
||||
{
|
||||
"s": {
|
||||
"s": 40,
|
||||
"f": "SegoeUIEmoji",
|
||||
"t": "✨",
|
||||
"j": 0,
|
||||
"tr": 0,
|
||||
"lh": 48,
|
||||
"ls": 0,
|
||||
"fc": [1, 1, 1]
|
||||
},
|
||||
"t": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"p": {},
|
||||
"m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } },
|
||||
"a": []
|
||||
},
|
||||
"ip": 0,
|
||||
"op": 123,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 2,
|
||||
"ty": 5,
|
||||
"nm": "2",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.055], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 0,
|
||||
"s": [0]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0.055], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 30,
|
||||
"s": [-8]
|
||||
},
|
||||
{ "t": 60, "s": [0] }
|
||||
],
|
||||
"ix": 10
|
||||
},
|
||||
"p": { "a": 0, "k": [960, 540, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [31.912, -13.397, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [170, 170, 100], "ix": 6 }
|
||||
},
|
||||
"ao": 0,
|
||||
"hasMask": true,
|
||||
"masksProperties": [
|
||||
{
|
||||
"inv": false,
|
||||
"mode": "a",
|
||||
"pt": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[31.31, -34.72],
|
||||
[24.546, -22.514],
|
||||
[16.605, -16.485],
|
||||
[17.046, -11.338],
|
||||
[21.163, -7.073],
|
||||
[27.487, -0.309],
|
||||
[33.663, 10.133],
|
||||
[47.634, -1.926],
|
||||
[51.31, -12.073]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 1
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 3 },
|
||||
"x": { "a": 0, "k": 0, "ix": 4 },
|
||||
"nm": "Mask 1"
|
||||
}
|
||||
],
|
||||
"ef": [
|
||||
{
|
||||
"ty": 21,
|
||||
"nm": "Fill",
|
||||
"np": 9,
|
||||
"mn": "ADBE Fill",
|
||||
"ix": 1,
|
||||
"en": 1,
|
||||
"ef": [
|
||||
{
|
||||
"ty": 10,
|
||||
"nm": "Fill Mask",
|
||||
"mn": "ADBE Fill-0001",
|
||||
"ix": 1,
|
||||
"v": { "a": 0, "k": 0, "ix": 1 }
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "All Masks",
|
||||
"mn": "ADBE Fill-0007",
|
||||
"ix": 2,
|
||||
"v": { "a": 0, "k": 0, "ix": 2 }
|
||||
},
|
||||
{
|
||||
"ty": 2,
|
||||
"nm": "Color",
|
||||
"mn": "ADBE Fill-0002",
|
||||
"ix": 3,
|
||||
"v": {
|
||||
"a": 0,
|
||||
"k": [0.992156863213, 0.880375564098, 0.128396704793, 1],
|
||||
"ix": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "Invert",
|
||||
"mn": "ADBE Fill-0006",
|
||||
"ix": 4,
|
||||
"v": { "a": 0, "k": 0, "ix": 4 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Horizontal Feather",
|
||||
"mn": "ADBE Fill-0003",
|
||||
"ix": 5,
|
||||
"v": { "a": 0, "k": 0, "ix": 5 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Vertical Feather",
|
||||
"mn": "ADBE Fill-0004",
|
||||
"ix": 6,
|
||||
"v": { "a": 0, "k": 0, "ix": 6 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Opacity",
|
||||
"mn": "ADBE Fill-0005",
|
||||
"ix": 7,
|
||||
"v": { "a": 0, "k": 1, "ix": 7 }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"t": {
|
||||
"d": {
|
||||
"k": [
|
||||
{
|
||||
"s": {
|
||||
"s": 40,
|
||||
"f": "SegoeUIEmoji",
|
||||
"t": "✨",
|
||||
"j": 0,
|
||||
"tr": 0,
|
||||
"lh": 48,
|
||||
"ls": 0,
|
||||
"fc": [1, 1, 1]
|
||||
},
|
||||
"t": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"p": {},
|
||||
"m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } },
|
||||
"a": []
|
||||
},
|
||||
"ip": 0,
|
||||
"op": 123,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 3,
|
||||
"ty": 5,
|
||||
"nm": "✨",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.055], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 0,
|
||||
"s": [0]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0.055], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 30,
|
||||
"s": [8]
|
||||
},
|
||||
{ "t": 60, "s": [0] }
|
||||
],
|
||||
"ix": 10
|
||||
},
|
||||
"p": { "a": 0, "k": [935, 560, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [14.973, -6.64, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [170, 170, 100], "ix": 6 }
|
||||
},
|
||||
"ao": 0,
|
||||
"hasMask": true,
|
||||
"masksProperties": [
|
||||
{
|
||||
"inv": false,
|
||||
"mode": "a",
|
||||
"pt": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[13.957, -17.514],
|
||||
[2.928, -9.132],
|
||||
[2.487, 1.603],
|
||||
[14.105, 7.339],
|
||||
[21.605, -0.161],
|
||||
[22.193, -5.161],
|
||||
[17.34, -10.014]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 1
|
||||
},
|
||||
"o": { "a": 0, "k": 100, "ix": 3 },
|
||||
"x": { "a": 0, "k": 0, "ix": 4 },
|
||||
"nm": "Mask 1"
|
||||
}
|
||||
],
|
||||
"ef": [
|
||||
{
|
||||
"ty": 21,
|
||||
"nm": "Fill",
|
||||
"np": 9,
|
||||
"mn": "ADBE Fill",
|
||||
"ix": 1,
|
||||
"en": 1,
|
||||
"ef": [
|
||||
{
|
||||
"ty": 10,
|
||||
"nm": "Fill Mask",
|
||||
"mn": "ADBE Fill-0001",
|
||||
"ix": 1,
|
||||
"v": { "a": 0, "k": 0, "ix": 1 }
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "All Masks",
|
||||
"mn": "ADBE Fill-0007",
|
||||
"ix": 2,
|
||||
"v": { "a": 0, "k": 0, "ix": 2 }
|
||||
},
|
||||
{
|
||||
"ty": 2,
|
||||
"nm": "Color",
|
||||
"mn": "ADBE Fill-0002",
|
||||
"ix": 3,
|
||||
"v": {
|
||||
"a": 0,
|
||||
"k": [0.992156863213, 0.880375564098, 0.128396704793, 1],
|
||||
"ix": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "Invert",
|
||||
"mn": "ADBE Fill-0006",
|
||||
"ix": 4,
|
||||
"v": { "a": 0, "k": 0, "ix": 4 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Horizontal Feather",
|
||||
"mn": "ADBE Fill-0003",
|
||||
"ix": 5,
|
||||
"v": { "a": 0, "k": 0, "ix": 5 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Vertical Feather",
|
||||
"mn": "ADBE Fill-0004",
|
||||
"ix": 6,
|
||||
"v": { "a": 0, "k": 0, "ix": 6 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Opacity",
|
||||
"mn": "ADBE Fill-0005",
|
||||
"ix": 7,
|
||||
"v": { "a": 0, "k": 1, "ix": 7 }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"t": {
|
||||
"d": {
|
||||
"k": [
|
||||
{
|
||||
"s": {
|
||||
"s": 40,
|
||||
"f": "SegoeUIEmoji",
|
||||
"t": "✨",
|
||||
"j": 0,
|
||||
"tr": 0,
|
||||
"lh": 48,
|
||||
"ls": 0,
|
||||
"fc": [1, 1, 1]
|
||||
},
|
||||
"t": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"p": {},
|
||||
"m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } },
|
||||
"a": []
|
||||
},
|
||||
"ip": 0,
|
||||
"op": 123,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fonts": {
|
||||
"list": [
|
||||
{
|
||||
"fName": "SegoeUIEmoji",
|
||||
"fFamily": "Segoe UI Emoji",
|
||||
"fStyle": "Regular",
|
||||
"ascent": 74.0234375
|
||||
}
|
||||
]
|
||||
},
|
||||
"layers": [
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 1,
|
||||
"ty": 0,
|
||||
"nm": "botão",
|
||||
"refId": "comp_0",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": { "a": 0, "k": 100, "ix": 11 },
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": { "a": 0, "k": [155, 154, 0], "ix": 2 },
|
||||
"a": { "a": 0, "k": [960, 540, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6 }
|
||||
},
|
||||
"ao": 0,
|
||||
"ef": [
|
||||
{
|
||||
"ty": 25,
|
||||
"nm": "Drop Shadow",
|
||||
"np": 8,
|
||||
"mn": "ADBE Drop Shadow",
|
||||
"ix": 1,
|
||||
"en": 1,
|
||||
"ef": [
|
||||
{
|
||||
"ty": 2,
|
||||
"nm": "Shadow Color",
|
||||
"mn": "ADBE Drop Shadow-0001",
|
||||
"ix": 1,
|
||||
"v": {
|
||||
"a": 0,
|
||||
"k": [1, 0.829733371735, 0.414901971817, 1],
|
||||
"ix": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Opacity",
|
||||
"mn": "ADBE Drop Shadow-0002",
|
||||
"ix": 2,
|
||||
"v": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 0,
|
||||
"s": [127.5]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 15,
|
||||
"s": [204]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 30,
|
||||
"s": [127.5]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 45,
|
||||
"s": [204]
|
||||
},
|
||||
{ "t": 70, "s": [76.5] }
|
||||
],
|
||||
"ix": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Direction",
|
||||
"mn": "ADBE Drop Shadow-0003",
|
||||
"ix": 3,
|
||||
"v": { "a": 0, "k": 135, "ix": 3 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Distance",
|
||||
"mn": "ADBE Drop Shadow-0004",
|
||||
"ix": 4,
|
||||
"v": { "a": 0, "k": 0, "ix": 4 }
|
||||
},
|
||||
{
|
||||
"ty": 0,
|
||||
"nm": "Softness",
|
||||
"mn": "ADBE Drop Shadow-0005",
|
||||
"ix": 5,
|
||||
"v": { "a": 0, "k": 40, "ix": 5 }
|
||||
},
|
||||
{
|
||||
"ty": 7,
|
||||
"nm": "Shadow Only",
|
||||
"mn": "ADBE Drop Shadow-0006",
|
||||
"ix": 6,
|
||||
"v": { "a": 0, "k": 0, "ix": 6 }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"w": 1920,
|
||||
"h": 1080,
|
||||
"ip": 0,
|
||||
"op": 120,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
}
|
||||
],
|
||||
"markers": [],
|
||||
"chars": [
|
||||
{
|
||||
"ch": "✨",
|
||||
"size": 40,
|
||||
"style": "Regular",
|
||||
"w": 137.3,
|
||||
"data": {
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0.423, 1.042],
|
||||
[0, 0],
|
||||
[0.7, 0],
|
||||
[0.293, -0.618],
|
||||
[0, 0],
|
||||
[1.041, -0.488],
|
||||
[0, 0],
|
||||
[0, -0.684],
|
||||
[-0.652, -0.293],
|
||||
[0, 0],
|
||||
[-0.423, -1.041],
|
||||
[0, 0],
|
||||
[-0.716, 0],
|
||||
[-0.293, 0.619],
|
||||
[0, 0],
|
||||
[-1.042, 0.488],
|
||||
[0, 0],
|
||||
[0, 0.684],
|
||||
[0.618, 0.293],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[-0.326, -0.618],
|
||||
[-0.7, 0],
|
||||
[0, 0],
|
||||
[-0.456, 1.009],
|
||||
[0, 0],
|
||||
[-0.652, 0.293],
|
||||
[0, 0.684],
|
||||
[0, 0],
|
||||
[1.074, 0.456],
|
||||
[0, 0],
|
||||
[0.293, 0.619],
|
||||
[0.716, 0],
|
||||
[0, 0],
|
||||
[0.455, -1.009],
|
||||
[0, 0],
|
||||
[0.618, -0.293],
|
||||
[0, -0.684],
|
||||
[0, 0],
|
||||
[-1.074, -0.455]
|
||||
],
|
||||
"v": [
|
||||
[47.119, -68.994],
|
||||
[43.799, -76.562],
|
||||
[42.261, -77.49],
|
||||
[40.771, -76.562],
|
||||
[37.402, -68.994],
|
||||
[35.156, -66.748],
|
||||
[30.908, -64.893],
|
||||
[29.932, -63.428],
|
||||
[30.908, -61.963],
|
||||
[35.156, -60.107],
|
||||
[37.402, -57.861],
|
||||
[40.771, -50.244],
|
||||
[42.285, -49.316],
|
||||
[43.799, -50.244],
|
||||
[47.119, -57.861],
|
||||
[49.365, -60.107],
|
||||
[53.662, -61.963],
|
||||
[54.59, -63.428],
|
||||
[53.662, -64.893],
|
||||
[49.365, -66.748]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "✨",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ind": 1,
|
||||
"ty": "sh",
|
||||
"ix": 2,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[1.334, 3.223],
|
||||
[0, 0],
|
||||
[1.204, 0.423],
|
||||
[1.204, -0.423],
|
||||
[0.618, -1.237],
|
||||
[0, 0],
|
||||
[3.125, -1.432],
|
||||
[0, 0],
|
||||
[0.423, -1.221],
|
||||
[-0.423, -1.221],
|
||||
[-1.27, -0.618],
|
||||
[0, 0],
|
||||
[-1.335, -3.223],
|
||||
[0, 0],
|
||||
[-1.205, -0.407],
|
||||
[-1.205, 0.407],
|
||||
[-0.619, 1.27],
|
||||
[0, 0],
|
||||
[-3.125, 1.433],
|
||||
[0, 0],
|
||||
[-0.423, 1.221],
|
||||
[0.423, 1.221],
|
||||
[1.27, 0.619],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[-0.619, -1.237],
|
||||
[-1.205, -0.423],
|
||||
[-1.205, 0.423],
|
||||
[0, 0],
|
||||
[-1.367, 3.223],
|
||||
[0, 0],
|
||||
[-1.27, 0.619],
|
||||
[-0.423, 1.221],
|
||||
[0.423, 1.221],
|
||||
[0, 0],
|
||||
[3.157, 1.433],
|
||||
[0, 0],
|
||||
[0.618, 1.27],
|
||||
[1.204, 0.407],
|
||||
[1.204, -0.407],
|
||||
[0, 0],
|
||||
[1.367, -3.223],
|
||||
[0, 0],
|
||||
[1.27, -0.618],
|
||||
[0.423, -1.221],
|
||||
[-0.423, -1.221],
|
||||
[0, 0],
|
||||
[-3.158, -1.432]
|
||||
],
|
||||
"v": [
|
||||
[95.605, -50.83],
|
||||
[85.498, -74.658],
|
||||
[82.764, -77.148],
|
||||
[79.15, -77.148],
|
||||
[76.416, -74.658],
|
||||
[66.357, -50.83],
|
||||
[59.619, -43.848],
|
||||
[46.875, -38.086],
|
||||
[44.336, -35.327],
|
||||
[44.336, -31.665],
|
||||
[46.875, -28.906],
|
||||
[59.619, -23.145],
|
||||
[66.357, -16.162],
|
||||
[76.416, 7.666],
|
||||
[79.15, 10.181],
|
||||
[82.764, 10.181],
|
||||
[85.498, 7.666],
|
||||
[95.605, -16.162],
|
||||
[102.344, -23.145],
|
||||
[115.088, -28.906],
|
||||
[117.627, -31.665],
|
||||
[117.627, -35.327],
|
||||
[115.088, -38.086],
|
||||
[102.344, -43.848]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "✨",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ind": 2,
|
||||
"ty": "sh",
|
||||
"ix": 3,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[-1.367, -0.651],
|
||||
[0, 0],
|
||||
[0, -0.928],
|
||||
[0.813, -0.423],
|
||||
[0, 0],
|
||||
[0.586, -1.399],
|
||||
[0, 0],
|
||||
[0.895, 0],
|
||||
[0.391, 0.846],
|
||||
[0, 0],
|
||||
[1.334, 0.652],
|
||||
[0, 0],
|
||||
[0, 0.928],
|
||||
[-0.814, 0.423],
|
||||
[0, 0],
|
||||
[-0.586, 1.4],
|
||||
[0, 0],
|
||||
[-0.896, 0],
|
||||
[-0.391, -0.846],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0.813, 0.423],
|
||||
[0, 0.928],
|
||||
[0, 0],
|
||||
[-1.335, 0.652],
|
||||
[0, 0],
|
||||
[-0.391, 0.846],
|
||||
[-0.896, 0],
|
||||
[0, 0],
|
||||
[-0.586, -1.399],
|
||||
[0, 0],
|
||||
[-0.814, -0.423],
|
||||
[0, -0.928],
|
||||
[0, 0],
|
||||
[1.334, -0.651],
|
||||
[0, 0],
|
||||
[0.391, -0.846],
|
||||
[0.895, 0],
|
||||
[0, 0],
|
||||
[0.553, 1.4]
|
||||
],
|
||||
"v": [
|
||||
[44.385, -16.943],
|
||||
[49.854, -14.404],
|
||||
[51.074, -12.378],
|
||||
[49.854, -10.352],
|
||||
[44.385, -7.812],
|
||||
[41.504, -4.736],
|
||||
[37.158, 5.713],
|
||||
[35.229, 6.982],
|
||||
[33.301, 5.713],
|
||||
[28.955, -4.736],
|
||||
[26.074, -7.812],
|
||||
[20.605, -10.352],
|
||||
[19.385, -12.378],
|
||||
[20.605, -14.404],
|
||||
[26.074, -16.943],
|
||||
[28.955, -20.02],
|
||||
[33.301, -30.469],
|
||||
[35.229, -31.738],
|
||||
[37.158, -30.469],
|
||||
[41.504, -20.02]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "✨",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"nm": "✨",
|
||||
"np": 6,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"fFamily": "Segoe UI Emoji"
|
||||
}
|
||||
]
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
import { style } from "@vanilla-extract/css";
|
||||
|
||||
import { vars } from "../../theme.css";
|
||||
|
||||
export const profileAvatar = style({
|
||||
borderRadius: "4px",
|
||||
display: "flex",
|
||||
justifyContent: "center",
|
||||
alignItems: "center",
|
||||
backgroundColor: vars.color.background,
|
||||
border: `solid 1px ${vars.color.border}`,
|
||||
cursor: "pointer",
|
||||
color: vars.color.muted,
|
||||
position: "relative",
|
||||
});
|
||||
|
||||
export const profileAvatarImage = style({
|
||||
height: "100%",
|
||||
width: "100%",
|
||||
objectFit: "cover",
|
||||
overflow: "hidden",
|
||||
borderRadius: "4px",
|
||||
});
|
21
src/renderer/src/components/avatar/avatar.scss
Normal file
21
src/renderer/src/components/avatar/avatar.scss
Normal file
@ -0,0 +1,21 @@
|
||||
@use "../../scss/globals.scss";
|
||||
|
||||
.profile-avatar {
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: globals.$background-color;
|
||||
border: solid 1px globals.$border-color;
|
||||
cursor: pointer;
|
||||
color: globals.$muted-color;
|
||||
position: relative;
|
||||
|
||||
&__image {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
object-fit: cover;
|
||||
overflow: hidden;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
import { PersonIcon } from "@primer/octicons-react";
|
||||
|
||||
import * as styles from "./avatar.css";
|
||||
import "./avatar.scss";
|
||||
|
||||
export interface AvatarProps
|
||||
extends Omit<
|
||||
@ -16,14 +16,9 @@ export interface AvatarProps
|
||||
|
||||
export function Avatar({ size, alt, src, ...props }: AvatarProps) {
|
||||
return (
|
||||
<div className={styles.profileAvatar} style={{ width: size, height: size }}>
|
||||
<div className="profile-avatar" style={{ width: size, height: size }}>
|
||||
{src ? (
|
||||
<img
|
||||
className={styles.profileAvatarImage}
|
||||
alt={alt}
|
||||
src={src}
|
||||
{...props}
|
||||
/>
|
||||
<img className="profile-avatar__image" alt={alt} src={src} {...props} />
|
||||
) : (
|
||||
<PersonIcon size={size * 0.7} />
|
||||
)}
|
||||
|
@ -1,69 +0,0 @@
|
||||
import { style, styleVariants } from "@vanilla-extract/css";
|
||||
import { SPACING_UNIT, vars } from "../../theme.css";
|
||||
|
||||
const base = style({
|
||||
padding: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px`,
|
||||
backgroundColor: vars.color.muted,
|
||||
borderRadius: "8px",
|
||||
border: "solid 1px transparent",
|
||||
transition: "all ease 0.2s",
|
||||
cursor: "pointer",
|
||||
minHeight: "40px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
gap: `${SPACING_UNIT}px`,
|
||||
":active": {
|
||||
opacity: vars.opacity.active,
|
||||
},
|
||||
":disabled": {
|
||||
opacity: vars.opacity.disabled,
|
||||
cursor: "not-allowed",
|
||||
},
|
||||
});
|
||||
|
||||
export const button = styleVariants({
|
||||
primary: [
|
||||
base,
|
||||
{
|
||||
":hover": {
|
||||
backgroundColor: "#DADBE1",
|
||||
},
|
||||
":disabled": {
|
||||
backgroundColor: vars.color.muted,
|
||||
},
|
||||
},
|
||||
],
|
||||
outline: [
|
||||
base,
|
||||
{
|
||||
backgroundColor: "transparent",
|
||||
border: `solid 1px ${vars.color.border}`,
|
||||
color: vars.color.muted,
|
||||
":hover": {
|
||||
backgroundColor: "rgba(255, 255, 255, 0.1)",
|
||||
},
|
||||
":disabled": {
|
||||
backgroundColor: "transparent",
|
||||
},
|
||||
},
|
||||
],
|
||||
dark: [
|
||||
base,
|
||||
{
|
||||
backgroundColor: vars.color.darkBackground,
|
||||
color: "#c0c1c7",
|
||||
},
|
||||
],
|
||||
danger: [
|
||||
base,
|
||||
{
|
||||
borderColor: "transparent",
|
||||
backgroundColor: "#a31533",
|
||||
color: "#c0c1c7",
|
||||
":hover": {
|
||||
backgroundColor: "#b3203f",
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
63
src/renderer/src/components/button/button.scss
Normal file
63
src/renderer/src/components/button/button.scss
Normal file
@ -0,0 +1,63 @@
|
||||
@use "../../scss/globals.scss";
|
||||
|
||||
.button {
|
||||
padding: globals.$spacing-unit globals.$spacing-unit * 2;
|
||||
background-color: globals.$muted-color;
|
||||
border-radius: 8px;
|
||||
border: solid 1px transparent;
|
||||
transition: all ease 0.2s;
|
||||
cursor: pointer;
|
||||
min-height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: globals.$spacing-unit;
|
||||
|
||||
&:active {
|
||||
opacity: globals.$active-opacity;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
opacity: globals.$disabled-opacity;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
&--primary {
|
||||
&:hover {
|
||||
background-color: #dadbe1;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
background-color: globals.$muted-color;
|
||||
}
|
||||
}
|
||||
|
||||
&--outline {
|
||||
background-color: transparent;
|
||||
border: solid 1px globals.$border-color;
|
||||
color: globals.$muted-color;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
&--dark {
|
||||
background-color: globals.$dark-background-color;
|
||||
color: globals.$muted-color;
|
||||
}
|
||||
|
||||
&--danger {
|
||||
border-color: transparent;
|
||||
background-color: globals.$danger-color;
|
||||
color: globals.$muted-color;
|
||||
|
||||
&:hover {
|
||||
background-color: #b3203f;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,12 +1,13 @@
|
||||
import cn from "classnames";
|
||||
import * as styles from "./button.css";
|
||||
|
||||
import "./button.scss";
|
||||
|
||||
export interface ButtonProps
|
||||
extends React.DetailedHTMLProps<
|
||||
React.ButtonHTMLAttributes<HTMLButtonElement>,
|
||||
HTMLButtonElement
|
||||
> {
|
||||
theme?: keyof typeof styles.button;
|
||||
theme?: "primary" | "outline" | "dark" | "danger";
|
||||
}
|
||||
|
||||
export function Button({
|
||||
@ -18,7 +19,7 @@ export function Button({
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
className={cn(styles.button[theme], className)}
|
||||
className={cn("button", `button--${theme}`, className)}
|
||||
{...props}
|
||||
>
|
||||
{children}
|
||||
|
@ -1,18 +0,0 @@
|
||||
import Lottie from "lottie-react";
|
||||
|
||||
import downloadingAnimation from "@renderer/assets/lottie/downloading.json";
|
||||
|
||||
export interface DownloadIconProps {
|
||||
isDownloading: boolean;
|
||||
}
|
||||
|
||||
export function DownloadIcon({ isDownloading }: DownloadIconProps) {
|
||||
return (
|
||||
<Lottie
|
||||
animationData={downloadingAnimation}
|
||||
loop={isDownloading}
|
||||
autoplay={isDownloading}
|
||||
style={{ width: 16 }}
|
||||
/>
|
||||
);
|
||||
}
|
@ -1,6 +1,9 @@
|
||||
import { AppsIcon, GearIcon, HomeIcon } from "@primer/octicons-react";
|
||||
|
||||
import { DownloadIcon } from "./download-icon";
|
||||
import {
|
||||
AppsIcon,
|
||||
DownloadIcon,
|
||||
GearIcon,
|
||||
HomeIcon,
|
||||
} from "@primer/octicons-react";
|
||||
|
||||
export const routes = [
|
||||
{
|
||||
@ -16,9 +19,7 @@ export const routes = [
|
||||
{
|
||||
path: "/downloads",
|
||||
nameKey: "downloads",
|
||||
render: (isDownloading: boolean) => (
|
||||
<DownloadIcon isDownloading={isDownloading} />
|
||||
),
|
||||
render: () => <DownloadIcon />,
|
||||
},
|
||||
{
|
||||
path: "/settings",
|
||||
|
@ -50,10 +50,6 @@ export function Sidebar() {
|
||||
updateLibrary();
|
||||
}, [lastPacket?.game.id, updateLibrary]);
|
||||
|
||||
const isDownloading = sortedLibrary.some(
|
||||
(game) => game.status === "active" && game.progress !== 1
|
||||
);
|
||||
|
||||
const sidebarRef = useRef<HTMLElement>(null);
|
||||
|
||||
const cursorPos = useRef({ x: 0 });
|
||||
@ -187,7 +183,7 @@ export function Sidebar() {
|
||||
className={styles.menuItemButton}
|
||||
onClick={() => handleSidebarItemClick(path)}
|
||||
>
|
||||
{render(isDownloading)}
|
||||
{render()}
|
||||
<span>{t(nameKey)}</span>
|
||||
</button>
|
||||
</li>
|
||||
|
@ -20,7 +20,6 @@ import { store } from "./store";
|
||||
|
||||
import resources from "@locales";
|
||||
|
||||
import "./workers";
|
||||
import { RepacksContextProvider } from "./context";
|
||||
import { SuspenseWrapper } from "./components";
|
||||
|
||||
|
@ -11,9 +11,8 @@ import * as styles from "./game-details.css";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { cloudSyncContext, gameDetailsContext } from "@renderer/context";
|
||||
import { steamUrlBuilder } from "@shared";
|
||||
import Lottie from "lottie-react";
|
||||
|
||||
import cloudAnimation from "@renderer/assets/lottie/cloud.json";
|
||||
import cloudIconAnimated from "@renderer/assets/icons/cloud-animated.gif";
|
||||
import { useUserDetails } from "@renderer/hooks";
|
||||
|
||||
const HERO_ANIMATION_THRESHOLD = 25;
|
||||
@ -165,10 +164,9 @@ export function GameDetailsContent() {
|
||||
position: "relative",
|
||||
}}
|
||||
>
|
||||
<Lottie
|
||||
animationData={cloudAnimation}
|
||||
loop={false}
|
||||
autoplay
|
||||
<img
|
||||
src={cloudIconAnimated}
|
||||
alt="Cloud icon"
|
||||
style={{ width: 26, position: "absolute", top: -3 }}
|
||||
/>
|
||||
</div>
|
||||
|
@ -6,9 +6,8 @@ import type { GameRepack, GameShop, Steam250Game } from "@types";
|
||||
import { Button, ConfirmationModal } from "@renderer/components";
|
||||
import { buildGameDetailsPath } from "@renderer/helpers";
|
||||
|
||||
import starsAnimation from "@renderer/assets/lottie/stars.json";
|
||||
import starsIconAnimated from "@renderer/assets/icons/stars-animated.gif";
|
||||
|
||||
import Lottie from "lottie-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { SkeletonTheme } from "react-loading-skeleton";
|
||||
import { GameDetailsSkeleton } from "./game-details-skeleton";
|
||||
@ -194,15 +193,15 @@ export default function GameDetails() {
|
||||
<div
|
||||
style={{ width: 16, height: 16, position: "relative" }}
|
||||
>
|
||||
<Lottie
|
||||
animationData={starsAnimation}
|
||||
<img
|
||||
src={starsIconAnimated}
|
||||
alt="Stars animation"
|
||||
style={{
|
||||
width: 70,
|
||||
position: "absolute",
|
||||
top: -28,
|
||||
left: -27,
|
||||
}}
|
||||
loop={false}
|
||||
/>
|
||||
</div>
|
||||
{t("next_suggestion")}
|
||||
|
@ -1,4 +1,9 @@
|
||||
import { GearIcon, PlayIcon, PlusCircleIcon } from "@primer/octicons-react";
|
||||
import {
|
||||
DownloadIcon,
|
||||
GearIcon,
|
||||
PlayIcon,
|
||||
PlusCircleIcon,
|
||||
} from "@primer/octicons-react";
|
||||
import { Button } from "@renderer/components";
|
||||
import { useDownload, useLibrary } from "@renderer/hooks";
|
||||
import { useContext, useState } from "react";
|
||||
@ -6,7 +11,6 @@ import { useTranslation } from "react-i18next";
|
||||
import * as styles from "./hero-panel-actions.css";
|
||||
|
||||
import { gameDetailsContext } from "@renderer/context";
|
||||
import { DownloadIcon } from "@renderer/components/sidebar/download-icon";
|
||||
|
||||
export function HeroPanelActions() {
|
||||
const [toggleLibraryGameDisabled, setToggleLibraryGameDisabled] =
|
||||
@ -125,7 +129,7 @@ export function HeroPanelActions() {
|
||||
disabled={isGameDownloading || !repacks.length}
|
||||
className={styles.heroPanelAction}
|
||||
>
|
||||
<DownloadIcon isDownloading={false} />
|
||||
<DownloadIcon />
|
||||
{t("download")}
|
||||
</Button>
|
||||
);
|
||||
|
@ -68,3 +68,10 @@ export const buttonsList = style({
|
||||
padding: "0",
|
||||
gap: `${SPACING_UNIT}px`,
|
||||
});
|
||||
|
||||
export const flameIcon = style({
|
||||
width: "30px",
|
||||
top: "-10px",
|
||||
left: "-5px",
|
||||
position: "absolute",
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { useCallback, useEffect, useRef, useState } from "react";
|
||||
import { useCallback, useEffect, useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
|
||||
@ -7,12 +7,12 @@ import Skeleton, { SkeletonTheme } from "react-loading-skeleton";
|
||||
import { Button, GameCard, Hero } from "@renderer/components";
|
||||
import type { Steam250Game, CatalogueEntry } from "@types";
|
||||
|
||||
import starsAnimation from "@renderer/assets/lottie/stars.json";
|
||||
import flameAnimation from "@renderer/assets/lottie/flame.json";
|
||||
import flameIconStatic from "@renderer/assets/icons/flame-static.png";
|
||||
import flameIconAnimated from "@renderer/assets/icons/flame-animated.gif";
|
||||
import starsIconAnimated from "@renderer/assets/icons/stars-animated.gif";
|
||||
|
||||
import * as styles from "./home.css";
|
||||
import { SPACING_UNIT, vars } from "@renderer/theme.css";
|
||||
import Lottie, { type LottieRefCurrentProps } from "lottie-react";
|
||||
import { buildGameDetailsPath } from "@renderer/helpers";
|
||||
import { CatalogueCategory } from "@shared";
|
||||
|
||||
@ -20,8 +20,7 @@ export default function Home() {
|
||||
const { t } = useTranslation("home");
|
||||
const navigate = useNavigate();
|
||||
|
||||
const flameAnimationRef = useRef<LottieRefCurrentProps>(null);
|
||||
|
||||
const [animateFlame, setAnimateFlame] = useState(false);
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [randomGame, setRandomGame] = useState<Steam250Game | null>(null);
|
||||
|
||||
@ -88,13 +87,13 @@ export default function Home() {
|
||||
|
||||
const handleMouseEnterCategory = (category: CatalogueCategory) => {
|
||||
if (category === CatalogueCategory.Hot) {
|
||||
flameAnimationRef?.current?.play();
|
||||
setAnimateFlame(true);
|
||||
}
|
||||
};
|
||||
|
||||
const handleMouseLeaveCategory = (category: CatalogueCategory) => {
|
||||
if (category === CatalogueCategory.Hot) {
|
||||
flameAnimationRef?.current?.stop();
|
||||
setAnimateFlame(false);
|
||||
}
|
||||
};
|
||||
|
||||
@ -123,17 +122,17 @@ export default function Home() {
|
||||
<div
|
||||
style={{ width: 16, height: 16, position: "relative" }}
|
||||
>
|
||||
<Lottie
|
||||
lottieRef={flameAnimationRef}
|
||||
animationData={flameAnimation}
|
||||
loop={false}
|
||||
autoplay={false}
|
||||
style={{
|
||||
width: 30,
|
||||
top: -10,
|
||||
left: -5,
|
||||
position: "absolute",
|
||||
}}
|
||||
<img
|
||||
src={flameIconStatic}
|
||||
alt="Flame icon"
|
||||
className={styles.flameIcon}
|
||||
style={{ display: animateFlame ? "none" : "block" }}
|
||||
/>
|
||||
<img
|
||||
src={flameIconAnimated}
|
||||
alt="Flame animation"
|
||||
className={styles.flameIcon}
|
||||
style={{ display: animateFlame ? "block" : "none" }}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
@ -150,10 +149,10 @@ export default function Home() {
|
||||
disabled={!randomGame}
|
||||
>
|
||||
<div style={{ width: 16, height: 16, position: "relative" }}>
|
||||
<Lottie
|
||||
animationData={starsAnimation}
|
||||
<img
|
||||
src={starsIconAnimated}
|
||||
alt="Stars animation"
|
||||
style={{ width: 70, position: "absolute", top: -28, left: -27 }}
|
||||
loop={false}
|
||||
/>
|
||||
</div>
|
||||
{t("surprise_me")}
|
||||
@ -163,10 +162,9 @@ export default function Home() {
|
||||
<h2 style={{ display: "flex", gap: SPACING_UNIT }}>
|
||||
{currentCatalogueCategory === CatalogueCategory.Hot && (
|
||||
<div style={{ width: 24, height: 24, position: "relative" }}>
|
||||
<Lottie
|
||||
animationData={flameAnimation}
|
||||
loop={false}
|
||||
autoplay
|
||||
<img
|
||||
src={flameIconAnimated}
|
||||
alt="Flame animation"
|
||||
style={{
|
||||
width: 40,
|
||||
top: -10,
|
||||
|
@ -1,75 +0,0 @@
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Button, Modal } from "../../components";
|
||||
import { SPACING_UNIT } from "../../theme.css";
|
||||
|
||||
export interface UserFriendsModalProps {
|
||||
visible: boolean;
|
||||
onClose: () => void;
|
||||
}
|
||||
|
||||
export const SubscriptionTourModal = ({
|
||||
visible,
|
||||
onClose,
|
||||
}: UserFriendsModalProps) => {
|
||||
const { t } = useTranslation("tour");
|
||||
|
||||
const handleSubscribeClick = () => {
|
||||
window.electron.openCheckout().finally(onClose);
|
||||
};
|
||||
|
||||
return (
|
||||
<Modal
|
||||
visible={visible}
|
||||
title={t("subscription_tour_title")}
|
||||
onClose={onClose}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
gap: `${SPACING_UNIT * 2}px`,
|
||||
}}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flexDirection: "row",
|
||||
gap: `${SPACING_UNIT * 2}px`,
|
||||
justifyContent: "space-around",
|
||||
}}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
gap: `${SPACING_UNIT * 2}px`,
|
||||
}}
|
||||
>
|
||||
<h2>Hydra Cloud</h2>
|
||||
<ul style={{ margin: "0", padding: "0" }}>
|
||||
<li style={{ margin: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px` }}>
|
||||
{t("cloud_saving")}
|
||||
</li>
|
||||
<li style={{ margin: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px` }}>
|
||||
{t("cloud_achievements")}
|
||||
</li>
|
||||
<li style={{ margin: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px` }}>
|
||||
{t("show_and_compare_achievements")}
|
||||
</li>
|
||||
<li style={{ margin: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px` }}>
|
||||
{t("animated_profile_banner")}
|
||||
</li>
|
||||
<li style={{ margin: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px` }}>
|
||||
{t("animated_profile_picture")}
|
||||
</li>
|
||||
<li style={{ margin: `${SPACING_UNIT}px ${SPACING_UNIT * 2}px` }}>
|
||||
{t("premium_support")}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<Button onClick={handleSubscribeClick}>{t("subscribe_now")}</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
};
|
@ -101,6 +101,7 @@ export const UserFriendModalAddFriend = ({
|
||||
>
|
||||
{isAddingFriend ? t("sending") : t("add")}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
onClick={handleClickSeeProfile}
|
||||
disabled={isAddingFriend}
|
||||
|
15
src/renderer/src/scss/globals.scss
Normal file
15
src/renderer/src/scss/globals.scss
Normal file
@ -0,0 +1,15 @@
|
||||
$background-color: #1c1c1c;
|
||||
$dark-background-color: #151515;
|
||||
|
||||
$muted-color: #c0c1c7;
|
||||
$body-color: #8e919b;
|
||||
|
||||
$border-color: #424244;
|
||||
$success-color: #1c9749;
|
||||
$danger-color: #e11d48;
|
||||
$warning-color: #ffc107;
|
||||
|
||||
$disabled-opacity: 0.5;
|
||||
$active-opacity: 0.7;
|
||||
|
||||
$spacing-unit: 8px;
|
190
yarn.lock
190
yarn.lock
@ -536,6 +536,11 @@
|
||||
"@babel/helper-validator-identifier" "^7.24.7"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@bufbuild/protobuf@^2.0.0":
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.2.2.tgz#1a6d89603fb215dc4d4178052d05b30b83c75402"
|
||||
integrity sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A==
|
||||
|
||||
"@canvas/image-data@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/@canvas/image-data/-/image-data-1.0.0.tgz"
|
||||
@ -3334,6 +3339,11 @@ browserslist@^4.22.2, browserslist@^4.23.1:
|
||||
node-releases "^2.0.18"
|
||||
update-browserslist-db "^1.1.0"
|
||||
|
||||
buffer-builder@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-builder/-/buffer-builder-0.2.0.tgz#3322cd307d8296dab1f604618593b261a3fade8f"
|
||||
integrity sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==
|
||||
|
||||
buffer-crc32@~0.2.3:
|
||||
version "0.2.13"
|
||||
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||
@ -3667,6 +3677,11 @@ colorette@2.0.19:
|
||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
|
||||
integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
|
||||
|
||||
colorjs.io@^0.5.0:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/colorjs.io/-/colorjs.io-0.5.2.tgz#63b20139b007591ebc3359932bef84628eb3fcef"
|
||||
integrity sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==
|
||||
|
||||
combined-stream@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||
@ -5360,6 +5375,11 @@ immer@^10.0.3:
|
||||
resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.1.tgz#206f344ea372d8ea176891545ee53ccc062db7bc"
|
||||
integrity sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.3.7"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381"
|
||||
integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==
|
||||
|
||||
import-fresh@^3.2.1, import-fresh@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
||||
@ -6125,18 +6145,6 @@ loose-envify@^1.1.0, loose-envify@^1.4.0:
|
||||
dependencies:
|
||||
js-tokens "^3.0.0 || ^4.0.0"
|
||||
|
||||
lottie-react@^2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/lottie-react/-/lottie-react-2.4.0.tgz#f7249eee2b1deee70457a2d142194fdf2456e4bd"
|
||||
integrity sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w==
|
||||
dependencies:
|
||||
lottie-web "^5.10.2"
|
||||
|
||||
lottie-web@^5.10.2:
|
||||
version "5.12.2"
|
||||
resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.12.2.tgz#579ca9fe6d3fd9e352571edd3c0be162492f68e5"
|
||||
integrity sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==
|
||||
|
||||
lower-case@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
|
||||
@ -7432,6 +7440,13 @@ run-parallel@^1.1.9:
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
rxjs@^7.4.0:
|
||||
version "7.8.1"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
|
||||
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
safe-array-concat@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb"
|
||||
@ -7468,6 +7483,140 @@ sanitize-filename@^1.6.3:
|
||||
dependencies:
|
||||
truncate-utf8-bytes "^1.0.0"
|
||||
|
||||
sass-embedded-android-arm64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.80.6.tgz#748df1f7deabea3a81c2c647661d9696090e1b81"
|
||||
integrity sha512-4rC4ZGM/k4ENVjLXnK3JTst8e8FI9MHSol2Fl7dCdYyJ3KLnlt4qL4AEYfU8zq1tcBb7CBOSZVR+CzCKubnXdg==
|
||||
|
||||
sass-embedded-android-arm@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.80.6.tgz#1fa2e08e5b2a77709f6e8cb8186c801ee140c0a9"
|
||||
integrity sha512-UeUKMTRsnz4/dh7IzvhjONxa4/jmVp539CHDd8VZOsqg9M3HcNJNIkUzQWbuwZ+nSlWrTuo7Tvn3XlypopCBzw==
|
||||
|
||||
sass-embedded-android-ia32@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.80.6.tgz#43674c98454a3adb5da3cca0ba23340128bfbdff"
|
||||
integrity sha512-Lxz2SXE2KdHnynuHF+D6flDvrd55/zaEAWUeka9MxEr6FmR66d8UBOIy5ETwCSUd//S/SE5Jl6oTnHppgD1zNA==
|
||||
|
||||
sass-embedded-android-riscv64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.80.6.tgz#59c9d53b1c800b53221d56cf55d9cf84b4418bac"
|
||||
integrity sha512-hKdxY/oOqB+JJhSoBTDM5DJO1j/xtxQgayh2cLCCUx37IQQe3SEdc3V2JFf/4mIo5peaS4cjqwwSATF+l2zaXg==
|
||||
|
||||
sass-embedded-android-x64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.80.6.tgz#a06a9f55f904c3ba628a3ae03c244f134f4f2bb1"
|
||||
integrity sha512-Eap2Fi3kTx/rVLBsOnOp5RYPr5+lFjTZ652zR24dmYFe9/sDgasakJIOPjOvD2bRuL9z0uWEY1AXVeeOPeZKrg==
|
||||
|
||||
sass-embedded-darwin-arm64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.80.6.tgz#81a7019c92a8c8f76f7f98dfe15f6adfaf621e92"
|
||||
integrity sha512-0mnAx8Vq6Gxj3PQt3imgITfK33hhqrSKpyHSuab71gZZni5opsdtoggq2JawW+1taRFTEZwbZJLKZ0MBDbwCCA==
|
||||
|
||||
sass-embedded-darwin-x64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.80.6.tgz#d1b551443930658bfa4cc92ca026d4b22023ce9d"
|
||||
integrity sha512-Ib20yNZFOrJ7YVT+ltoe+JQNKPcRclM3iLAK69XZZYcSeFM/72SCoQBAaVGIpT23dxDp7FXiE4lO602c3xTRwQ==
|
||||
|
||||
sass-embedded-linux-arm64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.80.6.tgz#fe6255bbbe55590fb6405f098431b3841221a1b0"
|
||||
integrity sha512-n5r98pBXawrQQKaxIYCMM1zDpnngsqxTkOrmvsYLFiAMCSbR0lWf/7sBB33k/Pm0D6dsbp3jpHilCoQNKI3jIw==
|
||||
|
||||
sass-embedded-linux-arm@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.80.6.tgz#a6603b1ec087762a1128e836fd36851050b537b4"
|
||||
integrity sha512-QR0Q6TZox/ThuU2r9c0s3fKCgU2rXAEocpitdgxFp6tta+GsQlMFV3oON2unAa8Bwnuxkmf0YOaK0Oy/TwzkXw==
|
||||
|
||||
sass-embedded-linux-ia32@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.80.6.tgz#bedb53348f7e384ceabc9e0158b086045779af07"
|
||||
integrity sha512-O6dWZdcOkryRdDCxVMGOeVowgblpDgVcAuRtZ1F1X7XfbpDriTQm64D+9vVZIrywYSPoJfQMJJ662cr0wUs9IQ==
|
||||
|
||||
sass-embedded-linux-musl-arm64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.80.6.tgz#0f0e0bb68c90f0ae920d9a06760241f3f58c7a76"
|
||||
integrity sha512-VeUSHUi3MAsvOlg9QI4X/2j04h1659aE+7qKP/282CYBTrGkjFGSXZhIki9WKWDgIpDiSInRYXfQQRWhPhjCDg==
|
||||
|
||||
sass-embedded-linux-musl-arm@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.80.6.tgz#41039f857684ee3470ec9e0d310add5f6f1b694d"
|
||||
integrity sha512-X9FC8s8fvQGRiXc+eATlZ57N44Iq3nNa0M0ugi3ysdJwkaNYvOeS4QzBHKQAaw3QiTqdxTnLUHHVBkyzdCi9pw==
|
||||
|
||||
sass-embedded-linux-musl-ia32@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.80.6.tgz#8ff88c78ba3503a19d59c5b8fa172fdea00a67f8"
|
||||
integrity sha512-GqitS2Nab8ah0+wfCqaxW1hnI1piC08FimL6+lM9YWK5DbCOOF82IapbvJOy0feUmd/wNnHmyNTgE9h0zVMFdQ==
|
||||
|
||||
sass-embedded-linux-musl-riscv64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.80.6.tgz#aaa086a6ce9718d0fd7cbe584c0f2bf81bef3122"
|
||||
integrity sha512-ySs15z7QSRRQK/aByEEqaJLYW/sTpfynefNPZCtsVNVEzNRwy+DRpxNChtxo+QjKq97ocXETbdG5KLik7QOTJg==
|
||||
|
||||
sass-embedded-linux-musl-x64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.80.6.tgz#ea0bb093837be3b6f473b9a1b5d09c4633f8e504"
|
||||
integrity sha512-DzeNqU/SN0mWFznoOH4RtVGcrg3Eoa41pUQhKMtrhNbCmIE1zNDunUiAEVTNpdHJF4nxf7ELUPXWmStM31CbUQ==
|
||||
|
||||
sass-embedded-linux-riscv64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.80.6.tgz#bc19c15796a3b3a3d67ea626058b3bab48344b1d"
|
||||
integrity sha512-AyoHJ3icV9xuJjq1YzJqpEj2XfiC/KBkVYTUrCELKiXP0DN1gi/BpUwZNCAgCM3CyEdMef4LQM/ztCYJxYzdyg==
|
||||
|
||||
sass-embedded-linux-x64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.80.6.tgz#db076fdf0bc3c1382c8f73c8d396293b893b31ef"
|
||||
integrity sha512-EohsE9CEqx0ycylnsEj/0DNPG99Tb0qAVZspiAs5xHFCJjXOFfp3cRQu0BRf+lZ1b72IhPFXymzVtojvzUHb7g==
|
||||
|
||||
sass-embedded-win32-arm64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.80.6.tgz#e889c421b0b31e1297414dd89448385fe443d5e2"
|
||||
integrity sha512-29wETQi1ykeVvpd4zMVokpQKFSOZskGJzZawuuNCdo7BHjHKIRDsqbz8YT1CewHPBshI0hfD21fenmjxYjGXPQ==
|
||||
|
||||
sass-embedded-win32-ia32@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.80.6.tgz#0934f3598e4fbe701b5e4e4d2a1fa6ef952f7024"
|
||||
integrity sha512-1s3OpK2iTIfIL/a91QhAQnffsbuWfnsM8Lx4Fxt0f7ErnxjCV6q8MUFTV/UhcLtLyTFnPCA62DLjp2KGCjMI9A==
|
||||
|
||||
sass-embedded-win32-x64@1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.80.6.tgz#b7357b399c12cbb80dab2bee6f541b88a6015d76"
|
||||
integrity sha512-0pH4Zr9silHkcmLPC0ghnD3DI0vMsjA7dKvGR32/RbbjOSvHV5cDQRLiuVJAPp34dfMA7kJd1ysSchRdH0igAQ==
|
||||
|
||||
sass-embedded@^1.80.6:
|
||||
version "1.80.6"
|
||||
resolved "https://registry.yarnpkg.com/sass-embedded/-/sass-embedded-1.80.6.tgz#efd66c12c7f117c2dcb558e8bf6bd00cc5cd49b2"
|
||||
integrity sha512-Og4aqBnaA3oJfIpHaLuNATAqzBRgUJDYJy2X15V59cot2wYOtiT/ciPnyuq1o7vpDEeOkHhEd+mSviSlXoETug==
|
||||
dependencies:
|
||||
"@bufbuild/protobuf" "^2.0.0"
|
||||
buffer-builder "^0.2.0"
|
||||
colorjs.io "^0.5.0"
|
||||
immutable "^4.0.0"
|
||||
rxjs "^7.4.0"
|
||||
supports-color "^8.1.1"
|
||||
varint "^6.0.0"
|
||||
optionalDependencies:
|
||||
sass-embedded-android-arm "1.80.6"
|
||||
sass-embedded-android-arm64 "1.80.6"
|
||||
sass-embedded-android-ia32 "1.80.6"
|
||||
sass-embedded-android-riscv64 "1.80.6"
|
||||
sass-embedded-android-x64 "1.80.6"
|
||||
sass-embedded-darwin-arm64 "1.80.6"
|
||||
sass-embedded-darwin-x64 "1.80.6"
|
||||
sass-embedded-linux-arm "1.80.6"
|
||||
sass-embedded-linux-arm64 "1.80.6"
|
||||
sass-embedded-linux-ia32 "1.80.6"
|
||||
sass-embedded-linux-musl-arm "1.80.6"
|
||||
sass-embedded-linux-musl-arm64 "1.80.6"
|
||||
sass-embedded-linux-musl-ia32 "1.80.6"
|
||||
sass-embedded-linux-musl-riscv64 "1.80.6"
|
||||
sass-embedded-linux-musl-x64 "1.80.6"
|
||||
sass-embedded-linux-riscv64 "1.80.6"
|
||||
sass-embedded-linux-x64 "1.80.6"
|
||||
sass-embedded-win32-arm64 "1.80.6"
|
||||
sass-embedded-win32-ia32 "1.80.6"
|
||||
sass-embedded-win32-x64 "1.80.6"
|
||||
|
||||
sax@^1.2.4:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
|
||||
@ -7866,6 +8015,13 @@ supports-color@^7.1.0:
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-color@^8.1.1:
|
||||
version "8.1.1"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
||||
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-preserve-symlinks-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||
@ -8101,6 +8257,11 @@ tslib@^2.0.3, tslib@^2.5.0, tslib@^2.6.2:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
|
||||
integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
|
||||
|
||||
tslib@^2.1.0:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
|
||||
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||
@ -8336,6 +8497,11 @@ v8-compile-cache-lib@^3.0.1:
|
||||
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
|
||||
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
|
||||
|
||||
varint@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0"
|
||||
integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==
|
||||
|
||||
verror@^1.10.0:
|
||||
version "1.10.1"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb"
|
||||
|
Loading…
Reference in New Issue
Block a user