From 2871309af3a33f8d343e3a380003ec17591f8849 Mon Sep 17 00:00:00 2001 From: Marco Pasqualetti <24919330+marcalexiei@users.noreply.github.com> Date: Sat, 24 Jan 2026 15:30:39 +0100 Subject: [PATCH] feat(frontend): enable `knip` (#31) * feat(frontend): enable `knip` * fix: remove stages barrel file --- .github/workflows/ci.yml | 6 + apps/frontend/package.json | 17 +- apps/frontend/src/axios-override.js | 2 - apps/frontend/src/components/Card/index.js | 4 - .../frontend/src/components/Generic/Button.js | 2 +- .../src/components/Generic/Checkbox.js | 2 +- apps/frontend/src/components/Generic/Input.js | 2 +- apps/frontend/src/components/Generic/index.js | 5 - .../src/components/Home/CheckboxSection.js | 6 +- .../components/Home/LanguagesLayoutSection.js | 6 +- .../src/components/Home/NumericSection.js | 4 +- apps/frontend/src/components/Home/Progress.js | 2 +- apps/frontend/src/components/Home/Section.js | 2 +- .../src/components/Home/StatsRankSection.js | 6 +- .../src/components/Home/TextSection.js | 4 +- .../components/Home/WakatimeLayoutSection.js | 4 +- apps/frontend/src/components/Home/index.js | 4 - .../src/components/Preview/Preview.js | 73 ----- apps/frontend/src/components/Preview/index.js | 3 - apps/frontend/src/components/index.js | 7 - apps/frontend/src/constants.js | 4 +- apps/frontend/src/pages/App/Header.js | 2 +- apps/frontend/src/pages/Home/Home.js | 13 +- .../src/pages/Home/stages/Customize.js | 13 +- .../frontend/src/pages/Home/stages/Display.js | 5 +- apps/frontend/src/pages/Home/stages/Login.js | 5 +- .../src/pages/Home/stages/SelectCard.js | 4 +- apps/frontend/src/pages/Home/stages/Theme.js | 4 +- apps/frontend/src/pages/Home/stages/index.js | 13 - knip.jsonc | 22 +- pnpm-lock.yaml | 280 +----------------- 31 files changed, 78 insertions(+), 448 deletions(-) delete mode 100644 apps/frontend/src/components/Card/index.js delete mode 100644 apps/frontend/src/components/Generic/index.js delete mode 100644 apps/frontend/src/components/Home/index.js delete mode 100644 apps/frontend/src/components/Preview/Preview.js delete mode 100644 apps/frontend/src/components/Preview/index.js delete mode 100644 apps/frontend/src/components/index.js delete mode 100644 apps/frontend/src/pages/Home/stages/index.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c0b9679..54b79b99 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,6 +57,12 @@ jobs: - name: Install Dependencies uses: ./.github/actions/install-dependencies + # needed to resolve .vercel folder from apps/frontend/src/components/Card/SVG.js + - name: Run vercel-preparation.sh + run: | + chmod +x ./vercel-preparation.sh + ./vercel-preparation.sh + - name: Format run: pnpm run format:check diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 62cc1e02..0f5ce123 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -3,16 +3,12 @@ "version": "0.1.0", "private": true, "dependencies": { - "@babel/runtime": "^7.23.2", "axios": "^1", "axios-cache-interceptor": "^1", "buffer": "^6.0.3", "daisyui": "2.31.0", - "downloadjs": "^1.4.7", "emoji-name-map": "^2.0.3", "github-username-regex": "^1.0.0", - "html-to-image": "^1.11.11", - "moment": "^2.29.4", "path-browserify": "^1.0.1", "prop-types": "^15.8.1", "querystring-es3": "^0.2.1", @@ -23,11 +19,8 @@ "react-redux": "^8.1.3", "react-router-dom": "^6.18.0", "react-scripts": "^5.0.1", - "react-select": "^5.8.0", "react-spinners": "^0.13.8", "react-toastify": "^9.1.3", - "react-typist": "^2.0.5", - "react-typist-loop": "0.0.5", "redux": "^4.2.1", "save-svg-as-png": "^1.4.17", "stream-browserify": "^3.0.0", @@ -41,8 +34,8 @@ "@craco/craco": "^7.1.0", "autoprefixer": "^10.4.16", "postcss": "^8.4.31", - "prettier": "^3.0.3", - "tailwindcss": "^3.3.5" + "tailwindcss": "^3.3.5", + "webpack": "5.104.1" }, "scripts": { "start-trends": "craco start", @@ -51,12 +44,6 @@ "eject": "react-scripts eject" }, "homepage": "/frontend", - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, "browserslist": { "production": [ ">0.2%", diff --git a/apps/frontend/src/axios-override.js b/apps/frontend/src/axios-override.js index cd01fe9a..83b06694 100644 --- a/apps/frontend/src/axios-override.js +++ b/apps/frontend/src/axios-override.js @@ -124,5 +124,3 @@ axios.defaults.adapter = async (config) => { return defaultAdapter(config); } }; - -export const { get, post } = cachedAxios; diff --git a/apps/frontend/src/components/Card/index.js b/apps/frontend/src/components/Card/index.js deleted file mode 100644 index 39ef3a9a..00000000 --- a/apps/frontend/src/components/Card/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import SvgInline from "./SVG"; -import { Card, Image } from "./Card"; - -export { Card, Image, SvgInline }; diff --git a/apps/frontend/src/components/Generic/Button.js b/apps/frontend/src/components/Generic/Button.js index 0610679c..802dc57b 100644 --- a/apps/frontend/src/components/Generic/Button.js +++ b/apps/frontend/src/components/Generic/Button.js @@ -27,4 +27,4 @@ Button.defaultProps = { className: "", }; -export default Button; +export { Button }; diff --git a/apps/frontend/src/components/Generic/Checkbox.js b/apps/frontend/src/components/Generic/Checkbox.js index ad058fee..657e3bce 100644 --- a/apps/frontend/src/components/Generic/Checkbox.js +++ b/apps/frontend/src/components/Generic/Checkbox.js @@ -31,4 +31,4 @@ Checkbox.defaultProps = { disabled: false, }; -export default Checkbox; +export { Checkbox }; diff --git a/apps/frontend/src/components/Generic/Input.js b/apps/frontend/src/components/Generic/Input.js index d3e31a59..2d2260e1 100644 --- a/apps/frontend/src/components/Generic/Input.js +++ b/apps/frontend/src/components/Generic/Input.js @@ -62,4 +62,4 @@ Input.defaultProps = { className: "", }; -export default Input; +export { Input }; diff --git a/apps/frontend/src/components/Generic/index.js b/apps/frontend/src/components/Generic/index.js deleted file mode 100644 index d3d6161e..00000000 --- a/apps/frontend/src/components/Generic/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import Button from "./Button"; -import Checkbox from "./Checkbox"; -import Input from "./Input"; - -export { Button, Checkbox, Input }; diff --git a/apps/frontend/src/components/Home/CheckboxSection.js b/apps/frontend/src/components/Home/CheckboxSection.js index dc5e540e..76ca9f78 100644 --- a/apps/frontend/src/components/Home/CheckboxSection.js +++ b/apps/frontend/src/components/Home/CheckboxSection.js @@ -1,8 +1,8 @@ import React from "react"; import PropTypes from "prop-types"; -import Section from "./Section"; -import { Checkbox } from "../Generic"; +import { Section } from "./Section"; +import { Checkbox } from "../Generic/Checkbox"; const CheckboxSection = ({ title, @@ -38,4 +38,4 @@ CheckboxSection.defaultProps = { disabled: false, }; -export default CheckboxSection; +export { CheckboxSection }; diff --git a/apps/frontend/src/components/Home/LanguagesLayoutSection.js b/apps/frontend/src/components/Home/LanguagesLayoutSection.js index b60d5fe2..c64f859a 100644 --- a/apps/frontend/src/components/Home/LanguagesLayoutSection.js +++ b/apps/frontend/src/components/Home/LanguagesLayoutSection.js @@ -1,8 +1,8 @@ import React from "react"; import PropTypes from "prop-types"; -import Section from "./Section"; -import { Input } from "../Generic"; +import { Section } from "./Section"; +import { Input } from "../Generic/Input"; export const DEFAULT_OPTION = { id: 1, @@ -48,4 +48,4 @@ LanguagesLayoutSection.propTypes = { setSelectedOption: PropTypes.func.isRequired, }; -export default LanguagesLayoutSection; +export { LanguagesLayoutSection }; diff --git a/apps/frontend/src/components/Home/NumericSection.js b/apps/frontend/src/components/Home/NumericSection.js index 5aa763fd..1f9c2777 100644 --- a/apps/frontend/src/components/Home/NumericSection.js +++ b/apps/frontend/src/components/Home/NumericSection.js @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from "react"; import PropTypes from "prop-types"; -import Section from "./Section"; +import { Section } from "./Section"; const NumericSection = ({ title, @@ -74,4 +74,4 @@ NumericSection.defaultProps = { placeholder: "", }; -export default NumericSection; +export { NumericSection }; diff --git a/apps/frontend/src/components/Home/Progress.js b/apps/frontend/src/components/Home/Progress.js index dfa4ab51..069eca09 100644 --- a/apps/frontend/src/components/Home/Progress.js +++ b/apps/frontend/src/components/Home/Progress.js @@ -92,4 +92,4 @@ ProgressBar.propTypes = { setCurrItem: PropTypes.func.isRequired, }; -export default ProgressBar; +export { ProgressBar }; diff --git a/apps/frontend/src/components/Home/Section.js b/apps/frontend/src/components/Home/Section.js index 01ec98cd..6255e3cb 100644 --- a/apps/frontend/src/components/Home/Section.js +++ b/apps/frontend/src/components/Home/Section.js @@ -33,4 +33,4 @@ Section.defaultProps = { children:

This is a test!

, }; -export default Section; +export { Section }; diff --git a/apps/frontend/src/components/Home/StatsRankSection.js b/apps/frontend/src/components/Home/StatsRankSection.js index 4fe22788..f523c5f6 100644 --- a/apps/frontend/src/components/Home/StatsRankSection.js +++ b/apps/frontend/src/components/Home/StatsRankSection.js @@ -1,8 +1,8 @@ import React from "react"; import PropTypes from "prop-types"; -import Section from "./Section"; -import { Input } from "../Generic"; +import { Section } from "./Section"; +import { Input } from "../Generic/Input"; export const DEFAULT_OPTION = { id: 1, @@ -36,4 +36,4 @@ StatsRankSection.propTypes = { setSelectedOption: PropTypes.func.isRequired, }; -export default StatsRankSection; +export { StatsRankSection }; diff --git a/apps/frontend/src/components/Home/TextSection.js b/apps/frontend/src/components/Home/TextSection.js index 434d3b7e..0d282feb 100644 --- a/apps/frontend/src/components/Home/TextSection.js +++ b/apps/frontend/src/components/Home/TextSection.js @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from "react"; import PropTypes from "prop-types"; -import Section from "./Section"; +import { Section } from "./Section"; import { classnames } from "../../utils"; const TextSection = ({ @@ -70,4 +70,4 @@ TextSection.defaultProps = { onPaste: undefined, }; -export default TextSection; +export { TextSection }; diff --git a/apps/frontend/src/components/Home/WakatimeLayoutSection.js b/apps/frontend/src/components/Home/WakatimeLayoutSection.js index d52dda08..56bdf26a 100644 --- a/apps/frontend/src/components/Home/WakatimeLayoutSection.js +++ b/apps/frontend/src/components/Home/WakatimeLayoutSection.js @@ -1,8 +1,8 @@ import React from "react"; import PropTypes from "prop-types"; -import Section from "./Section"; -import { Input } from "../Generic"; +import { Section } from "./Section"; +import { Input } from "../Generic/Input"; export const DEFAULT_OPTION = { id: 1, diff --git a/apps/frontend/src/components/Home/index.js b/apps/frontend/src/components/Home/index.js deleted file mode 100644 index 1b7bbb08..00000000 --- a/apps/frontend/src/components/Home/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import ProgressBar from "./Progress"; -import CheckboxSection from "./CheckboxSection"; - -export { ProgressBar, CheckboxSection }; diff --git a/apps/frontend/src/components/Preview/Preview.js b/apps/frontend/src/components/Preview/Preview.js deleted file mode 100644 index aa4068db..00000000 --- a/apps/frontend/src/components/Preview/Preview.js +++ /dev/null @@ -1,73 +0,0 @@ -import React, { useState, useEffect } from "react"; -import PropTypes from "prop-types"; - -import { - FaArrowRight as ArrowRightIcon, - FaArrowLeft as ArrowLeftIcon, -} from "react-icons/fa"; - -import { classnames } from "../../utils"; - -const Preview = ({ pages, details, showArrows }) => { - const totalPages = pages.length; - const [page, setPage] = useState(0); - - const prevPage = () => { - setPage((page - 1 + totalPages) % totalPages); - }; - - const nextPage = () => { - setPage((page + 1 + totalPages) % totalPages); - }; - - useEffect(() => { - const interval = setInterval(nextPage, 5000); - return () => clearInterval(interval); - }, [page]); - - return ( -
-
-
- {showArrows && ( - - )} - preview - {showArrows && ( - - )} -
-
-

- {details[page]} -

-
- ); -}; - -Preview.propTypes = { - pages: PropTypes.arrayOf(PropTypes.any).isRequired, - details: PropTypes.arrayOf(PropTypes.string).isRequired, - showArrows: PropTypes.bool, -}; - -Preview.defaultProps = { - showArrows: true, -}; - -export default Preview; diff --git a/apps/frontend/src/components/Preview/index.js b/apps/frontend/src/components/Preview/index.js deleted file mode 100644 index ad1264cb..00000000 --- a/apps/frontend/src/components/Preview/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Preview from "./Preview"; - -export default Preview; diff --git a/apps/frontend/src/components/index.js b/apps/frontend/src/components/index.js deleted file mode 100644 index 42b5513e..00000000 --- a/apps/frontend/src/components/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import Preview from "./Preview"; - -export * from "./Generic"; -export * from "./Card"; -export * from "./Home"; - -export { Preview }; diff --git a/apps/frontend/src/constants.js b/apps/frontend/src/constants.js index 7f0f3172..6d45c90d 100644 --- a/apps/frontend/src/constants.js +++ b/apps/frontend/src/constants.js @@ -1,4 +1,4 @@ -export const PROD = false; +const PROD = false; export const USE_LOGGER = true; @@ -8,7 +8,7 @@ export const HOST = PROD ? "github-stats-extended.vercel.app" : "github-stats-extended-preview.vercel.app"; -export const REDIRECT_URI = `https://${HOST}/frontend`; +const REDIRECT_URI = `https://${HOST}/frontend`; export const GITHUB_PRIVATE_AUTH_URL = `https://github.com/login/oauth/authorize?scope=user,repo&client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}/private`; export const GITHUB_PUBLIC_AUTH_URL = `https://github.com/login/oauth/authorize?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}/public`; diff --git a/apps/frontend/src/pages/App/Header.js b/apps/frontend/src/pages/App/Header.js index 26e3d0ff..d418a166 100644 --- a/apps/frontend/src/pages/App/Header.js +++ b/apps/frontend/src/pages/App/Header.js @@ -6,7 +6,7 @@ import { Link } from "react-router-dom"; import appIcon from "../../assets/appLogo64.png"; import { classnames } from "../../utils"; import { FaGithub as GithubIcon } from "react-icons/fa"; -import { ProgressBar } from "../../components"; +import { ProgressBar } from "../../components/Home/Progress"; const propTypes = { to: PropTypes.string.isRequired, diff --git a/apps/frontend/src/pages/Home/Home.js b/apps/frontend/src/pages/Home/Home.js index 921a8747..01052f6d 100644 --- a/apps/frontend/src/pages/Home/Home.js +++ b/apps/frontend/src/pages/Home/Home.js @@ -4,13 +4,12 @@ import PropTypes from "prop-types"; import BounceLoader from "react-spinners/BounceLoader"; import { v4 as uuidv4 } from "uuid"; -import { - CustomizeStage, - DisplayStage, - LoginStage, - SelectCardStage, - ThemeStage, -} from "./stages"; + +import { CustomizeStage } from "./stages/Customize"; +import { DisplayStage } from "./stages/Display"; +import { LoginStage } from "./stages/Login"; +import { SelectCardStage } from "./stages/SelectCard"; +import { ThemeStage } from "./stages/Theme"; import { authenticate } from "../../api"; import { login as _login } from "../../redux/actions/userActions"; diff --git a/apps/frontend/src/pages/Home/stages/Customize.js b/apps/frontend/src/pages/Home/stages/Customize.js index 3a332725..4e066b86 100644 --- a/apps/frontend/src/pages/Home/stages/Customize.js +++ b/apps/frontend/src/pages/Home/stages/Customize.js @@ -1,12 +1,13 @@ import React from "react"; import PropTypes from "prop-types"; -import { CheckboxSection, Image } from "../../../components"; import { CardTypes } from "../../../utils"; -import TextSection from "../../../components/Home/TextSection"; -import NumericSection from "../../../components/Home/NumericSection"; -import StatsRankSection from "../../../components/Home/StatsRankSection"; -import LanguagesLayoutSection from "../../../components/Home/LanguagesLayoutSection"; +import { Image } from "../../../components/Card/Card"; +import { CheckboxSection } from "../../../components/Home/CheckboxSection"; +import { TextSection } from "../../../components/Home/TextSection"; +import { NumericSection } from "../../../components/Home/NumericSection"; +import { StatsRankSection } from "../../../components/Home/StatsRankSection"; +import { LanguagesLayoutSection } from "../../../components/Home/LanguagesLayoutSection"; import WakatimeLayoutSection from "../../../components/Home/WakatimeLayoutSection"; import { DEMO_GIST, @@ -396,4 +397,4 @@ CustomizeStage.propTypes = { setStage: PropTypes.func.isRequired, }; -export default CustomizeStage; +export { CustomizeStage }; diff --git a/apps/frontend/src/pages/Home/stages/Display.js b/apps/frontend/src/pages/Home/stages/Display.js index 680ebc9c..899b05fc 100644 --- a/apps/frontend/src/pages/Home/stages/Display.js +++ b/apps/frontend/src/pages/Home/stages/Display.js @@ -8,7 +8,8 @@ import "react-toastify/dist/ReactToastify.css"; import { saveSvgAsPng } from "save-svg-as-png"; -import { Button, Image } from "../../../components"; +import { Button } from "../../../components/Generic/Button"; +import { Image } from "../../../components/Card/Card"; import { classnames } from "../../../utils"; import { HOST } from "../../../constants"; @@ -103,4 +104,4 @@ DisplayStage.propTypes = { guestHint: PropTypes.string.isRequired, }; -export default DisplayStage; +export { DisplayStage }; diff --git a/apps/frontend/src/pages/Home/stages/Login.js b/apps/frontend/src/pages/Home/stages/Login.js index fd5ce866..9fdc009d 100644 --- a/apps/frontend/src/pages/Home/stages/Login.js +++ b/apps/frontend/src/pages/Home/stages/Login.js @@ -4,7 +4,8 @@ import React, { useEffect, useRef, useState } from "react"; import PropTypes from "prop-types"; import { useDispatch } from "react-redux"; -import { Button, Image } from "../../../components"; +import { Button } from "../../../components/Generic/Button"; +import { Image } from "../../../components/Card/Card"; import { classnames } from "../../../utils"; import { CLIENT_ID, @@ -303,4 +304,4 @@ LoginStage.propTypes = { setCurrItem: PropTypes.func.isRequired, }; -export default LoginStage; +export { LoginStage }; diff --git a/apps/frontend/src/pages/Home/stages/SelectCard.js b/apps/frontend/src/pages/Home/stages/SelectCard.js index 34ba4480..660cd3f3 100644 --- a/apps/frontend/src/pages/Home/stages/SelectCard.js +++ b/apps/frontend/src/pages/Home/stages/SelectCard.js @@ -3,7 +3,7 @@ import React from "react"; import PropTypes from "prop-types"; -import { Card } from "../../../components"; +import { Card } from "../../../components/Card/Card"; import { useUserId } from "../../../redux/selectors/userSelectors"; import { DEMO_GIST, @@ -83,4 +83,4 @@ SelectCardStage.defaultProps = { selectedCard: null, }; -export default SelectCardStage; +export { SelectCardStage }; diff --git a/apps/frontend/src/pages/Home/stages/Theme.js b/apps/frontend/src/pages/Home/stages/Theme.js index d41a8b93..78b44b5f 100644 --- a/apps/frontend/src/pages/Home/stages/Theme.js +++ b/apps/frontend/src/pages/Home/stages/Theme.js @@ -3,7 +3,7 @@ import React from "react"; import PropTypes from "prop-types"; -import { Card } from "../../../components"; +import { Card } from "../../../components/Card/Card"; import { themes } from "../../../backend/themes/index"; const ThemeStage = ({ theme, setTheme, setStage, fullSuffix }) => { @@ -64,4 +64,4 @@ ThemeStage.propTypes = { fullSuffix: PropTypes.string.isRequired, }; -export default ThemeStage; +export { ThemeStage }; diff --git a/apps/frontend/src/pages/Home/stages/index.js b/apps/frontend/src/pages/Home/stages/index.js deleted file mode 100644 index fb07005e..00000000 --- a/apps/frontend/src/pages/Home/stages/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import LoginStage from "./Login"; -import SelectCardStage from "./SelectCard"; -import CustomizeStage from "./Customize"; -import ThemeStage from "./Theme"; -import DisplayStage from "./Display"; - -export { - LoginStage, - SelectCardStage, - CustomizeStage, - ThemeStage, - DisplayStage, -}; diff --git a/knip.jsonc b/knip.jsonc index edcceb34..50a57ab3 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -1,6 +1,5 @@ { "$schema": "./node_modules/knip/schema.json", - "ignoreWorkspaces": ["apps/frontend/**"], "workspaces": { "apps/backend": { "entry": [ @@ -17,6 +16,27 @@ "jest", // used by test scripts referencing binary due to lack of ESM support "@octokit/request-error" // used by js scripts executed in a GitHub actions not listed in deps ] + }, + "apps/frontend": { + "entry": [ + "src/index.js", + "src/dotenv-browser-stub.js", + "src/wakatime-override.js", + + "craco.config.js" + ], + "ignoreDependencies": [ + // used by webpack as polyfill + "url", + "buffer", + "util", + + // below dependencies are added because backend folder is copied inside frontend folder, + // so some of his dependencies must be present here + "github-username-regex", + "emoji-name-map", + "word-wrap" + ] } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64b9d262..3ee58271 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,9 +118,6 @@ importers: apps/frontend: dependencies: - '@babel/runtime': - specifier: ^7.23.2 - version: 7.28.4 axios: specifier: ^1 version: 1.13.2 @@ -133,21 +130,12 @@ importers: daisyui: specifier: 2.31.0 version: 2.31.0(autoprefixer@10.4.23(postcss@8.5.6))(postcss@8.5.6)(yaml@2.8.2) - downloadjs: - specifier: ^1.4.7 - version: 1.4.7 emoji-name-map: specifier: ^2.0.3 version: 2.0.3 github-username-regex: specifier: ^1.0.0 version: 1.0.0 - html-to-image: - specifier: ^1.11.11 - version: 1.11.13 - moment: - specifier: ^2.29.4 - version: 2.30.1 path-browserify: specifier: ^1.0.1 version: 1.0.1 @@ -178,21 +166,12 @@ importers: react-scripts: specifier: ^5.0.1 version: 5.0.1(@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.5))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.5))(@types/babel__core@7.20.5)(eslint@9.39.2(jiti@1.21.7))(react@18.3.1)(ts-node@10.9.2(@types/node@25.0.3)(typescript@4.9.5))(type-fest@0.21.3)(typescript@4.9.5)(yaml@2.8.2) - react-select: - specifier: ^5.8.0 - version: 5.10.2(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-spinners: specifier: ^0.13.8 version: 0.13.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-toastify: specifier: ^9.1.3 version: 9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-typist: - specifier: ^2.0.5 - version: 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-typist-loop: - specifier: 0.0.5 - version: 0.0.5(react-typist@2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) redux: specifier: ^4.2.1 version: 4.2.1 @@ -227,12 +206,12 @@ importers: postcss: specifier: ^8.4.31 version: 8.5.6 - prettier: - specifier: ^3.0.3 - version: 3.7.4 tailwindcss: specifier: ^3.3.5 version: 3.4.19(yaml@2.8.2) + webpack: + specifier: 5.104.1 + version: 5.104.1 packages: @@ -1121,47 +1100,6 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - - '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - - '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} - - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - - '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} - peerDependencies: - react: '>=16.8.0' - - '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} - - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@es-joy/jsdoccomment@0.78.0': resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} engines: {node: '>=20.11.0'} @@ -1225,15 +1163,6 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - - '@floating-ui/dom@1.7.4': - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} - - '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -1974,11 +1903,6 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-transition-group@4.4.12': - resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} - peerDependencies: - '@types/react': '*' - '@types/react@18.3.27': resolution: {integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==} @@ -3219,9 +3143,6 @@ packages: dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -3254,9 +3175,6 @@ packages: resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} - downloadjs@1.4.7: - resolution: {integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -3691,9 +3609,6 @@ packages: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -3986,9 +3901,6 @@ packages: engines: {node: '>=12'} hasBin: true - html-to-image@1.11.13: - resolution: {integrity: sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg==} - html-webpack-plugin@5.6.5: resolution: {integrity: sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==} engines: {node: '>=10.13.0'} @@ -4939,9 +4851,6 @@ packages: memfs@4.51.1: resolution: {integrity: sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==} - memoize-one@6.0.0: - resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} - merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -5024,9 +4933,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -6002,12 +5908,6 @@ packages: typescript: optional: true - react-select@5.10.2: - resolution: {integrity: sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-spinners@0.13.8: resolution: {integrity: sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==} peerDependencies: @@ -6020,24 +5920,6 @@ packages: react: '>=16' react-dom: '>=16' - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - - react-typist-loop@0.0.5: - resolution: {integrity: sha512-CyeQjuKUoe/cu1ga+JBZWq0G4PKa5ALNVxJ2k4QK9OGFBBBkOmE0dRpY/NnXUbVwlfyPGfxIcjGFLJb3QjPHFg==} - engines: {node: '>=4'} - peerDependencies: - react-typist: '*' - - react-typist@2.0.5: - resolution: {integrity: sha512-iZCkeqeegO0TlkTMiH2JD1tvMtY9RrXkRylnAI6m8aCVAUUwNzoWTVF7CKLij6THeOMcUDCznLDDvNp55s+YZA==} - peerDependencies: - react: ^0.14 || ^15.0 || ^16.0 - react-dom: ^^0.14 || ^15.0 || ^16.0 - react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -6411,10 +6293,6 @@ packages: source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -6599,9 +6477,6 @@ packages: peerDependencies: postcss: ^8.2.15 - stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - sucrase@3.35.1: resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} engines: {node: '>=16 || 14 >=14.17'} @@ -6927,15 +6802,6 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} - use-isomorphic-layout-effect@1.2.1: - resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -8396,70 +8262,6 @@ snapshots: tslib: 2.8.1 optional: true - '@emotion/babel-plugin@11.13.5': - dependencies: - '@babel/helper-module-imports': 7.27.1 - '@babel/runtime': 7.28.4 - '@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.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - transitivePeerDependencies: - - supports-color - - '@emotion/cache@11.14.0': - 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 - - '@emotion/hash@0.9.2': {} - - '@emotion/memoize@0.9.0': {} - - '@emotion/react@11.14.0(@types/react@18.3.27)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@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(react@18.3.1) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.27 - transitivePeerDependencies: - - supports-color - - '@emotion/serialize@1.3.3': - dependencies: - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.2 - csstype: 3.2.3 - - '@emotion/sheet@1.4.0': {} - - '@emotion/unitless@0.10.0': {} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': - dependencies: - react: 18.3.1 - - '@emotion/utils@1.4.2': {} - - '@emotion/weak-memoize@0.4.0': {} - '@es-joy/jsdoccomment@0.78.0': dependencies: '@types/estree': 1.0.8 @@ -8533,17 +8335,6 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@floating-ui/core@1.7.3': - dependencies: - '@floating-ui/utils': 0.2.10 - - '@floating-ui/dom@1.7.4': - dependencies: - '@floating-ui/core': 1.7.3 - '@floating-ui/utils': 0.2.10 - - '@floating-ui/utils@0.2.10': {} - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -9507,10 +9298,6 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-transition-group@4.4.12(@types/react@18.3.27)': - dependencies: - '@types/react': 18.3.27 - '@types/react@18.3.27': dependencies: '@types/prop-types': 15.7.15 @@ -10829,11 +10616,6 @@ snapshots: dependencies: utila: 0.4.0 - dom-helpers@5.2.1: - dependencies: - '@babel/runtime': 7.28.4 - csstype: 3.2.3 - dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 @@ -10867,8 +10649,6 @@ snapshots: dotenv@17.2.3: {} - downloadjs@1.4.7: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -11600,8 +11380,6 @@ snapshots: make-dir: 3.1.0 pkg-dir: 4.2.0 - find-root@1.1.0: {} - find-up@3.0.0: dependencies: locate-path: 3.0.0 @@ -11898,8 +11676,6 @@ snapshots: relateurl: 0.2.7 terser: 5.44.1 - html-to-image@1.11.13: {} - html-webpack-plugin@5.6.5(webpack@5.104.1): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -13339,8 +13115,6 @@ snapshots: tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - memoize-one@6.0.0: {} - merge-descriptors@1.0.3: {} merge-descriptors@2.0.0: {} @@ -13400,8 +13174,6 @@ snapshots: minipass@7.1.2: {} - moment@2.30.1: {} - ms@2.0.0: {} ms@2.1.3: {} @@ -14452,23 +14224,6 @@ snapshots: - webpack-plugin-serve - yaml - react-select@5.10.2(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.4 - '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@18.3.27)(react@18.3.1) - '@floating-ui/dom': 1.7.4 - '@types/react-transition-group': 4.4.12(@types/react@18.3.27) - memoize-one: 6.0.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.27)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - supports-color - react-spinners@0.13.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -14480,25 +14235,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.4 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-typist-loop@0.0.5(react-typist@2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): - dependencies: - react-typist: 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - react-typist@2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -14947,8 +14683,6 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 - source-map@0.5.7: {} - source-map@0.6.1: {} source-map@0.7.6: {} @@ -15161,8 +14895,6 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - stylis@4.2.0: {} - sucrase@3.35.1: dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -15533,12 +15265,6 @@ snapshots: punycode: 1.4.1 qs: 6.14.1 - use-isomorphic-layout-effect@1.2.1(@types/react@18.3.27)(react@18.3.1): - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.27 - use-sync-external-store@1.6.0(react@18.3.1): dependencies: react: 18.3.1