From 3bc0bc2592e417f6b68339c51aa295e3e155a173 Mon Sep 17 00:00:00 2001 From: gratestas Date: Tue, 25 Jul 2023 14:37:45 +0300 Subject: [PATCH 01/15] feat(eventlog): add mobile view for EventLog fix #242 --- src/assets/eyeDisabled.svg | 9 + src/components/others/eventLog/index.jsx | 222 ++++++++++-------- .../others/eventLog/index.module.scss | 30 ++- .../arbitrationDetails/evidence/index.jsx | 1 + .../arbitrationDetails/index.jsx | 2 +- src/components/presentational/tabs/index.jsx | 14 ++ .../presentational/tabs/index.module.scss | 27 +++ 7 files changed, 211 insertions(+), 94 deletions(-) create mode 100644 src/assets/eyeDisabled.svg create mode 100644 src/components/presentational/tabs/index.jsx create mode 100644 src/components/presentational/tabs/index.module.scss diff --git a/src/assets/eyeDisabled.svg b/src/assets/eyeDisabled.svg new file mode 100644 index 00000000..fa1eec45 --- /dev/null +++ b/src/assets/eyeDisabled.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/components/others/eventLog/index.jsx b/src/components/others/eventLog/index.jsx index d21296a9..5fc9f78e 100644 --- a/src/components/others/eventLog/index.jsx +++ b/src/components/others/eventLog/index.jsx @@ -10,113 +10,69 @@ import AttachmentIcon from "jsx:/src/assets/attachment.svg"; import getTrustScore from "../../../businessLogic/getTrustScore"; import getTimePastSinceLastBountyUpdate from "/src/businessLogic/getTimePastSinceLastBountyUpdate"; +import EyeIcon from "jsx:/src/assets/eye.svg"; +import DisabledEyeIcon from "jsx:/src/assets/eyeDisabled.svg"; +import Tabs from "../../presentational/tabs"; + const EVENTS_TO_IGNGORE = ["Withdrawal"]; const IPFS_GATEWAY_URL = "https://ipfs.kleros.io"; export default function EventLog({ visible, onCancel, events }) { - const ethereumContext = useContext(EthereumContext); - const [evidenceDetails, setEvidenceDetails] = useState({}); - const [expandedRows, setExpandedRows] = useState([]); - - const toggleEvidenceRow = (index) => { - const updatedRows = [...expandedRows]; - if (updatedRows.includes(index)) { - updatedRows.splice(updatedRows.indexOf(index), 1); - } else { - updatedRows.push(index); - } - setExpandedRows(updatedRows); - }; + const [eventsWithEvidenceDetails, setEventsWithEvidenceDetails] = useState([...events]); + const isMobileView = window?.innerWidth <= 600; useEffect(() => { - async function fetchEvidences(ipfsPaths) { - try { - const responses = await Promise.all(ipfsPaths.map((path) => fetch(IPFS_GATEWAY_URL + path))); - const data = await Promise.all(responses.map((response) => response.json())); - const evidences = ipfsPaths.reduce((acc, path, index) => ({ ...acc, [path]: data[index] }), {}); - - setEvidenceDetails(evidences); - } catch (error) { - console.error("Failed to fetch event evidences from IPFS", error); - } - } - console.log({ events }); + const fetchEvidencesAndMerge = async (events) => { + const updatedEvents = await Promise.all( + events.map(async (event) => { + if (event.name === "Evidence") { + try { + const response = await fetch(IPFS_GATEWAY_URL + event.details); + const evidenceData = await response.json(); + return { ...event, details: evidenceData }; + } catch (error) { + console.error("Failed to fetch event evidence from IPFS", error); + return event; + } + } + return event; + }) + ); + setEventsWithEvidenceDetails(updatedEvents); + }; - const ipfsPaths = events.filter((event) => event.name === "Evidence").map((event) => event.details); - if (ipfsPaths.length) fetchEvidences(ipfsPaths); + fetchEvidencesAndMerge(events); }, [events]); - const calculateTrustScore = (article) => { - return getTrustScore( - article, - getTimePastSinceLastBountyUpdate( - article.lastBalanceUpdate, - ethereumContext?.graphMetadata?.block?.number || ethereumContext?.blockNumber - ) - ); - }; + const filteredEvents = eventsWithEvidenceDetails.filter((e) => !EVENTS_TO_IGNGORE.includes(e.name)); return (
Event Log
- - - - - - - - - - - {events - .filter((e) => !EVENTS_TO_IGNGORE.includes(e.name)) - .map((event, i) => { - const isEvidence = event.name === "Evidence"; - const isExpanded = expandedRows.includes(i); - return ( - - - - - - - - {isEvidence && isExpanded && ( - - - - )} - - ); - })} - -
NameDetailsActorTime
{getPrettyNamesForEvents(event.name)} - {isEvidence ? ( -
toggleEvidenceRow(i)}> - {isExpanded ? "Hide Details" : "Show Details"} -
- ) : event.name === "ArticleWithdrawal" ? ( - formatExtraData(event.name, calculateTrustScore(event.article), ethereumContext) - ) : ( - formatExtraData(event.name, event.details, ethereumContext) - )} -
- - {getLabel(event.from, ethereumContext?.accounts[0])} - - {new Date(event.timestamp * 1000).toUTCString()}
- -
+ {isMobileView ? ( + filteredEvents.map((event) => ) + ) : ( + + + + + + + + + + + {filteredEvents.map((event) => ( + + ))} + +
NameDetailsActorTime
+ )}
); } -function EvidenceDisplay({ evidence }) { +const EvidenceDisplay = ({ evidence }) => { return (
@@ -129,6 +85,89 @@ function EvidenceDisplay({ evidence }) {
{evidence.description}
); +}; + +const EventCard = ({ event }) => { + const [isExpanded, setEpanded] = useState(false); + const { blockNumber, chainId, accounts, graphMetadata, metaEvidenceContents } = useContext(EthereumContext); + const currenBlockNumber = graphMetadata?.block?.number || blockNumber; + + const getContent = () => { + switch (event.name) { + case "Evidence": + return ; + case "ArticleWithdrawal": + return formatExtraData(event.name, calculateTrustScore(event.article, currenBlockNumber), metaEvidenceContents); + default: + return formatExtraData(event.name, event.details, metaEvidenceContents); + } + }; + + return ( +
setEpanded((prevState) => !prevState)}> +
{getPrettyNamesForEvents(event.name)}
+
{new Date(event.timestamp * 1000).toUTCString()}
+ {isExpanded ? : } + {isExpanded && ( + + {getLabel(event.from, accounts[0])} + + ), + }, + { label: "Details", content: getContent() }, + ]} + /> + )} +
+ ); +}; + +const EventTableRow = ({ event }) => { + const [isExpanded, setEpanded] = useState(false); + const { blockNumber, accounts, chainId, graphMetadata, metaEvidenceContents } = useContext(EthereumContext); + const currenBlockNumber = graphMetadata?.block?.number || blockNumber; + + const isEvidence = event.name === "Evidence"; + return ( + <> + + {getPrettyNamesForEvents(event.name)} + + {isEvidence ? ( +
setEpanded((prevState) => !prevState)}> + {isExpanded ? "Hide Details" : "Show Details"} +
+ ) : event.name === "ArticleWithdrawal" ? ( + formatExtraData(event.name, calculateTrustScore(event.article, currenBlockNumber), metaEvidenceContents) + ) : ( + formatExtraData(event.name, event.details, metaEvidenceContents) + )} + + + + {getLabel(event.from, accounts[0])} + + + {new Date(event.timestamp * 1000).toUTCString()} + + {isEvidence && isExpanded && ( + + + + + + )} + + ); +}; + +function calculateTrustScore(article, latestBlockNumber) { + return getTrustScore(article, getTimePastSinceLastBountyUpdate(article.lastBalanceUpdate, latestBlockNumber)); } function getPrettyNamesForEvents(sourceCodeName) { @@ -148,8 +187,7 @@ function getPrettyNamesForEvents(sourceCodeName) { } } -function formatExtraData(eventNameAsInSourceCode, extraData, ethereumContext) { - const { metaEvidenceContents } = ethereumContext; +function formatExtraData(eventNameAsInSourceCode, extraData, metaEvidenceContents) { switch (eventNameAsInSourceCode) { case "NewArticle": return `Curation Pool 0: ${metaEvidenceContents[extraData]?.category}`; diff --git a/src/components/others/eventLog/index.module.scss b/src/components/others/eventLog/index.module.scss index 82cc2910..6c52f366 100644 --- a/src/components/others/eventLog/index.module.scss +++ b/src/components/others/eventLog/index.module.scss @@ -1,14 +1,42 @@ @use "src/stylesheets/variables/typo"; @use "src/stylesheets/variables/spacings"; +@use "src/stylesheets/variables/breakpoints"; .eventLog { - max-width: 80vw; + max-width: 95%; + + @media (min-width: breakpoints.$small) { + max-width: 80vw; + } .title { font-size: typo.$xl; margin-top: spacings.$s-7; } + .eventCard { + margin: spacings.$s-7 auto; + padding: spacings.$s-7 spacings.$s-4 spacings.$s-5; + display: flex; + flex-direction: column; + align-items: center; + border: 1px solid hsl(var(--smooth-coffee-500)); + border-radius: 0.5rem; + + .cardTitle { + font-size: typo.$m; + margin-bottom: spacings.$s-3; + } + + .date { + margin-bottom: spacings.$s-7; + } + + a { + text-decoration: underline; + } + } + table { width: 100%; border-collapse: collapse; diff --git a/src/components/others/route_article/arbitrationDetails/evidence/index.jsx b/src/components/others/route_article/arbitrationDetails/evidence/index.jsx index ef9c3e76..abdd4018 100644 --- a/src/components/others/route_article/arbitrationDetails/evidence/index.jsx +++ b/src/components/others/route_article/arbitrationDetails/evidence/index.jsx @@ -16,6 +16,7 @@ export default function EvidencePeriod({ evidenceEvents, setEvidenceModalOpen }) useEffect(() => { const fetchData = async () => { + console.log({ evidenceEvents }); if (!evidenceEvents > 0) return; const data = await Promise.all( evidenceEvents.map(async (evidence) => { diff --git a/src/components/others/route_article/arbitrationDetails/index.jsx b/src/components/others/route_article/arbitrationDetails/index.jsx index 298760a4..73aea6ef 100644 --- a/src/components/others/route_article/arbitrationDetails/index.jsx +++ b/src/components/others/route_article/arbitrationDetails/index.jsx @@ -145,7 +145,7 @@ export default function ArbitrationDetails({ article }) { isHiddenVotes={currentDispute?.court.hiddenVotes} setEvidenceModalOpen={setEvidenceModalOpen} question={ethereumContext?.metaEvidenceContents[article?.category]?.question} - voteOptions={ethereumContext.metaEvidenceContents[article.category].rulingOptions.titles} + voteOptions={ethereumContext.metaEvidenceContents[article.category]?.rulingOptions.titles} />, , + {items?.map((item, i) => ( + + {item.content} + + ))} + + ); +} diff --git a/src/components/presentational/tabs/index.module.scss b/src/components/presentational/tabs/index.module.scss new file mode 100644 index 00000000..3d316afb --- /dev/null +++ b/src/components/presentational/tabs/index.module.scss @@ -0,0 +1,27 @@ +@use "src/stylesheets/variables/typo"; +@use "src/stylesheets/variables/spacings"; + +.tabs { + width: 100%; + + :global(div.ant-tabs-nav-wrap) { + width: 100%; + margin-top: spacings.$s-3; + display: flex; + justify-content: center; + border-top: 1px solid black; + } + + :global(.ant-tabs-content.ant-tabs-content-top) { + text-align: center; + } + + :global(.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { + color: hsl(var(--dark-orchestra-600)); + font-weight: medium; + } + + :global(.ant-tabs-ink-bar) { + background: hsl(var(--dark-orchestra-600)); + } +} From d797fdca15012859618c77847131c9578be97ebf Mon Sep 17 00:00:00 2001 From: gratestas Date: Tue, 25 Jul 2023 16:21:06 +0300 Subject: [PATCH 02/15] fix(eventlog): autoclose expanded item with inactive key" --- src/components/others/eventLog/index.jsx | 161 ++++++++++-------- .../others/eventLog/index.module.scss | 9 + 2 files changed, 95 insertions(+), 75 deletions(-) diff --git a/src/components/others/eventLog/index.jsx b/src/components/others/eventLog/index.jsx index 5fc9f78e..2eb090b8 100644 --- a/src/components/others/eventLog/index.jsx +++ b/src/components/others/eventLog/index.jsx @@ -49,25 +49,7 @@ export default function EventLog({ visible, onCancel, events }) { return (
Event Log
- {isMobileView ? ( - filteredEvents.map((event) => ) - ) : ( - - - - - - - - - - - {filteredEvents.map((event) => ( - - ))} - -
NameDetailsActorTime
- )} + {isMobileView ? : }
); } @@ -87,82 +69,111 @@ const EvidenceDisplay = ({ evidence }) => { ); }; -const EventCard = ({ event }) => { - const [isExpanded, setEpanded] = useState(false); +const EventList = ({ events }) => { + const [activeKey, setActiveKey] = useState(); const { blockNumber, chainId, accounts, graphMetadata, metaEvidenceContents } = useContext(EthereumContext); - const currenBlockNumber = graphMetadata?.block?.number || blockNumber; + const currentBlockNumber = graphMetadata?.block?.number || blockNumber; - const getContent = () => { + const getContent = (event) => { switch (event.name) { case "Evidence": return ; case "ArticleWithdrawal": - return formatExtraData(event.name, calculateTrustScore(event.article, currenBlockNumber), metaEvidenceContents); + return formatExtraData( + event.name, + calculateTrustScore(event.article, currentBlockNumber), + metaEvidenceContents + ); default: return formatExtraData(event.name, event.details, metaEvidenceContents); } }; return ( -
setEpanded((prevState) => !prevState)}> -
{getPrettyNamesForEvents(event.name)}
-
{new Date(event.timestamp * 1000).toUTCString()}
- {isExpanded ? : } - {isExpanded && ( - - {getLabel(event.from, accounts[0])} - - ), - }, - { label: "Details", content: getContent() }, - ]} - /> - )} -
+ <> + {events?.map((event, index) => ( +
setActiveKey(index)}> +
{getPrettyNamesForEvents(event.name)}
+
{new Date(event.timestamp * 1000).toUTCString()}
+ {activeKey === index ? : } + {activeKey === index && ( + + {getLabel(event.from, accounts[0])} + + ), + }, + { label: "Details", content: getContent(event) }, + ]} + /> + )} +
+ ))} + ); }; -const EventTableRow = ({ event }) => { - const [isExpanded, setEpanded] = useState(false); +const EventTable = ({ events }) => { + const [activeKey, setActiveKey] = useState(); const { blockNumber, accounts, chainId, graphMetadata, metaEvidenceContents } = useContext(EthereumContext); - const currenBlockNumber = graphMetadata?.block?.number || blockNumber; + const currentBlockNumber = graphMetadata?.block?.number || blockNumber; - const isEvidence = event.name === "Evidence"; return ( - <> - - {getPrettyNamesForEvents(event.name)} - - {isEvidence ? ( -
setEpanded((prevState) => !prevState)}> - {isExpanded ? "Hide Details" : "Show Details"} -
- ) : event.name === "ArticleWithdrawal" ? ( - formatExtraData(event.name, calculateTrustScore(event.article, currenBlockNumber), metaEvidenceContents) - ) : ( - formatExtraData(event.name, event.details, metaEvidenceContents) - )} - - - - {getLabel(event.from, accounts[0])} - - - {new Date(event.timestamp * 1000).toUTCString()} - - {isEvidence && isExpanded && ( + + - + + + + - )} - + + + {events?.map((event, index) => { + const isEvidence_ = event.name === "Evidence"; + const isExpanded_ = activeKey === index; + return ( + <> + + + + + + + {isEvidence_ && isExpanded_ && ( + + + + )} + + ); + })} + +
- - NameDetailsActorTime
{getPrettyNamesForEvents(event.name)} + {isEvidence_ ? ( +
setActiveKey(index)}> + {isExpanded_ ? "Hide Details" : "Show Details"} +
+ ) : event.name === "ArticleWithdrawal" ? ( + formatExtraData( + event.name, + calculateTrustScore(event.article, currentBlockNumber), + metaEvidenceContents + ) + ) : ( + formatExtraData(event.name, event.details, metaEvidenceContents) + )} +
+ + {getLabel(event.from, accounts[0])} + + {new Date(event.timestamp * 1000).toUTCString()}
+ +
); }; diff --git a/src/components/others/eventLog/index.module.scss b/src/components/others/eventLog/index.module.scss index 6c52f366..c76d9762 100644 --- a/src/components/others/eventLog/index.module.scss +++ b/src/components/others/eventLog/index.module.scss @@ -135,11 +135,20 @@ padding-bottom: spacings.$s-3; display: flex; justify-content: space-between; + text-align: left; + + ::first-letter { + text-transform: capitalize; + } } .description { font-size: typo.$xs; padding-top: spacings.$s-3; + text-align: left; + ::first-letter { + text-transform: capitalize; + } } .header, From 6790a47855e3d40aa1383c6274c478d86a423bfd Mon Sep 17 00:00:00 2001 From: gratestas Date: Tue, 25 Jul 2023 18:05:09 +0300 Subject: [PATCH 03/15] fix(enventlog): hide details if the clicked item is the currently active item --- src/components/others/eventLog/index.jsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/others/eventLog/index.jsx b/src/components/others/eventLog/index.jsx index 2eb090b8..50cfa3ff 100644 --- a/src/components/others/eventLog/index.jsx +++ b/src/components/others/eventLog/index.jsx @@ -92,7 +92,11 @@ const EventList = ({ events }) => { return ( <> {events?.map((event, index) => ( -
setActiveKey(index)}> +
setActiveKey((prevState) => (prevState === index ? undefined : index))} + >
{getPrettyNamesForEvents(event.name)}
{new Date(event.timestamp * 1000).toUTCString()}
{activeKey === index ? : } @@ -142,7 +146,10 @@ const EventTable = ({ events }) => { {getPrettyNamesForEvents(event.name)} {isEvidence_ ? ( -
setActiveKey(index)}> +
setActiveKey((prevState) => (prevState === index ? undefined : index))} + > {isExpanded_ ? "Hide Details" : "Show Details"}
) : event.name === "ArticleWithdrawal" ? ( From 3654efa3b68dbaeb1d03de238a34cca54a1fa6dd Mon Sep 17 00:00:00 2001 From: gratestas Date: Tue, 1 Aug 2023 13:44:54 +0300 Subject: [PATCH 04/15] fix(eventlog): use design icons --- src/assets/close.svg | 1 + src/assets/open.svg | 1 + src/components/others/eventLog/index.jsx | 6 +++--- src/components/others/eventLog/index.module.scss | 5 +++++ src/components/presentational/tabs/index.module.scss | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 src/assets/close.svg create mode 100644 src/assets/open.svg diff --git a/src/assets/close.svg b/src/assets/close.svg new file mode 100644 index 00000000..3cc44130 --- /dev/null +++ b/src/assets/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/open.svg b/src/assets/open.svg new file mode 100644 index 00000000..8db45c70 --- /dev/null +++ b/src/assets/open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/others/eventLog/index.jsx b/src/components/others/eventLog/index.jsx index 50cfa3ff..8cda2bf4 100644 --- a/src/components/others/eventLog/index.jsx +++ b/src/components/others/eventLog/index.jsx @@ -10,8 +10,8 @@ import AttachmentIcon from "jsx:/src/assets/attachment.svg"; import getTrustScore from "../../../businessLogic/getTrustScore"; import getTimePastSinceLastBountyUpdate from "/src/businessLogic/getTimePastSinceLastBountyUpdate"; -import EyeIcon from "jsx:/src/assets/eye.svg"; -import DisabledEyeIcon from "jsx:/src/assets/eyeDisabled.svg"; +import OpenEyeIcon from "jsx:/src/assets/open.svg"; +import CloseEyeIcon from "jsx:/src/assets/close.svg"; import Tabs from "../../presentational/tabs"; const EVENTS_TO_IGNGORE = ["Withdrawal"]; @@ -99,7 +99,7 @@ const EventList = ({ events }) => { >
{getPrettyNamesForEvents(event.name)}
{new Date(event.timestamp * 1000).toUTCString()}
- {activeKey === index ? : } +
{activeKey === index ? : }
{activeKey === index && ( Date: Tue, 1 Aug 2023 13:50:26 +0300 Subject: [PATCH 05/15] fix(eventlog): switch icons in ternary expression --- src/components/others/eventLog/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/others/eventLog/index.jsx b/src/components/others/eventLog/index.jsx index 8cda2bf4..34e3b5c0 100644 --- a/src/components/others/eventLog/index.jsx +++ b/src/components/others/eventLog/index.jsx @@ -99,7 +99,7 @@ const EventList = ({ events }) => { >
{getPrettyNamesForEvents(event.name)}
{new Date(event.timestamp * 1000).toUTCString()}
-
{activeKey === index ? : }
+
{activeKey === index ? : }
{activeKey === index && ( Date: Tue, 1 Aug 2023 14:44:22 +0300 Subject: [PATCH 06/15] style(arbitration-details): apply styling for mobile view fix #244 --- .../arbitrationDetails/index.module.scss | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/components/others/route_article/arbitrationDetails/index.module.scss b/src/components/others/route_article/arbitrationDetails/index.module.scss index fb92e206..1a28917b 100644 --- a/src/components/others/route_article/arbitrationDetails/index.module.scss +++ b/src/components/others/route_article/arbitrationDetails/index.module.scss @@ -14,35 +14,41 @@ } .detailsContainer { - display: flex; - flex-flow: row wrap; - justify-content: space-between; - padding: spacings.$s-3 0; - margin-bottom: spacings.$s-12; + display: grid; + grid-template-columns: 1fr; + grid-gap: spacings.$s-3; + margin: spacings.$s-8 0; color: hsl(var(--english-breakfast-600)); a { text-decoration: underline; } - > span { + span { + display: flex; + justify-content: space-between; b { margin-right: spacings.$s-2; color: hsl(var(--dark-orchestra-600)); } } - @media (max-width: breakpoints.$small) { - flex-flow: column wrap; - margin-top: spacings.$s-6; - padding-top: spacings.$s-4; - padding-bottom: spacings.$s-3; + @media (min-width: breakpoints.$small) and (max-width: breakpoints.$large) { + grid-template-columns: repeat(2, 1fr); + grid-gap: spacings.$s-3; + + span:nth-child(even) { + justify-content: end; + } + span:nth-child(odd) { + justify-content: start; + } + } + + @media (min-width: breakpoints.$large) { + grid-template-columns: repeat(4, 1fr); span { - display: flex; - justify-content: space-between; - b { - margin-bottom: spacings.$s-2; - } + justify-content: start; } } } From 12487f272a609c4cb26d1a22e16912d15e7833fd Mon Sep 17 00:00:00 2001 From: gratestas Date: Tue, 1 Aug 2023 15:10:44 +0300 Subject: [PATCH 07/15] style(arbitration-details): set justify-content to default value on mobile view --- .../others/route_article/arbitrationDetails/index.module.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/others/route_article/arbitrationDetails/index.module.scss b/src/components/others/route_article/arbitrationDetails/index.module.scss index 1a28917b..7975ebcd 100644 --- a/src/components/others/route_article/arbitrationDetails/index.module.scss +++ b/src/components/others/route_article/arbitrationDetails/index.module.scss @@ -26,7 +26,6 @@ span { display: flex; - justify-content: space-between; b { margin-right: spacings.$s-2; color: hsl(var(--dark-orchestra-600)); From 2208b951ac0ca3b9c13fa0f4fb6d507ee6678943 Mon Sep 17 00:00:00 2001 From: gratestas Date: Thu, 3 Aug 2023 17:35:01 +0300 Subject: [PATCH 08/15] refactor: add custom Steps component fix #245 --- .../presentational/steps/index.module.scss | 142 ++++++++++++++++++ src/components/presentational/steps/index.tsx | 35 +++++ .../presentational/steps/stepItem.tsx | 38 +++++ .../presentational/timeline/index.jsx | 21 --- .../presentational/timeline/index.module.scss | 124 --------------- 5 files changed, 215 insertions(+), 145 deletions(-) create mode 100644 src/components/presentational/steps/index.module.scss create mode 100644 src/components/presentational/steps/index.tsx create mode 100644 src/components/presentational/steps/stepItem.tsx delete mode 100644 src/components/presentational/timeline/index.jsx delete mode 100644 src/components/presentational/timeline/index.module.scss diff --git a/src/components/presentational/steps/index.module.scss b/src/components/presentational/steps/index.module.scss new file mode 100644 index 00000000..d34b2905 --- /dev/null +++ b/src/components/presentational/steps/index.module.scss @@ -0,0 +1,142 @@ +@use "src/stylesheets/variables/spacings"; +@use "src/stylesheets/variables/typo"; + +.steps { + position: relative; + display: flex; + width: 100%; + &.vertical { + flex-direction: column; + } +} + +.stepItem { + position: relative; + display: flex; + flex: 1 0 0; + align-items: center; + padding-bottom: spacings.$s-10; + + .circleWrapper { + display: flex; + position: relative; + + .circle { + display: flex; + justify-content: center; + align-items: center; + width: spacings.$s-10; + height: spacings.$s-10; + background-color: hsl(var(--english-breakfast-800)); + + .dot { + width: spacings.$s-2; + height: spacings.$s-2; + background-color: hsl(var(--english-breakfast-800)); + border-radius: 50%; + } + svg { + width: spacings.$s-6; + height: spacings.$s-6; + } + /* svg { + path { + fill: hsl(var(--starbright-600)); + stroke: hsl(var(--starbright-600)); + } + } */ + } + } + + .title { + margin-top: spacings.$s-2; + font-size: typo.$m; + color: hsl(var(--english-breakfast-500)); + } + + .title, + .description { + text-align: center; + } +} + +/* .stepItem:not(:first-child) .title { + margin-top: 0; +} */ + +.stepItem:not(:last-child) .circleWrapper::after { + content: ""; + position: absolute; + background-color: hsl(var(--english-breakfast-500)); + z-index: -1; +} + +.stepItem { + &.vertical { + .circleWrapper { + width: auto; + padding-left: 0; + border-color: transparent; + } + + &:not(:last-child) .circleWrapper::after { + right: 50%; + width: 1px; + height: 250%; + } + + &:not(:first-child) .title { + margin-top: 0; + } + + &.active .circleWrapper .circle .dot { + width: spacings.$s-4; + height: spacings.$s-4; + } + + &.completed .circleWrapper .circle { + background-color: hsl(var(--background)); + } + } + + &.horizontal { + flex-direction: column; + .circleWrapper { + width: 100%; + padding-left: 40%; + .circle { + border: 1px solid hsl(var(--english-breakfast-500)); + border-radius: 50%; + } + } + &:not(:last-child) .circleWrapper::after { + top: 50%; + width: 100%; + height: 1px; + } + &.active .circleWrapper .circle { + background-color: hsl(var(--english-breakfast-800)); + } + &.awaiting .circleWrapper .circle { + &.withBorder { + border-color: hsl(var(--english-breakfast-500)); + } + } + } +} + +.stepItem { + &.completed .circleWrapper::after, + &.completed .circleWrapper .circle { + background-color: hsl(var(--english-breakfast-800)); + } + + &:not(.completed) .circleWrapper::after { + background-color: hsl(var(--english-breakfast-500)); + } + + &.active .circleWrapper .circle, + &.awaiting .circleWrapper .circle { + background-color: hsl(var(--background)); + } +} diff --git a/src/components/presentational/steps/index.tsx b/src/components/presentational/steps/index.tsx new file mode 100644 index 00000000..a1045e33 --- /dev/null +++ b/src/components/presentational/steps/index.tsx @@ -0,0 +1,35 @@ +import React from "react"; +import StepItem, { Status } from "./stepItem"; +import * as styles from "./index.module.scss"; + +type StepsProps = { + items: { + title: string; + description: string; + icon?: React.ReactNode; + }[]; + current: number; + direction?: "vertical" | "horizontal"; + completed?: boolean; +}; + +const Steps: React.FC = ({ items, current, direction = "horizontal", completed }) => { + const itemsWithStatus = items.map((item, index) => ({ + ...item, + status: completed ? "completed" : getStatus(index, current), + })); + + return ( +
+ {itemsWithStatus.map((item, index) => ( + + ))} +
+ ); +}; + +export default Steps; + +const getStatus = (index: number, current: number): Status => { + return index < current ? "completed" : index === current ? "active" : "awaiting"; +}; diff --git a/src/components/presentational/steps/stepItem.tsx b/src/components/presentational/steps/stepItem.tsx new file mode 100644 index 00000000..41e16333 --- /dev/null +++ b/src/components/presentational/steps/stepItem.tsx @@ -0,0 +1,38 @@ +import React from "react"; +import * as styles from "./index.module.scss"; + +import CheckIcon from "jsx:/src/assets/checkMark.svg"; + +export type Status = "completed" | "active" | "awaiting"; + +type StepItemProps = { + title: string; + description: string; + icon?: React.ReactNode; + status?: Status; + direction: "vertical" | "horizontal"; +}; + +export default function StepItem({ title, description, icon, status = "awaiting", direction }: StepItemProps) { + icon = status === "completed" ? : icon; + return ( +
+ +
+
{title}
+
{description}
+
+
+ ); +} + +function Circle({ icon, direction }: { direction: string; icon?: React.ReactNode }) { + const isVertical = direction === "vertical"; + return ( +
+
+ {icon && !isVertical ? icon :
} +
+
+ ); +} diff --git a/src/components/presentational/timeline/index.jsx b/src/components/presentational/timeline/index.jsx deleted file mode 100644 index 2ee2fc5b..00000000 --- a/src/components/presentational/timeline/index.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import * as styles from "./index.module.scss"; -import { Steps } from "antd"; - -export default function Timeline(props) { - const { items, current, completed } = props; - return ( -
- - {items.map((item, _index) => ( - - ))} - -
- ); -} diff --git a/src/components/presentational/timeline/index.module.scss b/src/components/presentational/timeline/index.module.scss deleted file mode 100644 index 1e31bdfe..00000000 --- a/src/components/presentational/timeline/index.module.scss +++ /dev/null @@ -1,124 +0,0 @@ -@use "src/stylesheets/variables/spacings"; -@use "src/stylesheets/variables/typo"; - -.timelineSteps { - margin-top: spacings.$s-7; - margin-bottom: spacings.$s-18; -} - -:global(.ant-steps-item-title) { - font-size: typo.$m; -} - -:global(.ant-steps-item-description) { - font-size: typo.$s; - margin-top: spacings.$s-2; -} - -:global(.ant-steps-item-tail) { - top: spacings.$s-4; -} -:global(.ant-steps-label-vertical .ant-steps-item-tail) { - margin-left: 3.5rem; - padding: spacings.$s-1 spacings.$s-7; -} - -.timelineSteps :global { - .ant-steps-item-wait > .ant-steps-item-container { - .ant-steps-item-icon { - border: 2px solid hsl(var(--english-breakfast-400)); - } - svg { - [class$="cls-1"], - [class$="cls-2"] { - stroke: hsl(var(--english-breakfast-500)) !important; - } - [class$="cls-3"] { - fill: hsl(var(--english-breakfast-500)) !important; - } - } - .ant-steps-item-title { - color: hsl(var(--english-breakfast-500)); - } - } - - .ant-steps-item-finish > .ant-steps-item-container { - .ant-steps-item-icon { - border: 2px solid hsl(var(--english-breakfast-400)); - } - .ant-steps-item-title { - color: hsl(var(--english-breakfast-500)); - } - } - - .ant-steps-item-process > .ant-steps-item-container { - .ant-steps-item-icon { - background: hsl(var(--english-breakfast-800)); - border-color: hsl(var(--english-breakfast-800)); - .ant-steps-icon { - svg { - [class$="cls-1"], - [class$="cls-2"] { - stroke: hsl(var(--starbright-600)) !important; - } - stroke: hsl(var(--starbright-600)) !important; - } - } - } - - .ant-steps-item-tail:after { - background-color: hsl(var(--english-breakfast-500)); - } - - .ant-steps-item-title { - color: hsl(var(--english-breakfast-800)); - } - } - - .ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon { - display: flex; - justify-content: center; - align-items: center; - width: spacings.$s-10; - height: spacings.$s-10; - - .ant-steps-icon { - width: spacings.$s-6; - height: spacings.$s-6; - } - } - - .ant-steps-vertical > .ant-steps-item .ant-steps-item-icon { - display: flex; - justify-content: center; - align-items: center; - width: spacings.$s-10; - height: spacings.$s-10; - border: 1px solid hsl(var(--english-breakfast-800)); - } - - .ant-steps-label-vertical .ant-steps-item-icon { - margin-left: 2rem; - } - - .ant-steps-item-wait > .ant-steps-item-container { - .ant-steps-item-tail:after { - background-color: hsl(var(--english-breakfast-500)); - } - } - - .ant-steps-item-finish > .ant-steps-item-container { - .ant-steps-item-tail:after { - background-color: hsl(var(--english-breakfast-500)); - } - } - - .ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail { - left: spacings.$s-5; - top: spacings.$s-4; - padding: 1.65rem 0 1px; - } - .ant-steps-vertical > .ant-steps-item { - margin-bottom: spacings.$s-4; - } -} From 7ca6d2e1baee49c80c6e491bd71a75a8bbc99485 Mon Sep 17 00:00:00 2001 From: gratestas Date: Thu, 3 Aug 2023 17:38:57 +0300 Subject: [PATCH 09/15] feat(hooks): add hook to get window size --- src/hooks/useWindowSize.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/hooks/useWindowSize.ts diff --git a/src/hooks/useWindowSize.ts b/src/hooks/useWindowSize.ts new file mode 100644 index 00000000..19124094 --- /dev/null +++ b/src/hooks/useWindowSize.ts @@ -0,0 +1,32 @@ +import { useState, useEffect } from "react"; + +type WindowSize = { + width: number; + height: number; +}; + +const useWindowSize = (): WindowSize => { + const [windowSize, setWindowSize] = useState({ + width: window.innerWidth, + height: window.innerHeight, + }); + + useEffect(() => { + const handleResize = () => { + setWindowSize({ + width: window.innerWidth, + height: window.innerHeight, + }); + }; + + window.addEventListener("resize", handleResize); + + return () => { + window.removeEventListener("resize", handleResize); + }; + }, []); + + return windowSize; +}; + +export default useWindowSize; From 9a2cefb1746cd1f7364431e1054e4ba3112ecac4 Mon Sep 17 00:00:00 2001 From: gratestas Date: Thu, 3 Aug 2023 17:40:58 +0300 Subject: [PATCH 10/15] chore: install react types package --- package.json | 1 + yarn.lock | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 612a1ff5..153f2012 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "browserslist": "> 0.5%, last 2 versions, not dead", "dependencies": { "@metamask/detect-provider": "^1.2.0", + "@types/react": "^18.2.18", "antd": "^4.21.4", "color": "^4.2.3", "ethers": "^5.6.5", diff --git a/yarn.lock b/yarn.lock index 450c0e40..de538001 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1617,11 +1617,25 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prop-types@^15.0.0": +"@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== +"@types/react@^18.2.18": + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.18.tgz#c8b233919eef1bdc294f6f34b37f9727ad677516" + integrity sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + "@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -2190,6 +2204,11 @@ csso@^4.2.0: dependencies: css-tree "^1.1.2" +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + cz-conventional-changelog@3.3.0, cz-conventional-changelog@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" From 5bc5f0dd7b6191c4230304adaf785e1ca8227db3 Mon Sep 17 00:00:00 2001 From: gratestas Date: Thu, 3 Aug 2023 17:42:13 +0300 Subject: [PATCH 11/15] refactor(dispute-timeline): use custom Step component --- src/assets/commit.svg | 13 +------------ src/components/others/disputeTimeline/index.jsx | 15 +++++++++++++-- .../route_article/arbitrationDetails/index.jsx | 5 ++++- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/assets/commit.svg b/src/assets/commit.svg index 5db6584b..5da1ed6a 100644 --- a/src/assets/commit.svg +++ b/src/assets/commit.svg @@ -1,12 +1 @@ - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/others/disputeTimeline/index.jsx b/src/components/others/disputeTimeline/index.jsx index 26854836..40e96699 100644 --- a/src/components/others/disputeTimeline/index.jsx +++ b/src/components/others/disputeTimeline/index.jsx @@ -1,4 +1,3 @@ -import Timeline from "../../presentational/timeline"; import useCountdown, { formatTime } from "/src/hooks/useCountdown"; import getDisputePeriodDeadline from "/src/businessLogic/getDisputePeriodDeadline"; import { Periods } from "/src/constants/enums"; @@ -9,6 +8,8 @@ import VotingIcon from "jsx:/src/assets/voting.svg"; import AppealIcon from "jsx:/src/assets/appeal.svg"; import ExecutionIcon from "jsx:/src/assets/execution.svg"; import CheckIcon from "jsx:/src/assets/checkMark.svg"; +import Steps from "../../presentational/steps"; +import useWindowSize from "../../../hooks/useWindowSize"; const DISPUTE_PERIODS = [ { name: "Evidence", icon: }, @@ -21,6 +22,9 @@ const DISPUTE_PERIODS = [ export default function DisputeTimeline({ dispute, current }) { const deadline = getDisputePeriodDeadline(current, dispute?.lastPeriodChange, dispute?.court?.timesPerPeriod); + const windowSize = useWindowSize(); + const isMobileView = windowSize.width <= 600; + const timeLeft = useCountdown(deadline); const isExecuted = (periodName) => (periodName === "Execution") & dispute?.ruled; @@ -30,5 +34,12 @@ export default function DisputeTimeline({ dispute, current }) { description: _index === current && current < Periods.execution ? formatTime(timeLeft) : "", })); - return ; + return ( + + ); } diff --git a/src/components/others/route_article/arbitrationDetails/index.jsx b/src/components/others/route_article/arbitrationDetails/index.jsx index 73aea6ef..910abaef 100644 --- a/src/components/others/route_article/arbitrationDetails/index.jsx +++ b/src/components/others/route_article/arbitrationDetails/index.jsx @@ -16,6 +16,9 @@ import ArbitratorABI from "/src/data/klerosLiquidABI.json"; import { EthereumContext, networkMap } from "/src/data/ethereumProvider"; import usePolicy from "/src/hooks/usePolicy"; import { Periods } from "/src/constants/enums"; +import Steps from "../../../presentational/steps"; +import useWindowSize from "../../../../hooks/useWindowSize"; +import EvidenceIcon from "jsx:/src/assets/commit.svg"; export default function ArbitrationDetails({ article }) { const currentDispute = article?.disputes?.at(-1); @@ -28,7 +31,6 @@ export default function ArbitrationDetails({ article }) { const [mined, setMined] = useState(true); const [arbitratorInstance, setArbitratorInstance] = useState(null); const revalidator = useRevalidator(); - console.log(ethereumContext.metaEvidenceContents); const policy = usePolicy(currentDispute?.court?.policyURI); const handleAdvanceState = () => { @@ -172,6 +174,7 @@ export default function ArbitrationDetails({ article }) { jurySize={currentDispute?.rounds?.at(-1).jurySize} /> + {components[current]} Date: Thu, 3 Aug 2023 17:56:05 +0300 Subject: [PATCH 12/15] chore: install parcel plugin to bridge typescript with css modules --- .parcelrc | 14 +- package.json | 1 + yarn.lock | 652 ++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 654 insertions(+), 13 deletions(-) diff --git a/.parcelrc b/.parcelrc index 3a3cf798..9e2b1995 100644 --- a/.parcelrc +++ b/.parcelrc @@ -1,8 +1,16 @@ { "extends": "@parcel/config-default", "transformers": { - "jsx:*.svg": ["@parcel/transformer-svg-react"], - "jsx:*": ["..."] + "jsx:*.svg": [ + "@parcel/transformer-svg-react" + ], + "jsx:*": [ + "..." + ], + "*.module.css": [ + "parcel-transformer-ts-css-modules", + "..." + ] }, "compressors": { "*.{html,css,js,svg,map}": [ @@ -11,4 +19,4 @@ "@parcel/compressor-brotli" ] } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 153f2012..cd79aff0 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "flow-bin": "0", "husky": "^8.0.3", "parcel": "2", + "parcel-transformer-ts-css-modules": "^1.0.14", "path-browserify": "^1.0.1", "postcss": "8", "postcss-modules": "4", diff --git a/yarn.lock b/yarn.lock index de538001..b2f28300 100644 --- a/yarn.lock +++ b/yarn.lock @@ -722,31 +722,61 @@ resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz#bc66fa43286b5c082e8fee0eacc17995806b6fbe" integrity sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A== +"@lmdb/lmdb-darwin-arm64@2.7.11": + version "2.7.11" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.7.11.tgz#b717e72f023d4215d14e4c57433c711a53c782cf" + integrity sha512-r6+vYq2vKzE+vgj/rNVRMwAevq0+ZR9IeMFIqcSga+wMtMdXQ27KqQ7uS99/yXASg29bos7yHP3yk4x6Iio0lw== + "@lmdb/lmdb-darwin-x64@2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz#89d8390041bce6bab24a82a20392be22faf54ffc" integrity sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA== +"@lmdb/lmdb-darwin-x64@2.7.11": + version "2.7.11" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.7.11.tgz#b42898b0742b4a82b8224b742b2d174c449cd170" + integrity sha512-jhj1aB4K8ycRL1HOQT5OtzlqOq70jxUQEWRN9Gqh3TIDN30dxXtiHi6EWF516tzw6v2+3QqhDMJh8O6DtTGG8Q== + "@lmdb/lmdb-linux-arm64@2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz#14fe4c96c2bb1285f93797f45915fa35ee047268" integrity sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ== +"@lmdb/lmdb-linux-arm64@2.7.11": + version "2.7.11" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.7.11.tgz#a8dc8e386d27006cfccbf2a8598290b63d03a9ec" + integrity sha512-7xGEfPPbmVJWcY2Nzqo11B9Nfxs+BAsiiaY/OcT4aaTDdykKeCjvKMQJA3KXCtZ1AtiC9ljyGLi+BfUwdulY5A== + "@lmdb/lmdb-linux-arm@2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz#05bde4573ab10cf21827339fe687148f2590cfa1" integrity sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw== +"@lmdb/lmdb-linux-arm@2.7.11": + version "2.7.11" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.7.11.tgz#2103f48af28336efccaac008fe882dfce33e4ac5" + integrity sha512-dHfLFVSrw/v5X5lkwp0Vl7+NFpEeEYKfMG2DpdFJnnG1RgHQZngZxCaBagFoaJGykRpd2DYF1AeuXBFrAUAXfw== + "@lmdb/lmdb-linux-x64@2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz#d2f85afd857d2c33d2caa5b057944574edafcfee" integrity sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q== +"@lmdb/lmdb-linux-x64@2.7.11": + version "2.7.11" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.7.11.tgz#d21ac368022a662610540f2ba8bb6ff0b96a9940" + integrity sha512-vUKI3JrREMQsXX8q0Eq5zX2FlYCKWMmLiCyyJNfZK0Uyf14RBg9VtB3ObQ41b4swYh2EWaltasWVe93Y8+KDng== + "@lmdb/lmdb-win32-x64@2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz#28f643fbc0bec30b07fbe95b137879b6b4d1c9c5" integrity sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA== +"@lmdb/lmdb-win32-x64@2.7.11": + version "2.7.11" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.7.11.tgz#af2cb4ae6d3a92ecdeb1503b73079417525476d2" + integrity sha512-BJwkHlSUgtB+Ei52Ai32M1AOMerSlzyIGA/KC4dAGL+GGwVMdwG8HGCOA2TxP3KjhbgDPMYkv7bt/NmOmRIFng== + "@metamask/detect-provider@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" @@ -766,31 +796,61 @@ resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.0.2.tgz#01e3669b8b2dc01f6353f2c87e1ec94faf52c587" integrity sha512-FMX5i7a+ojIguHpWbzh5MCsCouJkwf4z4ejdUY/fsgB9Vkdak4ZnoIEskOyOUMMB4lctiZFGszFQJXUeFL8tRg== +"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" + integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ== + "@msgpackr-extract/msgpackr-extract-darwin-x64@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.0.2.tgz#5ca32f16e6f1b7854001a1a2345b61d4e26a0931" integrity sha512-DznYtF3lHuZDSRaIOYeif4JgO0NtO2Xf8DsngAugMx/bUdTFbg86jDTmkVJBNmV+cxszz6OjGvinnS8AbJ342g== +"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3" + integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw== + "@msgpackr-extract/msgpackr-extract-linux-arm64@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.0.2.tgz#ff629f94379981bf476dffb1439a7c1d3dba2d72" integrity sha512-b0jMEo566YdM2K+BurSed7bswjo3a6bcdw5ETqoIfSuxKuRLPfAiOjVbZyZBgx3J/TAM/QrvEQ/VN89A0ZAxSg== +"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367" + integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg== + "@msgpackr-extract/msgpackr-extract-linux-arm@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.0.2.tgz#5f6fd30d266c4a90cf989049c7f2e50e5d4fcd4c" integrity sha512-Gy9+c3Wj+rUlD3YvCZTi92gs+cRX7ZQogtwq0IhRenloTTlsbpezNgk6OCkt59V4ATEWSic9rbU92H/l7XsRvA== +"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399" + integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA== + "@msgpackr-extract/msgpackr-extract-linux-x64@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.0.2.tgz#167faa553b9dbffac8b03bf27de9b6f846f0e1bc" integrity sha512-zrBHaePwcv4cQXxzYgNj0+A8I1uVN97E7/3LmkRocYZ+rMwUsnPpp4RuTAHSRoKlTQV3nSdCQW4Qdt4MXw/iHw== +"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz#091b1218b66c341f532611477ef89e83f25fae4f" + integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA== + "@msgpackr-extract/msgpackr-extract-win32-x64@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.0.2.tgz#baea7764b1adf201ce4a792fe971fd7211dad2e4" integrity sha512-fpnI00dt+yO1cKx9qBXelKhPBdEgvc8ZPav1+0r09j0woYQU2N79w/jcGawSY5UGlgQ3vjaJsFHnGbGvvqdLzg== +"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" + integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== + "@parcel/bundler-default@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.6.2.tgz#bfa1be22af985ba2d6dbf1890a36ad4553f819d4" @@ -812,6 +872,16 @@ "@parcel/utils" "2.6.2" lmdb "2.5.2" +"@parcel/cache@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.9.3.tgz#3ed40b79858fcb7c2c73c0ed4c9807cf2388c8b4" + integrity sha512-Bj/H2uAJJSXtysG7E/x4EgTrE2hXmm7td/bc97K8M9N7+vQjxf7xb0ebgqe84ePVMkj4MVQSMEJkEucXVx4b0Q== + dependencies: + "@parcel/fs" "2.9.3" + "@parcel/logger" "2.9.3" + "@parcel/utils" "2.9.3" + lmdb "2.7.11" + "@parcel/codeframe@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.6.2.tgz#01a7ae97fdb66457e6704c87cc6031085e539e6e" @@ -819,6 +889,13 @@ dependencies: chalk "^4.1.0" +"@parcel/codeframe@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.9.3.tgz#056cacaeedae9318878bdee8ffc584178b10ba42" + integrity sha512-z7yTyD6h3dvduaFoHpNqur74/2yDWL++33rjQjIjCaXREBN6dKHoMGMizzo/i4vbiI1p9dDox2FIDEHCMQxqdA== + dependencies: + chalk "^4.1.0" + "@parcel/compressor-brotli@^2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/compressor-brotli/-/compressor-brotli-2.6.2.tgz#2b028c924da7e0cd82e4d41f28021b6653135b85" @@ -970,11 +1047,24 @@ "@mischnic/json-sourcemap" "^0.1.0" nullthrows "^1.1.1" +"@parcel/diagnostic@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.9.3.tgz#23befe6c3b78440fe1e3635086e637da1529b4db" + integrity sha512-6jxBdyB3D7gP4iE66ghUGntWt2v64E6EbD4AetZk+hNJpgudOOPsKTovcMi/i7I4V0qD7WXSF4tvkZUoac0jwA== + dependencies: + "@mischnic/json-sourcemap" "^0.1.0" + nullthrows "^1.1.1" + "@parcel/events@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.6.2.tgz#97a1059d1eb93df8d3d426b6b150f829f70f543b" integrity sha512-IaCjOeA5ercdFVi1EZOmUHhGfIysmCUgc2Th9hMugSFO0I3GzRsBcAdP6XPfWm+TV6sQ/qZRfdk/drUxoAupnw== +"@parcel/events@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.9.3.tgz#b71253384c21f53fd3cced983cd2b287f7330e89" + integrity sha512-K0Scx+Bx9f9p1vuShMzNwIgiaZUkxEnexaKYHYemJrM7pMAqxIuIqhnvwurRCsZOVLUJPDDNJ626cWTc5vIq+A== + "@parcel/fs-search@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.6.2.tgz#6343a5da4f0753c96c004d6951897f83160c4d45" @@ -982,6 +1072,11 @@ dependencies: detect-libc "^1.0.3" +"@parcel/fs-search@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.9.3.tgz#4993d68478b15db404149a271bb0084382dd2040" + integrity sha512-nsNz3bsOpwS+jphcd+XjZL3F3PDq9lik0O8HPm5f6LYkqKWT+u/kgQzA8OkAHCR3q96LGiHxUywHPEBc27vI4Q== + "@parcel/fs@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.6.2.tgz#c3f4ab9f88df6c1416af7c2a7a31b68ced862a16" @@ -993,6 +1088,17 @@ "@parcel/watcher" "^2.0.0" "@parcel/workers" "2.6.2" +"@parcel/fs@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.9.3.tgz#39abd0f71561efccaac3ba6e4b8227705b73e906" + integrity sha512-/PrRKgCRw22G7rNPSpgN3Q+i2nIkZWuvIOAdMG4KWXC4XLp8C9jarNaWd5QEQ75amjhQSl3oUzABzkdCtkKrgg== + dependencies: + "@parcel/fs-search" "2.9.3" + "@parcel/types" "2.9.3" + "@parcel/utils" "2.9.3" + "@parcel/watcher" "^2.0.7" + "@parcel/workers" "2.9.3" + "@parcel/graph@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-2.6.2.tgz#fe777666c6fa09cb89b1570932459a4b5e90b6aa" @@ -1009,6 +1115,13 @@ detect-libc "^1.0.3" xxhash-wasm "^0.4.2" +"@parcel/hash@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.9.3.tgz#bc7727939b1211b0a5d67fd00a9a55b8393c644a" + integrity sha512-qlH5B85XLzVAeijgKPjm1gQu35LoRYX/8igsjnN8vOlbc3O8BYAUIutU58fbHbtE8MJPbxQQUw7tkTjeoujcQQ== + dependencies: + xxhash-wasm "^0.4.2" + "@parcel/logger@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.6.2.tgz#c99eed0e1ed13ac0c25f5e57355ab1bf5b3eda21" @@ -1017,6 +1130,14 @@ "@parcel/diagnostic" "2.6.2" "@parcel/events" "2.6.2" +"@parcel/logger@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.9.3.tgz#04362704d7af93d213de6587ff71a1a6d5f714ac" + integrity sha512-5FNBszcV6ilGFcijEOvoNVG6IUJGsnMiaEnGQs7Fvc1dktTjEddnoQbIYhcSZL63wEmzBZOgkT5yDMajJ/41jw== + dependencies: + "@parcel/diagnostic" "2.9.3" + "@parcel/events" "2.9.3" + "@parcel/markdown-ansi@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.6.2.tgz#7511f6d32688f8d150828cdd1162774c102070e3" @@ -1024,6 +1145,13 @@ dependencies: chalk "^4.1.0" +"@parcel/markdown-ansi@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.9.3.tgz#b4de64eb252ce13e27f6e24e420b607db51097a5" + integrity sha512-/Q4X8F2aN8UNjAJrQ5NfK2OmZf6shry9DqetUSEndQ0fHonk78WKt6LT0zSKEBEW/bB/bXk6mNMsCup6L8ibjQ== + dependencies: + chalk "^4.1.0" + "@parcel/namer-default@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.6.2.tgz#8034fb23d2013ae00e5b73e9f887553bef498075" @@ -1043,6 +1171,18 @@ nullthrows "^1.1.1" semver "^5.7.1" +"@parcel/node-resolver-core@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.0.3.tgz#cc890e66695b6d28745415106565499af9cb3c47" + integrity sha512-AjxNcZVHHJoNT/A99PKIdFtwvoze8PAiC3yz8E/dRggrDIOboUEodeQYV5Aq++aK76uz/iOP0tST2T8A5rhb1A== + dependencies: + "@mischnic/json-sourcemap" "^0.1.0" + "@parcel/diagnostic" "2.9.3" + "@parcel/fs" "2.9.3" + "@parcel/utils" "2.9.3" + nullthrows "^1.1.1" + semver "^7.5.2" + "@parcel/optimizer-css@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.6.2.tgz#ae6be6c889ccd19de4868f2e4813e1c9356e4061" @@ -1113,6 +1253,20 @@ "@parcel/workers" "2.6.2" semver "^5.7.1" +"@parcel/package-manager@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.9.3.tgz#e8522671ba6c4f0a07b518957d22a038a7698b24" + integrity sha512-NH6omcNTEupDmW4Lm1e4NUYBjdqkURxgZ4CNESESInHJe6tblVhNB8Rpr1ar7zDar7cly9ILr8P6N3Ei7bTEjg== + dependencies: + "@parcel/diagnostic" "2.9.3" + "@parcel/fs" "2.9.3" + "@parcel/logger" "2.9.3" + "@parcel/node-resolver-core" "3.0.3" + "@parcel/types" "2.9.3" + "@parcel/utils" "2.9.3" + "@parcel/workers" "2.9.3" + semver "^7.5.2" + "@parcel/packager-css@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.6.2.tgz#1b8119888f7278612b18b6d08f623e3309b45190" @@ -1164,6 +1318,13 @@ "@parcel/utils" "2.6.2" posthtml "^0.16.4" +"@parcel/plugin@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0.tgz#ad1c820a89fe3f356933dcbfb0579865275b41df" + integrity sha512-yOBRbizd27vivgFRxpTBxfViTIYMdoLeAvRHEoL49dkymKkKtq09hZQtVS+iQmypwyJnp4cMsG8FwN+srJub7w== + dependencies: + "@parcel/types" "^2.0.0" + "@parcel/plugin@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.6.2.tgz#d4c8cc558e962e4dfb7154a7f0a023f6abad07ac" @@ -1171,6 +1332,15 @@ dependencies: "@parcel/types" "2.6.2" +"@parcel/profiler@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.9.3.tgz#6575ed6dc4275c0161dce74bd719961236673ce1" + integrity sha512-pyHc9lw8VZDfgZoeZWZU9J0CVEv1Zw9O5+e0DJPDPHuXJYr72ZAOhbljtU3owWKAeW+++Q2AZWkbUGEOjI/e6g== + dependencies: + "@parcel/diagnostic" "2.9.3" + "@parcel/events" "2.9.3" + chrome-trace-event "^1.0.2" + "@parcel/reporter-cli@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.6.2.tgz#df971ce40164f2d6bd77dd6342203aa0052d9753" @@ -1241,6 +1411,13 @@ dependencies: detect-libc "^1.0.3" +"@parcel/source-map@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.1.1.tgz#fb193b82dba6dd62cc7a76b326f57bb35000a782" + integrity sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew== + dependencies: + detect-libc "^1.0.3" + "@parcel/transformer-babel@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.6.2.tgz#0ad994cb4ec4127e544b10e70c884409270f26a6" @@ -1406,6 +1583,19 @@ "@parcel/workers" "2.6.2" utility-types "^3.10.0" +"@parcel/types@2.9.3", "@parcel/types@^2.0.0": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.9.3.tgz#170a26203b9088a306862b2dc914c27375d77bbc" + integrity sha512-NSNY8sYtRhvF1SqhnIGgGvJocyWt1K8Tnw5cVepm0g38ywtX6mwkBvMkmeehXkII4mSUn+frD9wGsydTunezvA== + dependencies: + "@parcel/cache" "2.9.3" + "@parcel/diagnostic" "2.9.3" + "@parcel/fs" "2.9.3" + "@parcel/package-manager" "2.9.3" + "@parcel/source-map" "^2.1.1" + "@parcel/workers" "2.9.3" + utility-types "^3.10.0" + "@parcel/utils@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.6.2.tgz#18d68a56330be8db59c269163b77617043ba8e3a" @@ -1419,6 +1609,70 @@ "@parcel/source-map" "^2.0.0" chalk "^4.1.0" +"@parcel/utils@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.9.3.tgz#d4df6837658f773c725a4934967ab1128a05fdd7" + integrity sha512-cesanjtj/oLehW8Waq9JFPmAImhoiHX03ihc3JTWkrvJYSbD7wYKCDgPAM3JiRAqvh1LZ6P699uITrYWNoRLUg== + dependencies: + "@parcel/codeframe" "2.9.3" + "@parcel/diagnostic" "2.9.3" + "@parcel/hash" "2.9.3" + "@parcel/logger" "2.9.3" + "@parcel/markdown-ansi" "2.9.3" + "@parcel/source-map" "^2.1.1" + chalk "^4.1.0" + nullthrows "^1.1.1" + +"@parcel/watcher-android-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.2.0.tgz#3d1a71f251ba829ab884dfe119cc4f4c49c7222b" + integrity sha512-nU2wh00CTQT9rr1TIKTjdQ9lAGYpmz6XuKw0nAwAN+S2A5YiD55BK1u+E5WMCT8YOIDe/n6gaj4o/Bi9294SSQ== + +"@parcel/watcher-darwin-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.2.0.tgz#9ed47d9e4146d53a39f62577a993426d6ddec2d2" + integrity sha512-cJl0UZDcodciy3TDMomoK/Huxpjlkkim3SyMgWzjovHGOZKNce9guLz2dzuFwfObBFCjfznbFMIvAZ5syXotYw== + +"@parcel/watcher-darwin-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.2.0.tgz#9b553e61f4a01a0947b1c005619db7b7c9a286d1" + integrity sha512-QI77zxaGrCV1StKcoRYfsUfmUmvPMPfQrubkBBy5XujV2fwaLgZivQOTQMBgp5K2+E19u1ufpspKXAPqSzpbyg== + +"@parcel/watcher-linux-arm-glibc@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.2.0.tgz#2644f6292b862c52d636978da8711bf2f7b14b24" + integrity sha512-I2GPBcAXazPzabCmfsa3HRRW+MGlqxYd8g8RIueJU+a4o5nyNZDz0CR1cu0INT0QSQXEZV7w6UE8Hz9CF8u3Pg== + +"@parcel/watcher-linux-arm64-glibc@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.2.0.tgz#b82c1715a20e6725c89b2697a208d2ae488d22da" + integrity sha512-St5mlfp+2lS9AmgixUqfwJa/DwVmTCJxC1HcOubUTz6YFOKIlkHCeUa1Bxi4E/tR/HSez8+heXHL8HQkJ4Bd8g== + +"@parcel/watcher-linux-arm64-musl@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.2.0.tgz#45511adc69c4c89b10965f0dd1519e56a00f512f" + integrity sha512-jS+qfhhoOBVWwMLP65MaG8xdInMK30pPW8wqTCg2AAuVJh5xepMbzkhHJ4zURqHiyY3EiIRuYu4ONJKCxt8iqA== + +"@parcel/watcher-linux-x64-glibc@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.2.0.tgz#f6e878bf40874b1ce9530ec87e5c2e644e9ad5ac" + integrity sha512-xJvJ7R2wJdi47WZBFS691RDOWvP1j/IAs3EXaWVhDI8FFITbWrWaln7KoNcR0Y3T+ZwimFY/cfb0PNht1q895g== + +"@parcel/watcher-linux-x64-musl@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.2.0.tgz#4a1b7a8f65b42f50b1819185ef56ed3c9e251425" + integrity sha512-D+NMpgr23a+RI5mu8ZPKWy7AqjBOkURFDgP5iIXXEf/K3hm0jJ3ogzi0Ed2237B/CdYREimCgXyeiAlE/FtwyA== + +"@parcel/watcher-win32-arm64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.2.0.tgz#4cdbaf8c1097038e838d12f897ac8595b18dfb1f" + integrity sha512-z225cPn3aygJsyVUOWwfyW+fY0Tvk7N3XCOl66qUPFxpbuXeZuiuuJemmtm8vxyqa3Ur7peU/qJxrpC64aeI7Q== + +"@parcel/watcher-win32-x64@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.2.0.tgz#f2fcc255b7cadfd0afa7c51cde36413632075bcc" + integrity sha512-JqGW0RJ61BkKx+yYzIURt9s53P7xMVbv0uxYPzAXLBINGaFmkIKSuUPyBVfy8TMbvp93lvF4SPBNDzVRJfvgOw== + "@parcel/watcher@^2.0.0": version "2.0.5" resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.5.tgz#f913a54e1601b0aac972803829b0eece48de215b" @@ -1427,6 +1681,27 @@ node-addon-api "^3.2.1" node-gyp-build "^4.3.0" +"@parcel/watcher@^2.0.7": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.2.0.tgz#92067954e591d239c3ecfa08add205f88f476068" + integrity sha512-71S4TF+IMyAn24PK4KSkdKtqJDR3zRzb0HE3yXpacItqTM7XfF2f5q9NEGLEVl0dAaBAGfNwDCjH120y25F6Tg== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.2.0" + "@parcel/watcher-darwin-arm64" "2.2.0" + "@parcel/watcher-darwin-x64" "2.2.0" + "@parcel/watcher-linux-arm-glibc" "2.2.0" + "@parcel/watcher-linux-arm64-glibc" "2.2.0" + "@parcel/watcher-linux-arm64-musl" "2.2.0" + "@parcel/watcher-linux-x64-glibc" "2.2.0" + "@parcel/watcher-linux-x64-musl" "2.2.0" + "@parcel/watcher-win32-arm64" "2.2.0" + "@parcel/watcher-win32-x64" "2.2.0" + "@parcel/workers@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.6.2.tgz#2cae07db7a752295f11c2952b5026e426e38b19b" @@ -1439,6 +1714,18 @@ chrome-trace-event "^1.0.2" nullthrows "^1.1.1" +"@parcel/workers@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.9.3.tgz#d1d84d3c767b840d0ed7123a03ab7e0f4a2c0731" + integrity sha512-zRrDuZJzTevrrwElYosFztgldhqW6G9q5zOeQXfVQFkkEJCNfg36ixeiofKRU8uu2x+j+T6216mhMNB6HiuY+w== + dependencies: + "@parcel/diagnostic" "2.9.3" + "@parcel/logger" "2.9.3" + "@parcel/profiler" "2.9.3" + "@parcel/types" "2.9.3" + "@parcel/utils" "2.9.3" + nullthrows "^1.1.1" + "@remix-run/router@1.6.2": version "1.6.2" resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.6.2.tgz#bbe75f8c59e0b7077584920ce2cc76f8f354934d" @@ -1566,6 +1853,13 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== +"@types/css-modules-loader-core@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@types/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#67af15aa16603ac2ffc1d3a7f08547ac809c3005" + integrity sha512-LMbyf7THPqLCPHIXAj79v9Pa193MeOHgp1fBFRR6s6VvEVHUFIcM5bc/WttslOf+lao4TURNN1X1zfW5wr2CHQ== + dependencies: + postcss "7.x.x" + "@types/debug@^4.0.0": version "4.1.8" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" @@ -1683,11 +1977,21 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1917,7 +2221,12 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -1927,6 +2236,17 @@ caniuse-lite@^1.0.30001366: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz" integrity sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w== +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1944,7 +2264,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1962,7 +2282,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"chokidar@>=3.0.0 <4.0.0": +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -2004,6 +2324,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -2168,6 +2497,18 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" +css-modules-loader-core@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" + integrity sha512-XWOBwgy5nwBn76aA+6ybUGL/3JBnCtBX9Ay9/OWIpzKYWlVHMazvJ+WtHumfi+xxdPF440cWK7JCYtt8xDifew== + dependencies: + icss-replace-symbols "1.1.0" + postcss "6.0.1" + postcss-modules-extract-imports "1.1.0" + postcss-modules-local-by-default "1.2.0" + postcss-modules-scope "1.1.0" + postcss-modules-values "1.3.0" + css-select@^4.1.3: version "4.3.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" @@ -2179,6 +2520,14 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" +css-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" @@ -2240,6 +2589,11 @@ debug@^4.0.0, debug@^4.1.0: dependencies: ms "2.1.2" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + decode-named-character-reference@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" @@ -2396,7 +2750,7 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -2478,6 +2832,11 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -2560,6 +2919,11 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-port@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" @@ -2579,7 +2943,7 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@7.2.3: +glob@7.2.3, glob@^7.1.2: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2635,6 +2999,18 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2788,7 +3164,7 @@ iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -icss-replace-symbols@^1.1.0: +icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== @@ -2897,7 +3273,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -2929,6 +3305,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-there@^4.4.2: + version "4.5.1" + resolved "https://registry.yarnpkg.com/is-there/-/is-there-4.5.1.tgz#ea292e7fad3fc4d70763fe0af40a286c9f5e1e2e" + integrity sha512-vIZ7HTXAoRoIwYSsTnxb0sg9L6rth+JOulNcavsbskQkCIWoSM2cjFOWZs4wGziGZER+Xgs/HXiCQZgiL8ppxQ== + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" @@ -3037,6 +3418,24 @@ lmdb@2.5.2: "@lmdb/lmdb-linux-x64" "2.5.2" "@lmdb/lmdb-win32-x64" "2.5.2" +lmdb@2.7.11: + version "2.7.11" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.7.11.tgz#a24b6d36b5c7ed9889cc2d9e103fdd3f5e144d7e" + integrity sha512-x9bD4hVp7PFLUoELL8RglbNXhAMt5CYhkmss+CEau9KlNoilsTzNi9QDsPZb3KMpOGZXG6jmXhW3bBxE2XVztw== + dependencies: + msgpackr "1.8.5" + node-addon-api "^4.3.0" + node-gyp-build-optional-packages "5.0.6" + ordered-binary "^1.4.0" + weak-lru-cache "^1.2.2" + optionalDependencies: + "@lmdb/lmdb-darwin-arm64" "2.7.11" + "@lmdb/lmdb-darwin-x64" "2.7.11" + "@lmdb/lmdb-linux-arm" "2.7.11" + "@lmdb/lmdb-linux-arm64" "2.7.11" + "@lmdb/lmdb-linux-x64" "2.7.11" + "@lmdb/lmdb-win32-x64" "2.7.11" + loader-utils@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.0.tgz#bcecc51a7898bee7473d4bc6b845b23af8304d4f" @@ -3109,6 +3508,13 @@ loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -3420,7 +3826,7 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" uvu "^0.5.0" -micromatch@^4.0.2: +micromatch@^4.0.2, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -3455,6 +3861,11 @@ minimist@1.2.7: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== +mkdirp@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + moment@^2.24.0, moment@^2.29.2: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" @@ -3484,6 +3895,27 @@ msgpackr-extract@^2.0.2: "@msgpackr-extract/msgpackr-extract-linux-x64" "2.0.2" "@msgpackr-extract/msgpackr-extract-win32-x64" "2.0.2" +msgpackr-extract@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz#e05ec1bb4453ddf020551bcd5daaf0092a2c279d" + integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A== + dependencies: + node-gyp-build-optional-packages "5.0.7" + optionalDependencies: + "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.2" + "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.2" + "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.2" + "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.2" + "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2" + "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" + +msgpackr@1.8.5: + version "1.8.5" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.8.5.tgz#8cadfb935357680648f33699d0e833c9179dbfeb" + integrity sha512-mpPs3qqTug6ahbblkThoUY2DQdNXcm4IapwOS3Vm/87vmpzLVelvp9h3It1y9l1VPpiFLV11vfOXnmeEwiIXwg== + optionalDependencies: + msgpackr-extract "^3.0.1" + msgpackr@^1.5.4: version "1.6.1" resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.6.1.tgz#4f3c94d6a5b819b838ffc736eddaf60eba436d20" @@ -3522,6 +3954,11 @@ node-addon-api@^4.3.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== +node-addon-api@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" + integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== + node-gyp-build-optional-packages@5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.2.tgz#3de7d30bd1f9057b5dfbaeab4a4442b7fe9c5901" @@ -3532,6 +3969,16 @@ node-gyp-build-optional-packages@5.0.3: resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== +node-gyp-build-optional-packages@5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.6.tgz#2949f5cc7dace3ac470fa2ff1a37456907120a1d" + integrity sha512-2ZJErHG4du9G3/8IWl/l9Bp5BBFy63rno5GVmjQijvTuUZKsl6g8RB4KH/x3NLcV5ZBb4GsXmAuTYr6dRml3Gw== + +node-gyp-build-optional-packages@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" + integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== + node-gyp-build@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" @@ -3605,6 +4052,11 @@ ordered-binary@^1.2.4: resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.3.0.tgz#a116d64c923278216e335602d279750b2ebd746e" integrity sha512-knIeYepTI6BDAzGxqFEDGtI/iGqs57H32CInAIxEvAHG46vk1Di0CEpyc1A7iY39B1mfik3g3KLYwOTNnnMHLA== +ordered-binary@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.4.1.tgz#205cb6efd6c27fa0ef4eced994a023e081cdc911" + integrity sha512-9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg== + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -3634,6 +4086,14 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parcel-transformer-ts-css-modules@^1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/parcel-transformer-ts-css-modules/-/parcel-transformer-ts-css-modules-1.0.14.tgz#97ade3e0c5a166e5802310918706f68616944312" + integrity sha512-8yXynRMpVYobwDXmQV72av1iVTTiNlPpCSgzsC42kK5p5y/ZqG/SZ/FS6AotaWgt+10P22xXyPOh8LRRILLJXQ== + dependencies: + "@parcel/plugin" "2.0.0" + typed-css-modules "^0.7.0" + parcel@2: version "2.6.2" resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.6.2.tgz#4585208880f42b24935c7d3ad167dcd42f8174eb" @@ -3708,6 +4168,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -3718,11 +4183,26 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +postcss-modules-extract-imports@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + integrity sha512-zF9+UIEvtpeqMGxhpeT9XaIevQSrBBCz9fi7SwfkmjVacsSj8DY5eFVgn+wY8I9vvdDDwK5xC8Myq4UkoLFIkA== + dependencies: + postcss "^6.0.1" + postcss-modules-extract-imports@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== +postcss-modules-local-by-default@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + postcss-modules-local-by-default@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" @@ -3732,6 +4212,14 @@ postcss-modules-local-by-default@^4.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" +postcss-modules-scope@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + postcss-modules-scope@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" @@ -3739,6 +4227,14 @@ postcss-modules-scope@^3.0.0: dependencies: postcss-selector-parser "^6.0.4" +postcss-modules-values@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + postcss-modules-values@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" @@ -3773,6 +4269,23 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +postcss@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + integrity sha512-VbGX1LQgQbf9l3cZ3qbUuC3hGqIEOGQFHAEHQ/Diaeo0yLgpgK5Rb8J+OcamIfQ9PbAU/fzBjVtQX3AhJHUvZw== + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@7.x.x: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + postcss@8: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" @@ -3782,6 +4295,15 @@ postcss@8: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + posthtml-parser@^0.10.1: version "0.10.2" resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.10.2.tgz#df364d7b179f2a6bf0466b56be7b98fd4e97c573" @@ -4402,11 +4924,21 @@ remark-rehype@^10.0.0: mdast-util-to-hast "^12.1.0" unified "^10.0.0" +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resize-observer-polyfill@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" @@ -4530,6 +5062,18 @@ semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.5.2: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" @@ -4572,6 +5116,11 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -4597,7 +5146,7 @@ string-hash@^1.1.1: resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== -string-width@^4.1.0: +string-width@^4.1.0, 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== @@ -4613,6 +5162,13 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + 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" @@ -4642,7 +5198,19 @@ style-to-object@^0.4.0: dependencies: inline-style-parser "0.1.1" -supports-color@^5.3.0: +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -4772,6 +5340,21 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +typed-css-modules@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/typed-css-modules/-/typed-css-modules-0.7.2.tgz#dafadb33777d5bf1a621e01def8d614e7a6af7bd" + integrity sha512-R3guXrQ8ry/yhlfvNmkVY4J3+FtKaEdwqrvgSvFpVY0ieYQHqhhBW0RwfE4hnG4m29Ef/4IE0tBsk/UKplmJkA== + dependencies: + "@types/css-modules-loader-core" "^1.1.0" + camelcase "^6.0.0" + chalk "^4.0.0" + chokidar "^3.4.0" + css-modules-loader-core "^1.1.0" + glob "^7.1.2" + is-there "^4.4.2" + mkdirp "^1.0.0" + yargs "^15.4.1" + "typescript@^4.6.4 || ^5.0.0": version "5.1.6" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" @@ -4942,6 +5525,11 @@ web-namespaces@^2.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + which@^1.2.14: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -4961,6 +5549,15 @@ word-wrap@^1.0.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -4985,11 +5582,46 @@ xxhash-wasm@^0.4.2: resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz#752398c131a4dd407b5132ba62ad372029be6f79" integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml@^1.10.0: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" From ef7a3bc4ba10196beacb5f4989d736ccea820732 Mon Sep 17 00:00:00 2001 From: gratestas Date: Thu, 3 Aug 2023 18:11:40 +0300 Subject: [PATCH 13/15] chore: add global TS declaration for svg files --- src/globals.d.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/globals.d.ts diff --git a/src/globals.d.ts b/src/globals.d.ts new file mode 100644 index 00000000..9153f84c --- /dev/null +++ b/src/globals.d.ts @@ -0,0 +1,7 @@ +declare module "*.svg" { + import * as React from "react"; + + const ReactComponent: React.FunctionComponent & { title?: string }>; + + export default ReactComponent; +} From 597cfb4c011fbd4a3b2a4b4f2af790c4f1cf424b Mon Sep 17 00:00:00 2001 From: gratestas Date: Fri, 4 Aug 2023 10:37:53 +0300 Subject: [PATCH 14/15] chore: replace parcel transformer for typed css modules --- .parcelrc | 2 +- package.json | 6 ++++-- yarn.lock | 30 +++++++++++++++--------------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/.parcelrc b/.parcelrc index 9e2b1995..166f4e09 100644 --- a/.parcelrc +++ b/.parcelrc @@ -8,7 +8,7 @@ "..." ], "*.module.css": [ - "parcel-transformer-ts-css-modules", + "parcel-transformer-typed-css-modules", "..." ] }, diff --git a/package.json b/package.json index cd79aff0..0dac2c44 100644 --- a/package.json +++ b/package.json @@ -17,13 +17,15 @@ "react-tageditor": "^0.2.3", "react-toastify": "^9.1.2", "rehype-katex": "^6.0.3", - "remark-math": "^5.1.1" + "remark-math": "^5.1.1", + "typed-css-modules": "^0.7.2" }, "devDependencies": { "@babel/core": "7", "@babel/plugin-transform-flow-strip-types": "7", "@parcel/compressor-brotli": "^2.6.2", "@parcel/compressor-gzip": "^2.6.2", + "@parcel/plugin": "^2.9.3", "@parcel/transformer-sass": "2", "@parcel/transformer-svg-react": "^2.6.2", "buffer": "^6.0.3", @@ -32,7 +34,7 @@ "flow-bin": "0", "husky": "^8.0.3", "parcel": "2", - "parcel-transformer-ts-css-modules": "^1.0.14", + "parcel-transformer-typed-css-modules": "^1.0.0", "path-browserify": "^1.0.1", "postcss": "8", "postcss-modules": "4", diff --git a/yarn.lock b/yarn.lock index b2f28300..ef7896d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1318,13 +1318,6 @@ "@parcel/utils" "2.6.2" posthtml "^0.16.4" -"@parcel/plugin@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.0.0.tgz#ad1c820a89fe3f356933dcbfb0579865275b41df" - integrity sha512-yOBRbizd27vivgFRxpTBxfViTIYMdoLeAvRHEoL49dkymKkKtq09hZQtVS+iQmypwyJnp4cMsG8FwN+srJub7w== - dependencies: - "@parcel/types" "^2.0.0" - "@parcel/plugin@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.6.2.tgz#d4c8cc558e962e4dfb7154a7f0a023f6abad07ac" @@ -1332,6 +1325,13 @@ dependencies: "@parcel/types" "2.6.2" +"@parcel/plugin@^2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.9.3.tgz#90e9a9482fa27735494372f5643db01abcf3fdb6" + integrity sha512-qN85Gqr2GMuxX1dT1mnuO9hOcvlEv1lrYrCxn7CJN2nUhbwcfG+LEvcrCzCOJ6XtIHm+ZBV9h9p7FfoPLvpw+g== + dependencies: + "@parcel/types" "2.9.3" + "@parcel/profiler@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.9.3.tgz#6575ed6dc4275c0161dce74bd719961236673ce1" @@ -1583,7 +1583,7 @@ "@parcel/workers" "2.6.2" utility-types "^3.10.0" -"@parcel/types@2.9.3", "@parcel/types@^2.0.0": +"@parcel/types@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.9.3.tgz#170a26203b9088a306862b2dc914c27375d77bbc" integrity sha512-NSNY8sYtRhvF1SqhnIGgGvJocyWt1K8Tnw5cVepm0g38ywtX6mwkBvMkmeehXkII4mSUn+frD9wGsydTunezvA== @@ -4086,13 +4086,13 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parcel-transformer-ts-css-modules@^1.0.14: - version "1.0.14" - resolved "https://registry.yarnpkg.com/parcel-transformer-ts-css-modules/-/parcel-transformer-ts-css-modules-1.0.14.tgz#97ade3e0c5a166e5802310918706f68616944312" - integrity sha512-8yXynRMpVYobwDXmQV72av1iVTTiNlPpCSgzsC42kK5p5y/ZqG/SZ/FS6AotaWgt+10P22xXyPOh8LRRILLJXQ== +parcel-transformer-typed-css-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parcel-transformer-typed-css-modules/-/parcel-transformer-typed-css-modules-1.0.0.tgz#457a3bfec97ac5e141df529b9fea1dc6005fe001" + integrity sha512-gmHGkCTguNNuosk3GTYYZmZNc/Z5kUe8e5GGKcN0BS+oSXj7Sk/esoShQCXir9uPjGHagABuPUgzi1gOFeBkPw== dependencies: - "@parcel/plugin" "2.0.0" - typed-css-modules "^0.7.0" + "@parcel/plugin" "^2.9.3" + typed-css-modules "^0.7.2" parcel@2: version "2.6.2" @@ -5340,7 +5340,7 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typed-css-modules@^0.7.0: +typed-css-modules@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/typed-css-modules/-/typed-css-modules-0.7.2.tgz#dafadb33777d5bf1a621e01def8d614e7a6af7bd" integrity sha512-R3guXrQ8ry/yhlfvNmkVY4J3+FtKaEdwqrvgSvFpVY0ieYQHqhhBW0RwfE4hnG4m29Ef/4IE0tBsk/UKplmJkA== From 740097064c77886674894ab2a0b343a3a2a816d4 Mon Sep 17 00:00:00 2001 From: gratestas Date: Fri, 4 Aug 2023 11:53:37 +0300 Subject: [PATCH 15/15] chore(gitignore): exclude generated css typed files --- .gitignore | 3 +++ src/components/presentational/steps/index.module.scss | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index adcb953f..247ff52f 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,9 @@ typings/ # TypeScript cache *.tsbuildinfo +# Typescript css modules files +src/**/*.scss.d.ts + # Optional npm cache directory .npm diff --git a/src/components/presentational/steps/index.module.scss b/src/components/presentational/steps/index.module.scss index d34b2905..e495dac8 100644 --- a/src/components/presentational/steps/index.module.scss +++ b/src/components/presentational/steps/index.module.scss @@ -60,10 +60,6 @@ } } -/* .stepItem:not(:first-child) .title { - margin-top: 0; -} */ - .stepItem:not(:last-child) .circleWrapper::after { content: ""; position: absolute;