diff --git a/surfsense_web/app/desktop/login/page.tsx b/surfsense_web/app/desktop/login/page.tsx index b3d0c1823..765ff8276 100644 --- a/surfsense_web/app/desktop/login/page.tsx +++ b/surfsense_web/app/desktop/login/page.tsx @@ -161,17 +161,18 @@ function HotkeyRow({ )} - + ); @@ -388,10 +389,11 @@ export default function DesktopLoginPage() { disabled={isLoggingIn} className="h-9 pr-9" /> - + diff --git a/surfsense_web/components/assistant-ui/assistant-message.tsx b/surfsense_web/components/assistant-ui/assistant-message.tsx index 59801e897..c0716f1eb 100644 --- a/surfsense_web/components/assistant-ui/assistant-message.tsx +++ b/surfsense_web/components/assistant-ui/assistant-message.tsx @@ -144,11 +144,12 @@ const MobileCitationDrawer: FC = () => { return ( <> - + @@ -204,11 +205,12 @@ const MobileCitationDrawer: FC = () => {
{citations.map((citation) => ( -
- + ))}
@@ -506,9 +508,10 @@ export const AssistantMessage: FC = () => { > {/* Fixed trigger slot prevents any vertical reflow when visibility changes */}
- +
{/* Desktop floating comment panel — overlays on top of chat content */} diff --git a/surfsense_web/components/assistant-ui/thread.tsx b/surfsense_web/components/assistant-ui/thread.tsx index 153e0d54d..31212b0d2 100644 --- a/surfsense_web/components/assistant-ui/thread.tsx +++ b/surfsense_web/components/assistant-ui/thread.tsx @@ -161,14 +161,16 @@ const PremiumQuotaPinnedAlert: FC = () => {

{alert.message}

- + ); @@ -280,9 +282,11 @@ const ConnectToolsBanner: FC<{ isThreadEmpty: boolean }> = ({ isThreadEmpty }) = return (
- - +
); @@ -326,14 +332,16 @@ const PendingScreenImageStrip: FC = () => { > {/* biome-ignore lint/performance/noImgElement: data URL thumbnails from capture */} - + ))} @@ -352,21 +360,25 @@ const ClipboardChip: FC<{ text: string; onDismiss: () => void }> = ({ text, onDi From clipboard
{isLong && ( - + )} - +

@@ -1173,13 +1185,15 @@ const ComposerAction: FC = ({ isBlockedByOtherUser = false )} {hasWebSearchTool && ( - + )}

{!hasModelConfigured && ( diff --git a/surfsense_web/components/new-chat/document-mention-picker.tsx b/surfsense_web/components/new-chat/document-mention-picker.tsx index cb61a5f2b..a2b3c138c 100644 --- a/surfsense_web/components/new-chat/document-mention-picker.tsx +++ b/surfsense_web/components/new-chat/document-mention-picker.tsx @@ -17,6 +17,7 @@ import { FOLDER_MENTION_DOCUMENT_TYPE, type MentionedDocumentInfo, } from "@/atoms/chat/mentioned-documents.atom"; +import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import { getConnectorIcon } from "@/contracts/enums/connectorIcons"; import type { Document, SearchDocumentTitlesResponse } from "@/contracts/types/document.types"; @@ -484,7 +485,7 @@ export const DocumentMentionPicker = forwardRef< const isHighlighted = !isAlreadySelected && selectableIndex === highlightedIndex; return ( - + ); })} @@ -541,7 +543,7 @@ export const DocumentMentionPicker = forwardRef< const isHighlighted = !isAlreadySelected && selectableIndex === highlightedIndex; return ( - + ); })} @@ -595,7 +598,7 @@ export const DocumentMentionPicker = forwardRef< const isHighlighted = !isAlreadySelected && selectableIndex === highlightedIndex; return ( - + ); })} diff --git a/surfsense_web/components/new-chat/model-selector.tsx b/surfsense_web/components/new-chat/model-selector.tsx index a88a8d04e..6f7c946f0 100644 --- a/surfsense_web/components/new-chat/model-selector.tsx +++ b/surfsense_web/components/new-chat/model-selector.tsx @@ -853,14 +853,15 @@ export function ModelSelector({ : "opacity-100 translate-y-0 pointer-events-auto" )} > - + )} {isMobile && ( @@ -913,12 +914,13 @@ export function ModelSelector({ ))} - + {isAll ? "All Models" : formatProviderName(provider)} @@ -954,14 +956,15 @@ export function ModelSelector({ : "opacity-100 translate-y-0 pointer-events-auto" )} > - + )} {isMobile && ( @@ -1175,13 +1178,14 @@ export function ModelSelector({ }, ] as const ).map(({ value, icon: Icon, label }) => ( - + ))} diff --git a/surfsense_web/components/ui/equation-node.tsx b/surfsense_web/components/ui/equation-node.tsx index 98bcf5f8e..5ceea83e5 100644 --- a/surfsense_web/components/ui/equation-node.tsx +++ b/surfsense_web/components/ui/equation-node.tsx @@ -6,6 +6,7 @@ import type { TEquationElement } from "platejs"; import { PlateElement, type PlateElementProps, useSelected } from "platejs/react"; import * as React from "react"; +import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; export function EquationElement({ children, ...props }: PlateElementProps) { @@ -74,20 +75,23 @@ export function EquationElement({ children, ...props }: PlateElementProps
- - +
)} @@ -162,20 +166,23 @@ export function InlineEquationElement({ children, ...props }: PlateElementProps< {...inputProps} /> - - + )} diff --git a/surfsense_web/components/ui/hero-carousel.tsx b/surfsense_web/components/ui/hero-carousel.tsx index 2c1a98f46..53c1febac 100644 --- a/surfsense_web/components/ui/hero-carousel.tsx +++ b/surfsense_web/components/ui/hero-carousel.tsx @@ -3,7 +3,8 @@ import { ChevronLeft, ChevronRight } from "lucide-react"; import { AnimatePresence, motion } from "motion/react"; import { useCallback, useEffect, useRef, useState } from "react"; -import { ExpandedGifOverlay, useExpandedGif } from "@/components/ui/expanded-gif-overlay"; +import { Button } from "@/components/ui/button"; +import { ExpandedMediaOverlay, useExpandedMedia } from "@/components/ui/expanded-gif-overlay"; const carouselItems = [ { @@ -70,7 +71,7 @@ function HeroCarouselCard({ src: string; onExpandedChange?: (expanded: boolean) => void; }) { - const { expanded, open, close } = useExpandedGif(); + const { expanded, open, close } = useExpandedMedia(); const videoRef = useRef(null); const [hasLoaded, setHasLoaded] = useState(false); @@ -147,7 +148,7 @@ function HeroCarouselCard({ - {expanded && } + {expanded && } ); @@ -204,22 +205,26 @@ function HeroCarousel() {
- +
- {carouselItems.map((_, i) => ( - + ))}
- +
);