Scaffold project structure

This commit is contained in:
2026-05-12 17:05:08 +03:00
commit 94e0396380
39 changed files with 1723 additions and 0 deletions

150
demo/detail-queued.html Normal file
View File

@@ -0,0 +1,150 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>sleepy_volta · queued — hamprint</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
</style>
</head>
<body class="min-h-screen bg-slate-50 text-slate-900">
<div class="bg-slate-900 text-slate-200 text-xs">
<div class="mx-auto max-w-6xl px-4 py-2 flex flex-wrap items-center gap-x-3 gap-y-1">
<span class="font-semibold text-amber-400">PROTOTYPE</span>
<a class="hover:text-white underline-offset-2 hover:underline" href="index.html">Dashboard</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="submit.html">Submit (guest)</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="submit-signed-in.html">Submit (signed-in)</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="login.html">Sign in</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="my-prints.html">My prints</a>
<span class="text-slate-500">|</span>
<a class="hover:text-white underline-offset-2 hover:underline" href="detail-pending.html">Detail: pending</a>
<a class="hover:text-white underline-offset-2 hover:underline font-semibold text-amber-300" href="detail-queued.html">queued</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="detail-printing.html">printing</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="detail-completed.html">completed</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="detail-rejected.html">rejected</a>
<a class="hover:text-white underline-offset-2 hover:underline" href="confirmed.html">confirmation link</a>
</div>
</div>
<nav class="border-b border-slate-200 bg-white">
<div class="mx-auto max-w-6xl px-4 py-3 flex items-center justify-between">
<a href="index.html" class="flex items-center gap-2">
<span class="inline-grid place-items-center w-8 h-8 rounded-md bg-amber-500 text-white font-bold">h</span>
<span class="font-bold text-lg tracking-tight">hamprint</span>
<span class="hidden sm:inline text-xs text-slate-500 ml-1">· hamlab.lt</span>
</a>
<div class="flex items-center gap-1">
<a href="index.html" class="px-3 py-1.5 text-sm rounded-md text-slate-700 hover:bg-slate-100">Dashboard</a>
<a href="submit.html" class="px-3 py-1.5 text-sm rounded-md bg-amber-500 text-white hover:bg-amber-600 font-medium">+ Submit a print</a>
<a href="login.html" class="px-3 py-1.5 text-sm rounded-md text-slate-700 hover:bg-slate-100">Sign in</a>
</div>
</div>
</nav>
<main class="mx-auto max-w-4xl px-4 py-8">
<!-- Status banner -->
<div class="rounded-lg border border-blue-200 bg-blue-50 p-5 mb-6 flex items-start gap-4">
<svg class="w-8 h-8 text-blue-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
<div class="flex-1">
<h2 class="font-semibold text-blue-900">In the queue · position #1</h2>
<p class="text-sm text-blue-900/80 mt-1">An operator will pick this up soon. This page refreshes automatically every 30 s.</p>
</div>
<span class="hidden sm:inline-flex items-center gap-1.5 text-xs text-blue-700 bg-blue-100 px-2 py-1 rounded-md">
<span class="w-1.5 h-1.5 rounded-full bg-blue-500 animate-pulse"></span>
Live
</span>
</div>
<!-- Header -->
<header class="mb-6 flex flex-wrap items-start justify-between gap-4">
<div>
<div class="flex items-center gap-3 mb-2">
<span class="inline-flex items-center gap-1.5 px-2.5 py-0.5 rounded-full bg-blue-100 text-blue-800 text-xs font-medium">Queued</span>
<span class="text-xs text-slate-500">Submitted 42 minutes ago</span>
</div>
<h1 class="mono text-3xl font-bold tracking-tight text-amber-700">sleepy_volta</h1>
</div>
<button class="px-3 py-1.5 text-sm rounded-md border border-slate-300 bg-white text-slate-700 hover:bg-slate-100 flex items-center gap-1.5">
<svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244" /></svg>
Copy link
</button>
</header>
<div class="grid lg:grid-cols-3 gap-6">
<!-- Main -->
<section class="lg:col-span-2 space-y-4">
<div class="bg-white border border-slate-200 rounded-lg p-5">
<h3 class="font-semibold text-sm uppercase tracking-wide text-slate-500 mb-3">Source</h3>
<a href="https://www.printables.com/" target="_blank" class="flex items-center gap-3 p-3 rounded-md bg-slate-50 border border-slate-200 hover:border-amber-400 hover:bg-amber-50/40">
<span class="w-10 h-10 rounded-md bg-orange-100 grid place-items-center text-orange-700 font-bold text-xs">P</span>
<div class="flex-1 min-w-0">
<p class="font-medium text-sm truncate">printables.com/model/123456-detailed-dragon-mini</p>
<p class="text-xs text-slate-500">Printables.com · external link</p>
</div>
<svg class="w-4 h-4 text-slate-400" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" /></svg>
</a>
</div>
</section>
<!-- Sidebar -->
<aside class="space-y-4">
<div class="bg-white border border-slate-200 rounded-lg p-5">
<h3 class="font-semibold text-sm uppercase tracking-wide text-slate-500 mb-3">Timeline</h3>
<ol class="space-y-3 text-sm">
<li class="flex gap-3">
<span class="w-2 h-2 rounded-full bg-emerald-500 mt-1.5 flex-shrink-0"></span>
<div>
<p class="font-medium">Submitted</p>
<p class="text-xs text-slate-500">42 min ago</p>
</div>
</li>
<li class="flex gap-3">
<span class="w-2 h-2 rounded-full bg-emerald-500 mt-1.5 flex-shrink-0"></span>
<div>
<p class="font-medium">Confirmed</p>
<p class="text-xs text-slate-500">41 min ago</p>
</div>
</li>
<li class="flex gap-3">
<span class="w-2 h-2 rounded-full bg-blue-500 mt-1.5 flex-shrink-0 ring-4 ring-blue-100"></span>
<div>
<p class="font-medium">Queued · #1</p>
<p class="text-xs text-slate-500">Now</p>
</div>
</li>
<li class="flex gap-3 opacity-50">
<span class="w-2 h-2 rounded-full bg-slate-300 mt-1.5 flex-shrink-0"></span>
<div><p class="font-medium">Printing</p></div>
</li>
<li class="flex gap-3 opacity-50">
<span class="w-2 h-2 rounded-full bg-slate-300 mt-1.5 flex-shrink-0"></span>
<div><p class="font-medium">Completed</p></div>
</li>
</ol>
</div>
<div class="bg-white border border-slate-200 rounded-lg p-5 text-sm">
<h3 class="font-semibold text-sm uppercase tracking-wide text-slate-500 mb-3">Details</h3>
<dl class="space-y-2">
<div class="flex justify-between"><dt class="text-slate-500">Source</dt><dd>printables.com</dd></div>
<div class="flex justify-between"><dt class="text-slate-500">Submitter</dt><dd>Guest</dd></div>
<div class="flex justify-between"><dt class="text-slate-500">Created</dt><dd>13:04, today</dd></div>
</dl>
</div>
</aside>
</div>
</main>
<footer class="mt-12 border-t border-slate-200 bg-white">
<div class="mx-auto max-w-6xl px-4 py-6 text-sm text-slate-500 text-center">
A community service of <a href="https://hamlab.lt" class="font-medium text-slate-700 hover:underline">hamlab.lt</a>
</div>
</footer>
</body>
</html>