diff --git a/web/global.d.ts b/web/global.d.ts
index b98930e9..64647a54 100644
--- a/web/global.d.ts
+++ b/web/global.d.ts
@@ -1,6 +1,3 @@
-import {} from "styled-components";
-import { lightTheme } from "./src/styles/themes";
-
declare global {
module "*.svg" {
const content: React.FC>;
@@ -12,8 +9,4 @@ declare global {
}
}
-declare module "styled-components" {
- type Theme = typeof lightTheme;
- //eslint-disable-next-line @typescript-eslint/no-empty-interface
- export interface DefaultTheme extends Theme {}
-}
+export {};
diff --git a/web/package.json b/web/package.json
index b0bb3bb5..b1aed968 100644
--- a/web/package.json
+++ b/web/package.json
@@ -51,7 +51,6 @@
"@types/react": "^18.2.59",
"@types/react-dom": "^18.2.18",
"@types/react-modal": "^3.16.3",
- "@types/styled-components": "^5.1.34",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@typescript-eslint/utils": "^5.62.0",
@@ -70,17 +69,19 @@
"dependencies": {
"@cyntler/react-doc-viewer": "^1.16.3",
"@kleros/kleros-app": "^2.1.0",
- "@kleros/ui-components-library": "^2.19.0",
+ "@kleros/ui-components-library": "^3.6.0",
"@mdxeditor/editor": "^3.45.0",
"@reown/appkit": "^1.6.6",
"@reown/appkit-adapter-wagmi": "^1.6.6",
"@sentry/react": "^7.93.0",
"@sentry/tracing": "^7.93.0",
+ "@tailwindcss/vite": "^4.1.17",
"@tanstack/react-query": "^5.66.0",
"@yornaath/batshit": "^0.9.0",
"alchemy-sdk": "^3.3.1",
"chart.js": "^3.9.1",
"chartjs-adapter-moment": "^1.0.1",
+ "clsx": "^2.1.1",
"core-js": "^3.35.0",
"graphql": "^16.9.0",
"graphql-request": "^7.1.2",
@@ -103,8 +104,9 @@
"rehype-raw": "^6.1.1",
"rehype-sanitize": "^5.0.1",
"remark-gfm": "^3.0.1",
- "styled-components": "^5.3.11",
"subgraph-status": "^1.2.4",
+ "tailwind-merge": "^3.4.0",
+ "tailwindcss": "^4.1.17",
"viem": "^2.27.2",
"wagmi": "^2.14.16"
}
diff --git a/web/src/app.tsx b/web/src/app.tsx
index 301a884e..cfa6f2cb 100644
--- a/web/src/app.tsx
+++ b/web/src/app.tsx
@@ -3,10 +3,12 @@ import { Navigate, Route } from "react-router-dom";
import { SentryRoutes } from "./utils/sentry";
import "react-loading-skeleton/dist/skeleton.css";
import "react-toastify/dist/ReactToastify.css";
+import "overlayscrollbars/styles/overlayscrollbars.css";
+import "./global.css";
import Web3Provider from "context/Web3Provider";
import IsListProvider from "context/IsListProvider";
import QueryClientProvider from "context/QueryClientProvider";
-import StyledComponentsProvider from "context/StyledComponentsProvider";
+import ThemeProvider from "context/ThemeProvider";
import GraphqlBatcherProvider from "context/GraphqlBatcher";
import Layout from "layout/index";
import NewTransaction from "./pages/NewTransaction";
@@ -18,7 +20,7 @@ import Settings from "./pages/Settings";
const App: React.FC = () => {
return (
-
+
@@ -41,7 +43,7 @@ const App: React.FC = () => {
-
+
);
};
diff --git a/web/src/components/ConnectWallet/AccountDisplay.tsx b/web/src/components/ConnectWallet/AccountDisplay.tsx
index bc44bafc..7961f78d 100644
--- a/web/src/components/ConnectWallet/AccountDisplay.tsx
+++ b/web/src/components/ConnectWallet/AccountDisplay.tsx
@@ -1,5 +1,4 @@
import React from "react";
-import styled, { css } from "styled-components";
import Identicon from "react-identicons";
import { isAddress } from "viem";
@@ -9,111 +8,7 @@ import { useAccount, useChainId, useEnsAvatar, useEnsName } from "wagmi";
import { getChain } from "consts/chains";
import { shortenAddress } from "utils/shortenAddress";
-import { landscapeStyle } from "styles/landscapeStyle";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- height: auto;
- align-items: flex-start;
- gap: 8px;
- align-items: center;
- background-color: ${({ theme }) => theme.whiteBackground};
- padding: 0px;
- cursor: pointer;
-
- &:hover {
- label {
- color: ${({ theme }) => theme.white} !important;
- transition: color 0.2s;
- }
- }
-
- ${landscapeStyle(
- () => css`
- background-color: ${({ theme }) => theme.whiteLowOpacitySubtle};
- &:hover {
- transition: background-color 0.1s;
- background-color: ${({ theme }) => theme.whiteLowOpacityStrong};
- }
- flex-direction: row;
- align-content: center;
- border-radius: 300px;
- gap: 0px;
- padding: 0 12px;
- `
- )}
-`;
-
-const AccountContainer = styled.div`
- min-height: 32px;
- display: flex;
- align-items: center;
- width: fit-content;
- gap: 8px;
-
- > label {
- font-size: 16px;
- font-weight: 600;
- }
-
- ${landscapeStyle(
- () => css`
- gap: 12px;
- > label {
- color: ${({ theme }) => theme.white}CC !important;
- font-weight: 400;
- font-size: 14px;
- }
- `
- )}
-`;
-
-const ChainConnectionContainer = styled.div`
- display: flex;
- width: fit-content;
- min-height: 32px;
- align-items: center;
- padding-left: 0px;
- > label {
- color: ${({ theme }) => theme.success};
- font-size: 16px;
-
- font-weight: 500;
- }
-
- :before {
- content: "";
- width: 8px;
- height: 8px;
- margin: 0px 13px 0px 3px;
- border-radius: 50%;
- background-color: ${({ theme }) => theme.success};
- }
-
- ${landscapeStyle(
- () => css`
- display: none;
- `
- )}
-`;
-
-const StyledIdenticon = styled(Identicon)<{ size: `${number}` }>`
- align-items: center;
- svg {
- width: ${({ size }) => size + "px"};
- height: ${({ size }) => size + "px"};
- }
-`;
-
-const StyledAvatar = styled.img<{ size: `${number}` }>`
- align-items: center;
- object-fit: cover;
- border-radius: 50%;
- width: ${({ size }) => size + "px"};
- height: ${({ size }) => size + "px"};
-`;
+import clsx from "clsx";
interface IIdenticonOrAvatar {
size?: `${number}`;
@@ -134,9 +29,9 @@ export const IdenticonOrAvatar: React.FC = ({ size = "16", a
});
return avatar ? (
-
+
) : (
-
+
);
};
@@ -164,15 +59,34 @@ export const ChainDisplay: React.FC = () => {
const AccountDisplay: React.FC = () => {
return (
-
-
+
+
label]:text-base [&>label]:font-semibold lg:[&>label]:text-sm lg:[&>label]:font-normal"
+ )}
+ >
-
-
+
+
label]:text-klerosUIComponentsSuccess [&>label]:text-base [&>label]:font-medium",
+ "before:content-[''] before:w-2 before:h-2 before:rounded-full before:bg-klerosUIComponentsSuccess before:my-0 before:mr-[13px] before:ml-[3px]"
+ )}
+ >
-
-
+
+
);
};
diff --git a/web/src/components/ConnectWallet/index.tsx b/web/src/components/ConnectWallet/index.tsx
index 4102e141..eddf305a 100644
--- a/web/src/components/ConnectWallet/index.tsx
+++ b/web/src/components/ConnectWallet/index.tsx
@@ -22,9 +22,9 @@ export const SwitchChainButton: React.FC<{ className?: string }> = ({ className
);
};
@@ -35,10 +35,10 @@ const ConnectButton: React.FC<{ className?: string }> = ({ className }) => {
return (
);
};
diff --git a/web/src/layout/Header/navbar/Menu/Help.tsx b/web/src/layout/Header/navbar/Menu/Help.tsx
index 0a4768f5..0e8f5049 100644
--- a/web/src/layout/Header/navbar/Menu/Help.tsx
+++ b/web/src/layout/Header/navbar/Menu/Help.tsx
@@ -1,6 +1,4 @@
import React, { useRef } from "react";
-import styled, { css } from "styled-components";
-import { landscapeStyle } from "styles/landscapeStyle";
import { useClickAway } from "react-use";
@@ -12,65 +10,7 @@ import Telegram from "svgs/socialmedia/telegram.svg";
import Debug from "../Debug";
import { IHelp } from "../index";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- position: absolute;
- max-height: 80vh;
- overflow-y: auto;
- width: 86vw;
- max-width: 444px;
- top: 5%;
- left: 50%;
- transform: translateX(-50%);
- z-index: 1;
- padding: 12px 12px 24px 12px;
- border: 1px solid ${({ theme }) => theme.stroke};
- background-color: ${({ theme }) => theme.whiteBackground};
- border-radius: 3px;
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.06);
-
- ${landscapeStyle(
- () => css`
- margin-top: 64px;
- width: 260px;
- top: 0;
- right: 0;
- left: auto;
- transform: none;
- `
- )}
-`;
-
-const ListItem = styled.a`
- display: flex;
- gap: 8px;
- padding: 12px 8px;
- cursor: pointer;
- transition: transform 0.2s;
-
- small {
- font-size: 16px;
- font-weight: 400;
- }
-
- :hover {
- transform: scale(1.02);
- }
-
- :hover small {
- transition: color 0.1s;
- color: ${({ theme }) => theme.secondaryPurple};
- }
-`;
-
-const Icon = styled.svg`
- display: inline-block;
- width: 16px;
- height: 16px;
- fill: ${({ theme }) => theme.secondaryPurple};
-`;
+import clsx from "clsx";
const ITEMS = [
{
@@ -106,19 +46,42 @@ const Help: React.FC = ({ toggleIsHelpOpen }) => {
return (
<>
-
+
{ITEMS.map((item, index) => (
-
-
- {item.text}
-
+
+
+ {item.text}
+
+
))}
-
+
>
);
};
diff --git a/web/src/layout/Header/navbar/Menu/Settings/General.tsx b/web/src/layout/Header/navbar/Menu/Settings/General.tsx
index 56dc6bf1..659038a3 100644
--- a/web/src/layout/Header/navbar/Menu/Settings/General.tsx
+++ b/web/src/layout/Header/navbar/Menu/Settings/General.tsx
@@ -1,83 +1,13 @@
import React, { useMemo } from "react";
-import styled from "styled-components";
import { useAccount, useDisconnect } from "wagmi";
import { Button } from "@kleros/ui-components-library";
import { AddressOrName, ChainDisplay, IdenticonOrAvatar } from "components/ConnectWallet/AccountDisplay";
import { EnsureChain } from "components/EnsureChain";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- justify-content: center;
- margin-top: 12px;
-`;
-
-const StyledChainContainer = styled.div`
- display: flex;
- height: 34px;
- gap: 0.5rem;
- justify-content: center;
- align-items: center;
- :before {
- content: "";
- width: 8px;
- height: 8px;
- border-radius: 50%;
- background-color: ${({ theme }) => theme.success};
- }
- > label {
- color: ${({ theme }) => theme.success};
- }
-`;
-
-const StyledAddressContainer = styled.div`
- display: flex;
- justify-content: center;
- > label {
- color: ${({ theme }) => theme.primaryText};
- font-size: 16px;
- font-weight: 600;
- }
-`;
-
-const StyledAvatarContainer = styled.div`
- display: flex;
- justify-content: center;
- margin-top: 12px;
-`;
-
-const StyledButton = styled.div`
- display: flex;
- justify-content: center;
- margin-top: 16px;
-`;
-
-const EnsureChainContainer = styled.div`
- display: flex;
- justify-content: center;
- padding: 16px;
-`;
-
-const UserContainer = styled.div`
- display: flex;
- flex-direction: column;
- gap: 12px;
-`;
-
-const StyledA = styled.a`
- text-decoration: none;
- label {
- cursor: pointer;
- color: ${({ theme }) => theme.primaryBlue};
- }
- :hover {
- text-decoration: underline;
- }
-`;
+import clsx from "clsx";
export const DisconnectWalletButton: React.FC = () => {
const { disconnect } = useDisconnect();
- return disconnect()} />;
+ return disconnect()} />;
};
const General: React.FC = () => {
@@ -88,30 +18,46 @@ const General: React.FC = () => {
}, [address, chain]);
return (
-
+
-
+
{address && (
-
-
+
+
-
-
-
+
+
label]:text-base [&>label]:font-semibold [&>label]:text-klerosUIComponentsPrimaryText"
+ )}
+ >
+
-
-
-
+
+
+
label]:text-klerosUIComponentsSuccess"
+ )}
+ >
-
-
+
+
-
-
+
+
)}
-
+
-
+
);
};
diff --git a/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/EmailVerificationInfo.tsx b/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/EmailVerificationInfo.tsx
index 5e8d6527..c859cd36 100644
--- a/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/EmailVerificationInfo.tsx
+++ b/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/EmailVerificationInfo.tsx
@@ -1,60 +1,11 @@
import React, { useCallback } from "react";
-import styled from "styled-components";
import { Button } from "@kleros/ui-components-library";
import HourglassIcon from "svgs/icons/hourglass.svg";
import { useAtlasProvider } from "@kleros/kleros-app";
import { errorToast, infoToast, successToast } from "utils/wrapWithToast";
-
-const InfoContainer = styled.div`
- display: flex;
- flex-direction: row;
- align-items: center;
- gap: 16px;
- width: 100%;
- padding-top: 16px;
- margin-top: 32px;
- border-top: 1px solid ${({ theme }) => theme.stroke};
-`;
-
-const InfoInnerContainer = styled.div`
- display: flex;
- flex-direction: column;
- align-items: start;
- gap: 8px;
-`;
-
-const InfoTitle = styled.h3`
- margin: 0;
-`;
-const InfoSubtitle = styled.label``;
-
-const StyledHourglassIcon = styled(HourglassIcon)`
- width: 32px;
- height: 32px;
- fill: ${({ theme }) => theme.primaryBlue};
-`;
-
-const StyledButton = styled(Button)`
- display: inline-block;
- background-color: transparent;
- padding: 0;
- .button-text {
- color: ${({ theme }) => theme.primaryBlue};
- font-weight: 400;
- font-size: 14px;
- }
- .button-svg {
- path {
- fill: ${({ theme }) => theme.primaryBlue};
- }
- }
- :focus,
- :hover {
- background-color: transparent;
- }
-`;
+import clsx from "clsx";
interface IEmailInfo {
toggleIsSettingsOpen: () => void;
@@ -63,37 +14,48 @@ interface IEmailInfo {
const EmailVerificationInfo: React.FC = ({ toggleIsSettingsOpen }) => {
const { userExists, user, updateEmail } = useAtlasProvider();
- const resendVerificationEmail = useCallback(
- (e: React.FormEvent) => {
- e.preventDefault();
- if (!user) return;
- infoToast(`Sending verification email ...`);
- updateEmail({ newEmail: user.email })
- .then(async (res) => {
- if (res) {
- successToast("Verification email sent successfully!");
- toggleIsSettingsOpen();
- }
- })
- .catch((err) => {
- console.log(err);
- errorToast(`Failed to send verification email: ${err?.message}`);
- });
- },
- [user, updateEmail, toggleIsSettingsOpen]
- );
+ const resendVerificationEmail = useCallback(() => {
+ if (!user) return;
+ infoToast(`Sending verification email ...`);
+ updateEmail({ newEmail: user.email })
+ .then(async (res) => {
+ if (res) {
+ successToast("Verification email sent successfully!");
+ toggleIsSettingsOpen();
+ }
+ })
+ .catch((err) => {
+ console.log(err);
+ errorToast(`Failed to send verification email: ${err?.message}`);
+ });
+ }, [user, updateEmail, toggleIsSettingsOpen]);
return userExists && !user?.isEmailVerified ? (
-
-
-
- Email Verification Pending
-
+
+
+
+
Email Verification Pending
+
+
+
) : (
<>>
);
diff --git a/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/FormContact.tsx b/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/FormContact.tsx
index e16a7ad7..105a0c33 100644
--- a/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/FormContact.tsx
+++ b/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/FormContact.tsx
@@ -1,30 +1,14 @@
-import React, { Dispatch, SetStateAction, useMemo, useEffect } from "react";
-import styled from "styled-components";
+import React, { Dispatch, SetStateAction, useMemo } from "react";
-import { Field } from "@kleros/ui-components-library";
+import { TextField } from "@kleros/ui-components-library";
import { isEmpty } from "src/utils";
-const StyledLabel = styled.label`
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
-`;
-
-const StyledField = styled(Field)`
- display: flex;
- flex-direction: column;
- align-items: center;
- width: 100%;
-`;
-
interface IForm {
contactLabel: string;
contactPlaceholder: string;
contactInput: string;
contactIsValid: boolean;
setContactInput: Dispatch>;
- setContactIsValid: Dispatch>;
- validator: RegExp;
isEditing?: boolean;
}
@@ -34,19 +18,8 @@ const FormContact: React.FC = ({
contactInput,
contactIsValid,
setContactInput,
- setContactIsValid,
- validator,
isEditing,
}) => {
- useEffect(() => {
- setContactIsValid(validator.test(contactInput));
- }, [contactInput, setContactIsValid, validator]);
-
- const handleInputChange = (event: React.ChangeEvent) => {
- event.preventDefault();
- setContactInput(event.target.value);
- };
-
const fieldVariant = useMemo(() => {
if (isEmpty(contactInput) || !isEditing) {
return undefined;
@@ -55,15 +28,14 @@ const FormContact: React.FC = ({
}, [contactInput, contactIsValid, isEditing]);
return (
- <>
- {contactLabel}
-
- >
+
);
};
diff --git a/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/index.tsx b/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/index.tsx
index 56a17eb0..c4ecbf9b 100644
--- a/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/index.tsx
+++ b/web/src/layout/Header/navbar/Menu/Settings/Notifications/FormContactDetails/index.tsx
@@ -1,5 +1,4 @@
import React, { useEffect, useState } from "react";
-import styled from "styled-components";
import { useAccount } from "wagmi";
@@ -7,8 +6,6 @@ import { Button } from "@kleros/ui-components-library";
import { EMAIL_REGEX } from "consts/index";
-import { responsiveSize } from "styles/responsiveSize";
-
import { ISettings } from "../../../../index";
import FormContact from "./FormContact";
@@ -19,40 +16,13 @@ import { errorToast, infoToast, successToast } from "utils/wrapWithToast";
import InfoCard from "components/InfoCard";
import EmailVerificationInfo from "./EmailVerificationInfo";
-const FormContainer = styled.form`
- width: 100%;
- position: relative;
- display: flex;
- flex-direction: column;
- padding: 0 ${responsiveSize(12, 32, 300)};
- padding-bottom: 16px;
- gap: 16px;
-`;
-
-const ButtonContainer = styled.div`
- display: flex;
- justify-content: end;
-`;
-
-const FormContactContainer = styled.div`
- display: flex;
- flex-direction: column;
-`;
-
-const StyledInfoCard = styled(InfoCard)`
- width: fit-content;
- font-size: 14px;
- margin-bottom: 8px;
- word-wrap: break-word;
-`;
-
const FormContactDetails: React.FC = ({ toggleIsSettingsOpen }) => {
const [emailInput, setEmailInput] = useState("");
- const [emailIsValid, setEmailIsValid] = useState(false);
const { address } = useAccount();
const { user, isAddingUser, isFetchingUser, addUser, updateEmail, isUpdatingUser, userExists } = useAtlasProvider();
const isEditingEmail = user?.email !== emailInput;
+ const emailIsValid = EMAIL_REGEX.test(emailInput);
const isEmailUpdateable = user?.email
? !isUndefined(user?.emailUpdateableAt) && new Date(user.emailUpdateableAt!).getTime() < new Date().getTime()
@@ -100,7 +70,7 @@ const FormContactDetails: React.FC = ({ toggleIsSettingsOpen }) => {
};
return (
-
+
+
);
};
diff --git a/web/src/layout/Header/navbar/Menu/Settings/Notifications/index.tsx b/web/src/layout/Header/navbar/Menu/Settings/Notifications/index.tsx
index a72f6152..3a944059 100644
--- a/web/src/layout/Header/navbar/Menu/Settings/Notifications/index.tsx
+++ b/web/src/layout/Header/navbar/Menu/Settings/Notifications/index.tsx
@@ -1,54 +1,32 @@
import React from "react";
-import styled from "styled-components";
import { ISettings } from "../../../index";
import FormContactDetails from "./FormContactDetails";
import { EnsureChain } from "components/EnsureChain";
import { EnsureAuth } from "components/EnsureAuth";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- width: 100%;
- height: 100%;
- align-items: center;
-`;
-
-const HeaderContainer = styled.div`
- display: flex;
- justify-content: center;
- font-size: 16px;
- font-weight: 600;
- color: ${({ theme }) => theme.primaryText};
- margin-top: 16px;
- margin-bottom: 12px;
-`;
-
const HeaderNotifs: React.FC = () => {
- return Contact Details;
+ return (
+
+ Contact Details
+
+ );
};
-const EnsureChainContainer = styled.div`
- display: flex;
- justify-content: center;
- padding-top: 16px;
- padding-bottom: 16px;
-`;
-
const NotificationSettings: React.FC = ({ toggleIsSettingsOpen }) => {
return (
-
+
);
};
diff --git a/web/src/layout/Header/navbar/Menu/Settings/index.tsx b/web/src/layout/Header/navbar/Menu/Settings/index.tsx
index 1fd81594..ae0371b5 100644
--- a/web/src/layout/Header/navbar/Menu/Settings/index.tsx
+++ b/web/src/layout/Header/navbar/Menu/Settings/index.tsx
@@ -1,8 +1,4 @@
-import React, { useRef, useState } from "react";
-import styled, { css } from "styled-components";
-
-import { landscapeStyle } from "styles/landscapeStyle";
-import { responsiveSize } from "styles/responsiveSize";
+import React, { useRef } from "react";
import { useLocation, useNavigate } from "react-router-dom";
import { useClickAway } from "react-use";
@@ -11,87 +7,51 @@ import { Tabs } from "@kleros/ui-components-library";
import General from "./General";
import NotificationSettings from "./Notifications";
import { ISettings } from "../../index";
-
-const Container = styled.div`
- display: flex;
- position: absolute;
- max-height: 80vh;
- overflow-y: auto;
- background-color: ${({ theme }) => theme.whiteBackground};
- flex-direction: column;
- top: 5%;
- left: 50%;
- transform: translateX(-50%);
- z-index: 1;
- border: 1px solid ${({ theme }) => theme.stroke};
- border-radius: 3px;
- overflow-y: auto;
-
- ${landscapeStyle(
- () => css`
- margin-top: 64px;
- top: 0;
- right: 0;
- left: auto;
- transform: none;
- `
- )}
-`;
-
-const StyledSettingsText = styled.div`
- display: flex;
- justify-content: center;
- font-size: 24px;
- color: ${({ theme }) => theme.primaryText};
- margin-top: 24px;
-`;
-
-const StyledTabs = styled(Tabs)`
- padding: 0 ${responsiveSize(8, 32, 300)};
- width: 86vw;
- max-width: 660px;
- align-self: center;
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(300, 424, 300)};
- `
- )}
-`;
+import clsx from "clsx";
const TABS = [
{
- text: "General",
+ id: 0,
value: 0,
+ text: "General",
+ content: ,
},
{
- text: "Notifications",
+ id: 1,
value: 1,
+ text: "Notifications",
+ content: null,
},
];
-const Settings: React.FC = ({ toggleIsSettingsOpen, initialTab }) => {
- const [currentTab, setCurrentTab] = useState(initialTab ?? 0);
+const Settings: React.FC = ({ toggleIsSettingsOpen }) => {
const containerRef = useRef(null);
-
const location = useLocation();
const navigate = useNavigate();
useClickAway(containerRef, () => {
toggleIsSettingsOpen();
if (location.hash.includes("#notifications")) navigate("#", { replace: true });
});
+
return (
-
- Settings
- {
- setCurrentTab(n);
- }}
+
+
Settings
+
div:first-child]:px-fluid-8-32-300"
+ )}
+ items={[TABS[0], { ...TABS[1], content: }]}
/>
- {currentTab === 0 ? : }
-
+
);
};
diff --git a/web/src/layout/Header/navbar/Menu/index.tsx b/web/src/layout/Header/navbar/Menu/index.tsx
index 354f690b..3e971a71 100644
--- a/web/src/layout/Header/navbar/Menu/index.tsx
+++ b/web/src/layout/Header/navbar/Menu/index.tsx
@@ -1,5 +1,4 @@
import React from "react";
-import styled, { css } from "styled-components";
import DarkModeIcon from "svgs/menu-icons/dark-mode.svg";
import HelpIcon from "svgs/menu-icons/help.svg";
@@ -7,53 +6,19 @@ import LightModeIcon from "svgs/menu-icons/light-mode.svg";
// import NotificationsIcon from "svgs/menu-icons/notifications.svg";
import SettingsIcon from "svgs/menu-icons/settings.svg";
-import { useToggleTheme } from "hooks/useToggleThemeContext";
-
-import { landscapeStyle } from "styles/landscapeStyle";
+import { useTheme } from "hooks/useToggleThemeContext";
import LightButton from "components/LightButton";
import { IHelp, ISettings } from "../index";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
-
- ${landscapeStyle(
- () => css`
- flex-direction: row;
- `
- )}
-`;
-
-const ButtonContainer = styled.div`
- min-height: 32px;
- display: flex;
- align-items: center;
-
- button {
- padding: 0px;
- }
-
- .button-text {
- display: block;
- }
-
- ${landscapeStyle(
- () => css`
- .button-text {
- display: none;
- }
- `
- )}
-`;
+import clsx from "clsx";
interface IMenu {
isMobileNavbar?: boolean;
}
const Menu: React.FC = ({ toggleIsHelpOpen, toggleIsSettingsOpen, isMobileNavbar }) => {
- const [theme, toggleTheme] = useToggleTheme();
+ const [theme, toggleTheme] = useTheme();
const isLightTheme = theme === "light";
const buttons = [
@@ -61,30 +26,33 @@ const Menu: React.FC = ({ toggleIsHelpOpen, toggleIsS
{
text: "Settings",
Icon: SettingsIcon,
- onClick: () => toggleIsSettingsOpen(),
+ onPress: () => toggleIsSettingsOpen(),
},
{
text: "Help",
Icon: HelpIcon,
- onClick: () => {
+ onPress: () => {
toggleIsHelpOpen();
},
},
{
text: `${isLightTheme ? "Dark" : "Light"} Mode`,
Icon: isLightTheme ? DarkModeIcon : LightModeIcon,
- onClick: () => toggleTheme(),
+ onPress: () => toggleTheme(),
},
];
return (
-
- {buttons.map(({ text, Icon, onClick }) => (
-
-
-
+
+ {buttons.map(({ text, Icon, onPress }, index) => (
+
+
+
))}
-
+
);
};
diff --git a/web/src/layout/Header/navbar/Product.tsx b/web/src/layout/Header/navbar/Product.tsx
index 09f27e70..7dc2c569 100644
--- a/web/src/layout/Header/navbar/Product.tsx
+++ b/web/src/layout/Header/navbar/Product.tsx
@@ -1,47 +1,6 @@
import React, { useState } from "react";
-import styled from "styled-components";
-
-import { responsiveSize } from "styles/responsiveSize";
-
import Skeleton from "react-loading-skeleton";
-
-const Container = styled.a`
- cursor: pointer;
- display: flex;
- flex-direction: column;
- align-items: center;
- padding: 16px 8px 28px 8px;
- max-width: 100px;
- border-radius: 3px;
- :hover {
- transition:
- transform 0.15s,
- background-color 0.3s;
- transform: scale(1.02);
- background-color: ${({ theme }) => theme.lightGrey};
- }
- gap: 8px;
- width: ${responsiveSize(100, 130)};
- background-color: ${({ theme }) => theme.lightBackground};
-`;
-
-const StyledIcon = styled.svg`
- width: 48px;
- height: 48px;
-`;
-
-const StyledImg = styled.img<{ isLoaded: boolean }>`
- width: 48px;
- height: 48px;
- display: ${({ isLoaded }) => (isLoaded ? "block" : "none")};
-`;
-
-const StyledSmall = styled.small`
- display: flex;
- font-weight: 400;
- line-height: 19px;
- text-align: center;
-`;
+import clsx from "clsx";
interface IProduct {
text: string;
@@ -53,17 +12,31 @@ const Product: React.FC = ({ text, url, Icon }) => {
const [isImgLoaded, setIsImgLoaded] = useState(false);
return (
-
+
{typeof Icon === "string" ? (
<>
{!isImgLoaded ? : null}
- setIsImgLoaded(true)} />
+
setIsImgLoaded(true)}
+ />
>
) : (
-
+
)}
- {text}
-
+ {text}
+
);
};
diff --git a/web/src/layout/Header/navbar/index.tsx b/web/src/layout/Header/navbar/index.tsx
index 8dc3a86d..6bfd2471 100644
--- a/web/src/layout/Header/navbar/index.tsx
+++ b/web/src/layout/Header/navbar/index.tsx
@@ -1,5 +1,4 @@
import React from "react";
-import styled from "styled-components";
import { useToggle } from "react-use";
import { useAccount } from "wagmi";
@@ -20,55 +19,7 @@ import Menu from "./Menu";
import Help from "./Menu/Help";
import Settings from "./Menu/Settings";
import { DisconnectWalletButton } from "./Menu/Settings/General";
-
-const Wrapper = styled.div<{ isOpen: boolean }>`
- visibility: ${({ isOpen }) => (isOpen ? "visible" : "hidden")};
- position: absolute;
- top: 100%;
- left: 0;
- width: 100vw;
- height: 100vh;
- z-index: 1;
-`;
-
-const StyledOverlay = styled(Overlay)`
- top: unset;
-`;
-
-const Container = styled.div<{ isOpen: boolean }>`
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- max-height: calc(100vh - 160px);
- overflow-y: auto;
- z-index: 1;
- background-color: ${({ theme }) => theme.whiteBackground};
- box-shadow: 0px 2px 3px ${({ theme }) => theme.defaultShadow};
- transform-origin: top;
- transform: scaleY(${({ isOpen }) => (isOpen ? "1" : "0")});
- visibility: ${({ isOpen }) => (isOpen ? "visible" : "hidden")};
- transition-property: transform, visibility;
- transition-duration: ${({ theme }) => theme.transitionSpeed};
- transition-timing-function: ease;
- padding: 24px;
-
- hr {
- margin: 24px 0;
- }
-`;
-
-const WalletContainer = styled.div`
- display: flex;
- gap: 16px;
- justify-content: space-between;
- flex-wrap: wrap;
-`;
-
-const DisconnectWalletButtonContainer = styled.div`
- display: flex;
- align-items: center;
-`;
+import { cn } from "src/utils";
export interface ISettings {
toggleIsSettingsOpen: () => void;
@@ -93,34 +44,40 @@ const NavBar: React.FC = () => {
return (
<>
-
-
-
+
+
+
{
- toggleIsDappListOpen();
- }}
+ onPress={toggleIsDappListOpen}
Icon={KlerosSolutionsIcon}
/>
-
+
{isConnected && (
-
+
-
+
)}
-
+
-
-
-
+
+
+
{(isDappListOpen || isHelpOpen || isSettingsOpen) && (
diff --git a/web/src/layout/index.tsx b/web/src/layout/index.tsx
index cbaac204..0bb3feae 100644
--- a/web/src/layout/index.tsx
+++ b/web/src/layout/index.tsx
@@ -1,6 +1,4 @@
import React, { useRef } from "react";
-import styled from "styled-components";
-import "overlayscrollbars/styles/overlayscrollbars.css";
import { Outlet } from "react-router-dom";
import { ToastContainer } from "react-toastify";
import { OverlayScrollbarsComponent } from "overlayscrollbars-react";
@@ -8,43 +6,25 @@ import { OverlayScrollContext } from "context/OverlayScrollContext";
import Header from "./Header";
import Footer from "./Footer";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- min-height: 100%;
- width: 100%;
-`;
-
-const StyledOverlayScrollbarsComponent = styled(OverlayScrollbarsComponent)`
- height: 100vh;
- width: 100vw;
-`;
-
-const StyledToastContainer = styled(ToastContainer)`
- padding: 16px;
- padding-top: 70px;
-`;
-
-const OutletContainer = styled.div`
- flex: 1;
- background-color: ${({ theme }) => theme.lightBackground};
-`;
-
const Layout: React.FC = () => {
const containerRef = useRef(null);
return (
-
-
+
+
+
);
};
diff --git a/web/src/pages/AttachmentDisplay/Header.tsx b/web/src/pages/AttachmentDisplay/Header.tsx
index 70bed9b3..9685001b 100644
--- a/web/src/pages/AttachmentDisplay/Header.tsx
+++ b/web/src/pages/AttachmentDisplay/Header.tsx
@@ -1,72 +1,35 @@
import React from "react";
-import styled from "styled-components";
-
import { useNavigate } from "react-router-dom";
import { Button } from "@kleros/ui-components-library";
import Arrow from "svgs/icons/arrow-left.svg";
import PaperClip from "svgs/icons/paperclip.svg";
-
-import { responsiveSize } from "styles/responsiveSize";
-
-const Container = styled.div`
- width: 100%;
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 38px;
-`;
-
-const TitleContainer = styled.div`
- display: flex;
- flex-direction: row;
- align-items: center;
- gap: 8px;
-`;
-
-const Title = styled.h1`
- margin: 0px;
- font-size: ${responsiveSize(16, 24)};
-`;
-
-const StyledPaperClip = styled(PaperClip)`
- width: ${responsiveSize(16, 24)};
- height: ${responsiveSize(16, 24)};
- path {
- fill: ${({ theme }) => theme.primaryPurple};
- }
-`;
-
-const StyledButton = styled(Button)`
- background-color: transparent;
- padding: 0;
- .button-text {
- color: ${({ theme }) => theme.primaryBlue};
- font-weight: 400;
- }
- .button-svg {
- path {
- fill: ${({ theme }) => theme.primaryBlue};
- }
- }
- :focus,
- :hover {
- background-color: transparent;
- }
-`;
+import clsx from "clsx";
const Header: React.FC = () => {
const navigate = useNavigate();
return (
-
-
-
- Attachment File{" "}
-
- navigate(-1)} />
-
+
+
+
+
Attachment File
{" "}
+
+
navigate(-1)}
+ />
+
);
};
diff --git a/web/src/pages/AttachmentDisplay/index.tsx b/web/src/pages/AttachmentDisplay/index.tsx
index c224291a..8f9c2a3d 100644
--- a/web/src/pages/AttachmentDisplay/index.tsx
+++ b/web/src/pages/AttachmentDisplay/index.tsx
@@ -1,73 +1,45 @@
import React, { lazy, Suspense } from "react";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-import { landscapeStyle, MAX_WIDTH_LANDSCAPE } from "styles/landscapeStyle";
-import { useSearchParams } from "react-router-dom";
+import { Link, useSearchParams } from "react-router-dom";
import NewTabIcon from "svgs/icons/new-tab.svg";
import Loader from "components/Loader";
import ScrollTop from "components/ScrollTop";
-import { ExternalLink } from "components/ExternalLink";
import Header from "./Header";
+import clsx from "clsx";
const FileViewer = lazy(() => import("components/FileViewer"));
-const Container = styled.div`
- display: flex;
- width: 100%;
- background-color: ${({ theme }) => theme.lightBackground};
- padding: 32px 16px 40px;
- max-width: ${MAX_WIDTH_LANDSCAPE};
- flex-direction: column;
- margin: 0 auto;
-
- ${landscapeStyle(
- () => css`
- padding: 48px ${responsiveSize(0, 132)} 60px;
- `
- )}
-`;
-
-const LoaderContainer = styled.div`
- display: flex;
- justify-content: center;
- width: 100%;
-`;
-
-const StyledExternalLink = styled(ExternalLink)`
- display: flex;
- align-items: center;
- gap: 8px;
- align-self: flex-end;
- margin-bottom: 8px;
-`;
-
-const StyledNewTabIcon = styled(NewTabIcon)`
- path {
- fill: ${({ theme }) => theme.primaryBlue};
- }
-`;
-
const AttachmentDisplay: React.FC = () => {
const [searchParams] = useSearchParams();
const url = searchParams.get("url");
return (
-
+
{url ? (
<>
-
- Open in new tab
-
+
+ Open in new tab
+
+
-
+
}
>
@@ -75,7 +47,7 @@ const AttachmentDisplay: React.FC = () => {
>
) : null}
-
+
);
};
diff --git a/web/src/pages/MyTransactions/Modal/PaymentReleased/CloseButton.tsx b/web/src/pages/MyTransactions/Modal/PaymentReleased/CloseButton.tsx
deleted file mode 100644
index 3fd42394..00000000
--- a/web/src/pages/MyTransactions/Modal/PaymentReleased/CloseButton.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import React from "react";
-import { Button } from "@kleros/ui-components-library";
-
-interface ICloseButton {
- toggleModal: () => void;
-}
-
-const CloseButton: React.FC = ({ toggleModal }) => {
- return ;
-};
-export default CloseButton;
diff --git a/web/src/pages/MyTransactions/Modal/PaymentReleased/Description.tsx b/web/src/pages/MyTransactions/Modal/PaymentReleased/Description.tsx
index 2b41c8c9..a5ee5388 100644
--- a/web/src/pages/MyTransactions/Modal/PaymentReleased/Description.tsx
+++ b/web/src/pages/MyTransactions/Modal/PaymentReleased/Description.tsx
@@ -1,34 +1,15 @@
import React from "react";
-import styled from "styled-components";
import { shortenAddress } from "utils/shortenAddress";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
-const Container = styled.div`
- flex-direction: column;
- align-items: center;
- margin-bottom: 32px;
- text-align: center;
-`;
-
-const StyledEscrowConcluded = styled.p`
- margin: 0;
-`;
-
-const StyledThanks = styled.p`
- margin: 0;
- font-weight: 600;
-`;
-
const Description: React.FC = () => {
const { seller } = useTransactionDetailsContext();
return (
-
-
- Escrow concluded. The funds were released to {shortenAddress(seller)}.
-
- Thanks for using Kleros Escrow.
-
+
+
Escrow concluded. The funds were released to {shortenAddress(seller)}.
+
Thanks for using Kleros Escrow.
+
);
};
export default Description;
diff --git a/web/src/pages/MyTransactions/Modal/PaymentReleased/Header.tsx b/web/src/pages/MyTransactions/Modal/PaymentReleased/Header.tsx
index 3136cb4e..f693a219 100644
--- a/web/src/pages/MyTransactions/Modal/PaymentReleased/Header.tsx
+++ b/web/src/pages/MyTransactions/Modal/PaymentReleased/Header.tsx
@@ -1,21 +1,14 @@
import React from "react";
-import styled from "styled-components";
import { formatEther } from "viem";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
-const StyledHeader = styled.h1`
- margin: 0;
- margin-bottom: 24px;
- text-align: center;
-`;
-
const Header: React.FC = () => {
const { amount, assetSymbol } = useTransactionDetailsContext();
return (
-
+
Full payment released: {formatEther(amount)} {assetSymbol}
-
+
);
};
export default Header;
diff --git a/web/src/pages/MyTransactions/Modal/PaymentReleased/VerifiedLogo.tsx b/web/src/pages/MyTransactions/Modal/PaymentReleased/VerifiedLogo.tsx
deleted file mode 100644
index b5b4ff45..00000000
--- a/web/src/pages/MyTransactions/Modal/PaymentReleased/VerifiedLogo.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-import CheckCircleFull from "svgs/icons/check-circle-full.svg";
-
-const StyledCheckCircleFull = styled(CheckCircleFull)`
- margin-bottom: 12px;
-`;
-
-const VerifiedLogo: React.FC = () => {
- return ;
-};
-export default VerifiedLogo;
diff --git a/web/src/pages/MyTransactions/Modal/PaymentReleased/index.tsx b/web/src/pages/MyTransactions/Modal/PaymentReleased/index.tsx
index 08b71442..d906fc1e 100644
--- a/web/src/pages/MyTransactions/Modal/PaymentReleased/index.tsx
+++ b/web/src/pages/MyTransactions/Modal/PaymentReleased/index.tsx
@@ -1,11 +1,11 @@
import React, { useRef } from "react";
import { useClickAway } from "react-use";
-import { StyledModal } from "pages/MyTransactions/Modal/StyledModal";
-import VerifiedLogo from "./VerifiedLogo";
+import StyledModal from "pages/MyTransactions/Modal/StyledModal";
import Header from "./Header";
import Description from "./Description";
-import CloseButton from "./CloseButton";
import { Overlay } from "components/Overlay";
+import CheckCircleFull from "svgs/icons/check-circle-full.svg";
+import { Button } from "@kleros/ui-components-library";
interface IPaymentReleased {
toggleModal: () => void;
@@ -18,10 +18,10 @@ const PaymentReleased: React.FC = ({ toggleModal }) => {
return (
-
+
-
+
);
diff --git a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/AmountField.tsx b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/AmountField.tsx
index be690411..91186a93 100644
--- a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/AmountField.tsx
+++ b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/AmountField.tsx
@@ -1,27 +1,8 @@
import React, { useState, useEffect } from "react";
-import styled from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-import { Field } from "@kleros/ui-components-library";
+import { BigNumberField } from "@kleros/ui-components-library";
import { parseEther } from "viem";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
-export const StyledField = styled(Field)`
- width: 100% !important;
- margin-bottom: ${responsiveSize(64, 36)};
- input[type="number"]::-webkit-inner-spin-button,
- input[type="number"]::-webkit-outer-spin-button {
- -webkit-appearance: none;
- appearance: none;
- }
- input[type="number"] {
- -moz-appearance: textfield;
- }
-
- input {
- font-size: 16px;
- }
-`;
-
interface IAmountField {
amountProposed: string;
setAmountProposed: (value: string) => void;
@@ -46,13 +27,16 @@ const AmountField: React.FC = ({ amountProposed, setAmountProposed
}, [amountProposed, amount, setIsAmountValid]);
return (
- setAmountProposed(e.target.value)}
- type="number"
+ onChange={(value) => setAmountProposed(value.toString())}
placeholder="0"
variant={error ? "error" : undefined}
message={error}
+ showFieldError
+ minValue="0"
/>
);
};
diff --git a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Buttons/index.tsx b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Buttons/index.tsx
index 89ce7a74..fe13bfd8 100644
--- a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Buttons/index.tsx
+++ b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Buttons/index.tsx
@@ -1,16 +1,7 @@
import React from "react";
-import styled from "styled-components";
import { Button } from "@kleros/ui-components-library";
import ProposeSettlementButton from "pages/MyTransactions/TransactionDetails/PreviewCardButtons/ProposeSettlementButton";
-const Container = styled.div`
- display: flex;
- width: 100%;
- justify-content: space-between;
- flex-wrap: wrap;
- gap: 16px;
-`;
-
interface IButtons {
toggleModal: () => void;
amountProposed: string;
@@ -19,10 +10,10 @@ interface IButtons {
const Buttons: React.FC = ({ toggleModal, amountProposed, isAmountValid }) => {
return (
-
-
+
);
};
diff --git a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Description.tsx b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Description.tsx
deleted file mode 100644
index d8e6cf21..00000000
--- a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Description.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-
-const StyledP = styled.p`
- color: ${({ theme }) => theme.secondaryText};
- margin: 0;
- margin-bottom: 32px;
-`;
-
-const Description: React.FC = () => {
- return How much should be paid?;
-};
-export default Description;
diff --git a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Header.tsx b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Header.tsx
deleted file mode 100644
index b2cd69dc..00000000
--- a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/Header.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-
-const StyledHeader = styled.h1`
- margin: 0;
-`;
-
-interface IHeader {
- text: string;
-}
-
-const Header: React.FC = ({ text }) => {
- return {text};
-};
-export default Header;
diff --git a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/index.tsx b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/index.tsx
index a83c790e..7f09f242 100644
--- a/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/index.tsx
+++ b/web/src/pages/MyTransactions/Modal/ProposeSettlementModal/index.tsx
@@ -1,11 +1,9 @@
import React, { useRef, useState } from "react";
import { useClickAway } from "react-use";
-import Description from "./Description";
import { Overlay } from "components/Overlay";
-import Header from "./Header";
import AmountField from "./AmountField";
import Buttons from "./Buttons";
-import { StyledModal } from "../StyledModal";
+import StyledModal from "../StyledModal";
interface IProposeSettlementModal {
toggleModal: () => void;
@@ -21,8 +19,8 @@ const ProposeSettlementModal: React.FC = ({ toggleModal
return (
-
-
+ {text}
+ How much should be paid?
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/AmountField.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/AmountField.tsx
deleted file mode 100644
index 4ad3a5d8..00000000
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/AmountField.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import React from "react";
-import { Field } from "@kleros/ui-components-library";
-import styled from "styled-components";
-
-const StyledField = styled(Field)`
- width: 100% !important;
-`;
-
-const AmountField: React.FC = () => {
- return ;
-};
-export default AmountField;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/Header.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/Header.tsx
deleted file mode 100644
index 39092b71..00000000
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/Header.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-
-const StyledP = styled.p`
- font-size: 14px;
- margin: 0;
-`;
-
-const Header: React.FC = () => {
- return Amount Claimed;
-};
-export default Header;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/index.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/index.tsx
deleted file mode 100644
index c6b9647d..00000000
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/AmountClaimed/index.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-import AmountField from "./AmountField";
-import Header from "./Header";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- gap: 12px;
- width: 100%;
-`;
-
-const AmountClaimed: React.FC = () => {
- return (
-
-
-
-
- );
-};
-export default AmountClaimed;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Buttons/index.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Buttons/index.tsx
index 1fc875dc..fd57b677 100644
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Buttons/index.tsx
+++ b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Buttons/index.tsx
@@ -1,16 +1,6 @@
import React from "react";
-import styled from "styled-components";
import { Button } from "@kleros/ui-components-library";
import RaiseDisputeButton from "pages/MyTransactions/TransactionDetails/PreviewCardButtons/RaiseDisputeButton";
-
-const Container = styled.div`
- display: flex;
- width: 100%;
- justify-content: space-between;
- flex-wrap: wrap;
- gap: 16px;
-`;
-
interface IButtons {
toggleModal: () => void;
arbitrationCost: bigint;
@@ -18,10 +8,10 @@ interface IButtons {
const Buttons: React.FC = ({ toggleModal, arbitrationCost }) => {
return (
-
-
+
+
-
+
);
};
export default Buttons;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Description.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Description.tsx
index f7742cff..0c6565f2 100644
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Description.tsx
+++ b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Description.tsx
@@ -1,14 +1,8 @@
import React from "react";
-import styled from "styled-components";
-
-const StyledP = styled.p`
- color: ${({ theme }) => theme.secondaryText};
- margin: 0;
-`;
const Description: React.FC = () => {
return (
-
+
In order to raise a dispute, both parties involved need to deposit the arbitration fees. The fees are used to pay
the jurors for their work.
@@ -20,7 +14,7 @@ const Description: React.FC = () => {
After the juror's decision, both sides can still appeal the case if not satisfied with the result. It leads to
another round with different jurors.
-
+
);
};
export default Description;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/FeeRequired.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/FeeRequired.tsx
index dc3aaaa6..f448e1f3 100644
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/FeeRequired.tsx
+++ b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/FeeRequired.tsx
@@ -1,33 +1,7 @@
import React from "react";
import { Card } from "@kleros/ui-components-library";
-import styled from "styled-components";
import { formatEther } from "viem";
-
-const StyledCard = styled(Card)`
- display: flex;
- flex-direction: column;
- background-color: ${({ theme }) => theme.mediumBlue};
- height: 87px;
- width: 100%;
- border: none;
- justify-content: center;
- align-items: center;
- padding: 15px;
- gap: 5px;
-`;
-
-const StyledHeader = styled.p`
- font-size: 14px;
- margin: 0;
- color: ${({ theme }) => theme.primaryBlue};
-`;
-
-const StyledQuantity = styled.p`
- font-size: 24px;
- margin: 0;
- color: ${({ theme }) => theme.primaryBlue};
- font-weight: 600;
-`;
+import clsx from "clsx";
interface IFeeRequired {
arbitrationCost: bigint;
@@ -35,10 +9,20 @@ interface IFeeRequired {
const FeeRequired: React.FC = ({ arbitrationCost }) => {
return (
-
- Arbitration fee required
- {arbitrationCost ? {formatEther(arbitrationCost)} ETH : null}
-
+
+ Arbitration fee required
+ {arbitrationCost ? (
+
+ {formatEther(arbitrationCost)} ETH
+
+ ) : null}
+
);
};
export default FeeRequired;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Header.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Header.tsx
deleted file mode 100644
index ce3f70aa..00000000
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/Header.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-
-const StyledHeader = styled.h1`
- margin: 0;
-`;
-
-const Header: React.FC = () => {
- return Raise a dispute;
-};
-export default Header;
diff --git a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/index.tsx b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/index.tsx
index 6c0d5be1..01e48e7b 100644
--- a/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/index.tsx
+++ b/web/src/pages/MyTransactions/Modal/RaiseDisputeModal/index.tsx
@@ -1,17 +1,10 @@
import React, { useRef } from "react";
import Description from "./Description";
import { Overlay } from "components/Overlay";
-import Header from "./Header";
import { useClickAway } from "react-use";
import Buttons from "./Buttons";
import FeeRequired from "./FeeRequired";
-import { StyledModal } from "../StyledModal";
-import styled from "styled-components";
-
-const ReStyledModal = styled(StyledModal)`
- gap: 32px;
-`;
-
+import StyledModal from "../StyledModal";
interface IRaiseDisputeModal {
toggleModal: () => void;
arbitrationCost: bigint;
@@ -23,12 +16,12 @@ const RaiseDisputeModal: React.FC = ({ toggleModal, arbitrat
return (
-
-
+
+ Raise a dispute
-
+
);
};
diff --git a/web/src/pages/MyTransactions/Modal/StyledModal.tsx b/web/src/pages/MyTransactions/Modal/StyledModal.tsx
index d4d27440..1e5b5d82 100644
--- a/web/src/pages/MyTransactions/Modal/StyledModal.tsx
+++ b/web/src/pages/MyTransactions/Modal/StyledModal.tsx
@@ -1,22 +1,22 @@
-import styled from "styled-components";
+import React, { forwardRef } from "react";
+import { cn } from "src/utils";
-export const StyledModal = styled.div`
- display: flex;
- position: fixed;
- top: 10vh;
- left: 50%;
- transform: translateX(-50%);
- max-height: 80vh;
- overflow-y: auto;
-
- z-index: 10;
- flex-direction: column;
- align-items: center;
- width: 86vw;
- max-width: 600px;
- border-radius: 3px;
- border: 1px solid ${({ theme }) => theme.stroke};
- background-color: ${({ theme }) => theme.whiteBackground};
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.06);
- padding: 32px 32px 32px 36px;
-`;
+const StyledModal = forwardRef>(
+ ({ className, children, ...props }, ref) => (
+
+ {children}
+
+ )
+);
+export default StyledModal;
diff --git a/web/src/pages/MyTransactions/TransactionDetails/Header.tsx b/web/src/pages/MyTransactions/TransactionDetails/Header.tsx
deleted file mode 100644
index 4553aea0..00000000
--- a/web/src/pages/MyTransactions/TransactionDetails/Header.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-
-const Container = styled.h1`
- margin: 0;
-`;
-
-interface IHeader {
- text: string;
-}
-
-const Header: React.FC = ({ text }) => {
- return {text};
-};
-export default Header;
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/AcceptSettlementButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/AcceptSettlementButton.tsx
index 698279b0..8c02adcb 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/AcceptSettlementButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/AcceptSettlementButton.tsx
@@ -16,7 +16,11 @@ const AcceptButton: React.FC = () => {
const { id } = useTransactionDetailsContext();
const refetchQuery = useQueryRefetch();
- const { data: acceptSettlementConfig, isLoading, isError } = useSimulateEscrowUniversalAcceptSettlement({
+ const {
+ data: acceptSettlementConfig,
+ isLoading,
+ isError,
+ } = useSimulateEscrowUniversalAcceptSettlement({
args: [BigInt(id)],
});
@@ -42,9 +46,9 @@ const AcceptButton: React.FC = () => {
return (
);
};
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ExecuteTransactionButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ExecuteTransactionButton.tsx
index b68aeceb..7dacaf87 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ExecuteTransactionButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ExecuteTransactionButton.tsx
@@ -16,11 +16,16 @@ const ExecuteTransactionButton: React.FC = () => {
const { id } = useTransactionDetailsContext();
const refetchQuery = useQueryRefetch();
- const { data: executeTransactionConfig, isLoading, isError } = useSimulateEscrowUniversalExecuteTransaction({
+ const {
+ data: executeTransactionConfig,
+ isLoading,
+ isError,
+ } = useSimulateEscrowUniversalExecuteTransaction({
args: [BigInt(id)],
});
- const { writeContractAsync: executeTransaction } = useWriteEscrowUniversalExecuteTransaction(executeTransactionConfig);
+ const { writeContractAsync: executeTransaction } =
+ useWriteEscrowUniversalExecuteTransaction(executeTransactionConfig);
const handleExecuteTransaction = () => {
if (!isUndefined(executeTransaction)) {
@@ -43,9 +48,9 @@ const ExecuteTransactionButton: React.FC = () => {
return (
);
};
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ProposeSettlementButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ProposeSettlementButton.tsx
index 453f576d..0e5264d4 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ProposeSettlementButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ProposeSettlementButton.tsx
@@ -29,7 +29,11 @@ const ProposeSettlementButton: React.FC = ({
const { id } = useTransactionDetailsContext();
const refetchQuery = useQueryRefetch();
- const { data: proposeSettlementConfig, isLoading, isError } = useSimulateEscrowUniversalProposeSettlement({
+ const {
+ data: proposeSettlementConfig,
+ isLoading,
+ isError,
+ } = useSimulateEscrowUniversalProposeSettlement({
args: [BigInt(id), parseEther(amountProposed)],
});
@@ -57,9 +61,9 @@ const ProposeSettlementButton: React.FC = ({
return (
);
};
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/RaiseDisputeButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/RaiseDisputeButton.tsx
index dd8a17dc..c441c714 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/RaiseDisputeButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/RaiseDisputeButton.tsx
@@ -11,8 +11,7 @@ import { isUndefined } from "utils/index";
import { wrapWithToast } from "utils/wrapWithToast";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
import { useQueryRefetch } from "hooks/useQueryRefetch";
-import ClosedCircleIcon from "components/StyledIcons/ClosedCircleIcon";
-import { ErrorButtonMessage } from "pages/NewTransaction/NavigationButtons/DepositPaymentButton";
+import ClosedCircle from "svgs/icons/close-circle.svg";
interface IRaiseDisputeButton {
toggleModal?: () => void;
@@ -104,7 +103,7 @@ const RaiseDisputeButton: React.FC = ({ toggleModal, button
= ({ toggleModal, button
isErrorSellerConfig
}
text={buttonText}
- onClick={handleRaiseDispute}
+ onPress={handleRaiseDispute}
/>
{insufficientBalance && (
-
- Insufficient balance
-
+
+ Insufficient balance
+
)}
);
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/TimeOutButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/TimeOutButton.tsx
index fa8cc6f3..3c22ee1f 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/TimeOutButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/TimeOutButton.tsx
@@ -20,12 +20,26 @@ const TimeOutButton: React.FC = () => {
const isBuyer = useMemo(() => address?.toLowerCase() === buyer?.toLowerCase(), [address, buyer]);
const refetchQuery = useQueryRefetch();
- const { data: timeOutByBuyerConfig, isLoading: isLoadingBuyerConfig, isError: isErrorBuyerConfig } = useSimulateEscrowUniversalTimeOutByBuyer({
+ const {
+ data: timeOutByBuyerConfig,
+ isLoading: isLoadingBuyerConfig,
+ isError: isErrorBuyerConfig,
+ } = useSimulateEscrowUniversalTimeOutByBuyer({
args: [BigInt(id)],
+ query: {
+ enabled: isBuyer,
+ },
});
- const { data: timeOutBySellerConfig, isLoading: isLoadingSellerConfig, isError: isErrorSellerConfig } = useSimulateEscrowUniversalTimeOutBySeller({
+ const {
+ data: timeOutBySellerConfig,
+ isLoading: isLoadingSellerConfig,
+ isError: isErrorSellerConfig,
+ } = useSimulateEscrowUniversalTimeOutBySeller({
args: [BigInt(id)],
+ query: {
+ enabled: !isBuyer,
+ },
});
const { writeContractAsync: timeOutByBuyer } = useWriteEscrowUniversalTimeOutByBuyer(timeOutByBuyerConfig);
@@ -64,15 +78,11 @@ const TimeOutButton: React.FC = () => {
return (
);
};
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ViewCaseButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ViewCaseButton.tsx
index 5ed12401..c5be8de7 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ViewCaseButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/ViewCaseButton.tsx
@@ -1,23 +1,9 @@
import React, { useMemo } from "react";
-import styled from "styled-components";
-import { SkeletonButton } from "components/StyledSkeleton";
import LightButton from "components/LightButton";
import ArrowIcon from "svgs/icons/arrow.svg";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
-
-const StyledButton = styled(LightButton)`
- display: flex;
- width: auto;
- gap: 8px;
- flex-direction: row-reverse;
- flex-wrap: wrap-reverse;
- > .button-text {
- color: ${({ theme }) => theme.primaryBlue};
- white-space: normal;
- text-align: start;
- }
- padding-top: 0px;
-`;
+import Skeleton from "react-loading-skeleton";
+import clsx from "clsx";
const ViewCaseButton: React.FC = () => {
const { disputeRequest, resolvedEvents } = useTransactionDetailsContext();
@@ -39,9 +25,17 @@ const ViewCaseButton: React.FC = () => {
};
return disputeRequest?.id ? (
-
+
) : (
-
+
);
};
diff --git a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/index.tsx b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/index.tsx
index a01a78d1..31d01634 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/index.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/PreviewCardButtons/index.tsx
@@ -1,5 +1,4 @@
import React, { useEffect, useState, useMemo } from "react";
-import styled from "styled-components";
import { useAccount } from "wagmi";
import { formatEther } from "viem";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
@@ -11,12 +10,7 @@ import RaiseDisputeButton from "./RaiseDisputeButton";
import TimeOutButton from "./TimeOutButton";
import ExecuteTransactionButton from "./ExecuteTransactionButton";
-const Container = styled.div`
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- gap: 24px;
-`;
+const containerStyle = "flex flex-wrap gap-6";
interface IPreviewCardButtons {
feeTimeout: number;
@@ -98,39 +92,39 @@ const PreviewCardButtons: React.FC = ({ feeTimeout, settlem
return (
<>
{shouldDisplaySettlementButtons ? (
-
+
) : null}
{shouldDisplayRaiseDisputeButton && arbitrationCost ? (
-
+
-
+
) : null}
{disputeRequest ? (
-
+
-
+
) : null}
{settlementTimeLeft <= 0 &&
((status === "WaitingSettlementSeller" && isBuyer) || (status === "WaitingSettlementBuyer" && !isBuyer)) ? (
) : null}
{feeTimeLeft <= 0 && ((status === "WaitingSeller" && isBuyer) || (status === "WaitingBuyer" && !isBuyer)) ? (
-
+
-
+
) : null}
{shouldDisplayExecuteTransactionButton ? (
-
+
-
+
) : null}
>
);
diff --git a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ClaimFullPaymentButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ClaimFullPaymentButton.tsx
index a6916d68..159a6647 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ClaimFullPaymentButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ClaimFullPaymentButton.tsx
@@ -17,11 +17,16 @@ const ClaimFullPaymentButton: React.FC = () => {
const publicClient = usePublicClient();
const { id } = useTransactionDetailsContext();
- const { data: executeTransactionConfig, isLoading, isError } = useSimulateEscrowUniversalExecuteTransaction({
+ const {
+ data: executeTransactionConfig,
+ isLoading,
+ isError,
+ } = useSimulateEscrowUniversalExecuteTransaction({
args: [id],
});
- const { writeContractAsync: executeTransaction } = useWriteEscrowUniversalExecuteTransaction(executeTransactionConfig);
+ const { writeContractAsync: executeTransaction } =
+ useWriteEscrowUniversalExecuteTransaction(executeTransactionConfig);
const handleExecuteTransaction = () => {
if (!isUndefined(executeTransaction)) {
@@ -47,9 +52,9 @@ const ClaimFullPaymentButton: React.FC = () => {
<>
{isModalOpen ? : null}
>
diff --git a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/OpenModalProposeSettlementButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/OpenModalProposeSettlementButton.tsx
index 543c9166..59cba263 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/OpenModalProposeSettlementButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/OpenModalProposeSettlementButton.tsx
@@ -12,9 +12,9 @@ const OpenModalProposeSettlementButton: React.FC
-
+
{isModalOpen ? : null}
>
);
};
-export default OpenModalProposeSettlementButton;
+export default React.memo(OpenModalProposeSettlementButton);
diff --git a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ReleasePaymentButton.tsx b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ReleasePaymentButton.tsx
index ca8c9fd5..58fc66ae 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ReleasePaymentButton.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/ReleasePaymentButton.tsx
@@ -16,7 +16,11 @@ const ReleasePaymentButton: React.FC = () => {
const { id, amount } = useTransactionDetailsContext();
const refetchQuery = useQueryRefetch();
- const { data: releaseFullPaymentConfig, isLoading, isError } = useSimulateEscrowUniversalPay({
+ const {
+ data: releaseFullPaymentConfig,
+ isLoading,
+ isError,
+ } = useSimulateEscrowUniversalPay({
args: [id, amount],
});
@@ -45,9 +49,9 @@ const ReleasePaymentButton: React.FC = () => {
<>
{isModalOpen ? : null}
>
diff --git a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/index.tsx b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/index.tsx
index f634b75c..09b77986 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/index.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Buttons/index.tsx
@@ -1,20 +1,10 @@
import React from "react";
-import styled from "styled-components";
import OpenModalProposeSettlementButton from "./OpenModalProposeSettlementButton";
import ReleasePaymentButton from "./ReleasePaymentButton";
import { useAccount } from "wagmi";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
import ClaimFullPaymentButton from "./ClaimFullPaymentButton";
-const Container = styled.div`
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- gap: 16px 24px;
- justify-content: center;
- margin-bottom: 32px;
-`;
-
const Buttons: React.FC = () => {
const { address } = useAccount();
const { buyer, payments, deadline } = useTransactionDetailsContext();
@@ -22,13 +12,13 @@ const Buttons: React.FC = () => {
const currentTimeUnixSeconds = Math.floor(Date.now() / 1000);
return (
-
+
{isBuyer && payments?.length === 0 ? : null}
{currentTimeUnixSeconds < deadline ? (
) : null}
{currentTimeUnixSeconds > deadline && !isBuyer ? : null}
-
+
);
};
export default Buttons;
diff --git a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Header.tsx b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Header.tsx
deleted file mode 100644
index 5660c500..00000000
--- a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/Header.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-
-const StyledP = styled.p`
- color: ${({ theme }) => theme.primaryBlue};
- font-weight: 600;
- margin: 0;
-`;
-
-const Header: React.FC = () => {
- return Was the agreement fulfilled?;
-};
-export default Header;
diff --git a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/index.tsx b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/index.tsx
index 636d6f18..7bb3ace3 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/index.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/WasItFulfilled/index.tsx
@@ -1,37 +1,20 @@
import React from "react";
-import styled, { css } from "styled-components";
import { Card } from "@kleros/ui-components-library";
import Buttons from "./Buttons";
-import Header from "./Header";
-import { landscapeStyle } from "styles/landscapeStyle";
-
-const StyledCard = styled(Card)`
- display: flex;
- gap: 22px;
- background-color: ${({ theme }) => theme.mediumBlue};
- border: 1px solid ${({ theme }) => theme.primaryBlue};
- width: 100%;
- height: auto;
- align-items: center;
- align-self: center;
- flex-direction: column;
- padding: 30px 40px 4px 40px;
-
- ${landscapeStyle(
- () =>
- css`
- gap: 22px;
- width: 100%;
- `
- )}
-`;
+import clsx from "clsx";
const WasItFulfilled: React.FC = () => {
return (
-
-
+
+ Was the agreement fulfilled?
-
+
);
};
export default WasItFulfilled;
diff --git a/web/src/pages/MyTransactions/TransactionDetails/index.tsx b/web/src/pages/MyTransactions/TransactionDetails/index.tsx
index cb0ff9f9..9d752261 100644
--- a/web/src/pages/MyTransactions/TransactionDetails/index.tsx
+++ b/web/src/pages/MyTransactions/TransactionDetails/index.tsx
@@ -1,6 +1,4 @@
import React, { useEffect } from "react";
-import styled from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
import { useParams } from "react-router-dom";
import { formatEther } from "viem";
import { useTransactionDetailsContext } from "context/TransactionDetailsContext";
@@ -17,19 +15,6 @@ import useFetchIpfsJson from "hooks/useFetchIpfsJson";
import { useTokenMetadata } from "hooks/useTokenMetadata";
import BufferPeriodWarning from "./InfoCards/BufferPeriodWarning";
-const Container = styled.div``;
-
-const OverviewContainer = styled.div`
- display: flex;
- flex-direction: column;
- gap: 32px;
-`;
-
-const Header = styled.h1`
- margin-bottom: ${responsiveSize(12, 24)};
- font-size: ${responsiveSize(20, 24)};
-`;
-
const TransactionDetails: React.FC = () => {
const { id } = useParams();
const { data: transactionDetails } = useTransactionDetailsQuery(id);
@@ -77,9 +62,9 @@ const TransactionDetails: React.FC = () => {
const deliveryDeadlineMs = disputeDeadlineMs - bufferSecNumber * 1000;
return (
-
-
-
+
+
Transaction #{id}
+
{
/>
{status === "NoDispute" && payments?.length === 0 ? : null}
-
-
+
+
);
};
diff --git a/web/src/pages/MyTransactions/TransactionsFetcher.tsx b/web/src/pages/MyTransactions/TransactionsFetcher.tsx
index c88bbe0b..4666d431 100644
--- a/web/src/pages/MyTransactions/TransactionsFetcher.tsx
+++ b/web/src/pages/MyTransactions/TransactionsFetcher.tsx
@@ -1,7 +1,5 @@
import React, { useMemo } from "react";
-import { BREAKPOINT_LANDSCAPE } from "styles/landscapeStyle";
-
import { useParams, useNavigate } from "react-router-dom";
import { useWindowSize } from "react-use";
import { useAccount } from "wagmi";
@@ -15,14 +13,14 @@ import { OrderDirection, TransactionDetailsFragment } from "src/graphql/graphql"
import TransactionsDisplay from "components/TransactionsDisplay";
import ConnectWallet from "components/ConnectWallet";
-import { ConnectWalletContainer } from "./index";
+import { LG_BREAKPOINT } from "src/styles/breakpoints";
const TransactionsFetcher: React.FC = () => {
const { page, order, filter } = useParams();
const navigate = useNavigate();
const { width } = useWindowSize();
const location = useRootPath();
- const screenIsBig = width > BREAKPOINT_LANDSCAPE;
+ const screenIsBig = width > LG_BREAKPOINT;
const transactionsPerPage = screenIsBig ? 9 : 3;
const pageNumber = parseInt(page ?? "1", 10);
const transactionSkip = transactionsPerPage * (pageNumber - 1);
@@ -89,11 +87,11 @@ const TransactionsFetcher: React.FC = () => {
transactionsPerPage={transactionsPerPage}
/>
) : (
-
+
To see your transactions, connect first and switch to the supported chain
-
+
);
};
diff --git a/web/src/pages/MyTransactions/WithHelpTooltip.tsx b/web/src/pages/MyTransactions/WithHelpTooltip.tsx
deleted file mode 100644
index 395b0ea6..00000000
--- a/web/src/pages/MyTransactions/WithHelpTooltip.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import React from "react";
-import styled, { css } from "styled-components";
-import { landscapeStyle } from "styles/landscapeStyle";
-import { Tooltip } from "@kleros/ui-components-library";
-import _HelpIcon from "svgs/menu-icons/help.svg";
-
-const Container = styled.div`
- display: flex;
- align-items: center;
-`;
-
-const HelpIcon = styled(_HelpIcon)`
- display: flex;
- align-items: center;
- height: 12px;
- width: 12px;
- fill: ${({ theme }) => theme.secondaryText};
- margin: 0 0 0 8px;
-
- ${landscapeStyle(
- () => css`
- height: 14px;
- width: 14px;
- `
- )}
-`;
-
-interface IWithHelpTooltip {
- tooltipMsg: string;
- place?: "bottom" | "left" | "right" | "top";
- children?: React.ReactNode;
-}
-
-const WithHelpTooltip: React.FC = ({ tooltipMsg, children, place }) => (
-
- {children}
-
-
-
-
-);
-
-export default WithHelpTooltip;
diff --git a/web/src/pages/MyTransactions/index.tsx b/web/src/pages/MyTransactions/index.tsx
index 797573d4..5b33d76b 100644
--- a/web/src/pages/MyTransactions/index.tsx
+++ b/web/src/pages/MyTransactions/index.tsx
@@ -1,8 +1,4 @@
import React from "react";
-import styled, { css } from "styled-components";
-
-import { MAX_WIDTH_LANDSCAPE, landscapeStyle } from "styles/landscapeStyle";
-import { responsiveSize } from "styles/responsiveSize";
import { Route, Routes } from "react-router-dom";
@@ -10,45 +6,27 @@ import { TransactionDetailsProvider } from "context/TransactionDetailsContext";
import TransactionsFetcher from "./TransactionsFetcher";
import TransactionDetails from "./TransactionDetails";
-
-const Container = styled.div`
- width: 100%;
- background-color: ${({ theme }) => theme.lightBackground};
- padding: 32px 16px 40px;
- max-width: ${MAX_WIDTH_LANDSCAPE};
- margin: 0 auto;
-
- ${landscapeStyle(
- () => css`
- padding: 48px ${responsiveSize(0, 132)} 60px;
- `
- )}
-`;
-
-export const ConnectWalletContainer = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
- text-align: center;
- color: ${({ theme }) => theme.primaryText};
-`;
-
-const Dashboard: React.FC = () =>
-
- (
-
-
- } />
-
-
-
- }
- />
-
-
- );
+import clsx from "clsx";
+
+const Dashboard: React.FC = () => (
+
+
+ } />
+
+
+
+ }
+ />
+
+
+);
export default Dashboard;
diff --git a/web/src/pages/NewTransaction/EscrowDetails/Title/TextField.tsx b/web/src/pages/NewTransaction/EscrowDetails/Title/TextField.tsx
deleted file mode 100644
index 43424004..00000000
--- a/web/src/pages/NewTransaction/EscrowDetails/Title/TextField.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from "react";
-import { Field } from "@kleros/ui-components-library";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-import { useNewTransactionContext } from "context/NewTransactionContext";
-import { landscapeStyle } from "styles/landscapeStyle";
-
-const StyledField = styled(Field)`
- width: 84vw;
- input {
- font-size: 16px;
- }
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 500)};
- `
- )}
-`;
-
-const InputField: React.FC = () => {
- const { escrowTitle, setEscrowTitle } = useNewTransactionContext();
-
- const handleWrite = (event: React.ChangeEvent) => {
- setEscrowTitle(event.target.value);
- };
-
- return ;
-};
-
-export default InputField;
diff --git a/web/src/pages/NewTransaction/EscrowDetails/Title/index.tsx b/web/src/pages/NewTransaction/EscrowDetails/Title/index.tsx
index e3c4842e..358bb4d2 100644
--- a/web/src/pages/NewTransaction/EscrowDetails/Title/index.tsx
+++ b/web/src/pages/NewTransaction/EscrowDetails/Title/index.tsx
@@ -1,22 +1,28 @@
import React from "react";
import Header from "pages/NewTransaction/Header";
-import styled from "styled-components";
-import TextField from "./TextField";
import NavigationButtons from "pages/NewTransaction/NavigationButtons";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
+import { useNewTransactionContext } from "~src/context/NewTransactionContext";
+import { TextField } from "@kleros/ui-components-library";
const Title: React.FC = () => {
+ const { escrowTitle, setEscrowTitle } = useNewTransactionContext();
+
+ const handleWrite = (value: string) => {
+ setEscrowTitle(value);
+ };
+
return (
-
+
-
+
-
+
);
};
export default Title;
diff --git a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/CryptoSwap.tsx b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/CryptoSwap.tsx
index 321e4506..2215fc3c 100644
--- a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/CryptoSwap.tsx
+++ b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/CryptoSwap.tsx
@@ -1,46 +1,31 @@
import React from "react";
-import styled from "styled-components";
import Logo from "svgs/icons/crypto-swap.svg";
import { useNewTransactionContext } from "context/NewTransactionContext";
-import { StyledCard } from ".";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- gap: 26px;
- justify-content: center;
-`;
-
-const StyledLogo = styled(Logo)`
- path {
- fill: ${({ theme }) => theme.secondaryPurple};
- }
-`;
-
-const Title = styled.p`
- display: flex;
- width: 100%;
- width: 96px;
- text-align: center;
- margin: 0;
- padding: 0 8px;
- flex-wrap: wrap;
-`;
+import { Card } from "@kleros/ui-components-library";
+import { cn } from "src/utils";
const CryptoSwap: React.FC = () => {
const { escrowType, setEscrowType } = useNewTransactionContext();
+ const selected = escrowType === "swap";
+
const handleSelect = () => {
setEscrowType("swap");
};
return (
-
-
-
-
- Crypto Swap
-
+
);
};
export default CryptoSwap;
diff --git a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/GeneralEscrow.tsx b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/GeneralEscrow.tsx
index 04f6be8c..904e3264 100644
--- a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/GeneralEscrow.tsx
+++ b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/GeneralEscrow.tsx
@@ -1,44 +1,31 @@
import React from "react";
-import styled from "styled-components";
import Logo from "svgs/icons/general-escrow.svg";
import { useNewTransactionContext } from "context/NewTransactionContext";
-import { StyledCard } from ".";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- gap: 26px;
-`;
-
-const StyledLogo = styled(Logo)`
- path {
- fill: ${({ theme }) => theme.secondaryPurple};
- }
-`;
-
-const Title = styled.p`
- display: flex;
- width: 100%;
- flex-wrap: wrap;
- width: 96px;
- text-align: center;
- margin: 0;
-`;
+import { Card } from "@kleros/ui-components-library";
+import { cn } from "src/utils";
const GeneralEscrow: React.FC = () => {
const { escrowType, setEscrowType } = useNewTransactionContext();
+ const selected = escrowType === "general";
+
const handleSelect = () => {
setEscrowType("general");
};
return (
-
-
-
-
- General Escrow
-
+
);
};
export default GeneralEscrow;
diff --git a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/index.tsx b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/index.tsx
index 7384d3f4..865de47d 100644
--- a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/index.tsx
+++ b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/EscrowOptions/index.tsx
@@ -1,38 +1,13 @@
import React from "react";
-import styled, { css } from "styled-components";
import GeneralEscrow from "./GeneralEscrow";
// import CryptoSwap from "./CryptoSwap";
-import { Card } from "@kleros/ui-components-library";
-
-const Container = styled.div`
- display: flex;
- flex-direction: row;
- gap: 24px;
- justify-content: center;
- margin-bottom: 32px;
-`;
-
-export const StyledCard = styled(Card)<{ selected: boolean }>`
- display: flex;
- height: 96px;
- width: 96px;
- align-items: center;
- justify-content: center;
- border-radius: 20px;
- cursor: pointer;
- ${({ selected, theme }) =>
- selected &&
- css`
- border: 1px solid ${theme.primaryBlue};
- `}
-`;
const EscrowOptions: React.FC = () => {
return (
-
+
{/* */}
-
+
);
};
export default EscrowOptions;
diff --git a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/Info.tsx b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/Info.tsx
index cd05f0b0..3a893922 100644
--- a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/Info.tsx
+++ b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/Info.tsx
@@ -1,41 +1,26 @@
import React from "react";
import { AlertMessage } from "@kleros/ui-components-library";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
import { useNewTransactionContext } from "context/NewTransactionContext";
-import { landscapeStyle } from "styles/landscapeStyle";
-
-const Container = styled.div`
- display: flex;
- justify-content: center;
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 618)};
- `
- )}
-`;
const Info: React.FC = () => {
const { escrowType } = useNewTransactionContext();
return (
-
-
-
+
);
};
diff --git a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/index.tsx b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/index.tsx
index 3348c1a2..e30871b1 100644
--- a/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/index.tsx
+++ b/web/src/pages/NewTransaction/EscrowDetails/TypeOfEscrow/index.tsx
@@ -1,25 +1,18 @@
import React from "react";
-import styled from "styled-components";
import EscrowOptions from "./EscrowOptions";
import Header from "pages/NewTransaction/Header";
import Info from "./Info";
import NavigationButtons from "../../NavigationButtons";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
-
const TypeOfEscrow: React.FC = () => {
return (
-
+
{/* */}
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Header.tsx b/web/src/pages/NewTransaction/Header.tsx
index e56cb018..43614a39 100644
--- a/web/src/pages/NewTransaction/Header.tsx
+++ b/web/src/pages/NewTransaction/Header.tsx
@@ -1,28 +1,10 @@
import React from "react";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-import { landscapeStyle } from "styles/landscapeStyle";
-
-const Container = styled.h1`
- margin-bottom: 20px;
- width: 84vw;
- text-align: center;
- font-size: ${responsiveSize(20, 24)};
-
- ${landscapeStyle(
- () => css`
- width: auto;
- margin-bottom: 29px;
- `
- )}
-`;
-
interface IHeader {
text: string;
}
const Header: React.FC = ({ text }) => {
- return {text};
+ return {text}
;
};
export default Header;
diff --git a/web/src/pages/NewTransaction/HeroImage.tsx b/web/src/pages/NewTransaction/HeroImage.tsx
index 37860f78..ba4daac2 100644
--- a/web/src/pages/NewTransaction/HeroImage.tsx
+++ b/web/src/pages/NewTransaction/HeroImage.tsx
@@ -1,17 +1,17 @@
import React from "react";
-import { useTheme } from "styled-components";
+import { useTheme } from "src/hooks/useToggleThemeContext";
import { useWindowSize } from "react-use";
-import { BREAKPOINT_LANDSCAPE } from "styles/landscapeStyle";
import HeroLightMobile from "svgs/hero/hero-lightmode-mobile.svg";
import HeroDarkMobile from "svgs/hero/hero-darkmode-mobile.svg";
import HeroLightDesktop from "svgs/hero/hero-lightmode-desktop.svg";
import HeroDarkDesktop from "svgs/hero/hero-darkmode-desktop.svg";
+import { LG_BREAKPOINT } from "src/styles/breakpoints";
const HeroImage = () => {
const { width } = useWindowSize();
- const theme = useTheme();
- const themeIsLight = theme.name === "light";
- const screenIsBig = width > BREAKPOINT_LANDSCAPE;
+ const [theme] = useTheme();
+ const themeIsLight = theme === "light";
+ const screenIsBig = width > LG_BREAKPOINT;
return {screenIsBig ? : }
;
};
diff --git a/web/src/pages/NewTransaction/NavigationButtons/DepositPaymentButton.tsx b/web/src/pages/NewTransaction/NavigationButtons/DepositPaymentButton.tsx
index 65ae6e0b..d9369ed8 100644
--- a/web/src/pages/NewTransaction/NavigationButtons/DepositPaymentButton.tsx
+++ b/web/src/pages/NewTransaction/NavigationButtons/DepositPaymentButton.tsx
@@ -1,5 +1,4 @@
import React, { useEffect, useState, useMemo } from "react";
-import styled from "styled-components";
import { Button } from "@kleros/ui-components-library";
import {
useWriteEscrowUniversalCreateNativeTransaction,
@@ -27,30 +26,11 @@ import { wrapWithToast } from "utils/wrapWithToast";
import { ethAddressPattern } from "utils/validateAddress";
import { useQueryRefetch } from "hooks/useQueryRefetch";
import { useNavigateAndScrollTop } from "hooks/useNavigateAndScrollTop";
-import ClosedCircleIcon from "components/StyledIcons/ClosedCircleIcon";
-
-const StyledButton = styled(Button)``;
-
-export const ErrorButtonMessage = styled.div`
- display: flex;
- align-items: center;
- gap: 4px;
- justify-content: center;
- margin: 12px;
- color: ${({ theme }) => theme.error};
- font-size: 14px;
-`;
+import ClosedCircle from "svgs/icons/close-circle.svg";
const DepositPaymentButton: React.FC = () => {
- const {
- transactionUri,
- sendingQuantity,
- buyerAddress,
- sellerAddress,
- deadline,
- sendingToken,
- resetContext,
- } = useNewTransactionContext();
+ const { transactionUri, sendingQuantity, buyerAddress, sellerAddress, deadline, sendingToken, resetContext } =
+ useNewTransactionContext();
const publicClient = usePublicClient();
const navigateAndScrollTop = useNavigateAndScrollTop();
@@ -63,13 +43,13 @@ const DepositPaymentButton: React.FC = () => {
const finalBuyerAddress = buyerEnsResult.data || buyerAddress;
const finalSellerAddress = sellerEnsResult.data || sellerAddress;
- const deliveryDeadlineTimestamp = useMemo(
- () => BigInt(Math.floor(new Date(deadline).getTime() / 1000)),
- [deadline]
- );
+ const deliveryDeadlineTimestamp = useMemo(() => BigInt(Math.floor(new Date(deadline).getTime() / 1000)), [deadline]);
const bufferSec = useMemo(() => BigInt(pickBufferFor(Math.floor(Date.now() / 1000))), []);
- const disputeDeadlineTimestamp = useMemo(() => deliveryDeadlineTimestamp + bufferSec, [deliveryDeadlineTimestamp, bufferSec]);
+ const disputeDeadlineTimestamp = useMemo(
+ () => deliveryDeadlineTimestamp + bufferSec,
+ [deliveryDeadlineTimestamp, bufferSec]
+ );
const isNativeTransaction = sendingToken?.address === "native";
const transactionValue = useMemo(
() => (isNativeTransaction ? parseEther(sendingQuantity) : parseUnits(sendingQuantity, 18)),
@@ -119,10 +99,11 @@ const DepositPaymentButton: React.FC = () => {
isError: isErrorNativeConfig,
} = useSimulateEscrowUniversalCreateNativeTransaction({
query: {
- enabled: isNativeTransaction &&
- ethAddressPattern.test(finalBuyerAddress) &&
- ethAddressPattern.test(finalSellerAddress) &&
- !insufficientBalance,
+ enabled:
+ isNativeTransaction &&
+ ethAddressPattern.test(finalBuyerAddress) &&
+ ethAddressPattern.test(finalSellerAddress) &&
+ !insufficientBalance,
},
args: [disputeDeadlineTimestamp, transactionUri, finalBuyerAddress, finalSellerAddress],
value: transactionValue,
@@ -210,9 +191,9 @@ const DepositPaymentButton: React.FC = () => {
return (
-
{
isErrorERC20Config
}
text={isNativeTransaction || isApproved ? "Deposit the Payment" : "Approve Token"}
- onClick={isNativeTransaction || isApproved ? handleCreateTransaction : handleApproveToken}
+ onPress={isNativeTransaction || isApproved ? handleCreateTransaction : handleApproveToken}
/>
{insufficientBalance && (
-
- Insufficient balance
-
+
+ Insufficient balance
+
)}
);
diff --git a/web/src/pages/NewTransaction/NavigationButtons/NextButton.tsx b/web/src/pages/NewTransaction/NavigationButtons/NextButton.tsx
index 382b6085..52ad308f 100644
--- a/web/src/pages/NewTransaction/NavigationButtons/NextButton.tsx
+++ b/web/src/pages/NewTransaction/NavigationButtons/NextButton.tsx
@@ -139,8 +139,8 @@ const NextButton: React.FC = ({ nextRoute }) => {
return (
);
diff --git a/web/src/pages/NewTransaction/NavigationButtons/PreviousButton.tsx b/web/src/pages/NewTransaction/NavigationButtons/PreviousButton.tsx
index ba1c3f1c..4168c43d 100644
--- a/web/src/pages/NewTransaction/NavigationButtons/PreviousButton.tsx
+++ b/web/src/pages/NewTransaction/NavigationButtons/PreviousButton.tsx
@@ -1,13 +1,7 @@
import React from "react";
-import styled from "styled-components";
import { Button } from "@kleros/ui-components-library";
import { useNavigate } from "react-router-dom";
import { isEmpty } from "src/utils";
-
-const StyledButton = styled(Button)<{ prevRoute: string }>`
- display: ${({ prevRoute }) => (isEmpty(prevRoute) ? "none" : "flex")};
-`;
-
interface IReturnButton {
prevRoute: string;
}
@@ -16,12 +10,12 @@ const ReturnButton: React.FC = ({ prevRoute }) => {
const navigate = useNavigate();
return (
- navigate(prevRoute)}
+ navigate(prevRoute)}
text="Return"
variant="secondary"
- >
+ />
);
};
diff --git a/web/src/pages/NewTransaction/NavigationButtons/index.tsx b/web/src/pages/NewTransaction/NavigationButtons/index.tsx
index 2959951a..b4383366 100644
--- a/web/src/pages/NewTransaction/NavigationButtons/index.tsx
+++ b/web/src/pages/NewTransaction/NavigationButtons/index.tsx
@@ -1,17 +1,8 @@
import React from "react";
-import styled from "styled-components";
import PreviousButton from "./PreviousButton";
import NextButton from "./NextButton";
import DepositPaymentButton from "./DepositPaymentButton";
-const Container = styled.div`
- display: flex;
- gap: 24px;
- margin-top: 24px;
- flex-wrap: wrap;
- justify-content: center;
-`;
-
interface NavigationButtonsProps {
prevRoute: string;
nextRoute?: string;
@@ -19,10 +10,14 @@ interface NavigationButtonsProps {
const NavigationButtons: React.FC = ({ prevRoute, nextRoute }) => {
return (
-
+
- {prevRoute === "/new-transaction/notifications" ?
:
}
-
+ {prevRoute === "/new-transaction/notifications" ? (
+
+ ) : (
+
+ )}
+
);
};
diff --git a/web/src/pages/NewTransaction/Preview/Header.tsx b/web/src/pages/NewTransaction/Preview/Header.tsx
deleted file mode 100644
index 3d250884..00000000
--- a/web/src/pages/NewTransaction/Preview/Header.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-
-const StyledHeader = styled.h1`
- margin: 0;
- color: ${({ theme }) => theme.secondaryPurple};
- font-weight: 400;
- margin-bottom: ${responsiveSize(20, 24)};
- margin-top: ${responsiveSize(4, 20)};
- font-size: ${responsiveSize(20, 24)};
-`;
-
-const Header: React.FC = () => {
- return Preview;
-};
-export default Header;
diff --git a/web/src/pages/NewTransaction/Preview/index.tsx b/web/src/pages/NewTransaction/Preview/index.tsx
index 9b33685e..2397b21a 100644
--- a/web/src/pages/NewTransaction/Preview/index.tsx
+++ b/web/src/pages/NewTransaction/Preview/index.tsx
@@ -1,18 +1,11 @@
import React from "react";
-import styled from "styled-components";
import { useEnsAddress } from "wagmi";
import { useNewTransactionContext } from "context/NewTransactionContext";
import PreviewCard from "components/PreviewCard";
-import Header from "./Header";
import NavigationButtons from "../NavigationButtons";
import { useNativeTokenSymbol } from "hooks/useNativeTokenSymbol";
import { ensDomainPattern } from "utils/validateAddress";
-
-const Container = styled.div`
- display: flex;
- align-items: center;
- flex-direction: column;
-`;
+import clsx from "clsx";
const Preview: React.FC = () => {
const {
@@ -44,8 +37,15 @@ const Preview: React.FC = () => {
const resolvedSellerAddress = sellerEnsResolvedAddress || sellerAddress;
return (
-
-
+
+
+ Preview
+
{
}}
/>
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Deadline/index.tsx b/web/src/pages/NewTransaction/Terms/Deadline/index.tsx
index d12f2bd1..d12a3852 100644
--- a/web/src/pages/NewTransaction/Terms/Deadline/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Deadline/index.tsx
@@ -1,31 +1,34 @@
import React from "react";
-import styled from "styled-components";
import Header from "pages/NewTransaction/Header";
import { Datepicker } from "@kleros/ui-components-library";
+import { DateValue, getLocalTimeZone, now, parseAbsoluteToLocal, parseZonedDateTime } from "@internationalized/date";
import NavigationButtons from "../../NavigationButtons";
import { useNewTransactionContext } from "context/NewTransactionContext";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
-
-const StyledDatepicker = styled(Datepicker)``;
-
const Deadline: React.FC = () => {
- const { setDeadline } = useNewTransactionContext();
+ const { deadline, setDeadline } = useNewTransactionContext();
+
+ const handleDateChange = (value: DateValue | null) => {
+ if (!value) {
+ setDeadline("");
+ return;
+ }
- const handleDateSelect = (date: Date) => {
- setDeadline(date);
+ const formattedDeadline = parseZonedDateTime(value.toString()).toDate().toISOString();
+ setDeadline(formattedDeadline);
};
return (
-
+
-
+
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Deliverable/index.tsx b/web/src/pages/NewTransaction/Terms/Deliverable/index.tsx
index 0111db06..a86688ca 100644
--- a/web/src/pages/NewTransaction/Terms/Deliverable/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Deliverable/index.tsx
@@ -1,11 +1,8 @@
import React from "react";
-import styled, { css } from "styled-components";
-import { landscapeStyle } from "styles/landscapeStyle";
import { errorToast } from "utils/wrapWithToast";
import { FileUploader } from "@kleros/ui-components-library";
import MarkdownEditor from "components/MarkdownEditor";
import { useNewTransactionContext } from "context/NewTransactionContext";
-import { responsiveSize } from "styles/responsiveSize";
import NavigationButtons from "../../NavigationButtons";
import TokenTransaction from "../Payment/TokenTransaction";
import Header from "pages/NewTransaction/Header";
@@ -13,39 +10,6 @@ import { Roles, useAtlasProvider } from "@kleros/kleros-app";
import { getFileUploaderMsg } from "src/utils";
import useIsDesktop from "hooks/useIsDesktop";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
-
-const MarkdownEditorContainer = styled.div`
- width 84vw;
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 699)};
- `
- )}
-`;
-
-const StyledFileUploader = styled(FileUploader)`
- width: 84vw;
- margin-top: 16px;
- margin-bottom: ${responsiveSize(130, 72)};
-
- small {
- white-space: pre-line;
- text-align: start;
- }
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 699)};
- `
- )}
-`;
-
const Deliverable: React.FC = () => {
const {
escrowType,
@@ -79,18 +43,19 @@ const Deliverable: React.FC = () => {
(getFileUploaderMsg(Roles.Policy, roleRestrictions) ?? "");
return (
-
+
{escrowType === "general" ? (
<>
-
+
-
-
+ {
setRecipientAddress={setBuyerAddress}
/>
)}
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Notifications/EmailField.tsx b/web/src/pages/NewTransaction/Terms/Notifications/EmailField.tsx
index 7e901fd5..85b5e3f6 100644
--- a/web/src/pages/NewTransaction/Terms/Notifications/EmailField.tsx
+++ b/web/src/pages/NewTransaction/Terms/Notifications/EmailField.tsx
@@ -1,8 +1,5 @@
import React, { useEffect, useState } from "react";
-import { Field } from "@kleros/ui-components-library";
-import { landscapeStyle } from "styles/landscapeStyle";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
+import { TextField } from "@kleros/ui-components-library";
import { useNewTransactionContext } from "context/NewTransactionContext";
import { EMAIL_REGEX } from "src/consts";
import { isEmpty, isUndefined } from "src/utils";
@@ -10,29 +7,6 @@ import { useAtlasProvider } from "@kleros/kleros-app";
import InfoCard from "components/InfoCard";
import { timeLeftUntil } from "utils/date";
-const StyledField = styled(Field)`
- width: 84vw;
- margin-bottom: 48px;
-
- input {
- font-size: 16px;
- }
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 476)};
- `
- )}
-`;
-
-const StyledInfoCard = styled(InfoCard)`
- width: fit-content;
- font-size: 14px;
- margin-bottom: 12px;
- word-wrap: break-word;
- align-self: flex-start;
-`;
-
const EmailField: React.FC = () => {
const { notificationEmail, setNotificationEmail } = useNewTransactionContext();
const [isEmailValid, setIsEmailValid] = useState(true);
@@ -48,8 +22,7 @@ const EmailField: React.FC = () => {
setNotificationEmail(user.email ?? "");
}, [user]);
- const handleWrite = (event: React.ChangeEvent) => {
- const input = event.target.value;
+ const handleWrite = (input: string) => {
setNotificationEmail(input);
setIsEmailValid(isEmpty(input) || EMAIL_REGEX.test(input));
};
@@ -64,16 +37,21 @@ const EmailField: React.FC = () => {
return (
<>
{!isEmailUpdateable ? (
-
+
) : null}
-
>
);
diff --git a/web/src/pages/NewTransaction/Terms/Notifications/index.tsx b/web/src/pages/NewTransaction/Terms/Notifications/index.tsx
index 7c351036..21756231 100644
--- a/web/src/pages/NewTransaction/Terms/Notifications/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Notifications/index.tsx
@@ -1,22 +1,15 @@
import React from "react";
-import styled from "styled-components";
import Header from "pages/NewTransaction/Header";
import EmailField from "./EmailField";
import NavigationButtons from "../../NavigationButtons";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
-
const Notifications: React.FC = () => {
return (
-
+
-
+
);
};
export default Notifications;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/BuyerAddress.tsx b/web/src/pages/NewTransaction/Terms/Payment/BuyerAddress.tsx
index 751b7a75..0e0a9cc0 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/BuyerAddress.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/BuyerAddress.tsx
@@ -1,79 +1,12 @@
import React, { useState, useEffect, useMemo } from "react";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-import { landscapeStyle } from "styles/landscapeStyle";
-import { Field } from "@kleros/ui-components-library";
+import { TextField } from "@kleros/ui-components-library";
import { useAccount, useEnsAddress, useEnsName } from "wagmi";
import { useDebounce } from "react-use";
import { useNewTransactionContext } from "context/NewTransactionContext";
import { ensDomainPattern, validateAddress } from "utils/validateAddress";
-import { isEmpty } from "src/utils";
+import { cn, isEmpty } from "src/utils";
import SimpleToggleButton from "components/SimpleToggleButton";
-const Container = styled.div`
- margin: 12px 0;
-`;
-
-const InfoRow = styled.div`
- display: flex;
- align-items: baseline;
- justify-content: center;
- margin-bottom: 8px;
- gap: 8px;
-`;
-
-const SimpleToggleButtonContainer = styled.div`
- margin-bottom: 8px;
-`;
-
-const StyledField = styled(Field)`
- margin-bottom: ${responsiveSize(68, 40)};
-
- small {
- margin-top: 6px;
- svg {
- margin-top: 8px;
- }
- }
-
- input {
- font-size: 16px;
- }
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 574)};
- `
- )};
-`;
-
-const FromConnectedAddress = styled.div`
- display: flex;
- align-items: center;
- gap: 6px;
-`
-
-const Collapse = styled.div<{ $open: boolean; }>`
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- max-height: ${({ $open }) => ($open ? "160px" : "0")};
- opacity: ${({ $open }) => ($open ? 1 : 0)};
- overflow: hidden;
- transition: max-height 0.5s, opacity 0.5s ease;
-`;
-
-const SecondaryLabel = styled.label`
- color: ${({ theme }) => theme.secondaryText};
- font-size: 12px;
-`;
-
-const PrimaryLabel = styled.label`
- color: ${({ theme }) => theme.primaryText};
- font-size: 12px;
-`;
-
const BuyerAddress: React.FC = () => {
const { address: walletAddress } = useAccount();
const { data: ensName } = useEnsName({
@@ -81,13 +14,8 @@ const BuyerAddress: React.FC = () => {
chainId: 1,
});
- const {
- buyerAddress,
- setBuyerAddress,
- isBuyerAddressCustom,
- setIsBuyerAddressCustom,
- setIsBuyerAddressResolved,
- } = useNewTransactionContext();
+ const { buyerAddress, setBuyerAddress, isBuyerAddressCustom, setIsBuyerAddressCustom, setIsBuyerAddressResolved } =
+ useNewTransactionContext();
const displayAddress = useMemo(() => {
if (ensName) return ensName;
@@ -120,10 +48,6 @@ const BuyerAddress: React.FC = () => {
}
}, [debouncedAddress, ensResult.data, isBuyerAddressCustom, setIsBuyerAddressResolved]);
- const handleWrite = (e: React.ChangeEvent) => {
- setBuyerAddress(e.target.value);
- };
-
const message = useMemo(() => {
if (!isBuyerAddressCustom) return "";
if (isEmpty(debouncedAddress) || isValid) {
@@ -138,13 +62,13 @@ const BuyerAddress: React.FC = () => {
}, [debouncedAddress, isValid, isBuyerAddressCustom]);
return (
-
+
{!isBuyerAddressCustom && (
-
-
- from:
- {displayAddress}
-
+
+
+
+
+
{
setIsValid(true);
}}
/>
-
+
)}
-
-
+
+
{
setIsBuyerAddressResolved(true);
}}
/>
-
-
+ setBuyerAddress(value)}
placeholder="eg. 0x123ABC... or john.eth"
variant={variant}
message={message}
- maxLength={42}
/>
-
-
+
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/DestinationAddress.tsx b/web/src/pages/NewTransaction/Terms/Payment/DestinationAddress.tsx
index 45ee358a..0a3134e1 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/DestinationAddress.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/DestinationAddress.tsx
@@ -1,35 +1,11 @@
import React, { useState, useEffect, useMemo } from "react";
-import styled, { css } from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
-import { landscapeStyle } from "styles/landscapeStyle";
-import { Field } from "@kleros/ui-components-library";
+import { TextField } from "@kleros/ui-components-library";
import { useDebounce } from "react-use";
import { useEnsAddress } from "wagmi";
import { useNewTransactionContext } from "context/NewTransactionContext";
import { ensDomainPattern, validateAddress } from "utils/validateAddress";
import { isEmpty } from "src/utils";
-const StyledField = styled(Field)`
- margin-bottom: ${responsiveSize(68, 40)};
-
- small {
- margin-top: 6px;
- svg {
- margin-top: 8px;
- }
- }
-
- input {
- font-size: 16px;
- }
-
- ${landscapeStyle(
- () => css`
- width: ${responsiveSize(342, 574)};
- `
- )}
-`;
-
interface IDestinationAddress {
recipientAddress: string;
setRecipientAddress: (value: string) => void;
@@ -54,11 +30,6 @@ const DestinationAddress: React.FC = ({ recipientAddress, s
}
}, [debouncedRecipientAddress, ensResult.data, setIsRecipientAddressResolved]);
- const handleWrite = (event: React.ChangeEvent) => {
- const input = event.target.value;
- setRecipientAddress(input);
- };
-
const message = useMemo(() => {
if (isEmpty(debouncedRecipientAddress) || isValid) {
return "The ETH address or ENS of the person/entity that will receive the funds.";
@@ -74,14 +45,14 @@ const DestinationAddress: React.FC = ({ recipientAddress, s
}, [debouncedRecipientAddress, isValid]);
return (
- setRecipientAddress(value)}
placeholder="eg. 0x123ABC... or john.eth"
variant={variant}
message={message}
- maxLength={42}
/>
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/AmountField.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/AmountField.tsx
deleted file mode 100644
index 99b63f1d..00000000
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/AmountField.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-import { Field } from "@kleros/ui-components-library";
-
-const StyledField = styled(Field)`
- width: 186px;
- input[type="number"]::-webkit-inner-spin-button,
- input[type="number"]::-webkit-outer-spin-button {
- -webkit-appearance: none;
- appearance: none;
- }
- input[type="number"] {
- -moz-appearance: textfield;
- }
-
- input {
- font-size: 16px;
- padding-right: ${({ variant }) => (variant ? "40px" : "16px")};
- }
-`;
-
-interface IAmountField {
- quantity: string;
- setQuantity: (value: string) => void;
- error: string;
-}
-
-const AmountField: React.FC = ({ quantity, setQuantity, error }) => {
- const handleWrite = (event: React.ChangeEvent) => {
- setQuantity(event.target.value);
- };
-
- return (
-
- );
-};
-
-export default AmountField;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/MaxBalance.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/MaxBalance.tsx
index 660c815d..585b698c 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/MaxBalance.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/MaxBalance.tsx
@@ -1,74 +1,38 @@
import React from "react";
-import { landscapeStyle } from "styles/landscapeStyle";
-import { hoverShortTransitionTiming } from "styles/commonStyles";
-import styled, { css } from "styled-components";
import Skeleton from "react-loading-skeleton";
import { isUndefined } from "utils/index";
-
-const Container = styled.div`
- display: flex;
- flex-direction: row;
- align-self: center;
- gap: 4px;
-
- ${landscapeStyle(
- () => css`
- align-self: flex-end;
- `
- )}
-`;
-
-const LabelAndBalance = styled.div`
- display: flex;
- flex-direction: row;
- gap: 4px;
-`;
-
-const Label = styled.p`
- margin: 0;
- color: ${({ theme }) => theme.secondaryText};
- font-size: 12px;
-`;
-
-const Balance = styled.p`
- margin: 0;
- font-size: 12px;
-`;
-
-const BalanceSkeleton = styled(Skeleton)`
- width: 63px;
- height: 16px;
-`;
-
-const MaxButton = styled.p`
- ${hoverShortTransitionTiming}
- margin: 0;
- color: ${({ theme }) => theme.primaryBlue};
- font-size: 12px;
- cursor: pointer;
-
- :hover {
- color: ${({ theme }) => theme.secondaryBlue};
- }
-`;
+import clsx from "clsx";
interface IMaxBalance {
- formattedBalance: string;
+ formattedBalance?: string;
rawBalance: number;
setQuantity: (value: string) => void;
}
const MaxBalance: React.FC = ({ formattedBalance, rawBalance, setQuantity }) => {
return (
-
-
-
- {isUndefined(formattedBalance) ? : {formattedBalance}}
-
+
+
+
Balance:
+ {isUndefined(formattedBalance) ? (
+
+ ) : (
+
{formattedBalance}
+ )}
+
{!isUndefined(formattedBalance) ? (
-
setQuantity(String(rawBalance))}>Max
+
setQuantity(String(rawBalance))}
+ >
+ Max
+
) : null}
-
+
);
};
export default MaxBalance;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/DropdownButton.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/DropdownButton.tsx
index 484340a4..52501430 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/DropdownButton.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/DropdownButton.tsx
@@ -1,64 +1,30 @@
import React from "react";
-import styled from "styled-components";
-import { hoverShortTransitionTiming } from "styles/commonStyles";
import Skeleton from "react-loading-skeleton";
import TokenIcon from "./TokenItem/TokenIcon";
-
-const Container = styled.div`
- ${hoverShortTransitionTiming}
- border: 1px solid ${({ theme }) => theme.stroke};
- border-radius: 3px;
- width: 186px;
- height: 45px;
- position: relative;
- padding: 9.5px 14px;
- cursor: pointer;
- background: ${({ theme }) => theme.whiteBackground};
- color: ${({ theme }) => theme.primaryText};
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- :hover {
- background-color: ${({ theme }) => theme.lightGrey};
- }
-`;
-
-const DropdownArrow = styled.span`
- border: solid ${({ theme }) => theme.stroke};
- border-width: 0 1px 1px 0;
- display: inline-block;
- padding: 3px;
- transform: rotate(45deg);
- margin-left: 8px;
-`;
-
-const DropdownContent = styled.div`
- display: flex;
- align-items: center;
- gap: 8px;
-`;
-
-const LogoSkeleton = styled(Skeleton)`
- width: 24px;
- height: 24px;
- border-radius: 50%;
- margin-bottom: 2px;
-`;
-
-const SymbolSkeleton = styled(Skeleton)`
- width: 40px;
- height: 16px;
-`;
+import clsx from "clsx";
export const DropdownButton = ({ loading, sendingToken, onClick }) => {
return (
-
-
- {loading ? : }
- {loading ? : sendingToken?.symbol}
-
-
-
+
+
+ {loading ? (
+
+ ) : (
+
+ )}
+ {loading ? : sendingToken?.symbol}
+
+
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/Balance.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/Balance.tsx
index f317b142..3c9dc2f9 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/Balance.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/Balance.tsx
@@ -1,5 +1,4 @@
import React, { useMemo } from "react";
-import styled from "styled-components";
import Skeleton from "react-loading-skeleton";
import { useAccount, useBalance, useReadContract } from "wagmi";
import { IToken } from "context/NewTransactionContext";
@@ -7,16 +6,6 @@ import { isUndefined } from "utils/index";
import { getFormattedBalance } from "utils/getFormattedBalance";
import { erc20Abi } from "viem";
-const Container = styled.p`
- color: ${({ theme }) => theme.primaryText};
- margin: 0;
-`;
-
-const StyledAmountSkeleton = styled(Skeleton)`
- width: 52px;
- height: 20px;
-`;
-
interface IBalance {
token: IToken;
}
@@ -44,10 +33,10 @@ const Balance: React.FC = ({ token }) => {
}, [isNativeTransaction, nativeBalance, tokenBalance, token]);
return (
-
- {isUndefined(formattedBalance) ? : null}
+
+ {isUndefined(formattedBalance) ? : null}
{!isUndefined(formattedBalance) && formattedBalance !== "0" ? formattedBalance : null}
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/TokenIcon.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/TokenIcon.tsx
index a162323b..5519c01c 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/TokenIcon.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/TokenIcon.tsx
@@ -1,5 +1,4 @@
import React from "react";
-import styled from "styled-components";
import ArbIcon from "svgs/icons/tokens/arb.svg";
import DaiIcon from "svgs/icons/tokens/dai.svg";
import EthIcon from "svgs/icons/tokens/eth.svg";
@@ -12,19 +11,6 @@ import UsdtIcon from "svgs/icons/tokens/usdt.svg";
import WethIcon from "svgs/icons/tokens/weth.svg";
import UnknownTokenIcon from "svgs/icons/tokens/unknown.svg";
-export const TokenLogoImg = styled.img`
- width: 24px;
- height: 24px;
-`;
-
-export const StyledUnknownTokenIcon = styled(UnknownTokenIcon)`
- width: 24px;
- height: 24px;
- circle {
- fill: ${({ theme }) => theme.stroke};
- }
-`;
-
const tokenIcons = {
arb: ArbIcon,
dai: DaiIcon,
@@ -48,9 +34,9 @@ const TokenIcon = ({ symbol, logo }) => {
if (TokenLogoComponent) {
return ;
} else if (logo) {
- return ;
+ return
;
} else {
- return ;
+ return ;
}
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/index.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/index.tsx
index da3c95fd..154b4c28 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenItem/index.tsx
@@ -1,45 +1,27 @@
import React from "react";
-import styled from "styled-components";
-import { hoverShortTransitionTiming } from "styles/commonStyles";
import Balance from "./Balance";
import TokenIcon from "./TokenIcon";
-
-const Container = styled.div<{ selected: boolean }>`
- ${hoverShortTransitionTiming}
- display: flex;
- align-items: center;
- padding: 10px 16px;
- cursor: pointer;
- justify-content: space-between;
- background: ${({ theme, selected }) => (selected ? theme.mediumBlue : "transparent")};
- border-left: ${({ theme, selected }) => (selected ? `3px solid ${theme.primaryBlue}` : "none")};
- padding-left: ${({ selected }) => (selected ? "13px" : "16px")};
-
- &:hover {
- background: ${({ theme }) => theme.lightBlue};
- }
-`;
-
-const LogoAndLabel = styled.div`
- display: flex;
- flex-direction: row;
- align-items: center;
- gap: 8px;
-`;
-
-const TokenLabel = styled.span`
- color: ${({ theme }) => theme.primaryText};
-`;
+import { cn } from "src/utils";
const TokenItem = ({ token, selected, onSelect }) => {
return (
- onSelect(token)}>
-
+ onSelect(token)}
+ >
+
- {token.symbol}
-
+ {token.symbol}
+
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenListModal.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenListModal.tsx
index 7919d220..8f42ad9e 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenListModal.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/TokenListModal.tsx
@@ -1,46 +1,11 @@
import React, { useRef, useState } from "react";
-import styled, { css } from "styled-components";
import { useClickAway } from "react-use";
import { Searchbar } from "@kleros/ui-components-library";
import { useNewTransactionContext } from "context/NewTransactionContext";
import { Overlay } from "components/Overlay";
import TokenItem from "./TokenItem";
-import { StyledModal } from "pages/MyTransactions/Modal/StyledModal";
+import StyledModal from "pages/MyTransactions/Modal/StyledModal";
import { useFilteredTokens } from "hooks/useFilteredTokens";
-import { landscapeStyle } from "styles/landscapeStyle";
-import { responsiveSize } from "styles/responsiveSize";
-
-const ReStyledModal = styled(StyledModal)`
- display: flex;
- width: ${responsiveSize(320, 500)};
- ${landscapeStyle(
- () => css`
- width: 500px;
- `
- )}
-`;
-
-const StyledSearchbar = styled(Searchbar)`
- width: 100%;
- input {
- font-size: 16px;
- }
-`;
-
-const ItemsContainer = styled.div`
- display: flex;
- width: 100%;
- flex-direction: column;
- margin-top: 24px;
-`;
-
-const StyledP = styled.p`
- display: flex;
- align-self: flex-start;
- font-weight: 600;
- margin: 0;
- margin-bottom: 28px;
-`;
export const TokenListModal = ({ setIsOpen, tokens, setTokens, handleSelectToken }) => {
const [searchQuery, setSearchQuery] = useState("");
@@ -51,14 +16,16 @@ export const TokenListModal = ({ setIsOpen, tokens, setTokens, handleSelectToken
return (
-
- Select a token
-
+ Select a token
+ setSearchQuery(e.target.value)}
+ onChange={(value) => setSearchQuery(value)}
/>
-
+
{filteredTokens.map((token) => (
))}
-
-
+
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/index.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/index.tsx
index 630fa55d..b8fb3057 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/TokenSelector/index.tsx
@@ -1,5 +1,4 @@
import React, { useState, useEffect, useRef, useMemo } from "react";
-import styled from "styled-components";
import { useClickAway } from "react-use";
import { Alchemy } from "alchemy-sdk";
import { useAccount } from "wagmi";
@@ -10,13 +9,6 @@ import { useLocalStorage } from "hooks/useLocalStorage";
import { DropdownButton } from "./DropdownButton";
import { TokenListModal } from "./TokenListModal";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- gap: 8px;
- position: relative;
-`;
-
const TokenSelector: React.FC = () => {
const { address, chain } = useAccount();
const { sendingToken, setSendingToken } = useNewTransactionContext();
@@ -41,7 +33,9 @@ const TokenSelector: React.FC = () => {
const nativeToken = tokens.find((token) => token.address === "native");
setSendingToken(JSON.parse(localStorage.getItem("selectedToken")) || nativeToken);
}
- }, [tokens, setSendingToken]);
+
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [tokens]);
const handleSelectToken = (token) => {
setSendingToken(token);
@@ -50,10 +44,10 @@ const TokenSelector: React.FC = () => {
};
return (
-
+
setIsOpen(!isOpen)} />
{isOpen && }
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/index.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/index.tsx
index 242bb3e1..6805d918 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/TokenAndAmount/index.tsx
@@ -1,30 +1,13 @@
import React, { useMemo, useState, useEffect } from "react";
-import styled from "styled-components";
-import { responsiveSize } from "styles/responsiveSize";
import { useAccount, useReadContract, useBalance } from "wagmi";
import { useNewTransactionContext } from "context/NewTransactionContext";
import { getFormattedBalance } from "utils/getFormattedBalance";
import { erc20Abi } from "viem";
import { formatUnits } from "viem";
-import AmountField from "./AmountField";
import TokenSelector from "./TokenSelector";
import MaxBalance from "./MaxBalance";
import { isUndefined } from "utils/index";
-
-const Container = styled.div`
- display: flex;
- flex-direction: row;
- justify-content: center;
- gap: 24px;
- margin-bottom: ${responsiveSize(16, 0)};
- flex-wrap: wrap;
-`;
-
-const TokenSelectorAndMaxBalance = styled.div`
- display: flex;
- flex-direction: column;
- gap: 4px;
-`;
+import { BigNumberField } from "@kleros/ui-components-library";
interface ITokenAndAmount {
quantity: string;
@@ -34,7 +17,7 @@ interface ITokenAndAmount {
const TokenAndAmount: React.FC = ({ quantity, setQuantity }) => {
const { address } = useAccount();
const { sendingToken, setHasSufficientNativeBalance } = useNewTransactionContext();
-
+
const isNativeTransaction = sendingToken?.address === "native";
const { data: nativeBalance } = useBalance({
@@ -88,13 +71,23 @@ const TokenAndAmount: React.FC = ({ quantity, setQuantity }) =>
}, [sendingToken, isNativeTransaction, nativeBalance, tokenBalance]);
return (
-
-
-
+
+
setQuantity(value.toString())}
+ placeholder="Amount"
+ variant={error ? "error" : undefined}
+ message={error}
+ showFieldError
+ minValue="0"
+ />
+
-
-
+
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/index.tsx b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/index.tsx
index faaec5f5..977a74a3 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/GeneralTransaction/index.tsx
@@ -1,5 +1,4 @@
import React from "react";
-import styled from "styled-components";
import Header from "pages/NewTransaction/Header";
import NavigationButtons from "../../../NavigationButtons";
import DestinationAddress from "../DestinationAddress";
@@ -8,29 +7,18 @@ import TokenAndAmount from "./TokenAndAmount";
import BuyerAddress from "../BuyerAddress";
import { useNewTransactionContext } from "context/NewTransactionContext";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
-
const GeneralTransaction: React.FC = () => {
- const {
- sendingQuantity,
- setSendingQuantity,
- sellerAddress,
- setSellerAddress,
- } = useNewTransactionContext();
+ const { sendingQuantity, setSendingQuantity, sellerAddress, setSellerAddress } = useNewTransactionContext();
return (
-
+
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Terms/Payment/ToDivider.tsx b/web/src/pages/NewTransaction/Terms/Payment/ToDivider.tsx
index ee488a62..939f488b 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/ToDivider.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/ToDivider.tsx
@@ -1,11 +1,6 @@
import React from "react";
-import styled from "styled-components";
-
-const Container = styled.h1`
- margin-bottom: 26px;
-`;
const ToDivider: React.FC = () => {
- return to;
+ return to
;
};
export default ToDivider;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/AmountField.tsx b/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/AmountField.tsx
deleted file mode 100644
index 37c96bb1..00000000
--- a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/AmountField.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import { Field } from "@kleros/ui-components-library";
-
-interface IAmount {
- quantity: string;
- setQuantity: (value: string) => void;
-}
-
-const Amount: React.FC = ({ quantity, setQuantity }) => {
- const handleWrite = (event: React.ChangeEvent) => {
- setQuantity(event.target.value);
- };
-
- return ;
-};
-export default Amount;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/Token.tsx b/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/Token.tsx
deleted file mode 100644
index 27b5fed7..00000000
--- a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/Token.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import React from "react";
-import { DropdownSelect } from "@kleros/ui-components-library";
-import styled from "styled-components";
-
-const StyledDropdownSelect = styled(DropdownSelect)`
- button {
- height: 45px;
- }
-`;
-
-interface IToken {
- token: string;
- setToken: (value: string) => void;
-}
-
-const Token: React.FC = ({ token, setToken }) => {
- const handleTokenChange = (value: string | number) => {
- setToken(value.toString());
- };
-
- return (
-
- );
-};
-
-export default Token;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/index.tsx b/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/index.tsx
index f259dd05..e2005ca7 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/TokenAndAmount/index.tsx
@@ -1,23 +1,5 @@
import React from "react";
-import styled, { css } from "styled-components";
-import { landscapeStyle } from "styles/landscapeStyle";
-import { responsiveSize } from "styles/responsiveSize";
-import AmountField from "./AmountField";
-import Token from "./Token";
-
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- gap: 24px;
- align-items: center;
- margin-bottom: ${responsiveSize(24, 18)};
-
- ${landscapeStyle(
- () => css`
- flex-direction: row;
- `
- )}
-`;
+import { DropdownSelect, BigNumberField } from "@kleros/ui-components-library";
interface ITokenAndAmount {
quantity: string;
@@ -28,10 +10,23 @@ interface ITokenAndAmount {
const TokenAndAmount: React.FC = ({ quantity, setQuantity, token, setToken }) => {
return (
-
-
-
-
+
+ setQuantity(value.toString())}
+ />
+ setToken(value.itemValue)}
+ />
+
);
};
export default TokenAndAmount;
diff --git a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/index.tsx b/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/index.tsx
index 39a37dd4..dcb9a1cd 100644
--- a/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/index.tsx
+++ b/web/src/pages/NewTransaction/Terms/Payment/TokenTransaction/index.tsx
@@ -1,17 +1,10 @@
import React from "react";
-import styled from "styled-components";
import Header from "pages/NewTransaction/Header";
import NavigationButtons from "../../../NavigationButtons";
import DestinationAddress from "../DestinationAddress";
import ToDivider from "../ToDivider";
import TokenAndAmount from "./TokenAndAmount";
-const Container = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
-`;
-
interface ITokenTransaction {
headerText: string;
prevRoute: string;
@@ -36,13 +29,13 @@ const TokenTransaction: React.FC = ({
setRecipientAddress,
}) => {
return (
-
+
-
+
);
};
diff --git a/web/src/pages/NewTransaction/Timeline.tsx b/web/src/pages/NewTransaction/Timeline.tsx
index 2a09c03c..5458c306 100644
--- a/web/src/pages/NewTransaction/Timeline.tsx
+++ b/web/src/pages/NewTransaction/Timeline.tsx
@@ -1,22 +1,7 @@
import React from "react";
-import styled, { css } from "styled-components";
import { Steps } from "@kleros/ui-components-library";
-import { landscapeStyle } from "styles/landscapeStyle";
import { useLocation } from "react-router-dom";
-const StyledSteps = styled(Steps)`
- display: none;
-
- ${landscapeStyle(
- () => css`
- display: flex;
- position: absolute;
- left: 4%;
- height: 200px;
- `
- )}
-`;
-
const items = [
{ title: "Escrow Details", subitems: ["Type of Escrow", "Title"] },
{ title: "Terms", subitems: ["Deliverable", "Payment", "Deadline"] },
@@ -41,7 +26,7 @@ const Timeline: React.FC = () => {
0
);
- return ;
+ return ;
};
export default Timeline;
diff --git a/web/src/pages/NewTransaction/index.tsx b/web/src/pages/NewTransaction/index.tsx
index 6817a9d7..6dd75061 100644
--- a/web/src/pages/NewTransaction/index.tsx
+++ b/web/src/pages/NewTransaction/index.tsx
@@ -1,8 +1,6 @@
import React from "react";
import { Navigate, Route, Routes, useLocation } from "react-router-dom";
-import styled, { css } from "styled-components";
import { useWindowSize } from "react-use";
-import { BREAKPOINT_LANDSCAPE, MAX_WIDTH_LANDSCAPE, landscapeStyle } from "styles/landscapeStyle";
import Title from "./EscrowDetails/Title";
import TypeOfEscrow from "./EscrowDetails/TypeOfEscrow";
import HeroImage from "./HeroImage";
@@ -12,48 +10,34 @@ import Deliverable from "./Terms/Deliverable";
import Notifications from "./Terms/Notifications";
import Payment from "./Terms/Payment";
import Timeline from "./Timeline";
-import { responsiveSize } from "styles/responsiveSize";
import { useAccount } from "wagmi";
import ConnectWallet from "components/ConnectWallet";
-import { ConnectWalletContainer } from "../MyTransactions";
import { DEFAULT_CHAIN } from "consts/chains";
import { EnsureAuth } from "components/EnsureAuth";
-
-const Container = styled.div`
- width: 100%;
- background-color: ${({ theme }) => theme.lightBackground};
- padding: 24px 16px 40px;
- max-width: ${MAX_WIDTH_LANDSCAPE};
- margin: 0 auto;
-
- ${landscapeStyle(
- () => css`
- padding: 32px ${responsiveSize(0, 132)} 60px;
- `
- )}
-`;
-
-const MiddleContentContainer = styled.div`
- display: flex;
- justify-content: center;
-`;
+import clsx from "clsx";
+import { LG_BREAKPOINT } from "src/styles/breakpoints";
const NewTransaction: React.FC = () => {
const location = useLocation();
const { width } = useWindowSize();
const { isConnected, chain } = useAccount();
const isPreviewPage = location.pathname.includes("/preview");
- const isMobileView = width <= BREAKPOINT_LANDSCAPE;
+ const isMobileView = width <= LG_BREAKPOINT;
const isOnSupportedChain = chain?.id === DEFAULT_CHAIN;
return (
<>
{!isPreviewPage || isMobileView ? : null}
-
+
{isConnected && isOnSupportedChain && !isPreviewPage ?
: null}
{isConnected && isOnSupportedChain ? (
-
+
} />
} />
@@ -64,16 +48,15 @@ const NewTransaction: React.FC = () => {
} />
} />
-
+
) : (
-
+
To create a new escrow transaction, connect first and switch to the supported chain
-
-
+
)}
-
+
>
);
};
diff --git a/web/src/pages/Settings/EmailConfirmation/index.tsx b/web/src/pages/Settings/EmailConfirmation/index.tsx
index f6117cbf..f85e08dd 100644
--- a/web/src/pages/Settings/EmailConfirmation/index.tsx
+++ b/web/src/pages/Settings/EmailConfirmation/index.tsx
@@ -1,94 +1,36 @@
import React, { useEffect, useMemo, useState } from "react";
-import styled, { css } from "styled-components";
-
import { Link, useSearchParams } from "react-router-dom";
import { isAddress } from "viem";
-
import { Button } from "@kleros/ui-components-library";
-
import CheckIcon from "svgs/icons/check-circle-outline.svg";
import WarningIcon from "svgs/icons/warning-outline.svg";
import InvalidIcon from "svgs/icons/minus-circle.svg";
-
-import { landscapeStyle } from "styles/landscapeStyle";
-
import Loader from "components/Loader";
import { useAtlasProvider } from "@kleros/kleros-app";
+import { cn } from "src/utils";
+
+enum TextColor {
+ Primary,
+ Error,
+ Success,
+ Warning,
+}
+
+const textStyle = "text-center whitespace-pre-line lg:text-left";
+
+const textColorStyles: Record = {
+ [TextColor.Primary]: "text-klerosUIComponentsPrimaryText",
+ [TextColor.Error]: "text-klerosUIComponentsError",
+ [TextColor.Success]: "text-klerosUIComponentsSuccess",
+ [TextColor.Warning]: "text-klerosUIComponentsWarning",
+};
-const Container = styled.div`
- display: flex;
- width: 100%;
- gap: 48px 16px;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- margin-top: 80px;
- ${landscapeStyle(
- () => css`
- flex-direction: row;
- justify-content: space-between;
- `
- )}
-`;
-
-const InfoWrapper = styled.div`
- display: flex;
- flex-direction: column;
- gap: 32px;
- align-items: center;
- flex: 1;
- ${landscapeStyle(
- () => css`
- align-items: start;
- `
- )}
-`;
-
-const textCss = css`
- margin: 0;
- text-align: center;
- white-space: pre-line;
-
- ${landscapeStyle(
- () => css`
- text-align: left;
- `
- )}
-`;
-
-const Header = styled.h1<{ fontColor: string }>`
- ${textCss}
- ${({ fontColor }) => css`
- color: ${({ theme }) => theme[fontColor]};
- `};
-`;
-
-const Subtitle = styled.h3`
- ${textCss}
- max-width: 735px;
-`;
-
-const HeaderIconContainer = styled.div<{ iconColor: string }>`
- svg {
- width: 64px;
- height: 64px;
- ${({ iconColor }) => css`
- path {
- fill: ${({ theme }) => theme[iconColor]};
- }
- `}
- }
-`;
-
-const IconContainer = styled.div`
- svg {
- width: 250px;
- height: 250px;
- path {
- fill: ${({ theme }) => theme.whiteBackground};
- }
- }
-`;
+const iconColorStyles: Record = {
+ [TextColor.Primary]: "[&_path]:fill-klerosUIComponentsPrimaryText",
+ [TextColor.Error]: "[&_path]:fill-klerosUIComponentsError",
+ [TextColor.Success]: "[&_path]:fill-klerosUIComponentsSuccess",
+ [TextColor.Warning]: "[&_path]:fill-klerosUIComponentsWarning",
+};
const messageConfigs = {
invalid: {
@@ -97,7 +39,7 @@ const messageConfigs = {
buttonMsg: "Contact Support",
buttonTo: "https://t.me/kleros",
Icon: InvalidIcon,
- color: "primaryText",
+ color: TextColor.Primary,
},
error: {
headerMsg: "Something went wrong",
@@ -105,7 +47,7 @@ const messageConfigs = {
buttonMsg: "Contact Support",
buttonTo: "https://t.me/kleros",
Icon: WarningIcon,
- color: "error",
+ color: TextColor.Error,
},
confirmed: {
headerMsg: "Congratulations! \nYour email has been verified!",
@@ -114,7 +56,7 @@ const messageConfigs = {
buttonMsg: "Let's start!",
buttonTo: "/",
Icon: CheckIcon,
- color: "success",
+ color: TextColor.Success,
},
expired: {
headerMsg: "Verification link expired...",
@@ -123,7 +65,7 @@ const messageConfigs = {
buttonMsg: "Open Settings",
buttonTo: "/#notifications",
Icon: WarningIcon,
- color: "warning",
+ color: TextColor.Warning,
},
};
@@ -160,27 +102,31 @@ const EmailConfirmation: React.FC = () => {
}, [address, token, isError, isConfirmed, isTokenInvalid]);
return (
-
+
{isConfirming ? (
) : (
<>
-
-
-
-
-
- {subtitleMsg}
+
+
+
{headerMsg}
+
+ {subtitleMsg}
+
-
-
-
-
+
+
>
)}
-
+
);
};
diff --git a/web/src/pages/Settings/index.tsx b/web/src/pages/Settings/index.tsx
index 2128b1e6..208d82ca 100644
--- a/web/src/pages/Settings/index.tsx
+++ b/web/src/pages/Settings/index.tsx
@@ -1,28 +1,20 @@
import React from "react";
-import styled from "styled-components";
-
import { Route, Routes } from "react-router-dom";
-
-import { responsiveSize } from "styles/responsiveSize";
-import { MAX_WIDTH_LANDSCAPE } from "styles/landscapeStyle";
-
import EmailConfirmation from "./EmailConfirmation";
-
-const Container = styled.div`
- width: 100%;
- background-color: ${({ theme }) => theme.lightBackground};
- padding: ${responsiveSize(32, 80)} ${responsiveSize(24, 136)} ${responsiveSize(76, 96)};
- max-width: ${MAX_WIDTH_LANDSCAPE};
- margin: 0 auto;
-`;
+import clsx from "clsx";
const Settings: React.FC = () => {
return (
-
+
} />
-
+
);
};
diff --git a/web/src/styles/breakpoints.ts b/web/src/styles/breakpoints.ts
new file mode 100644
index 00000000..b81e4fa8
--- /dev/null
+++ b/web/src/styles/breakpoints.ts
@@ -0,0 +1 @@
+export const LG_BREAKPOINT = 900;
diff --git a/web/src/styles/commonStyles.ts b/web/src/styles/commonStyles.ts
deleted file mode 100644
index f6ef00ec..00000000
--- a/web/src/styles/commonStyles.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { css } from "styled-components";
-
-export const hoverShortTransitionTiming = css`
- transition: 0.1s;
-`;
-
-export const hoverLongTransitionTiming = css`
- transition: 0.2s;
-`;
diff --git a/web/src/styles/customScrollbar.ts b/web/src/styles/customScrollbar.ts
deleted file mode 100644
index eef4e583..00000000
--- a/web/src/styles/customScrollbar.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { css } from "styled-components";
-
-export const customScrollbar = css`
- ::-webkit-scrollbar {
- width: 6px;
- height: 6px;
- }
- ::-webkit-scrollbar-track {
- background: transparent;
- }
- ::-webkit-scrollbar-thumb {
- background-color: ${({ theme }) => theme.violetPurple};
- border-radius: 10px;
- transition: opacity 0.15s, background-color 0.15s, border-color 0.15s, width 0.15s;
- }
- ::-webkit-scrollbar-thumb:hover {
- background-color: ${({ theme }) => theme.secondaryPurple};
- }
- ::-webkit-scrollbar-thumb:active {
- background-color: ${({ theme }) => theme.lavenderPurple};
- }
-
- // firefox
- scrollbar-width: thin;
- scrollbar-color: ${({ theme }) => theme.violetPurple} transparent;
-`;
diff --git a/web/src/styles/global-style.ts b/web/src/styles/global-style.ts
deleted file mode 100644
index 8979c6bf..00000000
--- a/web/src/styles/global-style.ts
+++ /dev/null
@@ -1,129 +0,0 @@
-import { createGlobalStyle } from "styled-components";
-
-export const GlobalStyle = createGlobalStyle`
- :root {
- --toastify-color-info: ${({ theme }) => theme.primaryBlue};
- --toastify-color-success: ${({ theme }) => theme.success};
- --toastify-color-warning: ${({ theme }) => theme.warning};
- --toastify-color-error: ${({ theme }) => theme.error};
- }
-
- .react-loading-skeleton {
- z-index: 0;
- --base-color: ${({ theme }) => theme.skeletonBackground};
- --highlight-color: ${({ theme }) => theme.skeletonHighlight};
- }
-
- body {
- font-family: "Open Sans", sans-serif;
- margin: 0px;
- background-color: ${({ theme }) => theme.lightBlue}
- }
-
- html {
- box-sizing: border-box;
- }
-
- *, *:before, *:after {
- box-sizing: inherit;
- }
-
- *:focus {
- outline: none;
- }
-
- .ReactModal__Overlay {
- background-color: #1b003fcc !important;
- }
-
- h1 {
- margin: 0 0 16px 0;
- font-weight: 600;
- font-size: 24px;
- line-height: 32px;
- color: ${({ theme }) => theme.primaryText};
- }
-
- h2 {
- margin: 0 0 16px 0;
- font-weight: 400;
- font-size: 24px;
- line-height: 32px;
- color: ${({ theme }) => theme.primaryText};
- }
-
- h3 {
- margin: 0 0 16px 0;
- font-weight: 600;
- font-size: 16px;
- line-height: 24px;
- color: ${({ theme }) => theme.primaryText};
- }
-
- p {
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
- color: ${({ theme }) => theme.primaryText};
- }
-
- textarea {
- font-family: "Open Sans";
- font-size: 14px;
- }
-
- small {
- font-weight: 600;
- font-size: 14px;
- line-height: 18px;
- color: ${({ theme }) => theme.primaryText};
- }
-
- label {
- font-weight: 400;
- font-size: 14px;
- line-height: 18px;
- color: ${({ theme }) => theme.secondaryText};
- }
-
- a {
- font-weight: 400;
- font-size: 14px;
- text-decoration: none;
- color: ${({ theme }) => theme.primaryBlue};
- }
-
- hr {
- opacity: 1;
- border: 1px solid ${({ theme }) => theme.stroke};
- }
-
- svg, img {
- display: inline-block;
- vertical-align: middle;
- visibility: visible;
-
- }
-
- ul {
- li {
- color: ${({ theme }) => theme.primaryText};
- }
- }
-
- .os-theme-dark {
- --os-handle-bg: ${({ theme }) => theme.violetPurple};
- --os-handle-bg-hover: ${({ theme }) => theme.secondaryPurple};
- --os-handle-bg-active: ${({ theme }) => theme.lavenderPurple};
- }
-
- // @cyntler/react-doc-viewer injects a canvas to load pdf, this is alters the height of body tag, so set to hidden
- .hiddenCanvasElement{
- display: none;
- }
-
- [class*="Toastify__toast-container"] {
- top: unset;
- padding-top: 20px !important;
- }
-`;
diff --git a/web/src/styles/landscapeStyle.ts b/web/src/styles/landscapeStyle.ts
deleted file mode 100644
index ac781c11..00000000
--- a/web/src/styles/landscapeStyle.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { css, DefaultTheme, FlattenInterpolation, ThemeProps } from "styled-components";
-
-export const MAX_WIDTH_LANDSCAPE = "1400px";
-
-export const BREAKPOINT_LANDSCAPE = 900;
-
-export const landscapeStyle = (styleFn: () => FlattenInterpolation>) => css`
- @media (min-width: ${BREAKPOINT_LANDSCAPE}px) {
- ${() => styleFn()}
- }
-`;
diff --git a/web/src/styles/markdownRendererStyles.css b/web/src/styles/markdownRendererStyles.css
new file mode 100644
index 00000000..1ad319f2
--- /dev/null
+++ b/web/src/styles/markdownRendererStyles.css
@@ -0,0 +1,231 @@
+.markdown-renderer {
+ font-size: 16px;
+ line-height: 1.6;
+
+ a {
+ pointer-events: none;
+ cursor: pointer;
+ position: relative;
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: auto;
+ cursor: pointer;
+ }
+ }
+
+ pre {
+ background-color: var(--color-klerosUIComponentsLightBackground);
+ border-radius: 8px;
+ padding: 16px;
+ overflow-x: auto;
+ }
+
+ code {
+ background-color: var(--color-klerosUIComponentsLightBackground);
+ padding: 2px 4px;
+ border-radius: 4px;
+ font-family: "Fira Code", monospace;
+ }
+
+ pre code {
+ background-color: transparent;
+ padding: 0;
+ }
+
+ blockquote {
+ border-left: 4px solid var(--color-klerosUIComponentsPrimaryBlue);
+ margin: 16px 0;
+ padding-left: 16px;
+ color: var(--color-klerosUIComponentsSecondaryText);
+ }
+
+ .contains-task-list {
+ padding-left: 20px !important;
+ list-style-type: none !important;
+ }
+
+ ul,
+ ol {
+ padding-left: 40px;
+ list-style-type: disc;
+
+ li {
+ color: var(--color-klerosUIComponentsPrimaryText);
+ }
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ input[type="checkbox"] {
+ margin-right: 8px;
+ margin-top: 4px;
+ accent-color: var(--color-klerosUIComponentsPrimaryBlue);
+ cursor: default;
+ vertical-align: top;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ color: var(--color-klerosUIComponentsPrimaryText);
+ margin: 16px 0 8px 0;
+ line-height: 1.3;
+ }
+
+ h1 {
+ font-size: 2em;
+ font-weight: 700;
+ }
+
+ h2 {
+ font-size: 1.5em;
+ font-weight: 600;
+ }
+
+ h3 {
+ font-size: 1.25em;
+ font-weight: 600;
+ }
+
+ h4 {
+ font-size: 1.125em;
+ font-weight: 600;
+ }
+
+ h5 {
+ font-size: 1em;
+ font-weight: 600;
+ }
+
+ h6 {
+ font-size: 0.875em;
+ font-weight: 600;
+ }
+
+ pre {
+ color: var(--color-klerosUIComponentsPrimaryText);
+ }
+
+ pre code {
+ color: inherit;
+ }
+
+ code {
+ color: var(--color-klerosUIComponentsPrimaryText);
+ }
+
+ table {
+ border-collapse: collapse;
+ width: 100%;
+ margin: 16px 0;
+ border: 1px solid var(--color-klerosUIComponentsStroke);
+ }
+
+ th,
+ td {
+ border: 1px solid var(--color-klerosUIComponentsStroke);
+ padding: 8px 12px;
+ text-align: left;
+ }
+
+ th {
+ background-color: var(--color-klerosUIComponentsLightBackground);
+ color: var(--color-klerosUIComponentsPrimaryText);
+ font-weight: 600;
+ }
+
+ td {
+ color: var(--color-klerosUIComponentsPrimaryText);
+ }
+
+ tbody tr:nth-child(even) {
+ background-color: var(--color-klerosUIComponentsLightGrey);
+ }
+
+ details {
+ border: 1px solid var(--color-klerosUIComponentsStroke);
+ border-radius: 8px;
+ padding: 8px 12px;
+ margin: 16px 0;
+ background-color: var(--color-klerosUIComponentsLightBackground);
+ }
+
+ summary {
+ font-weight: 600;
+ cursor: pointer;
+ color: var(--color-klerosUIComponentsPrimaryText);
+ padding: 4px 0;
+ outline: none;
+ }
+
+ summary:hover {
+ color: var(--color-klerosUIComponentsPrimaryBlue);
+ }
+
+ details[open] summary {
+ margin-bottom: 8px;
+ border-bottom: 1px solid var(--color-klerosUIComponentsStroke);
+ padding-bottom: 8px;
+ }
+
+ u {
+ text-decoration: underline;
+ text-decoration-color: var(--color-klerosUIComponentsPrimaryText);
+ }
+
+ del,
+ s {
+ text-decoration: line-through;
+ text-decoration-color: var(--color-klerosUIComponentsSecondaryText);
+ }
+
+ mark {
+ background-color: var(--color-klerosUIComponentsWarning);
+ color: var(--color-klerosUIComponentsPrimaryText);
+ padding: 2px 4px;
+ border-radius: 2px;
+ }
+
+ sub,
+ sup {
+ font-size: 0.75em;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+ }
+
+ sup {
+ top: -0.5em;
+ }
+
+ sub {
+ bottom: -0.25em;
+ }
+
+ kbd {
+ background-color: var(--color-klerosUIComponentsLightBackground);
+ border: 1px solid var(--color-klerosUIComponentsStroke);
+ border-radius: 4px;
+ box-shadow: 0 1px 1px var(--color-klerosUIComponentsStroke);
+ color: var(--color-klerosUIComponentsPrimaryText);
+ font-family: "Fira Code", monospace;
+ font-size: 0.875em;
+ padding: 2px 6px;
+ }
+
+ abbr {
+ text-decoration: underline dotted;
+ cursor: help;
+ }
+}
diff --git a/web/src/styles/mdxEditorStyles.css b/web/src/styles/mdxEditorStyles.css
new file mode 100644
index 00000000..6837e240
--- /dev/null
+++ b/web/src/styles/mdxEditorStyles.css
@@ -0,0 +1,254 @@
+/* CodeMirror styles - Global (scoped to .cm-* classes) */
+.cm-editor {
+ background-color: var(--color-klerosUIComponentsLightBackground) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ border-radius: 6px !important;
+}
+
+.cm-content {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ font-family: "Fira Code", monospace !important;
+ font-size: 14px !important;
+ padding: 12px !important;
+}
+
+.cm-focused {
+ outline: none !important;
+}
+
+[class*="codeMirrorToolbar"] {
+ background-color: transparent !important;
+}
+
+[class*="cm-gutterElement"] {
+ color: var(--color-klerosUIComponentsSecondaryText) !important;
+}
+
+[class*="codeMirrorWrapper"] {
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ padding: 0 !important;
+}
+
+[class*="activeLineGutter"] {
+ background-color: transparent !important;
+}
+
+/* Global styles for all MDXEditor popups and overlays - These render in portals outside the component tree */
+[class*="linkDialogPopoverContent"],
+[class*="selectTrigger"],
+[class*="selectContent"],
+[class*="tableColumnEditorPopoverContent"],
+[class*="tablePopover"],
+[data-radix-popper-content-wrapper] [class*="linkDialog"],
+[data-radix-popper-content-wrapper] [class*="select"],
+[data-radix-popper-content-wrapper] [class*="table"],
+[data-radix-portal] [class*="linkDialog"],
+[data-radix-portal] [class*="select"],
+[data-radix-portal] [class*="table"],
+[data-radix-portal] div[class*="mdx"],
+[data-radix-popper-content-wrapper] div[class*="mdx"] {
+ background-color: var(--color-klerosUIComponentsWhiteBackground) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+
+ input,
+ select {
+ background-color: var(--color-klerosUIComponentsWhiteBackground) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+
+ &:hover {
+ background-color: var(--color-klerosUIComponentsLightGrey) !important;
+ }
+ }
+
+ button {
+ background-color: var(--color-klerosUIComponentsLightGrey) !important;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ cursor: pointer !important;
+ transition: background-color 0.2s ease !important;
+
+ &:hover {
+ background-color: var(--color-klerosUIComponentsLightBackground) !important;
+ }
+
+ &:active {
+ background-color: var(--color-klerosUIComponentsStroke) !important;
+ }
+ }
+
+ label,
+ span,
+ div {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+
+ svg,
+ path {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+}
+
+[class*="mdx"] button,
+[class*="mdx"] [role="button"],
+[class*="mdx"] [data-state] {
+ cursor: pointer !important;
+ transition: all 0.1s ease !important;
+ &:hover {
+ background-color: var(--color-klerosUIComponentsLightGrey) !important;
+ }
+}
+
+/* Nested styles - Scoped to .mdx-editor-wrapper container */
+.mdx-editor-wrapper {
+ .mdxeditor-toolbar {
+ display: flex !important;
+ flex-wrap: wrap;
+ background-color: var(--color-klerosUIComponentsLightGrey) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ border-radius: 3px;
+ font-family: "Open Sans", sans-serif;
+
+ button {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+
+ &:hover {
+ background-color: var(--color-klerosUIComponentsWhiteBackground) !important;
+ cursor: pointer !important;
+ }
+
+ &[data-state="on"],
+ &[aria-pressed="true"] {
+ background-color: var(--color-klerosUIComponentsWhiteBackground) !important;
+ }
+
+ &:disabled,
+ &[data-disabled="true"] {
+ opacity: 0.4 !important;
+ cursor: not-allowed !important;
+
+ svg {
+ color: var(--color-klerosUIComponentsSecondaryText) !important;
+ }
+ }
+
+ svg {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+ }
+ }
+
+ .mdxeditor-root-contenteditable {
+ background-color: var(--color-klerosUIComponentsWhiteBackground) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ border-radius: 3px;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ height: 220px;
+ overflow-y: auto;
+ overflow-x: hidden;
+ padding: 16px;
+ font-size: 16px;
+ line-height: 1.5;
+ transition: background-color 0.1s ease !important;
+
+ &:hover {
+ background-color: color-mix(in srgb, var(--color-klerosUIComponentsLightGrey) 63%, transparent) !important;
+ }
+
+ p {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ margin: 0 0 12px 0;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ font-weight: 600;
+ margin: 16px 0 8px 0;
+ }
+
+ blockquote {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ border-left: 3px solid var(--color-klerosUIComponentsMediumBlue) !important;
+ font-style: italic;
+ margin: 16px 0;
+ padding-left: 12px;
+ }
+
+ pre {
+ background-color: var(--color-klerosUIComponentsLightBackground) !important;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ border-radius: 6px !important;
+ padding: 12px !important;
+ margin: 12px 0 !important;
+ font-family: "Fira Code", monospace !important;
+ font-size: 14px !important;
+ }
+
+ a {
+ color: var(--color-klerosUIComponentsPrimaryBlue) !important;
+ }
+
+ span[class*="_code_"],
+ code {
+ background-color: var(--color-klerosUIComponentsLightBackground) !important;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ padding: 2px 6px !important;
+ border-radius: 4px !important;
+ font-size: 14px !important;
+ font-family: "Fira Code", monospace !important;
+ border: 1px solid var(--color-klerosUIComponentsStroke) !important;
+ }
+
+ th {
+ background-color: var(--color-klerosUIComponentsLightGrey) !important;
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+
+ td {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+
+ ul,
+ ol {
+ padding-left: 40px !important;
+ list-style-type: disc !important;
+
+ li {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+ }
+
+ ol {
+ list-style-type: decimal !important;
+ }
+ }
+
+ [class*="placeholder"] {
+ color: var(--color-klerosUIComponentsSecondaryText) !important;
+ opacity: 0.6 !important;
+ margin-top: 16px;
+ }
+
+ [class*="tableColumnEditorPopoverContent"],
+ [class*="addRowButton"],
+ [class*="addColumnButton"],
+ [class*="deleteRowButton"],
+ [class*="deleteColumnButton"],
+ [class*="tableEditor"],
+ [class*="tableToolbar"],
+ [class*="tablePopover"] {
+ background-color: var(--color-klerosUIComponentsWhiteBackground) !important;
+
+ svg,
+ path {
+ color: var(--color-klerosUIComponentsPrimaryText) !important;
+ }
+ }
+}
diff --git a/web/src/styles/mdxEditorTheme.ts b/web/src/styles/mdxEditorTheme.ts
deleted file mode 100644
index 3d2d309d..00000000
--- a/web/src/styles/mdxEditorTheme.ts
+++ /dev/null
@@ -1,256 +0,0 @@
-import styled, { createGlobalStyle, css } from "styled-components";
-
-const sharedContentStyles = css`
- .mdxeditor-root-contenteditable {
- transition: background-color 0.1s ease !important;
- :hover {
- background-color: ${({ theme }) => theme.lightGrey}A0 !important;
- }
- }
-
- .mdxeditor-root-contenteditable p {
- color: ${({ theme }) => theme.primaryText} !important;
- margin: 0 0 12px 0;
- }
-
- .mdxeditor-root-contenteditable h1,
- .mdxeditor-root-contenteditable h2,
- .mdxeditor-root-contenteditable h3,
- .mdxeditor-root-contenteditable h4,
- .mdxeditor-root-contenteditable h5,
- .mdxeditor-root-contenteditable h6 {
- color: ${({ theme }) => theme.primaryText} !important;
- font-weight: 600;
- margin: 16px 0 8px 0;
- }
-
- .mdxeditor-root-contenteditable blockquote {
- color: ${({ theme }) => theme.primaryText} !important;
- border-left: 3px solid ${({ theme }) => theme.mediumBlue} !important;
- font-style: italic;
- margin: 16px 0;
- padding-left: 12px;
- }
-
- .mdxeditor-root-contenteditable pre {
- background-color: ${({ theme }) => theme.lightBackground} !important;
- color: ${({ theme }) => theme.primaryText} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- border-radius: 6px !important;
- padding: 12px !important;
- margin: 12px 0 !important;
- font-family: "Fira Code", monospace !important;
- font-size: 14px !important;
- }
-
- .mdxeditor-root-contenteditable a {
- color: ${({ theme }) => theme.primaryBlue} !important;
- }
-
- .mdxeditor-root-contenteditable span[class*="_code_"],
- .mdxeditor-root-contenteditable code {
- background-color: ${({ theme }) => theme.lightBackground} !important;
- color: ${({ theme }) => theme.primaryText} !important;
- padding: 2px 6px !important;
- border-radius: 4px !important;
- font-size: 14px !important;
- font-family: "Fira Code", monospace !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- }
-
- .mdxeditor-root-contenteditable th {
- background-color: ${({ theme }) => theme.lightGrey} !important;
- color: ${({ theme }) => theme.primaryText} !important;
- }
-
- .mdxeditor-root-contenteditable td {
- color: ${({ theme }) => theme.primaryText} !important;
- }
-`;
-
-export const MDXEditorContainer = styled.div`
- width: 100%;
-
- .mdxeditor-toolbar {
- display: flex;
- flex-wrap: wrap;
- background-color: ${({ theme }) => theme.lightGrey} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- border-radius: 3px;
- font-family: "Open Sans", sans-serif;
- }
-
- .mdxeditor-toolbar button {
- color: ${({ theme }) => theme.primaryText} !important;
- }
-
- .mdxeditor-toolbar button:hover {
- background-color: ${({ theme }) => theme.whiteBackground} !important;
- cursor: pointer !important;
- }
-
- .mdxeditor-toolbar button[data-state="on"],
- .mdxeditor-toolbar button[aria-pressed="true"] {
- background-color: ${({ theme }) => theme.whiteBackground} !important;
- }
-
- .mdxeditor-toolbar button:disabled,
- .mdxeditor-toolbar button[data-disabled="true"] {
- opacity: 0.4 !important;
- cursor: not-allowed !important;
- }
-
- .mdxeditor-toolbar button svg {
- color: ${({ theme }) => theme.primaryText} !important;
- }
-
- .mdxeditor-toolbar button:disabled svg,
- .mdxeditor-toolbar button[data-disabled="true"] svg {
- color: ${({ theme }) => theme.secondaryText} !important;
- }
-
- .mdxeditor-root-contenteditable {
- background-color: ${({ theme }) => theme.whiteBackground} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- border-radius: 3px;
- color: ${({ theme }) => theme.primaryText} !important;
- height: 220px;
- overflow-y: auto;
- overflow-x: hidden;
- padding: 16px;
- font-size: 16px;
- line-height: 1.5;
- }
-
- [class*="placeholder"] {
- color: ${({ theme }) => theme.secondaryText} !important;
- opacity: 0.6 !important;
- margin-top: 16px;
- }
-
- ${sharedContentStyles}
-
- [class*="tableColumnEditorPopoverContent"],
- [class*="addRowButton"],
- [class*="addColumnButton"],
- [class*="deleteRowButton"],
- [class*="deleteColumnButton"],
- [class*="tableEditor"],
- [class*="tableToolbar"],
- [class*="tablePopover"] {
- background-color: ${({ theme }) => theme.whiteBackground} !important;
-
- svg,
- path {
- color: ${({ theme }) => theme.primaryText} !important;
- }
- }
-`;
-
-export const MDXEditorGlobalStyles = createGlobalStyle`
- .cm-editor {
- background-color: ${({ theme }) => theme.lightBackground} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- border-radius: 6px !important;
- }
-
- .cm-content {
- color: ${({ theme }) => theme.primaryText} !important;
- font-family: "Fira Code", monospace !important;
- font-size: 14px !important;
- padding: 12px !important;
- }
-
- .cm-focused {
- outline: none !important;
- }
-
- [class*="codeMirrorToolbar"] {
- background-color: transparent !important;
- }
-
- [class*="cm-gutterElement"] {
- color: ${({ theme }) => theme.secondaryText} !important;
- }
-
- [class*="codeMirrorWrapper"] {
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- padding: 0 !important;
- }
-
- [class*="activeLineGutter"] {
- background-color: transparent !important;
- }
-
- /* Global styles for all MDXEditor popups and overlays */
- [class*="linkDialogPopoverContent"],
- [class*="selectTrigger"],
- [class*="selectContent"],
- [class*="tableColumnEditorPopoverContent"],
- [class*="tablePopover"],
- [data-radix-popper-content-wrapper] [class*="linkDialog"],
- [data-radix-popper-content-wrapper] [class*="select"],
- [data-radix-popper-content-wrapper] [class*="table"],
- [data-radix-portal] [class*="linkDialog"],
- [data-radix-portal] [class*="select"],
- [data-radix-portal] [class*="table"],
- [data-radix-portal] div[class*="mdx"],
- [data-radix-popper-content-wrapper] div[class*="mdx"] {
- background-color: ${({ theme }) => theme.whiteBackground} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- color: ${({ theme }) => theme.primaryText} !important;
-
- input,
- select {
- background-color: ${({ theme }) => theme.whiteBackground} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- color: ${({ theme }) => theme.primaryText} !important;
-
- &:hover {
- background-color: ${({ theme }) => theme.lightGrey} !important;
- }
- }
-
- button {
- background-color: ${({ theme }) => theme.lightGrey} !important;
- color: ${({ theme }) => theme.primaryText} !important;
- border: 1px solid ${({ theme }) => theme.stroke} !important;
- cursor: pointer !important;
- transition: background-color 0.2s ease !important;
-
- &:hover {
- background-color: ${({ theme }) => theme.lightBackground} !important;
- }
-
- &:active {
- background-color: ${({ theme }) => theme.stroke} !important;
- }
- }
-
- label,
- span,
- div {
- color: ${({ theme }) => theme.primaryText} !important;
- }
-
- svg,
- path {
- color: ${({ theme }) => theme.primaryText} !important;
- }
- }
-
- [class*="mdx"] button,
- [class*="select"] button,
- [class*="trigger"],
- [role="button"],
- [data-radix-portal] [role="button"],
- [data-radix-popper-content-wrapper] [role="button"],
- [data-radix-portal] [data-state],
- [data-radix-popper-content-wrapper] [data-state] {
- cursor: pointer !important;
- transition: all 0.1s ease !important;
- &:hover {
- background-color: ${({ theme }) => theme.lightGrey} !important;
- }
- }
-`;
\ No newline at end of file
diff --git a/web/src/styles/themes.ts b/web/src/styles/themes.ts
deleted file mode 100644
index b44dd177..00000000
--- a/web/src/styles/themes.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import { lightTheme as componentsLightTheme, darkTheme as componentsDarkTheme } from "@kleros/ui-components-library";
-
-export const lightTheme = {
- ...componentsLightTheme,
- name: "light",
- white: "#FFFFFF",
- black: "#000000",
- primaryPurple: "#4D00B4",
- secondaryPurple: "#9013FE",
- darkPurple: "#220050",
- mediumPurple: "#F8F1FF",
- lightPurple: "#FBF9FE",
- violetPurple: "#6A1DCD",
- lavenderPurple: "#BB72FF",
- primaryBlue: "#009AFF",
- secondaryBlue: "#7BCBFF",
- mediumBlue: "#F0F9FF",
- lightBlue: "#FCFEFF",
- primaryText: "#333333",
- secondaryText: "#999999",
- stroke: "#e5e5e5",
- lightGrey: "#F0F0F0",
-
- whiteBackground: "#FFFFFF",
- lightBackground: "#FAFBFC",
-
- defaultShadow: "#00000002",
- hoveredShadow: "#00000002",
- whiteLowOpacitySubtle: "#FFFFFF0D",
- whiteLowOpacityStrong: "#FFFFFF26",
- blackLowOpacity: "#00000080",
-
- success: "#00C42B",
- successLight: "#F0FBF2",
- warning: "#FF9900",
- warningLight: "#FFF9F0",
- error: "#F60C36",
- errorLight: "#FEF0F3",
- tint: "#D14EFF",
- tintMedium: "#FCF4FF",
- tintPurple: "#F4F0FA",
-
- transitionSpeed: "0.25s",
-
- skeletonBackground: "#EBEBEB",
- skeletonHighlight: "#F5F5F5",
-
- paleCyan: "#ACFFFF",
- limeGreen: "#F3FFD9",
-};
-
-export const darkTheme = {
- ...componentsDarkTheme,
- name: "dark",
- white: "#FFFFFF",
- black: "#000000",
- primaryPurple: "#7E1BD4",
- secondaryPurple: "#B45FFF",
- darkPurple: "#220050",
- mediumPurple: "#390F6C",
- lightPurple: "#FCFBFF",
- violetPurple: "#6A1DCD",
- lavenderPurple: "#BB72FF",
- primaryBlue: "#6CC5FF",
- secondaryBlue: "#A5DBFF",
- mediumBlue: "#2E206C",
- lightBlue: "#2A1260",
- primaryText: "#DAF0FF",
- secondaryText: "#BECCE5",
- stroke: "#392C74",
- lightGrey: "#2D1865",
-
- whiteBackground: "#220050",
- lightBackground: "#1B003F",
-
- defaultShadow: "#00000000",
- hoveredShadow: "#42498f80",
- whiteLowOpacitySubtle: "#FFFFFF0F",
- whiteLowOpacityStrong: "#FFFFFF24",
- blackLowOpacity: "#00000080",
-
- success: "#65DC7F",
- successLight: "#32355B",
- warning: "#FFC46B",
- warningLight: "#451F54",
- error: "#FF5A78",
- errorLight: "#360652",
- tint: "#DDB6FF",
- tintMedium: "#401D6C",
- tintPurple: "#2F0960",
-
- transitionSpeed: "0.25s",
-
- skeletonBackground: "#3A2270",
- skeletonHighlight: "#3E307C",
-
- paleCyan: "#ACFFFF",
- limeGreen: "#F3FFD9",
-};
diff --git a/web/src/utils/index.ts b/web/src/utils/index.ts
index bee9fb30..881185c9 100644
--- a/web/src/utils/index.ts
+++ b/web/src/utils/index.ts
@@ -1,4 +1,6 @@
import { Roles } from "@kleros/kleros-app";
+import { ClassValue, clsx } from "clsx";
+import { twMerge } from "tailwind-merge";
export const isUndefined = (maybeObject: any): maybeObject is undefined => typeof maybeObject === "undefined";
@@ -35,3 +37,7 @@ export const getFileUploaderMsg = (role: Roles, roleRestrictions?: Role[]) => {
(1024 * 1024)
).toFixed(2)} MB.`;
};
+
+export const cn = (...inputs: ClassValue[]) => {
+ return twMerge(clsx(inputs));
+};
diff --git a/web/vite.config.js b/web/vite.config.js
index ed1ff4ad..c43acb61 100644
--- a/web/vite.config.js
+++ b/web/vite.config.js
@@ -2,6 +2,7 @@ import { defineConfig } from "vite";
import { nodePolyfills } from "vite-plugin-node-polyfills";
import svgr from "vite-plugin-svgr";
import tsconfigPaths from "vite-tsconfig-paths";
+import tailwindcss from "@tailwindcss/vite";
export default defineConfig({
root: "src",
@@ -28,5 +29,6 @@ export default defineConfig({
nodePolyfills({
include: ["fs", "stream"],
}),
+ tailwindcss(),
],
});
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 05102c6c..b48f9888 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -358,7 +358,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5":
+"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.22.15":
version: 7.22.15
resolution: "@babel/helper-module-imports@npm:7.22.15"
dependencies:
@@ -882,7 +882,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.23.3":
+"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.23.3":
version: 7.23.3
resolution: "@babel/plugin-syntax-jsx@npm:7.23.3"
dependencies:
@@ -1827,7 +1827,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.8.4":
+"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.8.4":
version: 7.23.8
resolution: "@babel/runtime@npm:7.23.8"
dependencies:
@@ -1883,7 +1883,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.2":
+"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.7.2":
version: 7.23.7
resolution: "@babel/traverse@npm:7.23.7"
dependencies:
@@ -3132,17 +3132,6 @@ __metadata:
languageName: node
linkType: hard
-"@datepicker-react/hooks@npm:^2.8.4":
- version: 2.8.4
- resolution: "@datepicker-react/hooks@npm:2.8.4"
- dependencies:
- date-fns: "npm:^2.14.0"
- peerDependencies:
- react: ">= 16.8.5"
- checksum: 10/1f4301bce7c32efa35b982e6697718a541e1ecb4d636d5f27240ea16780ef9e5f04e59083a364f9e4f79a5fd20a13774128bcb5e9b9a3bee0773e74d1a04277b
- languageName: node
- linkType: hard
-
"@ecies/ciphers@npm:^0.2.1":
version: 0.2.1
resolution: "@ecies/ciphers@npm:0.2.1"
@@ -3152,21 +3141,40 @@ __metadata:
languageName: node
linkType: hard
-"@emotion/is-prop-valid@npm:1.2.2":
- version: 1.2.2
- resolution: "@emotion/is-prop-valid@npm:1.2.2"
+"@emnapi/core@npm:^1.5.0, @emnapi/core@npm:^1.6.0":
+ version: 1.7.1
+ resolution: "@emnapi/core@npm:1.7.1"
dependencies:
- "@emotion/memoize": "npm:^0.8.1"
- checksum: 10/0fa3960abfbe845d40cc230ab8c9408e1f33d3c03b321980359911c7212133cdcb0344d249e9dab23342b304567eece7a10ec44b986f7230e0640ba00049dceb
+ "@emnapi/wasi-threads": "npm:1.1.0"
+ tslib: "npm:^2.4.0"
+ checksum: 10/260841f6dd2a7823a964d9de6da3a5e6f565dac8d21a5bd8f6215b87c45c22a4dc371b9ad877961579ee3cca8a76e55e3dd033ae29cba1998999cda6d794bdab
languageName: node
linkType: hard
-"@emotion/is-prop-valid@npm:^1.1.0":
- version: 1.2.1
- resolution: "@emotion/is-prop-valid@npm:1.2.1"
+"@emnapi/runtime@npm:^1.5.0, @emnapi/runtime@npm:^1.6.0":
+ version: 1.7.1
+ resolution: "@emnapi/runtime@npm:1.7.1"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10/6fc83f938e3c70e32e84c1fbe5cab6cb9340b8107cee4048384ad5b8f2998a06502b4bed342acaf6e44f473f2c14c4ab1e3fd5083bd7823fc63abfca9eff0175
+ languageName: node
+ linkType: hard
+
+"@emnapi/wasi-threads@npm:1.1.0, @emnapi/wasi-threads@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@emnapi/wasi-threads@npm:1.1.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10/0d557e75262d2f4c95cb2a456ba0785ef61f919ce488c1d76e5e3acfd26e00c753ef928cd80068363e0c166ba8cc0141305daf0f81aad5afcd421f38f11e0f4e
+ languageName: node
+ linkType: hard
+
+"@emotion/is-prop-valid@npm:1.2.2":
+ version: 1.2.2
+ resolution: "@emotion/is-prop-valid@npm:1.2.2"
dependencies:
"@emotion/memoize": "npm:^0.8.1"
- checksum: 10/fe231c472d38b3bbe519bcc9a5585cd41c45604147f3a065e333caf0f695d668aa21bc4229e657c1b6ea7398e096899e6ad54662548c73f11f6ba594aebd76a1
+ checksum: 10/0fa3960abfbe845d40cc230ab8c9408e1f33d3c03b321980359911c7212133cdcb0344d249e9dab23342b304567eece7a10ec44b986f7230e0640ba00049dceb
languageName: node
linkType: hard
@@ -3177,13 +3185,6 @@ __metadata:
languageName: node
linkType: hard
-"@emotion/stylis@npm:^0.8.4":
- version: 0.8.5
- resolution: "@emotion/stylis@npm:0.8.5"
- checksum: 10/ceaa673457f501a393cb52873b2bc34dbe35ef0fb8faa4b943d73ecbbb42bc3cea53b87cbf482038b7b9b1f95859be3d8b58d508422b4d15aec5b62314cc3c1e
- languageName: node
- linkType: hard
-
"@emotion/unitless@npm:0.8.1":
version: 0.8.1
resolution: "@emotion/unitless@npm:0.8.1"
@@ -3191,13 +3192,6 @@ __metadata:
languageName: node
linkType: hard
-"@emotion/unitless@npm:^0.7.4":
- version: 0.7.5
- resolution: "@emotion/unitless@npm:0.7.5"
- checksum: 10/f976e5345b53fae9414a7b2e7a949aa6b52f8bdbcc84458b1ddc0729e77ba1d1dfdff9960e0da60183877873d3a631fa24d9695dd714ed94bcd3ba5196586a6b
- languageName: node
- linkType: hard
-
"@esbuild/aix-ppc64@npm:0.19.12":
version: 0.19.12
resolution: "@esbuild/aix-ppc64@npm:0.19.12"
@@ -4135,6 +4129,57 @@ __metadata:
languageName: node
linkType: hard
+"@formatjs/ecma402-abstract@npm:2.3.6":
+ version: 2.3.6
+ resolution: "@formatjs/ecma402-abstract@npm:2.3.6"
+ dependencies:
+ "@formatjs/fast-memoize": "npm:2.2.7"
+ "@formatjs/intl-localematcher": "npm:0.6.2"
+ decimal.js: "npm:^10.4.3"
+ tslib: "npm:^2.8.0"
+ checksum: 10/30b1b5cd6b62ba46245f934429936592df5500bc1b089dc92dd49c826757b873dd92c305dcfe370701e4df6b057bf007782113abb9b65db550d73be4961718bc
+ languageName: node
+ linkType: hard
+
+"@formatjs/fast-memoize@npm:2.2.7":
+ version: 2.2.7
+ resolution: "@formatjs/fast-memoize@npm:2.2.7"
+ dependencies:
+ tslib: "npm:^2.8.0"
+ checksum: 10/e7e6efc677d63a13d99a854305db471b69f64cbfebdcb6dbe507dab9aa7eaae482ca5de86f343c856ca0a2c8f251672bd1f37c572ce14af602c0287378097d43
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-messageformat-parser@npm:2.11.4":
+ version: 2.11.4
+ resolution: "@formatjs/icu-messageformat-parser@npm:2.11.4"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.3.6"
+ "@formatjs/icu-skeleton-parser": "npm:1.8.16"
+ tslib: "npm:^2.8.0"
+ checksum: 10/2acb100c06c2ade666d72787fb9f9795b1ace41e8e73bfadc2b1a7b8562e81f655e484f0f33d8c39473aa17bf0ad96fb2228871806a9b3dc4f5f876754a0de3a
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-skeleton-parser@npm:1.8.16":
+ version: 1.8.16
+ resolution: "@formatjs/icu-skeleton-parser@npm:1.8.16"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.3.6"
+ tslib: "npm:^2.8.0"
+ checksum: 10/428001e5bed81889b276a2356a1393157af91dc59220b765a1a132f6407ac5832b7ac6ae9737674ac38e44035295c0c1c310b2630f383f2b5779ea90bf2849e6
+ languageName: node
+ linkType: hard
+
+"@formatjs/intl-localematcher@npm:0.6.2":
+ version: 0.6.2
+ resolution: "@formatjs/intl-localematcher@npm:0.6.2"
+ dependencies:
+ tslib: "npm:^2.8.0"
+ checksum: 10/eb12a7f5367bbecdfafc20d7f005559ce840f420e970f425c5213d35e94e86dfe75bde03464971a26494bf8427d4961269db22ecad2834f2a19d888b5d9cc064
+ languageName: node
+ linkType: hard
+
"@graphprotocol/graph-cli@npm:0.95.0":
version: 0.95.0
resolution: "@graphprotocol/graph-cli@npm:0.95.0"
@@ -5024,6 +5069,43 @@ __metadata:
languageName: node
linkType: hard
+"@internationalized/date@npm:^3.10.0, @internationalized/date@npm:^3.7.0":
+ version: 3.10.0
+ resolution: "@internationalized/date@npm:3.10.0"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10/5940667ea2b0be54b798088ef995f787508bf4305d3741babc8b1f48de008c872555a5440ae61fa7399461a7339d3257fb8e86cc2111e72e185fc37d99e06392
+ languageName: node
+ linkType: hard
+
+"@internationalized/message@npm:^3.1.8":
+ version: 3.1.8
+ resolution: "@internationalized/message@npm:3.1.8"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ intl-messageformat: "npm:^10.1.0"
+ checksum: 10/8f27a31f5d1eef7084447ed141e896e12cc19d786a1346ba60137de5b8bcc58a9da978d79954e2a74302aa673f942fb772130ebd6195565e33db30bd7eb4ef47
+ languageName: node
+ linkType: hard
+
+"@internationalized/number@npm:^3.6.5":
+ version: 3.6.5
+ resolution: "@internationalized/number@npm:3.6.5"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10/f80618842b9b8ea04e235277911eeb8e2ee129f1b266b94704a9f773df7536486c25db41ae708f6c2f4845cdb0a25e7d1856332370daba6c530528ac0ee997e3
+ languageName: node
+ linkType: hard
+
+"@internationalized/string@npm:^3.2.7":
+ version: 3.2.7
+ resolution: "@internationalized/string@npm:3.2.7"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10/38b54817cf125ba88d1136a6bca4fb57c46672d26d21490f838efe928049546800df6d9c8048411696455fc8caacb8ac23c2de2a1b61f2258b1302c1c97cc128
+ languageName: node
+ linkType: hard
+
"@ioredis/commands@npm:^1.1.1":
version: 1.2.0
resolution: "@ioredis/commands@npm:1.2.0"
@@ -5366,6 +5448,16 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/remapping@npm:^2.3.4":
+ version: 2.3.5
+ resolution: "@jridgewell/remapping@npm:2.3.5"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10/c2bb01856e65b506d439455f28aceacf130d6c023d1d4e3b48705e88def3571753e1a887daa04b078b562316c92d26ce36408a60534bceca3f830aec88a339ad
+ languageName: node
+ linkType: hard
+
"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0":
version: 3.1.1
resolution: "@jridgewell/resolve-uri@npm:3.1.1"
@@ -5411,6 +5503,13 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/sourcemap-codec@npm:^1.5.5":
+ version: 1.5.5
+ resolution: "@jridgewell/sourcemap-codec@npm:1.5.5"
+ checksum: 10/5d9d207b462c11e322d71911e55e21a4e2772f71ffe8d6f1221b8eb5ae6774458c1d242f897fb0814e8714ca9a6b498abfa74dfe4f434493342902b1a48b33a5
+ languageName: node
+ linkType: hard
+
"@jridgewell/trace-mapping@npm:0.3.9":
version: 0.3.9
resolution: "@jridgewell/trace-mapping@npm:0.3.9"
@@ -5557,17 +5656,17 @@ __metadata:
"@graphql-codegen/client-preset": "npm:^4.6.2"
"@kleros/kleros-app": "npm:^2.1.0"
"@kleros/kleros-v2-contracts": "npm:^0.10.0"
- "@kleros/ui-components-library": "npm:^2.19.0"
+ "@kleros/ui-components-library": "npm:^3.6.0"
"@mdxeditor/editor": "npm:^3.45.0"
"@reown/appkit": "npm:^1.6.6"
"@reown/appkit-adapter-wagmi": "npm:^1.6.6"
"@sentry/react": "npm:^7.93.0"
"@sentry/tracing": "npm:^7.93.0"
+ "@tailwindcss/vite": "npm:^4.1.17"
"@tanstack/react-query": "npm:^5.66.0"
"@types/react": "npm:^18.2.59"
"@types/react-dom": "npm:^18.2.18"
"@types/react-modal": "npm:^3.16.3"
- "@types/styled-components": "npm:^5.1.34"
"@typescript-eslint/eslint-plugin": "npm:^5.62.0"
"@typescript-eslint/parser": "npm:^5.62.0"
"@typescript-eslint/utils": "npm:^5.62.0"
@@ -5576,6 +5675,7 @@ __metadata:
alchemy-sdk: "npm:^3.3.1"
chart.js: "npm:^3.9.1"
chartjs-adapter-moment: "npm:^1.0.1"
+ clsx: "npm:^2.1.1"
core-js: "npm:^3.35.0"
eslint: "npm:^8.56.0"
eslint-config-prettier: "npm:^8.10.0"
@@ -5603,8 +5703,9 @@ __metadata:
rehype-raw: "npm:^6.1.1"
rehype-sanitize: "npm:^5.0.1"
remark-gfm: "npm:^3.0.1"
- styled-components: "npm:^5.3.11"
subgraph-status: "npm:^1.2.4"
+ tailwind-merge: "npm:^3.4.0"
+ tailwindcss: "npm:^4.1.17"
typescript: "npm:^5.7.3"
viem: "npm:^2.27.2"
vite: "npm:^5.4.2"
@@ -5646,26 +5747,30 @@ __metadata:
languageName: node
linkType: hard
-"@kleros/ui-components-library@npm:^2.19.0":
- version: 2.19.0
- resolution: "@kleros/ui-components-library@npm:2.19.0"
+"@kleros/ui-components-library@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "@kleros/ui-components-library@npm:3.6.0"
dependencies:
- "@datepicker-react/hooks": "npm:^2.8.4"
- "@swc/helpers": "npm:^0.3.2"
- rc-slider: "npm:^9.7.5"
+ "@internationalized/date": "npm:^3.7.0"
+ bignumber.js: "npm:^9.1.2"
+ clsx: "npm:^2.1.1"
+ lodash: "npm:^4.17.21"
react: "npm:^18.0.0"
+ react-aria-components: "npm:^1.7.1"
react-dom: "npm:^18.0.0"
react-is: "npm:^18.0.0"
simplebar: "npm:^5.3.6"
simplebar-react: "npm:^2.3.6"
- smooth-scroll-into-view-if-needed: "npm:^1.1.33"
+ tailwind-merge: "npm:^3.0.2"
+ tailwindcss-react-aria-components: "npm:^2.0.0"
usehooks-ts: "npm:^2.9.1"
peerDependencies:
+ "@tailwindcss/postcss": ^4.0.11
react: ^18.0.0
react-dom: ^18.0.0
react-is: ^18.0.0
- styled-components: ^5.3.3
- checksum: 10/b4c6b4e35812582af48246546ce634e7c6f2bb62281f3deff100897f905c53b54f85e35f2f04ae68cee89d83412750b2005a0791195f33610bffbd78e77846f4
+ tailwindcss: ^4.0.11
+ checksum: 10/c95a5ec083396de0e3bee520e95a1921cc4ca0f4ff6e6c8e035c4c59919a84d75aa961bd62afad7d7ac35a989e641f7d0b8065545d77e64fdefc8b01f88e67a0
languageName: node
linkType: hard
@@ -6767,6 +6872,17 @@ __metadata:
languageName: node
linkType: hard
+"@napi-rs/wasm-runtime@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "@napi-rs/wasm-runtime@npm:1.0.7"
+ dependencies:
+ "@emnapi/core": "npm:^1.5.0"
+ "@emnapi/runtime": "npm:^1.5.0"
+ "@tybys/wasm-util": "npm:^0.10.1"
+ checksum: 10/6bc32d32d486d07b83220a9b7b2b715e39acacbacef0011ebca05c00b41d80a0535123da10fea7a7d6d7e206712bb50dc50ac3cf88b770754d44378570fb5c05
+ languageName: node
+ linkType: hard
+
"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1":
version: 5.1.1-v1
resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1"
@@ -8452,209 +8568,1895 @@ __metadata:
languageName: node
linkType: hard
-"@react-hook/intersection-observer@npm:^3.1.1":
- version: 3.1.2
- resolution: "@react-hook/intersection-observer@npm:3.1.2"
+"@react-aria/autocomplete@npm:3.0.0-rc.3":
+ version: 3.0.0-rc.3
+ resolution: "@react-aria/autocomplete@npm:3.0.0-rc.3"
dependencies:
- "@react-hook/passive-layout-effect": "npm:^1.2.0"
- intersection-observer: "npm:^0.10.0"
+ "@react-aria/combobox": "npm:^3.14.0"
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/listbox": "npm:^3.15.0"
+ "@react-aria/searchfield": "npm:^3.8.9"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/autocomplete": "npm:3.0.0-beta.3"
+ "@react-stately/combobox": "npm:^3.12.0"
+ "@react-types/autocomplete": "npm:3.0.0-alpha.35"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
peerDependencies:
- react: ">=16.8"
- checksum: 10/fee587ca06bdfe02aa3a30b95bb9fb63cc745aafa74a34e68b2c1938b6b34e8807f02e8a9f3d656ab4b399f30cd6aaa88ef7b486ec1ee1f848e6e726d73f256d
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7acddd01b0f07bdbd2cf09d01a8b0fb9551d27656a92adf995411620a1599f8ff6421a72de1fcd56611d5eced49073cae48aee8127f3620fc1ca38d4ce3dcb62
languageName: node
linkType: hard
-"@react-hook/passive-layout-effect@npm:^1.2.0":
- version: 1.2.1
- resolution: "@react-hook/passive-layout-effect@npm:1.2.1"
+"@react-aria/breadcrumbs@npm:^3.5.29":
+ version: 3.5.29
+ resolution: "@react-aria/breadcrumbs@npm:3.5.29"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/link": "npm:^3.8.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/breadcrumbs": "npm:^3.7.17"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
peerDependencies:
- react: ">=16.8"
- checksum: 10/217cb8aa90fb8e677672319a9a466d7752890cf4357c76df000b207696e9cc717cf2ee88080671cc9dae238a82f92093ab4f61ab2f6032d2a8db958fc7d99b5d
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/875c2280539362e33200a9869dc52e5cec8a7407e068faa70cc190eaf266135448410acf9dd37b59bd86e53f330ac32e7598ceec468a2339cc04f18f826c4cbc
languageName: node
linkType: hard
-"@remix-run/router@npm:1.14.2":
- version: 1.14.2
- resolution: "@remix-run/router@npm:1.14.2"
- checksum: 10/422844e88b985f1e287301b302c6cf8169c9eea792f80d40464f97b25393bb2e697228ebd7a7b61444d5a51c5873c4a637aad20acde5886a5caf62e833c5ceee
+"@react-aria/button@npm:^3.14.2":
+ version: 3.14.2
+ resolution: "@react-aria/button@npm:3.14.2"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/toolbar": "npm:3.0.0-beta.21"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/toggle": "npm:^3.9.2"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/d6891ab39a81b349a80ac2c381a5663e33caf209d29aa536b0a8ca2963898b011913593c71f4bceb3f48a54a95cd5bc842b0ffbb33498d38a120d1a6d28f932b
languageName: node
linkType: hard
-"@reown/appkit-adapter-wagmi@npm:^1.6.6":
- version: 1.6.8
- resolution: "@reown/appkit-adapter-wagmi@npm:1.6.8"
+"@react-aria/calendar@npm:^3.9.2":
+ version: 3.9.2
+ resolution: "@react-aria/calendar@npm:3.9.2"
dependencies:
- "@reown/appkit": "npm:1.6.8"
- "@reown/appkit-common": "npm:1.6.8"
- "@reown/appkit-core": "npm:1.6.8"
- "@reown/appkit-polyfills": "npm:1.6.8"
- "@reown/appkit-scaffold-ui": "npm:1.6.8"
- "@reown/appkit-ui": "npm:1.6.8"
- "@reown/appkit-utils": "npm:1.6.8"
- "@reown/appkit-wallet": "npm:1.6.8"
- "@wagmi/connectors": "npm:>=5.7"
- "@walletconnect/universal-provider": "npm:2.18.0"
- "@walletconnect/utils": "npm:2.18.0"
- valtio: "npm:1.13.2"
+ "@internationalized/date": "npm:^3.10.0"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/calendar": "npm:^3.9.0"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/calendar": "npm:^3.8.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
peerDependencies:
- "@wagmi/core": ">=2.16.4"
- viem: ">=2.23.0"
- wagmi: ">=2.14.11"
- dependenciesMeta:
- "@wagmi/connectors":
- optional: true
- checksum: 10/630b708e0da61998dd02f2dd21bee8087d659a34ed301c304c8e55ae3d16e474a22f68a5735bb3ea510e8536a126925aa216c03dc66b0a6e3489beaed5a2cd45
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3697b14765895c864db1a9393b86e0370cda01fab44464e9c1966150d7c793bcc9fd1e7a50d34022b0730fcaf9fd1995d431ccb1b5518eb086ccfb4b35e47ff2
languageName: node
linkType: hard
-"@reown/appkit-common@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-common@npm:1.6.8"
+"@react-aria/checkbox@npm:^3.16.2":
+ version: 3.16.2
+ resolution: "@react-aria/checkbox@npm:3.16.2"
dependencies:
- big.js: "npm:6.2.2"
- dayjs: "npm:1.11.10"
- viem: "npm:>=2.23.0"
- checksum: 10/ad4b771f4079ba44f5dd3e40571aedc91f0b376ee7794c3efb987d751bec7221765e3051abbd90427a8574a1eb1b57fce44bbaed108ab4deb99d3a6fb5072bbb
- languageName: node
+ "@react-aria/form": "npm:^3.1.2"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/toggle": "npm:^3.12.2"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/checkbox": "npm:^3.7.2"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/toggle": "npm:^3.9.2"
+ "@react-types/checkbox": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/77058d41d78b8feea4801022ba56f225b69f9b6577edc42a747dea21e4b38ea8d343f3a38455e9ae47a95a41b77e37fa0929a7136507f7b446111919f5e34478
+ languageName: node
linkType: hard
-"@reown/appkit-core@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-core@npm:1.6.8"
+"@react-aria/collections@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@react-aria/collections@npm:3.0.0"
dependencies:
- "@reown/appkit-common": "npm:1.6.8"
- "@reown/appkit-wallet": "npm:1.6.8"
- "@walletconnect/universal-provider": "npm:2.18.0"
- valtio: "npm:1.13.2"
- viem: "npm:>=2.23"
- checksum: 10/067683fc91c46e9d3e11c4b5dcf7a28d133b240b0d6382ee405d2fb6caca34eeef5db4ac239415d45413d1db6742d8c2975ba5e56524d90fbcb6c94f1d9170e9
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ use-sync-external-store: "npm:^1.4.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2704d35e0cc67e8e2f7fa61f593160768a633e2ff3ced45f01806928dc15738dcd005c49ff7130c0c92fbaabf0b0624833e54b7d24a10181c7910a469a9da52b
languageName: node
linkType: hard
-"@reown/appkit-polyfills@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-polyfills@npm:1.6.8"
+"@react-aria/color@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "@react-aria/color@npm:3.1.2"
dependencies:
- buffer: "npm:6.0.3"
- checksum: 10/48d8f82c7949a5f16432f2c1979b6ad2ddf13a6367ed8387ea54b87b9f31040f7b4cd3f2a4d0fd684bd7123727356315553f82941554ddcfc7160898d7bab093
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/numberfield": "npm:^3.12.2"
+ "@react-aria/slider": "npm:^3.8.2"
+ "@react-aria/spinbutton": "npm:^3.6.19"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-aria/visually-hidden": "npm:^3.8.28"
+ "@react-stately/color": "npm:^3.9.2"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-types/color": "npm:^3.1.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/8b2c29097e86e2fa30bb5a53777dd09a7b2b24f6fb44ac1847275345aa895bb663735dcdc94bac90ba6fee074f11fe571f7effc5ba4ac4adb0bc87f67705479c
languageName: node
linkType: hard
-"@reown/appkit-scaffold-ui@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-scaffold-ui@npm:1.6.8"
+"@react-aria/combobox@npm:^3.14.0":
+ version: 3.14.0
+ resolution: "@react-aria/combobox@npm:3.14.0"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/listbox": "npm:^3.15.0"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/menu": "npm:^3.19.3"
+ "@react-aria/overlays": "npm:^3.30.0"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/combobox": "npm:^3.12.0"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/combobox": "npm:^3.13.9"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e583a99133b884e49b5848271a18d3dcbc6fdb4fb9aa9477d2164790b7386ada3316f6a4c19af3e8d989ed9c6207af12e2377c2f1644e8114afd916697a26c33
+ languageName: node
+ linkType: hard
+
+"@react-aria/datepicker@npm:^3.15.2":
+ version: 3.15.2
+ resolution: "@react-aria/datepicker@npm:3.15.2"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@internationalized/number": "npm:^3.6.5"
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/form": "npm:^3.1.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/spinbutton": "npm:^3.6.19"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/datepicker": "npm:^3.15.2"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/calendar": "npm:^3.8.0"
+ "@react-types/datepicker": "npm:^3.13.2"
+ "@react-types/dialog": "npm:^3.5.22"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/05f9b7bda5e5aa304ea4eebfded8040ea040b12284f2aa67f6b2a9e5458526a1e8dfbe077a53989a8633debb8184123e0907186f5b511c5a4c85a48f4c755f4b
+ languageName: node
+ linkType: hard
+
+"@react-aria/dialog@npm:^3.5.31":
+ version: 3.5.31
+ resolution: "@react-aria/dialog@npm:3.5.31"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/overlays": "npm:^3.30.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/dialog": "npm:^3.5.22"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/ea5d197b13d1441b45b5288382f9f25cf4ecec07ea6c8e989ce62b5f0ce2eaa7e6afe7e40fc808451b040eda2c41aa64f8e510d5205b26a5a07324b86468e53d
+ languageName: node
+ linkType: hard
+
+"@react-aria/disclosure@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@react-aria/disclosure@npm:3.1.0"
dependencies:
- "@reown/appkit-common": "npm:1.6.8"
- "@reown/appkit-core": "npm:1.6.8"
- "@reown/appkit-ui": "npm:1.6.8"
- "@reown/appkit-utils": "npm:1.6.8"
- "@reown/appkit-wallet": "npm:1.6.8"
- lit: "npm:3.1.0"
- checksum: 10/b9b2c6f92653aecc3614815c798d6d11672dcd5de86559cc049cd180a41bf8d8369cd9bab0bab3923f3dbc342ea21d763c7e2436e4d97452bc6cb227ba4ce944
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/disclosure": "npm:^3.0.8"
+ "@react-types/button": "npm:^3.14.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/34f5a0b5c7130fc686025f8015cefe219b84ed153dbca93ee4b47b2f598ca833ed161426dc76d2f09ee480b88741df046fcbb600516eb77b919afcb80b1b61a3
languageName: node
linkType: hard
-"@reown/appkit-ui@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-ui@npm:1.6.8"
+"@react-aria/dnd@npm:^3.11.3":
+ version: 3.11.3
+ resolution: "@react-aria/dnd@npm:3.11.3"
dependencies:
- lit: "npm:3.1.0"
- qrcode: "npm:1.5.3"
- checksum: 10/063ad1af00d925fa6aeaec15070797ed95b8b17a0e46e3188e8697ee140ab68056207f83f216177000b3a322ba80aa2d2da9da179de5abf28c2661d97d8beaba
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/overlays": "npm:^3.30.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/dnd": "npm:^3.7.1"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/48c58ab1fdb0e4dfce2e5933b580df3e46c0407535a28d2434fc6921d049bde45d0b3b94b7f3f4775e683e77c4a5b17ccfd9894c345230b7f49c7c0742663dce
languageName: node
linkType: hard
-"@reown/appkit-utils@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-utils@npm:1.6.8"
+"@react-aria/focus@npm:^3.21.2":
+ version: 3.21.2
+ resolution: "@react-aria/focus@npm:3.21.2"
dependencies:
- "@reown/appkit-common": "npm:1.6.8"
- "@reown/appkit-core": "npm:1.6.8"
- "@reown/appkit-polyfills": "npm:1.6.8"
- "@reown/appkit-wallet": "npm:1.6.8"
- "@walletconnect/logger": "npm:2.1.2"
- "@walletconnect/universal-provider": "npm:2.18.0"
- valtio: "npm:1.13.2"
- viem: "npm:>=2.23.0"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
peerDependencies:
- valtio: 1.13.2
- checksum: 10/3325543c1c22981fe9079a7f87ee07c558243edfdfe0817b6d39b590dfbcb3e385c8af518c54b7907f8e41312d361d8064cbd87ccf9085b96b2a37d5af49d422
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/4bce20d956c24ab08b707e84896afafd66b3496971efb6dd611dae1c4c1f47a5c99c786a96b2fd0eb083a7c9ba5368ac04ce3a937cc48fdcc8bb85f81e7a3098
languageName: node
linkType: hard
-"@reown/appkit-wallet@npm:1.6.8":
- version: 1.6.8
- resolution: "@reown/appkit-wallet@npm:1.6.8"
+"@react-aria/form@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "@react-aria/form@npm:3.1.2"
dependencies:
- "@reown/appkit-common": "npm:1.6.8"
- "@reown/appkit-polyfills": "npm:1.6.8"
- "@walletconnect/logger": "npm:2.1.2"
- zod: "npm:3.22.4"
- checksum: 10/c87dda0c18774e923dd7c202b163f803efa16d1b86bdfa0e803855179657d8e942e7afe686544a6c9d43d9c5185d854d4860c4708eb0a52b27a14062764e3448
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/140d8cb830fab6fc4d885e79fbdfc92f06af43134b6ab68ec93b58fec25220b823b58698bd9bbd574bc21d1c0d443813df89b44f5ea33b5bcd314128560bd4fd
languageName: node
linkType: hard
-"@reown/appkit@npm:1.6.8, @reown/appkit@npm:^1.6.6":
- version: 1.6.8
- resolution: "@reown/appkit@npm:1.6.8"
+"@react-aria/grid@npm:^3.14.5":
+ version: 3.14.5
+ resolution: "@react-aria/grid@npm:3.14.5"
dependencies:
- "@reown/appkit-common": "npm:1.6.8"
- "@reown/appkit-core": "npm:1.6.8"
- "@reown/appkit-polyfills": "npm:1.6.8"
- "@reown/appkit-scaffold-ui": "npm:1.6.8"
- "@reown/appkit-ui": "npm:1.6.8"
- "@reown/appkit-utils": "npm:1.6.8"
- "@reown/appkit-wallet": "npm:1.6.8"
- "@walletconnect/types": "npm:2.18.0"
- "@walletconnect/universal-provider": "npm:2.18.0"
- "@walletconnect/utils": "npm:2.18.0"
- bs58: "npm:6.0.0"
- valtio: "npm:1.13.2"
- viem: "npm:>=2.23.0"
- checksum: 10/e6134c7230db5ba1e5e48649bd3d1a074746b039510b40e75629ea2b5d1b06f6646f3c6588b2f2aeef866c446dc1bb0360c44467e6fe3c7d0633d2d45ba4648a
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/grid": "npm:^3.11.6"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-types/checkbox": "npm:^3.10.2"
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7e8731b55366b05f619259fbeb149b63d7c17158e25a2ebaacbe3368f50e71f054e4cef3a943ca6076d3ebf0242cfcb155ff276ab984a7495dc46f6b5b13f1d2
languageName: node
linkType: hard
-"@repeaterjs/repeater@npm:^3.0.4":
- version: 3.0.5
- resolution: "@repeaterjs/repeater@npm:3.0.5"
- checksum: 10/7478df13bd4631729021b2f43524fe71a4ed04b3c1c2125315078e3954f059f2ff4da5776f9be8f76008df9849e866e5ec56120f41b8bf66d2ec1a7c7bc53229
+"@react-aria/gridlist@npm:^3.14.1":
+ version: 3.14.1
+ resolution: "@react-aria/gridlist@npm:3.14.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/grid": "npm:^3.14.5"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-stately/tree": "npm:^3.9.3"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/1d7ff55a869a3157edd266b5d14a9e1380561bcb8d949fdd43e983e64932ec251aa7221e6156e93ea977b8942c5b9b8f9aae5f04ebc2ed27eef9be2b7e00b5ab
languageName: node
linkType: hard
-"@rescript/std@npm:9.0.0":
- version: 9.0.0
- resolution: "@rescript/std@npm:9.0.0"
- checksum: 10/3f68fdc7daad61aba8369055611800347b9be3a621ed7d465abcd42600515ca78a0decff51f2d3d2ae9d31f31c58ae3bbb41e3d5fcd42e135f9b7ce0f8de8de7
+"@react-aria/i18n@npm:^3.12.13":
+ version: 3.12.13
+ resolution: "@react-aria/i18n@npm:3.12.13"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@internationalized/message": "npm:^3.1.8"
+ "@internationalized/number": "npm:^3.6.5"
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/a5464213e626c60d63e0dbab84907ab452c53022a27a5c482c8f86f23c96b53522e52005c5cfc829f388c807eaf246cded69d5bee24b9e0fc08f34f9b0359e82
languageName: node
linkType: hard
-"@rollup/plugin-babel@npm:^5.2.0":
- version: 5.3.1
- resolution: "@rollup/plugin-babel@npm:5.3.1"
+"@react-aria/interactions@npm:^3.25.6":
+ version: 3.25.6
+ resolution: "@react-aria/interactions@npm:3.25.6"
dependencies:
- "@babel/helper-module-imports": "npm:^7.10.4"
- "@rollup/pluginutils": "npm:^3.1.0"
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/flags": "npm:^3.1.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
peerDependencies:
- "@babel/core": ^7.0.0
- "@types/babel__core": ^7.1.9
- rollup: ^1.20.0||^2.0.0
- peerDependenciesMeta:
- "@types/babel__core":
- optional: true
- checksum: 10/eb3ee5fedd86fa39ad70c2f8e05f14f8b185261b9f63699a01ac7eae664167f2e5cf87377434bf6aadad7eaf2b13c955ac26f8332a02f8d6a46b3c91990a9fbc
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/fd30e14107d919be25909ca8f69fb99d88aa1f1ead523717a390a40be6d774e40de47dd7f9fcc7e6d66e0f4abc12238001a10d2128cbd7af9b141641cacf6da4
languageName: node
linkType: hard
-"@rollup/plugin-inject@npm:^5.0.5":
- version: 5.0.5
- resolution: "@rollup/plugin-inject@npm:5.0.5"
+"@react-aria/label@npm:^3.7.22":
+ version: 3.7.22
+ resolution: "@react-aria/label@npm:3.7.22"
dependencies:
- "@rollup/pluginutils": "npm:^5.0.1"
- estree-walker: "npm:^2.0.2"
- magic-string: "npm:^0.30.3"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2bbfca230465057230597fd23f47ebe591bb5307ff7e37a082a4922e132f1310b69a06dcb4905c356b674b159bd09c2ca690e0526d9f303bed8f66eeb8a61b13
+ languageName: node
+ linkType: hard
+
+"@react-aria/landmark@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "@react-aria/landmark@npm:3.0.7"
+ dependencies:
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ use-sync-external-store: "npm:^1.4.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/b86cbd8356fa08e01318644082b9ef948cb3d61695c3dfdb5bdc67a59ce3e3f774c91bf62795280c7ac620b87f9d7e66635c7e02a2c2eb2663b3e2b6a77a448a
+ languageName: node
+ linkType: hard
+
+"@react-aria/link@npm:^3.8.6":
+ version: 3.8.6
+ resolution: "@react-aria/link@npm:3.8.6"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/link": "npm:^3.6.5"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7f0fd02e7eb5c69ba5e280c57b0e7ec6568fbca231159f591201f9d753bd2f985613d0f75a54465f292a617684a55d8f5f10585538ce1fbc3f9f29fb3d339529
+ languageName: node
+ linkType: hard
+
+"@react-aria/listbox@npm:^3.15.0":
+ version: 3.15.0
+ resolution: "@react-aria/listbox@npm:3.15.0"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-types/listbox": "npm:^3.7.4"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e361b11ab4ae521a3e4d41ea811f15e2863b97aa9e65c19eef06c38b9f378191c34dfedf545d1ea4667aa0b89aa157712ed6f78950d71cfc712643666cc59d7a
+ languageName: node
+ linkType: hard
+
+"@react-aria/live-announcer@npm:^3.4.4":
+ version: 3.4.4
+ resolution: "@react-aria/live-announcer@npm:3.4.4"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10/058859f7c0895bccd902f038586333016d7a33d38508e5edaf0f4c809a00217c19db3aa00604e78f3a788e399c3701a8d7fe95e2eb29c8ae754ff4bb62da1f7a
+ languageName: node
+ linkType: hard
+
+"@react-aria/menu@npm:^3.19.3":
+ version: 3.19.3
+ resolution: "@react-aria/menu@npm:3.19.3"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/overlays": "npm:^3.30.0"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/menu": "npm:^3.9.8"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-stately/tree": "npm:^3.9.3"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/menu": "npm:^3.10.5"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/04987d1fae12979335a755093b74e0a9c61d2bf1f207111bca2a8513ea43962b282315976d33e5f06d3e2e1fc1927e2f9030365c4e4a26024e156ebcb88a8d9c
+ languageName: node
+ linkType: hard
+
+"@react-aria/meter@npm:^3.4.27":
+ version: 3.4.27
+ resolution: "@react-aria/meter@npm:3.4.27"
+ dependencies:
+ "@react-aria/progress": "npm:^3.4.27"
+ "@react-types/meter": "npm:^3.4.13"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/b79bc0f2a96b53ec427a25315cdec4a50dd1bc1cb1fbff9f84847c0bb2597851a514ecbbf4b0fbb18b165bc007142ad45bd432641301b8db990e09f281563d39
+ languageName: node
+ linkType: hard
+
+"@react-aria/numberfield@npm:^3.12.2":
+ version: 3.12.2
+ resolution: "@react-aria/numberfield@npm:3.12.2"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/spinbutton": "npm:^3.6.19"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/numberfield": "npm:^3.10.2"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/numberfield": "npm:^3.8.15"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7ec498b0d3bf6a55e891e61d1693a6395a3e7b89a04d81af433a0cb3dd673603ce5dd7f861d39658a5fe6c0cd48356c8120c39b9a4495563d9b13af0f8c0b3ca
+ languageName: node
+ linkType: hard
+
+"@react-aria/overlays@npm:^3.30.0":
+ version: 3.30.0
+ resolution: "@react-aria/overlays@npm:3.30.0"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-aria/visually-hidden": "npm:^3.8.28"
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/overlays": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/32c25162b55078cf18ca6f514065d97982a9447b1ec9d75fda4db69fa909cd5dcc3d5b4c8917edecce7d8dd5b20bc51c3862945110c0badef021c86878e8fb4d
+ languageName: node
+ linkType: hard
+
+"@react-aria/progress@npm:^3.4.27":
+ version: 3.4.27
+ resolution: "@react-aria/progress@npm:3.4.27"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/progress": "npm:^3.5.16"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7b0ac3c2da6205096e94b4d72a2b2b0250f864cace05b562e49b86986dbebbab633e62fcc39ffa915974318de37d5f6256b1f584d8e33ebca70e564d32b3aca2
+ languageName: node
+ linkType: hard
+
+"@react-aria/radio@npm:^3.12.2":
+ version: 3.12.2
+ resolution: "@react-aria/radio@npm:3.12.2"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/form": "npm:^3.1.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/radio": "npm:^3.11.2"
+ "@react-types/radio": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/709bdd0515e797f2bf37dc17f55e46103aa918a4549880c15ecca7c03adc0716e5650376b1cc877437b12e5df4e3050138699707e4ec9fa611614a1e38b98eb0
+ languageName: node
+ linkType: hard
+
+"@react-aria/searchfield@npm:^3.8.9":
+ version: 3.8.9
+ resolution: "@react-aria/searchfield@npm:3.8.9"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/searchfield": "npm:^3.5.16"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/searchfield": "npm:^3.6.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/a088f7b1c434aea1d4603acb34e591c8f11a1532a41407b68336933a73e1e5f55b07bb6323642af5ebeebe39756e1e60943487d77d69882409c491fd816e86f4
+ languageName: node
+ linkType: hard
+
+"@react-aria/select@npm:^3.17.0":
+ version: 3.17.0
+ resolution: "@react-aria/select@npm:3.17.0"
+ dependencies:
+ "@react-aria/form": "npm:^3.1.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/listbox": "npm:^3.15.0"
+ "@react-aria/menu": "npm:^3.19.3"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-aria/visually-hidden": "npm:^3.8.28"
+ "@react-stately/select": "npm:^3.8.0"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/select": "npm:^3.11.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e986470eb5d8c675fbd5753e0051827c94dad00c5472015d4744e4e9233e7a4ff97f4634e94c5686ef9f65f2b6ffa894b24f3a07bde0437de6fe5802901969cd
+ languageName: node
+ linkType: hard
+
+"@react-aria/selection@npm:^3.26.0":
+ version: 3.26.0
+ resolution: "@react-aria/selection@npm:3.26.0"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/6c3c59993c719cfdfd42ef9c753212e7bddf30c348117726e8abfe977876f583e0d0b6fa4ce73e46f1fa53e79e42f0866a333e257cef400c4a24bd5d1c81c379
+ languageName: node
+ linkType: hard
+
+"@react-aria/separator@npm:^3.4.13":
+ version: 3.4.13
+ resolution: "@react-aria/separator@npm:3.4.13"
+ dependencies:
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/4326c36d002f3931c8c717b7aacbe30943d42ca190fe400a151d8f480dd65359a0bc9192da33213d4e8215bbfd47436de07fedfe957e83be4101a926d116862e
+ languageName: node
+ linkType: hard
+
+"@react-aria/slider@npm:^3.8.2":
+ version: 3.8.2
+ resolution: "@react-aria/slider@npm:3.8.2"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/slider": "npm:^3.7.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/slider": "npm:^3.8.2"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3b9115eaf61f722929dcb739cd910b9e84f04644fdce8add21bc0f9305a3e7d0948c2e417afe424783b22738d52060505a32187aba1e7aca19dd572ebb6d10ed
+ languageName: node
+ linkType: hard
+
+"@react-aria/spinbutton@npm:^3.6.19":
+ version: 3.6.19
+ resolution: "@react-aria/spinbutton@npm:3.6.19"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/9b87a1c87a09ddde141bb23e8e3ce1b1137cb1931df848d6fd3bbcd0773b3579045413b725686629da02c22733ad5b5dfc57e06c5fefaf07f8cfb8c4e2334997
+ languageName: node
+ linkType: hard
+
+"@react-aria/ssr@npm:^3.9.10":
+ version: 3.9.10
+ resolution: "@react-aria/ssr@npm:3.9.10"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3b414b5b174769e874014604749d9beaf2556f360f61d3df3223bca6150c16dd37fbf16800e669a2b0045bd221df70212756991a426a7a472c56aac6c0dabd1b
+ languageName: node
+ linkType: hard
+
+"@react-aria/switch@npm:^3.7.8":
+ version: 3.7.8
+ resolution: "@react-aria/switch@npm:3.7.8"
+ dependencies:
+ "@react-aria/toggle": "npm:^3.12.2"
+ "@react-stately/toggle": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/switch": "npm:^3.5.15"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2a9cc90fb6f9593c8b41517d83e4a2e05f77ba544ee41d5beeb865329863ca70afa5beec94230512d3eab44d62f0c0c25110323ba89745ba64e05bee0f34c4ec
+ languageName: node
+ linkType: hard
+
+"@react-aria/table@npm:^3.17.8":
+ version: 3.17.8
+ resolution: "@react-aria/table@npm:3.17.8"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/grid": "npm:^3.14.5"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-aria/visually-hidden": "npm:^3.8.28"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/flags": "npm:^3.1.2"
+ "@react-stately/table": "npm:^3.15.1"
+ "@react-types/checkbox": "npm:^3.10.2"
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/table": "npm:^3.13.4"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/39281b279c2efea9342877e4e2cb1af38f776a7349bcbe6e6daabf281e01445c28b8c7cd38c4f3cfeaea42a126552fd332fc242abd1e5e009c9252e3f1b88512
+ languageName: node
+ linkType: hard
+
+"@react-aria/tabs@npm:^3.10.8":
+ version: 3.10.8
+ resolution: "@react-aria/tabs@npm:3.10.8"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/tabs": "npm:^3.8.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/tabs": "npm:^3.3.19"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/eae72fb6636ae1352ceec509605d35018d96f66aacab896748697da9f6b1e166c7bff88a0ffcfdee2869f653464df401d857906f44bdce5d5b9887b75f533287
+ languageName: node
+ linkType: hard
+
+"@react-aria/tag@npm:^3.7.2":
+ version: 3.7.2
+ resolution: "@react-aria/tag@npm:3.7.2"
+ dependencies:
+ "@react-aria/gridlist": "npm:^3.14.1"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/757daed07380eee13a05b1ba0b72e062db689526dd67087cd34726a6003b4791cb450c9765be3ea32208ce1a430903db3885d07700cb8775cd8bcd97b8124cb4
+ languageName: node
+ linkType: hard
+
+"@react-aria/textfield@npm:^3.18.2":
+ version: 3.18.2
+ resolution: "@react-aria/textfield@npm:3.18.2"
+ dependencies:
+ "@react-aria/form": "npm:^3.1.2"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/textfield": "npm:^3.12.6"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2713e3c42f502ecd1d8a505b01c404a6531d1450d8c422a12ac477d1d45dd5e11e9da48807e75c4915948f579969b4b894f1dda14d87ce3790ab67659b20a396
+ languageName: node
+ linkType: hard
+
+"@react-aria/toast@npm:^3.0.8":
+ version: 3.0.8
+ resolution: "@react-aria/toast@npm:3.0.8"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/landmark": "npm:^3.0.7"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/toast": "npm:^3.1.2"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/b8b21566723e9038f15517934c45c3e6406f28d476a682421aee270f01852e8a46f0170af13c3a5c8e80926169ebd7802d5def0115876e395dedad4fc9409f49
+ languageName: node
+ linkType: hard
+
+"@react-aria/toggle@npm:^3.12.2":
+ version: 3.12.2
+ resolution: "@react-aria/toggle@npm:3.12.2"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/toggle": "npm:^3.9.2"
+ "@react-types/checkbox": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/f6b9ce00d7a6bb0e7b6123826761cb7f40b9c7736ce8edc14b39f1865cd9165c086da8a3f6e27ddae8c8557f54f421bb0b4761c455dae81ed037a765b84b5cb7
+ languageName: node
+ linkType: hard
+
+"@react-aria/toolbar@npm:3.0.0-beta.21":
+ version: 3.0.0-beta.21
+ resolution: "@react-aria/toolbar@npm:3.0.0-beta.21"
+ dependencies:
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/ada5f50c4409997d46e4af0b739f1fada6d3c6ac0bdd3a7eef7ad2a440a53eaeebbd0685d19deb4b7c21832882dbe27a5a8162bf89135d2c930fbaf4bb5e0365
+ languageName: node
+ linkType: hard
+
+"@react-aria/tooltip@npm:^3.8.8":
+ version: 3.8.8
+ resolution: "@react-aria/tooltip@npm:3.8.8"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/tooltip": "npm:^3.5.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/tooltip": "npm:^3.4.21"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/eddb4736b3813b26fdb21ce07cef170215a900a233d859605ad17a2c72c66ca8cc2fe105d3920f9b24fce0eb18e050551268dc25a9c5d4b987b7eca1e60b24e9
+ languageName: node
+ linkType: hard
+
+"@react-aria/tree@npm:^3.1.4":
+ version: 3.1.4
+ resolution: "@react-aria/tree@npm:3.1.4"
+ dependencies:
+ "@react-aria/gridlist": "npm:^3.14.1"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/tree": "npm:^3.9.3"
+ "@react-types/button": "npm:^3.14.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/ed3e48d011b846026b4c3bf78a96fbe91ff892d995a94e94ff6f5218dcbd6736660507dee1e06aac9ce48f9f66fdc8898cf8486192cecad428242b5b4930fde8
+ languageName: node
+ linkType: hard
+
+"@react-aria/utils@npm:^3.31.0":
+ version: 3.31.0
+ resolution: "@react-aria/utils@npm:3.31.0"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-stately/flags": "npm:^3.1.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/b021d2c3704ce934ec41cfc4d87fa6904fb3e007030e31b824cd8287053e866076cb7c7f072d6ed2fee82ca68f2e3f4677f3d58d7938e4b3315831f1fdea4d90
+ languageName: node
+ linkType: hard
+
+"@react-aria/virtualizer@npm:^4.1.10":
+ version: 4.1.10
+ resolution: "@react-aria/virtualizer@npm:4.1.10"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/virtualizer": "npm:^4.4.4"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/a9d1083ee2e424a33cbe5520fc86fd5194a77555b3be21792f648a723770998320220bc32e49ae1551ce5e00b024520ad0bca6ca0d7fdee86bc6216eb1cf78dc
+ languageName: node
+ linkType: hard
+
+"@react-aria/visually-hidden@npm:^3.8.28":
+ version: 3.8.28
+ resolution: "@react-aria/visually-hidden@npm:3.8.28"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/07e61b18d385127353014c2bd2bb9bba5035ac064988fa1bfc2f13d8050ccc9488891d4d3fbe6c79a808bfed7f06f1867b89ec1c975818712a36266040d76597
+ languageName: node
+ linkType: hard
+
+"@react-hook/intersection-observer@npm:^3.1.1":
+ version: 3.1.2
+ resolution: "@react-hook/intersection-observer@npm:3.1.2"
+ dependencies:
+ "@react-hook/passive-layout-effect": "npm:^1.2.0"
+ intersection-observer: "npm:^0.10.0"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/fee587ca06bdfe02aa3a30b95bb9fb63cc745aafa74a34e68b2c1938b6b34e8807f02e8a9f3d656ab4b399f30cd6aaa88ef7b486ec1ee1f848e6e726d73f256d
+ languageName: node
+ linkType: hard
+
+"@react-hook/passive-layout-effect@npm:^1.2.0":
+ version: 1.2.1
+ resolution: "@react-hook/passive-layout-effect@npm:1.2.1"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/217cb8aa90fb8e677672319a9a466d7752890cf4357c76df000b207696e9cc717cf2ee88080671cc9dae238a82f92093ab4f61ab2f6032d2a8db958fc7d99b5d
+ languageName: node
+ linkType: hard
+
+"@react-stately/autocomplete@npm:3.0.0-beta.3":
+ version: 3.0.0-beta.3
+ resolution: "@react-stately/autocomplete@npm:3.0.0-beta.3"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.8"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3920ce479e577730870bc6845ee888a44a9a1f90188cf68efb60c74a8264b5886c9059b0cedc07b82fcb26afd770bff5fc971bef0d93ff6ba7d07024a3e628cd
+ languageName: node
+ linkType: hard
+
+"@react-stately/calendar@npm:^3.9.0":
+ version: 3.9.0
+ resolution: "@react-stately/calendar@npm:3.9.0"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/calendar": "npm:^3.8.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/6021927974cfaee9b48e07c4a4744105d1076fbad841aafdbd8633deb105c56f724a2a2f51285b426755873c3c2c8ae677649c9c38431433e7cf9e8dea7b334c
+ languageName: node
+ linkType: hard
+
+"@react-stately/checkbox@npm:^3.7.2":
+ version: 3.7.2
+ resolution: "@react-stately/checkbox@npm:3.7.2"
+ dependencies:
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/checkbox": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e0dda0c536ee43b2b925b9bf2932fdf5d27370b55d069633bb1e4d6a9dfb0db783ed0119ab0893ec192aa4099da0341f39fd2065bfd2e6c89ca3997e92e83ca1
+ languageName: node
+ linkType: hard
+
+"@react-stately/collections@npm:^3.12.8":
+ version: 3.12.8
+ resolution: "@react-stately/collections@npm:3.12.8"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/da17c50d9323002f8dc05870265d54afa162575ceba83bc42d8ccd5d0ccf3bc0634d3896086e7975e1e7f1d7497de6f09ca0e5b82a697ad04349d5b59eca5a8f
+ languageName: node
+ linkType: hard
+
+"@react-stately/color@npm:^3.9.2":
+ version: 3.9.2
+ resolution: "@react-stately/color@npm:3.9.2"
+ dependencies:
+ "@internationalized/number": "npm:^3.6.5"
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/numberfield": "npm:^3.10.2"
+ "@react-stately/slider": "npm:^3.7.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/color": "npm:^3.1.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/1aaea8dc241911b634ef072352076a8b3eec25300bb6c88ff2ce6147f05d2504688465a0342272b74a8484cdf272d10d2d9abc6cbbb64a111228046369f92ce5
+ languageName: node
+ linkType: hard
+
+"@react-stately/combobox@npm:^3.12.0":
+ version: 3.12.0
+ resolution: "@react-stately/combobox@npm:3.12.0"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/combobox": "npm:^3.13.9"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3471a9c2f60e215784f63085b4ebcb2445ec804b3f0f50261933261afd7c9f7ed6d0675f00b5581aa43763c37561bcf6c6967a0ab485f403b1f8cf33a6b65d40
+ languageName: node
+ linkType: hard
+
+"@react-stately/data@npm:^3.14.1":
+ version: 3.14.1
+ resolution: "@react-stately/data@npm:3.14.1"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/ac069e41036fd534a8ec4e77847234abc35aa02c1901b0abc3af3d5cede0baadb5ce0d5f648fed5d6b2e37f673669f2b21fbf74cfb760f0e99734f1d9e841d33
+ languageName: node
+ linkType: hard
+
+"@react-stately/datepicker@npm:^3.15.2":
+ version: 3.15.2
+ resolution: "@react-stately/datepicker@npm:3.15.2"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/datepicker": "npm:^3.13.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/59ef011e4d56a3a40923d0a2ce02f6150ca4e5c7b9dac638d4f2b512af9a213ea6cda2d8d85b114758f2db2b06a8840a93c5b9c8c30859366249d58d960ed149
+ languageName: node
+ linkType: hard
+
+"@react-stately/disclosure@npm:^3.0.8":
+ version: 3.0.8
+ resolution: "@react-stately/disclosure@npm:3.0.8"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/8a36946589a199a788c07ef6ab04d0a30868db0484c660e5066ba38dd8bb8cef6e00fca324e7645b561fc7f3b3ffa152add555f2971c6be532d9cd3b67237b31
+ languageName: node
+ linkType: hard
+
+"@react-stately/dnd@npm:^3.7.1":
+ version: 3.7.1
+ resolution: "@react-stately/dnd@npm:3.7.1"
+ dependencies:
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/d5500055a5398914556eeb767b141e4192be446990dfecb385b0348a35dc0baf0b0a72567dde806369995e09f5dc27a13fe4261739da7bc8ba483875bd88e694
+ languageName: node
+ linkType: hard
+
+"@react-stately/flags@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "@react-stately/flags@npm:3.1.2"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10/a020c3680c36d9624f765c5916ce95d69959f64887928e8f380f11b5362bb0499a901a5842e4e12eb8e5a776af59212b1ee0c4c6a6681ce75f61dace8b2f9c40
+ languageName: node
+ linkType: hard
+
+"@react-stately/form@npm:^3.2.2":
+ version: 3.2.2
+ resolution: "@react-stately/form@npm:3.2.2"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e466309999cb2f28e892b11cdfc7cee2b7d08eefced41d9e346e2c4353dd5fc1864de145a6b332735cdc94b278ff8e6b599489d2aa6945ec5389171f89a633d1
+ languageName: node
+ linkType: hard
+
+"@react-stately/grid@npm:^3.11.6":
+ version: 3.11.6
+ resolution: "@react-stately/grid@npm:3.11.6"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/b6bc2a24ff37bdf375caa0f73dd6812ec4368f314f7754472f8b5de47ed296c4d3aadab787768c50d17d5606732291f05448891d5b08c0facaf8a1c9f7a70d31
+ languageName: node
+ linkType: hard
+
+"@react-stately/layout@npm:^4.5.1":
+ version: 4.5.1
+ resolution: "@react-stately/layout@npm:4.5.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/table": "npm:^3.15.1"
+ "@react-stately/virtualizer": "npm:^4.4.4"
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/table": "npm:^3.13.4"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/a4413d766efdea8decf4549cd773f5a94ce086690195223e605b78ccb9e1c0dd25011bd37a011b805c72a7a9f3a27dc1dd6c8684d9cc2a0b6efaa084fbd337a4
+ languageName: node
+ linkType: hard
+
+"@react-stately/list@npm:^3.13.1":
+ version: 3.13.1
+ resolution: "@react-stately/list@npm:3.13.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3da2ca14eaee5f0915c1c79df66268bf1e7cc5d60ce68170515180993941c4c8679033589a8bc38e08138b882a62a8ad69ca727a500c882bd0f4214ce9a69384
+ languageName: node
+ linkType: hard
+
+"@react-stately/menu@npm:^3.9.8":
+ version: 3.9.8
+ resolution: "@react-stately/menu@npm:3.9.8"
+ dependencies:
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-types/menu": "npm:^3.10.5"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7798aa91f0af2743d4d441be1a0bac54489413c187d0e926a336cf13482ad4d54c7215426cd6ea288b8bcf621406db6ebaca5209095be5bfb4dfe4464ece7875
+ languageName: node
+ linkType: hard
+
+"@react-stately/numberfield@npm:^3.10.2":
+ version: 3.10.2
+ resolution: "@react-stately/numberfield@npm:3.10.2"
+ dependencies:
+ "@internationalized/number": "npm:^3.6.5"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/numberfield": "npm:^3.8.15"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/5fd1d4cc1b90a7b03b98a82e47162044a78534291b9baa77847eddd4fb8040bddb91329dfcc7aa2a7cc38ace23817b6c9d52dd7b0f9bd7ce249f763006580797
+ languageName: node
+ linkType: hard
+
+"@react-stately/overlays@npm:^3.6.20":
+ version: 3.6.20
+ resolution: "@react-stately/overlays@npm:3.6.20"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/overlays": "npm:^3.9.2"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e9a3023b3fc3d9383d36dbd0a1e6a0d3d84350dee4f5ce6578464d613e063ca32dd6685c4fdfaa774ded24497c9e5c56363b9650c551d5d1a4dbb6d7d1d04382
+ languageName: node
+ linkType: hard
+
+"@react-stately/radio@npm:^3.11.2":
+ version: 3.11.2
+ resolution: "@react-stately/radio@npm:3.11.2"
+ dependencies:
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/radio": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/182946fb5e963fed62df59d8893ca92443e587bcf3d644b54b991b3acb2124b777af11884e6e31c953becc2dad2226a13238a219747fb596a7e08f0e31e97a22
+ languageName: node
+ linkType: hard
+
+"@react-stately/searchfield@npm:^3.5.16":
+ version: 3.5.16
+ resolution: "@react-stately/searchfield@npm:3.5.16"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/searchfield": "npm:^3.6.6"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/879e736c6888e36e227efffa665420c7e4fd2b319c2fb11661d6689fbbdad549129adc1c218e531f79f5e52be5b4c075c3c8120363ca3238fec24195c1976527
+ languageName: node
+ linkType: hard
+
+"@react-stately/select@npm:^3.8.0":
+ version: 3.8.0
+ resolution: "@react-stately/select@npm:3.8.0"
+ dependencies:
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/select": "npm:^3.11.0"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/d611bbd9d6b55a2dfb31455227efe54c9fc2684f37abd9ba5633b2d1b838bc8fc182e92e64e94ef17c8bbaf351a72daf6089c9d54ce8acad76d3f1be3bdb05aa
+ languageName: node
+ linkType: hard
+
+"@react-stately/selection@npm:^3.20.6":
+ version: 3.20.6
+ resolution: "@react-stately/selection@npm:3.20.6"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/b72941f9d23d285b826aa0a5be55e299d934b335d8ebe50c6b061f72b59f860a37549ac4fc0f41a7357eab0d40edb404207cca201fc78915b001b5532e45a9db
+ languageName: node
+ linkType: hard
+
+"@react-stately/slider@npm:^3.7.2":
+ version: 3.7.2
+ resolution: "@react-stately/slider@npm:3.7.2"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/slider": "npm:^3.8.2"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/c11a5374904434bfad5e87767900ed40e12d4341abf74d835b59ab26efb69ad669c86016926f83eae5fb3b3e39c175f775c4457b77eec64d73785c92369a79da
+ languageName: node
+ linkType: hard
+
+"@react-stately/table@npm:^3.15.1":
+ version: 3.15.1
+ resolution: "@react-stately/table@npm:3.15.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/flags": "npm:^3.1.2"
+ "@react-stately/grid": "npm:^3.11.6"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/table": "npm:^3.13.4"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/005292a0803de55179a9d27aa7bb68f44865fff64921141fac7aab0fbd5d2adff27a9a70db904f9a57bd6bc8db84036e8ad58b7a1ea57c990829500eb3f3ee6d
+ languageName: node
+ linkType: hard
+
+"@react-stately/tabs@npm:^3.8.6":
+ version: 3.8.6
+ resolution: "@react-stately/tabs@npm:3.8.6"
+ dependencies:
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/tabs": "npm:^3.3.19"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/ed71a8351b6b9db7c191cbb60acf72121751864b20c1d9a552438a1f4f6c96fdd41469396a17a86ef52287463ef3c8f217167f9498bc5f36e77a621415fac388
+ languageName: node
+ linkType: hard
+
+"@react-stately/toast@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "@react-stately/toast@npm:3.1.2"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ use-sync-external-store: "npm:^1.4.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/771eade3a6f84d7aac3f5766e9cc47826cdb179d58165d12650a843548c13cbf4b4bd3b804a1f367e884e0e28d1d51693cb6f5e7c8391ebdb233cb1dddc015c5
+ languageName: node
+ linkType: hard
+
+"@react-stately/toggle@npm:^3.9.2":
+ version: 3.9.2
+ resolution: "@react-stately/toggle@npm:3.9.2"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/checkbox": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/06f0e11cbbda0b479113df6c82e650db9ac772162566fd749da19a3ca274d25831849dc6c67383f4a440be82f61b5dff80e97513763f66bf3994a55febed5827
+ languageName: node
+ linkType: hard
+
+"@react-stately/tooltip@npm:^3.5.8":
+ version: 3.5.8
+ resolution: "@react-stately/tooltip@npm:3.5.8"
+ dependencies:
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-types/tooltip": "npm:^3.4.21"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/fbddb1f0efc6a6275f8f558bf80b984aea0c49f6c0d17fc42fc27e48a02a3c36bc9ca3eed6de9347a3b12289d21e22dc3de159b8b4b8ab21fe18218ab8a0e4ec
+ languageName: node
+ linkType: hard
+
+"@react-stately/tree@npm:^3.9.3":
+ version: 3.9.3
+ resolution: "@react-stately/tree@npm:3.9.3"
+ dependencies:
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/294cc70ffa08280a187a85f72c2402547d71295ddb95b2752fcfa395016947e7fe27116e970df597bab87319e18b3bf1f6b837124fb4bbda8686f7f0018b46ab
+ languageName: node
+ linkType: hard
+
+"@react-stately/utils@npm:^3.10.8":
+ version: 3.10.8
+ resolution: "@react-stately/utils@npm:3.10.8"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/7878ec47b132075566708bae630cb86d8237dde976eb3793bba43695abbb29fcaea9d00ea3f4f7244fcda253368f5b2b85263c37665c24e390500cdcc978c6fe
+ languageName: node
+ linkType: hard
+
+"@react-stately/virtualizer@npm:^4.4.4":
+ version: 4.4.4
+ resolution: "@react-stately/virtualizer@npm:4.4.4"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/c9d8d4b34250b8c0e91811bc618c654bac3e8eabe7a8ec119abc8f5dbbfa19faa4b31575eb0775773fda0f533fc2835e9a233b4ed0e4ae1835ddb5f0521a18aa
+ languageName: node
+ linkType: hard
+
+"@react-types/autocomplete@npm:3.0.0-alpha.35":
+ version: 3.0.0-alpha.35
+ resolution: "@react-types/autocomplete@npm:3.0.0-alpha.35"
+ dependencies:
+ "@react-types/combobox": "npm:^3.13.9"
+ "@react-types/searchfield": "npm:^3.6.6"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2a51111a94f5df1ce0b1b137a69ca783fa2fa399b4c305ebc7f137b0aa6a420cfe2a3925d40fda9a7d0d3b832d390823015959eee41b6c6b31f7a6b30739a596
+ languageName: node
+ linkType: hard
+
+"@react-types/breadcrumbs@npm:^3.7.17":
+ version: 3.7.17
+ resolution: "@react-types/breadcrumbs@npm:3.7.17"
+ dependencies:
+ "@react-types/link": "npm:^3.6.5"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e9754d1b8010f3cdfdfcd8abf03cdb5b37dc1038496fcc103569b9f349269b39680979c2293cdc04c376cd1ea7b97b00571d46677b9d4939a60dd01b55f765a6
+ languageName: node
+ linkType: hard
+
+"@react-types/button@npm:^3.14.1":
+ version: 3.14.1
+ resolution: "@react-types/button@npm:3.14.1"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/bbbf2e5db83f6b925af154199aaad438d950187862c4ca6f82122c0209632c0c358201ec9b0b503f9b96c8b5b765066af41c6472440ca7ea75b75031d7d9eacf
+ languageName: node
+ linkType: hard
+
+"@react-types/calendar@npm:^3.8.0":
+ version: 3.8.0
+ resolution: "@react-types/calendar@npm:3.8.0"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/06fe32c8e5d78eedcb511fa3d18f66582b5664ab85c572538e24b953e8204a7c5f98407df0d028625a1dfdd94223153e8e04d9d7feefd96f7533b90fb82be907
+ languageName: node
+ linkType: hard
+
+"@react-types/checkbox@npm:^3.10.2":
+ version: 3.10.2
+ resolution: "@react-types/checkbox@npm:3.10.2"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3d2f8468ce3326825bc820c958dc52b68f11a18ff15a68de2663115b168fecb165a2381cfecf2d7a254bfba66760590d8d76dabae5f48626a15eddf309206516
+ languageName: node
+ linkType: hard
+
+"@react-types/color@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "@react-types/color@npm:3.1.2"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/slider": "npm:^3.8.2"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/a41e786bd17b1815d5b7414f2dcbc79e655c3a4b8fe2dfa68c200c553f922bab5468a2ea272c76cdf6611d7d3f20518ca31b442729ef7b68141d91839e580410
+ languageName: node
+ linkType: hard
+
+"@react-types/combobox@npm:^3.13.9":
+ version: 3.13.9
+ resolution: "@react-types/combobox@npm:3.13.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/0583d24f38b965e5c2cd2b436a7ad374635e183dc7c12145ce9ed0a166d7b6e46ed4685a68c9fb24aed065d1fca644ca3b0606cb360ae5fac3a9881e88ee2f2b
+ languageName: node
+ linkType: hard
+
+"@react-types/datepicker@npm:^3.13.2":
+ version: 3.13.2
+ resolution: "@react-types/datepicker@npm:3.13.2"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@react-types/calendar": "npm:^3.8.0"
+ "@react-types/overlays": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/1f1686360f64051f5eff5e170ab78e890b20e07680b6031c96c77e47085ca022c55997018911095cd61076bdf63470f61c99ac25ef9b493420f69cde6e4763bd
+ languageName: node
+ linkType: hard
+
+"@react-types/dialog@npm:^3.5.22":
+ version: 3.5.22
+ resolution: "@react-types/dialog@npm:3.5.22"
+ dependencies:
+ "@react-types/overlays": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/dedac6cf8a85568344242eb6e7f9c6f9dd9fff31711d23586374a1cfc4f3b7b7bed43fdff633d54135792dcdd9941a8a15a34bbbec1a9d4caff7b869b35dd71e
+ languageName: node
+ linkType: hard
+
+"@react-types/form@npm:^3.7.16":
+ version: 3.7.16
+ resolution: "@react-types/form@npm:3.7.16"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3e8f156318746d31ef7470d366dcc1004f3a59b1a3a3f9e54331921a4b251ff51c6bf76a32be229f6d8c524b5b1292f3c1135597de6b0f52bae2d8c32a542a74
+ languageName: node
+ linkType: hard
+
+"@react-types/grid@npm:^3.3.6":
+ version: 3.3.6
+ resolution: "@react-types/grid@npm:3.3.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2b4be0fd8f6d07d3feca68039b89e0c13e1e566d27334a6ca7b6368f073ee55cf026833c5af664c78ccd137716aefd4f46b88f1b97709cd8080d7380c79454df
+ languageName: node
+ linkType: hard
+
+"@react-types/link@npm:^3.6.5":
+ version: 3.6.5
+ resolution: "@react-types/link@npm:3.6.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/59fb6011b146cffcdaae94e8fdd9241cb70697f7e518d39e3aacd14f244db6eea7ba3984d8b13d3ce601e6f160da36fd1bfa56827b2e1df728505e426a8db353
+ languageName: node
+ linkType: hard
+
+"@react-types/listbox@npm:^3.7.4":
+ version: 3.7.4
+ resolution: "@react-types/listbox@npm:3.7.4"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/79dd3f6a7284b74f5156cc2265b384d2074ddfb7b38e608be855ec4ad1234aa0e7cdbfc0d7ef899e34113781381a6ee18b820dbe3dbee67364c72ac240144522
+ languageName: node
+ linkType: hard
+
+"@react-types/menu@npm:^3.10.5":
+ version: 3.10.5
+ resolution: "@react-types/menu@npm:3.10.5"
+ dependencies:
+ "@react-types/overlays": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/0466f5b7602ccfc8cb8fec3cd2482d587acbfd1701d427c7d79a121eb3f2b137feca70e62fd401aea95022fd616460575c4d5dd541cf3d69d8644ca54a2446c8
+ languageName: node
+ linkType: hard
+
+"@react-types/meter@npm:^3.4.13":
+ version: 3.4.13
+ resolution: "@react-types/meter@npm:3.4.13"
+ dependencies:
+ "@react-types/progress": "npm:^3.5.16"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/28b519a4640c72732719c056903fcf4037582984d235c388095319b5005eb9d5d2698306d9f79d1ad61d594b8ceda115acae27c22e95cb771d0e07da30305708
+ languageName: node
+ linkType: hard
+
+"@react-types/numberfield@npm:^3.8.15":
+ version: 3.8.15
+ resolution: "@react-types/numberfield@npm:3.8.15"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/242584ab3ece90a5e26ebee9788c25fd44b85d6be405c5f31e08bda9d58ad8d7fcf199744a2fcd816275da13ae546ca0239175403e68788a43563f2a070c0574
+ languageName: node
+ linkType: hard
+
+"@react-types/overlays@npm:^3.9.2":
+ version: 3.9.2
+ resolution: "@react-types/overlays@npm:3.9.2"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/6cab7f2cbb813f710696095db1169f902cfe7e4a9aeef496848343ff5116be3782bfea68dffbeaf3f984a0475c2fb6c4a26ad9fb563172c4ec3e47110ca1e672
+ languageName: node
+ linkType: hard
+
+"@react-types/progress@npm:^3.5.16":
+ version: 3.5.16
+ resolution: "@react-types/progress@npm:3.5.16"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/315b34314dc135a6c9319f4ffd83570fac8c0da377b00d56f17c6eb3d416904682738b522b05d6d8cbb89d3ef92c5118bf8e58eca10fac121da6dcaa40563b8d
+ languageName: node
+ linkType: hard
+
+"@react-types/radio@npm:^3.9.2":
+ version: 3.9.2
+ resolution: "@react-types/radio@npm:3.9.2"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/3375d13bbeed28a1b959077e727b43324f4282cf43ec985edbaaa5b3e50b46199c083550882e2a9e4788c74555bfd25f5cc2b0351bf48a768f81a4ba6bf73222
+ languageName: node
+ linkType: hard
+
+"@react-types/searchfield@npm:^3.6.6":
+ version: 3.6.6
+ resolution: "@react-types/searchfield@npm:3.6.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/textfield": "npm:^3.12.6"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/942cb80234be5d61cae410c144873d75a243dec0bbf8bb0c696f13d66fd729dabb188bb6214d4bfadeb0d54e14eed3bb7e86c6721206bcb395658b613f22b53f
+ languageName: node
+ linkType: hard
+
+"@react-types/select@npm:^3.11.0":
+ version: 3.11.0
+ resolution: "@react-types/select@npm:3.11.0"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/6c431daa847a034ce06625fe75f220f301e8bdb50961c74e915f36919641f7907aa0d16d15127b9889853d197d66d964fd3726bd6c446b8aecf0e756e30e3925
+ languageName: node
+ linkType: hard
+
+"@react-types/shared@npm:^3.32.1":
+ version: 3.32.1
+ resolution: "@react-types/shared@npm:3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/33c39d1e23fd73a18519679742ba548c128097831710af4803bec244ae96800271f88dcc4eab958734fc501bb65c17e590028596733761610fb0103c5dea6e36
+ languageName: node
+ linkType: hard
+
+"@react-types/slider@npm:^3.8.2":
+ version: 3.8.2
+ resolution: "@react-types/slider@npm:3.8.2"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/cb9600a1842ace218be1a8bdb7b6785113c7165fde0cc76682b82cf7809927d2f45f95facb2570e7abb683f28f0a2ed0590c8ec8e948ed8dadffadb8905918d9
+ languageName: node
+ linkType: hard
+
+"@react-types/switch@npm:^3.5.15":
+ version: 3.5.15
+ resolution: "@react-types/switch@npm:3.5.15"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/f35c075188b93aa07b6ab367a6d5bcc4316bcd5481d47e1b0319944411e3a12b15455c443079159280b6d168da36271f3df8bc55808a7d8249b239f5886f0253
+ languageName: node
+ linkType: hard
+
+"@react-types/table@npm:^3.13.4":
+ version: 3.13.4
+ resolution: "@react-types/table@npm:3.13.4"
+ dependencies:
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/2f8c1878c8b9a6515a62c7592a335e9688c95a07e0445a891dd6069cbe26921573db6f7d6d2e0c22a8818ec5ef3f48f242ae24d955a1b18e7868f306fadfe7f5
+ languageName: node
+ linkType: hard
+
+"@react-types/tabs@npm:^3.3.19":
+ version: 3.3.19
+ resolution: "@react-types/tabs@npm:3.3.19"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/cdc3217251502c6f89621ab366a4d23e32a334dc3ca2f5366cd980fb828bb413be1262a76f4c4794a0908bfd02c3237a3608e283b02ef472707fb7c22b80b44b
+ languageName: node
+ linkType: hard
+
+"@react-types/textfield@npm:^3.12.6":
+ version: 3.12.6
+ resolution: "@react-types/textfield@npm:3.12.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/e223531d29bbaad566f142b44a0f2e42b4ce08eab5661962ad3451391311a604077c49181f89a407aecf8697d59d887f5524f6eff8e9fe7416afda6b1f3ac7b3
+ languageName: node
+ linkType: hard
+
+"@react-types/tooltip@npm:^3.4.21":
+ version: 3.4.21
+ resolution: "@react-types/tooltip@npm:3.4.21"
+ dependencies:
+ "@react-types/overlays": "npm:^3.9.2"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/50d1beea407a7e58ef8e3638c2517d8c90f6b15777d396b4adf7cffbd80d38dfb7d68d6a38127ed130bfe7b0c3116c5d499de3f7b6353f54d022a22739e0141d
+ languageName: node
+ linkType: hard
+
+"@remix-run/router@npm:1.14.2":
+ version: 1.14.2
+ resolution: "@remix-run/router@npm:1.14.2"
+ checksum: 10/422844e88b985f1e287301b302c6cf8169c9eea792f80d40464f97b25393bb2e697228ebd7a7b61444d5a51c5873c4a637aad20acde5886a5caf62e833c5ceee
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-adapter-wagmi@npm:^1.6.6":
+ version: 1.6.8
+ resolution: "@reown/appkit-adapter-wagmi@npm:1.6.8"
+ dependencies:
+ "@reown/appkit": "npm:1.6.8"
+ "@reown/appkit-common": "npm:1.6.8"
+ "@reown/appkit-core": "npm:1.6.8"
+ "@reown/appkit-polyfills": "npm:1.6.8"
+ "@reown/appkit-scaffold-ui": "npm:1.6.8"
+ "@reown/appkit-ui": "npm:1.6.8"
+ "@reown/appkit-utils": "npm:1.6.8"
+ "@reown/appkit-wallet": "npm:1.6.8"
+ "@wagmi/connectors": "npm:>=5.7"
+ "@walletconnect/universal-provider": "npm:2.18.0"
+ "@walletconnect/utils": "npm:2.18.0"
+ valtio: "npm:1.13.2"
+ peerDependencies:
+ "@wagmi/core": ">=2.16.4"
+ viem: ">=2.23.0"
+ wagmi: ">=2.14.11"
+ dependenciesMeta:
+ "@wagmi/connectors":
+ optional: true
+ checksum: 10/630b708e0da61998dd02f2dd21bee8087d659a34ed301c304c8e55ae3d16e474a22f68a5735bb3ea510e8536a126925aa216c03dc66b0a6e3489beaed5a2cd45
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-common@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-common@npm:1.6.8"
+ dependencies:
+ big.js: "npm:6.2.2"
+ dayjs: "npm:1.11.10"
+ viem: "npm:>=2.23.0"
+ checksum: 10/ad4b771f4079ba44f5dd3e40571aedc91f0b376ee7794c3efb987d751bec7221765e3051abbd90427a8574a1eb1b57fce44bbaed108ab4deb99d3a6fb5072bbb
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-core@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-core@npm:1.6.8"
+ dependencies:
+ "@reown/appkit-common": "npm:1.6.8"
+ "@reown/appkit-wallet": "npm:1.6.8"
+ "@walletconnect/universal-provider": "npm:2.18.0"
+ valtio: "npm:1.13.2"
+ viem: "npm:>=2.23"
+ checksum: 10/067683fc91c46e9d3e11c4b5dcf7a28d133b240b0d6382ee405d2fb6caca34eeef5db4ac239415d45413d1db6742d8c2975ba5e56524d90fbcb6c94f1d9170e9
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-polyfills@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-polyfills@npm:1.6.8"
+ dependencies:
+ buffer: "npm:6.0.3"
+ checksum: 10/48d8f82c7949a5f16432f2c1979b6ad2ddf13a6367ed8387ea54b87b9f31040f7b4cd3f2a4d0fd684bd7123727356315553f82941554ddcfc7160898d7bab093
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-scaffold-ui@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-scaffold-ui@npm:1.6.8"
+ dependencies:
+ "@reown/appkit-common": "npm:1.6.8"
+ "@reown/appkit-core": "npm:1.6.8"
+ "@reown/appkit-ui": "npm:1.6.8"
+ "@reown/appkit-utils": "npm:1.6.8"
+ "@reown/appkit-wallet": "npm:1.6.8"
+ lit: "npm:3.1.0"
+ checksum: 10/b9b2c6f92653aecc3614815c798d6d11672dcd5de86559cc049cd180a41bf8d8369cd9bab0bab3923f3dbc342ea21d763c7e2436e4d97452bc6cb227ba4ce944
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-ui@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-ui@npm:1.6.8"
+ dependencies:
+ lit: "npm:3.1.0"
+ qrcode: "npm:1.5.3"
+ checksum: 10/063ad1af00d925fa6aeaec15070797ed95b8b17a0e46e3188e8697ee140ab68056207f83f216177000b3a322ba80aa2d2da9da179de5abf28c2661d97d8beaba
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-utils@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-utils@npm:1.6.8"
+ dependencies:
+ "@reown/appkit-common": "npm:1.6.8"
+ "@reown/appkit-core": "npm:1.6.8"
+ "@reown/appkit-polyfills": "npm:1.6.8"
+ "@reown/appkit-wallet": "npm:1.6.8"
+ "@walletconnect/logger": "npm:2.1.2"
+ "@walletconnect/universal-provider": "npm:2.18.0"
+ valtio: "npm:1.13.2"
+ viem: "npm:>=2.23.0"
+ peerDependencies:
+ valtio: 1.13.2
+ checksum: 10/3325543c1c22981fe9079a7f87ee07c558243edfdfe0817b6d39b590dfbcb3e385c8af518c54b7907f8e41312d361d8064cbd87ccf9085b96b2a37d5af49d422
+ languageName: node
+ linkType: hard
+
+"@reown/appkit-wallet@npm:1.6.8":
+ version: 1.6.8
+ resolution: "@reown/appkit-wallet@npm:1.6.8"
+ dependencies:
+ "@reown/appkit-common": "npm:1.6.8"
+ "@reown/appkit-polyfills": "npm:1.6.8"
+ "@walletconnect/logger": "npm:2.1.2"
+ zod: "npm:3.22.4"
+ checksum: 10/c87dda0c18774e923dd7c202b163f803efa16d1b86bdfa0e803855179657d8e942e7afe686544a6c9d43d9c5185d854d4860c4708eb0a52b27a14062764e3448
+ languageName: node
+ linkType: hard
+
+"@reown/appkit@npm:1.6.8, @reown/appkit@npm:^1.6.6":
+ version: 1.6.8
+ resolution: "@reown/appkit@npm:1.6.8"
+ dependencies:
+ "@reown/appkit-common": "npm:1.6.8"
+ "@reown/appkit-core": "npm:1.6.8"
+ "@reown/appkit-polyfills": "npm:1.6.8"
+ "@reown/appkit-scaffold-ui": "npm:1.6.8"
+ "@reown/appkit-ui": "npm:1.6.8"
+ "@reown/appkit-utils": "npm:1.6.8"
+ "@reown/appkit-wallet": "npm:1.6.8"
+ "@walletconnect/types": "npm:2.18.0"
+ "@walletconnect/universal-provider": "npm:2.18.0"
+ "@walletconnect/utils": "npm:2.18.0"
+ bs58: "npm:6.0.0"
+ valtio: "npm:1.13.2"
+ viem: "npm:>=2.23.0"
+ checksum: 10/e6134c7230db5ba1e5e48649bd3d1a074746b039510b40e75629ea2b5d1b06f6646f3c6588b2f2aeef866c446dc1bb0360c44467e6fe3c7d0633d2d45ba4648a
+ languageName: node
+ linkType: hard
+
+"@repeaterjs/repeater@npm:^3.0.4":
+ version: 3.0.5
+ resolution: "@repeaterjs/repeater@npm:3.0.5"
+ checksum: 10/7478df13bd4631729021b2f43524fe71a4ed04b3c1c2125315078e3954f059f2ff4da5776f9be8f76008df9849e866e5ec56120f41b8bf66d2ec1a7c7bc53229
+ languageName: node
+ linkType: hard
+
+"@rescript/std@npm:9.0.0":
+ version: 9.0.0
+ resolution: "@rescript/std@npm:9.0.0"
+ checksum: 10/3f68fdc7daad61aba8369055611800347b9be3a621ed7d465abcd42600515ca78a0decff51f2d3d2ae9d31f31c58ae3bbb41e3d5fcd42e135f9b7ce0f8de8de7
+ languageName: node
+ linkType: hard
+
+"@rollup/plugin-babel@npm:^5.2.0":
+ version: 5.3.1
+ resolution: "@rollup/plugin-babel@npm:5.3.1"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.10.4"
+ "@rollup/pluginutils": "npm:^3.1.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ "@types/babel__core": ^7.1.9
+ rollup: ^1.20.0||^2.0.0
+ peerDependenciesMeta:
+ "@types/babel__core":
+ optional: true
+ checksum: 10/eb3ee5fedd86fa39ad70c2f8e05f14f8b185261b9f63699a01ac7eae664167f2e5cf87377434bf6aadad7eaf2b13c955ac26f8332a02f8d6a46b3c91990a9fbc
+ languageName: node
+ linkType: hard
+
+"@rollup/plugin-inject@npm:^5.0.5":
+ version: 5.0.5
+ resolution: "@rollup/plugin-inject@npm:5.0.5"
+ dependencies:
+ "@rollup/pluginutils": "npm:^5.0.1"
+ estree-walker: "npm:^2.0.2"
+ magic-string: "npm:^0.30.3"
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
@@ -9689,62 +11491,226 @@ __metadata:
languageName: node
linkType: hard
-"@svgr/plugin-jsx@npm:^8.1.0":
- version: 8.1.0
- resolution: "@svgr/plugin-jsx@npm:8.1.0"
+"@svgr/plugin-jsx@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "@svgr/plugin-jsx@npm:8.1.0"
+ dependencies:
+ "@babel/core": "npm:^7.21.3"
+ "@svgr/babel-preset": "npm:8.1.0"
+ "@svgr/hast-util-to-babel-ast": "npm:8.0.0"
+ svg-parser: "npm:^2.0.4"
+ peerDependencies:
+ "@svgr/core": "*"
+ checksum: 10/0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2
+ languageName: node
+ linkType: hard
+
+"@svgr/plugin-svgo@npm:^5.5.0":
+ version: 5.5.0
+ resolution: "@svgr/plugin-svgo@npm:5.5.0"
+ dependencies:
+ cosmiconfig: "npm:^7.0.0"
+ deepmerge: "npm:^4.2.2"
+ svgo: "npm:^1.2.2"
+ checksum: 10/7cc92eabcaffe117d6f9ac5ab80207dc43b17d4f42ab3f84da202f93a44081ed6adc0fe4e23c2629a8e6ef227649b1083234dfa0728726c471dd0b4eb68221ae
+ languageName: node
+ linkType: hard
+
+"@svgr/webpack@npm:^5.5.0":
+ version: 5.5.0
+ resolution: "@svgr/webpack@npm:5.5.0"
+ dependencies:
+ "@babel/core": "npm:^7.12.3"
+ "@babel/plugin-transform-react-constant-elements": "npm:^7.12.1"
+ "@babel/preset-env": "npm:^7.12.1"
+ "@babel/preset-react": "npm:^7.12.5"
+ "@svgr/core": "npm:^5.5.0"
+ "@svgr/plugin-jsx": "npm:^5.5.0"
+ "@svgr/plugin-svgo": "npm:^5.5.0"
+ loader-utils: "npm:^2.0.0"
+ checksum: 10/91f0b4176d22e8414d200f785d6cf9793ce39062f44be1eb2426c2f4415ee75d57e0670ae1e549b4a9222f20f4f06157fd9b121fa74c107d2cb821920874e79e
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:^0.5.0":
+ version: 0.5.17
+ resolution: "@swc/helpers@npm:0.5.17"
+ dependencies:
+ tslib: "npm:^2.8.0"
+ checksum: 10/1fc8312a78f1f99c8ec838585445e99763eeebff2356100738cdfdb8ad47d2d38df678ee6edd93a90fe319ac52da67adc14ac00eb82b606c5fb8ebc5d06ec2a2
+ languageName: node
+ linkType: hard
+
+"@szmarczak/http-timer@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "@szmarczak/http-timer@npm:5.0.1"
+ dependencies:
+ defer-to-connect: "npm:^2.0.1"
+ checksum: 10/fc9cb993e808806692e4a3337c90ece0ec00c89f4b67e3652a356b89730da98bc824273a6d67ca84d5f33cd85f317dcd5ce39d8cc0a2f060145a608a7cb8ce92
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/node@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/node@npm:4.1.17"
+ dependencies:
+ "@jridgewell/remapping": "npm:^2.3.4"
+ enhanced-resolve: "npm:^5.18.3"
+ jiti: "npm:^2.6.1"
+ lightningcss: "npm:1.30.2"
+ magic-string: "npm:^0.30.21"
+ source-map-js: "npm:^1.2.1"
+ tailwindcss: "npm:4.1.17"
+ checksum: 10/61c2ef99f1cc203b8da0624709287cd22c43d11d32c0eac4e58421c2347ed890d01b226c8bc4af4c0bc45579514c2d27b6012163fa9f44fa9f7f9be850cab72d
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-android-arm64@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-android-arm64@npm:4.1.17"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-darwin-arm64@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.1.17"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-darwin-x64@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-darwin-x64@npm:4.1.17"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-freebsd-x64@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.1.17"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.17"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.17"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-arm64-musl@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.1.17"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-x64-gnu@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.1.17"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-x64-musl@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.1.17"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-wasm32-wasi@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.1.17"
dependencies:
- "@babel/core": "npm:^7.21.3"
- "@svgr/babel-preset": "npm:8.1.0"
- "@svgr/hast-util-to-babel-ast": "npm:8.0.0"
- svg-parser: "npm:^2.0.4"
- peerDependencies:
- "@svgr/core": "*"
- checksum: 10/0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2
+ "@emnapi/core": "npm:^1.6.0"
+ "@emnapi/runtime": "npm:^1.6.0"
+ "@emnapi/wasi-threads": "npm:^1.1.0"
+ "@napi-rs/wasm-runtime": "npm:^1.0.7"
+ "@tybys/wasm-util": "npm:^0.10.1"
+ tslib: "npm:^2.4.0"
+ conditions: cpu=wasm32
languageName: node
linkType: hard
-"@svgr/plugin-svgo@npm:^5.5.0":
- version: 5.5.0
- resolution: "@svgr/plugin-svgo@npm:5.5.0"
- dependencies:
- cosmiconfig: "npm:^7.0.0"
- deepmerge: "npm:^4.2.2"
- svgo: "npm:^1.2.2"
- checksum: 10/7cc92eabcaffe117d6f9ac5ab80207dc43b17d4f42ab3f84da202f93a44081ed6adc0fe4e23c2629a8e6ef227649b1083234dfa0728726c471dd0b4eb68221ae
+"@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.17"
+ conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@svgr/webpack@npm:^5.5.0":
- version: 5.5.0
- resolution: "@svgr/webpack@npm:5.5.0"
- dependencies:
- "@babel/core": "npm:^7.12.3"
- "@babel/plugin-transform-react-constant-elements": "npm:^7.12.1"
- "@babel/preset-env": "npm:^7.12.1"
- "@babel/preset-react": "npm:^7.12.5"
- "@svgr/core": "npm:^5.5.0"
- "@svgr/plugin-jsx": "npm:^5.5.0"
- "@svgr/plugin-svgo": "npm:^5.5.0"
- loader-utils: "npm:^2.0.0"
- checksum: 10/91f0b4176d22e8414d200f785d6cf9793ce39062f44be1eb2426c2f4415ee75d57e0670ae1e549b4a9222f20f4f06157fd9b121fa74c107d2cb821920874e79e
+"@tailwindcss/oxide-win32-x64-msvc@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.1.17"
+ conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@swc/helpers@npm:^0.3.2":
- version: 0.3.17
- resolution: "@swc/helpers@npm:0.3.17"
+"@tailwindcss/oxide@npm:4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/oxide@npm:4.1.17"
dependencies:
- tslib: "npm:^2.4.0"
- checksum: 10/c848c89ff1fe9bfeac2dcb2b39c606942c3914ca5e0a364f5a6f0515a9985b012ce00cca4ae6255a2788dba51d437b1b004eaed1f339f618094c111340c980cd
+ "@tailwindcss/oxide-android-arm64": "npm:4.1.17"
+ "@tailwindcss/oxide-darwin-arm64": "npm:4.1.17"
+ "@tailwindcss/oxide-darwin-x64": "npm:4.1.17"
+ "@tailwindcss/oxide-freebsd-x64": "npm:4.1.17"
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "npm:4.1.17"
+ "@tailwindcss/oxide-linux-arm64-gnu": "npm:4.1.17"
+ "@tailwindcss/oxide-linux-arm64-musl": "npm:4.1.17"
+ "@tailwindcss/oxide-linux-x64-gnu": "npm:4.1.17"
+ "@tailwindcss/oxide-linux-x64-musl": "npm:4.1.17"
+ "@tailwindcss/oxide-wasm32-wasi": "npm:4.1.17"
+ "@tailwindcss/oxide-win32-arm64-msvc": "npm:4.1.17"
+ "@tailwindcss/oxide-win32-x64-msvc": "npm:4.1.17"
+ dependenciesMeta:
+ "@tailwindcss/oxide-android-arm64":
+ optional: true
+ "@tailwindcss/oxide-darwin-arm64":
+ optional: true
+ "@tailwindcss/oxide-darwin-x64":
+ optional: true
+ "@tailwindcss/oxide-freebsd-x64":
+ optional: true
+ "@tailwindcss/oxide-linux-arm-gnueabihf":
+ optional: true
+ "@tailwindcss/oxide-linux-arm64-gnu":
+ optional: true
+ "@tailwindcss/oxide-linux-arm64-musl":
+ optional: true
+ "@tailwindcss/oxide-linux-x64-gnu":
+ optional: true
+ "@tailwindcss/oxide-linux-x64-musl":
+ optional: true
+ "@tailwindcss/oxide-wasm32-wasi":
+ optional: true
+ "@tailwindcss/oxide-win32-arm64-msvc":
+ optional: true
+ "@tailwindcss/oxide-win32-x64-msvc":
+ optional: true
+ checksum: 10/143736d84d85489673eb90bbd52d03429f2f5cbef2bc838b424d15886e384b7171f0f8f44d7139e39d4c99c6457191258fcb5d2e3c5428b528eed5c67214d4e8
languageName: node
linkType: hard
-"@szmarczak/http-timer@npm:^5.0.1":
- version: 5.0.1
- resolution: "@szmarczak/http-timer@npm:5.0.1"
+"@tailwindcss/vite@npm:^4.1.17":
+ version: 4.1.17
+ resolution: "@tailwindcss/vite@npm:4.1.17"
dependencies:
- defer-to-connect: "npm:^2.0.1"
- checksum: 10/fc9cb993e808806692e4a3337c90ece0ec00c89f4b67e3652a356b89730da98bc824273a6d67ca84d5f33cd85f317dcd5ce39d8cc0a2f060145a608a7cb8ce92
+ "@tailwindcss/node": "npm:4.1.17"
+ "@tailwindcss/oxide": "npm:4.1.17"
+ tailwindcss: "npm:4.1.17"
+ peerDependencies:
+ vite: ^5.2.0 || ^6 || ^7
+ checksum: 10/23b066495d7897fec32337376350ddc4c8671f90ae03ff38654e5b51e409add652ab3282e73f6bd8acf180d020874f56e4a9852d3fb4bbabae806b6860dce2bf
languageName: node
linkType: hard
@@ -9808,6 +11774,15 @@ __metadata:
languageName: node
linkType: hard
+"@tybys/wasm-util@npm:^0.10.1":
+ version: 0.10.1
+ resolution: "@tybys/wasm-util@npm:0.10.1"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10/7fe0d239397aebb002ac4855d30c197c06a05ea8df8511350a3a5b1abeefe26167c60eda8a5508337571161e4c4b53d7c1342296123f9607af8705369de9fa7f
+ languageName: node
+ linkType: hard
+
"@typechain/ethers-v6@npm:^0.5.1":
version: 0.5.1
resolution: "@typechain/ethers-v6@npm:0.5.1"
@@ -10076,16 +12051,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/hoist-non-react-statics@npm:*":
- version: 3.3.5
- resolution: "@types/hoist-non-react-statics@npm:3.3.5"
- dependencies:
- "@types/react": "npm:*"
- hoist-non-react-statics: "npm:^3.3.0"
- checksum: 10/b645b062a20cce6ab1245ada8274051d8e2e0b2ee5c6bd58215281d0ec6dae2f26631af4e2e7c8abe238cdcee73fcaededc429eef569e70908f82d0cc0ea31d7
- languageName: node
- linkType: hard
-
"@types/html-minifier-terser@npm:^6.0.0":
version: 6.1.0
resolution: "@types/html-minifier-terser@npm:6.1.0"
@@ -10505,17 +12470,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/styled-components@npm:^5.1.34":
- version: 5.1.34
- resolution: "@types/styled-components@npm:5.1.34"
- dependencies:
- "@types/hoist-non-react-statics": "npm:*"
- "@types/react": "npm:*"
- csstype: "npm:^3.0.2"
- checksum: 10/3da291b46f03d378a0176c9d034deee7ee0684c5d62e1c5ce82f3be0972918eaa806f45c62e9a4f1c8d24c5ba6571c260caba2493fc7e82b528ac7d15903e2c1
- languageName: node
- linkType: hard
-
"@types/stylis@npm:4.2.5":
version: 4.2.5
resolution: "@types/stylis@npm:4.2.5"
@@ -12797,21 +14751,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-styled-components@npm:>= 1.12.0":
- version: 2.1.4
- resolution: "babel-plugin-styled-components@npm:2.1.4"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-module-imports": "npm:^7.22.5"
- "@babel/plugin-syntax-jsx": "npm:^7.22.5"
- lodash: "npm:^4.17.21"
- picomatch: "npm:^2.3.1"
- peerDependencies:
- styled-components: ">= 2"
- checksum: 10/34f10dd4d44cf1c8605097dd4796e2d1443266ebc686f10a9f56b5d1492b5c3de9c13d7e30b075756610adf592ed807cc8145189d00b4454f6af9879a19a5e0b
- languageName: node
- linkType: hard
-
"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0":
version: 7.0.0-beta.0
resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0"
@@ -13008,6 +14947,13 @@ __metadata:
languageName: node
linkType: hard
+"bignumber.js@npm:^9.1.2":
+ version: 9.3.1
+ resolution: "bignumber.js@npm:9.3.1"
+ checksum: 10/1be0372bf0d6d29d0a49b9e6a9cefbd54dad9918232ad21fcd4ec39030260773abf0c76af960c6b3b98d3115a3a71e61c6a111812d1395040a039cfa178e0245
+ languageName: node
+ linkType: hard
+
"binary-extensions@npm:^2.0.0":
version: 2.2.0
resolution: "binary-extensions@npm:2.2.0"
@@ -13989,7 +15935,7 @@ __metadata:
languageName: node
linkType: hard
-"classnames@npm:2.x, classnames@npm:^2.2.1, classnames@npm:^2.2.5, classnames@npm:^2.2.6, classnames@npm:^2.3.1, classnames@npm:^2.3.2":
+"classnames@npm:^2.2.5, classnames@npm:^2.3.2":
version: 2.5.1
resolution: "classnames@npm:2.5.1"
checksum: 10/58eb394e8817021b153bb6e7d782cfb667e4ab390cb2e9dac2fc7c6b979d1cc2b2a733093955fc5c94aa79ef5c8c89f11ab77780894509be6afbb91dddd79d15
@@ -14121,6 +16067,13 @@ __metadata:
languageName: node
linkType: hard
+"client-only@npm:^0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 10/0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8
+ languageName: node
+ linkType: hard
+
"clipboardy@npm:^4.0.0":
version: 4.0.0
resolution: "clipboardy@npm:4.0.0"
@@ -14179,7 +16132,7 @@ __metadata:
languageName: node
linkType: hard
-"clsx@npm:^2.0.0":
+"clsx@npm:^2.0.0, clsx@npm:^2.1.1":
version: 2.1.1
resolution: "clsx@npm:2.1.1"
checksum: 10/cdfb57fa6c7649bbff98d9028c2f0de2f91c86f551179541cf784b1cfdc1562dcb951955f46d54d930a3879931a980e32a46b598acaea274728dbe068deca919
@@ -14460,13 +16413,6 @@ __metadata:
languageName: node
linkType: hard
-"compute-scroll-into-view@npm:^1.0.20":
- version: 1.0.20
- resolution: "compute-scroll-into-view@npm:1.0.20"
- checksum: 10/a72e2595ccab57ca61bb14b368738c7473ebb96da6c85f4dbe00cb810570f71f52d9c26b4463f6092663cbf917d0693881eef4f8e8d4204d7581a83bef082afe
- languageName: node
- linkType: hard
-
"compute-scroll-into-view@npm:^2.0.4":
version: 2.0.4
resolution: "compute-scroll-into-view@npm:2.0.4"
@@ -15242,7 +17188,7 @@ __metadata:
languageName: node
linkType: hard
-"css-to-react-native@npm:3.2.0, css-to-react-native@npm:^3.0.0":
+"css-to-react-native@npm:3.2.0":
version: 3.2.0
resolution: "css-to-react-native@npm:3.2.0"
dependencies:
@@ -15462,7 +17408,7 @@ __metadata:
languageName: node
linkType: hard
-"date-fns@npm:^2.14.0, date-fns@npm:^2.29.3":
+"date-fns@npm:^2.29.3":
version: 2.30.0
resolution: "date-fns@npm:2.30.0"
dependencies:
@@ -15610,6 +17556,13 @@ __metadata:
languageName: node
linkType: hard
+"decimal.js@npm:^10.4.3":
+ version: 10.6.0
+ resolution: "decimal.js@npm:10.6.0"
+ checksum: 10/c0d45842d47c311d11b38ce7ccc911121953d4df3ebb1465d92b31970eb4f6738a065426a06094af59bee4b0d64e42e7c8984abd57b6767c64ea90cf90bb4a69
+ languageName: node
+ linkType: hard
+
"decode-named-character-reference@npm:^1.0.0":
version: 1.0.2
resolution: "decode-named-character-reference@npm:1.0.2"
@@ -15896,6 +17849,13 @@ __metadata:
languageName: node
linkType: hard
+"detect-libc@npm:^2.0.3":
+ version: 2.1.2
+ resolution: "detect-libc@npm:2.1.2"
+ checksum: 10/b736c8d97d5d46164c0d1bed53eb4e6a3b1d8530d460211e2d52f1c552875e706c58a5376854e4e54f8b828c9cada58c855288c968522eb93ac7696d65970766
+ languageName: node
+ linkType: hard
+
"detect-newline@npm:^3.0.0":
version: 3.1.0
resolution: "detect-newline@npm:3.1.0"
@@ -16060,13 +18020,6 @@ __metadata:
languageName: node
linkType: hard
-"dom-align@npm:^1.7.0":
- version: 1.12.4
- resolution: "dom-align@npm:1.12.4"
- checksum: 10/fbfb005fcb1572700dc164bdb0c5ba2a6b438ddf8b7fb1d7250b697f7899922364a671a37fa3f09b16596fc289d9bddeae6406a45f9587b91c24438590c73a2b
- languageName: node
- linkType: hard
-
"dom-converter@npm:^0.2.0":
version: 0.2.0
resolution: "dom-converter@npm:0.2.0"
@@ -16498,6 +18451,16 @@ __metadata:
languageName: node
linkType: hard
+"enhanced-resolve@npm:^5.18.3":
+ version: 5.18.3
+ resolution: "enhanced-resolve@npm:5.18.3"
+ dependencies:
+ graceful-fs: "npm:^4.2.4"
+ tapable: "npm:^2.2.0"
+ checksum: 10/a4d0a1eacba3079f617b68c8f7e17583c3cbc572055c2edca41c0fa0230a49f6e9b2c6ffd4128cc5f84e15ea6cc313ae2b01e1057fcd252fabef70220a5d9f6a
+ languageName: node
+ linkType: hard
+
"enquire.js@npm:^2.1.6":
version: 2.1.6
resolution: "enquire.js@npm:2.1.6"
@@ -19791,7 +21754,7 @@ __metadata:
languageName: node
linkType: hard
-"hoist-non-react-statics@npm:^3.0.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2":
+"hoist-non-react-statics@npm:^3.3.2":
version: 3.3.2
resolution: "hoist-non-react-statics@npm:3.3.2"
dependencies:
@@ -20370,6 +22333,18 @@ __metadata:
languageName: node
linkType: hard
+"intl-messageformat@npm:^10.1.0":
+ version: 10.7.18
+ resolution: "intl-messageformat@npm:10.7.18"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.3.6"
+ "@formatjs/fast-memoize": "npm:2.2.7"
+ "@formatjs/icu-messageformat-parser": "npm:2.11.4"
+ tslib: "npm:^2.8.0"
+ checksum: 10/96650d673912763d21bbfa14b50749b992d45f1901092a020e3155961e3c70f4644dd1731c3ecb1207a1eb94d84bedf4c34b1ac8127c29ad6b015b6a2a4045cb
+ languageName: node
+ linkType: hard
+
"invariant@npm:^2.2.4":
version: 2.2.4
resolution: "invariant@npm:2.2.4"
@@ -21919,6 +23894,15 @@ __metadata:
languageName: node
linkType: hard
+"jiti@npm:^2.6.1":
+ version: 2.6.1
+ resolution: "jiti@npm:2.6.1"
+ bin:
+ jiti: lib/jiti-cli.mjs
+ checksum: 10/8cd72c5fd03a0502564c3f46c49761090f6dadead21fa191b73535724f095ad86c2fa89ee6fe4bc3515337e8d406cc8fb2d37b73fa0c99a34584bac35cd4a4de
+ languageName: node
+ linkType: hard
+
"jose@npm:^5.0.0":
version: 5.2.0
resolution: "jose@npm:5.2.0"
@@ -22456,6 +24440,126 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-android-arm64@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-android-arm64@npm:1.30.2"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"lightningcss-darwin-arm64@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-darwin-arm64@npm:1.30.2"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"lightningcss-darwin-x64@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-darwin-x64@npm:1.30.2"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss-freebsd-x64@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-freebsd-x64@npm:1.30.2"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm-gnueabihf@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-linux-arm-gnueabihf@npm:1.30.2"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm64-gnu@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-linux-arm64-gnu@npm:1.30.2"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm64-musl@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-linux-arm64-musl@npm:1.30.2"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-x64-gnu@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-linux-x64-gnu@npm:1.30.2"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-x64-musl@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-linux-x64-musl@npm:1.30.2"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-win32-arm64-msvc@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-win32-arm64-msvc@npm:1.30.2"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"lightningcss-win32-x64-msvc@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss-win32-x64-msvc@npm:1.30.2"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss@npm:1.30.2":
+ version: 1.30.2
+ resolution: "lightningcss@npm:1.30.2"
+ dependencies:
+ detect-libc: "npm:^2.0.3"
+ lightningcss-android-arm64: "npm:1.30.2"
+ lightningcss-darwin-arm64: "npm:1.30.2"
+ lightningcss-darwin-x64: "npm:1.30.2"
+ lightningcss-freebsd-x64: "npm:1.30.2"
+ lightningcss-linux-arm-gnueabihf: "npm:1.30.2"
+ lightningcss-linux-arm64-gnu: "npm:1.30.2"
+ lightningcss-linux-arm64-musl: "npm:1.30.2"
+ lightningcss-linux-x64-gnu: "npm:1.30.2"
+ lightningcss-linux-x64-musl: "npm:1.30.2"
+ lightningcss-win32-arm64-msvc: "npm:1.30.2"
+ lightningcss-win32-x64-msvc: "npm:1.30.2"
+ dependenciesMeta:
+ lightningcss-android-arm64:
+ optional: true
+ lightningcss-darwin-arm64:
+ optional: true
+ lightningcss-darwin-x64:
+ optional: true
+ lightningcss-freebsd-x64:
+ optional: true
+ lightningcss-linux-arm-gnueabihf:
+ optional: true
+ lightningcss-linux-arm64-gnu:
+ optional: true
+ lightningcss-linux-arm64-musl:
+ optional: true
+ lightningcss-linux-x64-gnu:
+ optional: true
+ lightningcss-linux-x64-musl:
+ optional: true
+ lightningcss-win32-arm64-msvc:
+ optional: true
+ lightningcss-win32-x64-msvc:
+ optional: true
+ checksum: 10/d6cc06d9bac295589a49446e9c45a241dfa16f4f81a7318c26cbc0be3e189003ec0da5d9a0fd9bdffc63a3ce05878cc7329277eaac77a826e8b68c73dc96cfda
+ languageName: node
+ linkType: hard
+
"lilconfig@npm:2.1.0, lilconfig@npm:^2.0.3, lilconfig@npm:^2.1.0":
version: 2.1.0
resolution: "lilconfig@npm:2.1.0"
@@ -23121,6 +25225,15 @@ __metadata:
languageName: node
linkType: hard
+"magic-string@npm:^0.30.21":
+ version: 0.30.21
+ resolution: "magic-string@npm:0.30.21"
+ dependencies:
+ "@jridgewell/sourcemap-codec": "npm:^1.5.5"
+ checksum: 10/57d5691f41ed40d962d8bd300148114f53db67fadbff336207db10a99f2bdf4a1be9cac3a68ee85dba575912ee1d4402e4396408196ec2d3afd043b076156221
+ languageName: node
+ linkType: hard
+
"magic-string@npm:^0.30.3":
version: 0.30.11
resolution: "magic-string@npm:0.30.11"
@@ -28081,95 +30194,6 @@ __metadata:
languageName: node
linkType: hard
-"rc-align@npm:^4.0.0":
- version: 4.0.15
- resolution: "rc-align@npm:4.0.15"
- dependencies:
- "@babel/runtime": "npm:^7.10.1"
- classnames: "npm:2.x"
- dom-align: "npm:^1.7.0"
- rc-util: "npm:^5.26.0"
- resize-observer-polyfill: "npm:^1.5.1"
- peerDependencies:
- react: ">=16.9.0"
- react-dom: ">=16.9.0"
- checksum: 10/de1af4a58a371bc01cf5f327ce82b5e5631960c3e2dbae03532081e63bf86a809cebf9b8a231495db1dc659c28b6dbb35b0b33f2c29579b8b068388c1288c1b1
- languageName: node
- linkType: hard
-
-"rc-motion@npm:^2.0.0":
- version: 2.9.0
- resolution: "rc-motion@npm:2.9.0"
- dependencies:
- "@babel/runtime": "npm:^7.11.1"
- classnames: "npm:^2.2.1"
- rc-util: "npm:^5.21.0"
- peerDependencies:
- react: ">=16.9.0"
- react-dom: ">=16.9.0"
- checksum: 10/12bb290860865edbc8d08a731d377ccc62936a28bbfa83246cfca5b831843a6bfa8912c5ca3624823b28ab43e0ac46215f67e198729f6f6d91e826f64af514a9
- languageName: node
- linkType: hard
-
-"rc-slider@npm:^9.7.5":
- version: 9.7.5
- resolution: "rc-slider@npm:9.7.5"
- dependencies:
- "@babel/runtime": "npm:^7.10.1"
- classnames: "npm:^2.2.5"
- rc-tooltip: "npm:^5.0.1"
- rc-util: "npm:^5.16.1"
- shallowequal: "npm:^1.1.0"
- peerDependencies:
- react: ">=16.9.0"
- react-dom: ">=16.9.0"
- checksum: 10/500649e4d4d87bf3adb8a4318dddf095fffa46e8693a59a6ee7cc6d9c86bb76cedd83e4c4c9222b84419a5d86d69c16078aded06463139f58bfaff5fc6b3d868
- languageName: node
- linkType: hard
-
-"rc-tooltip@npm:^5.0.1":
- version: 5.3.1
- resolution: "rc-tooltip@npm:5.3.1"
- dependencies:
- "@babel/runtime": "npm:^7.11.2"
- classnames: "npm:^2.3.1"
- rc-trigger: "npm:^5.3.1"
- peerDependencies:
- react: ">=16.9.0"
- react-dom: ">=16.9.0"
- checksum: 10/c7627fbfae753a0e73548d1f93329a5132d76727f737d4eedc5a142f2950986f429dae11b5d8bc13f39bd72a631a22cb32f3b8aaad83bfdde770c19e220708bf
- languageName: node
- linkType: hard
-
-"rc-trigger@npm:^5.3.1":
- version: 5.3.4
- resolution: "rc-trigger@npm:5.3.4"
- dependencies:
- "@babel/runtime": "npm:^7.18.3"
- classnames: "npm:^2.2.6"
- rc-align: "npm:^4.0.0"
- rc-motion: "npm:^2.0.0"
- rc-util: "npm:^5.19.2"
- peerDependencies:
- react: ">=16.9.0"
- react-dom: ">=16.9.0"
- checksum: 10/32e0a3083ecea27b44d47c8638e399fadab658fe48a526b0f072011acd99f5b26871a9b3c07fc7f121ddbec900e41bf3eb9085a7be18aa66007aae7fd311b1f9
- languageName: node
- linkType: hard
-
-"rc-util@npm:^5.16.1, rc-util@npm:^5.19.2, rc-util@npm:^5.21.0, rc-util@npm:^5.26.0":
- version: 5.38.1
- resolution: "rc-util@npm:5.38.1"
- dependencies:
- "@babel/runtime": "npm:^7.18.3"
- react-is: "npm:^18.2.0"
- peerDependencies:
- react: ">=16.9.0"
- react-dom: ">=16.9.0"
- checksum: 10/77a69fe2bfb497061aa13a221d9af1da7993895f19ddd6561f69415bcca648c206dee9a2d52fa0382329fcc9dcfd88784c54e96014830b364dd16ecf1c396c57
- languageName: node
- linkType: hard
-
"rc@npm:1.2.8":
version: 1.2.8
resolution: "rc@npm:1.2.8"
@@ -28198,6 +30222,99 @@ __metadata:
languageName: node
linkType: hard
+"react-aria-components@npm:^1.7.1":
+ version: 1.13.0
+ resolution: "react-aria-components@npm:1.13.0"
+ dependencies:
+ "@internationalized/date": "npm:^3.10.0"
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-aria/autocomplete": "npm:3.0.0-rc.3"
+ "@react-aria/collections": "npm:^3.0.0"
+ "@react-aria/dnd": "npm:^3.11.3"
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/live-announcer": "npm:^3.4.4"
+ "@react-aria/overlays": "npm:^3.30.0"
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/toolbar": "npm:3.0.0-beta.21"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-aria/virtualizer": "npm:^4.1.10"
+ "@react-stately/autocomplete": "npm:3.0.0-beta.3"
+ "@react-stately/layout": "npm:^4.5.1"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-stately/table": "npm:^3.15.1"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-stately/virtualizer": "npm:^4.4.4"
+ "@react-types/form": "npm:^3.7.16"
+ "@react-types/grid": "npm:^3.3.6"
+ "@react-types/shared": "npm:^3.32.1"
+ "@react-types/table": "npm:^3.13.4"
+ "@swc/helpers": "npm:^0.5.0"
+ client-only: "npm:^0.0.1"
+ react-aria: "npm:^3.44.0"
+ react-stately: "npm:^3.42.0"
+ use-sync-external-store: "npm:^1.4.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/8bff1890ef342b0c32d6a50329ce4657bce2fcc91f2a2f903351f375354b186b47f265e7718caaff0ed9a5f630037f17649d85d00bc20a4928a6417204d75ff2
+ languageName: node
+ linkType: hard
+
+"react-aria@npm:^3.44.0":
+ version: 3.44.0
+ resolution: "react-aria@npm:3.44.0"
+ dependencies:
+ "@internationalized/string": "npm:^3.2.7"
+ "@react-aria/breadcrumbs": "npm:^3.5.29"
+ "@react-aria/button": "npm:^3.14.2"
+ "@react-aria/calendar": "npm:^3.9.2"
+ "@react-aria/checkbox": "npm:^3.16.2"
+ "@react-aria/color": "npm:^3.1.2"
+ "@react-aria/combobox": "npm:^3.14.0"
+ "@react-aria/datepicker": "npm:^3.15.2"
+ "@react-aria/dialog": "npm:^3.5.31"
+ "@react-aria/disclosure": "npm:^3.1.0"
+ "@react-aria/dnd": "npm:^3.11.3"
+ "@react-aria/focus": "npm:^3.21.2"
+ "@react-aria/gridlist": "npm:^3.14.1"
+ "@react-aria/i18n": "npm:^3.12.13"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/label": "npm:^3.7.22"
+ "@react-aria/landmark": "npm:^3.0.7"
+ "@react-aria/link": "npm:^3.8.6"
+ "@react-aria/listbox": "npm:^3.15.0"
+ "@react-aria/menu": "npm:^3.19.3"
+ "@react-aria/meter": "npm:^3.4.27"
+ "@react-aria/numberfield": "npm:^3.12.2"
+ "@react-aria/overlays": "npm:^3.30.0"
+ "@react-aria/progress": "npm:^3.4.27"
+ "@react-aria/radio": "npm:^3.12.2"
+ "@react-aria/searchfield": "npm:^3.8.9"
+ "@react-aria/select": "npm:^3.17.0"
+ "@react-aria/selection": "npm:^3.26.0"
+ "@react-aria/separator": "npm:^3.4.13"
+ "@react-aria/slider": "npm:^3.8.2"
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/switch": "npm:^3.7.8"
+ "@react-aria/table": "npm:^3.17.8"
+ "@react-aria/tabs": "npm:^3.10.8"
+ "@react-aria/tag": "npm:^3.7.2"
+ "@react-aria/textfield": "npm:^3.18.2"
+ "@react-aria/toast": "npm:^3.0.8"
+ "@react-aria/tooltip": "npm:^3.8.8"
+ "@react-aria/tree": "npm:^3.1.4"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-aria/visually-hidden": "npm:^3.8.28"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/46b428af3f68703c03d7836a79f288dae1e945cb34164220a61f57d77df0a5adfc6c4a4c993282f9dbf57f159c9d249e1d644b57b61caca3dec8af1285404ec1
+ languageName: node
+ linkType: hard
+
"react-chartjs-2@npm:^4.3.1":
version: 4.3.1
resolution: "react-chartjs-2@npm:4.3.1"
@@ -28569,6 +30686,42 @@ __metadata:
languageName: node
linkType: hard
+"react-stately@npm:^3.42.0":
+ version: 3.42.0
+ resolution: "react-stately@npm:3.42.0"
+ dependencies:
+ "@react-stately/calendar": "npm:^3.9.0"
+ "@react-stately/checkbox": "npm:^3.7.2"
+ "@react-stately/collections": "npm:^3.12.8"
+ "@react-stately/color": "npm:^3.9.2"
+ "@react-stately/combobox": "npm:^3.12.0"
+ "@react-stately/data": "npm:^3.14.1"
+ "@react-stately/datepicker": "npm:^3.15.2"
+ "@react-stately/disclosure": "npm:^3.0.8"
+ "@react-stately/dnd": "npm:^3.7.1"
+ "@react-stately/form": "npm:^3.2.2"
+ "@react-stately/list": "npm:^3.13.1"
+ "@react-stately/menu": "npm:^3.9.8"
+ "@react-stately/numberfield": "npm:^3.10.2"
+ "@react-stately/overlays": "npm:^3.6.20"
+ "@react-stately/radio": "npm:^3.11.2"
+ "@react-stately/searchfield": "npm:^3.5.16"
+ "@react-stately/select": "npm:^3.8.0"
+ "@react-stately/selection": "npm:^3.20.6"
+ "@react-stately/slider": "npm:^3.7.2"
+ "@react-stately/table": "npm:^3.15.1"
+ "@react-stately/tabs": "npm:^3.8.6"
+ "@react-stately/toast": "npm:^3.1.2"
+ "@react-stately/toggle": "npm:^3.9.2"
+ "@react-stately/tooltip": "npm:^3.5.8"
+ "@react-stately/tree": "npm:^3.9.3"
+ "@react-types/shared": "npm:^3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10/4913f8ae9beb909d07669b97c0960dadad72c3c9e572051158a64acac3eadc73ff495b3c145b3673c15494751506e5b8a666a59f65364900fa66917412971d32
+ languageName: node
+ linkType: hard
+
"react-style-singleton@npm:^2.2.2, react-style-singleton@npm:^2.2.3":
version: 2.2.3
resolution: "react-style-singleton@npm:2.2.3"
@@ -29719,15 +31872,6 @@ __metadata:
languageName: node
linkType: hard
-"scroll-into-view-if-needed@npm:^2.2.28":
- version: 2.2.31
- resolution: "scroll-into-view-if-needed@npm:2.2.31"
- dependencies:
- compute-scroll-into-view: "npm:^1.0.20"
- checksum: 10/8650d851b52e0321aeea4384cd47a6983592a2c6903604761c514ae4e0a7261b1a5bdab89910ad83ae9bf31692ec33a30272c1254b995871498b8dff2db2b02a
- languageName: node
- linkType: hard
-
"scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0":
version: 3.0.1
resolution: "scrypt-js@npm:3.0.1"
@@ -30035,7 +32179,7 @@ __metadata:
languageName: node
linkType: hard
-"shallowequal@npm:1.1.0, shallowequal@npm:^1.1.0":
+"shallowequal@npm:1.1.0":
version: 1.1.0
resolution: "shallowequal@npm:1.1.0"
checksum: 10/f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00
@@ -30259,15 +32403,6 @@ __metadata:
languageName: node
linkType: hard
-"smooth-scroll-into-view-if-needed@npm:^1.1.33":
- version: 1.1.33
- resolution: "smooth-scroll-into-view-if-needed@npm:1.1.33"
- dependencies:
- scroll-into-view-if-needed: "npm:^2.2.28"
- checksum: 10/0b0975ae13bdd51135c29e7d10d081fb123ea949e1c75e9d9be16cfd883e46f26797de4204080ffd3ddf73d6607ab321f1c49d715ea47d69ea47bf3f2f241ac1
- languageName: node
- linkType: hard
-
"snake-case@npm:^3.0.4":
version: 3.0.4
resolution: "snake-case@npm:3.0.4"
@@ -31138,28 +33273,6 @@ __metadata:
languageName: node
linkType: hard
-"styled-components@npm:^5.3.11":
- version: 5.3.11
- resolution: "styled-components@npm:5.3.11"
- dependencies:
- "@babel/helper-module-imports": "npm:^7.0.0"
- "@babel/traverse": "npm:^7.4.5"
- "@emotion/is-prop-valid": "npm:^1.1.0"
- "@emotion/stylis": "npm:^0.8.4"
- "@emotion/unitless": "npm:^0.7.4"
- babel-plugin-styled-components: "npm:>= 1.12.0"
- css-to-react-native: "npm:^3.0.0"
- hoist-non-react-statics: "npm:^3.0.0"
- shallowequal: "npm:^1.1.0"
- supports-color: "npm:^5.5.0"
- peerDependencies:
- react: ">= 16.8.0"
- react-dom: ">= 16.8.0"
- react-is: ">= 16.8.0"
- checksum: 10/7e1baee0f7b4479fe1a4064e4ae87e40f1ba583030d04827cef73fa7b36d3a91ed552dc76164d319216039f906af42a5229648c023482280fa4b5f71f00eef2d
- languageName: node
- linkType: hard
-
"styled-components@npm:^6.1.11":
version: 6.1.11
resolution: "styled-components@npm:6.1.11"
@@ -31265,7 +33378,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^5.3.0, supports-color@npm:^5.5.0":
+"supports-color@npm:^5.3.0":
version: 5.5.0
resolution: "supports-color@npm:5.5.0"
dependencies:
@@ -31409,6 +33522,29 @@ __metadata:
languageName: node
linkType: hard
+"tailwind-merge@npm:^3.0.2, tailwind-merge@npm:^3.4.0":
+ version: 3.4.0
+ resolution: "tailwind-merge@npm:3.4.0"
+ checksum: 10/d8caeb40ee3ec0eae2996f8a86d77c82a1751fc9c61a31d6153b4252cb734deaf98d351205aff5c204beee7b73497add8492411e75187acb8506b4d981e4ccc2
+ languageName: node
+ linkType: hard
+
+"tailwindcss-react-aria-components@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "tailwindcss-react-aria-components@npm:2.0.1"
+ peerDependencies:
+ tailwindcss: ^4.0.0
+ checksum: 10/852f18435c2703143aa447846f91ae49068d6242b15570bf939fbcbeef92b5234a195084790a01eddc23bbfa7b24ec5651e0a7d409e125f1d5f57fe7ff9aca58
+ languageName: node
+ linkType: hard
+
+"tailwindcss@npm:4.1.17, tailwindcss@npm:^4.1.17":
+ version: 4.1.17
+ resolution: "tailwindcss@npm:4.1.17"
+ checksum: 10/c0616126f706745cfad652da64dd4485f075d4799303790a361ffdc38b663d830f16375280c5de5fb0e04ada17eaa63b7e1c31776939f3bef922ffe59d704033
+ languageName: node
+ linkType: hard
+
"tailwindcss@npm:^3.0.2":
version: 3.4.1
resolution: "tailwindcss@npm:3.4.1"
@@ -31953,7 +34089,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.3.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.1":
+"tslib@npm:^2.3.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1":
version: 2.8.1
resolution: "tslib@npm:2.8.1"
checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7
@@ -32854,6 +34990,15 @@ __metadata:
languageName: node
linkType: hard
+"use-sync-external-store@npm:^1.4.0":
+ version: 1.6.0
+ resolution: "use-sync-external-store@npm:1.6.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ checksum: 10/b40ad2847ba220695bff2d4ba4f4d60391c0fb4fb012faa7a4c18eb38b69181936f5edc55a522c4d20a788d1a879b73c3810952c9d0fd128d01cb3f22042c09e
+ languageName: node
+ linkType: hard
+
"usehooks-ts@npm:^2.9.1":
version: 2.9.4
resolution: "usehooks-ts@npm:2.9.4"