diff --git a/.storybook/preview.ts b/.storybook/preview.ts
index 6802bc389..90518e863 100644
--- a/.storybook/preview.ts
+++ b/.storybook/preview.ts
@@ -5,7 +5,7 @@ import UserContextDecorator from "./decorators/UserContextDecorator.svelte";
import OrgContextDecorator from "./decorators/OrgContextDecorator.svelte";
import "@/style/kit.css";
-import "../src/lib/i18n/index.js";
+import "@/lib/i18n/index.js";
// Initialize MSW
initialize({
@@ -29,7 +29,9 @@ const preview: Preview = {
stores: {
page: {
url: "/",
- data: {},
+ data: {
+ breadcrumbs: [],
+ },
},
},
},
diff --git a/package.json b/package.json
index e8bbce250..6b2d50771 100644
--- a/package.json
+++ b/package.json
@@ -87,6 +87,7 @@
"test:unit": "vitest run",
"test:watch": "vitest watch",
"test:coverage": "vitest run --coverage",
+ "test:dev": "vitest watch --coverage",
"format": "prettier --write .",
"format:check": "prettier --check src",
"build-storybook": "storybook build",
diff --git a/src/api/document.js b/src/api/document.js
index 5539f52a9..5c43f2992 100644
--- a/src/api/document.js
+++ b/src/api/document.js
@@ -2,7 +2,7 @@
* Methods related to the DocumentCloud document API
*/
-import session from "./session.js";
+import session from "./session";
import { apiUrl } from "./base.js";
import { timeout } from "@/util/timeout.js";
import { queryBuilder } from "@/util/url.js";
diff --git a/src/lib/components/MainLayout.svelte b/src/lib/components/MainLayout.svelte
index 1d2716f27..6226ac849 100644
--- a/src/lib/components/MainLayout.svelte
+++ b/src/lib/components/MainLayout.svelte
@@ -1,21 +1,23 @@
+
+
+
+
+
+
+
+
+ {#each trail as { href, title }}
+
+ {#if href}
+ {title}
+ {:else}
+ {title}
+ {/if}
+ {/each}
+
+
+
+
diff --git a/src/lib/components/navigation/HelpMenu.svelte b/src/lib/components/navigation/HelpMenu.svelte
new file mode 100644
index 000000000..323eee0e7
--- /dev/null
+++ b/src/lib/components/navigation/HelpMenu.svelte
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/lib/components/navigation/LanguageMenu.svelte b/src/lib/components/navigation/LanguageMenu.svelte
new file mode 100644
index 000000000..f549ff20c
--- /dev/null
+++ b/src/lib/components/navigation/LanguageMenu.svelte
@@ -0,0 +1,60 @@
+
+
+{#if langs.length > 1}
+
+
+
+ {currentLang[2]}
+
+
+
+
+
+{/if}
+
+
diff --git a/src/lib/components/accounts/OrgMenu.svelte b/src/lib/components/navigation/OrgMenu.svelte
similarity index 100%
rename from src/lib/components/accounts/OrgMenu.svelte
rename to src/lib/components/navigation/OrgMenu.svelte
diff --git a/src/lib/components/accounts/UserMenu.svelte b/src/lib/components/navigation/UserMenu.svelte
similarity index 76%
rename from src/lib/components/accounts/UserMenu.svelte
rename to src/lib/components/navigation/UserMenu.svelte
index 0b78089cb..f5249c497 100644
--- a/src/lib/components/accounts/UserMenu.svelte
+++ b/src/lib/components/navigation/UserMenu.svelte
@@ -10,6 +10,7 @@
ChevronDown16,
Gear16,
Paperclip16,
+ Person16,
SignOut16,
} from "svelte-octicons";
import Menu from "@/common/Menu.svelte";
@@ -26,8 +27,14 @@
-
- {user.name}
+
+ {#if user.avatar_url}
+
+ {:else}
+
+ {/if}
+
+ {user.name ?? user.username}