Skip to content

Commit 9ba8282

Browse files
Merge pull request #474 from OpenSecretCloud/feature/product-redesign
Product redesign: design system, theme, and UI specification
2 parents 2d05f18 + 2c6aa42 commit 9ba8282

52 files changed

Lines changed: 3435 additions & 1018 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/product-redesign-spec.md

Lines changed: 1679 additions & 0 deletions
Large diffs are not rendered by default.

frontend/index.html

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
11
<!doctype html>
2-
<html lang="en" style="color-scheme: light dark">
2+
<html lang="en">
33
<head>
44
<meta charset="UTF-8" />
5+
<script>
6+
(function () {
7+
var stored = localStorage.getItem("maple-theme");
8+
var isDark =
9+
stored === "dark" ||
10+
(stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
11+
12+
if (isDark) {
13+
document.documentElement.classList.add("dark");
14+
document.documentElement.style.colorScheme = "dark";
15+
} else {
16+
document.documentElement.style.colorScheme = "light";
17+
}
18+
})();
19+
</script>
520
<meta
621
name="viewport"
722
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
@@ -47,6 +62,13 @@
4762
<link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png" />
4863
<link rel="manifest" href="/manifest.json" />
4964
<link rel="preload" href="/maple-logo.svg" as="image" type="image/svg+xml" />
65+
<link
66+
rel="preload"
67+
href="/fonts/Manrope-VariableFont_wght.ttf"
68+
as="font"
69+
type="font/ttf"
70+
crossorigin
71+
/>
5072
<!-- JSON-LD Structured Data -->
5173
<script type="application/ld+json">
5274
{
20.2 KB
Binary file not shown.
17.5 KB
Binary file not shown.
20.1 KB
Binary file not shown.
17.5 KB
Binary file not shown.
163 KB
Binary file not shown.

frontend/public/m-avatar.svg

Lines changed: 10 additions & 0 deletions
Loading

frontend/src/app.tsx

Lines changed: 65 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { NotFoundFallback } from "./components/NotFoundFallback";
1212
import { BillingServiceProvider } from "./components/BillingServiceProvider";
1313
import { DeepLinkHandler } from "./components/DeepLinkHandler";
1414
import { NotificationProvider } from "./contexts/NotificationContext";
15+
import { ThemeProvider } from "./contexts/ThemeContext";
1516
import { ProxyEventListener } from "./components/ProxyEventListener";
1617
import { UpdateEventListener } from "./components/UpdateEventListener";
1718
import { TTSProvider } from "./services/tts/TTSContext";
@@ -51,67 +52,69 @@ const queryClient = new QueryClient({
5152

5253
export default function App() {
5354
return (
54-
<NotificationProvider>
55-
<OpenSecretProvider
56-
apiUrl={import.meta.env.VITE_OPEN_SECRET_API_URL}
57-
clientId={import.meta.env.VITE_CLIENT_ID}
58-
pcrConfig={{
59-
pcr0Values: [
60-
"ed9109c16f30a470cf0ea2251816789b4ffa510c990118323ce94a2364b9bf05bdb8777959cbac86f5cabc4852e0da71",
61-
"4f2bcdf16c38842e1a45defd944d24ea58bb5bcb76491843223022acfe9eb6f1ff79b2cb9a6b2a9219daf9c7bf40fa37",
62-
"b8ee4b511ef2c9c6ab3e5c0840c5df2218fbb4d9df88254ece7af9462677e55aa5a03838f3ae432d86ca1cb6f992eee7",
63-
"33ffe5cae0f72cfe904bde8019ad98efa0ce5db2800f37c5d4149461023d1f70ea77e4f58ae1327ff46ed6a34045d6e2",
64-
"a1398fa2946b6ed4b96a1a992ee668aef3661329690f87d44cad5b646ce33e3b16a55674b1d6d54d115a5520801b97d6",
65-
"878dc4111e94722f3d33b202dc1368916af2eb486e74b3d94c9dfbcb3d981fa652827ea8e951ddfe06d1cefb482e431c",
66-
"4e242871fecc14933c889908a6a7593de574c2655a47ffa163c5fd7ba41d063152ef441bd555ac7f8569eac4fd7cbc8b",
67-
"095d38ba5c9c7ad1cfe5832d3dd8304b020392867aeef84f47e08b4305b867540b0ff5b2eb7d279de410e19ad937896e",
68-
"72c9a1dc207d919196c78f845c0f5fd4b3b3a690e024a3dd599f160be04875fbe52983773909a9f1584105f7d5103538",
69-
"a5ae21e211fa709dbced7fec7fff0eb86001174365a29271c07d7fb55fd9f37c7e2ddef1b01f39e977ca246277efeef2",
70-
"2520e5067830a34fc457b6360358e3754d53ab855f4a05a81312f2a2ed0bf893c5ec43d1325972efbe3a8f2b79303734",
71-
"a275a3877972c670c4f43e658cc9296838f79a96a26429877f74285c3a088d426583d3e2f6f99cfd96c70fdfa1475266",
72-
"8de5541089649e9edb2cd96fafb90716aa298483447e459708e8840b1f82a557c9d9ff6ae1fd2461b04310e7d9400d7d",
73-
"02a41da2df084fd1dee420d7717bef6dc0120f1d6a0b7fded3f4c7a539be4044b3061c71bc7156731db1fb66494097b0",
74-
"d9638aebacf2bf15ef0ab7d394320a3aa5ebde9f0e8911d2d2a0b49a2792f3825e6f6ca56960a63e91857398125d8038",
75-
"41786ecb8e012b910cd095ad5f8b5acefcaf80df3cf8e909499da45dd594c7c4c28302b5dde551d870555bd389a1e2c4"
76-
],
77-
pcr0DevValues: [
78-
"799600ba64a29e360b1651f4ced6c9ca5323094a45294551327b996062c3f21e6fef651e7e3d97ec8d25be87b9935b4f",
79-
"2fd9d4f716fd28336d96bc1a20b18a727c2d18f292577ba99323acfc8fb08959428a123b7acff478994c4f961247a0c7",
80-
"4292db2a90ce5ea6f6e2766e0238a328c81dc060a1f3175bced2e94a10e0490d3ff9125d774dafdff969ac661778e757",
81-
"f58409ae1bc8600c887fef5cc4055149c88c94b41c2b3e268826af7b43a1cdbacffdb2c96bf5972120c6460ab83fe89e",
82-
"6fcdb8086806a96c421c08eaf67cebf164aa898798b6f91b072c884773bc6ed64fe8f5af644fe35411195167b0e4a5f1",
83-
"0042958bde1fdd1bcbd4085ec94456c49e7bc5d2c3368f6f34edd6f339193cb7b53929d299eaf6a220ed5b7691f8618a",
84-
"583ac140e0454dd4766a07c147cb6d90d5430d6bc9c1571da19c781dea4027e1c434273caba584440180ca42c2db84d5",
85-
"4451e47ddb4be8a63492e62bc400e69d924188040805c658334f708e8682d308af3feb16018e98a5589c345d28437a6b",
86-
"5bc5a32791948dc7e315d01ec787307799bb6f70903d14c20dc47f19bb0ef3830eb3b2c5b04b7ae5b04717046b357a14",
87-
"4243170eeb11d38cf9bbee48b754bccfe97385b4639051efe97cda50086784cd32009dcb89a0fb1098558f22dc55b4e6",
88-
"be3de8fa74f42cc5165823da63aa283f1c8dfedb5e27e0bfa281c6dbd12d5b5bfd9bef591200175c44dbf0c504f5b0a5",
89-
"ab7e90e1894f75fbd423f3d0027973b611beff7402bd224dcd0f162968fb9678f08c92970d16a444edc934aa6ecd7d62",
90-
"8ba003e9d552d262cfd40a77eced199cfd0e776d1fd69d5ed6b7e6c6c92b91a0481e965247502f95a20478fe0a8f3de7",
91-
"2e6e8f86a657f6daed8e699c0b74bf02d6c7d6414638b1032e6addd2bca7d208a0e8aa4961eb8e926c54dc58fd63d401",
92-
"6b15f0571de13a6357e646bbe3772a8fe32fdd85b07ba97b3a6f95bdc43023dd9deb5710c26b75346de90157d9ecdd1f",
93-
"2596e528703abda188de27b6995f8d3cc553502e4acbb4d06db1dc8239b428638447adff38ccce358ef9fe34c2e0bccc",
94-
"e36d72989d89818b77ab1012cf875c46c0d7fb5389fd559b9ea0950231ae1cc17dd222e5d19a84363a27a3cd7f268de6"
95-
]
96-
}}
97-
>
98-
<LocalStateProvider>
99-
<OpenAIProvider>
100-
<QueryClientProvider client={queryClient}>
101-
<TooltipProvider>
102-
<TTSProvider>
103-
<BillingServiceProvider>
104-
<ProxyEventListener />
105-
<UpdateEventListener />
106-
<DeepLinkHandler />
107-
<InnerApp />
108-
</BillingServiceProvider>
109-
</TTSProvider>
110-
</TooltipProvider>
111-
</QueryClientProvider>
112-
</OpenAIProvider>
113-
</LocalStateProvider>
114-
</OpenSecretProvider>
115-
</NotificationProvider>
55+
<ThemeProvider>
56+
<NotificationProvider>
57+
<OpenSecretProvider
58+
apiUrl={import.meta.env.VITE_OPEN_SECRET_API_URL}
59+
clientId={import.meta.env.VITE_CLIENT_ID}
60+
pcrConfig={{
61+
pcr0Values: [
62+
"ed9109c16f30a470cf0ea2251816789b4ffa510c990118323ce94a2364b9bf05bdb8777959cbac86f5cabc4852e0da71",
63+
"4f2bcdf16c38842e1a45defd944d24ea58bb5bcb76491843223022acfe9eb6f1ff79b2cb9a6b2a9219daf9c7bf40fa37",
64+
"b8ee4b511ef2c9c6ab3e5c0840c5df2218fbb4d9df88254ece7af9462677e55aa5a03838f3ae432d86ca1cb6f992eee7",
65+
"33ffe5cae0f72cfe904bde8019ad98efa0ce5db2800f37c5d4149461023d1f70ea77e4f58ae1327ff46ed6a34045d6e2",
66+
"a1398fa2946b6ed4b96a1a992ee668aef3661329690f87d44cad5b646ce33e3b16a55674b1d6d54d115a5520801b97d6",
67+
"878dc4111e94722f3d33b202dc1368916af2eb486e74b3d94c9dfbcb3d981fa652827ea8e951ddfe06d1cefb482e431c",
68+
"4e242871fecc14933c889908a6a7593de574c2655a47ffa163c5fd7ba41d063152ef441bd555ac7f8569eac4fd7cbc8b",
69+
"095d38ba5c9c7ad1cfe5832d3dd8304b020392867aeef84f47e08b4305b867540b0ff5b2eb7d279de410e19ad937896e",
70+
"72c9a1dc207d919196c78f845c0f5fd4b3b3a690e024a3dd599f160be04875fbe52983773909a9f1584105f7d5103538",
71+
"a5ae21e211fa709dbced7fec7fff0eb86001174365a29271c07d7fb55fd9f37c7e2ddef1b01f39e977ca246277efeef2",
72+
"2520e5067830a34fc457b6360358e3754d53ab855f4a05a81312f2a2ed0bf893c5ec43d1325972efbe3a8f2b79303734",
73+
"a275a3877972c670c4f43e658cc9296838f79a96a26429877f74285c3a088d426583d3e2f6f99cfd96c70fdfa1475266",
74+
"8de5541089649e9edb2cd96fafb90716aa298483447e459708e8840b1f82a557c9d9ff6ae1fd2461b04310e7d9400d7d",
75+
"02a41da2df084fd1dee420d7717bef6dc0120f1d6a0b7fded3f4c7a539be4044b3061c71bc7156731db1fb66494097b0",
76+
"d9638aebacf2bf15ef0ab7d394320a3aa5ebde9f0e8911d2d2a0b49a2792f3825e6f6ca56960a63e91857398125d8038",
77+
"41786ecb8e012b910cd095ad5f8b5acefcaf80df3cf8e909499da45dd594c7c4c28302b5dde551d870555bd389a1e2c4"
78+
],
79+
pcr0DevValues: [
80+
"799600ba64a29e360b1651f4ced6c9ca5323094a45294551327b996062c3f21e6fef651e7e3d97ec8d25be87b9935b4f",
81+
"2fd9d4f716fd28336d96bc1a20b18a727c2d18f292577ba99323acfc8fb08959428a123b7acff478994c4f961247a0c7",
82+
"4292db2a90ce5ea6f6e2766e0238a328c81dc060a1f3175bced2e94a10e0490d3ff9125d774dafdff969ac661778e757",
83+
"f58409ae1bc8600c887fef5cc4055149c88c94b41c2b3e268826af7b43a1cdbacffdb2c96bf5972120c6460ab83fe89e",
84+
"6fcdb8086806a96c421c08eaf67cebf164aa898798b6f91b072c884773bc6ed64fe8f5af644fe35411195167b0e4a5f1",
85+
"0042958bde1fdd1bcbd4085ec94456c49e7bc5d2c3368f6f34edd6f339193cb7b53929d299eaf6a220ed5b7691f8618a",
86+
"583ac140e0454dd4766a07c147cb6d90d5430d6bc9c1571da19c781dea4027e1c434273caba584440180ca42c2db84d5",
87+
"4451e47ddb4be8a63492e62bc400e69d924188040805c658334f708e8682d308af3feb16018e98a5589c345d28437a6b",
88+
"5bc5a32791948dc7e315d01ec787307799bb6f70903d14c20dc47f19bb0ef3830eb3b2c5b04b7ae5b04717046b357a14",
89+
"4243170eeb11d38cf9bbee48b754bccfe97385b4639051efe97cda50086784cd32009dcb89a0fb1098558f22dc55b4e6",
90+
"be3de8fa74f42cc5165823da63aa283f1c8dfedb5e27e0bfa281c6dbd12d5b5bfd9bef591200175c44dbf0c504f5b0a5",
91+
"ab7e90e1894f75fbd423f3d0027973b611beff7402bd224dcd0f162968fb9678f08c92970d16a444edc934aa6ecd7d62",
92+
"8ba003e9d552d262cfd40a77eced199cfd0e776d1fd69d5ed6b7e6c6c92b91a0481e965247502f95a20478fe0a8f3de7",
93+
"2e6e8f86a657f6daed8e699c0b74bf02d6c7d6414638b1032e6addd2bca7d208a0e8aa4961eb8e926c54dc58fd63d401",
94+
"6b15f0571de13a6357e646bbe3772a8fe32fdd85b07ba97b3a6f95bdc43023dd9deb5710c26b75346de90157d9ecdd1f",
95+
"2596e528703abda188de27b6995f8d3cc553502e4acbb4d06db1dc8239b428638447adff38ccce358ef9fe34c2e0bccc",
96+
"e36d72989d89818b77ab1012cf875c46c0d7fb5389fd559b9ea0950231ae1cc17dd222e5d19a84363a27a3cd7f268de6"
97+
]
98+
}}
99+
>
100+
<LocalStateProvider>
101+
<OpenAIProvider>
102+
<QueryClientProvider client={queryClient}>
103+
<TooltipProvider>
104+
<TTSProvider>
105+
<BillingServiceProvider>
106+
<ProxyEventListener />
107+
<UpdateEventListener />
108+
<DeepLinkHandler />
109+
<InnerApp />
110+
</BillingServiceProvider>
111+
</TTSProvider>
112+
</TooltipProvider>
113+
</QueryClientProvider>
114+
</OpenAIProvider>
115+
</LocalStateProvider>
116+
</OpenSecretProvider>
117+
</NotificationProvider>
118+
</ThemeProvider>
116119
);
117120
}

0 commit comments

Comments
 (0)