"use client"; import * as React from "react"; import { PageHeader, type PageHeaderActionItem, } from "@exxatdesignux/ui/components/ui/page-header"; import { Button } from "@/components/ui/button"; import { Shortcut } from "@/components/ui/dropdown-menu"; import { Kbd } from "@/components/ui/kbd"; import { useAltKeyLabel, useModKeyLabel } from "@/hooks/use-mod-key-label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; function secondaryHeaderActions( onSelect: (label: string) => void, ): PageHeaderActionItem[] { return [ { id: "import", label: "Import", icon: "fa-file-import", variant: "outline", onSelect: () => onSelect("Import selected"), }, { id: "export", label: "Export", icon: "fa-arrow-up-from-bracket", variant: "outline", onSelect: () => onSelect("Export selected"), }, { id: "settings", label: "Page settings", icon: "fa-gear", placement: "overflow", onSelect: () => onSelect("Page settings selected"), }, ]; } export function PageHeaderDefaultPreview() { return ( ); } export function PageHeaderResponsiveActionsPreview() { const [width, setWidth] = React.useState<"wide" | "medium" | "narrow">( "wide", ); const [status, setStatus] = React.useState(""); const mod = useModKeyLabel(); const alt = useAltKeyLabel(); const actions: PageHeaderActionItem[] = [ { id: "new", label: "New record", icon: "fa-plus", variant: "default", shortcut: `${mod}${alt}N`, onSelect: () => setStatus("New record selected"), }, ...secondaryHeaderActions(setStatus), ]; return (
{(["wide", "medium", "narrow"] as const).map((value) => ( ))}

{status}

); } export function PageHeaderCollaborationPreview() { const [status, setStatus] = React.useState(""); const mod = useModKeyLabel(); const alt = useAltKeyLabel(); return (
setStatus("Collaborators opened")} actionItems={[ { id: "invite", label: "Invite people", icon: "fa-user-plus", variant: "default", shortcut: `${mod}${alt}I`, onSelect: () => setStatus("Invite people selected"), }, ]} />

{status}

); } export function PageHeaderCustomActionsPreview() { const [scope, setScope] = React.useState("all"); const [status, setStatus] = React.useState(""); const mod = useModKeyLabel(); const alt = useAltKeyLabel(); const addShortcut = `${mod}${alt}D`; const addRecord = () => setStatus("Add record selected"); return (
} />

{status}

); }