146 lines
7.6 KiB
TypeScript
146 lines
7.6 KiB
TypeScript
import {
|
|
Dialog,
|
|
DialogContent,
|
|
DialogDescription,
|
|
DialogHeader,
|
|
DialogTitle,
|
|
DialogTrigger,
|
|
} from "@/components/ui/dialog";
|
|
import { Button } from "@/components/ui/button";
|
|
import { HelpCircle, Scissors, ArrowRight } from "lucide-react";
|
|
|
|
export function TutorialHelp() {
|
|
return (
|
|
<Dialog>
|
|
<DialogTrigger asChild>
|
|
<Button
|
|
variant="ghost"
|
|
size="sm"
|
|
className="h-7 px-2 text-xs text-slate-400 hover:text-slate-200 hover:bg-white/10 transition-all gap-1.5"
|
|
>
|
|
<HelpCircle className="w-3.5 h-3.5" />
|
|
<span className="font-medium">How trimming works</span>
|
|
</Button>
|
|
</DialogTrigger>
|
|
<DialogContent className="max-w-2xl bg-[#09090b] border-white/10 [&>button]:text-slate-400 [&>button:hover]:text-white">
|
|
<DialogHeader>
|
|
<DialogTitle className="text-xl font-semibold text-slate-200 flex items-center gap-2">
|
|
<Scissors className="w-5 h-5 text-[#ef4444]" /> How Trimming Works
|
|
</DialogTitle>
|
|
<DialogDescription className="text-slate-400">
|
|
Understanding how to cut out unwanted parts of your video.
|
|
</DialogDescription>
|
|
</DialogHeader>
|
|
<div className="mt-4 space-y-8">
|
|
{/* Explanation */}
|
|
<div className="bg-white/5 rounded-lg p-4 border border-white/5">
|
|
<p className="text-slate-300 leading-relaxed">
|
|
The Trim tool works by defining the segments you want to
|
|
<span className="text-[#ef4444] font-bold"> remove</span>. Any part
|
|
of the timeline that is
|
|
<span className="text-[#ef4444] font-bold"> covered</span> by a red
|
|
trim segment will be cut out when you export.
|
|
</p>
|
|
</div>
|
|
{/* Visual Illustration */}
|
|
<div className="space-y-2">
|
|
<h3 className="text-sm font-medium text-slate-400 uppercase tracking-wider">
|
|
Visual Example
|
|
</h3>
|
|
<div className="relative h-24 bg-[#000] rounded-lg border border-white/10 flex items-center px-4 overflow-hidden select-none">
|
|
{/* Background track (Kept parts) */}
|
|
<div className="absolute inset-x-4 h-2 bg-slate-600 rounded-full overflow-hidden">
|
|
{/* Solid line representing video */}
|
|
</div>
|
|
{/* Removed Segment 1 */}
|
|
<div
|
|
className="absolute left-[20%] h-8 bg-[#ef4444]/20 border border-[#ef4444] rounded flex flex-col items-center justify-center z-10"
|
|
style={{ width: "20%" }}
|
|
>
|
|
<span className="text-[10px] font-bold text-[#ef4444] bg-black/50 px-1 rounded">
|
|
REMOVED
|
|
</span>
|
|
</div>
|
|
{/* Removed Segment 2 */}
|
|
<div
|
|
className="absolute left-[65%] h-8 bg-[#ef4444]/20 border border-[#ef4444] rounded flex flex-col items-center justify-center z-10"
|
|
style={{ width: "15%" }}
|
|
>
|
|
<span className="text-[10px] font-bold text-[#ef4444] bg-black/50 px-1 rounded">
|
|
REMOVED
|
|
</span>
|
|
</div>
|
|
{/* Labels for kept parts */}
|
|
<div className="absolute left-[5%] text-[10px] text-slate-400 font-medium">
|
|
Kept
|
|
</div>
|
|
<div className="absolute left-[50%] text-[10px] text-slate-400 font-medium">
|
|
Kept
|
|
</div>
|
|
<div className="absolute left-[90%] text-[10px] text-slate-400 font-medium">
|
|
Kept
|
|
</div>
|
|
</div>
|
|
<div className="flex justify-center mt-2">
|
|
|
|
<ArrowRight className="w-4 h-4 text-slate-600 rotate-90" />
|
|
</div>
|
|
{/* Result */}
|
|
<div className="relative h-12 bg-[#000] rounded-lg border border-white/10 flex items-center justify-center gap-1 px-4 select-none">
|
|
<div
|
|
className="h-8 bg-slate-700 rounded flex items-center justify-center opacity-80"
|
|
style={{ width: "30%" }}
|
|
>
|
|
<span className="text-[10px] text-white font-medium">
|
|
Part 1
|
|
</span>
|
|
</div>
|
|
<div
|
|
className="h-8 bg-slate-700 rounded flex items-center justify-center opacity-80"
|
|
style={{ width: "30%" }}
|
|
>
|
|
<span className="text-[10px] text-white font-medium">
|
|
Part 2
|
|
</span>
|
|
</div>
|
|
<div
|
|
className="h-8 bg-slate-700 rounded flex items-center justify-center opacity-80"
|
|
style={{ width: "30%" }}
|
|
>
|
|
<span className="text-[10px] text-white font-medium">
|
|
Part 3
|
|
</span>
|
|
</div>
|
|
<span className="absolute right-4 text-xs text-slate-400">
|
|
Final Video
|
|
</span>
|
|
</div>
|
|
</div>
|
|
{/* Steps */}
|
|
<div className="grid grid-cols-2 gap-4">
|
|
<div className="p-3 rounded bg-white/5 border border-white/5">
|
|
<div className="text-[#ef4444] font-bold mb-1">
|
|
1. Add Trim
|
|
</div>
|
|
<p className="text-xs text-slate-400">
|
|
Press
|
|
<kbd className="bg-white/10 px-1 rounded text-slate-300">T</kbd>
|
|
or click the scissors icon to mark a section for removal.
|
|
</p>
|
|
</div>
|
|
<div className="p-3 rounded bg-white/5 border border-white/5">
|
|
<div className="text-[#ef4444] font-bold mb-1">
|
|
2. Adjust
|
|
</div>
|
|
<p className="text-xs text-slate-400">
|
|
Drag the edges of the red region to cover exactly what you want
|
|
to cut out.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
}
|