- {
- features.map((feature) => (
-
- ))
- }
+
+
Core Features & Values
+
+ {
+ features.map((feature) => (
+
+ ))
+ }
+
diff --git a/web/src/sections/Introduction.astro b/web/src/sections/Introduction.astro
index e09e27d..61ce57b 100644
--- a/web/src/sections/Introduction.astro
+++ b/web/src/sections/Introduction.astro
@@ -1,5 +1,9 @@
+---
+import Heading from "@/components/Heading.astro";
+---
+
-
The next generation motion design tool
+
The Next Generation Open Motion Design Tool
We believe tools for expressing yourself should be accessible to
everybody. Not constrained to proprietary operating systems or monthly
diff --git a/web/src/sections/Landing.astro b/web/src/sections/Landing.astro
index 056d0b3..dd2ecbe 100644
--- a/web/src/sections/Landing.astro
+++ b/web/src/sections/Landing.astro
@@ -4,22 +4,21 @@ import Button from "@/components/Button.astro";
-
+
-
tempblade Creator
-
+
+ tempblade Creator
+
+
Rust Based Open Source Motion Design Editor & Toolkit
Explore now!
diff --git a/web/src/sections/bg-voronoi.ts b/web/src/sections/bg-voronoi.ts
new file mode 100644
index 0000000..affdd2b
--- /dev/null
+++ b/web/src/sections/bg-voronoi.ts
@@ -0,0 +1,95 @@
+interface Point {
+ x: number;
+ y: number;
+ color: string;
+}
+
+interface VoronoiCell {
+ site: Point;
+ vertices: Point[];
+}
+
+function generateVoronoiPattern(
+ canvas: HTMLCanvasElement,
+ points: Array
+) {
+ const ctx = canvas.getContext("2d");
+
+ if (ctx) {
+ // Draw Voronoi regions
+ for (let x = 0; x < canvas.width; x++) {
+ for (let y = 0; y < canvas.height; y++) {
+ let closestPointIndex = 0;
+ let closestDistance = distance(x, y, points[0].x, points[0].y);
+
+ for (let i = 1; i < points.length; i++) {
+ const dist = distance(x, y, points[i].x, points[i].y);
+ if (dist < closestDistance) {
+ closestDistance = dist;
+ closestPointIndex = i;
+ }
+ }
+
+ const { x: px, y: py, color } = points[closestPointIndex];
+ ctx.fillStyle = color;
+ ctx.fillRect(x, y, 1, 1);
+ }
+ }
+ }
+}
+
+function distance(x1: number, y1: number, x2: number, y2: number) {
+ const dx = x2 - x1;
+ const dy = y2 - y1;
+ return Math.sqrt(dx * dx + dy * dy);
+}
+
+// Get canvas element and generate Voronoi pattern
+const canvas = document.getElementById("landing-bg") as HTMLCanvasElement;
+
+
+const initialPoints: Array = [{
+ x: 200,
+ y: 200,
+ color: "#8AFFAD",
+},
+{
+ x: 800,
+ y: 500,
+ color: "#326CCC",
+},
+{
+ x: 1100,
+ y: 300,
+ color: "#95B2F5",
+},
+{
+ x: 1200,
+ y: 600,
+ color: "#32C3E3",
+},
+{
+ x: 300,
+ y: 900,
+ color: "purple",
+},]
+
+
+const draw = (time: number) => {
+ const radius = 200;
+
+ const angle = time % 360;
+
+ const radian = angle * (Math.PI / 180);
+
+ const x = Math.cos(radian) * radius;
+ const y = Math.sin(radian) * radius;
+
+ const points = initialPoints.map((p) => ({ ...p, x: p.x + x, y: p.y + y }));
+
+ generateVoronoiPattern(canvas, points);
+
+ //requestAnimationFrame(draw);
+}
+
+requestAnimationFrame(draw);
\ No newline at end of file
diff --git a/web/src/sections/bg.ts b/web/src/sections/bg.ts
index 6020d74..e598785 100644
--- a/web/src/sections/bg.ts
+++ b/web/src/sections/bg.ts
@@ -1,75 +1,126 @@
interface Point {
- x: number;
- y: number;
- color: string;
+ x: number;
+ y: number;
+ color: string;
+ radius: number;
}
-interface VoronoiCell {
- site: Point;
- vertices: Point[];
-}
-
-function generateVoronoiPattern(
- canvas: HTMLCanvasElement,
- points: Array
-) {
- const ctx = canvas.getContext("2d");
-
- if (ctx) {
- // Draw Voronoi regions
- for (let x = 0; x < canvas.width; x++) {
- for (let y = 0; y < canvas.height; y++) {
- let closestPointIndex = 0;
- let closestDistance = distance(x, y, points[0].x, points[0].y);
-
- for (let i = 1; i < points.length; i++) {
- const dist = distance(x, y, points[i].x, points[i].y);
- if (dist < closestDistance) {
- closestDistance = dist;
- closestPointIndex = i;
- }
- }
-
- const { x: px, y: py, color } = points[closestPointIndex];
- ctx.fillStyle = color;
- ctx.fillRect(x, y, 1, 1);
- }
- }
- }
-}
-
-function distance(x1: number, y1: number, x2: number, y2: number) {
- const dx = x2 - x1;
- const dy = y2 - y1;
- return Math.sqrt(dx * dx + dy * dy);
-}
-
-// Get canvas element and generate Voronoi pattern
const canvas = document.getElementById("landing-bg") as HTMLCanvasElement;
-generateVoronoiPattern(canvas, [
- {
- x: 200,
- y: 200,
+
+const initialPoints: Array = [{
+ x: 500,
+ y: 400,
color: "#8AFFAD",
- },
- {
- x: 800,
+ radius: Math.random() * 200
+},
+{
+ x: 900,
y: 500,
color: "#326CCC",
- },
- {
- x: 1100,
- y: 300,
+ radius: Math.random() * 200
+},
+{
+ x: 1600,
+ y: 400,
color: "#95B2F5",
- },
- {
+ radius: Math.random() * 200
+},
+{
x: 1200,
y: 600,
color: "#32C3E3",
- },
- {
- x: 300,
- y: 900,
+ radius: Math.random() * 200
+
+},
+{
+ x: 600,
+ y: 500,
+ color: "#8AFFAD",
+ radius: Math.random() * 200
+
+},
+{
+ x: 900,
+ y: 300,
color: "purple",
- },
-]);
+ radius: Math.random() * 200
+
+},
+]
+
+export class GradientBackground {
+ context: CanvasRenderingContext2D;
+
+ constructor(context: CanvasRenderingContext2D) {
+ this.context = context;
+ this.draw = this.draw.bind(this);
+
+ }
+
+ draw(time: number) {
+ const { width, height } = this.context.canvas;
+
+ this.context.clearRect(0, 0, width, height * 2);
+
+
+ this.context.save();
+
+ this.context.translate(width * 0.5, height * 0.5);
+
+
+ const angle = (time * 0.01) % 360;
+ const radian = angle * (Math.PI / 180);
+
+ this.context.rotate(radian);
+
+ this.context.translate(width * -0.5, height * -0.5);
+
+
+ initialPoints.forEach((point, index) => {
+ const { color, radius } = point;
+
+
+ // Calculate the position/angle on a circle by the time
+ const angle = time * 0.05 + index * 10 % 360;
+
+ // Convert the angle to radian
+ const radian = angle * (Math.PI / 180);
+
+ // Calculate the offset based on the radius
+ const offsetX = Math.cos(radian) * radius;
+ const offsetY = Math.sin(radian) * radius;
+
+ // Calculate the position based on offset and initial position
+ const x = offsetX + point.x;
+ const y = offsetY + point.y;
+
+ // Create the gradient
+ const gradient = this.context.createRadialGradient(x, y, 0, x, y, 700);
+
+ gradient.addColorStop(0, color);
+ gradient.addColorStop(1, "rgba(0,0,0,0)");
+
+ this.context.fillStyle = gradient;
+ this.context.globalCompositeOperation = "lighten";
+
+
+ // Draw a rect with the gradient
+ this.context.fillRect(0, 0, width, height);
+
+
+ })
+
+ this.context.restore();
+
+ return requestAnimationFrame(this.draw);
+ }
+}
+
+const ctx = canvas.getContext("2d");
+
+if (ctx) {
+ const bg = new GradientBackground(ctx);
+
+ requestAnimationFrame(bg.draw);
+}
+
diff --git a/web/src/styles/global.css b/web/src/styles/global.css
index bac0af2..0eceeb6 100644
--- a/web/src/styles/global.css
+++ b/web/src/styles/global.css
@@ -5,6 +5,7 @@
:root {
--color-main: 0 0% 0%;
+ --color-main: 0 0% 10%;
--color-primary: 0 0% 0%;
--color-neutral: 0 0% 100%;
--color-neutral-accent: 0 0% 93%;
@@ -17,12 +18,15 @@
--spacing-main: 20px;
+ --gap-card: 1rem;
+
--max-width-section: 100%;
}
@media (prefers-color-scheme: dark) {
:root {
--color-main: 0 0% 100%;
+ --color-secondary: 0 0% 80%;
--color-primary: 0 0% 0%;
--color-neutral: 264 100% 6%;
--color-neutral-accent: 271 100% 10%;
@@ -76,5 +80,9 @@ h4 {
}
p {
- @apply max-w-[600px];
+ @apply max-w-[600px] text-secondary;
}
+
+[astro-icon] {
+ fill: currentColor;
+}
\ No newline at end of file
diff --git a/web/yarn.lock b/web/yarn.lock
index e8cfc29..3337fc9 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -613,6 +613,11 @@
deepmerge "^4.2.2"
escalade "^3.1.1"
+"@trysound/sax@0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
+ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+
"@types/babel__core@^7.1.19":
version "7.20.1"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b"
@@ -808,6 +813,15 @@ array-iterate@^2.0.0:
resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-2.0.1.tgz#6efd43f8295b3fee06251d3d62ead4bd9805dd24"
integrity sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==
+astro-icon@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/astro-icon/-/astro-icon-0.8.1.tgz#2259640cea3818326957dfba66ae17aa43f1d3cb"
+ integrity sha512-APk+fbFnoyGdIVSPFrdrOW9YBK96/1fYuVe7ULTGW92+z00RKB8GfLJiUvzNVXUAX2rZJCFmruGVF4rrhcTYsg==
+ dependencies:
+ node-fetch "^3.1.0"
+ resolve-pkg "^2.0.0"
+ svgo "^2.8.0"
+
astro@^2.5.0:
version "2.6.4"
resolved "https://registry.yarnpkg.com/astro/-/astro-2.6.4.tgz#37880a65cca438971643fd6473e7fe8ae2578f11"
@@ -917,6 +931,11 @@ bl@^5.0.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
boxen@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d"
@@ -1135,6 +1154,11 @@ commander@^4.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+ integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
common-ancestor-path@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
@@ -1173,16 +1197,52 @@ css-color-converter@^2.0.0:
color-name "^1.1.4"
css-unit-converter "^1.1.2"
+css-select@^4.1.3:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
+ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.0.1"
+ domhandler "^4.3.1"
+ domutils "^2.8.0"
+ nth-check "^2.0.1"
+
+css-tree@^1.1.2, css-tree@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
css-unit-converter@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
+css-what@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+csso@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+ integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+ dependencies:
+ css-tree "^1.1.2"
+
+data-uri-to-buffer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e"
+ integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
+
debug@^4.0.0, debug@^4.1.0, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -1262,6 +1322,36 @@ dlv@^1.1.3:
resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+dom-serializer@^1.0.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
+ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.2.0"
+ entities "^2.0.0"
+
+domelementtype@^2.0.1, domelementtype@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
+domhandler@^4.2.0, domhandler@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+ dependencies:
+ domelementtype "^2.2.0"
+
+domutils@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+ dependencies:
+ dom-serializer "^1.0.1"
+ domelementtype "^2.2.0"
+ domhandler "^4.2.0"
+
dset@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a"
@@ -1295,6 +1385,11 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+entities@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
es-module-lexer@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f"
@@ -1433,6 +1528,14 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
+fetch-blob@^3.1.2, fetch-blob@^3.1.4:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
+ integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
+ dependencies:
+ node-domexception "^1.0.0"
+ web-streams-polyfill "^3.0.3"
+
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -1464,6 +1567,13 @@ find-yarn-workspace-root2@1.2.16:
micromatch "^4.0.2"
pkg-dir "^4.2.0"
+formdata-polyfill@^4.0.10:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
+ integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
+ dependencies:
+ fetch-blob "^3.1.2"
+
fraction.js@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
@@ -2080,6 +2190,11 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0:
dependencies:
"@types/mdast" "^3.0.0"
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -2436,6 +2551,20 @@ nlcst-to-string@^3.0.0:
dependencies:
"@types/nlcst" "^1.0.0"
+node-domexception@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
+ integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
+
+node-fetch@^3.1.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e"
+ integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==
+ dependencies:
+ data-uri-to-buffer "^4.0.0"
+ fetch-blob "^3.1.4"
+ formdata-polyfill "^4.0.10"
+
node-releases@^2.0.12:
version "2.0.12"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
@@ -2465,6 +2594,13 @@ npm-run-path@^5.1.0:
dependencies:
path-key "^4.0.0"
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ dependencies:
+ boolbase "^1.0.0"
+
object-assign@^4.0.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -2847,6 +2983,18 @@ remark-smartypants@^2.0.0:
retext-smartypants "^5.1.0"
unist-util-visit "^4.1.0"
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-2.0.0.tgz#ac06991418a7623edc119084edc98b0e6bf05a41"
+ integrity sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==
+ dependencies:
+ resolve-from "^5.0.0"
+
resolve@^1.1.7, resolve@^1.17.0, resolve@^1.22.2:
version "1.22.2"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
@@ -3020,6 +3168,11 @@ source-map-js@^1.0.2:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
space-separated-tokens@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f"
@@ -3030,6 +3183,11 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+stable@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+ integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
stdin-discarder@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21"
@@ -3160,6 +3318,19 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+svgo@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
+ integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
+ dependencies:
+ "@trysound/sax" "0.2.0"
+ commander "^7.2.0"
+ css-select "^4.1.3"
+ css-tree "^1.1.3"
+ csso "^4.2.0"
+ picocolors "^1.0.0"
+ stable "^0.1.8"
+
synckit@^0.8.4:
version "0.8.5"
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3"
@@ -3515,6 +3686,11 @@ web-namespaces@^2.0.0:
resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692"
integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==
+web-streams-polyfill@^3.0.3:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
+ integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
+
which-pm-runs@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35"