From e60c5399af0d71fd83fcaec8c3ce80001f0121ee Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Tue, 28 Apr 2026 19:29:14 +0530 Subject: [PATCH 01/76] feat(icon-rail): integrate user profile component and enhance layout with user settings options --- .../layout/ui/icon-rail/IconRail.tsx | 24 ++++++++++++-- .../layout/ui/shell/LayoutShell.tsx | 6 ++++ .../components/layout/ui/sidebar/Sidebar.tsx | 20 +++++++----- .../layout/ui/sidebar/SidebarUserProfile.tsx | 32 +++++++++++++------ 4 files changed, 62 insertions(+), 20 deletions(-) diff --git a/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx b/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx index 062e8dcb7..756d6ffaf 100644 --- a/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx +++ b/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx @@ -6,6 +6,8 @@ import { ScrollArea } from "@/components/ui/scroll-area"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import type { SearchSpace } from "../../types/layout.types"; +import type { User } from "../../types/layout.types"; +import { SidebarUserProfile } from "../sidebar/SidebarUserProfile"; import { SearchSpaceAvatar } from "./SearchSpaceAvatar"; interface IconRailProps { @@ -15,6 +17,11 @@ interface IconRailProps { onSearchSpaceDelete?: (searchSpace: SearchSpace) => void; onSearchSpaceSettings?: (searchSpace: SearchSpace) => void; onAddSearchSpace: () => void; + user: User; + onUserSettings?: () => void; + onLogout?: () => void; + theme?: string; + setTheme?: (theme: "light" | "dark" | "system") => void; className?: string; } @@ -25,11 +32,16 @@ export function IconRail({ onSearchSpaceDelete, onSearchSpaceSettings, onAddSearchSpace, + user, + onUserSettings, + onLogout, + theme, + setTheme, className, }: IconRailProps) { return ( -
- +
+
{searchSpaces.map((searchSpace) => (
+
); } diff --git a/surfsense_web/components/layout/ui/shell/LayoutShell.tsx b/surfsense_web/components/layout/ui/shell/LayoutShell.tsx index d41dd9e6d..4ef216bae 100644 --- a/surfsense_web/components/layout/ui/shell/LayoutShell.tsx +++ b/surfsense_web/components/layout/ui/shell/LayoutShell.tsx @@ -387,6 +387,11 @@ export function LayoutShell({ onSearchSpaceDelete={onSearchSpaceDelete} onSearchSpaceSettings={onSearchSpaceSettings} onAddSearchSpace={onAddSearchSpace} + user={user} + onUserSettings={onUserSettings} + onLogout={onLogout} + theme={theme} + setTheme={setTheme} />
@@ -423,6 +428,7 @@ export function LayoutShell({ pageUsage={pageUsage} theme={theme} setTheme={setTheme} + renderUserProfile={false} className={cn( "flex shrink-0 transition-[border-radius] duration-200", anySlideOutOpen ? "rounded-l-xl delay-0" : "rounded-xl delay-150" diff --git a/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx b/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx index adad52792..f00fcee81 100644 --- a/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx @@ -62,6 +62,7 @@ interface SidebarProps { disableTooltips?: boolean; sidebarWidth?: number; isResizing?: boolean; + renderUserProfile?: boolean; } export function Sidebar({ @@ -95,6 +96,7 @@ export function Sidebar({ disableTooltips = false, sidebarWidth = SIDEBAR_MIN_WIDTH, isResizing = false, + renderUserProfile = true, }: SidebarProps) { const t = useTranslations("sidebar"); const [openDropdownChatId, setOpenDropdownChatId] = useState(null); @@ -275,14 +277,16 @@ export function Sidebar({ - + {renderUserProfile && ( + + )} ); diff --git a/surfsense_web/components/layout/ui/sidebar/SidebarUserProfile.tsx b/surfsense_web/components/layout/ui/sidebar/SidebarUserProfile.tsx index acece2d5c..ffd00ed14 100644 --- a/surfsense_web/components/layout/ui/sidebar/SidebarUserProfile.tsx +++ b/surfsense_web/components/layout/ui/sidebar/SidebarUserProfile.tsx @@ -113,19 +113,23 @@ function UserAvatar({ avatarUrl, initials, bgColor, + size = "sm", }: { avatarUrl?: string; initials: string; bgColor: string; + size?: "sm" | "md"; }) { + const sizeClass = size === "md" ? "h-9 w-9" : "h-8 w-8"; + if (avatarUrl) { return ( User avatar @@ -134,7 +138,10 @@ function UserAvatar({ return (
{initials} @@ -181,24 +188,29 @@ export function SidebarUserProfile({ // Collapsed view - just show avatar with dropdown if (isCollapsed) { return ( -
+
- +
From 6231c08b8bdc6fb78f576854db755d4eecfcf1c3 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Tue, 28 Apr 2026 20:21:18 +0530 Subject: [PATCH 02/76] refactor(sidebar): standardize padding, font sizes, and icon dimensions across sidebar components for improved consistency --- .../announcements/AnnouncementsEmptyState.tsx | 10 +- .../ui/sidebar/AllPrivateChatsSidebar.tsx | 183 ++++++++++-------- .../ui/sidebar/AllSharedChatsSidebar.tsx | 183 ++++++++++-------- .../ui/sidebar/AnnouncementsSidebar.tsx | 6 +- .../layout/ui/sidebar/ChatListItem.tsx | 2 +- .../layout/ui/sidebar/InboxSidebar.tsx | 38 ++-- .../layout/ui/sidebar/NavSection.tsx | 2 +- .../components/layout/ui/sidebar/Sidebar.tsx | 6 +- .../layout/ui/sidebar/SidebarButton.tsx | 6 +- .../layout/ui/sidebar/SidebarHeader.tsx | 6 +- .../layout/ui/sidebar/SidebarSection.tsx | 4 +- 11 files changed, 234 insertions(+), 212 deletions(-) diff --git a/surfsense_web/components/announcements/AnnouncementsEmptyState.tsx b/surfsense_web/components/announcements/AnnouncementsEmptyState.tsx index 9ed1ea45d..329a284db 100644 --- a/surfsense_web/components/announcements/AnnouncementsEmptyState.tsx +++ b/surfsense_web/components/announcements/AnnouncementsEmptyState.tsx @@ -2,12 +2,12 @@ import { BellOff } from "lucide-react"; export function AnnouncementsEmptyState() { return ( -
-
- +
+
+
-

No announcements

-

+

No announcements

+

You're all caught up! New announcements will appear here.

diff --git a/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx index ab5213db2..8630c5a9b 100644 --- a/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx @@ -252,7 +252,7 @@ export function AllPrivateChatsSidebarContent({ return ( <> -
+
{isMobile && ( )} - -

{t("chats") || "Private Chats"}

+ +

{t("chats") || "Private Chats"}

- + setSearchQuery(e.target.value)} - className="pl-9 pr-8 h-9" + className="h-8 pl-8 pr-7 text-sm" /> {searchQuery && ( @@ -382,7 +379,13 @@ export function AllPrivateChatsSidebarContent({ type="button" onClick={() => handleThreadClick(thread.id)} disabled={isBusy} - className="flex items-center gap-2 flex-1 min-w-0 text-left overflow-hidden" + className={cn( + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "group-hover/item:bg-accent group-hover/item:text-accent-foreground", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + isActive && "bg-accent text-accent-foreground", + isBusy && "opacity-50 pointer-events-none" + )} > {thread.title || "New Chat"} @@ -396,89 +399,97 @@ export function AllPrivateChatsSidebarContent({ )} - setOpenDropdownId(isOpen ? thread.id : null)} +
- - - - - {!thread.archived && ( - handleStartRename(thread.id, thread.title || "New Chat")} + setOpenDropdownId(isOpen ? thread.id : null)} + > + + + + + {!thread.archived && ( + handleStartRename(thread.id, thread.title || "New Chat")} + > + + {t("rename") || "Rename"} + )} - - handleDeleteThread(thread.id)}> - - {t("delete") || "Delete"} - - - + handleToggleArchive(thread.id, thread.archived)} + disabled={isArchiving} + > + {thread.archived ? ( + <> + + {t("unarchive") || "Restore"} + + ) : ( + <> + + {t("archive") || "Archive"} + + )} + + handleDeleteThread(thread.id)}> + + {t("delete") || "Delete"} + + + +
); })}
) : isSearchMode ? (
- -

+ +

{t("no_chats_found") || "No chats found"}

-

+

{t("try_different_search") || "Try a different search term"}

) : (
- -

+ +

{showArchived ? t("no_archived_chats") || "No archived chats" : t("no_chats") || "No private chats"}

{!showArchived && ( -

+

{t("start_new_chat_hint") || "Start a new chat from the chat page"}

)} diff --git a/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx index ab1072459..26556b0bd 100644 --- a/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx @@ -251,7 +251,7 @@ export function AllSharedChatsSidebarContent({ return ( <> -
+
{isMobile && ( )} - -

{t("shared_chats") || "Shared Chats"}

+ +

{t("shared_chats") || "Shared Chats"}

- + setSearchQuery(e.target.value)} - className="pl-9 pr-8 h-9" + className="h-8 pl-8 pr-7 text-sm" /> {searchQuery && ( @@ -381,7 +378,13 @@ export function AllSharedChatsSidebarContent({ type="button" onClick={() => handleThreadClick(thread.id)} disabled={isBusy} - className="flex items-center gap-2 flex-1 min-w-0 text-left overflow-hidden" + className={cn( + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "group-hover/item:bg-accent group-hover/item:text-accent-foreground", + "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", + isActive && "bg-accent text-accent-foreground", + isBusy && "opacity-50 pointer-events-none" + )} > {thread.title || "New Chat"} @@ -395,89 +398,97 @@ export function AllSharedChatsSidebarContent({ )} - setOpenDropdownId(isOpen ? thread.id : null)} +
- - - - - {!thread.archived && ( - handleStartRename(thread.id, thread.title || "New Chat")} + setOpenDropdownId(isOpen ? thread.id : null)} + > + + + + + {!thread.archived && ( + handleStartRename(thread.id, thread.title || "New Chat")} + > + + {t("rename") || "Rename"} + )} - - handleDeleteThread(thread.id)}> - - {t("delete") || "Delete"} - - - + handleToggleArchive(thread.id, thread.archived)} + disabled={isArchiving} + > + {thread.archived ? ( + <> + + {t("unarchive") || "Restore"} + + ) : ( + <> + + {t("archive") || "Archive"} + + )} + + handleDeleteThread(thread.id)}> + + {t("delete") || "Delete"} + + + +
); })}
) : isSearchMode ? (
- -

+ +

{t("no_chats_found") || "No chats found"}

-

+

{t("try_different_search") || "Try a different search term"}

) : (
- -

+ +

{showArchived ? t("no_archived_chats") || "No archived chats" : t("no_shared_chats") || "No shared chats"}

{!showArchived && ( -

+

Share a chat to collaborate with your team

)} diff --git a/surfsense_web/components/layout/ui/sidebar/AnnouncementsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AnnouncementsSidebar.tsx index 6a1233537..d6729eec4 100644 --- a/surfsense_web/components/layout/ui/sidebar/AnnouncementsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/AnnouncementsSidebar.tsx @@ -31,7 +31,7 @@ export function AnnouncementsSidebarContent({ return (
-
+
{isMobile && ( @@ -48,12 +48,12 @@ export function AnnouncementsSidebarContent({ Close )} -

Announcements

+

Announcements

-
+
{announcements.length === 0 ? ( ) : ( diff --git a/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx b/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx index bfc930b25..d8fe5465f 100644 --- a/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx +++ b/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx @@ -61,7 +61,7 @@ export function ChatListItem({ onClick={handleClick} {...(isMobile ? longPressHandlers : {})} className={cn( - "flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-sm text-left", + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", "group-hover/item:bg-accent group-hover/item:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", isActive && "bg-accent text-accent-foreground" diff --git a/surfsense_web/components/layout/ui/sidebar/InboxSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/InboxSidebar.tsx index fa05559d7..76cb985b9 100644 --- a/surfsense_web/components/layout/ui/sidebar/InboxSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/InboxSidebar.tsx @@ -178,7 +178,7 @@ export function InboxSidebarContent({ const [mounted, setMounted] = useState(false); const [openDropdown, setOpenDropdown] = useState<"filter" | null>(null); const [connectorScrollPos, setConnectorScrollPos] = useState<"top" | "middle" | "bottom">("top"); - const connectorRafRef = useRef(); + const connectorRafRef = useRef(null); const handleConnectorScroll = useCallback((e: React.UIEvent) => { const el = e.currentTarget; if (connectorRafRef.current) return; @@ -186,7 +186,7 @@ export function InboxSidebarContent({ const atTop = el.scrollTop <= 2; const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight <= 2; setConnectorScrollPos(atTop ? "top" : atBottom ? "bottom" : "middle"); - connectorRafRef.current = undefined; + connectorRafRef.current = null; }); }, []); useEffect( @@ -528,7 +528,7 @@ export function InboxSidebarContent({ return ( <> -
+
{isMobile && ( @@ -542,7 +542,7 @@ export function InboxSidebarContent({ {t("close") || "Close"} )} -

{t("inbox") || "Inbox"}

+

{t("inbox") || "Inbox"}

{isMobile ? ( @@ -811,19 +811,19 @@ export function InboxSidebarContent({
- + setSearchQuery(e.target.value)} - className="pl-9 pr-8 h-9" + className="h-8 pl-8 pr-7 text-sm" /> {searchQuery && (
) : isSearchMode ? (
- -

+ +

{t("no_results_found") || "No results found"}

-

+

{t("try_different_search") || "Try a different search term"}

) : (
{activeTab === "comments" ? ( - + ) : ( - + )} -

{getEmptyStateMessage().title}

-

{getEmptyStateMessage().hint}

+

{getEmptyStateMessage().title}

+

{getEmptyStateMessage().hint}

)}
diff --git a/surfsense_web/components/layout/ui/sidebar/NavSection.tsx b/surfsense_web/components/layout/ui/sidebar/NavSection.tsx index 0781a66c2..658067f3f 100644 --- a/surfsense_web/components/layout/ui/sidebar/NavSection.tsx +++ b/surfsense_web/components/layout/ui/sidebar/NavSection.tsx @@ -159,7 +159,7 @@ export function NavSection({ items, onItemClick, isCollapsed = false }: NavSecti } trailingContent={} diff --git a/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx b/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx index f00fcee81..1064d2adc 100644 --- a/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/Sidebar.tsx @@ -113,7 +113,7 @@ export function Sidebar({ > {/* Header - search space name or collapse button when collapsed */} {isCollapsed ? ( -
+
{})} @@ -121,7 +121,7 @@ export function Sidebar({ />
) : ( -
+
+
- + {collapsedOverlay} {label} @@ -87,7 +87,7 @@ export function SidebarButton({ className={cn(expandedClassName, isActive && activeClassName, className)} {...buttonProps} > - {expandedIconNode ?? } + {expandedIconNode ?? } {label} {trailingContent} {badge && typeof badge !== "string" ? badge : null} diff --git a/surfsense_web/components/layout/ui/sidebar/SidebarHeader.tsx b/surfsense_web/components/layout/ui/sidebar/SidebarHeader.tsx index 2c8539dc8..2a5761d6f 100644 --- a/surfsense_web/components/layout/ui/sidebar/SidebarHeader.tsx +++ b/surfsense_web/components/layout/ui/sidebar/SidebarHeader.tsx @@ -36,14 +36,14 @@ export function SidebarHeader({ diff --git a/surfsense_web/components/layout/ui/sidebar/SidebarSection.tsx b/surfsense_web/components/layout/ui/sidebar/SidebarSection.tsx index b8ea5e1ee..5ef037fa0 100644 --- a/surfsense_web/components/layout/ui/sidebar/SidebarSection.tsx +++ b/surfsense_web/components/layout/ui/sidebar/SidebarSection.tsx @@ -39,8 +39,8 @@ export function SidebarSection({ className )} > -
- +
+ {title} Date: Tue, 28 Apr 2026 22:58:44 +0530 Subject: [PATCH 03/76] refactor(sidebar): adjust component dimensions and font sizes for improved visual consistency across sidebar elements --- .../components/documents/DocumentsFilters.tsx | 24 +++++++++---------- .../ui/sidebar/AllPrivateChatsSidebar.tsx | 6 ++--- .../ui/sidebar/AllSharedChatsSidebar.tsx | 6 ++--- .../layout/ui/sidebar/ChatListItem.tsx | 2 +- .../layout/ui/sidebar/DocumentsSidebar.tsx | 20 ++++++++-------- .../components/layout/ui/sidebar/Sidebar.tsx | 4 ++-- .../layout/ui/sidebar/SidebarSection.tsx | 2 +- 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/surfsense_web/components/documents/DocumentsFilters.tsx b/surfsense_web/components/documents/DocumentsFilters.tsx index 57e6479cb..50df59955 100644 --- a/surfsense_web/components/documents/DocumentsFilters.tsx +++ b/surfsense_web/components/documents/DocumentsFilters.tsx @@ -84,13 +84,13 @@ export function DocumentsFilters({ { e.preventDefault(); onCreateFolder(); }} > - + New folder @@ -104,7 +104,7 @@ export function DocumentsFilters({ value="ai-sort" disabled={aiSortBusy} className={cn( - "h-9 w-9 shrink-0 border bg-muted/50 transition-colors", + "h-8 w-8 shrink-0 border bg-muted/50 transition-colors", "disabled:pointer-events-none disabled:opacity-50", aiSortEnabled ? "bg-accent text-accent-foreground hover:bg-accent" @@ -120,9 +120,9 @@ export function DocumentsFilters({ {aiSortBusy ? ( ) : aiSortEnabled ? ( - + ) : ( - + )} @@ -142,9 +142,9 @@ export function DocumentsFilters({ - + {activeTypes.length > 0 && ( {activeTypes.length} @@ -227,12 +227,12 @@ export function DocumentsFilters({ {/* Search Input */}
-
onSearch(e.target.value)} placeholder="Search docs" @@ -242,7 +242,7 @@ export function DocumentsFilters({ {Boolean(searchValue) && (
diff --git a/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx index 8630c5a9b..e821ec4da 100644 --- a/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx @@ -266,7 +266,7 @@ export function AllPrivateChatsSidebarContent({ )} -

{t("chats") || "Private Chats"}

+

{t("chats") || "Private Chats"}

@@ -363,7 +363,7 @@ export function AllPrivateChatsSidebarContent({ onTouchMove={longPressHandlers.onTouchMove} disabled={isBusy} className={cn( - "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-sm text-left", "group-hover/item:bg-accent group-hover/item:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", isActive && "bg-accent text-accent-foreground", @@ -380,7 +380,7 @@ export function AllPrivateChatsSidebarContent({ onClick={() => handleThreadClick(thread.id)} disabled={isBusy} className={cn( - "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-sm text-left", "group-hover/item:bg-accent group-hover/item:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", isActive && "bg-accent text-accent-foreground", diff --git a/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx index 26556b0bd..c5ab0e0f3 100644 --- a/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/AllSharedChatsSidebar.tsx @@ -265,7 +265,7 @@ export function AllSharedChatsSidebarContent({ )} -

{t("shared_chats") || "Shared Chats"}

+

{t("shared_chats") || "Shared Chats"}

@@ -362,7 +362,7 @@ export function AllSharedChatsSidebarContent({ onTouchMove={longPressHandlers.onTouchMove} disabled={isBusy} className={cn( - "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-sm text-left", "group-hover/item:bg-accent group-hover/item:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", isActive && "bg-accent text-accent-foreground", @@ -379,7 +379,7 @@ export function AllSharedChatsSidebarContent({ onClick={() => handleThreadClick(thread.id)} disabled={isBusy} className={cn( - "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-sm text-left", "group-hover/item:bg-accent group-hover/item:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", isActive && "bg-accent text-accent-foreground", diff --git a/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx b/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx index d8fe5465f..4ef7b2965 100644 --- a/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx +++ b/surfsense_web/components/layout/ui/sidebar/ChatListItem.tsx @@ -61,7 +61,7 @@ export function ChatListItem({ onClick={handleClick} {...(isMobile ? longPressHandlers : {})} className={cn( - "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-xs text-left", + "flex w-full items-center gap-2 overflow-hidden rounded-md px-2 py-1.5 text-sm text-left", "group-hover/item:bg-accent group-hover/item:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", isActive && "bg-accent text-accent-foreground" diff --git a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx index 3c5a64b0e..59873e72c 100644 --- a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx @@ -1028,11 +1028,11 @@ function AuthenticatedDocumentsSidebarBase({ const cloudContent = ( <> {/* Connected tools strip */} -
+
+ + + {label} + + + ))} + + )}
void; onNewChat?: () => void; + leftActions?: React.ReactNode; children: React.ReactNode; }) { const activeTab = useAtomValue(activeTabAtom); @@ -136,6 +139,7 @@ function MainContentPanel({ } className="min-w-0" /> @@ -377,9 +381,9 @@ export function LayoutShell({
-
+