diff --git a/index.html b/index.html index 138bfd7a..a0394bd1 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,8 @@ + + - React Starterkit V3 + DTM - Drone Tasking Manager diff --git a/package.json b/package.json index 3ce8de03..bb6a1760 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "date-fns": "^2.30.0", "dom-to-code": "^1.5.4", "dotenv": "^16.0.3", + "framer-motion": "^11.2.9", "geojson": "^0.5.0", "html2canvas": "^1.4.1", "lucide-react": "^0.260.0", diff --git a/public/favicon.ico b/public/favicon.ico index 26694ae6..f6808b1e 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/src/App.tsx b/src/App.tsx index 7f497cf5..7fa3c62e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -36,6 +36,7 @@ export default function App() { '/sign-up', '/forgot-password', '/public-page', + '/', ]; const hideSideBar = routesWithoutSidebar.some(url => pathname.includes(url)); diff --git a/src/assets/css/index.css b/src/assets/css/index.css index 85b75f1d..ac09e1b9 100644 --- a/src/assets/css/index.css +++ b/src/assets/css/index.css @@ -14,5 +14,5 @@ html, body { - font-family: 'Product Sans', sans-serif; -} + font-family: 'Manrope', sans-serif; +} \ No newline at end of file diff --git a/src/assets/css/tailwind.css b/src/assets/css/tailwind.css index 74cfcdd8..4eac8a59 100644 --- a/src/assets/css/tailwind.css +++ b/src/assets/css/tailwind.css @@ -3,7 +3,7 @@ @tailwind utilities; .naxatw-text { - @apply naxatw-font-primary naxatw-tracking-normal; + @apply naxatw-font-manrope naxatw-tracking-normal; } @layer base { diff --git a/src/assets/images/CaseStudyImage.png b/src/assets/images/CaseStudyImage.png new file mode 100644 index 00000000..7baba6ba Binary files /dev/null and b/src/assets/images/CaseStudyImage.png differ diff --git a/src/assets/images/DTM-Logo.svg b/src/assets/images/DTM-Logo.svg new file mode 100644 index 00000000..73981ff3 --- /dev/null +++ b/src/assets/images/DTM-Logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/images/DTMLogo.svg b/src/assets/images/DTMLogo.svg new file mode 100644 index 00000000..d8333156 --- /dev/null +++ b/src/assets/images/DTMLogo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/images/DroneBackgroundImage.png b/src/assets/images/DroneBackgroundImage.png new file mode 100644 index 00000000..4b3f9ecf Binary files /dev/null and b/src/assets/images/DroneBackgroundImage.png differ diff --git a/src/assets/images/DroneImage.png b/src/assets/images/DroneImage.png new file mode 100644 index 00000000..c537584e Binary files /dev/null and b/src/assets/images/DroneImage.png differ diff --git a/src/assets/images/FooterBackground.png b/src/assets/images/FooterBackground.png new file mode 100644 index 00000000..3615acb1 Binary files /dev/null and b/src/assets/images/FooterBackground.png differ diff --git a/src/assets/images/ForestImage.png b/src/assets/images/ForestImage.png new file mode 100644 index 00000000..c642d580 Binary files /dev/null and b/src/assets/images/ForestImage.png differ diff --git a/src/assets/images/HOT-logo.png b/src/assets/images/HOT-logo.png new file mode 100644 index 00000000..cb425b51 Binary files /dev/null and b/src/assets/images/HOT-logo.png differ diff --git a/src/assets/images/MajorImpactImage.png b/src/assets/images/MajorImpactImage.png new file mode 100644 index 00000000..5939a9a4 Binary files /dev/null and b/src/assets/images/MajorImpactImage.png differ diff --git a/src/assets/images/Naxa-logo.png b/src/assets/images/Naxa-logo.png new file mode 100644 index 00000000..409a5f29 Binary files /dev/null and b/src/assets/images/Naxa-logo.png differ diff --git a/src/assets/images/RockerIcon.svg b/src/assets/images/RockerIcon.svg new file mode 100644 index 00000000..06999b43 --- /dev/null +++ b/src/assets/images/RockerIcon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/images/TargetIcon.svg b/src/assets/images/TargetIcon.svg new file mode 100644 index 00000000..62eddd42 --- /dev/null +++ b/src/assets/images/TargetIcon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/WorldbankLogo.png b/src/assets/images/WorldbankLogo.png new file mode 100644 index 00000000..240bc1c5 Binary files /dev/null and b/src/assets/images/WorldbankLogo.png differ diff --git a/src/components/Dashboard/AboutTM/index.tsx b/src/components/Dashboard/AboutTM/index.tsx new file mode 100644 index 00000000..83c4e9e3 --- /dev/null +++ b/src/components/Dashboard/AboutTM/index.tsx @@ -0,0 +1,57 @@ +import { Grid } from '@Components/common/Layouts'; +import Image from '@Components/RadixComponents/Image'; +import droneImage from '@Assets/images/DroneImage.png'; +import rocketIcon from '@Assets/images/RockerIcon.svg'; +import targetIcon from '@Assets/images/TargetIcon.svg'; + +export default function AboutTM() { + return ( +
+
+ +
+

+ About Drone Tasking Manger +

+

(TM)

+

+ Drone TM is an integrated open source digital public good solution + that aims to harness the power of the crowd to help generate + high-resolution aerial maps to improve resilience of the disaster + prone communities across the world. +

+
+
+ +
+
+ +
+ +

+ Our Motivation +

+

+ Drones belonging to and operated by communities are more effective + because they are in place and can respond immediately, + responsibly, and take into account the needs of the community as + they see them. +

+
+
+ +

+ Our Vision +

+

+ Drones belonging to and operated by communities are more effective + because they are in place and can respond immediately, + responsibly, and take into account the needs of the community as + they see them. +

+
+
+
+
+ ); +} diff --git a/src/components/Dashboard/CaseStudies/index.tsx b/src/components/Dashboard/CaseStudies/index.tsx new file mode 100644 index 00000000..f1cf8ec7 --- /dev/null +++ b/src/components/Dashboard/CaseStudies/index.tsx @@ -0,0 +1,72 @@ +import { FlexRow, Grid } from '@Components/common/Layouts'; +import Icon from '@Components/common/Icon'; +import Image from '@Components/RadixComponents/Image'; +import caseStudyImage from '@Assets/images/CaseStudyImage.png'; + +export default function CaseStudies() { + return ( +
+
+ +

+ Case Studies +

+ + + + +
+ + +
+

+ Piloting drone tasking manager in the carribean +

+

+ Simplifies the onboarding process, enhances security with + role-based access, and facilitates efficient management of + participant activities. +

+
+
+ +
+
+ +
+

+ Piloting drone tasking manager in the carribean +

+

+ Simplifies the onboarding process, enhances security with + role-based access, and facilitates efficient management of + participant activities. +

+
+
+ +
+
+
+
+
+ ); +} diff --git a/src/components/Dashboard/ClientsAndPartners/index.tsx b/src/components/Dashboard/ClientsAndPartners/index.tsx new file mode 100644 index 00000000..d8bbba7e --- /dev/null +++ b/src/components/Dashboard/ClientsAndPartners/index.tsx @@ -0,0 +1,18 @@ +import { FlexColumn } from '@Components/common/Layouts'; +import Image from '@Components/RadixComponents/Image'; +import worldBankLogo from '@Assets/images/WorldbankLogo.png'; + +export default function ClientAndPartners() { + return ( +
+
+ +

+ Client & Partners +

+ world bank logo +
+
+
+ ); +} diff --git a/src/components/Dashboard/Features/index.tsx b/src/components/Dashboard/Features/index.tsx new file mode 100644 index 00000000..43fc2639 --- /dev/null +++ b/src/components/Dashboard/Features/index.tsx @@ -0,0 +1,118 @@ +import { FlexColumn } from '@Components/common/Layouts'; + +export default function Features() { + return ( +
+
+
+
+

+ Features of Drone Tasking Manager +

+
+
+
+ + + 1 + +
+

+ User Management +

+
+

+ Simplifies the onboarding process, enhances security with + role-based access, and facilitates efficient management of + participant activities. +

+
+
+
+ + + 2 + +
+

+ Survey Projects Creation +

+
+

+ Streamlines project setup, allows for custom project + specifications, and ensures all participants have clear + guidelines and objectives. +

+
+
+
+ + + 3 + +
+

+ Data/Flight Plan Upload +

+
+

+ Ensures consistency and accuracy in flight plans, maximizes + area coverage, and minimizes data gaps. +

+
+
+
+ + + 4 + +
+

+ Data/Flight Plan Upload +

+
+

+ Ensures consistency and accuracy in flight plans, maximizes + area coverage, and minimizes data gaps. +

+
+
+
+ + + 5 + +
+

+ Notifications/Status Management +

+
+

+ Keeps all users informed and engaged, ensures timely responses + to project needs, and enhances collaborative efforts. +

+
+
+
+ + + 6 + +
+

+ Data Visualization +

+
+

+ Aids in better understanding and interpretation of the data, + supports decision-making processes, and enhances the + presentation of findings. +

+
+
+
+
+
+
+ ); +} diff --git a/src/components/Dashboard/Footer/index.tsx b/src/components/Dashboard/Footer/index.tsx new file mode 100644 index 00000000..e15673ca --- /dev/null +++ b/src/components/Dashboard/Footer/index.tsx @@ -0,0 +1,56 @@ +import footerBackgroundImage from '@Assets/images/FooterBackground.png'; +import { Flex, FlexRow } from '@Components/common/Layouts'; +import Icon from '@Components/common/Icon'; +import Image from '@Components/RadixComponents/Image'; +import naxaLogo from '@Assets/images/Naxa-logo.png'; +import hotLogo from '@Assets/images/HOT-logo.png'; +import { Button } from '@Components/RadixComponents/Button'; + +export default function Footer() { + return ( + + ); +} diff --git a/src/components/Dashboard/Home/index.tsx b/src/components/Dashboard/Home/index.tsx new file mode 100644 index 00000000..e3f9f38b --- /dev/null +++ b/src/components/Dashboard/Home/index.tsx @@ -0,0 +1,62 @@ +import { useState } from 'react'; +import { FlexColumn, FlexRow } from '@Components/common/Layouts'; +import droneBackgroundImage from '@Assets/images/DroneBackgroundImage.png'; +import Image from '@Components/RadixComponents/Image'; +import droneTaskingManagerLogo from '@Assets/images/DTM-Logo.svg'; +import { Button } from '@Components/RadixComponents/Button'; +import Icon from '@Components/common/Icon'; + +export default function Home() { + const [hover, setHover] = useState(false); + return ( +
+
+ + + + + +

+ Drone Tasking +

+

+ Manger (Drone TM) +

+

+ Together, WeMap - Open.Accurate. Accessible +

+
+ + +
+
+
+
+ ); +} diff --git a/src/components/Dashboard/MajorImpacts/index.tsx b/src/components/Dashboard/MajorImpacts/index.tsx new file mode 100644 index 00000000..69164b36 --- /dev/null +++ b/src/components/Dashboard/MajorImpacts/index.tsx @@ -0,0 +1,38 @@ +import { Grid } from '@Components/common/Layouts'; +import Image from '@Components/RadixComponents/Image'; +import Accordion from '@Components/common/Accordion'; +import majorImpactsImage from '@Assets/images/MajorImpactImage.png'; +import { accordionData } from '@Constants/landingpage'; + +export default function MajorImpacts() { + return ( +
+
+ + +
+

+ Anticipated Major Impacts +

+
+ {accordionData.map((data: Record) => ( + + ))} +
+
+
+
+
+ ); +} diff --git a/src/components/Dashboard/Navbar/index.tsx b/src/components/Dashboard/Navbar/index.tsx new file mode 100644 index 00000000..21591875 --- /dev/null +++ b/src/components/Dashboard/Navbar/index.tsx @@ -0,0 +1,28 @@ +import { FlexRow } from '@Components/common/Layouts'; + +export default function Navbar() { + return ( +
+ + +

About

+

FAQs

+

Documentations

+
+ +

EN

+

ने

+
+
+
+ ); +} diff --git a/src/components/Dashboard/OpenSource/index.tsx b/src/components/Dashboard/OpenSource/index.tsx new file mode 100644 index 00000000..3500f285 --- /dev/null +++ b/src/components/Dashboard/OpenSource/index.tsx @@ -0,0 +1,25 @@ +import { FlexColumn } from '@Components/common/Layouts'; +import Image from '@Components/RadixComponents/Image'; +import forestImage from '@Assets/images/ForestImage.png'; + +export default function OpenSource() { + return ( +
+
+ +

+ Open Source Drone Tasking Manager +

+

+ An open-source drone tasking platform to coordinate aerial survey + activities for target project areas among multiple pilots, + incorporating tools and processes to ensure coordinated flight plans + for imagery acquisition, and a seamless pipeline for processing and + dissemination. +

+ +
+
+
+ ); +} diff --git a/src/components/Dashboard/OurRationale/index.tsx b/src/components/Dashboard/OurRationale/index.tsx new file mode 100644 index 00000000..fe7f6a6b --- /dev/null +++ b/src/components/Dashboard/OurRationale/index.tsx @@ -0,0 +1,95 @@ +import { FlexColumn } from '@Components/common/Layouts'; + +export default function OurRationale() { + return ( +
+
+
+
+

+ Our Rationale +

+
+
+ + + 1 + +
+

+ Limited Access to High +

+

+ Resolution Aerial Datasets +

+
+

+ In low-income and disaster-prone areas, access to near real-time + satellite datasets is severely limited. High-resolution + satellite imagery, when available, is often expensive and + out-of-date. Additionally, full-scale aircraft mapping is not a + viable option due to its high costs and operational complexity. +

+
+ + + 2 + +
+

+ Limited Engagement of +

+

+ Communities +

+
+

+ Traditional mapping solutions involve professional consultants + with expensive equipment who typically engage with communities + only briefly, which can lead to delays and lack of locally + relevant data. +

+
+ + + 3 + +
+

+ Commercial Proprietary +

+

+ Software to Consumer +

+
+

+ Many existing drone operation tools are proprietary and not + designed for large-scale collaborative efforts, which limits + their usefulness for community-driven projects +

+
+ + + 4 + +
+

+ Regular Compliance in +

+

+ Conflict Areas +

+
+

+ Traditional mapping solutions involve professional consultants + with expensive equipment who typically engage with communities + only briefly, which can lead to delays and lack of locally + relevant data. +

+
+
+
+
+
+ ); +} diff --git a/src/components/Dashboard/UserAndRoles/index.tsx b/src/components/Dashboard/UserAndRoles/index.tsx new file mode 100644 index 00000000..659908eb --- /dev/null +++ b/src/components/Dashboard/UserAndRoles/index.tsx @@ -0,0 +1,67 @@ +import { useState, useEffect } from 'react'; +import Icon from '@Components/common/Icon'; +import { FlexRow } from '@Components/common/Layouts'; +import { userAndRolesData } from '@Constants/landingpage'; + +export default function UserAndRoles() { + const [numberofItemsToShow, setNumItemsToShow] = useState(1); + + useEffect(() => { + function handleResize() { + if (window.innerWidth < 768) { + setNumItemsToShow(1); + } else if (window.innerWidth < 1024) { + setNumItemsToShow(2); + } else { + setNumItemsToShow(3); + } + } + + window.addEventListener('resize', handleResize); + handleResize(); + return () => window.removeEventListener('resize', handleResize); + }, []); + + return ( +
+
+

+ Drone TM: Users & Roles +

+ + +
+ {userAndRolesData.slice(0, numberofItemsToShow).map(singleItem => ( +
+

+ {singleItem.title} +

+
    + {singleItem.listItems.map(item => ( +
  • {item.text}
  • + ))} +
+
+ ))} +
+ +
+
+
+ ); +} diff --git a/src/components/Dashboard/index.tsx b/src/components/Dashboard/index.tsx new file mode 100644 index 00000000..34c3637d --- /dev/null +++ b/src/components/Dashboard/index.tsx @@ -0,0 +1,29 @@ +import Navbar from './Navbar'; +import Home from './Home'; +import AboutTM from './AboutTM'; +import OurRationale from './OurRationale'; +import OpenSource from './OpenSource'; +import Features from './Features'; +import UserAndRoles from './UserAndRoles'; +import MajorImpacts from './MajorImpacts'; +import CaseStudies from './CaseStudies'; +import ClientAndPartners from './ClientsAndPartners'; +import Footer from './Footer'; + +export default function Dashboard() { + return ( +
+ + + + + + + + + + +
+ ); +} diff --git a/src/components/common/Accordion/index.tsx b/src/components/common/Accordion/index.tsx new file mode 100644 index 00000000..3207e0ae --- /dev/null +++ b/src/components/common/Accordion/index.tsx @@ -0,0 +1,36 @@ +import { useState } from 'react'; +import { FlexRow } from '../Layouts'; +import Icon from '../Icon'; + +interface IAccordionProps { + open: boolean; + title: string; + description: string; +} + +export default function Accordion({ + open = false, + title, + description, +}: IAccordionProps) { + const [isOpen, setIsOpen] = useState(open); + return ( +
+ +

{title}

+ +
+ {isOpen && ( +

+ {description} +

+ )} +
+ ); +} diff --git a/src/constants/landingpage.ts b/src/constants/landingpage.ts new file mode 100644 index 00000000..c128d1cf --- /dev/null +++ b/src/constants/landingpage.ts @@ -0,0 +1,100 @@ +/* eslint-disable import/prefer-default-export */ +export const accordionData = [ + { + id: 1, + title: 'Enhanced Crisis Response', + description: + 'Significant savings in mapping and surveying costs for underprivileged areas.', + isOpen: true, + }, + { + id: 2, + title: 'Community Empowerment', + description: + "Yes, you can try us for free for 30 days. If you want, we'll provide you with a free, personalized 30-minute onboarding call to get you up and running as soon as possible.", + isOpen: false, + }, + { + id: 3, + title: 'Cost Reduction', + description: + "Yes, you can try us for free for 30 days. If you want, we'll provide you with a free, personalized 30-minute onboarding call to get you up and running as soon as possible.", + isOpen: false, + }, + { + id: 4, + title: 'Data Accessibility', + description: + "Yes, you can try us for free for 30 days. If you want, we'll provide you with a free, personalized 30-minute onboarding call to get you up and running as soon as possible.", + isOpen: false, + }, +]; + +export const userAndRolesData = [ + { + id: 1, + title: 'Project Managers', + listItems: [ + { + id: 1, + text: 'Create areas for drone mapping', + }, + { + id: 2, + text: 'Plan a flight for the desired imagery characteristics such as flying height, overlaps, angles, Ground Sampling Distance (GSD, essentially resolution), etc.', + }, + { + id: 3, + text: 'Publish Tasks for Drone Operators', + }, + { + id: 4, + text: 'View the progress and updates', + }, + { + id: 5, + text: 'Review the final output', + }, + ], + }, + { + id: 2, + title: 'Drone Operators', + listItems: [ + { + id: 1, + text: 'Register to participate in imagery acquisition', + }, + { + id: 2, + text: 'Select areas that they are interested in flying from the overall project area', + }, + { + id: 3, + text: 'Download flight plans appropriate to their hardware and capacity', + }, + { + id: 4, + text: 'Operate the drone by pushing a “Fly mission” button, causing the drone to cover the assigned area automatically', + }, + { + id: 5, + text: 'Upload the resulting images to a processing server', + }, + ], + }, + { + id: 3, + title: 'Data Users', + listItems: [ + { + id: 1, + text: 'Task areas for drone mapping', + }, + { + id: 2, + text: 'Define desired imagery characteristics such as Ground Sampling Distance (GSD, essentially resolution), overlap, angles, etc.', + }, + ], + }, +]; diff --git a/src/views/Dashboard/index.tsx b/src/views/Dashboard/index.tsx index b9b8de89..5db40fea 100644 --- a/src/views/Dashboard/index.tsx +++ b/src/views/Dashboard/index.tsx @@ -1,3 +1,5 @@ +import DashboardComponent from '@Components/Dashboard'; + export default function Dashboard() { - return

Hello Dashboard

; + return ; } diff --git a/tailwind.config.js b/tailwind.config.js index 848c3082..d73303fb 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -10,14 +10,26 @@ module.exports = { theme: { container: { center: true, - padding: '2rem', + padding: { + DEFAULT: '1.25rem', + sm: '1.25rem', + md: '2.125rem', + lg: '4.125rem', + xl: '8rem', + '2xl': '8rem', + }, screens: { - '2xl': '1400px', + sm: '640px', + md: '768px', + lg: '1024px', + xl: '1280px', + '2xl': '1440px', }, }, extend: { fontFamily: { primary: ['Product Sans', 'sans-serif'], + manrope: ['Manrope', 'sans-serif'], }, colors: { primary: { @@ -56,6 +68,10 @@ module.exports = { 800: '#484848', 900: '#212121', }, + landing: { + blue: '#1B66AF', + white: '#FBF8F3' + } }, fontSize: { diff --git a/yarn.lock b/yarn.lock index afa592c1..3b5bae59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3491,6 +3491,13 @@ fraction.js@^4.3.7: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== +framer-motion@^11.2.9: + version "11.2.9" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.2.9.tgz#ba1dbaf2421b16fa8da310db7d7b39e1b5d0d3dc" + integrity sha512-gfxNSkp4dC3vpy2hGNQK3K9bNOKwfasqOhrqvmZzYxCPSJ9Tpv/9JlCkeCMgFdKefgPr8+JiouGjVmaDzu750w== + dependencies: + tslib "^2.4.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -5234,8 +5241,16 @@ string-argv@0.3.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5299,7 +5314,14 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -5502,7 +5524,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.1.0, tslib@^2.6.2: +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==