mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-10-03 17:15:19 -07:00
- Added new Tauri plugins: @tauri-apps/plugin-process and @tauri-apps/plugin-updater to improve application capabilities. - Introduced UpdateStatus component to display update information in the UI. - Enhanced GenerationForm to include an optional instruct field for additional input. - Refactored various components for improved styling and responsiveness, including Sidebar, AudioPlayer, and ProfileCard. - Updated API models and schemas to accommodate new instruct parameter in generation requests and responses. - Improved documentation for autoupdater setup and usage.
65 lines
2.1 KiB
TypeScript
65 lines
2.1 KiB
TypeScript
'use client';
|
|
|
|
import { Download, Laptop, Monitor, Terminal } from 'lucide-react';
|
|
import { Button } from '@/components/ui/button';
|
|
import { Card, CardContent } from '@/components/ui/card';
|
|
import { DOWNLOAD_LINKS, LATEST_VERSION } from '@/lib/constants';
|
|
|
|
export function DownloadSection() {
|
|
const downloads = [
|
|
{
|
|
platform: 'Mac',
|
|
icon: Laptop,
|
|
link: DOWNLOAD_LINKS.mac,
|
|
description: 'macOS (Intel + Apple Silicon)',
|
|
},
|
|
{
|
|
platform: 'Windows',
|
|
icon: Monitor,
|
|
link: DOWNLOAD_LINKS.windows,
|
|
description: 'Windows x64',
|
|
},
|
|
{
|
|
platform: 'Linux',
|
|
icon: Terminal,
|
|
link: DOWNLOAD_LINKS.linux,
|
|
description: 'Linux AppImage',
|
|
},
|
|
];
|
|
|
|
return (
|
|
<div className="space-y-6">
|
|
<div className="text-center">
|
|
<p className="text-sm text-muted-foreground mb-2">Latest Version</p>
|
|
<p className="text-2xl font-bold">{LATEST_VERSION}</p>
|
|
</div>
|
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 sm:gap-6">
|
|
{downloads.map(({ platform, icon: Icon, link, description }) => (
|
|
<Card
|
|
key={platform}
|
|
className="hover:border-primary/20 hover:shadow-lg hover:shadow-primary/3 transition-all duration-200 hover:-translate-y-0.5"
|
|
>
|
|
<CardContent className="p-6">
|
|
<div className="flex flex-col items-center text-center space-y-4">
|
|
<div className="p-3 rounded-xl bg-muted/50 backdrop-blur-sm border border-border">
|
|
<Icon className="h-8 w-8" />
|
|
</div>
|
|
<div>
|
|
<h3 className="text-lg font-semibold mb-1">{platform}</h3>
|
|
<p className="text-sm text-muted-foreground">{description}</p>
|
|
</div>
|
|
<Button asChild size="lg" className="w-full">
|
|
<a href={link} download>
|
|
<Download className="h-4 w-4 mr-2" />
|
|
Download
|
|
</a>
|
|
</Button>
|
|
</div>
|
|
</CardContent>
|
|
</Card>
|
|
))}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|