'use client'; import * as React from 'react'; import * as ScrollArea from '@radix-ui/react-scroll-area'; import { ArrowLeftRight, ChevronRight, Clock, CreditCard, DollarSign, Focus, Landmark, LineChart, PieChart, Search, Users, } from 'lucide-react'; import * as Badge from '@/components/ui/badge'; import * as Button from '@/components/ui/button'; import * as CommandMenu from '@/components/ui/command-menu'; import * as CompactButton from '@/components/ui/compact-button'; import * as Kbd from '@/components/ui/kbd'; import { cn } from '@/utils/cn'; const ScrollbarVertical = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...rest }, ref) => { return ( ); }); ScrollbarVertical.displayName = 'ScrollbarVertical'; export default function FinanceCommandMenu() { const [open, setOpen] = React.useState(false); const quickActions: { title: string; description: string; icon: React.ComponentType; iconBgColor: string; iconColor: string; }[] = [ { title: 'Transfer', description: 'Send Money', icon: Clock, iconBgColor: 'bg-information-lighter', iconColor: 'text-information-base', }, { title: 'Pay', description: 'Bills & Payments', icon: DollarSign, iconBgColor: 'bg-feature-lighter', iconColor: 'text-feature-base', }, { title: 'Invest', description: 'Grow Wealth', icon: PieChart, iconBgColor: 'bg-success-lighter', iconColor: 'text-success-base', }, { title: 'Cards', description: 'Manage Cards', icon: CreditCard, iconBgColor: 'bg-warning-lighter', iconColor: 'text-warning-base', }, ]; const recentActivity: { title: string; amount: string; amountColor: | 'red' | 'green' | 'gray' | 'blue' | 'orange' | 'yellow' | 'purple' | 'sky' | 'pink' | 'teal'; time: string; icon: string | React.ComponentType; }[] = [ { title: 'Netflix Subscription', amount: '$15.99', amountColor: 'red', time: '2 hours ago', icon: 'https://alignui.com/images/major-brands/netflix.svg', }, { title: 'Salary Deposit', amount: '$3,450.00', amountColor: 'green', time: '1 day ago', icon: 'https://alignui.com/images/major-brands/spotify.svg', }, { title: 'Investment Transfer', amount: '$500.00', amountColor: 'gray', time: '2 days ago', icon: LineChart, }, ]; const financialServices: { title: string; description: string; badge?: string; badgeColor?: | 'red' | 'green' | 'gray' | 'blue' | 'orange' | 'yellow' | 'purple' | 'sky' | 'pink' | 'teal'; icon: React.ComponentType; }[] = [ { title: 'Wealth Management', description: 'Investment portfolios & advisory', badge: 'Premium', badgeColor: 'purple', icon: Landmark, }, { title: 'Savings Goals', description: 'Set & track financial goals', icon: Focus, }, { title: 'Cash Flow', description: 'Income & expense analysis', icon: ArrowLeftRight, }, { title: 'Joint Accounts', description: 'Family & business accounts', icon: Users, }, { title: 'Loans', description: 'Personal & business loans', icon: Landmark, }, { title: 'Payroll', description: 'Employee payroll & benefits', icon: Landmark, }, ]; return ( <> setOpen(true)} > Open Command Menu
{/* Search Input */}
⌘K
{/* Quick Actions */}
{quickActions.map((action, index) => (
{action.title}
{action.description}
))}
{/* Main Content */} {/* Recent Activity */} Recent activity
} className='p-2.5 [&>[cmdk-group-heading]]:mb-0 [&>[cmdk-group-heading]]:p-0 [&>[cmdk-group-heading]]:px-2.5 [&>[cmdk-group-heading]]:py-2' > {recentActivity.map((item) => (
{typeof item.icon === 'string' ? ( ) : ( )}
{item.title}
{item.amount}
{item.time}
))} {/* Financial Services */} Financial services } className='p-2.5 [&>[cmdk-group-heading]]:mb-0 [&>[cmdk-group-heading]]:p-0 [&>[cmdk-group-heading]]:px-2.5 [&>[cmdk-group-heading]]:py-2' > {financialServices.map((service) => (
{service.title}
{service.badge && ( {service.badge} )}
{service.description}
))}
); }