diff --git a/apps/browser-extension-wallet/src/lib/translations/en.json b/apps/browser-extension-wallet/src/lib/translations/en.json
index 4df8181120..79ecd3e268 100644
--- a/apps/browser-extension-wallet/src/lib/translations/en.json
+++ b/apps/browser-extension-wallet/src/lib/translations/en.json
@@ -417,12 +417,14 @@
"assetDetails.tokenInformation": "Token Information",
"assetDetails.fingerprint": "Fingerprint",
"assetDetails.policyId": "Policy ID",
+ "sideMenu.links.general": "General",
"sideMenu.links.tokens": "Tokens",
"sideMenu.links.nfts": "NFTs",
"sideMenu.links.activity": "Activity",
"sideMenu.links.staking": "Staking",
"sideMenu.links.dappStore": "Dapp Store",
"sideMenu.links.voting": "Voting",
+ "sideMenu.links.addNewWallet": "Add new wallet",
"sideMenu.links.addressBook": "Address Book",
"sideMenu.dapps.header": "Open Dapps",
"sideMenu.mode.light": "Light mode",
diff --git a/apps/browser-extension-wallet/src/providers/UIThemeProvider/context.tsx b/apps/browser-extension-wallet/src/providers/UIThemeProvider/context.tsx
new file mode 100644
index 0000000000..b5a0cdff17
--- /dev/null
+++ b/apps/browser-extension-wallet/src/providers/UIThemeProvider/context.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+import { ThemeColorScheme, ThemeProvider } from '@lace/ui';
+
+import { useTheme } from '@providers/ThemeProvider';
+
+interface Props {
+ children: React.ReactNode;
+}
+
+export const UIThemeProvider = ({ children }: Props): React.ReactElement => {
+ const { theme } = useTheme();
+ return (
+
+ {children}
+
+ );
+};
diff --git a/apps/browser-extension-wallet/src/providers/UIThemeProvider/index.ts b/apps/browser-extension-wallet/src/providers/UIThemeProvider/index.ts
new file mode 100644
index 0000000000..c38e8e8215
--- /dev/null
+++ b/apps/browser-extension-wallet/src/providers/UIThemeProvider/index.ts
@@ -0,0 +1 @@
+export * from './context';
diff --git a/apps/browser-extension-wallet/src/providers/index.ts b/apps/browser-extension-wallet/src/providers/index.ts
index df31b7f4f0..95c9462829 100644
--- a/apps/browser-extension-wallet/src/providers/index.ts
+++ b/apps/browser-extension-wallet/src/providers/index.ts
@@ -8,3 +8,4 @@ export * from './ThemeProvider';
export * from './ViewFlowProvider';
export * from './AnalyticsProvider';
export * from './BackgroundServiceAPI';
+export * from './UIThemeProvider';
diff --git a/apps/browser-extension-wallet/src/routes/wallet-paths.ts b/apps/browser-extension-wallet/src/routes/wallet-paths.ts
index 965651c41e..f27073a607 100644
--- a/apps/browser-extension-wallet/src/routes/wallet-paths.ts
+++ b/apps/browser-extension-wallet/src/routes/wallet-paths.ts
@@ -20,6 +20,12 @@ export const walletRoutePaths = {
create: '/setup/create',
hardware: '/setup/hardware',
restore: '/setup/restore'
+ },
+ newWallet: {
+ home: '/new-wallet',
+ create: '/new-wallet/create',
+ hardware: '/new-wallet/hardware',
+ restore: '/new-wallet/restore'
}
};
diff --git a/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SectionLayout.modules.scss b/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SectionLayout.modules.scss
index c23a28c9bc..71313dd823 100644
--- a/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SectionLayout.modules.scss
+++ b/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SectionLayout.modules.scss
@@ -95,6 +95,22 @@ $aside-width-large: 420px;
}
}
+.navigationBoxFlexible {
+ // TODO: update width from navigationBox to auto once feature is rollout
+ width: auto;
+}
+
+.topNavigationBox {
+ position: absolute;
+ right: 0;
+ // Large value to fit both send and receive buttons, plus dropdown trigger
+ width: 500px;
+}
+
+.sidePanelContentBox {
+ margin-top: 120px;
+}
+
.topBarAlignment {
display: flex;
width: 100%;
diff --git a/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SidePanel.tsx b/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SidePanel.tsx
index 5e1c3c7f25..6884f437db 100644
--- a/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SidePanel.tsx
+++ b/apps/browser-extension-wallet/src/views/browser-view/components/Layout/SidePanel.tsx
@@ -60,7 +60,8 @@ export const SidePanel = ({ sidePanelContent, isSidePanelFixed = true }: Section
const topNavigation = (
@@ -88,8 +89,17 @@ export const SidePanel = ({ sidePanelContent, isSidePanelFixed = true }: Section
[styles.topBarAlignment]: isScreenTooSmallForSidePanel
})}
>
- {topNavigation}
- {!isScreenTooSmallForSidePanel && sidePanelContent}
+ {process.env.USE_MULTI_WALLET === 'true' ? (
+ <>
+
{topNavigation}
+ {!isScreenTooSmallForSidePanel &&
{sidePanelContent}
}
+ >
+ ) : (
+ <>
+ {topNavigation}
+ {!isScreenTooSmallForSidePanel && sidePanelContent}
+ >
+ )}
)}
diff --git a/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.module.scss b/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.module.scss
index 07b061362d..73dd660165 100644
--- a/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.module.scss
+++ b/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.module.scss
@@ -50,6 +50,7 @@ $navigation-col-width: 215px;
padding-top: size_unit(3);
display: flex;
align-items: center;
+ position: relative;
.logo {
cursor: pointer;
@@ -62,3 +63,8 @@ $navigation-col-width: 215px;
cursor: pointer;
pointer-events: auto;
}
+
+.networkPillBox {
+ position: absolute;
+ left: 120px;
+}
diff --git a/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.tsx b/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.tsx
index 84527543ee..d321168afd 100644
--- a/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.tsx
+++ b/apps/browser-extension-wallet/src/views/browser-view/components/LeftSidePanel/LeftSidePanel.tsx
@@ -59,7 +59,11 @@ export const LeftSidePanel = ({ theme }: VerticalNavigationBarProps): React.Reac
{logo}
- {!isNarrowWindow &&
}
+ {!isNarrowWindow && (
+
+
+
+ )}
diff --git a/apps/browser-extension-wallet/src/views/browser-view/components/SendReceiveBox/SendReceiveBox.module.scss b/apps/browser-extension-wallet/src/views/browser-view/components/SendReceiveBox/SendReceiveBox.module.scss
index 21c496c405..80e5972997 100644
--- a/apps/browser-extension-wallet/src/views/browser-view/components/SendReceiveBox/SendReceiveBox.module.scss
+++ b/apps/browser-extension-wallet/src/views/browser-view/components/SendReceiveBox/SendReceiveBox.module.scss
@@ -1,4 +1,5 @@
.btn {
padding: 0 !important;
- --btn-medium-min-width: 0;
+ --btn-medium-min-width: 116px;
+ max-width: 116px;
}
diff --git a/apps/browser-extension-wallet/src/views/browser-view/index.tsx b/apps/browser-extension-wallet/src/views/browser-view/index.tsx
index eb6eeab97b..fc02e16ac7 100644
--- a/apps/browser-extension-wallet/src/views/browser-view/index.tsx
+++ b/apps/browser-extension-wallet/src/views/browser-view/index.tsx
@@ -8,7 +8,8 @@ import {
AxiosClientProvider,
AppSettingsProvider,
ThemeProvider,
- AnalyticsProvider
+ AnalyticsProvider,
+ UIThemeProvider
} from '@providers';
import { CardanoWalletManagerProvider } from '@providers/CardanoWalletManager';
import { StoreProvider } from '@stores';
@@ -43,15 +44,17 @@ const App = (): React.ReactElement => (
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-trigger.component.tsx b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-trigger.component.tsx
index 306b9ee4fc..a9090ba09a 100644
--- a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-trigger.component.tsx
+++ b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-trigger.component.tsx
@@ -58,6 +58,7 @@ export const Trigger = ({
title={{ text: title, type: 'button' }}
subtitle={subtitle}
type={type}
+ testId={makeTestId(id)}
/>
diff --git a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-card.component.tsx b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-card.component.tsx
index 6ae05a0cc8..4b7bdd9ef7 100644
--- a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-card.component.tsx
+++ b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-card.component.tsx
@@ -25,32 +25,44 @@ export interface Props {
delayMs?: number;
};
type: WalletType;
+ testId?: string;
}
+const makeTestId = (namespace = '', path = ''): string => {
+ return namespace === '' ? namespace : `${namespace}${path}`;
+};
+
export const WalletCard = ({
title,
subtitle,
profile,
type,
+ testId = '',
}: Readonly): JSX.Element => {
const Title = title.type === 'button' ? Text.Label : Text.Address;
return (
{profile === undefined ? (
-
+
) : (
)}
- {title.text}
+
+ {title.text}
+
-
+
{subtitle}
diff --git a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-icon.component.tsx b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-icon.component.tsx
index 0ee1e1e14f..1e4a9cfffa 100644
--- a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-icon.component.tsx
+++ b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-icon.component.tsx
@@ -12,6 +12,7 @@ import type { WalletType } from './profile-dropdown.data';
export interface Props {
type: WalletType;
+ testId?: string;
}
const icons: Record>> = {
@@ -20,13 +21,15 @@ const icons: Record>> = {
shared: SharedWallet,
};
-export const WalletIcon = ({ type }: Readonly): JSX.Element => {
+export const WalletIcon = ({ type, testId }: Readonly): JSX.Element => {
const Icon = icons[type];
return (
diff --git a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-option.component.tsx b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-option.component.tsx
index 3161624481..73d63e1494 100644
--- a/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-option.component.tsx
+++ b/packages/ui/src/design-system/profile-dropdown/profile-dropdown-wallet-option.component.tsx
@@ -26,6 +26,12 @@ export type Props = Omit, 'type'> & {
type: WalletType;
};
+const makeTestId = (namespace = '', path = ''): string => {
+ return namespace === ''
+ ? namespace
+ : `profile-dropdown-wallet-option-${namespace}${path}`;
+};
+
export const WalletOption = ({
id,
disabled,
@@ -42,6 +48,7 @@ export const WalletOption = ({
id={id}
disabled={disabled}
className={classNames(cx.button, cx.container, className)}
+ data-testid={makeTestId(id)}
>