diff --git a/src/App.tsx b/src/App.tsx index 5a2dff3..0ab6967 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -87,8 +87,8 @@ function App() { }, [machine.machineStatus, machine.patternInfo, machine.isConnected]); return ( -
-
+
+

SKiTCH Controller

@@ -109,9 +109,9 @@ function App() {
{/* Global errors */} {machine.error && ( -
+
- +
@@ -121,9 +121,9 @@ function App() {
)} {pyodideError && ( -
+
- +
@@ -133,9 +133,9 @@ function App() {
)} {!pyodideReady && !pyodideError && ( -
+
- + @@ -199,44 +199,45 @@ function App() { initialPatternOffset={patternOffset} onPatternOffsetChange={handlePatternOffsetChange} patternUploaded={patternUploaded} + isUploading={machine.uploadProgress > 0 && machine.uploadProgress < 100} /> ) : ( -
-

Pattern Preview

-
+
+

Pattern Preview

+
{/* Decorative background pattern */} -
-
-
-
+
+
+
+
- + -
- +
+
-

No Pattern Loaded

-

+

No Pattern Loaded

+

Connect to your machine and choose a PES embroidery file to see your design preview

-
+
-
+
Drag to Position
-
+
Zoom & Pan
-
+
Real-time Preview
diff --git a/src/components/ConfirmDialog.tsx b/src/components/ConfirmDialog.tsx index bad1fa0..4035acd 100644 --- a/src/components/ConfirmDialog.tsx +++ b/src/components/ConfirmDialog.tsx @@ -38,24 +38,24 @@ export function ConfirmDialog({ if (!isOpen) return null; return ( -
+
e.stopPropagation()} role="dialog" aria-labelledby="dialog-title" aria-describedby="dialog-message" > -
-

{title}

+
+

{title}

-

{message}

+

{message}

-
+
- {Math.round(stageScale * 100)}% - -
diff --git a/src/components/ProgressMonitor.tsx b/src/components/ProgressMonitor.tsx index 0f6c12f..418d42b 100644 --- a/src/components/ProgressMonitor.tsx +++ b/src/components/ProgressMonitor.tsx @@ -97,41 +97,41 @@ export function ProgressMonitor({ ); const stateIndicatorColors = { - idle: 'bg-blue-50 border-l-blue-600', - info: 'bg-blue-50 border-l-blue-600', - active: 'bg-yellow-50 border-l-yellow-500', - waiting: 'bg-yellow-50 border-l-yellow-500', - warning: 'bg-yellow-50 border-l-yellow-500', - complete: 'bg-green-50 border-l-green-600', - success: 'bg-green-50 border-l-green-600', - interrupted: 'bg-red-50 border-l-red-600', - error: 'bg-red-50 border-l-red-600', - danger: 'bg-red-50 border-l-red-600', + idle: 'bg-blue-50 dark:bg-blue-900/20 border-l-blue-600', + info: 'bg-blue-50 dark:bg-blue-900/20 border-l-blue-600', + active: 'bg-yellow-50 dark:bg-yellow-900/20 border-l-yellow-500', + waiting: 'bg-yellow-50 dark:bg-yellow-900/20 border-l-yellow-500', + warning: 'bg-yellow-50 dark:bg-yellow-900/20 border-l-yellow-500', + complete: 'bg-green-50 dark:bg-green-900/20 border-l-green-600', + success: 'bg-green-50 dark:bg-green-900/20 border-l-green-600', + interrupted: 'bg-red-50 dark:bg-red-900/20 border-l-red-600', + error: 'bg-red-50 dark:bg-red-900/20 border-l-red-600', + danger: 'bg-red-50 dark:bg-red-900/20 border-l-red-600', }; return ( -
-

Sewing Progress

+
+

Sewing Progress

{/* Left Column - Pattern Info & Progress */}
{patternInfo && ( -
+
- Total Stitches - {patternInfo.totalStitches.toLocaleString()} + Total Stitches + {patternInfo.totalStitches.toLocaleString()}
- Est. Time - + Est. Time + {Math.floor(patternInfo.totalTime / 60)}:{String(patternInfo.totalTime % 60).padStart(2, '0')}
- Speed - {patternInfo.speed} spm + Speed + {patternInfo.speed} spm
@@ -140,23 +140,23 @@ export function ProgressMonitor({ {sewingProgress && (
- Progress - {progressPercent.toFixed(1)}% + Progress + {progressPercent.toFixed(1)}%
-
-
+
+
-
+
- Current Stitch - + Current Stitch + {sewingProgress.currentStitch.toLocaleString()} / {patternInfo?.totalStitches.toLocaleString() || 0}
- Time Elapsed - + Time Elapsed + {Math.floor(sewingProgress.currentTime / 60)}:{String(sewingProgress.currentTime % 60).padStart(2, '0')}
@@ -167,12 +167,12 @@ export function ProgressMonitor({ {/* State Visual Indicator */} {patternInfo && (() => { const iconMap = { - ready: , - active: , - waiting: , - complete: , - interrupted: , - error: + ready: , + active: , + waiting: , + complete: , + interrupted: , + error: }; return ( @@ -181,8 +181,8 @@ export function ProgressMonitor({ {iconMap[stateVisual.iconName]}
-
{stateVisual.label}
-
{stateVisual.description}
+
{stateVisual.label}
+
{stateVisual.description}
); @@ -194,7 +194,7 @@ export function ProgressMonitor({ {canResumeSewing(machineStatus) && (