diff --git a/package-lock.json b/package-lock.json
index b48b18d..b435498 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "web",
"version": "0.0.0",
"dependencies": {
+ "@heroicons/react": "^2.2.0",
"@tailwindcss/vite": "^4.1.17",
"konva": "^10.0.12",
"pyodide": "^0.27.4",
@@ -831,6 +832,15 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
+ "node_modules/@heroicons/react": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz",
+ "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">= 16 || ^19.0.0-rc"
+ }
+ },
"node_modules/@humanfs/core": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
diff --git a/package.json b/package.json
index 4458565..6cd6f4c 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"preview": "vite preview"
},
"dependencies": {
+ "@heroicons/react": "^2.2.0",
"@tailwindcss/vite": "^4.1.17",
"konva": "^10.0.12",
"pyodide": "^0.27.4",
diff --git a/src/components/ConfirmDialog.tsx b/src/components/ConfirmDialog.tsx
index e0fff6d..f5ada47 100644
--- a/src/components/ConfirmDialog.tsx
+++ b/src/components/ConfirmDialog.tsx
@@ -55,14 +55,14 @@ export function ConfirmDialog({
diff --git a/src/components/FileUpload.tsx b/src/components/FileUpload.tsx
index b2dcccc..a924145 100644
--- a/src/components/FileUpload.tsx
+++ b/src/components/FileUpload.tsx
@@ -74,7 +74,7 @@ export function FileUpload({
className="hidden"
disabled={!pyodideReady || isLoading}
/>
-
{canStartSewing(machineStatus) && (
-
+
Start Sewing
)}
{canStartMaskTrace(machineStatus) && (
-
+
Trace Again
)}
@@ -268,7 +273,7 @@ export function ProgressMonitor({
Pattern uploaded successfully
{canStartMaskTrace(machineStatus) && (
-
+
Start Mask Trace
)}
@@ -279,12 +284,12 @@ export function ProgressMonitor({
{machineStatus === MachineStatus.SEWING_WAIT && (
<>
{canStartMaskTrace(machineStatus) && (
-
+
Start Mask Trace
)}
{canStartSewing(machineStatus) && (
-
+
Start Sewing
)}
@@ -293,8 +298,9 @@ export function ProgressMonitor({
{/* Resume sewing for interrupted states */}
{canResumeSewing(machineStatus) && (
-
- ▶️ Resume Sewing
+
+
+ Resume Sewing
)}
@@ -321,7 +327,7 @@ export function ProgressMonitor({
{/* Delete pattern button - ONLY show when safe */}
{patternInfo && canDeletePattern(machineStatus) && (
-
+
Delete Pattern
)}