UI updates

This commit is contained in:
Michael Rausch
2025-10-11 21:06:21 +13:00
parent facc608d98
commit 237668fd31
16 changed files with 638 additions and 94 deletions
+47 -8
View File
@@ -27,6 +27,7 @@
"eslint": "^8.57.0",
"eslint-plugin-astro": "^0.32.0",
"eslint-plugin-jsx-a11y": "^6.8.0",
"gsap": "^3.13.0",
"rehype": "^13.0.2",
"sharp": "^0.33.3",
"tailwind-merge": "^2.2.2",
@@ -2170,9 +2171,18 @@
}
},
"node_modules/@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
"version": "24.7.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.1.tgz",
"integrity": "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.14.0"
}
},
"node_modules/@types/node/node_modules/undici-types": {
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz",
"integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==",
"license": "MIT"
},
"node_modules/@types/sax": {
@@ -5142,6 +5152,12 @@
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
},
"node_modules/gsap": {
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/gsap/-/gsap-3.13.0.tgz",
"integrity": "sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==",
"license": "Standard 'no charge' license: https://gsap.com/standard-license."
},
"node_modules/h3": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/h3/-/h3-1.13.1.tgz",
@@ -8149,16 +8165,17 @@
}
},
"node_modules/prettier": {
"version": "2.8.7",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"license": "MIT",
"optional": true,
"peer": true,
"bin": {
"prettier": "bin-prettier.js"
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=10.13.0"
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
@@ -8956,6 +8973,12 @@
"npm": ">=6.0.0"
}
},
"node_modules/sitemap/node_modules/@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
"license": "MIT"
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -10631,6 +10654,22 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/yaml-language-server/node_modules/prettier": {
"version": "2.8.7",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
"license": "MIT",
"optional": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/yaml-language-server/node_modules/request-light": {
"version": "0.5.8",
"resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz",
+1
View File
@@ -32,6 +32,7 @@
"eslint": "^8.57.0",
"eslint-plugin-astro": "^0.32.0",
"eslint-plugin-jsx-a11y": "^6.8.0",
"gsap": "^3.13.0",
"rehype": "^13.0.2",
"sharp": "^0.33.3",
"tailwind-merge": "^2.2.2",
+1 -1
View File
@@ -17,4 +17,4 @@
</script>
<span class="text-4xl" id="emoji">👋</span>
<span class="text-5xl" id="emoji">👋</span>
+7 -2
View File
@@ -2,16 +2,21 @@
import Container from "@components/Container.astro";
import Link from "@components/Link.astro";
import { SITE, SOCIALS } from "@consts";
// Check if we're on the homepage
const isHomepage = Astro.url.pathname === '/';
---
<header>
<Container>
<div class="flex flex-wrap gap-y-2 justify-between">
<div class={`flex flex-wrap gap-y-2 ${isHomepage ? 'justify-end' : 'justify-between'}`}>
{!isHomepage && (
<Link href="/" underline={false}>
<div class="font-semibold">
<div class="font-semibold header-name">
{SITE.NAME}
</div>
</Link>
)}
<nav class="flex gap-1">
<Link href="/blog">
blog
+1
View File
@@ -6,6 +6,7 @@ type Props = {
external?: boolean;
underline?: boolean;
confetti?: boolean;
class?: string;
}
const { href, external, underline = true, confetti, ...rest } = Astro.props;
+5 -5
View File
@@ -9,19 +9,19 @@ type Props = {
const { heading, subheading, href, target="" } = Astro.props;
---
<a href={href} target={target} class="relative group flex flex-nowrap py-3 px-4 pr-10 rounded-lg border border-black/15 dark:border-white/20 hover:bg-black/5 dark:hover:bg-white/5 hover:text-black dark:hover:text-white transition-colors duration-300 ease-in-out">
<div class="flex flex-col flex-1 truncate">
<div class="font-semibold">
<a href={href} target={target} class="relative group flex flex-nowrap py-4 px-5 pr-12 rounded-xl modern-card grain-texture hover:text-black dark:hover:text-white transition-all duration-300 ease-in-out">
<div class="flex flex-col flex-1 truncate relative z-10">
<div class="font-semibold text-base">
{heading}
</div>
<div class="text-sm">
<div class="text-sm opacity-75 mt-1">
{subheading}
</div>
</div>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
class="absolute top-1/2 right-2 -translate-y-1/2 size-5 stroke-2 fill-none stroke-current">
class="absolute top-1/2 right-4 -translate-y-1/2 size-5 stroke-2 fill-none stroke-current z-10">
<line x1="5" y1="12" x2="19" y2="12" class="translate-x-3 group-hover:translate-x-0 scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out" />
<polyline points="12 5 19 12 12 19" class="-translate-x-1 group-hover:translate-x-0 transition-transform duration-300 ease-in-out" />
</svg>
+18
View File
@@ -0,0 +1,18 @@
---
import type { CollectionEntry } from "astro:content";
import LinkCard from "./LinkCard.astro";
import { dateRange } from "@lib/utils";
type Props = {
entry: CollectionEntry<"work">;
}
const { entry } = Astro.props;
const href = entry.data.linkedinURL || "#";
const heading = entry.data.company;
const subheading = `${entry.data.role} • ${dateRange(entry.data.dateStart, entry.data.dateEnd)}`;
---
<LinkCard href={href} heading={heading} subheading={subheading} target="_blank">
</LinkCard>
+1
View File
@@ -17,6 +17,7 @@ const work = defineCollection({
role: z.string(),
dateStart: z.coerce.date(),
dateEnd: z.union([z.coerce.date(), z.string()]),
linkedinURL: z.string().optional(),
}),
});
+1
View File
@@ -3,5 +3,6 @@ company: "Standard"
role: "Software Engineer / Director"
dateStart: "01/01/2019"
dateEnd: "Mothballed"
linkedinURL: "https://www.linkedin.com/company/standard-nz"
---
@@ -3,5 +3,6 @@ company: "University of Canterbury"
role: "Software Engineer"
dateStart: "08/01/2023"
dateEnd: "present"
linkedinURL: "https://www.linkedin.com/company/university-of-canterbury"
---
+1
View File
@@ -3,5 +3,6 @@ company: "Actuality"
role: "Software Engineer"
dateStart: "02/11/2022"
dateEnd: "05/05/2023"
linkedinURL: "https://www.linkedin.com/company/actuality"
---
+14 -24
View File
@@ -3,6 +3,7 @@ import { getCollection } from "astro:content";
import Container from "@components/Container.astro";
import PageLayout from "@layouts/PageLayout.astro";
import ArrowCard from "@components/ArrowCard.astro";
import WorkCard from "@components/WorkCard.astro";
import Link from "@components/Link.astro";
import { dateRange } from "@lib/utils";
import { SITE, HOME, SOCIALS } from "@consts";
@@ -34,14 +35,14 @@ const work = await Promise.all(
<PageLayout title={HOME.TITLE} description={HOME.DESCRIPTION}>
<Container>
<h4 class="animate font-semibold text-black dark:text-white text-4xl font-serif">
<h1 class="animate font-bold text-black dark:text-white text-4xl md:text-5xl font-serif leading-tight">
Hi, I'm Michael <EmojiScroller/>
</h4>
</h1>
<div class="space-y-16">
<section>
<article class="space-y-4">
<p class="animate">
I'm a software engineer at the University of Canterbury, working on <Link href="https://uconline.ac.nz" external>Tuihono UC | UC Online</Link>.
I'm a software engineer at the University of Canterbury, working on <Link href="https://uconline.ac.nz" external class="text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300">Tuihono UC | UC Online</Link>.
I specialize in full-stack development. While my primary expertise is in software engineering, I also have a strong interest in cloud infrastructure and DevOps. Based in Christchurch, New Zealand
<br/><br/>
@@ -53,9 +54,9 @@ const work = await Promise.all(
{ blog.length > 1 &&
<section class="animate space-y-6">
<div class="flex flex-wrap gap-y-2 items-center justify-between">
<h5 class="font-semibold text-black dark:text-white">
<h4 class="font-semibold text-black dark:text-white text-xl">
Latest posts
</h5>
</h4>
<Link href="/blog">
See all posts
</Link>
@@ -73,28 +74,17 @@ const work = await Promise.all(
<section class="animate space-y-6">
<div class="flex flex-wrap gap-y-2 items-center justify-between">
<h5 class="font-semibold text-black dark:text-white">
<h4 class="font-semibold text-black dark:text-white text-xl">
Work Experience
</h5>
</h4>
<Link href="/work">
See all work
</Link>
</div>
<ul class="flex flex-col space-y-4">
<ul class="flex flex-col gap-4">
{work.map(entry => (
<li>
<div class="text-sm opacity-75">
{dateRange(entry.data.dateStart, entry.data.dateEnd)}
</div>
<div class="font-semibold text-black dark:text-white">
{entry.data.company}
</div>
<div class="text-sm opacity-75">
{entry.data.role}
</div>
<article>
<entry.Content />
</article>
<WorkCard entry={entry} />
</li>
))}
</ul>
@@ -102,9 +92,9 @@ const work = await Promise.all(
<section class="animate space-y-6">
<div class="flex flex-wrap gap-y-2 items-center justify-between">
<h5 class="font-semibold text-black dark:text-white">
<h4 class="font-semibold text-black dark:text-white text-xl">
Recent projects
</h5>
</h4>
<Link href="/projects">
See all projects
</Link>
@@ -119,9 +109,9 @@ const work = await Promise.all(
</section>
<section class="animate space-y-4">
<h5 class="font-semibold text-black dark:text-white">
<h4 class="font-semibold text-black dark:text-white text-xl">
Let's Connect
</h5>
</h4>
<article>
<p>
If you want to get in touch with me about something or just to say hi,
+1 -1
View File
@@ -13,7 +13,7 @@ const projects = (await getCollection("projects"))
<PageLayout title={PROJECTS.TITLE} description={PROJECTS.DESCRIPTION}>
<Container>
<div class="space-y-10">
<div class="animate font-semibold text-black dark:text-white text-4xl font-serif">
<div class="animate font-semibold text-black dark:text-white text-5xl md:text-6xl font-serif">
Projects
</div>
<ul class="animate flex flex-col gap-4">
+1 -1
View File
@@ -19,7 +19,7 @@ const work = await Promise.all(
<PageLayout title={WORK.TITLE} description={WORK.DESCRIPTION}>
<Container>
<div class="space-y-10">
<div class="animate font-semibold text-black dark:text-white text-4xl font-serif">
<div class="animate font-semibold text-black dark:text-white text-5xl md:text-6xl font-serif">
Work
</div>
<ul class="flex flex-col space-y-4">
+136 -2
View File
@@ -14,21 +14,35 @@ html.dark {
html,
body {
@apply size-full;
min-height: 100vh;
}
body {
@apply font-sans antialiased;
@apply flex flex-col;
@apply bg-stone-100 dark:bg-black;
@apply bg-stone-100;
@apply text-black dark:text-white/75;
}
.dark body {
background: #0f0f0f;
background-attachment: fixed;
background-size: cover;
background-repeat: no-repeat;
min-height: 100vh;
}
header {
@apply fixed top-0 left-0 right-0 z-50 py-5;
@apply bg-stone-100/75 dark:bg-black/25;
@apply bg-stone-100/75;
@apply backdrop-blur-sm saturate-200;
}
.dark header {
background: transparent !important;
backdrop-filter: none;
}
main {
@apply flex-1 py-32;
}
@@ -71,3 +85,123 @@ html #back-to-top {
html.scrolled #back-to-top {
@apply opacity-100 pointer-events-auto;
}
/* Grain texture effect */
.grain-texture {
position: relative;
overflow: hidden;
}
.grain-texture::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.15'/%3E%3C/svg%3E");
opacity: 0;
transition: opacity 0.3s ease-in-out;
pointer-events: none;
z-index: 2;
mix-blend-mode: overlay;
}
.grain-texture:hover::before {
opacity: 1;
}
/* Modern card hover effects */
.modern-card {
position: relative !important;
background: rgba(255, 255, 255, 0.05) !important;
border: 1px solid rgba(255, 255, 255, 0.1) !important;
transition: all 0.3s ease !important;
}
.modern-card::after {
content: '';
position: absolute;
inset: 0;
background:
radial-gradient(circle at 20% 80%, #1a0a0a 0%, transparent 40%),
radial-gradient(circle at 10% 20%, #ff8c42 0%, transparent 50%),
radial-gradient(circle at 60% 50%, #4a9fd8 0%, transparent 60%),
radial-gradient(circle at 100% 100%, #1a4d7a 0%, transparent 50%),
linear-gradient(135deg, #2a1a1a 0%, #1a3a5a 100%);
filter: blur(40px);
opacity: 0;
transition: opacity 0.3s ease;
z-index: 0;
border-radius: inherit;
}
.modern-card:hover::after {
opacity: 1;
}
/* Different color variations for each card */
li:nth-child(1) .modern-card::after {
background:
radial-gradient(circle at 20% 80%, #1a0a0a 0%, transparent 40%),
radial-gradient(circle at 10% 20%, #ff8c42 0%, transparent 50%),
radial-gradient(circle at 60% 50%, #4a9fd8 0%, transparent 60%),
radial-gradient(circle at 100% 100%, #1a4d7a 0%, transparent 50%),
linear-gradient(135deg, #2a1a1a 0%, #1a3a5a 100%);
}
li:nth-child(2) .modern-card::after {
background:
radial-gradient(circle at 20% 80%, #0a1a0a 0%, transparent 40%),
radial-gradient(circle at 10% 20%, #42ff8c 0%, transparent 50%),
radial-gradient(circle at 60% 50%, #4ad89f 0%, transparent 60%),
radial-gradient(circle at 100% 100%, #1a7a4d 0%, transparent 50%),
linear-gradient(135deg, #1a2a1a 0%, #1a5a3a 100%);
}
li:nth-child(3) .modern-card::after {
background:
radial-gradient(circle at 20% 80%, #1a0a1a 0%, transparent 40%),
radial-gradient(circle at 10% 20%, #ff42d8 0%, transparent 50%),
radial-gradient(circle at 60% 50%, #9f4ad8 0%, transparent 60%),
radial-gradient(circle at 100% 100%, #7a1a6d 0%, transparent 50%),
linear-gradient(135deg, #2a1a2a 0%, #5a1a4a 100%);
}
li:nth-child(4) .modern-card::after {
background:
radial-gradient(circle at 20% 80%, #1a1a0a 0%, transparent 40%),
radial-gradient(circle at 10% 20%, #ffd842 0%, transparent 50%),
radial-gradient(circle at 60% 50%, #d8b84a 0%, transparent 60%),
radial-gradient(circle at 100% 100%, #7a6d1a 0%, transparent 50%),
linear-gradient(135deg, #2a2a1a 0%, #5a4a1a 100%);
}
li:nth-child(5) .modern-card::after {
background:
radial-gradient(circle at 20% 80%, #0a0a1a 0%, transparent 40%),
radial-gradient(circle at 10% 20%, #8c42ff 0%, transparent 50%),
radial-gradient(circle at 60% 50%, #6a4ad8 0%, transparent 60%),
radial-gradient(circle at 100% 100%, #4d1a7a 0%, transparent 50%),
linear-gradient(135deg, #1a1a2a 0%, #3a1a5a 100%);
}
.modern-card:hover {
border-color: rgba(255, 255, 255, 0.2) !important;
}
.dark .modern-card {
background: rgba(255, 255, 255, 0.05) !important;
border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
.dark .modern-card:hover {
border-color: rgba(255, 255, 255, 0.2) !important;
}
/* Header name animation */
.header-name {
transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
opacity: 1;
transform: translateY(0);
}
+369 -17
View File
@@ -85,7 +85,7 @@
kleur "^4.1.5"
yargs "^17.7.2"
"@astrojs/compiler@^2.0.0", "@astrojs/compiler@^2.10.3":
"@astrojs/compiler@^2.0.0", "@astrojs/compiler@^2.10.3", "@astrojs/compiler@>=0.27.0":
version "2.10.3"
resolved "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.10.3.tgz"
integrity sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==
@@ -340,6 +340,133 @@
resolved "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz"
integrity sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==
"@emnapi/runtime@^1.1.0":
version "1.1.1"
resolved "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.1.1.tgz"
integrity sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==
dependencies:
tslib "^2.4.0"
"@esbuild/aix-ppc64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz"
integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==
"@esbuild/android-arm@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz"
integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==
"@esbuild/android-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz"
integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==
"@esbuild/android-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz"
integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==
"@esbuild/darwin-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz"
integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==
"@esbuild/darwin-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz"
integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==
"@esbuild/freebsd-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz"
integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==
"@esbuild/freebsd-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz"
integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==
"@esbuild/linux-arm@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz"
integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==
"@esbuild/linux-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz"
integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==
"@esbuild/linux-ia32@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz"
integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==
"@esbuild/linux-loong64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz"
integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==
"@esbuild/linux-mips64el@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz"
integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==
"@esbuild/linux-ppc64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz"
integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==
"@esbuild/linux-riscv64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz"
integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==
"@esbuild/linux-s390x@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz"
integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==
"@esbuild/linux-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz"
integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==
"@esbuild/netbsd-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz"
integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==
"@esbuild/netbsd-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz"
integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==
"@esbuild/openbsd-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz"
integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==
"@esbuild/openbsd-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz"
integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==
"@esbuild/sunos-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz"
integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==
"@esbuild/win32-arm64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz"
integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==
"@esbuild/win32-ia32@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz"
integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==
"@esbuild/win32-x64@0.24.2":
version "0.24.2"
resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz"
@@ -406,6 +533,114 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz"
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
"@img/sharp-darwin-arm64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.3.tgz"
integrity sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==
optionalDependencies:
"@img/sharp-libvips-darwin-arm64" "1.0.2"
"@img/sharp-darwin-x64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.3.tgz"
integrity sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==
optionalDependencies:
"@img/sharp-libvips-darwin-x64" "1.0.2"
"@img/sharp-libvips-darwin-arm64@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz"
integrity sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==
"@img/sharp-libvips-darwin-x64@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz"
integrity sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==
"@img/sharp-libvips-linux-arm@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz"
integrity sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==
"@img/sharp-libvips-linux-arm64@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz"
integrity sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==
"@img/sharp-libvips-linux-s390x@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz"
integrity sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==
"@img/sharp-libvips-linux-x64@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz"
integrity sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==
"@img/sharp-libvips-linuxmusl-arm64@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz"
integrity sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==
"@img/sharp-libvips-linuxmusl-x64@1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz"
integrity sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==
"@img/sharp-linux-arm@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.3.tgz"
integrity sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==
optionalDependencies:
"@img/sharp-libvips-linux-arm" "1.0.2"
"@img/sharp-linux-arm64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.3.tgz"
integrity sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==
optionalDependencies:
"@img/sharp-libvips-linux-arm64" "1.0.2"
"@img/sharp-linux-s390x@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.3.tgz"
integrity sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==
optionalDependencies:
"@img/sharp-libvips-linux-s390x" "1.0.2"
"@img/sharp-linux-x64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.3.tgz"
integrity sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==
optionalDependencies:
"@img/sharp-libvips-linux-x64" "1.0.2"
"@img/sharp-linuxmusl-arm64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.3.tgz"
integrity sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==
optionalDependencies:
"@img/sharp-libvips-linuxmusl-arm64" "1.0.2"
"@img/sharp-linuxmusl-x64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.3.tgz"
integrity sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==
optionalDependencies:
"@img/sharp-libvips-linuxmusl-x64" "1.0.2"
"@img/sharp-wasm32@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.3.tgz"
integrity sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==
dependencies:
"@emnapi/runtime" "^1.1.0"
"@img/sharp-win32-ia32@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.3.tgz"
integrity sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==
"@img/sharp-win32-x64@0.33.3":
version "0.33.3"
resolved "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.3.tgz"
@@ -530,6 +765,96 @@
estree-walker "^2.0.2"
picomatch "^4.0.2"
"@rollup/rollup-android-arm-eabi@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz"
integrity sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==
"@rollup/rollup-android-arm64@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz"
integrity sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==
"@rollup/rollup-darwin-arm64@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz"
integrity sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==
"@rollup/rollup-darwin-x64@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz"
integrity sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==
"@rollup/rollup-freebsd-arm64@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz"
integrity sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==
"@rollup/rollup-freebsd-x64@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz"
integrity sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==
"@rollup/rollup-linux-arm-gnueabihf@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz"
integrity sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==
"@rollup/rollup-linux-arm-musleabihf@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz"
integrity sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==
"@rollup/rollup-linux-arm64-gnu@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz"
integrity sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==
"@rollup/rollup-linux-arm64-musl@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz"
integrity sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==
"@rollup/rollup-linux-loongarch64-gnu@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz"
integrity sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==
"@rollup/rollup-linux-powerpc64le-gnu@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz"
integrity sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==
"@rollup/rollup-linux-riscv64-gnu@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz"
integrity sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==
"@rollup/rollup-linux-s390x-gnu@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz"
integrity sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==
"@rollup/rollup-linux-x64-gnu@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz"
integrity sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==
"@rollup/rollup-linux-x64-musl@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz"
integrity sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==
"@rollup/rollup-win32-arm64-msvc@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz"
integrity sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==
"@rollup/rollup-win32-ia32-msvc@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz"
integrity sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==
"@rollup/rollup-win32-x64-msvc@4.30.1":
version "4.30.1"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz"
@@ -668,7 +993,14 @@
dependencies:
"@types/unist" "*"
"@types/node@*", "@types/node@^17.0.5":
"@types/node@*", "@types/node@^18.0.0 || ^20.0.0 || >=22.0.0":
version "24.7.1"
resolved "https://registry.npmjs.org/@types/node/-/node-24.7.1.tgz"
integrity sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==
dependencies:
undici-types "~7.14.0"
"@types/node@^17.0.5":
version "17.0.45"
resolved "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz"
integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
@@ -719,7 +1051,7 @@
semver "^7.5.4"
ts-api-utils "^1.0.1"
"@typescript-eslint/parser@^7.3.1":
"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.3.1":
version "7.4.0"
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz"
integrity sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==
@@ -852,7 +1184,7 @@
vscode-languageserver-textdocument "^1.0.11"
vscode-uri "^3.0.8"
"@volar/language-service@~2.4.7", "@volar/language-service@2.4.11":
"@volar/language-service@~2.4.0", "@volar/language-service@~2.4.7", "@volar/language-service@2.4.11":
version "2.4.11"
resolved "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.11.tgz"
integrity sha512-KIb6g8gjUkS2LzAJ9bJCLIjfsJjeRtmXlu7b2pDFGD3fNqdbC53cCAKzgWDs64xtQVKYBU13DLWbtSNFtGuMLQ==
@@ -897,7 +1229,7 @@ acorn-jsx@^5.0.0, acorn-jsx@^5.3.2:
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.0.0, acorn@^8.14.0, acorn@^8.8.0, acorn@^8.9.0:
"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.0.0, acorn@^8.14.0, acorn@^8.8.0, acorn@^8.9.0:
version "8.14.0"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz"
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
@@ -1108,7 +1440,7 @@ astro-light-box@^0.1.1:
resolved "https://registry.npmjs.org/astro-light-box/-/astro-light-box-0.1.1.tgz"
integrity sha512-xBX3qEQtwffphbhdD53WutTq9cAepigerQJ5NR4jyQTHNlWvpYo1EjUFzT89Xj0tjK2/NbYBnnhazI33qt6OCQ==
astro@^5.1.7:
"astro@^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta", "astro@^3.0.0 || ^4.0.0 || ^5.0.0", "astro@^4.0.0 || ^5.0.0-beta.0", "astro@^4.0.0-beta || ^5.0.0-beta", "astro@^4.12.0 || ^5.0.0", astro@^5.0.0, astro@^5.1.7:
version "5.1.7"
resolved "https://registry.npmjs.org/astro/-/astro-5.1.7.tgz"
integrity sha512-hGYHtO+67ZWDl0TY9ysh2iBv2KOgcgvpFJaMGZvknqBjh6TGqrwtWldCsJr1CK57rK8ycpPwC3Bi5bPaBELMuw==
@@ -1284,7 +1616,7 @@ braces@^3.0.3, braces@~3.0.2:
dependencies:
fill-range "^7.1.1"
browserslist@^4.23.3:
browserslist@^4.23.3, "browserslist@>= 4.21.0":
version "4.24.4"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz"
integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
@@ -2004,7 +2336,7 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint@^8.57.0:
"eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.56.0, eslint@^8.57.0, eslint@>=6.0.0, eslint@>=7.0.0:
version "8.57.0"
resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz"
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
@@ -2287,6 +2619,11 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
@@ -2429,6 +2766,11 @@ graphemer@^1.4.0:
resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
gsap@^3.13.0:
version "3.13.0"
resolved "https://registry.npmjs.org/gsap/-/gsap-3.13.0.tgz"
integrity sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==
h3@^1.13.0:
version "1.13.1"
resolved "https://registry.npmjs.org/h3/-/h3-1.13.1.tgz"
@@ -2995,7 +3337,7 @@ jackspeak@^2.3.6:
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
jiti@^1.21.6:
jiti@^1.21.6, jiti@>=1.21.0:
version "1.21.7"
resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz"
integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==
@@ -4232,7 +4574,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.4.14, postcss@^8.4.47, postcss@^8.4.49:
postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.14, postcss@^8.4.21, postcss@^8.4.47, postcss@^8.4.49, postcss@>=8.0.9:
version "8.5.1"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz"
integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
@@ -4255,6 +4597,11 @@ prelude-ls@^1.2.1:
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
"prettier@^2.2 || ^3.0", prettier@^3.0.0:
version "3.6.2"
resolved "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz"
integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==
prettier@2.8.7:
version "2.8.7"
resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz"
@@ -4589,7 +4936,7 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
rollup@^4.23.0:
rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^4.23.0:
version "4.30.1"
resolved "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz"
integrity sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==
@@ -4970,7 +5317,7 @@ tailwind-merge@^2.2.2:
dependencies:
"@babel/runtime" "^7.24.0"
tailwindcss@^3.4.17:
tailwindcss@^3.0.24, tailwindcss@^3.4.17, "tailwindcss@>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1":
version "3.4.17"
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz"
integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==
@@ -5064,7 +5411,7 @@ tsconfck@^3.1.4:
resolved "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz"
integrity sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==
tslib@^2.6.2:
tslib@^2.4.0, tslib@^2.6.2:
version "2.6.2"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
@@ -5142,7 +5489,7 @@ typescript-auto-import-cache@^0.3.3:
dependencies:
semver "^7.3.8"
typescript@^5.7.3:
typescript@*, "typescript@^4.9.4 || ^5.0.2", typescript@^5.0.0, typescript@^5.7.3, typescript@>=4.2.0:
version "5.7.3"
resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz"
integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
@@ -5189,6 +5536,11 @@ undici-types@~5.26.4:
resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
undici-types@~7.14.0:
version "7.14.0"
resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz"
integrity sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==
unenv@^1.10.0:
version "1.10.0"
resolved "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz"
@@ -5357,7 +5709,7 @@ vfile@^6.0.0, vfile@^6.0.3:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
vite@^6.0.7:
"vite@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", vite@^6.0.7:
version "6.0.7"
resolved "https://registry.npmjs.org/vite/-/vite-6.0.7.tgz"
integrity sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==
@@ -5681,7 +6033,7 @@ yaml-language-server@~1.15.0:
optionalDependencies:
prettier "2.8.7"
yaml@^2.3.4, yaml@^2.5.0:
yaml@^2.3.4, yaml@^2.4.2, yaml@^2.5.0:
version "2.7.0"
resolved "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz"
integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
@@ -5741,7 +6093,7 @@ zod-to-ts@^1.2.0:
resolved "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz"
integrity sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==
zod@^3.23.8, zod@^3.24.1:
zod@^3, zod@^3.23.8, zod@^3.24.1:
version "3.24.1"
resolved "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz"
integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==