import { ArrowUpDown, Check, Plus } from "lucide-react"; import { ToolbarSearch } from "./ToolbarSearch"; import { Button } from "./ui/button"; import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover"; export type ProjectSortField = "name" | "updated" | "created" | "targetDate"; export type ProjectSortDir = "asc" | "desc"; const PROJECT_SORT_OPTIONS: Array<{ field: ProjectSortField; label: string }> = [ { field: "name", label: "Name" }, { field: "updated", label: "Updated" }, { field: "created", label: "Created" }, { field: "targetDate", label: "Target date" }, ]; /** Canonical project search, sorting and creation controls. State stays with the page. */ export function ProjectsToolbar({ query, onQueryChange, sortField, sortDir, onSortChange, onNewProject: openNewProject }: { query: string; onQueryChange: (value: string) => void; sortField: ProjectSortField; sortDir: ProjectSortDir; onSortChange: (field: ProjectSortField, direction: ProjectSortDir) => void; onNewProject: () => void; }) { const sortLabel = PROJECT_SORT_OPTIONS.find(option => option.field === sortField)?.label ?? "Name"; return