diff --git a/src/components/common/CompactModeButton.tsx b/src/components/common/CompactModeButton.tsx index 5e96ddd..30cf107 100644 --- a/src/components/common/CompactModeButton.tsx +++ b/src/components/common/CompactModeButton.tsx @@ -2,18 +2,22 @@ import { useDisplayPreferences } from "@/hooks/useDisplayPreferences"; import { useTranslate } from "@/hooks/useTranslate"; import { LayoutGrid, LayoutTemplate } from "lucide-react"; import { Button } from "@/components/ui/button"; +import { cn } from "@/lib/utils"; interface CompactModeButtonProps { onToggle?: (isCompact: boolean) => void; isCompact?: boolean; + className?: string; } function CompactModeButtonBase({ isCompact, onToggle, + className, }: { isCompact: boolean; onToggle: (isCompact: boolean) => Promise | void; + className?: string; }) { const { t } = useTranslate(); @@ -31,15 +35,21 @@ function CompactModeButtonBase({ size="sm" onClick={handleClick} title={label} - className="whitespace-nowrap" + className={cn( + "h-9 rounded-full border border-border/60 bg-background/40 px-3 text-xs font-medium backdrop-blur-sm hover:bg-accent/40 sm:text-sm", + className + )} > - {label} + {label} ); } -function CompactModeButtonUncontrolled({ onToggle }: Pick) { +function CompactModeButtonUncontrolled({ + onToggle, + className, +}: Pick) { const { isCompact, handleCompactToggle } = useDisplayPreferences(); const handleToggle = async (nextCompactMode: boolean) => { @@ -47,15 +57,17 @@ function CompactModeButtonUncontrolled({ onToggle }: Pick; + return ( + + ); } -export function CompactModeButton({ onToggle, isCompact }: CompactModeButtonProps) { +export function CompactModeButton({ onToggle, isCompact, className }: CompactModeButtonProps) { const isControlled = typeof isCompact === "boolean" && typeof onToggle === "function"; if (isControlled) { - return ; + return ; } - return ; + return ; } diff --git a/src/components/common/PageSizeSelect.tsx b/src/components/common/PageSizeSelect.tsx index 3f090a7..ca42cd1 100644 --- a/src/components/common/PageSizeSelect.tsx +++ b/src/components/common/PageSizeSelect.tsx @@ -7,18 +7,22 @@ import { SelectTrigger, SelectValue, } from "@/components/ui/select"; +import { cn } from "@/lib/utils"; interface PageSizeSelectProps { onSizeChange?: (size: number) => void; pageSize?: number; + className?: string; } function PageSizeSelectBase({ value, onChange, + className, }: { value: number; onChange: (size: number) => Promise | void; + className?: string; }) { const handleChange = async (rawValue: string) => { const size = parseInt(rawValue); @@ -27,7 +31,12 @@ function PageSizeSelectBase({ return ( handleSearch(e.target.value)} aria-label={placeholder}