import { Users, UserRound, ArrowDownAZ } from 'lucide-react' import type { PackingState } from './usePackingListPanel' /** * One tab row: the three-tier view switch (Gemeinsam / Meine Liste, #858) on the * left, then the all/open/done filter. Each sits in its own tinted track, the way * the phone shows them, so the row reads as two questions (whose list, which * state) rather than five pills of equal weight. The A-Z switch keeps to the far * end in a track of its own: it changes the order, not what is listed. */ export function PackingViewTabs(S: PackingState) { const { view, setView, filter, setFilter, sort, setSort, t, items } = S const commonCount = items.filter(i => !i.is_private).length const personalCount = items.filter(i => !!i.is_private).length const track: React.CSSProperties = { display: 'inline-flex', alignItems: 'center', gap: 2, padding: 3, borderRadius: 999, background: 'var(--bg-tertiary)', } const segment = (active: boolean): React.CSSProperties => ({ display: 'inline-flex', alignItems: 'center', gap: 6, height: 28, padding: '0 13px', borderRadius: 999, border: 'none', cursor: 'pointer', fontFamily: 'inherit', fontSize: 'calc(12.5px * var(--fs-scale-body, 1))', fontWeight: 600, transition: 'all 0.12s', background: active ? 'var(--text-primary)' : 'transparent', color: active ? 'var(--bg-primary)' : 'var(--text-muted)', boxShadow: active ? '0 1px 2px rgba(0,0,0,0.12)' : 'none', }) const viewPill = (id: 'common' | 'personal', icon: React.ReactNode, label: string, count: number) => { const active = view === id return ( ) } const filterPill = (id: string, label: string) => ( ) return (