From 883d63a1f43b357dcaecbe7f636a3427edd15578 Mon Sep 17 00:00:00 2001
From: Suvansh Rana <36293610+suvnshr@users.noreply.github.com>
Date: Tue, 6 Jan 2026 17:20:49 +0000
Subject: [PATCH 1/7] feat(portfolio)!: major frontend revamp
---
.github/workflows/integrate.yml | 14 +-
.nvmrc | 2 +-
app/layout.tsx | 89 +
app/page.tsx | 76 +
components/AppBottomNavigation.js | 65 -
components/Copyright.js | 25 -
components/DomainListItem.js | 54 -
components/Layout.js | 82 -
components/Margin.js | 7 -
components/MyAvatar.js | 29 -
components/OuterLink.js | 11 -
components/ProjectCard.js | 118 -
components/SkillChip.js | 34 -
components/SocialLinkButton.js | 23 -
customTheme.js | 25 -
features/blogs/BlogCard.module.scss | 25 +
.../blogs/BlogCard.tsx | 78 +-
features/blogs/BlogSection.tsx | 35 +
.../blogs/utils/extractImagePaths.ts | 3 +-
features/blogs/utils/fetchMediumFeed.ts | 19 +
features/profile/MyAvatar.module.scss | 25 +
features/profile/MyAvatar.tsx | 18 +
features/profile/ProfileSection.module.scss | 138 +
features/profile/ProfileSection.tsx | 65 +
features/profile/SocialLinkButton.module.scss | 5 +
features/profile/SocialLinkButton.tsx | 25 +
.../profile/data/profileData.ts | 35 +-
features/projects/ProjectCard.module.scss | 25 +
features/projects/ProjectCard.tsx | 87 +
features/projects/ProjectSection.tsx | 26 +
.../projects/data/projectData.ts | 36 +-
features/skills/DomainListItem.module.scss | 20 +
features/skills/DomainListItem.tsx | 51 +
features/skills/DomainSection.tsx | 21 +
features/skills/SkillChip.module.scss | 9 +
features/skills/SkillChip.tsx | 37 +
.../skills/data/domainData.ts | 69 +-
next-env.d.ts | 6 +
next.config.js => next.config.ts | 12 +-
package-lock.json | 3630 ++++++++++-------
package.json | 25 +-
pages/_app.js | 22 -
pages/_document.js | 88 -
pages/index.js | 71 -
public/avatar-v2.jpg | Bin 219898 -> 0 bytes
public/avatar-v3.jpg | Bin 0 -> 740193 bytes
public/avatar.jpg | Bin 104496 -> 0 bytes
public/background-blurred-v2.jpg | Bin 18953 -> 0 bytes
public/background-blurred.webp | Bin 315740 -> 0 bytes
sections/BlogSection.js | 24 -
sections/DomainSection.js | 22 -
sections/ProfileSection.js | 108 -
sections/ProjectSection.js | 27 -
shared/theme/customTheme.ts | 22 +
shared/ui/AppBottomNavigation.module.scss | 12 +
shared/ui/AppBottomNavigation.tsx | 56 +
shared/ui/Copyright.module.scss | 4 +
shared/ui/Copyright.tsx | 28 +
shared/ui/Margin.tsx | 12 +
shared/ui/OuterLink.tsx | 17 +
shared/ui/Providers.tsx | 19 +
styles/globals.css | 45 -
styles/globals.scss | 52 +
tsconfig.json | 54 +
types/scss-modules.d.ts | 10 +
utils/fetchMediumFeed.js | 8 -
66 files changed, 3496 insertions(+), 2384 deletions(-)
create mode 100644 app/layout.tsx
create mode 100644 app/page.tsx
delete mode 100644 components/AppBottomNavigation.js
delete mode 100644 components/Copyright.js
delete mode 100644 components/DomainListItem.js
delete mode 100644 components/Layout.js
delete mode 100644 components/Margin.js
delete mode 100644 components/MyAvatar.js
delete mode 100644 components/OuterLink.js
delete mode 100644 components/ProjectCard.js
delete mode 100644 components/SkillChip.js
delete mode 100644 components/SocialLinkButton.js
delete mode 100755 customTheme.js
create mode 100644 features/blogs/BlogCard.module.scss
rename components/BlogCard.js => features/blogs/BlogCard.tsx (52%)
create mode 100644 features/blogs/BlogSection.tsx
rename utils/extractImagePaths.js => features/blogs/utils/extractImagePaths.ts (77%)
create mode 100644 features/blogs/utils/fetchMediumFeed.ts
create mode 100644 features/profile/MyAvatar.module.scss
create mode 100644 features/profile/MyAvatar.tsx
create mode 100644 features/profile/ProfileSection.module.scss
create mode 100644 features/profile/ProfileSection.tsx
create mode 100644 features/profile/SocialLinkButton.module.scss
create mode 100644 features/profile/SocialLinkButton.tsx
rename data/profileData.js => features/profile/data/profileData.ts (53%)
create mode 100644 features/projects/ProjectCard.module.scss
create mode 100644 features/projects/ProjectCard.tsx
create mode 100644 features/projects/ProjectSection.tsx
rename data/projectData.js => features/projects/data/projectData.ts (73%)
create mode 100644 features/skills/DomainListItem.module.scss
create mode 100644 features/skills/DomainListItem.tsx
create mode 100644 features/skills/DomainSection.tsx
create mode 100644 features/skills/SkillChip.module.scss
create mode 100644 features/skills/SkillChip.tsx
rename data/domainData.js => features/skills/data/domainData.ts (79%)
create mode 100644 next-env.d.ts
rename next.config.js => next.config.ts (50%)
delete mode 100644 pages/_app.js
delete mode 100644 pages/_document.js
delete mode 100644 pages/index.js
delete mode 100644 public/avatar-v2.jpg
create mode 100644 public/avatar-v3.jpg
delete mode 100644 public/avatar.jpg
delete mode 100644 public/background-blurred-v2.jpg
delete mode 100755 public/background-blurred.webp
delete mode 100644 sections/BlogSection.js
delete mode 100755 sections/DomainSection.js
delete mode 100755 sections/ProfileSection.js
delete mode 100755 sections/ProjectSection.js
create mode 100644 shared/theme/customTheme.ts
create mode 100644 shared/ui/AppBottomNavigation.module.scss
create mode 100644 shared/ui/AppBottomNavigation.tsx
create mode 100644 shared/ui/Copyright.module.scss
create mode 100644 shared/ui/Copyright.tsx
create mode 100644 shared/ui/Margin.tsx
create mode 100644 shared/ui/OuterLink.tsx
create mode 100644 shared/ui/Providers.tsx
delete mode 100644 styles/globals.css
create mode 100644 styles/globals.scss
create mode 100644 tsconfig.json
create mode 100644 types/scss-modules.d.ts
delete mode 100644 utils/fetchMediumFeed.js
diff --git a/.github/workflows/integrate.yml b/.github/workflows/integrate.yml
index 7ab2044..7273990 100644
--- a/.github/workflows/integrate.yml
+++ b/.github/workflows/integrate.yml
@@ -9,20 +9,20 @@ jobs:
steps:
- name: Checkout 🛎️
- uses: actions/checkout@v2 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly.
+ uses: actions/checkout@v4
with:
persist-credentials: false
- name: Cache 💾
- uses: actions/cache@v2
+ uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.next/cache
- key: ${{ runner.os }}-nextjs-v3-${{ hashFiles('**/package-lock.json') }}
+ key: ${{ runner.os }}-nextjs-v4-${{ hashFiles('**/package-lock.json') }}
- name: Install and Build 🔧
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v4
with:
- node-version: '16'
+ node-version: '20'
- run: npm install
- run: npm run build
env:
@@ -30,9 +30,9 @@ jobs:
- name: Deploy 🚀
if: github.ref == 'refs/heads/main'
- uses: JamesIves/github-pages-deploy-action@3.6.2
+ uses: JamesIves/github-pages-deploy-action@v5
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages # The branch the action should deploy to.
FOLDER: out # The folder the action should deploy.
- CLEAN: true # Automatically remove deleted files from the deploy branch
\ No newline at end of file
+ CLEAN: true # Automatically remove deleted files from the deploy branch
diff --git a/.nvmrc b/.nvmrc
index c32828c..941ea48 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-lts/hydrogen
\ No newline at end of file
+lts/krypton
\ No newline at end of file
diff --git a/app/layout.tsx b/app/layout.tsx
new file mode 100644
index 0000000..39cc868
--- /dev/null
+++ b/app/layout.tsx
@@ -0,0 +1,89 @@
+import React from "react";
+import type { Metadata } from "next";
+import profileData from "@/features/profile/data/profileData";
+import Providers from "@shared/ui/Providers";
+import "@styles/globals.scss";
+
+export const metadata: Metadata = {
+ metadataBase: new URL(profileData.meta.url),
+ title: profileData.meta.title,
+ description: profileData.about,
+ keywords: profileData.meta.tags.join(", "),
+ robots: "index, follow, noimageindex",
+ openGraph: {
+ title: profileData.meta.title,
+ description: profileData.about,
+ url: profileData.meta.url,
+ siteName: profileData.meta.title,
+ images: [
+ {
+ url: profileData.avatar,
+ width: 1200,
+ height: 630,
+ alt: profileData.name,
+ },
+ ],
+ type: "profile",
+ },
+ twitter: {
+ card: "summary_large_image",
+ title: profileData.meta.title,
+ description: profileData.about,
+ site: "@suvnshr",
+ creator: "@suvnshr",
+ images: [profileData.avatar],
+ },
+};
+
+interface RootLayoutProps {
+ children: React.ReactNode;
+}
+
+export default function RootLayout({ children }: RootLayoutProps) {
+ return (
+
+
+ {/* Favicons */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+ );
+}
+
diff --git a/app/page.tsx b/app/page.tsx
new file mode 100644
index 0000000..b0c4fb5
--- /dev/null
+++ b/app/page.tsx
@@ -0,0 +1,76 @@
+"use client";
+
+import { Container, Typography, useMediaQuery, useTheme } from "@mui/material";
+import AppBottomNavigation from "@shared/ui/AppBottomNavigation";
+import Copyright from "@shared/ui/Copyright";
+import Margin from "@shared/ui/Margin";
+import BlogSection from "@features/blogs/BlogSection";
+import DomainSection from "@features/skills/DomainSection";
+import ProfileSection from "@features/profile/ProfileSection";
+import ProjectSection from "@features/projects/ProjectSection";
+import { fetchMediumFeed } from "@features/blogs/utils/fetchMediumFeed";
+import { useEffect, useState } from "react";
+
+interface MediumFeedResponse {
+ items: Array<{
+ title: string;
+ description: string;
+ thumbnail?: string;
+ categories: string[];
+ link: string;
+ }>;
+}
+
+export default function HomePage() {
+ const theme = useTheme();
+ const isMediumOrDown = useMediaQuery(theme.breakpoints.down("md"));
+ const [blogsData, setBlogsData] = useState(null);
+
+ useEffect(() => {
+ fetchMediumFeed().then(setBlogsData);
+ }, []);
+
+ return (
+
+
+
+
+
+
+ Skills
+
+
+
+
+
+
+
+
+
+
+
+ Blogs
+
+ {blogsData && }
+
+
+
+
+
+
+ {isMediumOrDown && (
+ <>
+
+
+ >
+ )}
+
+ );
+}
+
diff --git a/components/AppBottomNavigation.js b/components/AppBottomNavigation.js
deleted file mode 100644
index 12ee0d8..0000000
--- a/components/AppBottomNavigation.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import React, { useState, useEffect } from "react";
-import { makeStyles } from "@material-ui/core/styles";
-import BottomNavigation from "@material-ui/core/BottomNavigation";
-import BottomNavigationAction from "@material-ui/core/BottomNavigationAction";
-import { Book, BubbleChart, Laptop, Person } from "@material-ui/icons";
-import Scrollspy from "react-scrollspy";
-
-const useStyles = makeStyles({
- root: {
- width: "100%",
- position: "fixed",
- bottom: 0,
- },
- scrollspy: {
- margin: 0,
- padding: 0,
- listStyleType: "none",
- },
-});
-
-export default function AppBottomNavigation() {
- const classes = useStyles();
- const [value, setValue] = React.useState(0);
- const [elements, setElements] = useState(null);
-
- const sections = ["about", "skills", "projects", "blogs"];
-
- useEffect(() => {
- const _elements = [];
-
- sections.forEach((sectionId) => {
- _elements.push(document.querySelector("#" + sectionId));
- });
-
- setElements(_elements);
- }, []);
-
- return (
- {
- setValue(sections.indexOf(section.id));
- }}
- >
- {
- setValue(newValue);
-
- if (elements !== null) {
- elements[newValue].scrollIntoView();
- }
- }}
- showLabels
- className={classes.root}
- >
- } />
- } />
- } />
- } />
-
-
- );
-}
diff --git a/components/Copyright.js b/components/Copyright.js
deleted file mode 100644
index c2c3582..0000000
--- a/components/Copyright.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Grid, makeStyles, Typography } from "@material-ui/core";
-import React from "react";
-
-const useStyles = makeStyles((theme) => ({
- root: {
- backgroundColor: theme.palette.secondary.dark,
- padding: 20,
- },
-}));
-
-export default function Copyright() {
- const classes = useStyles();
-
- return (
-
-
-
- {"Copyright © Suvansh Rana "}
- {new Date().getFullYear()}
- {"."}
-
-
-
- );
-}
diff --git a/components/DomainListItem.js b/components/DomainListItem.js
deleted file mode 100644
index 7d59b4a..0000000
--- a/components/DomainListItem.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import React from "react";
-
-import {
- Paper,
- Avatar,
- ListItem,
- ListItemText,
- ListItemAvatar,
- makeStyles,
-} from "@material-ui/core";
-
-import customTheme from "../customTheme";
-import SkillChip from "./SkillChip";
-
-const useStyles = makeStyles((theme) => ({
- root: {
- width: 400,
- [theme.breakpoints.down("xs")]: {
- width: "80vw",
- },
- },
- avatar: { backgroundColor: customTheme.palette.primary.main },
- chipsContainer: { marginTop: 17 },
- listItemPrimaryText: {
- fontSize: "1.4em",
- },
-}));
-
-export default function DomainListItem({ name, icon, skills }) {
- const classes = useStyles();
-
- return (
-
-
-
- {icon}
-
-
-
- {skills.map((skillData, index) => (
-
- ))}
-
- }
- />
-
-
- );
-}
diff --git a/components/Layout.js b/components/Layout.js
deleted file mode 100644
index 4c72c8c..0000000
--- a/components/Layout.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import React from "react";
-import { CssBaseline } from "@material-ui/core";
-import { ThemeProvider } from "@material-ui/styles";
-import customTheme from "../customTheme";
-import Head from "next/head";
-import profileData from "../data/profileData";
-
-function Layout({ children }) {
- return (
- <>
-
- {/* Favicons */}
-
-
-
-
-
-
-
-
-
-
-
- {/* SEO and OG tags */}
-
- {profileData.meta.title}
-
-
-
-
-
- {/* */}
-
-
-
-
-
-
-
-
- {/* */}
-
-
-
-
-
-
-
-
-
-
- {children}
-
- >
- );
-}
-
-export default Layout;
diff --git a/components/Margin.js b/components/Margin.js
deleted file mode 100644
index 29fba05..0000000
--- a/components/Margin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from "react";
-
-export default function Margin({ count = 1 }) {
- const margin = 14 * count;
-
- return ;
-}
diff --git a/components/MyAvatar.js b/components/MyAvatar.js
deleted file mode 100644
index fe94eca..0000000
--- a/components/MyAvatar.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import { makeStyles, Paper } from "@material-ui/core";
-import React from "react";
-
-const useStyles = makeStyles((theme) => ({
- photo: {
- height: 200,
- width: 200,
- objectFit: "cover",
- [theme.breakpoints.down("sm")]: {
- height: 180,
- width: 180,
- },
- filter: "brightness(0.93)",
- margin: "auto",
- borderRadius: 30,
- },
-}));
-
-function MyAvatar({ src }) {
- const classes = useStyles();
-
- return (
-
-
-
- );
-}
-
-export default MyAvatar;
diff --git a/components/OuterLink.js b/components/OuterLink.js
deleted file mode 100644
index 11843b8..0000000
--- a/components/OuterLink.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import React from "react";
-
-function OuterLink(props) {
- return (
-
- {props.children}
-
- );
-}
-
-export default OuterLink;
diff --git a/components/ProjectCard.js b/components/ProjectCard.js
deleted file mode 100644
index daa7b1b..0000000
--- a/components/ProjectCard.js
+++ /dev/null
@@ -1,118 +0,0 @@
-import React from "react";
-import { makeStyles } from "@material-ui/core/styles";
-import Card from "@material-ui/core/Card";
-import CardActions from "@material-ui/core/CardActions";
-import CardContent from "@material-ui/core/CardContent";
-import CardMedia from "@material-ui/core/CardMedia";
-import Button from "@material-ui/core/Button";
-import Typography from "@material-ui/core/Typography";
-
-import { Chip, Grid } from "@material-ui/core";
-import OuterLink from "./OuterLink";
-import Margin from "./Margin";
-import { OpenInNewOutlined } from "@material-ui/icons";
-
-const useStyles = makeStyles({
- root: {
- maxWidth: 345,
- marginTop: 20,
- },
- media: {
- objectFit: "contain",
- height: 210,
- backgroundColor: "#2b2b2b",
- filter: "brightness(0.8)",
- },
- button: {
- padding: "8px 16px",
- letterSpacing: 0.45,
- },
- cardAction: {
- padding: "10px 15px",
- },
- tagChip: {
- margin: "4px 3px",
- lineHeight: 1.9,
- },
-});
-
-export default function ProjectCard({
- name,
- description,
- coverImage,
- tags,
- projectLink,
- githubLink,
-}) {
- const classes = useStyles();
-
- return (
-
-
-
-
- {name}
-
-
-
-
-
- {tags.map((tag, index) => (
-
- ))}
-
-
-
-
- {description}
-
-
-
-
-
-
-
-
-
-
- {projectLink && (
-
-
- }
- >
- Project
-
-
-
- )}
-
-
-
- );
-}
diff --git a/components/SkillChip.js b/components/SkillChip.js
deleted file mode 100644
index 8da58ac..0000000
--- a/components/SkillChip.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Chip, makeStyles } from "@material-ui/core";
-import React from "react";
-import customTheme from "../customTheme";
-import OuterLink from "./OuterLink";
-
-const useStyles = makeStyles({
- skillIcon: { height: 18, width: 18 },
- skillChip: { margin: "4px 3px" },
-});
-
-function SkillChip({ name, SkillIcon, about_link }) {
- const classes = useStyles();
-
- return (
-
-
- ) : null
- }
- className={classes.skillChip}
- label={name}
- onClick={() => null}
- />
-
- );
-}
-
-export default SkillChip;
diff --git a/components/SocialLinkButton.js b/components/SocialLinkButton.js
deleted file mode 100644
index 835e879..0000000
--- a/components/SocialLinkButton.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Fab, makeStyles } from "@material-ui/core";
-import React from "react";
-import OuterLink from "./OuterLink";
-
-const useStyles = makeStyles({
- fab: {
- margin: 5,
- },
-});
-
-function SocialLinkButton({ icon, link }) {
- const classes = useStyles();
-
- return (
-
-
- {icon}
-
-
- );
-}
-
-export default SocialLinkButton;
diff --git a/customTheme.js b/customTheme.js
deleted file mode 100755
index f33d6f6..0000000
--- a/customTheme.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { grey, lime } from "@material-ui/core/colors";
-import { createMuiTheme, responsiveFontSizes } from "@material-ui/core/styles";
-
-let customTheme = createMuiTheme({
- typography: {
- fontFamily: "'DM Sans', 'sans-serif'",
- },
- palette: {
- type: "dark",
- primary: {
- main: lime[500],
- },
- secondary: {
- main: grey[800],
- },
- text: {
- primary: "#fafafa",
- }
- },
-
-});
-
-customTheme = responsiveFontSizes(customTheme);
-
-export default customTheme;
diff --git a/features/blogs/BlogCard.module.scss b/features/blogs/BlogCard.module.scss
new file mode 100644
index 0000000..2cb5e13
--- /dev/null
+++ b/features/blogs/BlogCard.module.scss
@@ -0,0 +1,25 @@
+.card {
+ max-width: 345px;
+ margin-top: 20px;
+ padding: 8px
+}
+
+.cardMedia {
+ object-fit: contain;
+ height: 210px;
+ background-color: #2b2b2b;
+ filter: brightness(0.8);
+}
+
+.categoryChip {
+ margin: 4px 4px 4px 0px;
+ line-height: 1.9;
+}
+
+.cardActions {
+ padding: 8px 16px 12px !important;
+}
+
+.button {
+ padding: 8px 16px;
+}
\ No newline at end of file
diff --git a/components/BlogCard.js b/features/blogs/BlogCard.tsx
similarity index 52%
rename from components/BlogCard.js
rename to features/blogs/BlogCard.tsx
index 7660fba..6dc08ac 100644
--- a/components/BlogCard.js
+++ b/features/blogs/BlogCard.tsx
@@ -1,42 +1,25 @@
import React, { useEffect } from "react";
-import { makeStyles } from "@material-ui/core/styles";
-import Card from "@material-ui/core/Card";
-import CardActions from "@material-ui/core/CardActions";
-import CardContent from "@material-ui/core/CardContent";
-import CardMedia from "@material-ui/core/CardMedia";
-import Button from "@material-ui/core/Button";
-import Typography from "@material-ui/core/Typography";
+import Card from "@mui/material/Card";
+import CardActions from "@mui/material/CardActions";
+import CardContent from "@mui/material/CardContent";
+import Button from "@mui/material/Button";
+import Typography from "@mui/material/Typography";
-import { Chip, Grid } from "@material-ui/core";
+import { Chip, Grid } from "@mui/material";
import { htmlToText } from "html-to-text";
-import OuterLink from "./OuterLink";
-import Margin from "./Margin";
-import { OpenInNewOutlined } from "@material-ui/icons";
-import { extractImagePaths } from "../utils/extractImagePaths";
+import OuterLink from "../../shared/ui/OuterLink";
+import Margin from "../../shared/ui/Margin";
+import { OpenInNewOutlined } from "@mui/icons-material";
+import { extractImagePaths } from "./utils/extractImagePaths";
+import styles from "./BlogCard.module.scss";
-const useStyles = makeStyles({
- root: {
- maxWidth: 345,
- marginTop: 20,
- },
- media: {
- objectFit: "contain",
- height: 210,
- backgroundColor: "#2b2b2b",
- filter: "brightness(0.8)",
- },
- button: {
- padding: "8px 16px",
- letterSpacing: 0.45,
- },
- cardAction: {
- padding: "10px 15px",
- },
- categoryChip: {
- margin: "4px 3px",
- lineHeight: 1.9,
- },
-});
+interface BlogCardProps {
+ title: string;
+ description: string;
+ thumbnail?: string;
+ categories: string[];
+ link: string;
+}
export default function BlogCard({
title,
@@ -44,9 +27,7 @@ export default function BlogCard({
thumbnail,
categories,
link,
-}) {
- const classes = useStyles();
-
+}: BlogCardProps) {
useEffect(() => {
document.addEventListener("DOMContentLoaded", function () {
const images = document.querySelectorAll("img");
@@ -62,15 +43,7 @@ export default function BlogCard({
const imagePaths = extractImagePaths(description);
return (
-
-
+
{title}
@@ -83,7 +56,7 @@ export default function BlogCard({
-
-
-
+
+
+
}
variant="contained"
size="small"
color="primary"
- className={classes.button}
+ className={styles.button}
>
Read
@@ -121,3 +94,4 @@ export default function BlogCard({
);
}
+
diff --git a/features/blogs/BlogSection.tsx b/features/blogs/BlogSection.tsx
new file mode 100644
index 0000000..7c04274
--- /dev/null
+++ b/features/blogs/BlogSection.tsx
@@ -0,0 +1,35 @@
+import React from "react";
+import { Container, Grid, useMediaQuery, useTheme } from "@mui/material";
+import BlogCard from "./BlogCard";
+
+interface BlogSectionProps {
+ blogsData: {
+ items: Array<{
+ title: string;
+ description: string;
+ thumbnail?: string;
+ categories: string[];
+ link: string;
+ }>;
+ };
+}
+
+export default function BlogSection({ blogsData }: BlogSectionProps) {
+ const theme = useTheme();
+ const isTabletOrSmaller = useMediaQuery(theme.breakpoints.down("md"));
+
+ return (
+
+ {blogsData.items.map((blogData, index) => (
+
+
+
+ ))}
+
+ );
+}
+
diff --git a/utils/extractImagePaths.js b/features/blogs/utils/extractImagePaths.ts
similarity index 77%
rename from utils/extractImagePaths.js
rename to features/blogs/utils/extractImagePaths.ts
index d3e30e4..e07eb9b 100644
--- a/utils/extractImagePaths.js
+++ b/features/blogs/utils/extractImagePaths.ts
@@ -1,7 +1,8 @@
// Extracts image paths from a string
-export function extractImagePaths(inputString) {
+export function extractImagePaths(inputString: string): string[] {
const regex =
/(?:https?:\/\/.*\.(?:jpg|jpeg|png|gif|bmp|svg))|(?:\/[^\s]*\.(?:jpg|jpeg|png|gif|bmp|svg))/gi;
const imagePaths = inputString.match(regex);
return imagePaths || [];
}
+
diff --git a/features/blogs/utils/fetchMediumFeed.ts b/features/blogs/utils/fetchMediumFeed.ts
new file mode 100644
index 0000000..68400d7
--- /dev/null
+++ b/features/blogs/utils/fetchMediumFeed.ts
@@ -0,0 +1,19 @@
+import profileData from "@/features/profile/data/profileData"
+
+interface MediumFeedResponse {
+ items: Array<{
+ title: string;
+ description: string;
+ thumbnail?: string;
+ categories: string[];
+ link: string;
+ }>;
+}
+
+// Fetch Medium feed
+export async function fetchMediumFeed(): Promise {
+ const res = await fetch(profileData.mediumFeedURL);
+
+ return await res.json();
+}
+
diff --git a/features/profile/MyAvatar.module.scss b/features/profile/MyAvatar.module.scss
new file mode 100644
index 0000000..bedfc79
--- /dev/null
+++ b/features/profile/MyAvatar.module.scss
@@ -0,0 +1,25 @@
+.paper {
+ height: 180px;
+ width: 180px;
+ object-fit: cover;
+ filter: brightness(0.94);
+ margin: auto;
+ overflow: hidden;
+ border-radius: 50% !important;
+ padding: 2px;
+ background: transparent;
+ background-color: #D670DA !important;
+
+ @media (min-width: 600px) {
+ height: 200px;
+ width: 200px;
+ }
+}
+
+.image {
+ height: 100%;
+ width: 100%;
+ object-fit: cover;
+ border-radius: 50%;
+}
+
diff --git a/features/profile/MyAvatar.tsx b/features/profile/MyAvatar.tsx
new file mode 100644
index 0000000..109d654
--- /dev/null
+++ b/features/profile/MyAvatar.tsx
@@ -0,0 +1,18 @@
+import { Paper } from "@mui/material";
+import React from "react";
+import styles from "./MyAvatar.module.scss";
+
+interface MyAvatarProps {
+ src: string;
+}
+
+function MyAvatar({ src }: MyAvatarProps) {
+ return (
+
+
+
+ );
+}
+
+export default MyAvatar;
+
diff --git a/features/profile/ProfileSection.module.scss b/features/profile/ProfileSection.module.scss
new file mode 100644
index 0000000..1ab4a54
--- /dev/null
+++ b/features/profile/ProfileSection.module.scss
@@ -0,0 +1,138 @@
+$text-shadow: 0.5px 2px 2px #323232, 0 1px 3px #323232;
+
+
+.background {
+ position: relative;
+ min-height: 100vh;
+ background-color: #16277c85; /* deep blue base */
+ overflow: hidden;
+}
+
+/* Wire grid with D670DA orchid base */
+.background::before {
+ content: "";
+ position: absolute;
+ inset: 0;
+ background:
+ /* vertical orchid traces */
+ repeating-linear-gradient(90deg,
+ rgba(214, 112, 218, 0.22) 0px,
+ rgba(214, 112, 218, 0.22) 1px,
+ transparent 1px,
+ transparent 80px),
+ /* horizontal orchid-pink traces */
+ repeating-linear-gradient(0deg,
+ rgba(214, 112, 218, 0.18) 0px,
+ rgba(214, 112, 218, 0.18) 1px,
+ transparent 1px,
+ transparent 120px),
+ /* diagonal soft orchid glow lines */
+ repeating-linear-gradient(135deg,
+ rgba(214, 112, 218, 0.12) 0px,
+ rgba(214, 112, 218, 0.12) 1px,
+ transparent 1px,
+ transparent 160px);
+ mask-image: radial-gradient(circle at center,
+ rgba(0, 0, 0, 1) 45%,
+ rgba(0, 0, 0, 0.4) 70%,
+ transparent 100%);
+ opacity: 0.9;
+ pointer-events: none;
+
+ /* Animate the grid for subtle movement */
+ animation: wire-shimmer 18s linear infinite;
+}
+
+@keyframes wire-shimmer {
+ 0% { background-position: 0 0, 0 0, 0 0; }
+ 50% { background-position: 10px 0, 0 15px, -20px 20px; }
+ 100% { background-position: 0 0, 0 0, 0 0; }
+}
+
+/* Ambient glow layer in orchid */
+.background::after {
+ content: "";
+ position: absolute;
+ inset: -25%;
+ background:
+ radial-gradient(circle at 25% 30%,
+ rgba(214, 112, 218, 0.35),
+ transparent 55%),
+ radial-gradient(circle at 70% 40%,
+ rgba(214, 112, 218, 0.30),
+ transparent 60%),
+ radial-gradient(circle at 50% 70%,
+ rgba(214, 112, 218, 0.28),
+ transparent 65%);
+ filter: blur(80px);
+ animation: energy-drift 28s ease-in-out infinite alternate, glow-pulse 6s ease-in-out infinite alternate;
+ pointer-events: none;
+}
+
+/* Existing gentle drift */
+@keyframes energy-drift {
+ from { transform: translate(-3%, -2%); }
+ to { transform: translate(3%, 2%); }
+}
+
+/* New pulsing glow animation */
+@keyframes glow-pulse {
+ 0% { transform: scale(1); opacity: 0.85; }
+ 50% { transform: scale(1.05); opacity: 0.95; }
+ 100% { transform: scale(1); opacity: 0.85; }
+}
+
+
+.profileContainer {
+ padding: 50px 0;
+}
+
+.contentContainer {
+ text-align: left;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+
+ @media (max-width: 600px) {
+ text-align: center;
+ justify-content: center;
+ }
+}
+
+.name {
+ padding: 0 16px;
+ text-shadow: $text-shadow;
+ margin-top: 0;
+
+ @media (max-width: 600px) {
+ margin-top: 20px;
+ }
+}
+
+.about {
+ font-size: 1.35em;
+ color: #fcfcfc;
+ padding: 0 16px;
+ margin-top: 12px !important;
+ text-shadow: $text-shadow;
+
+ @media (max-width: 600px) {
+ font-size: 1.15em;
+ }
+}
+
+.socialContainer {
+ margin-top: 16px !important;
+ padding: 0 16px;
+}
+
+.avatarContainer {
+ text-align: left;
+ display: flex;
+ justify-content: flex-start;
+
+ @media (max-width: 600px) {
+ text-align: center;
+ justify-content: center;
+ }
+}
\ No newline at end of file
diff --git a/features/profile/ProfileSection.tsx b/features/profile/ProfileSection.tsx
new file mode 100644
index 0000000..a03d8de
--- /dev/null
+++ b/features/profile/ProfileSection.tsx
@@ -0,0 +1,65 @@
+"use client";
+
+import {
+ Container,
+ Grid,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+
+import MyAvatar from "./MyAvatar";
+import SocialLinkButton from "./SocialLinkButton";
+import profileData from "./data/profileData";
+import styles from "./ProfileSection.module.scss";
+
+export default function ProfileSection() {
+ const theme = useTheme();
+ const isMediumOrUp = useMediaQuery(theme.breakpoints.up("md"));
+
+ return (
+
+
+
+
+
+
+
+ {profileData.name}
+
+
+
+ {profileData.about}
+
+
+
+
+
+
+ {profileData.links.map((linkData, index) => (
+
+ ))}
+
+
+
+
+
+
+ );
+}
+
diff --git a/features/profile/SocialLinkButton.module.scss b/features/profile/SocialLinkButton.module.scss
new file mode 100644
index 0000000..fa40c9c
--- /dev/null
+++ b/features/profile/SocialLinkButton.module.scss
@@ -0,0 +1,5 @@
+.fab {
+ margin-right: 12px !important;
+ margin-top: 18px !important;
+}
+
diff --git a/features/profile/SocialLinkButton.tsx b/features/profile/SocialLinkButton.tsx
new file mode 100644
index 0000000..2be9fca
--- /dev/null
+++ b/features/profile/SocialLinkButton.tsx
@@ -0,0 +1,25 @@
+import { Fab } from "@mui/material";
+import React from "react";
+import { IconType } from "react-icons";
+import OuterLink from "@shared/ui/OuterLink";
+import styles from "./SocialLinkButton.module.scss";
+
+interface SocialLinkButtonProps {
+ icon: IconType;
+ link: string;
+ label: string;
+}
+
+function SocialLinkButton({ icon: Icon, link, label }: SocialLinkButtonProps) {
+ return (
+
+
+
+ {label}
+
+
+ );
+}
+
+export default SocialLinkButton;
+
diff --git a/data/profileData.js b/features/profile/data/profileData.ts
similarity index 53%
rename from data/profileData.js
rename to features/profile/data/profileData.ts
index 224650b..ba1c311 100644
--- a/data/profileData.js
+++ b/features/profile/data/profileData.ts
@@ -1,11 +1,30 @@
import { FaGithub, FaLinkedin, FaMedium } from "react-icons/fa";
+import { IconType } from "react-icons";
-const profileData = {
+export interface ProfileData {
+ name: string;
+ avatar: string;
+ backgroundImage: string;
+ about: string;
+ meta: {
+ title: string;
+ url: string;
+ tags: string[];
+ };
+ links: Array<{
+ icon: IconType;
+ link: string;
+ label: string;
+ }>;
+ mediumFeedURL: string;
+}
+
+const profileData: ProfileData = {
name: "Suvansh Rana",
- avatar: "./avatar-v2.jpg",
+ avatar: "./avatar-v3.jpg",
backgroundImage: "./background-blurred-v2.jpg",
about:
- "A software engineer with 4 years of experience specializing in the MERN stack, as well as expertise in React Native and Flutter. Passionate about building innovative solutions and collaborating with driven developers. Enjoys creating impactful software and listening to music.",
+ "Full-stack software engineer with 4.5+ years of experience working with the MERN stack, focused on clean code, performance, and real-world products.",
meta: {
title: "Suvansh Rana's portfolio",
@@ -27,16 +46,19 @@ const profileData = {
links: [
{
- icon: ,
+ icon: FaGithub,
link: "https://github.com/suvnshr",
+ label: "Github",
},
{
- icon: ,
+ icon: FaLinkedin,
link: "https://linkedin.com/in/suvnshr",
+ label: "LinkedIn"
},
{
- icon: ,
+ icon: FaMedium,
link: "https://medium.com/@suvnshr",
+ label: "Medium"
},
],
mediumFeedURL:
@@ -44,3 +66,4 @@ const profileData = {
};
export default profileData;
+
diff --git a/features/projects/ProjectCard.module.scss b/features/projects/ProjectCard.module.scss
new file mode 100644
index 0000000..592a546
--- /dev/null
+++ b/features/projects/ProjectCard.module.scss
@@ -0,0 +1,25 @@
+.card {
+ max-width: 345px;
+ margin-top: 20px;
+ padding: 8px;
+}
+
+.cardMedia {
+ object-fit: fill;
+ height: 210px;
+ filter: brightness(0.8);
+}
+
+.tagChip {
+ margin: 4px 4px 4px 0px;
+ line-height: 1.9;
+}
+
+.cardActions {
+ padding: 8px 16px 12px !important;
+}
+
+.button {
+ padding: 8px 16px;
+}
+
diff --git a/features/projects/ProjectCard.tsx b/features/projects/ProjectCard.tsx
new file mode 100644
index 0000000..f03e818
--- /dev/null
+++ b/features/projects/ProjectCard.tsx
@@ -0,0 +1,87 @@
+import React from "react";
+import Card from "@mui/material/Card";
+import CardActions from "@mui/material/CardActions";
+import CardContent from "@mui/material/CardContent";
+import CardMedia from "@mui/material/CardMedia";
+import Button from "@mui/material/Button";
+import Typography from "@mui/material/Typography";
+
+import { Chip, Grid } from "@mui/material";
+import OuterLink from "../../shared/ui/OuterLink";
+import Margin from "../../shared/ui/Margin";
+import { OpenInNewOutlined } from "@mui/icons-material";
+import { Project } from "./data/projectData";
+import styles from "./ProjectCard.module.scss";
+
+interface ProjectCardProps extends Project {}
+
+export default function ProjectCard({
+ name,
+ description,
+ tags,
+ projectLink,
+ githubLink,
+}: ProjectCardProps) {
+ return (
+
+
+
+ {name}
+
+
+
+
+
+ {tags.map((tag, index) => (
+
+ ))}
+
+
+
+
+ {description}
+
+
+
+
+
+
+
+
+
+
+ {projectLink && (
+
+
+ }
+ >
+ Project
+
+
+
+ )}
+
+
+
+ );
+}
+
diff --git a/features/projects/ProjectSection.tsx b/features/projects/ProjectSection.tsx
new file mode 100644
index 0000000..56afea3
--- /dev/null
+++ b/features/projects/ProjectSection.tsx
@@ -0,0 +1,26 @@
+import React from "react";
+import { Container, Grid, useMediaQuery, useTheme } from "@mui/material";
+import ProjectCard from "./ProjectCard";
+import projectData from "./data/projectData";
+
+function ProjectSection() {
+ const theme = useTheme();
+ const isTabletOrSmaller = useMediaQuery(theme.breakpoints.down("md"));
+
+ return (
+
+ {projectData.map((_projectData, index) => (
+
+
+
+ ))}
+
+ );
+}
+
+export default ProjectSection;
+
diff --git a/data/projectData.js b/features/projects/data/projectData.ts
similarity index 73%
rename from data/projectData.js
rename to features/projects/data/projectData.ts
index c22f514..ca0b2ab 100644
--- a/data/projectData.js
+++ b/features/projects/data/projectData.ts
@@ -1,30 +1,33 @@
-const projectData = [
- {
- name: "Py Manager",
- description: "A simple GUI based package manager for python",
- coverImage:
- "https://raw.githubusercontent.com/suvnshr/py-manager/main/assets/icon.png",
- projectLink:
- "https://github.com/suvnshr/py-manager/releases/tag/v0.1.0-alpha.1",
- githubLink: "https://github.com/suvnshr/py-manager",
- tags: ["package-manager", "electron-js", "desktop"],
- },
+export interface Project {
+ name: string;
+ description: string;
+ tags: string[];
+ projectLink?: string;
+ githubLink: string;
+}
+
+const projectData: Project[] = [
{
name: "DevXplore",
description:
"A search engine for developers for finding Github repos, youtube tutorials, online courses, and documentation faster.",
- coverImage:
- "https://raw.githubusercontent.com/suvnshr/developer-search/dev/static/short-logo.png",
projectLink: "https://devxplore-v2.onrender.com",
githubLink: "https://github.com/suvnshr/developer-search",
tags: ["search-engine", "django", "materialize-css"],
},
+ {
+ name: "Py Manager",
+ description: "A simple GUI based package manager for python",
+ projectLink:
+ "https://github.com/suvnshr/py-manager/releases/tag/v0.1.0-alpha.1",
+ githubLink: "https://github.com/suvnshr/py-manager",
+ tags: ["package-manager", "electron-js", "desktop"],
+ },
+
{
name: "C1O2",
description:
"A futuristic app which calculates your carbon footprint due to Travel, Food and Household activities. Gives you tips to reduce your carbon footprints.",
- coverImage:
- "https://raw.githubusercontent.com/suvnshr/C1O2/master/assets/images/C1O2_icon.png",
tags: ["carbon-footprint-calculator", "flutter", "mobile"],
projectLink: "https://github.com/suvnshr/C1O2/releases/latest",
githubLink: "https://github.com/suvnshr/C1O2",
@@ -34,11 +37,10 @@ const projectData = [
name: "Pucho Kisan",
description:
"A forum for farmers where then can ask questions about the problems they face in farming",
- coverImage:
- "https://raw.githubusercontent.com/aayushbisen/pucho-kisan/master/forum/static/forum/images/icons/icon-144x144.png",
tags: ["forum", "django", "materialize-css"],
githubLink: "https://github.com/aayushbisen/pucho-kisan",
},
];
export default projectData;
+
diff --git a/features/skills/DomainListItem.module.scss b/features/skills/DomainListItem.module.scss
new file mode 100644
index 0000000..7b6cc1f
--- /dev/null
+++ b/features/skills/DomainListItem.module.scss
@@ -0,0 +1,20 @@
+.paper {
+ width: 80vw;
+
+ @media (min-width: 600px) {
+ width: 400px;
+ }
+}
+
+.primaryText {
+ font-size: 1.4em !important;
+ padding-left: 8px;
+}
+
+.chipsContainer {
+ margin-top: 16px;
+ .MuiChip-root {
+ margin: 4px 2px !important;
+ }
+}
+
diff --git a/features/skills/DomainListItem.tsx b/features/skills/DomainListItem.tsx
new file mode 100644
index 0000000..cebabb2
--- /dev/null
+++ b/features/skills/DomainListItem.tsx
@@ -0,0 +1,51 @@
+import React from "react";
+
+import {
+ Paper,
+ Avatar,
+ ListItem,
+ ListItemText,
+ ListItemAvatar,
+ useTheme,
+} from "@mui/material";
+
+import SkillChip from "./SkillChip";
+import { Domain } from "./data/domainData";
+import { IconType } from "react-icons";
+import styles from "./DomainListItem.module.scss";
+
+interface DomainListItemProps {
+ name: string;
+ icon: IconType;
+ skills: Domain["skills"];
+}
+
+export default function DomainListItem({ name, icon: Icon, skills }: DomainListItemProps) {
+ const theme = useTheme();
+
+ return (
+
+
+
+ {skills.map((skillData, index) => (
+
+ ))}
+
+ }
+ />
+
+
+ );
+}
+
diff --git a/features/skills/DomainSection.tsx b/features/skills/DomainSection.tsx
new file mode 100644
index 0000000..e8c38b9
--- /dev/null
+++ b/features/skills/DomainSection.tsx
@@ -0,0 +1,21 @@
+import { Grid, useMediaQuery, useTheme } from "@mui/material";
+import DomainListItem from "./DomainListItem";
+import domainData from "./data/domainData";
+
+export default function DomainSection() {
+ const theme = useTheme();
+ const isTabletOrSmaller = useMediaQuery(theme.breakpoints.down("md"));
+
+ return (
+
+ {domainData.map((_domainData, index) => (
+
+ ))}
+
+ );
+}
+
diff --git a/features/skills/SkillChip.module.scss b/features/skills/SkillChip.module.scss
new file mode 100644
index 0000000..c7871f9
--- /dev/null
+++ b/features/skills/SkillChip.module.scss
@@ -0,0 +1,9 @@
+.chip {
+ margin: 4px !important;
+}
+
+.icon {
+ height: 18px;
+ width: 18px;
+}
+
diff --git a/features/skills/SkillChip.tsx b/features/skills/SkillChip.tsx
new file mode 100644
index 0000000..ba487a3
--- /dev/null
+++ b/features/skills/SkillChip.tsx
@@ -0,0 +1,37 @@
+import { Chip, useTheme } from "@mui/material";
+import React from "react";
+import { IconType } from "react-icons";
+import OuterLink from "../../shared/ui/OuterLink";
+import styles from "./SkillChip.module.scss";
+
+interface SkillChipProps {
+ name: string;
+ SkillIcon?: IconType;
+ about_link: string;
+}
+
+function SkillChip({ name, SkillIcon, about_link }: SkillChipProps) {
+ const theme = useTheme();
+
+ return (
+
+
+ ) : null
+ }
+ className={styles.chip}
+ label={name}
+ onClick={() => null}
+ />
+
+ );
+}
+
+export default SkillChip;
+
diff --git a/data/domainData.js b/features/skills/data/domainData.ts
similarity index 79%
rename from data/domainData.js
rename to features/skills/data/domainData.ts
index b1261ba..59370eb 100644
--- a/data/domainData.js
+++ b/features/skills/data/domainData.ts
@@ -19,11 +19,24 @@ import {
FaReact,
FaTools,
} from "react-icons/fa";
+import { IconType } from "react-icons";
-const domainData = [
+export interface Skill {
+ name: string;
+ SkillIcon: IconType;
+ about_link: string;
+}
+
+export interface Domain {
+ name: string;
+ icon: IconType;
+ skills: Skill[];
+}
+
+const domainData: Domain[] = [
{
name: "Web Development",
- icon: ,
+ icon: FiGlobe,
skills: [
{
name: "React.js",
@@ -54,7 +67,7 @@ const domainData = [
},
{
name: "Mobile development",
- icon: ,
+ icon: ImMobile2,
skills: [
{
SkillIcon: RiFlutterFill,
@@ -70,7 +83,7 @@ const domainData = [
},
{
name: "Programming Languages",
- icon: ,
+ icon: IoCodeSlash,
skills: [
{
name: "Python",
@@ -79,9 +92,10 @@ const domainData = [
"https://en.wikipedia.org/wiki/Python_(programming_language)",
},
{
- name: "Javascript",
+ name: "JavaScript",
SkillIcon: DiJavascript1,
- about_link: "https://en.wikipedia.org/wiki/JavaScript",
+ about_link:
+ "https://en.wikipedia.org/wiki/JavaScript",
},
{
name: "Dart",
@@ -91,42 +105,43 @@ const domainData = [
],
},
{
- name: "Design System",
- icon: ,
+ name: "DevOps & Tools",
+ icon: FaTools,
skills: [
{
- name: "Material Design",
- SkillIcon: SiMaterialdesign,
- about_link: "https://en.wikipedia.org/wiki/Material_Design",
+ name: "Docker",
+ SkillIcon: FaDocker,
+ about_link: "https://en.wikipedia.org/wiki/Docker_(software)",
},
{
- name: "Ant Design",
- SkillIcon: SiAntdesign,
- about_link: "https://en.wikipedia.org/wiki/Docker_(software)",
+ name: "Nginx",
+ SkillIcon: SiNginx,
+ about_link: "https://en.wikipedia.org/wiki/Nginx",
+ },
+ {
+ name: "Ansible",
+ SkillIcon: SiAnsible,
+ about_link: "https://en.wikipedia.org/wiki/Ansible_(software)",
},
],
},
{
- name: "Devops",
- icon: ,
+ name: "Design",
+ icon: FaPalette,
skills: [
{
- name: "Docker",
- SkillIcon: FaDocker,
- about_link: "https://en.wikipedia.org/wiki/Docker_(software)",
- },
- {
- name: "Ansible",
- SkillIcon: SiAnsible,
- about_link: "https://en.wikipedia.org/wiki/Docker_(software)",
+ name: "Material Design",
+ SkillIcon: SiMaterialdesign,
+ about_link: "https://en.wikipedia.org/wiki/Material_Design",
},
{
- name: "Nginx",
- SkillIcon: SiNginx,
- about_link: "https://en.wikipedia.org/wiki/Docker_(software)",
+ name: "Ant Design",
+ SkillIcon: SiAntdesign,
+ about_link: "https://en.wikipedia.org/wiki/Ant_Design",
},
],
},
];
export default domainData;
+
diff --git a/next-env.d.ts b/next-env.d.ts
new file mode 100644
index 0000000..c4b7818
--- /dev/null
+++ b/next-env.d.ts
@@ -0,0 +1,6 @@
+///
+///
+import "./.next/dev/types/routes.d.ts";
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/next.config.js b/next.config.ts
similarity index 50%
rename from next.config.js
rename to next.config.ts
index 2e80960..03fcbbd 100644
--- a/next.config.js
+++ b/next.config.ts
@@ -1,7 +1,15 @@
-const debug = process.env.NODE_ENV !== "production";
+import type { NextConfig } from "next";
+const debug = process.env.NODE_ENV !== "production";
const githubUsername = "suvnshr";
-module.exports = {
+const nextConfig: NextConfig = {
+ output: "export",
assetPrefix: !debug ? `https://${githubUsername}.github.io/` : "/",
+ images: {
+ unoptimized: true,
+ },
};
+
+export default nextConfig;
+
diff --git a/package-lock.json b/package-lock.json
index 5946c21..a632844 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,134 +1,257 @@
{
"name": "portfolio-next",
"version": "0.1.0",
- "lockfileVersion": 2,
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "portfolio-next",
"version": "0.1.0",
"dependencies": {
- "@material-ui/core": "^4.11.3",
- "@material-ui/icons": "^4.11.2",
+ "@emotion/react": "^11.13.0",
+ "@emotion/styled": "^11.13.0",
+ "@makotot/ghostui": "^2.0.0",
+ "@mui/icons-material": "^7.3.6",
+ "@mui/material": "^7.3.6",
"autoprefixer": "^10.2.5",
"clean-css": "^5.1.2",
"html-to-text": "^7.0.0",
- "next": "12.3.0",
+ "next": "^16.1.1",
"postcss": "^8.1.7",
- "react": "17.0.2",
- "react-dom": "17.0.2",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3",
"react-icons": "^5.4.0",
- "react-scrollspy": "^3.4.3",
+ "sass": "^1.97.1",
"swiper": "^11.1.15"
+ },
+ "devDependencies": {
+ "@types/html-to-text": "^9.0.4",
+ "@types/node": "22.19.3",
+ "@types/react": "^19.0.8",
+ "@types/react-dom": "^19.0.3",
+ "@types/react-scrollspy": "^3.3.9",
+ "typescript": "5.9.3"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@babel/runtime": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
- "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+ "node_modules/@babel/generator": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz",
+ "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==",
+ "license": "MIT",
"dependencies": {
- "regenerator-runtime": "^0.13.4"
+ "@babel/parser": "^7.28.5",
+ "@babel/types": "^7.28.5",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@emotion/hash": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
- "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
- },
- "node_modules/@material-ui/core": {
- "version": "4.11.3",
- "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.3.tgz",
- "integrity": "sha512-Adt40rGW6Uds+cAyk3pVgcErpzU/qxc7KBR94jFHBYretU4AtWZltYcNsbeMn9tXL86jjVL1kuGcIHsgLgFGRw==",
- "deprecated": "You can now upgrade to @mui/material. See the guide: https://mui.com/guides/migration-v4/",
- "dependencies": {
- "@babel/runtime": "^7.4.4",
- "@material-ui/styles": "^4.11.3",
- "@material-ui/system": "^4.11.3",
- "@material-ui/types": "^5.1.0",
- "@material-ui/utils": "^4.11.2",
- "@types/react-transition-group": "^4.2.0",
- "clsx": "^1.0.4",
- "hoist-non-react-statics": "^3.3.2",
- "popper.js": "1.16.1-lts",
- "prop-types": "^15.7.2",
- "react-is": "^16.8.0 || ^17.0.0",
- "react-transition-group": "^4.4.0"
- },
- "engines": {
- "node": ">=8.0.0"
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
+ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/material-ui"
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz",
+ "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.5"
},
- "peerDependencies": {
- "@types/react": "^16.8.6 || ^17.0.0",
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
+ "bin": {
+ "parser": "bin/babel-parser.js"
},
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
+ "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@material-ui/icons": {
- "version": "4.11.2",
- "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz",
- "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==",
- "deprecated": "You can now upgrade to @mui/icons. See the guide: https://mui.com/guides/migration-v4/",
+ "node_modules/@babel/template": {
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
+ "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.4.4"
+ "@babel/code-frame": "^7.27.1",
+ "@babel/parser": "^7.27.2",
+ "@babel/types": "^7.27.1"
},
"engines": {
- "node": ">=8.0.0"
- },
- "peerDependencies": {
- "@material-ui/core": "^4.0.0",
- "@types/react": "^16.8.6 || ^17.0.0",
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz",
+ "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.5",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.28.5",
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.5",
+ "debug": "^4.3.1"
},
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@material-ui/styles": {
- "version": "4.11.3",
- "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.3.tgz",
- "integrity": "sha512-HzVzCG+PpgUGMUYEJ2rTEmQYeonGh41BYfILNFb/1ueqma+p1meSdu4RX6NjxYBMhf7k+jgfHFTTz+L1SXL/Zg==",
- "deprecated": "You can now upgrade to @mui/styles. See the guide: https://mui.com/guides/migration-v4/",
- "dependencies": {
- "@babel/runtime": "^7.4.4",
- "@emotion/hash": "^0.8.0",
- "@material-ui/types": "^5.1.0",
- "@material-ui/utils": "^4.11.2",
- "clsx": "^1.0.4",
- "csstype": "^2.5.2",
- "hoist-non-react-statics": "^3.3.2",
- "jss": "^10.5.1",
- "jss-plugin-camel-case": "^10.5.1",
- "jss-plugin-default-unit": "^10.5.1",
- "jss-plugin-global": "^10.5.1",
- "jss-plugin-nested": "^10.5.1",
- "jss-plugin-props-sort": "^10.5.1",
- "jss-plugin-rule-value-function": "^10.5.1",
- "jss-plugin-vendor-prefixer": "^10.5.1",
- "prop-types": "^15.7.2"
- },
- "engines": {
- "node": ">=8.0.0"
+ "node_modules/@babel/types": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz",
+ "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/material-ui"
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz",
+ "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.13.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
+ "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/serialize": "^1.3.3",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
+ "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/sheet": "^1.4.0",
+ "@emotion/utils": "^1.4.2",
+ "@emotion/weak-memoize": "^0.4.0",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
+ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz",
+ "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
+ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
+ "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/cache": "^11.14.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2",
+ "@emotion/weak-memoize": "^0.4.0",
+ "hoist-non-react-statics": "^3.3.1"
},
"peerDependencies": {
- "@types/react": "^16.8.6 || ^17.0.0",
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
+ "react": ">=16.8.0"
},
"peerDependenciesMeta": {
"@types/react": {
@@ -136,28 +259,41 @@
}
}
},
- "node_modules/@material-ui/system": {
- "version": "4.11.3",
- "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz",
- "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==",
- "deprecated": "You can now upgrade to @mui/system. See the guide: https://mui.com/guides/migration-v4/",
+ "node_modules/@emotion/serialize": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
+ "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.4.4",
- "@material-ui/utils": "^4.11.2",
- "csstype": "^2.5.2",
- "prop-types": "^15.7.2"
- },
- "engines": {
- "node": ">=8.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/material-ui"
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/unitless": "^0.10.0",
+ "@emotion/utils": "^1.4.2",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
+ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.14.1",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
+ "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/is-prop-valid": "^1.3.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2"
},
"peerDependencies": {
- "@types/react": "^16.8.6 || ^17.0.0",
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
},
"peerDependenciesMeta": {
"@types/react": {
@@ -165,339 +301,1372 @@
}
}
},
- "node_modules/@material-ui/types": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
- "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==",
+ "node_modules/@emotion/unitless": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
+ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
+ "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
+ "license": "MIT",
"peerDependencies": {
- "@types/react": "*"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "react": ">=16.8.0"
}
},
- "node_modules/@material-ui/utils": {
- "version": "4.11.2",
- "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz",
- "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==",
- "dependencies": {
- "@babel/runtime": "^7.4.4",
- "prop-types": "^15.7.2",
- "react-is": "^16.8.0 || ^17.0.0"
- },
+ "node_modules/@emotion/utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
+ "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
+ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
+ "license": "MIT"
+ },
+ "node_modules/@img/colour": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz",
+ "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
+ "license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=8.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
+ "node": ">=18"
}
},
- "node_modules/@next/env": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz",
- "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w=="
- },
- "node_modules/@next/swc-android-arm-eabi": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz",
- "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==",
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz",
+ "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==",
"cpu": [
- "arm"
+ "arm64"
],
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "android"
+ "darwin"
],
"engines": {
- "node": ">= 10"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.2.4"
}
},
- "node_modules/@next/swc-android-arm64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz",
- "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==",
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz",
+ "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==",
"cpu": [
- "arm64"
+ "x64"
],
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "android"
+ "darwin"
],
"engines": {
- "node": ">= 10"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.2.4"
}
},
- "node_modules/@next/swc-darwin-arm64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz",
- "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==",
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz",
+ "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==",
"cpu": [
"arm64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"darwin"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-darwin-x64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz",
- "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==",
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz",
+ "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==",
"cpu": [
"x64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"darwin"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-freebsd-x64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz",
- "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==",
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz",
+ "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==",
"cpu": [
- "x64"
+ "arm"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
- "freebsd"
+ "linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-linux-arm-gnueabihf": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz",
- "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==",
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz",
+ "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==",
"cpu": [
- "arm"
+ "arm64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz",
- "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==",
+ "node_modules/@img/sharp-libvips-linux-ppc64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz",
+ "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==",
"cpu": [
- "arm64"
+ "ppc64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz",
- "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==",
+ "node_modules/@img/sharp-libvips-linux-riscv64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz",
+ "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==",
"cpu": [
- "arm64"
+ "riscv64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz",
- "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==",
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz",
+ "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==",
"cpu": [
- "x64"
+ "s390x"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz",
- "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==",
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz",
+ "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==",
"cpu": [
"x64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz",
- "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==",
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz",
+ "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==",
"cpu": [
"arm64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
- "win32"
+ "linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-win32-ia32-msvc": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz",
- "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==",
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz",
+ "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==",
"cpu": [
- "ia32"
+ "x64"
],
+ "license": "LGPL-3.0-or-later",
"optional": true,
"os": [
- "win32"
+ "linux"
],
- "engines": {
- "node": ">= 10"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
}
},
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz",
- "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==",
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz",
+ "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==",
"cpu": [
- "x64"
+ "arm"
],
+ "license": "Apache-2.0",
"optional": true,
"os": [
- "win32"
+ "linux"
],
"engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@swc/helpers": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz",
- "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.3",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
- "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
- },
- "node_modules/@types/react": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz",
- "integrity": "sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==",
- "dependencies": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-transition-group": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz",
- "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@types/react/node_modules/csstype": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
- "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
- },
- "node_modules/@types/scheduler": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
- "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
- },
- "node_modules/autoprefixer": {
- "version": "10.2.5",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz",
- "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==",
- "dependencies": {
- "browserslist": "^4.16.3",
- "caniuse-lite": "^1.0.30001196",
- "colorette": "^1.2.2",
- "fraction.js": "^4.0.13",
- "normalize-range": "^0.1.2",
- "postcss-value-parser": "^4.1.0"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
- "bin": {
- "autoprefixer": "bin/autoprefixer"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
},
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz",
+ "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^10 || ^12 || >=14"
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
+ "url": "https://opencollective.com/libvips"
},
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.2.4"
}
},
- "node_modules/autoprefixer/node_modules/browserslist": {
- "version": "4.21.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
- "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
+ "node_modules/@img/sharp-linux-ppc64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz",
+ "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==",
+ "cpu": [
+ "ppc64"
],
- "dependencies": {
- "caniuse-lite": "^1.0.30001370",
- "electron-to-chromium": "^1.4.202",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.5"
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
- "bin": {
- "browserslist": "cli.js"
+ "funding": {
+ "url": "https://opencollective.com/libvips"
},
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-ppc64": "1.2.4"
}
},
- "node_modules/autoprefixer/node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
- },
- "node_modules/autoprefixer/node_modules/update-browserslist-db": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz",
- "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==",
+ "node_modules/@img/sharp-linux-riscv64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz",
+ "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-riscv64": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz",
+ "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz",
+ "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz",
+ "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz",
+ "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.2.4"
+ }
+ },
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz",
+ "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^1.7.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-arm64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz",
+ "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz",
+ "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-x64": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
+ "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@makotot/ghostui": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@makotot/ghostui/-/ghostui-2.0.0.tgz",
+ "integrity": "sha512-LD6OeMv+yGjpYZNjh34yDTCIE1NegqOtJq5gm4wX6op3QL7K5psTVzMjkWzseBoYj0XOD4g+UJVIZTprfoOPGg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=16"
+ }
+ },
+ "node_modules/@mui/core-downloads-tracker": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.6.tgz",
+ "integrity": "sha512-QaYtTHlr8kDFN5mE1wbvVARRKH7Fdw1ZuOjBJcFdVpfNfRYKF3QLT4rt+WaB6CKJvpqxRsmEo0kpYinhH5GeHg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ }
+ },
+ "node_modules/@mui/icons-material": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.6.tgz",
+ "integrity": "sha512-0FfkXEj22ysIq5pa41A2NbcAhJSvmcZQ/vcTIbjDsd6hlslG82k5BEBqqS0ZJprxwIL3B45qpJ+bPHwJPlF7uQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@mui/material": "^7.3.6",
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.6.tgz",
+ "integrity": "sha512-R4DaYF3dgCQCUAkr4wW1w26GHXcf5rCmBRHVBuuvJvaGLmZdD8EjatP80Nz5JCw0KxORAzwftnHzXVnjR8HnFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4",
+ "@mui/core-downloads-tracker": "^7.3.6",
+ "@mui/system": "^7.3.6",
+ "@mui/types": "^7.4.9",
+ "@mui/utils": "^7.3.6",
+ "@popperjs/core": "^2.11.8",
+ "@types/react-transition-group": "^4.4.12",
+ "clsx": "^2.1.1",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1",
+ "react-is": "^19.2.0",
+ "react-transition-group": "^4.4.5"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@mui/material-pigment-css": "^7.3.6",
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@mui/material-pigment-css": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/private-theming": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.6.tgz",
+ "integrity": "sha512-Ws9wZpqM+FlnbZXaY/7yvyvWQo1+02Tbx50mVdNmzWEi51C51y56KAbaDCYyulOOBL6BJxuaqG8rNNuj7ivVyw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4",
+ "@mui/utils": "^7.3.6",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styled-engine": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.6.tgz",
+ "integrity": "sha512-+wiYbtvj+zyUkmDB+ysH6zRjuQIJ+CM56w0fEXV+VDNdvOuSywG+/8kpjddvvlfMLsaWdQe5oTuYGBcodmqGzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4",
+ "@emotion/cache": "^11.14.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/sheet": "^1.4.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.3.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/system": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.6.tgz",
+ "integrity": "sha512-8fehAazkHNP1imMrdD2m2hbA9sl7Ur6jfuNweh5o4l9YPty4iaZzRXqYvBCWQNwFaSHmMEj2KPbyXGp7Bt73Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4",
+ "@mui/private-theming": "^7.3.6",
+ "@mui/styled-engine": "^7.3.6",
+ "@mui/types": "^7.4.9",
+ "@mui/utils": "^7.3.6",
+ "clsx": "^2.1.1",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/types": {
+ "version": "7.4.9",
+ "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.9.tgz",
+ "integrity": "sha512-dNO8Z9T2cujkSIaCnWwprfeKmTWh97cnjkgmpFJ2sbfXLx8SMZijCYHOtP/y5nnUb/Rm2omxbDMmtUoSaUtKaw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/utils": {
+ "version": "7.3.6",
+ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.6.tgz",
+ "integrity": "sha512-jn+Ba02O6PiFs7nKva8R2aJJ9kJC+3kQ2R0BbKNY3KQQ36Qng98GnPRFTlbwYTdMD6hLEBKaMLUktyg/rTfd2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.28.4",
+ "@mui/types": "^7.4.9",
+ "@types/prop-types": "^15.7.15",
+ "clsx": "^2.1.1",
+ "prop-types": "^15.8.1",
+ "react-is": "^19.2.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@next/env": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.1.tgz",
+ "integrity": "sha512-3oxyM97Sr2PqiVyMyrZUtrtM3jqqFxOQJVuKclDsgj/L728iZt/GyslkN4NwarledZATCenbk4Offjk1hQmaAA==",
+ "license": "MIT"
+ },
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.1.tgz",
+ "integrity": "sha512-JS3m42ifsVSJjSTzh27nW+Igfha3NdBOFScr9C80hHGrWx55pTrVL23RJbqir7k7/15SKlrLHhh/MQzqBBYrQA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.1.tgz",
+ "integrity": "sha512-hbyKtrDGUkgkyQi1m1IyD3q4I/3m9ngr+V93z4oKHrPcmxwNL5iMWORvLSGAf2YujL+6HxgVvZuCYZfLfb4bGw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.1.tgz",
+ "integrity": "sha512-/fvHet+EYckFvRLQ0jPHJCUI5/B56+2DpI1xDSvi80r/3Ez+Eaa2Yq4tJcRTaB1kqj/HrYKn8Yplm9bNoMJpwQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.1.tgz",
+ "integrity": "sha512-MFHrgL4TXNQbBPzkKKur4Fb5ICEJa87HM7fczFs2+HWblM7mMLdco3dvyTI+QmLBU9xgns/EeeINSZD6Ar+oLg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.1.tgz",
+ "integrity": "sha512-20bYDfgOQAPUkkKBnyP9PTuHiJGM7HzNBbuqmD0jiFVZ0aOldz+VnJhbxzjcSabYsnNjMPsE0cyzEudpYxsrUQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.1.tgz",
+ "integrity": "sha512-9pRbK3M4asAHQRkwaXwu601oPZHghuSC8IXNENgbBSyImHv/zY4K5udBusgdHkvJ/Tcr96jJwQYOll0qU8+fPA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.1.tgz",
+ "integrity": "sha512-bdfQkggaLgnmYrFkSQfsHfOhk/mCYmjnrbRCGgkMcoOBZ4n+TRRSLmT/CU5SATzlBJ9TpioUyBW/vWFXTqQRiA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-x64-msvc": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.1.tgz",
+ "integrity": "sha512-Ncwbw2WJ57Al5OX0k4chM68DKhEPlrXBaSXDCi2kPi5f4d8b3ejr3RRJGfKBLrn2YJL5ezNS7w2TZLHSti8CMw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@popperjs/core": {
+ "version": "2.11.8",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
+ "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@types/html-to-text": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/@types/html-to-text/-/html-to-text-9.0.4.tgz",
+ "integrity": "sha512-pUY3cKH/Nm2yYrEmDlPR1mR7yszjGx4DrwPjQ702C4/D5CwHuZTgZdIdwPkRbcuhs7BAh2L5rg3CL5cbRiGTCQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.19.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz",
+ "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "19.2.7",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz",
+ "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==",
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.2.3",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
+ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
+ }
+ },
+ "node_modules/@types/react-scrollspy": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@types/react-scrollspy/-/react-scrollspy-3.3.9.tgz",
+ "integrity": "sha512-rOi649b3M5j/AHU1vEGsXbA3LgkeiOnhrOJnPrBOjdR82d9Dao+iI0LWqqR9xjiPtFMnWWjog+w2yjuAtTvFdw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.12",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz",
+ "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.23",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
+ "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001760",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/babel-plugin-macros": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
+ "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "cosmiconfig": "^7.0.0",
+ "resolve": "^1.19.0"
+ },
+ "engines": {
+ "node": ">=10",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.9.11",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
+ "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
"funding": [
{
"type": "opencollective",
@@ -506,37 +1675,40 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
},
"bin": {
- "browserslist-lint": "cli.js"
+ "browserslist": "cli.js"
},
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dependencies": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/babel-runtime/node_modules/regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
- },
"node_modules/caniuse-lite": {
- "version": "1.0.30001690",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz",
- "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==",
+ "version": "1.0.30001762",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz",
+ "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==",
"funding": [
{
"type": "opencollective",
@@ -553,15 +1725,26 @@
],
"license": "CC-BY-4.0"
},
- "node_modules/classnames": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
- "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
},
"node_modules/clean-css": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz",
- "integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+ "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+ "license": "MIT",
"dependencies": {
"source-map": "~0.6.0"
},
@@ -573,73 +1756,111 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "license": "MIT"
+ },
"node_modules/clsx": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
- "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "license": "MIT"
},
- "node_modules/core-js": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
- "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
- "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.",
- "hasInstallScript": true
- },
- "node_modules/css-vendor": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
- "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
+ "node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.8.3",
- "is-in-browser": "^1.0.2"
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/csstype": {
- "version": "2.6.16",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.16.tgz",
- "integrity": "sha512-61FBWoDHp/gRtsoDkq/B1nWrCUG/ok1E3tUrcNbZjsE9Cxd9yzUirjS3+nAATB8U4cTtaQmAHbNndoFz5L6C9Q=="
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
},
"node_modules/deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/dom-helpers": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz",
- "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.8.7",
"csstype": "^3.0.2"
}
},
- "node_modules/dom-helpers/node_modules/csstype": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
- "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
- },
"node_modules/dom-serializer": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
- "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "license": "MIT",
"dependencies": {
"domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
+ "domhandler": "^4.2.0",
"entities": "^2.0.0"
},
"funding": {
@@ -647,22 +1868,24 @@
}
},
"node_modules/domelementtype": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
- "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
- ]
+ ],
+ "license": "BSD-2-Clause"
},
"node_modules/domhandler": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
- "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "license": "BSD-2-Clause",
"dependencies": {
- "domelementtype": "^2.1.0"
+ "domelementtype": "^2.2.0"
},
"engines": {
"node": ">= 4"
@@ -672,51 +1895,122 @@
}
},
"node_modules/domutils": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz",
- "integrity": "sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^1.0.1",
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0"
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
},
"funding": {
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.247",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz",
- "integrity": "sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw=="
+ "version": "1.5.267",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
+ "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+ "license": "ISC"
},
"node_modules/entities": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "license": "BSD-2-Clause",
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/error-ex": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "license": "MIT"
+ },
"node_modules/fraction.js": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz",
- "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==",
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "license": "MIT",
"engines": {
"node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "license": "MIT",
"bin": {
"he": "bin/he"
}
@@ -725,19 +2019,27 @@
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "license": "BSD-3-Clause",
"dependencies": {
"react-is": "^16.7.0"
}
},
+ "node_modules/hoist-non-react-statics/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
"node_modules/html-to-text": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-7.0.0.tgz",
- "integrity": "sha512-UR/WMSHRN8m+L7qQUhbSoxylwBovNPS+xURn/pHeJvbnemhyMiuPYBTBGqB6s8ajAARN5jzKfF0d3CY86VANpA==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-7.1.3.tgz",
+ "integrity": "sha512-bnQRVDGgprdYkDRme4BH5xTxFo9ESorrfMHBWjtdgNVGkthXXQIGbmp3PRIjJVcaCP4mJMSuXtBi/lHqUCHUzw==",
+ "license": "MIT",
"dependencies": {
"deepmerge": "^4.2.2",
"he": "^1.2.0",
- "htmlparser2": "^6.0.0",
- "minimist": "^1.2.5"
+ "htmlparser2": "^6.1.0",
+ "minimist": "^1.2.6"
},
"bin": {
"html-to-text": "bin/cli.js"
@@ -747,9 +2049,9 @@
}
},
"node_modules/htmlparser2": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.1.tgz",
- "integrity": "sha512-GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -757,128 +2059,125 @@
"url": "https://github.com/sponsors/fb55"
}
],
+ "license": "MIT",
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
- "domutils": "^2.4.4",
+ "domutils": "^2.5.2",
"entities": "^2.0.0"
}
},
- "node_modules/hyphenate-style-name": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
- "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ "node_modules/immutable": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz",
+ "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==",
+ "license": "MIT"
},
- "node_modules/indefinite-observable": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz",
- "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==",
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "license": "MIT",
"dependencies": {
- "symbol-observable": "1.2.0"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-in-browser": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
- "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
},
- "node_modules/jss": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz",
- "integrity": "sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw==",
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.3.1",
- "csstype": "^3.0.2",
- "indefinite-observable": "^2.0.1",
- "is-in-browser": "^1.1.3",
- "tiny-warning": "^1.0.2"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/jss"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/jss-plugin-camel-case": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz",
- "integrity": "sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A==",
- "dependencies": {
- "@babel/runtime": "^7.3.1",
- "hyphenate-style-name": "^1.0.3",
- "jss": "10.6.0"
- }
- },
- "node_modules/jss-plugin-default-unit": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz",
- "integrity": "sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w==",
- "dependencies": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0"
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/jss-plugin-global": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz",
- "integrity": "sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w==",
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0"
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/jss-plugin-nested": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz",
- "integrity": "sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g==",
- "dependencies": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0",
- "tiny-warning": "^1.0.2"
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.12.0"
}
},
- "node_modules/jss-plugin-props-sort": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz",
- "integrity": "sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw==",
- "dependencies": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0"
- }
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
},
- "node_modules/jss-plugin-rule-value-function": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz",
- "integrity": "sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA==",
- "dependencies": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0",
- "tiny-warning": "^1.0.2"
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/jss-plugin-vendor-prefixer": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz",
- "integrity": "sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ==",
- "dependencies": {
- "@babel/runtime": "^7.3.1",
- "css-vendor": "^2.0.8",
- "jss": "10.6.0"
- }
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT"
},
- "node_modules/jss/node_modules/csstype": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
- "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -886,15 +2185,39 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
"node_modules/minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
},
"node_modules/nanoid": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
- "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
@@ -910,50 +2233,51 @@
}
},
"node_modules/next": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz",
- "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==",
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/next/-/next-16.1.1.tgz",
+ "integrity": "sha512-QI+T7xrxt1pF6SQ/JYFz95ro/mg/1Znk5vBebsWwbpejj1T0A23hO7GYEaVac9QUOT2BIMiuzm0L99ooq7k0/w==",
+ "license": "MIT",
"dependencies": {
- "@next/env": "12.3.0",
- "@swc/helpers": "0.4.11",
- "caniuse-lite": "^1.0.30001332",
- "postcss": "8.4.14",
- "styled-jsx": "5.0.6",
- "use-sync-external-store": "1.2.0"
+ "@next/env": "16.1.1",
+ "@swc/helpers": "0.5.15",
+ "baseline-browser-mapping": "^2.8.3",
+ "caniuse-lite": "^1.0.30001579",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.6"
},
"bin": {
"next": "dist/bin/next"
},
"engines": {
- "node": ">=12.22.0"
+ "node": ">=20.9.0"
},
"optionalDependencies": {
- "@next/swc-android-arm-eabi": "12.3.0",
- "@next/swc-android-arm64": "12.3.0",
- "@next/swc-darwin-arm64": "12.3.0",
- "@next/swc-darwin-x64": "12.3.0",
- "@next/swc-freebsd-x64": "12.3.0",
- "@next/swc-linux-arm-gnueabihf": "12.3.0",
- "@next/swc-linux-arm64-gnu": "12.3.0",
- "@next/swc-linux-arm64-musl": "12.3.0",
- "@next/swc-linux-x64-gnu": "12.3.0",
- "@next/swc-linux-x64-musl": "12.3.0",
- "@next/swc-win32-arm64-msvc": "12.3.0",
- "@next/swc-win32-ia32-msvc": "12.3.0",
- "@next/swc-win32-x64-msvc": "12.3.0"
+ "@next/swc-darwin-arm64": "16.1.1",
+ "@next/swc-darwin-x64": "16.1.1",
+ "@next/swc-linux-arm64-gnu": "16.1.1",
+ "@next/swc-linux-arm64-musl": "16.1.1",
+ "@next/swc-linux-x64-gnu": "16.1.1",
+ "@next/swc-linux-x64-musl": "16.1.1",
+ "@next/swc-win32-arm64-msvc": "16.1.1",
+ "@next/swc-win32-x64-msvc": "16.1.1",
+ "sharp": "^0.34.4"
},
"peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^6.0.0 || ^7.0.0",
- "react": "^17.0.2 || ^18.0.0-0",
- "react-dom": "^17.0.2 || ^18.0.0-0",
+ "@opentelemetry/api": "^1.1.0",
+ "@playwright/test": "^1.51.1",
+ "babel-plugin-react-compiler": "*",
+ "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
+ "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
"sass": "^1.3.0"
},
"peerDependenciesMeta": {
- "fibers": {
+ "@opentelemetry/api": {
"optional": true
},
- "node-sass": {
+ "@playwright/test": {
+ "optional": true
+ },
+ "babel-plugin-react-compiler": {
"optional": true
},
"sass": {
@@ -961,36 +2285,124 @@
}
}
},
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "node_modules/next/node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^10 || ^12 || >=14"
}
},
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "license": "MIT"
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/popper.js": {
- "version": "1.16.1-lts",
- "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
- "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
"node_modules/postcss": {
- "version": "8.4.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
- "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
@@ -999,90 +2411,86 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "nanoid": "^3.3.4",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postcss-value-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
- "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "license": "MIT"
},
"node_modules/prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
- "react-is": "^16.8.1"
+ "react-is": "^16.13.1"
}
},
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
"node_modules/react": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
- "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- },
+ "version": "19.2.3",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
+ "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "version": "19.2.3",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz",
+ "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==",
+ "license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
+ "scheduler": "^0.27.0"
},
"peerDependencies": {
- "react": "17.0.2"
+ "react": "^19.2.3"
}
},
"node_modules/react-icons": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz",
- "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz",
+ "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==",
"license": "MIT",
"peerDependencies": {
"react": "*"
}
},
"node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "node_modules/react-scrollspy": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/react-scrollspy/-/react-scrollspy-3.4.3.tgz",
- "integrity": "sha512-c2QZpMPWxm1HF71h1EqaxBldx2zLYO0aZ24Bcuo2mUWF79T+F6qOtr7XJCzUDm99NOwhVKQD01a7A8VC6c90CQ==",
- "deprecated": "No longer actively maintained. Please use @makotot/ghostui instead.",
- "dependencies": {
- "babel-runtime": "^6.26.0",
- "classnames": "^2.2.5",
- "prop-types": "^15.5.10"
- },
- "peerDependencies": {
- "react": ">=0.14.0",
- "react-dom": ">=0.14.0"
- }
+ "version": "19.2.3",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz",
+ "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==",
+ "license": "MIT"
},
"node_modules/react-transition-group": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
- "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/runtime": "^7.5.5",
"dom-helpers": "^5.0.1",
@@ -1094,37 +2502,173 @@
"react-dom": ">=16.6.0"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.13.7",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
- "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.97.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.1.tgz",
+ "integrity": "sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A==",
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
},
"node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "optional": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sharp": {
+ "version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz",
+ "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "optional": true,
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "@img/colour": "^1.0.0",
+ "detect-libc": "^2.1.2",
+ "semver": "^7.7.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-darwin-arm64": "0.34.5",
+ "@img/sharp-darwin-x64": "0.34.5",
+ "@img/sharp-libvips-darwin-arm64": "1.2.4",
+ "@img/sharp-libvips-darwin-x64": "1.2.4",
+ "@img/sharp-libvips-linux-arm": "1.2.4",
+ "@img/sharp-libvips-linux-arm64": "1.2.4",
+ "@img/sharp-libvips-linux-ppc64": "1.2.4",
+ "@img/sharp-libvips-linux-riscv64": "1.2.4",
+ "@img/sharp-libvips-linux-s390x": "1.2.4",
+ "@img/sharp-libvips-linux-x64": "1.2.4",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.2.4",
+ "@img/sharp-libvips-linuxmusl-x64": "1.2.4",
+ "@img/sharp-linux-arm": "0.34.5",
+ "@img/sharp-linux-arm64": "0.34.5",
+ "@img/sharp-linux-ppc64": "0.34.5",
+ "@img/sharp-linux-riscv64": "0.34.5",
+ "@img/sharp-linux-s390x": "0.34.5",
+ "@img/sharp-linux-x64": "0.34.5",
+ "@img/sharp-linuxmusl-arm64": "0.34.5",
+ "@img/sharp-linuxmusl-x64": "0.34.5",
+ "@img/sharp-wasm32": "0.34.5",
+ "@img/sharp-win32-arm64": "0.34.5",
+ "@img/sharp-win32-ia32": "0.34.5",
+ "@img/sharp-win32-x64": "0.34.5"
+ }
+ },
+ "node_modules/sharp/node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/styled-jsx": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz",
- "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
+ "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
+ "license": "MIT",
+ "dependencies": {
+ "client-only": "0.0.1"
+ },
"engines": {
"node": ">= 12.0.0"
},
"peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
},
"peerDependenciesMeta": {
"@babel/core": {
@@ -1135,10 +2679,28 @@
}
}
},
+ "node_modules/stylis": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
+ "license": "MIT"
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/swiper": {
- "version": "11.1.15",
- "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.1.15.tgz",
- "integrity": "sha512-IzWeU34WwC7gbhjKsjkImTuCRf+lRbO6cnxMGs88iVNKDwV+xQpBCJxZ4bNH6gSrIbbyVJ1kuGzo3JTtz//CBw==",
+ "version": "11.2.10",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz",
+ "integrity": "sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==",
"funding": [
{
"type": "patreon",
@@ -1154,768 +2716,84 @@
"node": ">= 4.7.0"
}
},
- "node_modules/symbol-observable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
- "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0"
}
},
- "node_modules/tiny-warning": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
- "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
- },
"node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
- "node_modules/use-sync-external-store": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
- "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- }
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
- "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@emotion/hash": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
- "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
- },
- "@material-ui/core": {
- "version": "4.11.3",
- "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.3.tgz",
- "integrity": "sha512-Adt40rGW6Uds+cAyk3pVgcErpzU/qxc7KBR94jFHBYretU4AtWZltYcNsbeMn9tXL86jjVL1kuGcIHsgLgFGRw==",
- "requires": {
- "@babel/runtime": "^7.4.4",
- "@material-ui/styles": "^4.11.3",
- "@material-ui/system": "^4.11.3",
- "@material-ui/types": "^5.1.0",
- "@material-ui/utils": "^4.11.2",
- "@types/react-transition-group": "^4.2.0",
- "clsx": "^1.0.4",
- "hoist-non-react-statics": "^3.3.2",
- "popper.js": "1.16.1-lts",
- "prop-types": "^15.7.2",
- "react-is": "^16.8.0 || ^17.0.0",
- "react-transition-group": "^4.4.0"
- }
- },
- "@material-ui/icons": {
- "version": "4.11.2",
- "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz",
- "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==",
- "requires": {
- "@babel/runtime": "^7.4.4"
- }
- },
- "@material-ui/styles": {
- "version": "4.11.3",
- "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.3.tgz",
- "integrity": "sha512-HzVzCG+PpgUGMUYEJ2rTEmQYeonGh41BYfILNFb/1ueqma+p1meSdu4RX6NjxYBMhf7k+jgfHFTTz+L1SXL/Zg==",
- "requires": {
- "@babel/runtime": "^7.4.4",
- "@emotion/hash": "^0.8.0",
- "@material-ui/types": "^5.1.0",
- "@material-ui/utils": "^4.11.2",
- "clsx": "^1.0.4",
- "csstype": "^2.5.2",
- "hoist-non-react-statics": "^3.3.2",
- "jss": "^10.5.1",
- "jss-plugin-camel-case": "^10.5.1",
- "jss-plugin-default-unit": "^10.5.1",
- "jss-plugin-global": "^10.5.1",
- "jss-plugin-nested": "^10.5.1",
- "jss-plugin-props-sort": "^10.5.1",
- "jss-plugin-rule-value-function": "^10.5.1",
- "jss-plugin-vendor-prefixer": "^10.5.1",
- "prop-types": "^15.7.2"
- }
- },
- "@material-ui/system": {
- "version": "4.11.3",
- "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz",
- "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==",
- "requires": {
- "@babel/runtime": "^7.4.4",
- "@material-ui/utils": "^4.11.2",
- "csstype": "^2.5.2",
- "prop-types": "^15.7.2"
- }
- },
- "@material-ui/types": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
- "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==",
- "requires": {}
- },
- "@material-ui/utils": {
- "version": "4.11.2",
- "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz",
- "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==",
- "requires": {
- "@babel/runtime": "^7.4.4",
- "prop-types": "^15.7.2",
- "react-is": "^16.8.0 || ^17.0.0"
- }
- },
- "@next/env": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz",
- "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w=="
- },
- "@next/swc-android-arm-eabi": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz",
- "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==",
- "optional": true
- },
- "@next/swc-android-arm64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz",
- "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==",
- "optional": true
- },
- "@next/swc-darwin-arm64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz",
- "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==",
- "optional": true
- },
- "@next/swc-darwin-x64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz",
- "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==",
- "optional": true
- },
- "@next/swc-freebsd-x64": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz",
- "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==",
- "optional": true
- },
- "@next/swc-linux-arm-gnueabihf": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz",
- "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==",
- "optional": true
- },
- "@next/swc-linux-arm64-gnu": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz",
- "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==",
- "optional": true
- },
- "@next/swc-linux-arm64-musl": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz",
- "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==",
- "optional": true
- },
- "@next/swc-linux-x64-gnu": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz",
- "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==",
- "optional": true
- },
- "@next/swc-linux-x64-musl": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz",
- "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==",
- "optional": true
- },
- "@next/swc-win32-arm64-msvc": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz",
- "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==",
- "optional": true
- },
- "@next/swc-win32-ia32-msvc": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz",
- "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==",
- "optional": true
- },
- "@next/swc-win32-x64-msvc": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz",
- "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==",
- "optional": true
- },
- "@swc/helpers": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz",
- "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@types/prop-types": {
- "version": "15.7.3",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
- "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
- },
- "@types/react": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz",
- "integrity": "sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==",
- "requires": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
},
- "dependencies": {
- "csstype": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
- "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
- }
+ "engines": {
+ "node": ">=14.17"
}
},
- "@types/react-transition-group": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz",
- "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==",
- "requires": {
- "@types/react": "*"
- }
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT"
},
- "@types/scheduler": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
- "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
- },
- "autoprefixer": {
- "version": "10.2.5",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz",
- "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==",
- "requires": {
- "browserslist": "^4.16.3",
- "caniuse-lite": "^1.0.30001196",
- "colorette": "^1.2.2",
- "fraction.js": "^4.0.13",
- "normalize-range": "^0.1.2",
- "postcss-value-parser": "^4.1.0"
- },
- "dependencies": {
- "browserslist": {
- "version": "4.21.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
- "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
- "requires": {
- "caniuse-lite": "^1.0.30001370",
- "electron-to-chromium": "^1.4.202",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.5"
- }
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
},
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
},
- "update-browserslist-db": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz",
- "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==",
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
- }
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- },
+ ],
+ "license": "MIT",
"dependencies": {
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
- }
- }
- },
- "caniuse-lite": {
- "version": "1.0.30001690",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz",
- "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w=="
- },
- "classnames": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
- "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
- },
- "clean-css": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz",
- "integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==",
- "requires": {
- "source-map": "~0.6.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
},
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "clsx": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
- "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
- },
- "colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
- },
- "core-js": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
- "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
- },
- "css-vendor": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
- "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
- "requires": {
- "@babel/runtime": "^7.8.3",
- "is-in-browser": "^1.0.2"
- }
- },
- "csstype": {
- "version": "2.6.16",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.16.tgz",
- "integrity": "sha512-61FBWoDHp/gRtsoDkq/B1nWrCUG/ok1E3tUrcNbZjsE9Cxd9yzUirjS3+nAATB8U4cTtaQmAHbNndoFz5L6C9Q=="
- },
- "deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
- },
- "dom-helpers": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz",
- "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==",
- "requires": {
- "@babel/runtime": "^7.8.7",
- "csstype": "^3.0.2"
+ "bin": {
+ "update-browserslist-db": "cli.js"
},
- "dependencies": {
- "csstype": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
- "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
- }
- }
- },
- "dom-serializer": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
- "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
- "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
- },
- "domhandler": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
- "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
- "requires": {
- "domelementtype": "^2.1.0"
- }
- },
- "domutils": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz",
- "integrity": "sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==",
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0"
- }
- },
- "electron-to-chromium": {
- "version": "1.4.247",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz",
- "integrity": "sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw=="
- },
- "entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "fraction.js": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz",
- "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA=="
- },
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
- },
- "hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "requires": {
- "react-is": "^16.7.0"
- }
- },
- "html-to-text": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-7.0.0.tgz",
- "integrity": "sha512-UR/WMSHRN8m+L7qQUhbSoxylwBovNPS+xURn/pHeJvbnemhyMiuPYBTBGqB6s8ajAARN5jzKfF0d3CY86VANpA==",
- "requires": {
- "deepmerge": "^4.2.2",
- "he": "^1.2.0",
- "htmlparser2": "^6.0.0",
- "minimist": "^1.2.5"
- }
- },
- "htmlparser2": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.1.tgz",
- "integrity": "sha512-GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.4.4",
- "entities": "^2.0.0"
- }
- },
- "hyphenate-style-name": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
- "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
- },
- "indefinite-observable": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz",
- "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==",
- "requires": {
- "symbol-observable": "1.2.0"
- }
- },
- "is-in-browser": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
- "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "jss": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz",
- "integrity": "sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "csstype": "^3.0.2",
- "indefinite-observable": "^2.0.1",
- "is-in-browser": "^1.1.3",
- "tiny-warning": "^1.0.2"
- },
- "dependencies": {
- "csstype": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
- "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
- }
- }
- },
- "jss-plugin-camel-case": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz",
- "integrity": "sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "hyphenate-style-name": "^1.0.3",
- "jss": "10.6.0"
- }
- },
- "jss-plugin-default-unit": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz",
- "integrity": "sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0"
- }
- },
- "jss-plugin-global": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz",
- "integrity": "sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0"
- }
- },
- "jss-plugin-nested": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz",
- "integrity": "sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0",
- "tiny-warning": "^1.0.2"
- }
- },
- "jss-plugin-props-sort": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz",
- "integrity": "sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0"
- }
- },
- "jss-plugin-rule-value-function": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz",
- "integrity": "sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "jss": "10.6.0",
- "tiny-warning": "^1.0.2"
- }
- },
- "jss-plugin-vendor-prefixer": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz",
- "integrity": "sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "css-vendor": "^2.0.8",
- "jss": "10.6.0"
- }
- },
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- }
- },
- "minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
- },
- "nanoid": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
- "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="
- },
- "next": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz",
- "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==",
- "requires": {
- "@next/env": "12.3.0",
- "@next/swc-android-arm-eabi": "12.3.0",
- "@next/swc-android-arm64": "12.3.0",
- "@next/swc-darwin-arm64": "12.3.0",
- "@next/swc-darwin-x64": "12.3.0",
- "@next/swc-freebsd-x64": "12.3.0",
- "@next/swc-linux-arm-gnueabihf": "12.3.0",
- "@next/swc-linux-arm64-gnu": "12.3.0",
- "@next/swc-linux-arm64-musl": "12.3.0",
- "@next/swc-linux-x64-gnu": "12.3.0",
- "@next/swc-linux-x64-musl": "12.3.0",
- "@next/swc-win32-arm64-msvc": "12.3.0",
- "@next/swc-win32-ia32-msvc": "12.3.0",
- "@next/swc-win32-x64-msvc": "12.3.0",
- "@swc/helpers": "0.4.11",
- "caniuse-lite": "^1.0.30001332",
- "postcss": "8.4.14",
- "styled-jsx": "5.0.6",
- "use-sync-external-store": "1.2.0"
- }
- },
- "normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "popper.js": {
- "version": "1.16.1-lts",
- "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
- "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
- },
- "postcss": {
- "version": "8.4.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
- "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
- "requires": {
- "nanoid": "^3.3.4",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- }
- },
- "postcss-value-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
- "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
- },
- "prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
- }
- },
- "react": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
- "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
- "react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
- }
- },
- "react-icons": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz",
- "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==",
- "requires": {}
- },
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "react-scrollspy": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/react-scrollspy/-/react-scrollspy-3.4.3.tgz",
- "integrity": "sha512-c2QZpMPWxm1HF71h1EqaxBldx2zLYO0aZ24Bcuo2mUWF79T+F6qOtr7XJCzUDm99NOwhVKQD01a7A8VC6c90CQ==",
- "requires": {
- "babel-runtime": "^6.26.0",
- "classnames": "^2.2.5",
- "prop-types": "^15.5.10"
- }
- },
- "react-transition-group": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
- "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
- "requires": {
- "@babel/runtime": "^7.5.5",
- "dom-helpers": "^5.0.1",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2"
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "regenerator-runtime": {
- "version": "0.13.7",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
- "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
- },
- "scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
}
- },
- "source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
- },
- "styled-jsx": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz",
- "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==",
- "requires": {}
- },
- "swiper": {
- "version": "11.1.15",
- "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.1.15.tgz",
- "integrity": "sha512-IzWeU34WwC7gbhjKsjkImTuCRf+lRbO6cnxMGs88iVNKDwV+xQpBCJxZ4bNH6gSrIbbyVJ1kuGzo3JTtz//CBw=="
- },
- "symbol-observable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
- "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
- },
- "tiny-warning": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
- "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
- },
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
- "use-sync-external-store": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
- "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
- "requires": {}
}
}
}
diff --git a/package.json b/package.json
index 5d90525..bdc8e37 100644
--- a/package.json
+++ b/package.json
@@ -4,21 +4,32 @@
"private": true,
"scripts": {
"dev": "next dev",
- "build": "next build && next export",
+ "build": "next build",
"start": "next start"
},
"dependencies": {
- "@material-ui/core": "^4.11.3",
- "@material-ui/icons": "^4.11.2",
+ "@emotion/react": "^11.13.0",
+ "@emotion/styled": "^11.13.0",
+ "@makotot/ghostui": "^2.0.0",
+ "@mui/icons-material": "^7.3.6",
+ "@mui/material": "^7.3.6",
"autoprefixer": "^10.2.5",
"clean-css": "^5.1.2",
"html-to-text": "^7.0.0",
- "next": "12.3.0",
+ "next": "^16.1.1",
"postcss": "^8.1.7",
- "react": "17.0.2",
- "react-dom": "17.0.2",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3",
"react-icons": "^5.4.0",
- "react-scrollspy": "^3.4.3",
+ "sass": "^1.97.1",
"swiper": "^11.1.15"
+ },
+ "devDependencies": {
+ "@types/html-to-text": "^9.0.4",
+ "@types/node": "22.19.3",
+ "@types/react": "^19.0.8",
+ "@types/react-dom": "^19.0.3",
+ "@types/react-scrollspy": "^3.3.9",
+ "typescript": "5.9.3"
}
}
diff --git a/pages/_app.js b/pages/_app.js
deleted file mode 100644
index fd8cb26..0000000
--- a/pages/_app.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { useEffect } from "react";
-
-import Layout from "../components/Layout";
-import "../styles/globals.css";
-
-function MyApp({ Component, pageProps }) {
- useEffect(() => {
- // Remove the server-side injected CSS.
- const jssStyles = document.querySelector("#jss-server-side");
- if (jssStyles) {
- jssStyles.parentElement.removeChild(jssStyles);
- }
- }, []);
-
- return (
-
-
-
- );
-}
-
-export default MyApp;
diff --git a/pages/_document.js b/pages/_document.js
deleted file mode 100644
index 649e42a..0000000
--- a/pages/_document.js
+++ /dev/null
@@ -1,88 +0,0 @@
-import React from "react";
-import Document, { Html, Head, Main, NextScript } from "next/document";
-import { ServerStyleSheets } from "@material-ui/core/styles";
-
-let prefixer;
-let cleanCSS;
-if (process.env.NODE_ENV === "production") {
- /* eslint-disable global-require */
- const postcss = require("postcss");
- const autoprefixer = require("autoprefixer");
- const CleanCSS = require("clean-css");
- /* eslint-enable global-require */
-
- prefixer = postcss([autoprefixer]);
- cleanCSS = new CleanCSS();
-}
-
-export default class MyDocument extends Document {
- render() {
- return (
-
-
-
-
-
-
-
- );
- }
-}
-
-// `getInitialProps` belongs to `_document` (instead of `_app`),
-// it's compatible with server-side generation (SSG).
-MyDocument.getInitialProps = async (ctx) => {
- // Resolution order
- //
- // On the server:
- // 1. app.getInitialProps
- // 2. page.getInitialProps
- // 3. document.getInitialProps
- // 4. app.render
- // 5. page.render
- // 6. document.render
- //
- // On the server with error:
- // 1. document.getInitialProps
- // 2. app.render
- // 3. page.render
- // 4. document.render
- //
- // On the client
- // 1. app.getInitialProps
- // 2. page.getInitialProps
- // 3. app.render
- // 4. page.render
-
- // Render app and page and get the context of the page with collected side effects.
- const sheets = new ServerStyleSheets();
- const originalRenderPage = ctx.renderPage;
-
- ctx.renderPage = () =>
- originalRenderPage({
- enhanceApp: (App) => (props) => sheets.collect(),
- });
-
- const initialProps = await Document.getInitialProps(ctx);
-
- let css = sheets.toString();
- // It might be undefined, e.g. after an error.
- if (css && process.env.NODE_ENV === "production") {
- const result1 = await prefixer.process(css, { from: undefined });
- css = result1.css;
- css = cleanCSS.minify(css).styles;
- }
-
- return {
- ...initialProps,
- styles: [
- ...React.Children.toArray(initialProps.styles),
- ,
- ],
- };
-};
diff --git a/pages/index.js b/pages/index.js
deleted file mode 100644
index e79a23b..0000000
--- a/pages/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import { Container, Hidden, Typography } from "@material-ui/core";
-import AppBottomNavigation from "../components/AppBottomNavigation";
-import Copyright from "../components/Copyright";
-import Margin from "../components/Margin";
-import BlogSection from "../sections/BlogSection";
-import DomainSection from "../sections/DomainSection";
-import ProfileSection from "../sections/ProfileSection";
-import ProjectSection from "../sections/ProjectSection";
-
-import Head from "next/head";
-import { fetchMediumFeed } from "../utils/fetchMediumFeed";
-
-export async function getStaticProps() {
- const blogsData = await fetchMediumFeed();
-
- return {
- props: {
- blogsData,
- },
- revalidate: 60 * 60 * 12,
- };
-}
-
-function App({ blogsData }) {
- return (
- <>
-
-
-
-
-
-
-
-
- Skills
-
-
-
-
-
-
-
-
-
-
-
- Blogs
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- );
-}
-
-export default App;
diff --git a/public/avatar-v2.jpg b/public/avatar-v2.jpg
deleted file mode 100644
index 4774500cb2a39141cf52976489e16ecc8beb3333..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 219898
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