diff --git a/.github/workflows/integrate.yml b/.github/workflows/integrate.yml
index 7ab2044..75d34bd 100644
--- a/.github/workflows/integrate.yml
+++ b/.github/workflows/integrate.yml
@@ -1,38 +1,41 @@
name: Build and Deploy
+
on: [push]
+
jobs:
build-and-deploy:
runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: ./
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.
+ - name: Checkout
+ uses: actions/checkout@v4
with:
persist-credentials: false
- - name: Cache 💾
- uses: actions/cache@v2
+ - name: Cache Next.js
+ uses: actions/cache@v4
with:
- path: ${{ github.workspace }}/.next/cache
- key: ${{ runner.os }}-nextjs-v3-${{ hashFiles('**/package-lock.json') }}
+ path: .next/cache
+ key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}
- - name: Install and Build 🔧
- uses: actions/setup-node@v1
+ - name: Setup Node
+ uses: actions/setup-node@v4
with:
- node-version: '16'
- - run: npm install
- - run: npm run build
+ node-version: 20
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Build
+ run: npm run build
env:
- CI: false
+ CI: false
- - name: Deploy 🚀
+ - name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/main'
- uses: JamesIves/github-pages-deploy-action@3.6.2
+ uses: JamesIves/github-pages-deploy-action@v4
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
+ branch: gh-pages
+ folder: out
+ clean: true
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/README.md b/README.md
index ccb0dae..40f9327 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
-# My Portfolio
+# Portfolio
-Hey!
+Personal portfolio built with Next.js 16, React 19, TypeScript, and Material UI v7.
-This is my portfolio website made with [React.js](https://reactjs.org/), [Next.js](https://nextjs.org/) and [Material-UI](https://material-ui.com/).
+Fully static and optimized for GitHub Pages.
+Focused on clean UI architecture, accessibility, and maintainable code.
\ No newline at end of file
diff --git a/app/layout.tsx b/app/layout.tsx
new file mode 100644
index 0000000..6071ee5
--- /dev/null
+++ b/app/layout.tsx
@@ -0,0 +1,81 @@
+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",
+ },
+};
+
+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..29f860b
--- /dev/null
+++ b/app/page.tsx
@@ -0,0 +1,86 @@
+"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;
+ }>;
+}
+
+/**
+ * HomePage is the main landing page of the portfolio website, assembling
+ * all sections such as About, Skills, Projects, and Blogs.
+ *
+ * Fetches blog data from Medium and passes it to BlogSection.
+ * Responsive design: adapts navigation and layout for different devices.
+ *
+ * @returns JSX.Element Main page component
+ * @remarks This is the root container for the homepage structure.
+ */
+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 50%
rename from components/BlogCard.js
rename to features/blogs/BlogCard.tsx
index 7660fba..9adea65 100644
--- a/components/BlogCard.js
+++ b/features/blogs/BlogCard.tsx
@@ -1,52 +1,33 @@
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 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,
- },
-});
+import type { BlogCardProps } from "./types";
+/**
+ * Renders a card displaying blog post details, categories, and a link to the full article.
+ *
+ * @param props - Blog post data
+ * @returns JSX.Element Blog card component
+ * @remarks Styles content from BlogCard.module.scss and uses html-to-text for excerpt.
+ * @public
+ */
export default function BlogCard({
title,
description,
- thumbnail,
categories,
link,
-}) {
- const classes = useStyles();
-
+}: BlogCardProps) {
useEffect(() => {
document.addEventListener("DOMContentLoaded", function () {
const images = document.querySelectorAll("img");
@@ -59,18 +40,8 @@ export default function BlogCard({
});
}, []);
- const imagePaths = extractImagePaths(description);
-
return (
-
-
+
{title}
@@ -83,7 +54,7 @@ export default function BlogCard({
-
-
-
+
+
+
}
variant="contained"
size="small"
color="primary"
- className={classes.button}
+ className={styles.button}
>
Read
@@ -121,3 +92,4 @@ export default function BlogCard({
);
}
+
diff --git a/features/blogs/BlogSection.tsx b/features/blogs/BlogSection.tsx
new file mode 100644
index 0000000..38d33bb
--- /dev/null
+++ b/features/blogs/BlogSection.tsx
@@ -0,0 +1,32 @@
+import React from "react";
+import { Grid, useMediaQuery, useTheme } from "@mui/material";
+import BlogCard from "./BlogCard";
+
+import type { BlogSectionProps } from "./types";
+
+/**
+ * Renders a responsive grid of BlogCard components based on Medium feed data.
+ *
+ * @param blogsData - Object containing an array of blog post items
+ * @returns JSX.Element List of blog cards
+ * @remarks Uses MUI Grid and theme breakpoints for layout.
+ * @public
+ */
+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/features/blogs/types.ts b/features/blogs/types.ts
new file mode 100644
index 0000000..1db69ba
--- /dev/null
+++ b/features/blogs/types.ts
@@ -0,0 +1,20 @@
+export interface BlogItem {
+ title: string;
+ description: string;
+ thumbnail?: string;
+ categories: string[];
+ link: string;
+}
+
+export interface BlogSectionProps {
+ blogsData: {
+ items: BlogItem[];
+ };
+}
+
+export interface BlogCardProps extends BlogItem {}
+
+export interface MediumFeedResponse {
+ items: BlogItem[];
+}
+
diff --git a/features/blogs/utils/fetchMediumFeed.ts b/features/blogs/utils/fetchMediumFeed.ts
new file mode 100644
index 0000000..debf797
--- /dev/null
+++ b/features/blogs/utils/fetchMediumFeed.ts
@@ -0,0 +1,15 @@
+import profileData from "@/features/profile/data/profileData"
+
+import type { MediumFeedResponse } from "../types";
+
+/**
+ * Fetches blog feed data from the user's Medium account.
+ *
+ * @returns A promise resolving to a MediumFeedResponse object
+ * @public
+ */
+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..1373539
--- /dev/null
+++ b/features/profile/MyAvatar.tsx
@@ -0,0 +1,21 @@
+import { Paper } from "@mui/material";
+import React from "react";
+import styles from "./MyAvatar.module.scss";
+
+import type { MyAvatarProps } from "./types";
+
+/**
+ * Displays a user avatar wrapped in an outlined Paper component.
+ *
+ * @param props - Image src for the avatar
+ * @returns JSX.Element Avatar display component
+ * @remarks Styles are applied from MyAvatar.module.scss.
+ * @public
+ */
+export default function MyAvatar({ src }: MyAvatarProps) {
+ return (
+
+
+
+ );
+}
diff --git a/features/profile/ProfileSection.module.scss b/features/profile/ProfileSection.module.scss
new file mode 100644
index 0000000..2a4e37b
--- /dev/null
+++ b/features/profile/ProfileSection.module.scss
@@ -0,0 +1,163 @@
+$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..4c5940f
--- /dev/null
+++ b/features/profile/ProfileSection.tsx
@@ -0,0 +1,65 @@
+"use client";
+
+import {
+ Container,
+ Grid,
+ Typography,
+} from "@mui/material";
+
+import SocialLinkButton from "./SocialLinkButton";
+import profileData from "./data/profileData";
+import styles from "./ProfileSection.module.scss";
+
+/**
+ * Displays the user's main profile information, including name, about, and social links.
+ *
+ * @returns JSX.Element Profile information section
+ * @remarks Loads data from profileData and uses custom SCSS styling.
+ * @public
+ */
+export default function ProfileSection() {
+ 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..e3b240f
--- /dev/null
+++ b/features/profile/SocialLinkButton.tsx
@@ -0,0 +1,26 @@
+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";
+
+import type { SocialLinkButtonProps } from "./types";
+
+/**
+ * Renders an extended floating action button for a social link.
+ *
+ * @param props - Includes the icon, link URL, and label
+ * @returns JSX.Element Social network link button
+ * @remarks Styled using FAB and custom SCSS. Uses OuterLink for navigation.
+ * @public
+ */
+export default function SocialLinkButton({ icon: Icon, link, label }: SocialLinkButtonProps) {
+ return (
+
+
+
+ {label}
+
+
+ );
+}
diff --git a/data/profileData.js b/features/profile/data/profileData.ts
similarity index 59%
rename from data/profileData.js
rename to features/profile/data/profileData.ts
index 224650b..fa3e3f3 100644
--- a/data/profileData.js
+++ b/features/profile/data/profileData.ts
@@ -1,11 +1,13 @@
import { FaGithub, FaLinkedin, FaMedium } from "react-icons/fa";
+import { IconType } from "react-icons";
-const profileData = {
+import type { ProfileData } from "../types";
+
+const profileData: ProfileData = {
name: "Suvansh Rana",
- avatar: "./avatar-v2.jpg",
- backgroundImage: "./background-blurred-v2.jpg",
+ avatar: "./avatar-v3.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 +29,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 +49,4 @@ const profileData = {
};
export default profileData;
+
diff --git a/features/profile/types.ts b/features/profile/types.ts
new file mode 100644
index 0000000..282fd96
--- /dev/null
+++ b/features/profile/types.ts
@@ -0,0 +1,29 @@
+import type { IconType } from "react-icons";
+
+export interface ProfileData {
+ name: string;
+ avatar: string;
+ about: string;
+ meta: {
+ title: string;
+ url: string;
+ tags: string[];
+ };
+ links: Array<{
+ icon: IconType;
+ link: string;
+ label: string;
+ }>;
+ mediumFeedURL: string;
+}
+
+export interface SocialLinkButtonProps {
+ icon: IconType;
+ link: string;
+ label: string;
+}
+
+export interface MyAvatarProps {
+ src: string;
+}
+
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..6c64e43
--- /dev/null
+++ b/features/projects/ProjectCard.tsx
@@ -0,0 +1,92 @@
+import React from "react";
+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 "@mui/material";
+import OuterLink from "../../shared/ui/OuterLink";
+import Margin from "../../shared/ui/Margin";
+import { OpenInNewOutlined } from "@mui/icons-material";
+import styles from "./ProjectCard.module.scss";
+
+import type { ProjectCardProps } from "./types";
+
+/**
+ * Renders a styled card for each project, displaying its details, tags, and links.
+ *
+ * @param props - Project details
+ * @returns JSX.Element Single project card
+ * @remarks Displays project and GitHub links, uses custom SCSS.
+ * @public
+ */
+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..626fbe2
--- /dev/null
+++ b/features/projects/ProjectSection.tsx
@@ -0,0 +1,30 @@
+import React from "react";
+import { Grid, useMediaQuery, useTheme } from "@mui/material";
+import ProjectCard from "./ProjectCard";
+import projectData from "./data/projectData";
+
+/**
+ * Renders a grid of ProjectCard components using project data.
+ *
+ * @returns JSX.Element List of projects section
+ * @remarks Responsive display using MUI Grid and theme breakpoints.
+ * @public
+ */
+export default function ProjectSection() {
+ const theme = useTheme();
+ const isTabletOrSmaller = useMediaQuery(theme.breakpoints.down("md"));
+
+ return (
+
+ {projectData.map((_projectData, index) => (
+
+
+
+ ))}
+
+ );
+}
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..2a6a20d 100644
--- a/data/projectData.js
+++ b/features/projects/data/projectData.ts
@@ -1,30 +1,27 @@
-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"],
- },
+import type { Project } from "../types";
+
+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 +31,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/projects/types.ts b/features/projects/types.ts
new file mode 100644
index 0000000..9ed0292
--- /dev/null
+++ b/features/projects/types.ts
@@ -0,0 +1,10 @@
+export interface Project {
+ name: string;
+ description: string;
+ tags: string[];
+ projectLink?: string;
+ githubLink: string;
+}
+
+export interface ProjectCardProps extends Project {}
+
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..daea806
--- /dev/null
+++ b/features/skills/DomainListItem.tsx
@@ -0,0 +1,51 @@
+import React from "react";
+
+import {
+ Paper,
+ ListItem,
+ ListItemText,
+} from "@mui/material";
+
+import SkillChip from "./SkillChip";
+import styles from "./DomainListItem.module.scss";
+import type { DomainListItemProps } from "./types";
+
+/**
+ * Renders a domain list item with its name, icon, and associated skills.
+ *
+ * Each skill is displayed using the {@link SkillChip} component.
+ *
+ * @param props - Component props.
+ * @param props.name - Display name of the domain.
+ * @param props.icon - Icon component representing the domain.
+ * @param props.skills - Collection of skills associated with the domain.
+ *
+ * @returns A styled list item containing domain details.
+ */
+export default function DomainListItem({ name, skills }: DomainListItemProps) {
+
+ return (
+
+
+
+ {skills.map((skillData, index) => (
+
+ ))}
+
+ }
+ />
+
+
+ );
+}
diff --git a/features/skills/DomainSection.tsx b/features/skills/DomainSection.tsx
new file mode 100644
index 0000000..c234860
--- /dev/null
+++ b/features/skills/DomainSection.tsx
@@ -0,0 +1,20 @@
+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..697de1b
--- /dev/null
+++ b/features/skills/SkillChip.tsx
@@ -0,0 +1,27 @@
+import { Chip, useTheme } from "@mui/material";
+import React from "react";
+import OuterLink from "../../shared/ui/OuterLink";
+import styles from "./SkillChip.module.scss";
+import type { SkillChipProps } from "./types";
+
+
+export default function SkillChip({ name, SkillIcon, about_link }: SkillChipProps) {
+ const theme = useTheme();
+
+ return (
+
+
+ }
+ className={styles.chip}
+ label={name}
+ onClick={() => null}
+ />
+
+ );
+}
\ No newline at end of file
diff --git a/data/domainData.js b/features/skills/data/domainData.ts
similarity index 78%
rename from data/domainData.js
rename to features/skills/data/domainData.ts
index b1261ba..c3d152a 100644
--- a/data/domainData.js
+++ b/features/skills/data/domainData.ts
@@ -9,21 +9,18 @@ import {
} from "react-icons/si";
import { DiJavascript1 } from "react-icons/di";
import { RiFlutterFill, RiSailboatLine } from "react-icons/ri";
-import { FiGlobe } from "react-icons/fi";
-import { ImMobile2 } from "react-icons/im";
-import { IoCodeSlash, IoLogoPython } from "react-icons/io5";
+import { IoLogoPython } from "react-icons/io5";
import {
FaDocker,
FaNodeJs,
- FaPalette,
FaReact,
- FaTools,
} from "react-icons/fa";
+import type { Domain } from "../types";
-const domainData = [
+
+const domainData: Domain[] = [
{
name: "Web Development",
- icon: ,
skills: [
{
name: "React.js",
@@ -54,7 +51,6 @@ const domainData = [
},
{
name: "Mobile development",
- icon: ,
skills: [
{
SkillIcon: RiFlutterFill,
@@ -70,7 +66,6 @@ const domainData = [
},
{
name: "Programming Languages",
- icon: ,
skills: [
{
name: "Python",
@@ -79,9 +74,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 +87,41 @@ const domainData = [
],
},
{
- name: "Design System",
- icon: ,
+ name: "DevOps & Tools",
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",
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/features/skills/types.ts b/features/skills/types.ts
new file mode 100644
index 0000000..def5ba4
--- /dev/null
+++ b/features/skills/types.ts
@@ -0,0 +1,25 @@
+import { IconType } from "react-icons";
+
+export interface Skill {
+ name: string;
+ SkillIcon: IconType;
+ about_link: string;
+}
+
+export interface Domain {
+ name: string;
+ skills: Skill[];
+}
+
+
+export interface SkillChipProps {
+ name: string;
+ SkillIcon: IconType;
+ about_link: string;
+}
+
+
+export interface DomainListItemProps {
+ name: string;
+ skills: Domain["skills"];
+}
\ No newline at end of file
diff --git a/next-env.d.ts b/next-env.d.ts
new file mode 100644
index 0000000..9edff1c
--- /dev/null
+++ b/next-env.d.ts
@@ -0,0 +1,6 @@
+///
+///
+import "./.next/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..8bde955 100644
--- a/package.json
+++ b/package.json
@@ -1,24 +1,35 @@
{
- "name": "portfolio-next",
- "version": "0.1.0",
+ "name": "suvnshr-portfolio",
+ "version": "2.0.26",
"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 4774500..0000000
Binary files a/public/avatar-v2.jpg and /dev/null differ
diff --git a/public/avatar-v3.jpg b/public/avatar-v3.jpg
new file mode 100644
index 0000000..f85cca2
Binary files /dev/null and b/public/avatar-v3.jpg differ
diff --git a/public/avatar.jpg b/public/avatar.jpg
deleted file mode 100644
index b851ab5..0000000
Binary files a/public/avatar.jpg and /dev/null differ
diff --git a/public/background-blurred-v2.jpg b/public/background-blurred-v2.jpg
deleted file mode 100644
index 262a0e3..0000000
Binary files a/public/background-blurred-v2.jpg and /dev/null differ
diff --git a/public/background-blurred.webp b/public/background-blurred.webp
deleted file mode 100755
index b0297e2..0000000
Binary files a/public/background-blurred.webp and /dev/null differ
diff --git a/public/favicons/android-chrome-192x192.png b/public/favicons/android-chrome-192x192.png
index a75c240..bc71908 100644
Binary files a/public/favicons/android-chrome-192x192.png and b/public/favicons/android-chrome-192x192.png differ
diff --git a/public/favicons/android-chrome-512x512.png b/public/favicons/android-chrome-512x512.png
index 02251a6..6ce9a27 100644
Binary files a/public/favicons/android-chrome-512x512.png and b/public/favicons/android-chrome-512x512.png differ
diff --git a/public/favicons/apple-touch-icon.png b/public/favicons/apple-touch-icon.png
index b73277e..281b1b5 100644
Binary files a/public/favicons/apple-touch-icon.png and b/public/favicons/apple-touch-icon.png differ
diff --git a/public/favicons/favicon-16x16.png b/public/favicons/favicon-16x16.png
index 7334768..0c1155f 100644
Binary files a/public/favicons/favicon-16x16.png and b/public/favicons/favicon-16x16.png differ
diff --git a/public/favicons/favicon-32x32.png b/public/favicons/favicon-32x32.png
index 11ce906..0ca196a 100644
Binary files a/public/favicons/favicon-32x32.png and b/public/favicons/favicon-32x32.png differ
diff --git a/public/favicons/favicon.ico b/public/favicons/favicon.ico
index 18e70e9..3c63fd0 100644
Binary files a/public/favicons/favicon.ico and b/public/favicons/favicon.ico differ
diff --git a/sections/BlogSection.js b/sections/BlogSection.js
deleted file mode 100644
index bb1f4f3..0000000
--- a/sections/BlogSection.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import React from "react";
-import { Container, Grid, useMediaQuery, useTheme } from "@material-ui/core";
-import BlogCard from "../components/BlogCard";
-
-export default function BlogSection({ blogsData }) {
- const theme = useTheme();
- const isTabletOrSmaller = useMediaQuery(theme.breakpoints.down("md"));
-
- return (
-
-
- {blogsData.items.map((blogData, index) => (
-
-
-
- ))}
-
-
- );
-}
diff --git a/sections/DomainSection.js b/sections/DomainSection.js
deleted file mode 100755
index 4a61502..0000000
--- a/sections/DomainSection.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Grid, useMediaQuery, useTheme } from "@material-ui/core";
-import DomainListItem from "../components/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/sections/ProfileSection.js b/sections/ProfileSection.js
deleted file mode 100755
index 5d3d5c3..0000000
--- a/sections/ProfileSection.js
+++ /dev/null
@@ -1,108 +0,0 @@
-import {
- Container,
- Grid,
- Typography,
- makeStyles,
- Hidden,
-} from "@material-ui/core";
-
-import MyAvatar from "../components/MyAvatar";
-import SocialLinkButton from "../components/SocialLinkButton";
-import profileData from "../data/profileData";
-
-const TEXT_SHADOW = "0.5px 2px 2px #323232, 0 1px 3px #323232";
-
-const useStyles = makeStyles((theme) => ({
- background: {
- backgroundImage: `url(${profileData.backgroundImage})`,
- backgroundRepeat: "no-repeat",
- backgroundSize: "cover",
- },
- profileContainer: {
- padding: "50px 0",
- },
-
- name: {
- padding: "0 10px",
- textShadow: TEXT_SHADOW,
- letterSpacing: "0.5px",
- [theme.breakpoints.down("sm")]: {
- marginTop: 20,
- },
- },
- about: {
- fontSize: "1.35em",
- color: "#fcfcfc",
- padding: "0 10px",
- marginTop: 10,
- textShadow: TEXT_SHADOW,
- [theme.breakpoints.down("sm")]: {
- fontSize: "1.15em",
- },
- },
-
- socialContainer: {
- marginTop: 10,
- padding: "0 10px",
- },
-
- centerOnSmallScreen: {
- [theme.breakpoints.down("sm")]: {
- textAlign: "center",
- justifyContent: "center",
- },
- },
-}));
-
-export default function ProfileSection({}) {
- const classes = useStyles();
-
- return (
-
-
-
-
-
-
-
-
-
- {profileData.name}
-
-
-
- {profileData.about}
-
-
-
- {profileData.links.map((linkData, index) => (
-
- ))}
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/sections/ProjectSection.js b/sections/ProjectSection.js
deleted file mode 100755
index 53fcf79..0000000
--- a/sections/ProjectSection.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import React from "react";
-import { Container, Grid, useMediaQuery, useTheme } from "@material-ui/core";
-import ProjectCard from "../components/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/shared/theme/customTheme.ts b/shared/theme/customTheme.ts
new file mode 100644
index 0000000..8f8f0cb
--- /dev/null
+++ b/shared/theme/customTheme.ts
@@ -0,0 +1,22 @@
+import { grey } from "@mui/material/colors";
+import { createTheme, responsiveFontSizes, Theme } from "@mui/material/styles";
+
+let customTheme = createTheme({
+ typography: {
+ fontFamily: "'JetBrains Mono', monospace",
+ },
+ palette: {
+ mode: "dark",
+ primary: {
+ main: "#D670DA",
+ },
+ secondary: {
+ main: grey[900],
+ },
+ },
+});
+
+customTheme = responsiveFontSizes(customTheme);
+
+export default customTheme as Theme;
+
diff --git a/shared/ui/AppBottomNavigation.module.scss b/shared/ui/AppBottomNavigation.module.scss
new file mode 100644
index 0000000..e96f96a
--- /dev/null
+++ b/shared/ui/AppBottomNavigation.module.scss
@@ -0,0 +1,12 @@
+.scrollspy {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+
+.bottomNavigation {
+ width: 100%;
+ position: fixed;
+ bottom: 0;
+ z-index: 9999;
+}
\ No newline at end of file
diff --git a/shared/ui/AppBottomNavigation.tsx b/shared/ui/AppBottomNavigation.tsx
new file mode 100644
index 0000000..0c7e78f
--- /dev/null
+++ b/shared/ui/AppBottomNavigation.tsx
@@ -0,0 +1,63 @@
+"use client";
+
+import React, { useRef, useEffect, RefObject } from "react";
+import BottomNavigation from "@mui/material/BottomNavigation";
+import BottomNavigationAction from "@mui/material/BottomNavigationAction";
+import { Book, BubbleChart, Laptop, Person } from "@mui/icons-material";
+import { Scrollspy } from "@makotot/ghostui"
+import styles from "./AppBottomNavigation.module.scss";
+
+
+/**
+ * AppBottomNavigation renders the bottom navigation bar for quick access to
+ * main page sections (About, Skills, Projects, Blogs). Highlights current section and enables smooth scrolling.
+ *
+ * @returns JSX.Element Navigation bar component
+ * @remarks Uses Scrollspy for section detection and smooth scrolling behavior.
+ */
+export default function AppBottomNavigation() {
+ const sections = ["about", "skills", "projects", "blogs"];
+
+ // Use type assertion to indicate to TypeScript that this is an array of RefObject
+ const sectionRefs = [
+ useRef(null),
+ useRef(null),
+ useRef(null),
+ useRef(null)
+ ] as unknown as RefObject[];
+
+ useEffect(() => {
+ sections.forEach((sectionId, index) => {
+ const element = document.querySelector(`#${sectionId}`) as Element | null;
+ if (element && sectionRefs[index]) {
+ (sectionRefs[index] as React.MutableRefObject).current = element;
+ }
+ });
+ }, []);
+
+ return (
+
+ {({ currentElementIndexInViewport }) => (
+ {
+ const targetRef = sectionRefs[newValue];
+ if (targetRef?.current) {
+ targetRef.current.scrollIntoView({
+ behavior: "smooth",
+ block: "start"
+ });
+ }
+ }}
+ showLabels
+ className={styles.bottomNavigation}
+ >
+ } />
+ } />
+ } />
+ } />
+
+ )}
+
+ );
+}
diff --git a/shared/ui/Copyright.module.scss b/shared/ui/Copyright.module.scss
new file mode 100644
index 0000000..af80227
--- /dev/null
+++ b/shared/ui/Copyright.module.scss
@@ -0,0 +1,4 @@
+.container {
+ padding: 20px;
+}
+
diff --git a/shared/ui/Copyright.tsx b/shared/ui/Copyright.tsx
new file mode 100644
index 0000000..1c26714
--- /dev/null
+++ b/shared/ui/Copyright.tsx
@@ -0,0 +1,35 @@
+import { Grid, Typography } from "@mui/material";
+import { useTheme } from "@mui/material/styles";
+import React from "react";
+import styles from "./Copyright.module.scss";
+
+/**
+ * Displays the copyright information and current year in a styled footer.
+ *
+ * @returns JSX.Element Copyright footer
+ * @remarks Uses MUI Grid and theme for styling.
+ * @public
+ */
+export default function Copyright() {
+ const theme = useTheme();
+
+ return (
+
+
+
+ {"Copyright © Suvansh Rana "}
+ {new Date().getFullYear()}
+ {"."}
+
+
+
+ );
+}
+
diff --git a/shared/ui/Margin.tsx b/shared/ui/Margin.tsx
new file mode 100644
index 0000000..23c3991
--- /dev/null
+++ b/shared/ui/Margin.tsx
@@ -0,0 +1,19 @@
+import React from "react";
+import type { MarginProps } from "./types";
+
+/**
+ * Renders a spacer element with configurable margin.
+ *
+ * The margin value is calculated as `12 * count` and applied uniformly
+ * on all sides of the element.
+ *
+ * @param props - Component props.
+ * @param props.count - Multiplier used to calculate the margin size.
+ *
+ * @returns A div element acting as a spacing utility.
+ */
+export default function Margin({ count = 1 }: MarginProps) {
+ const margin = 12 * count;
+
+ return ;
+}
diff --git a/shared/ui/OuterLink.tsx b/shared/ui/OuterLink.tsx
new file mode 100644
index 0000000..0492621
--- /dev/null
+++ b/shared/ui/OuterLink.tsx
@@ -0,0 +1,22 @@
+import React from "react";
+import type { OuterLinkProps } from "./types";
+
+/**
+ * Renders an external link that opens in a new browser tab.
+ *
+ * Security best practices are enforced by applying
+ * `rel="noopener noreferrer"` to prevent window access vulnerabilities.
+ *
+ * @param props - Component props.
+ * @param props.link - URL to navigate to.
+ * @param props.children - Content rendered inside the anchor element.
+ *
+ * @returns An anchor element configured for external navigation.
+ */
+export default function OuterLink({ link, children }: OuterLinkProps) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/shared/ui/Providers.tsx b/shared/ui/Providers.tsx
new file mode 100644
index 0000000..a65e283
--- /dev/null
+++ b/shared/ui/Providers.tsx
@@ -0,0 +1,24 @@
+"use client";
+
+import React from "react";
+import { CssBaseline, ThemeProvider } from "@mui/material";
+import customTheme from "@shared/theme/customTheme";
+import type { ProvidersProps } from "./types";
+
+/**
+ * Wraps children with ThemeProvider, applying custom MUI theme.
+ *
+ * @param props - Component props including children to provide theming for
+ * @returns JSX.Element
+ * @remarks Applies CssBaseline for consistent styling.
+ * @public
+ */
+export default function Providers({ children }: ProvidersProps) {
+ return (
+
+
+ {children}
+
+ );
+}
+
diff --git a/shared/ui/types.ts b/shared/ui/types.ts
new file mode 100644
index 0000000..a913c48
--- /dev/null
+++ b/shared/ui/types.ts
@@ -0,0 +1,12 @@
+export interface ProvidersProps {
+ children: React.ReactNode;
+}
+
+export interface MarginProps {
+ count?: number;
+}
+
+export interface OuterLinkProps {
+ link: string;
+ children: React.ReactNode;
+}
\ No newline at end of file
diff --git a/styles/globals.css b/styles/globals.css
deleted file mode 100644
index d8b442b..0000000
--- a/styles/globals.css
+++ /dev/null
@@ -1,45 +0,0 @@
-html,
-body {
- margin: 0;
- padding: 0;
- user-select: none;
- scroll-behavior: smooth;
-}
-
-a {
- text-decoration: none;
-}
-
-img {
- -webkit-user-drag: none;
- -moz-window-dragging: none;
-}
-
-.MuiPaper-rounded {
- border-radius: 30px !important;
-}
-
-.MuiButton-root {
- border-radius: 20px !important;
-}
-
-body::-webkit-scrollbar {
- width: 15px;
-}
-
-html {
- scrollbar-width: thick;
- scrollbar-color: #a2de4c #424242;
-}
-
-@media (min-width: 960px) {
- .MuiPaper-root:hover {
- transform: scale(1.05);
- transition: transform 0.3s;
-
- /* elevation=12 */
- box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2),
- 0px 16px 24px 2px rgba(0, 0, 0, 0.14),
- 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
- }
-}
diff --git a/styles/globals.scss b/styles/globals.scss
new file mode 100644
index 0000000..df2a9bb
--- /dev/null
+++ b/styles/globals.scss
@@ -0,0 +1,56 @@
+html,
+body {
+ margin: 0;
+ padding: 0;
+ user-select: none;
+ scroll-behavior: smooth;
+}
+
+
+img {
+ -webkit-user-drag: none;
+ -moz-window-dragging: none;
+}
+
+.MuiPaper-rounded {
+ border-radius: 28px !important;
+}
+
+.MuiButton-root {
+ border-radius: 20px !important;
+}
+
+.MuiButtonBase-root.MuiFab-root,
+.MuiButton-contained {
+ background: linear-gradient(135deg, #D670DA, #F4A1F4) !important;
+}
+
+body::-webkit-scrollbar {
+ width: 15px;
+}
+
+html {
+ scrollbar-width: thick;
+ scrollbar-color: #D670DA #161616;
+}
+
+.page-section {
+ position: relative;
+ padding: 3.2rem 0;
+}
+
+/* Minimal solid orchid divider */
+.page-section::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 2px;
+ /* thin, subtle line */
+ background-color: #D670DA99;
+ /* subtle orchid tone */
+ pointer-events: none;
+ border-radius: 1px;
+ /* soft edges */
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..314144a
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,54 @@
+{
+ "compilerOptions": {
+ "target": "ES2017",
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "react-jsx",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "baseUrl": ".",
+ "paths": {
+ "@/*": [
+ "./*"
+ ],
+ "@features/*": [
+ "features/*"
+ ],
+ "@shared/*": [
+ "shared/*"
+ ],
+ "@styles/*": [
+ "styles/*"
+ ],
+ "@app/*": [
+ "app/*"
+ ]
+ }
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts",
+ ".next/dev/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/types/scss-modules.d.ts b/types/scss-modules.d.ts
new file mode 100644
index 0000000..8d0052d
--- /dev/null
+++ b/types/scss-modules.d.ts
@@ -0,0 +1,10 @@
+declare module '*.module.scss' {
+ const classes: { [key: string]: string };
+ export default classes;
+}
+
+declare module '*.scss' {
+ const content: { [className: string]: string };
+ export default content;
+}
+
diff --git a/utils/extractImagePaths.js b/utils/extractImagePaths.js
deleted file mode 100644
index d3e30e4..0000000
--- a/utils/extractImagePaths.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// Extracts image paths from a string
-export function extractImagePaths(inputString) {
- 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/utils/fetchMediumFeed.js b/utils/fetchMediumFeed.js
deleted file mode 100644
index 230aa21..0000000
--- a/utils/fetchMediumFeed.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import profileData from "../data/profileData";
-
-// Fetch Medium feed
-export async function fetchMediumFeed() {
- const res = await fetch(profileData.mediumFeedURL);
-
- return await res.json();
-}