@@ -17,14 +17,15 @@ import {
1717 prepareCompactionMessage ,
1818 type CommandHandlerContext ,
1919} from "@/utils/chatCommands" ;
20- import { ToggleGroup } from "./ToggleGroup " ;
20+ import { ToggleGroup , ToggleGroupItem } from "./ui/toggle-group " ;
2121import { CUSTOM_EVENTS } from "@/constants/events" ;
2222import type { UIMode } from "@/types/mode" ;
2323import {
2424 getSlashCommandSuggestions ,
2525 type SlashSuggestion ,
2626} from "@/utils/slashCommands/suggestions" ;
27- import { TooltipWrapper , Tooltip , HelpIndicator } from "./Tooltip" ;
27+ import { Tooltip , TooltipTrigger , TooltipContent } from "./ui/tooltip" ;
28+ import { HelpIndicator } from "./Tooltip" ;
2829import { matchesKeybind , formatKeybind , KEYBINDS , isEditableElement } from "@/utils/ui/keybinds" ;
2930import { ModelSelector , type ModelSelectorRef } from "./ModelSelector" ;
3031import { useModelLRU } from "@/hooks/useModelLRU" ;
@@ -757,9 +758,11 @@ export const ChatInput: React.FC<ChatInputProps> = ({
757758 onComplete = { ( ) => inputRef . current ?. focus ( ) }
758759 />
759760 < span className = "help-indicator-wrapper" >
760- < TooltipWrapper inline >
761- < HelpIndicator > ?</ HelpIndicator >
762- < Tooltip className = "tooltip" align = "left" width = "wide" >
761+ < Tooltip >
762+ < TooltipTrigger asChild >
763+ < HelpIndicator > ?</ HelpIndicator >
764+ </ TooltipTrigger >
765+ < TooltipContent side = "left" >
763766 < strong > Click to edit</ strong > or use{ " " }
764767 { formatKeybind ( KEYBINDS . OPEN_MODEL_SELECTOR ) }
765768 < br />
@@ -774,13 +777,16 @@ export const ChatInput: React.FC<ChatInputProps> = ({
774777 < code > /model provider:model-name</ code >
775778 < br />
776779 (e.g., < code > /model anthropic:claude-sonnet-4-5</ code > )
777- </ Tooltip >
778- </ TooltipWrapper >
780+ </ TooltipContent >
781+ </ Tooltip >
779782 </ span >
780783 </ div >
781784 </ ChatToggles >
782785 < div className = "max-@[700px]:hidden ml-auto flex items-center gap-1.5" >
783- < div
786+ < ToggleGroup
787+ type = "single"
788+ value = { mode }
789+ onValueChange = { ( value ) => value && setMode ( value as UIMode ) }
784790 className = { cn (
785791 "flex gap-0 bg-toggle-bg rounded" ,
786792 "[&>button:first-of-type]:rounded-l [&>button:last-of-type]:rounded-r" ,
@@ -790,28 +796,36 @@ export const ChatInput: React.FC<ChatInputProps> = ({
790796 "[&>button:last-of-type]:bg-plan-mode [&>button:last-of-type]:text-white [&>button:last-of-type]:hover:bg-plan-mode-hover"
791797 ) }
792798 >
793- < ToggleGroup < UIMode >
794- options = { [
795- { value : "exec" , label : "Exec" , activeClassName : "bg-exec-mode text-white" } ,
796- { value : "plan" , label : "Plan" , activeClassName : "bg-plan-mode text-white" } ,
797- ] }
798- value = { mode }
799- onChange = { setMode }
800- />
801- </ div >
799+ < ToggleGroupItem
800+ value = "exec"
801+ aria-label = "Exec mode"
802+ className = "px-2 py-1 text-[11px] font-sans rounded-sm border-none cursor-pointer transition-all duration-150 bg-transparent data-[state=on]:bg-exec-mode data-[state=on]:text-white data-[state=on]:hover:bg-exec-mode-hover text-toggle-text font-normal hover:text-toggle-text-hover hover:bg-toggle-hover"
803+ >
804+ Exec
805+ </ ToggleGroupItem >
806+ < ToggleGroupItem
807+ value = "plan"
808+ aria-label = "Plan mode"
809+ className = "px-2 py-1 text-[11px] font-sans rounded-sm border-none cursor-pointer transition-all duration-150 bg-transparent data-[state=on]:bg-plan-mode data-[state=on]:text-white data-[state=on]:hover:bg-plan-mode-hover text-toggle-text font-normal hover:text-toggle-text-hover hover:bg-toggle-hover"
810+ >
811+ Plan
812+ </ ToggleGroupItem >
813+ </ ToggleGroup >
802814 < span className = "help-indicator-wrapper" >
803- < TooltipWrapper inline >
804- < HelpIndicator > ?</ HelpIndicator >
805- < Tooltip className = "tooltip" align = "center" width = "wide" >
815+ < Tooltip >
816+ < TooltipTrigger asChild >
817+ < HelpIndicator > ?</ HelpIndicator >
818+ </ TooltipTrigger >
819+ < TooltipContent >
806820 < strong > Exec Mode:</ strong > AI edits files and execute commands
807821 < br />
808822 < br />
809823 < strong > Plan Mode:</ strong > AI proposes plans but does not edit files
810824 < br />
811825 < br />
812826 Toggle with: { formatKeybind ( KEYBINDS . TOGGLE_MODE ) }
813- </ Tooltip >
814- </ TooltipWrapper >
827+ </ TooltipContent >
828+ </ Tooltip >
815829 </ span >
816830 </ div >
817831 </ div >
0 commit comments