From 6442eb12fb5455e664055f401b9d2f780d4deb08 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 20 Feb 2026 10:43:25 -0800 Subject: [PATCH] more visual adjustments --- messages/en-US.json | 2 +- .../settings/clients/user/[niceId]/layout.tsx | 2 +- src/app/[orgId]/settings/general/layout.tsx | 2 +- .../settings/sites/[niceId]/layout.tsx | 2 +- src/components/Layout.tsx | 2 +- src/components/LayoutHeader.tsx | 4 +- src/components/LayoutMobileMenu.tsx | 4 +- src/components/LayoutSidebar.tsx | 10 +- src/components/OrgSelector.tsx | 101 +++++++++--------- src/components/SidebarNav.tsx | 10 +- 10 files changed, 69 insertions(+), 70 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 92334feb..b7341839 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -2099,7 +2099,7 @@ "manageMachineClients": "Manage Machine Clients", "manageMachineClientsDescription": "Create and manage clients that servers and systems use to privately connect to resources", "machineClientsBannerTitle": "Servers & Automated Systems", - "machineClientsBannerDescription": "Machine clients are for servers and automated systems that are not associated with a specific user. They authenticate with an ID and secret, and can run with Pangolin CLI, Olm CLI, or Olm as a container.", + "machineClientsBannerDescription": "Machine clients are for servers and automated systems that are not associated with a specific user. They authenticate with an ID and secret, and can be deployed as a CLI or a container.", "machineClientsBannerPangolinCLI": "Pangolin CLI", "machineClientsBannerOlmCLI": "Olm CLI", "machineClientsBannerOlmContainer": "Container", diff --git a/src/app/[orgId]/settings/clients/user/[niceId]/layout.tsx b/src/app/[orgId]/settings/clients/user/[niceId]/layout.tsx index 7d8059aa..2d9934cb 100644 --- a/src/app/[orgId]/settings/clients/user/[niceId]/layout.tsx +++ b/src/app/[orgId]/settings/clients/user/[niceId]/layout.tsx @@ -47,7 +47,7 @@ export default async function SettingsLayout(props: SettingsLayoutProps) { /> -
+
{children}
diff --git a/src/app/[orgId]/settings/general/layout.tsx b/src/app/[orgId]/settings/general/layout.tsx index b69969f4..736e2037 100644 --- a/src/app/[orgId]/settings/general/layout.tsx +++ b/src/app/[orgId]/settings/general/layout.tsx @@ -78,7 +78,7 @@ export default async function GeneralSettingsPage({ description={t("orgSettingsDescription")} /> -
+
{children} diff --git a/src/app/[orgId]/settings/sites/[niceId]/layout.tsx b/src/app/[orgId]/settings/sites/[niceId]/layout.tsx index 30f9eff8..2554403e 100644 --- a/src/app/[orgId]/settings/sites/[niceId]/layout.tsx +++ b/src/app/[orgId]/settings/sites/[niceId]/layout.tsx @@ -56,7 +56,7 @@ export default async function SettingsLayout(props: SettingsLayoutProps) { /> -
+
{children}
diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index a7704c8f..90c7f093 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -75,7 +75,7 @@ export async function Layout({
{children} diff --git a/src/components/LayoutHeader.tsx b/src/components/LayoutHeader.tsx index bef01685..0b716e1e 100644 --- a/src/components/LayoutHeader.tsx +++ b/src/components/LayoutHeader.tsx @@ -48,8 +48,8 @@ export function LayoutHeader({ showTopBar }: LayoutHeaderProps) { }, [theme]); return ( -
-
+
+
diff --git a/src/components/LayoutMobileMenu.tsx b/src/components/LayoutMobileMenu.tsx index 2b5fb320..f24c2f13 100644 --- a/src/components/LayoutMobileMenu.tsx +++ b/src/components/LayoutMobileMenu.tsx @@ -73,14 +73,14 @@ export function LayoutMobileMenu({ {t("navbarDescription")}
-
+
-
+
{!isAdminPage && user.serverAdmin && (
diff --git a/src/components/LayoutSidebar.tsx b/src/components/LayoutSidebar.tsx index ac75047c..7b5bda60 100644 --- a/src/components/LayoutSidebar.tsx +++ b/src/components/LayoutSidebar.tsx @@ -145,7 +145,7 @@ export function LayoutSidebar({ )} />
-
+
{!isSidebarCollapsed && ( <> - {t("serverAdmin")} + + {t("serverAdmin")} + )} diff --git a/src/components/OrgSelector.tsx b/src/components/OrgSelector.tsx index 25ec3b5c..c0969e7e 100644 --- a/src/components/OrgSelector.tsx +++ b/src/components/OrgSelector.tsx @@ -6,8 +6,7 @@ import { CommandGroup, CommandInput, CommandItem, - CommandList, - CommandSeparator + CommandList } from "@app/components/ui/command"; import { Popover, @@ -25,6 +24,7 @@ import { useEnvContext } from "@app/hooks/useEnvContext"; import { cn } from "@app/lib/cn"; import { ListUserOrgsResponse } from "@server/routers/org"; import { Check, ChevronsUpDown, Plus, Building2, Users } from "lucide-react"; +import { Button } from "@app/components/ui/button"; import { usePathname, useRouter } from "next/navigation"; import { useMemo, useState } from "react"; import { useUserContext } from "@app/hooks/useUserContext"; @@ -93,50 +93,32 @@ export function OrgSelector({ )}
- - + + {/* Peak pointing up to the trigger */} +
+
+ - -
- {t("orgNotFound2")} -
-
- {(!env.flags.disableUserCreateOrg || user.serverAdmin) && ( - <> - - - { - setOpen(false); - router.push("/setup"); - }} - className="mx-2 rounded-md" - > -
- -
-
- - {t("setupNewOrg")} - - - {t("createNewOrgDescription")} - -
-
-
-
- - - )} - - + + +
+ {t("orgNotFound2")} +
+
+ {sortedOrgs.map((org) => ( -
- +
+
-
- +
+ {org.name}
@@ -173,7 +155,7 @@ export function OrgSelector({
))} - - + + + {(!env.flags.disableUserCreateOrg || + user.serverAdmin) && ( +
+ +
+ )} ); diff --git a/src/components/SidebarNav.tsx b/src/components/SidebarNav.tsx index 087f510b..c6c526bf 100644 --- a/src/components/SidebarNav.tsx +++ b/src/components/SidebarNav.tsx @@ -122,7 +122,7 @@ function CollapsibleNavItem({ "px-3 py-1.5", isActive ? "bg-secondary font-medium" - : "text-muted-foreground hover:bg-secondary/80 dark:hover:bg-secondary/50 hover:text-foreground", + : "text-foreground/80 hover:bg-secondary/80 dark:hover:bg-secondary/50 hover:text-foreground", isDisabled && "cursor-not-allowed opacity-60" )} disabled={isDisabled} @@ -290,7 +290,7 @@ export function SidebarNav({ isCollapsed ? "px-2 py-2 justify-center" : "px-3 py-1.5", isActive ? "bg-secondary font-medium" - : "text-muted-foreground hover:bg-secondary/80 dark:hover:bg-secondary/50 hover:text-foreground", + : "text-foreground/80 hover:bg-secondary/80 dark:hover:bg-secondary/50 hover:text-foreground", isDisabled && "cursor-not-allowed opacity-60" )} onClick={(e) => { @@ -361,7 +361,7 @@ export function SidebarNav({ className={cn( "flex items-center rounded-md transition-colors", "px-3 py-1.5", - "text-muted-foreground", + "text-foreground/80", isDisabled && "cursor-not-allowed opacity-60" )} > @@ -416,7 +416,7 @@ export function SidebarNav({ "flex items-center rounded-md transition-colors px-2 py-2 justify-center w-full", isActive || isChildActive ? "bg-secondary font-medium" - : "text-muted-foreground hover:bg-secondary/80 dark:hover:bg-secondary/50 hover:text-foreground", + : "text-foreground/80 hover:bg-secondary/80 dark:hover:bg-secondary/50 hover:text-foreground", isDisabled && "cursor-not-allowed opacity-60" )} @@ -471,7 +471,7 @@ export function SidebarNav({ "flex items-center rounded-md transition-colors px-3 py-1.5 text-sm", childIsActive ? "bg-secondary font-medium" - : "text-muted-foreground hover:bg-secondary/50 hover:text-foreground", + : "text-foreground/80 hover:bg-secondary/50 hover:text-foreground", childIsDisabled && "cursor-not-allowed opacity-60" )}