{ "name": "stagepick", "version": "1.0.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start" }, "dependencies": { "@supabase/supabase-js": "^2.45.0", "framer-motion": "^11.3.0", "html5-qrcode": "^2.3.8", "lucide-react": "^0.424.0", "next": "14.2.5", "react": "^18.3.1", "react-dom": "^18.3.1" }, "devDependencies": { "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "autoprefixer": "^10.4.19", "postcss": "^8.4.39", "tailwindcss": "^3.4.6", "typescript": "^5" } } { "compilerOptions": { "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "strict": true, "noEmit": true, "esModuleInterop": true, "module": "esnext", "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", "incremental": true, "plugins": [{ "name": "next" }], "paths": { "@/*": ["./*"] } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] }/** @type {import('next').NextConfig} */ const nextConfig = { images: { remotePatterns: [ { protocol: "https", hostname: "images.unsplash.com" }, { protocol: "https", hostname: "**.supabase.co" } ] } }; export default nextConfig;const config = { plugins: { tailwindcss: {}, autoprefixer: {} } };import type { Config } from "tailwindcss"; const config: Config = { content: [ "./app/**/*.{js,ts,jsx,tsx,mdx}", "./components/**/*.{js,ts,jsx,tsx,mdx}" ], theme: { extend: {} }, plugins: [] }; export default config;@tailwind base; @tailwind components; @tailwind utilities; body { font-family: Inter, system-ui, -apple-system, sans-serif; } .pt-safe { padding-top: env(safe-area-inset-top); } .safe-top { padding-top: max(0.75rem, env(safe-area-inset-top)); } .safe-bottom { padding-bottom: max(1.25rem, env(safe-area-inset-bottom)); } export default config;import "./globals.css"; import { AuthProvider } from "@/components/AuthProvider"; export const metadata = { title: "StagePick – Live Picking Dashboard", description: "Professional warehouse picking dashboard for home staging" }; export default function RootLayout({ children }: { children: React.ReactNode }) { return (
{profile?.full_name || "User"}
{profile?.role || "warehouse"}
{item.description}
{truck.name} • {truck.bay}
{truck.status}
{event.user_name}{" "} {event.type === "picked" && "picked"} {event.type === "at_dock" && "moved to dock"} {event.type === "loaded" && "loaded"} {event.type === "started" && "started picking"} {event.type === "moved" && "moved"} {" "} {event.item_name}
{timeAgo(event.created_at)}{item.description}
Scan Barcode / QR
{error}
:Point at the barcode or QR code on the item
}