diff --git a/rsconcept/frontend/src/app/navigation/user-menu.tsx b/rsconcept/frontend/src/app/navigation/user-menu.tsx index 5ff80daa..49db1775 100644 --- a/rsconcept/frontend/src/app/navigation/user-menu.tsx +++ b/rsconcept/frontend/src/app/navigation/user-menu.tsx @@ -13,7 +13,7 @@ export function UserMenu() { const router = useConceptNavigation(); const menu = useDropdown(); return ( -
+
}> router.push({ path: urls.login, force: true })} diff --git a/rsconcept/frontend/src/components/control/button.tsx b/rsconcept/frontend/src/components/control/button.tsx index 7a79e8a9..c130874b 100644 --- a/rsconcept/frontend/src/components/control/button.tsx +++ b/rsconcept/frontend/src/components/control/button.tsx @@ -43,7 +43,7 @@ export function Button({ 'bg-secondary text-secondary-foreground cc-hover cc-animate-color', dense ? 'px-1' : 'px-3 py-1', loading ? 'cursor-progress' : 'cursor-pointer', - noOutline ? 'outline-hidden' : 'focus-outline', + noOutline ? 'outline-hidden focus-visible:bg-selected' : 'focus-outline', !noBorder && 'border rounded-sm', className )} diff --git a/rsconcept/frontend/src/components/dropdown/dropdown-button.tsx b/rsconcept/frontend/src/components/dropdown/dropdown-button.tsx index 244a7b89..54ebc53b 100644 --- a/rsconcept/frontend/src/components/dropdown/dropdown-button.tsx +++ b/rsconcept/frontend/src/components/dropdown/dropdown-button.tsx @@ -37,7 +37,7 @@ export function DropdownButton({ 'px-3 py-1 inline-flex items-center gap-2', 'text-left text-sm text-ellipsis whitespace-nowrap', 'disabled:cc-controls disabled:opacity-75', - 'cc-animate-background', + 'focus-outline cc-animate-background', !!onClick ? 'cc-hover cursor-pointer disabled:cursor-auto' : 'bg-secondary text-secondary-foreground', className )} diff --git a/rsconcept/frontend/src/components/dropdown/use-dropdown.ts b/rsconcept/frontend/src/components/dropdown/use-dropdown.ts index 0364a66c..4a2d8d81 100644 --- a/rsconcept/frontend/src/components/dropdown/use-dropdown.ts +++ b/rsconcept/frontend/src/components/dropdown/use-dropdown.ts @@ -7,9 +7,10 @@ export function useDropdown() { const ref = useRef(null); function handleBlur(event: React.FocusEvent) { - if (!ref.current?.contains(event.relatedTarget as Node)) { - setIsOpen(false); + if (ref.current?.contains(event.relatedTarget as Node)) { + return; } + setIsOpen(false); } return { diff --git a/rsconcept/frontend/src/components/ui/combo-box.tsx b/rsconcept/frontend/src/components/input/combo-box.tsx similarity index 96% rename from rsconcept/frontend/src/components/ui/combo-box.tsx rename to rsconcept/frontend/src/components/input/combo-box.tsx index 45b21b46..d764ddfc 100644 --- a/rsconcept/frontend/src/components/ui/combo-box.tsx +++ b/rsconcept/frontend/src/components/input/combo-box.tsx @@ -5,11 +5,10 @@ import { ChevronDownIcon } from 'lucide-react'; import { IconRemove } from '../icons'; import { type Styling } from '../props'; +import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../ui/command'; +import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'; import { cn } from '../utils'; -import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from './command'; -import { Popover, PopoverContent, PopoverTrigger } from './popover'; - interface ComboBoxProps