// OVE — right-hand control panel: the six tabs.
//
// Desktop: fixed width, content scrolls inside the panel. Mobile: natural
// height (the page scrolls and the footer is pushed down naturally).
'use client'
import { motion } from 'framer-motion'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
import { PresetsTab } from '@/components/ava/presets-tab'
import { ScriptTab } from '@/components/ava/script-tab'
import { DirectoryTab } from '@/components/ava/directory-tab'
import { DetectTab } from '@/components/ava/detect-tab'
import { BeatTab } from '@/components/ava/beat-tab'
import { NativeTab } from '@/components/ava/native-tab'
import { SettingsTab } from '@/components/ava/settings-tab'
import { useAvaStore } from '@/lib/store'
import { thinScrollbar } from '@/components/ava/shared'
import { cn } from '@/lib/utils'
// v6.5 — the Native tab is PARKED (hidden) so the Settings tab can take its
// slot; it returns unchanged when the project nears completion. Flip this
// flag to bring it back — the tab row widens to 7 columns automatically and
// the component + /api/rust-scaffold endpoint are untouched.
//
// v7.11 — the Directory tab (community script browser) joined between Script
// and Detect; the row is 3 columns on phones (two stacked rows) and one row
// from sm up.
const NATIVE_TAB_ENABLED = false
function TabBody({ children }: { children: React.ReactNode }) {
return (
{children}
)
}
export function ControlPanel() {
const tab = useAvaStore((s) => s.tab)
const setTab = useAvaStore((s) => s.setTab)
return (
Presets
Script
Directory
Detect
Beat
{NATIVE_TAB_ENABLED && (
Native
)}
Settings
{NATIVE_TAB_ENABLED && (
)}
)
}