diff --git a/Frontend/src/app.tsx b/Frontend/src/app.tsx index 9d79022..50b94e2 100644 --- a/Frontend/src/app.tsx +++ b/Frontend/src/app.tsx @@ -3,6 +3,7 @@ import type { JSX } from "solid-js"; import { AppShell } from "./components/shell/AppShell/AppShell"; import "./styles/main.scss"; +import "./styles/user-overrides.scss"; const App = (): JSX.Element => { return ; diff --git a/Frontend/src/components/shell/AppShell/AppShell.tsx b/Frontend/src/components/shell/AppShell/AppShell.tsx index 86c9fdf..f529a0a 100644 --- a/Frontend/src/components/shell/AppShell/AppShell.tsx +++ b/Frontend/src/components/shell/AppShell/AppShell.tsx @@ -79,7 +79,7 @@ export const AppShell = (): JSX.Element => { }; return ( -
+
{ [styles.bodyRailCollapsed]: isRailCollapsed(), [styles.bodySidebarCollapsed]: isSidebarCollapsed(), }} + data-slot="shell-body" + data-rail-collapsed={isRailCollapsed() ? "true" : "false"} + data-sidebar-collapsed={isSidebarCollapsed() ? "true" : "false"} > {/* Left server rail */} -
+
{/* Sidebar + main workspace frame */} -
-
+
+
{ />
-
+
{/* On mobile, top-bar menus become full workspace views instead of popovers. */} { /> } > -
+
@@ -140,7 +143,7 @@ export const AppShell = (): JSX.Element => {
{/* Floating server dock overlay */} -
+
diff --git a/Frontend/src/components/shell/MobileWorkspaceBrowser/MobileWorkspaceBrowser.tsx b/Frontend/src/components/shell/MobileWorkspaceBrowser/MobileWorkspaceBrowser.tsx index ed4ab8c..0ee9654 100644 --- a/Frontend/src/components/shell/MobileWorkspaceBrowser/MobileWorkspaceBrowser.tsx +++ b/Frontend/src/components/shell/MobileWorkspaceBrowser/MobileWorkspaceBrowser.tsx @@ -7,6 +7,7 @@ import { createWorkspaceStaticTarget, createWorkspaceSurfaceTarget, createWorkspaceTreeTarget, + getWorkspaceNodeIcon, workspaceStaticItems, workspaceTree, type SidebarItem, @@ -25,7 +26,7 @@ type MobileWorkspaceBrowserProps = { const TreeRow = (props: { node: WorkspaceTreeNode; depth?: number }): JSX.Element => { const depth = props.depth ?? 0; - const Icon = props.node.icon; + const Icon = getWorkspaceNodeIcon(props.node); const hasChildren = (props.node.children?.length ?? 0) > 0; return ( @@ -37,6 +38,10 @@ const TreeRow = (props: { node: WorkspaceTreeNode; depth?: number }): JSX.Elemen }} type="button" style={{ "--tree-depth": `${depth}` }} + data-slot="mobile-workspace-tree-row" + data-kind={props.node.kind} + data-item-type={props.node.kind === "item" ? props.node.itemType : undefined} + data-active={props.node.active ? "true" : "false"} > @@ -59,7 +64,7 @@ const StaticRow = (props: { item: SidebarItem }): JSX.Element => { const Icon = props.item.icon; return ( - -
-
-
+
+
Workspace -
    +
      {(item): JSX.Element => }
-
+
Items -
    +
0}> -
+
More -
    +
diff --git a/Frontend/src/components/shell/ServerDock/ServerDock.tsx b/Frontend/src/components/shell/ServerDock/ServerDock.tsx index c343de7..6c71b16 100644 --- a/Frontend/src/components/shell/ServerDock/ServerDock.tsx +++ b/Frontend/src/components/shell/ServerDock/ServerDock.tsx @@ -6,12 +6,12 @@ import styles from "./ServerDock.module.scss"; export const ServerDock = (): JSX.Element => { return ( -
-
+
+
-
+
{activeServer.name} {
0}> -
+
{(item): JSX.Element => { const Icon = item.icon; return ( - diff --git a/Frontend/src/components/shell/TopBar/NotificationsMenu.tsx b/Frontend/src/components/shell/TopBar/NotificationsMenu.tsx index 35121bc..217864b 100644 --- a/Frontend/src/components/shell/TopBar/NotificationsMenu.tsx +++ b/Frontend/src/components/shell/TopBar/NotificationsMenu.tsx @@ -27,9 +27,11 @@ export const NotificationsMenu = (props: NotificationsMenuProps): JSX.Element => role="menu" aria-label="Notifications" ref={props.menuRef} + data-ui="notifications-menu" + data-variant={variant} > -
-
+
+
Notifications {unreadNotificationCount > 0 @@ -45,7 +47,7 @@ export const NotificationsMenu = (props: NotificationsMenuProps): JSX.Element =>
-
+