diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..f21168c --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,12 @@ +import { defineConfig } from "eslint/config"; +import globals from "globals"; +import tseslint from "typescript-eslint"; +import pluginReact from "eslint-plugin-react"; + + +export default defineConfig([ + { files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"] }, + { files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"], languageOptions: { globals: globals.browser } }, + tseslint.configs.recommended, + pluginReact.configs.flat.recommended, +]); \ No newline at end of file diff --git a/package.json b/package.json index 055615f..0e4c49b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,8 @@ "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "lint": "eslint . --fix" }, "eslintConfig": { "extends": [ @@ -46,5 +47,12 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "eslint": "^9.23.0", + "eslint-config-react-app": "^7.0.1", + "eslint-plugin-react": "^7.37.4", + "globals": "^16.0.0", + "typescript-eslint": "^8.28.0" } } diff --git a/public/Loop hero 29_04.mp4 b/public/Loop hero 29_04.mp4 new file mode 100644 index 0000000..da1ccd5 Binary files /dev/null and b/public/Loop hero 29_04.mp4 differ diff --git a/src/App.tsx b/src/App.tsx index 301cb13..31c42d5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import logo from './logo.svg'; +// import logo from './logo.svg'; import './App.css'; import Header from './components/header'; import HomePage from './components/homepage'; @@ -8,7 +8,6 @@ import { Box } from '@mui/material'; function App() { return ( -
diff --git a/src/components/header.tsx b/src/components/header.tsx index bcf7026..dd2b7cb 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { - AppBar, Toolbar, Typography, Button, IconButton, Box, Drawer, List, + AppBar, Toolbar, Button, IconButton, Box, Drawer, List, ListItem, ListItemButton, ListItemText } from "@mui/material"; import MenuIcon from "@mui/icons-material/Menu"; diff --git a/src/components/homepage.tsx b/src/components/homepage.tsx index 94675f9..91223fe 100644 --- a/src/components/homepage.tsx +++ b/src/components/homepage.tsx @@ -1,62 +1,74 @@ import React, { useRef } from "react"; import { Box, Grid, Typography } from "@mui/material"; -import logo from "../components/imageandgif/newlogo.png"; -import backone from "../components/imageandgif/newbgone.png"; -import backtwo from "../components/imageandgif/newnewtwo.png"; -import backthree from "../components/imageandgif/newthree.png"; -import gifone from "../components/imageandgif/gifone.gif"; -import giftwo from "../components/imageandgif/giftwo.gif"; -import gifthree from "../components/imageandgif/gifthree.gif"; -import giffour from "../components/imageandgif/giffour.gif"; +// import logo from "../components/imageandgif/newlogo.png"; +// import backone from "../components/imageandgif/newbgone.png"; +// import backtwo from "../components/imageandgif/newnewtwo.png"; +// import backthree from "../components/imageandgif/newthree.png"; +// import gifone from "../components/imageandgif/gifone.gif"; +// import giftwo from "../components/imageandgif/giftwo.gif"; +// import gifthree from "../components/imageandgif/gifthree.gif"; +// import giffour from "../components/imageandgif/giffour.gif"; import giffive from "../components/imageandgif/giffive.gif"; import gifsix from "../components/imageandgif/gifsix.gif"; import gifseven from "../components/imageandgif/gifseven.gif"; import gifeight from "../components/imageandgif/gifeight.gif"; -import loopgreen from "../components/imageandgif/newloop.png"; -import PartnerWork from "./ourwork"; +// import loopgreen from "../components/imageandgif/newloop.png"; +// import PartnerWork from "./ourwork"; import Footer from "./footer"; -import loopgreenback from "../components/imageandgif/lsbg.png" +// import loopgreenback from "../components/imageandgif/lsbg.png" import OurTeam from "./ourteam"; -import mobileLogo from "../components/imageandgif/loopsMoblogo.png" +// import mobileLogo from "../components/imageandgif/loopsMoblogo.png" import mobileback from "../components/imageandgif/mobileback.png" -import { useMediaQuery, useTheme } from "@mui/material"; +// import { useMediaQuery, useTheme } from "@mui/material"; import { createTheme, ThemeProvider } from "@mui/material/styles"; -import newbackground from "../components/imageandgif/full.png" -import sustainability from "../components/imageandgif/Untitled-2.png" -import wasteimage from "../components/imageandgif/loopwastemanage.png" +import newbackground from "../components/imageandgif/loopcentrelaptop.png" +// import sustainability from "../components/imageandgif/Untitled-2.png" +// import wasteimage from "../components/imageandgif/loopwastemanage.png" import WhyChooseUs from "./whyus"; import WasteImageSection from "./wastemanagement"; -import loopgif from "../components/imageandgif/Loopherosectionmobiless.gif" -import gifsevenm from "../components/imageandgif/disintegrate mobile (2).gif"; -import gifeightm from "../components/imageandgif/reminemobile.gif"; -import giffivem from "../components/imageandgif/repairm.gif"; -import gifsixm from "../components/imageandgif/newusenewuse.gif"; -import gifonem from "../components/imageandgif/mine mobile.gif"; - +import loopgif from "../components/imageandgif/Loop hero 29_04 (2).gif" +// import gifsevenm from "../components/imageandgif/disintegrate mobile (2).gif"; +// import gifeightm from "../components/imageandgif/reminemobile.gif"; +// import giffivem from "../components/imageandgif/repairm.gif"; +// import gifsixm from "../components/imageandgif/newusenewuse.gif"; +// import gifonem from "../components/imageandgif/mine mobile.gif"; +// const features = [ +// { +// title: "Reuse", +// description: +// "We help businesses repair their old electronics by recommending reusable parts and components for future use or resale.", +// icon: , +// }, +// { +// title: "Repair", +// description: +// "Repair services extend the life of devices, minimizing waste and reducing the need for new products.", +// icon: , +// }, +// { +// title: "Disintegrate", +// description: +// "When devices can no longer be repaired, we ensure responsible recycling and proper disposal.", +// icon: , +// }, +// { +// title: "Remine", +// description: +// "We take the decomposed materials and refine them for reuse, reducing environmental impact.", +// icon: , +// }, +// ]; const HomePage: React.FC = () => { - // Create refs for each content box - const mineRef = useRef(null); - const manufactureRef = useRef(null); - const assembleRef = useRef(null); - const useRefBox = useRef(null); - const repairRef = useRef(null); + // // Create refs for each content box + // const mineRef = useRef(null); + // const manufactureRef = useRef(null); + // const assembleRef = useRef(null); + // const useRefBox = useRef(null); const disintegrateRef = useRef(null); const remineRef = useRef(null); - const impactRef = useRef(null); const reuseRef = useRef(null); - const items = [ - ]; - // const theme = useTheme(); - // const isMobile = useMediaQuery(theme.breakpoints.down("sm")); - - // Function to scroll to the ref - const scrollToRef = (ref: React.RefObject) => { - if (ref.current) { - ref.current.scrollIntoView({ behavior: "smooth", block: "center" }); - } - }; const theme = createTheme({ breakpoints: { @@ -95,7 +107,7 @@ const HomePage: React.FC = () => { width: { lg: "100vw" }, backgroundColor: "white", position: "relative", - paddingTop: { xs: '50px', lg: '5px' , md:'10px' }, + paddingTop: { xs: '50px', lg: '5px', md: '10px' }, marginBottom: { xs: "10px", md: "39px", lg: '30px' }, }} > @@ -109,14 +121,9 @@ const HomePage: React.FC = () => { }} /> - - - - - { }} > - We aim to 'Do More With Less'
- Our mission is to maximize the reuse of nature’s precious resources, fostering a circular economy and driving true sustainability. + We aim to 'Do More With Less'
+ Our mission is to maximize the reuse of nature's precious resources, fostering a circular economy and driving true sustainability.
-
@@ -150,7 +156,7 @@ const HomePage: React.FC = () => { fontFamily: "SF Pro Regular, Arial, sans-serif", }} > - "Loop Sustainability extends the life cycle of electronics through advanced technology and smart algorithms, enabling efficient reuse and responsible recycling.", + "Loop Sustainability extends the life cycle of electronics through advanced technology and smart algorithms, enabling efficient reuse and responsible recycling.", @@ -167,157 +173,77 @@ const HomePage: React.FC = () => { fontFamily: "SF Pro Regular, Arial, sans-serif", }} > - "We collaborate with consumer brands, retailers, recyclers, repair centers, policymakers, and more—all working together to reduce e-waste and drive sustainability.", + "We collaborate with consumer brands, retailers, recyclers, repair centers, policymakers, and more—all working together to reduce e-waste and drive sustainability.",
- + {/* Grid 2 */} + + + + + The Process + + + Raw materials are extracted through destructive mining practices, causing habitat loss, soil erosion, and water contamination. + Components are assembled into finished products in factories, further increasing emissions and producing hazardous waste that is hard to dispose of. + Devices are used by consumers and businesses, but their production and usage contribute significantly to carbon footprints, energy consumption, and waste generation. + + + This is where we come in. + + + + + + - - {/* - */} - - {/* ROW 1 */} - - - - Gif - - - - Mine from nature - Raw materials are extracted through destructive mining practices, causing habitat loss, soil erosion, and water contamination.  - - - - - - {/* ROW 2 */} - - - - - Manufacturing - Materials are processed in energy-intensive factories that rely on fossil fuels, generating high carbon emissions - - - Gif - - - - - - {/* ROW 3 */} - - - - - Gif - - - Assemble - Components are assembled into finished products in factories, further increasing emissions and producing hazardous waste that is hard to dispose. - - - - - - - {/* ROW 4 */} - - - - - Use - Devices are used by consumers and businesses, but their production and usage contribute significantly to carbon footprints, energy consumption, and waste generation. - - - - Gif - - - - - {/* new2 */} - - - - - {/* newnew */} - {/* desktop view */} - {/* Reuse Section */} { diff --git a/src/components/imageandgif/Loop hero 29_04 (2).gif b/src/components/imageandgif/Loop hero 29_04 (2).gif new file mode 100644 index 0000000..bd80cae Binary files /dev/null and b/src/components/imageandgif/Loop hero 29_04 (2).gif differ diff --git a/src/components/imageandgif/Loop hero 29_04-VEED.gif b/src/components/imageandgif/Loop hero 29_04-VEED.gif new file mode 100644 index 0000000..2cb2786 Binary files /dev/null and b/src/components/imageandgif/Loop hero 29_04-VEED.gif differ diff --git a/src/components/imageandgif/Loop hero 29_04.mp4 b/src/components/imageandgif/Loop hero 29_04.mp4 new file mode 100644 index 0000000..da1ccd5 Binary files /dev/null and b/src/components/imageandgif/Loop hero 29_04.mp4 differ diff --git a/src/components/imageandgif/Loop-hero-29-04-unscreen.gif b/src/components/imageandgif/Loop-hero-29-04-unscreen.gif new file mode 100644 index 0000000..4a9c8dc Binary files /dev/null and b/src/components/imageandgif/Loop-hero-29-04-unscreen.gif differ diff --git a/src/components/imageandgif/loopcentrelaptop.png b/src/components/imageandgif/loopcentrelaptop.png new file mode 100644 index 0000000..6b44469 Binary files /dev/null and b/src/components/imageandgif/loopcentrelaptop.png differ diff --git a/src/components/ourteam.tsx b/src/components/ourteam.tsx index 489e1c2..af154a8 100644 --- a/src/components/ourteam.tsx +++ b/src/components/ourteam.tsx @@ -12,7 +12,7 @@ import { motion } from "framer-motion"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import ExpandLessIcon from "@mui/icons-material/ExpandLess"; -import robert from "../components/imageandgif/robert.png"; +// import robert from "../components/imageandgif/robert.png"; import RamanaReddy from "../components/imageandgif/RamanaReddy.png"; import MukeshLamba from "../components/imageandgif/MukeshLamba.png"; import RamaKrishnan from "../components/imageandgif/RamaKrishnan.png"; diff --git a/src/components/wastemanagement.tsx b/src/components/wastemanagement.tsx index e03a157..beea7cb 100644 --- a/src/components/wastemanagement.tsx +++ b/src/components/wastemanagement.tsx @@ -1,18 +1,7 @@ -import { createTheme, ThemeProvider, useMediaQuery, useTheme, Grid } from "@mui/material"; +import React from "react"; +import { useMediaQuery, useTheme, Grid } from "@mui/material"; import wasteimage from "../components/imageandgif/Loop Transforming waste.svg"; -import { ReactComponent as MobileWasteImage } from "../components/imageandgif/Soil & Water Contamination.svg"; - -const customTheme = createTheme({ - breakpoints: { - values: { - xs: 0, - sm: 600, - md: 1000, - lg: 1400, - xl: 1800, - }, - }, -}); +import { ReactComponent as MobileWasteImage } from "../components/imageandgif/Soil & Water Contamination.svg"; const WasteImageSection = () => { const theme = useTheme(); diff --git a/src/components/whyus.tsx b/src/components/whyus.tsx index a6239da..59efb87 100644 --- a/src/components/whyus.tsx +++ b/src/components/whyus.tsx @@ -47,7 +47,7 @@ const WhyChooseUs: React.FC = () => { item key={index} xs={6} - sm={2} + sm={6} display="flex" justifyContent="center" > diff --git a/yarn.lock b/yarn.lock index 6a7c5d9..0730b61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1311,11 +1311,39 @@ dependencies: eslint-visitor-keys "^3.4.3" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/eslint-utils@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz#b0fc7e06d0c94f801537fd4237edc2706d3b8e4c" + integrity sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1", "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": version "4.12.1" resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== +"@eslint/config-array@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa" + integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w== + dependencies: + "@eslint/object-schema" "^2.1.6" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/config-helpers@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.0.tgz#12dc8d65c31c4b6c3ebf0758db6601eb7692ce59" + integrity sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ== + +"@eslint/core@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.12.0.tgz#5f960c3d57728be9f6c65bd84aa6aa613078798e" + integrity sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg== + dependencies: + "@types/json-schema" "^7.0.15" + "@eslint/eslintrc@^2.1.4": version "2.1.4" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" @@ -1331,11 +1359,57 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" + integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^10.0.1" + globals "^14.0.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@eslint/js@8.57.1": version "8.57.1" resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz" integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== +"@eslint/js@9.23.0": + version "9.23.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.23.0.tgz#c09ded4f3dc63b40b933bcaeb853fceddb64da30" + integrity sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw== + +"@eslint/object-schema@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" + integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== + +"@eslint/plugin-kit@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz#9901d52c136fb8f375906a73dcc382646c3b6a27" + integrity sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g== + dependencies: + "@eslint/core" "^0.12.0" + levn "^0.4.1" + +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + dependencies: + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" + "@humanwhocodes/config-array@^0.13.0": version "0.13.0" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz" @@ -1355,6 +1429,16 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== + +"@humanwhocodes/retry@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161" + integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" @@ -2242,7 +2326,7 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -2415,6 +2499,21 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/eslint-plugin@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz#ad1465aa6fe7e937801c291648dec951c4dc38e6" + integrity sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.28.0" + "@typescript-eslint/type-utils" "8.28.0" + "@typescript-eslint/utils" "8.28.0" + "@typescript-eslint/visitor-keys" "8.28.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^2.0.1" + "@typescript-eslint/eslint-plugin@^5.5.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" @@ -2438,6 +2537,17 @@ dependencies: "@typescript-eslint/utils" "5.62.0" +"@typescript-eslint/parser@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.28.0.tgz#85321707e8711c0e66a949ea228224af35f45c98" + integrity sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ== + dependencies: + "@typescript-eslint/scope-manager" "8.28.0" + "@typescript-eslint/types" "8.28.0" + "@typescript-eslint/typescript-estree" "8.28.0" + "@typescript-eslint/visitor-keys" "8.28.0" + debug "^4.3.4" + "@typescript-eslint/parser@^5.5.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" @@ -2456,6 +2566,14 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" +"@typescript-eslint/scope-manager@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz#e495b20438a3787e00498774d5625e620d68f9fe" + integrity sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw== + dependencies: + "@typescript-eslint/types" "8.28.0" + "@typescript-eslint/visitor-keys" "8.28.0" + "@typescript-eslint/type-utils@5.62.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz" @@ -2466,11 +2584,26 @@ debug "^4.3.4" tsutils "^3.21.0" +"@typescript-eslint/type-utils@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz#fc565414ebc16de1fc65e0dd8652ce02c78ca61f" + integrity sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg== + dependencies: + "@typescript-eslint/typescript-estree" "8.28.0" + "@typescript-eslint/utils" "8.28.0" + debug "^4.3.4" + ts-api-utils "^2.0.1" + "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.28.0.tgz#7c73878385edfd9674c7aa10975e6c484b4f896e" + integrity sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA== + "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" @@ -2484,6 +2617,20 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz#56b999f26f7ca67b9d75d6a67af5c8b8e4e80114" + integrity sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA== + dependencies: + "@typescript-eslint/types" "8.28.0" + "@typescript-eslint/visitor-keys" "8.28.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^2.0.1" + "@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.58.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" @@ -2498,6 +2645,16 @@ eslint-scope "^5.1.1" semver "^7.3.7" +"@typescript-eslint/utils@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.28.0.tgz#7850856620a896b7ac621ac12d49c282aefbb528" + integrity sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.28.0" + "@typescript-eslint/types" "8.28.0" + "@typescript-eslint/typescript-estree" "8.28.0" + "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" @@ -2506,6 +2663,14 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz#18eb9a25cc9dadb027835c58efe93a5c4ee81969" + integrity sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg== + dependencies: + "@typescript-eslint/types" "8.28.0" + eslint-visitor-keys "^4.2.0" + "@ungap/structured-clone@^1.2.0": version "1.3.0" resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" @@ -3641,7 +3806,7 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -4463,7 +4628,7 @@ escodegen@^2.0.0: eslint-config-react-app@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== dependencies: "@babel/core" "^7.16.0" @@ -4563,7 +4728,7 @@ eslint-plugin-react-hooks@^4.3.0: resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz" integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== -eslint-plugin-react@^7.27.1: +eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.37.4: version "7.37.4" resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz" integrity sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ== @@ -4610,6 +4775,14 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-scope@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.3.0.tgz#10cd3a918ffdd722f5f3f7b5b83db9b23c87340d" + integrity sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" @@ -4620,6 +4793,11 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + eslint-webpack-plugin@^3.1.1: version "3.2.0" resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz" @@ -4675,6 +4853,56 @@ eslint@^8.3.0: strip-ansi "^6.0.1" text-table "^0.2.0" +eslint@^9.23.0: + version "9.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.23.0.tgz#b88f3ab6dc83bcb927fdb54407c69ffe5f2441a6" + integrity sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.19.2" + "@eslint/config-helpers" "^0.2.0" + "@eslint/core" "^0.12.0" + "@eslint/eslintrc" "^3.3.1" + "@eslint/js" "9.23.0" + "@eslint/plugin-kit" "^0.2.7" + "@humanfs/node" "^0.16.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.4.2" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.6" + debug "^4.3.2" + escape-string-regexp "^4.0.0" + eslint-scope "^8.3.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" + esquery "^1.5.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^8.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + json-stable-stringify-without-jsonify "^1.0.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + +espree@^10.0.1, espree@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== + dependencies: + acorn "^8.14.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.2.0" + espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" @@ -4694,7 +4922,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: +esquery@^1.4.2, esquery@^1.5.0: version "1.6.0" resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== @@ -4880,6 +5108,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + file-loader@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" @@ -4966,6 +5201,14 @@ flat-cache@^3.0.4: keyv "^4.5.3" rimraf "^3.0.2" +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + flatted@^3.2.9: version "3.3.2" resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz" @@ -5228,6 +5471,16 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globals@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-16.0.0.tgz#3d7684652c5c4fbd086ec82f9448214da49382d8" + integrity sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A== + globalthis@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" @@ -5510,7 +5763,7 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -6617,7 +6870,7 @@ jsonpointer@^5.0.0: object.assign "^4.1.4" object.values "^1.1.6" -keyv@^4.5.3: +keyv@^4.5.3, keyv@^4.5.4: version "4.5.4" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -8716,6 +8969,11 @@ semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: resolved "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz" integrity sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ== +semver@^7.6.0: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + send@0.19.0: version "0.19.0" resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz" @@ -9503,6 +9761,11 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-api-utils@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" + integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== + ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" @@ -9634,6 +9897,15 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typescript-eslint@^8.28.0: + version "8.28.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.28.0.tgz#70b0ac51dc15eeb9fcfad66c0b0ec78f3ad341e3" + integrity sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ== + dependencies: + "@typescript-eslint/eslint-plugin" "8.28.0" + "@typescript-eslint/parser" "8.28.0" + "@typescript-eslint/utils" "8.28.0" + typescript@^4.4.2: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz"