diff --git a/src/components/PreviewStep.tsx b/src/components/PreviewStep.tsx index b18b6d8..58c67a9 100644 --- a/src/components/PreviewStep.tsx +++ b/src/components/PreviewStep.tsx @@ -5,7 +5,7 @@ import * as THREE from 'three'; import JSZip from 'jszip'; import { AppConfig, GeneratedPart, LayoutSplits } from '../types'; import { createBinGeometry, generateSTL, exportSTL } from '../services/geometryGenerator'; -import { Download, Package, Info, Loader2, Share2, Check, Ruler } from 'lucide-react'; +import { Download, Package, Info, Loader2, Share2, Check, Ruler, MousePointer2 } from 'lucide-react'; import { generateShareUrl } from '../utils/share'; // --- DrawerFrame (Каркас) --- @@ -42,17 +42,15 @@ const BinMesh: React.FC = ({ part, thickness, cornerRadius, isSele return ( - {/* Модель */} { e.stopPropagation(); onClick(); }}> - {/* Белая обводка */} {isSelected && ( @@ -145,6 +143,7 @@ export const PreviewStep: React.FC = ({ parts, config, splits }) => { return (
+ {/* Верхняя панель */}
@@ -183,6 +182,7 @@ export const PreviewStep: React.FC = ({ parts, config, splits }) => {
+ {/* 3D Viewer */}
@@ -230,6 +230,7 @@ export const PreviewStep: React.FC = ({ parts, config, splits }) => {
+ {/* Sidebar List (Grid Layout) */}

@@ -245,27 +246,47 @@ export const PreviewStep: React.FC = ({ parts, config, splits }) => {

-
- {parts.map(part => ( -
{ itemRefs.current[part.id] = el }} - className={`p-4 rounded-lg border transition-all cursor-pointer group ${selectedId === part.id ? 'bg-slate-800 border-accent shadow-md shadow-accent/10 ring-1 ring-accent' : 'bg-slate-800/50 border-slate-700 hover:border-slate-500 hover:bg-slate-800'}`} - onClick={() => setSelectedId(part.id)} - > -
- {part.name} -
-
- - -
- ))} + {/* Цветной индикатор на фоне */} +
+ +
+ + {part.name} + +
+
+ + +
+ ))} +