Ship K-design admin with multi-channel support and polish.
continuous-integration/drone/push Build is passing

Replace placeholder admin pages with the design system, add analytics/customers/categories/inventory/settings, channel pricing and order sources, plus skeleton loaders and clean motion.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Rafał MiczekandCursor committed 2026-10-17 13:46:21 +02:00
1 parent 1890b50e0d
commit da85370936
102 files changed
+20282 -2153

No files matched your search

+337
View File
@@ -0,0 +1,337 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Orders — iLED Admin</title>
<link rel="stylesheet" href="assets/admin-k.css" />
</head>
<body>
<div class="sidebar-backdrop" data-menu-close></div>
<div class="app">
<aside class="sidebar" id="sidebar">
<div class="sidebar-brand">
<span class="mark"><svg class="ico" aria-hidden="true"><use href="#i-bulb"></use></svg></span>
<span>iLED Admin</span>
</div>
<nav class="sidebar-nav" aria-label="Main">
<div class="nav-group">
<div class="nav-group-label">Ops</div>
<a class="nav-link" href="02-dashboard.html"><svg class="ico" aria-hidden="true"><use href="#i-dashboard"></use></svg> Dashboard</a>
<a class="nav-link is-active" href="05-orders.html"><svg class="ico" aria-hidden="true"><use href="#i-orders"></use></svg> Orders</a>
<a class="nav-link" href="12-inventory.html"><svg class="ico" aria-hidden="true"><use href="#i-inventory"></use></svg> Inventory</a>
</div>
<div class="nav-group">
<div class="nav-group-label">Catalog</div>
<a class="nav-link" href="03-products.html"><svg class="ico" aria-hidden="true"><use href="#i-products"></use></svg> Products</a>
<a class="nav-link" href="11-categories.html"><svg class="ico" aria-hidden="true"><use href="#i-categories"></use></svg> Categories</a>
</div>
<div class="nav-group">
<div class="nav-group-label">People</div>
<a class="nav-link" href="10-customers.html"><svg class="ico" aria-hidden="true"><use href="#i-customers"></use></svg> Customers</a>
</div>
<div class="nav-group">
<div class="nav-group-label">Marketing</div>
<a class="nav-link" href="07-promotions.html"><svg class="ico" aria-hidden="true"><use href="#i-promotions"></use></svg> Promotions</a>
<a class="nav-link" href="08-newsletter.html"><svg class="ico" aria-hidden="true"><use href="#i-newsletter"></use></svg> Newsletter</a>
<a class="nav-link" href="09-reviews.html"><svg class="ico" aria-hidden="true"><use href="#i-reviews"></use></svg> Reviews</a>
</div>
<div class="nav-group">
<div class="nav-group-label">System</div>
<a class="nav-link" href="13-settings.html"><svg class="ico" aria-hidden="true"><use href="#i-settings"></use></svg> Settings</a>
</div>
</nav>
<div class="sidebar-foot"><a class="btn btn-secondary w-full" href="01-login.html">Log out</a></div>
</aside>
<div class="main">
<header class="topbar">
<div class="topbar-left">
<button type="button" class="menu-btn" data-menu-toggle aria-label="Open menu">
<svg class="ico" aria-hidden="true"><use href="#i-menu"></use></svg>
</button>
<a href="index.html" class="muted" style="font-size: 12.5px; font-weight: 600">Mocks</a>
</div>
<div class="topbar-right">
<div class="locale"><button type="button" class="is-active">PL</button><button type="button">EN</button><button type="button">DE</button><button type="button">CS</button></div>
<div class="admin-chip" title="Signed in as Anna Kowalska">
<span class="avatar">AK</span>
Anna K.
</div>
</div>
</header>
<main class="content" data-tabs-host>
<div class="page-header">
<div>
<h1>Orders</h1>
<p class="page-purpose">Fulfill and resolve — select many to pick, invoice, or label in one go.</p>
</div>
<div class="page-actions">
<button type="button" class="btn btn-secondary">Export CSV</button>
</div>
</div>
<div class="tabs" data-tabs role="tablist">
<button type="button" class="tab is-active" data-tab="list">List</button>
<button type="button" class="tab" data-tab="pick">Pick list</button>
</div>
<div class="tab-panel is-active" data-panel="list">
<div class="card">
<div class="toolbar">
<div class="search-wrap">
<svg class="ico ico-sm search-icon" aria-hidden="true"><use href="#i-search"></use></svg>
<input class="input" type="search" placeholder="Order #, email…" />
</div>
<select class="select">
<option>All statuses</option>
<option>Pending payment</option>
<option>Paid</option>
<option>Processing</option>
<option>Shipped</option>
</select>
<select class="select">
<option>All payments</option>
<option>Pending</option>
<option>Completed</option>
<option>Failed</option>
</select>
<input class="input" type="month" value="2026-10" style="min-width: 150px" />
<div class="toolbar-spacer"></div>
<select class="select"><option>Sort: Newest</option><option>Total</option><option>Number</option></select>
</div>
<div class="bulk-bar" data-bulk-bar>
<span class="count" data-bulk-count>0 selected</span>
<button type="button" class="btn btn-primary btn-sm">
<svg class="ico" aria-hidden="true"><use href="#i-pick"></use></svg>
Collect / pick
</button>
<button type="button" class="btn btn-secondary btn-sm">
<svg class="ico" aria-hidden="true"><use href="#i-invoice"></use></svg>
Generate invoices
</button>
<button type="button" class="btn btn-secondary btn-sm">
<svg class="ico" aria-hidden="true"><use href="#i-label"></use></svg>
Generate labels
</button>
<span class="cell-muted" style="margin-left: auto">Actions attributed to Anna K.</span>
</div>
<div class="table-wrap">
<table class="data">
<thead>
<tr>
<th><input type="checkbox" class="check" data-select-all aria-label="Select all" /></th>
<th>Order</th>
<th>Customer</th>
<th>Total</th>
<th>Payment</th>
<th>Fulfillment</th>
<th>Handled by</th>
<th>Age</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" class="check" aria-label="Select #ILED-1042" /></td>
<td>
<div class="cell-strong">#ILED-1042</div>
<div class="cell-muted">17 Oct 10:24</div>
</td>
<td>anna.kowalska@mail.pl</td>
<td class="cell-strong">299,00 zł</td>
<td><span class="badge badge-warning">Pending</span></td>
<td><span class="badge badge-neutral">—</span></td>
<td class="cell-muted">—</td>
<td class="cell-muted">2h</td>
<td class="text-right"><a class="btn btn-secondary btn-sm" href="06-order-detail.html">Open</a></td>
</tr>
<tr>
<td><input type="checkbox" class="check" aria-label="Select #ILED-1041" checked /></td>
<td>
<div class="cell-strong">#ILED-1041</div>
<div class="cell-muted">17 Oct 09:01</div>
</td>
<td>jan.nowak@mail.pl</td>
<td class="cell-strong">478,00 zł</td>
<td><span class="badge badge-success">Paid</span></td>
<td><span class="badge badge-info">Ready to pick</span></td>
<td>
<span class="handled-by">
<span class="avatar avatar-sm">AK</span>
<span class="name">Anna K.</span>
</span>
</td>
<td class="cell-muted">3h</td>
<td class="text-right"><a class="btn btn-primary btn-sm" href="06-order-detail.html">Pick</a></td>
</tr>
<tr>
<td><input type="checkbox" class="check" aria-label="Select #ILED-1039" checked /></td>
<td>
<div class="cell-strong">#ILED-1039</div>
<div class="cell-muted">16 Oct 18:40</div>
</td>
<td>m.wisniewska@mail.pl</td>
<td class="cell-strong">149,00 zł</td>
<td><span class="badge badge-success">Paid</span></td>
<td><span class="badge badge-accent">Label missing</span></td>
<td>
<span class="handled-by">
<span class="avatar avatar-sm avatar-muted">MW</span>
<span class="name">Marek W.</span>
</span>
</td>
<td class="cell-muted">18h</td>
<td class="text-right"><a class="btn btn-secondary btn-sm" href="06-order-detail.html">Open</a></td>
</tr>
<tr>
<td><input type="checkbox" class="check" aria-label="Select #ILED-1037" /></td>
<td>
<div class="cell-strong">#ILED-1037</div>
<div class="cell-muted">16 Oct 14:12</div>
</td>
<td>piotr.z@mail.pl</td>
<td class="cell-strong">628,00 zł</td>
<td><span class="badge badge-success">Paid</span></td>
<td><span class="badge badge-info">Processing</span></td>
<td>
<span class="handled-by">
<span class="avatar avatar-sm">AK</span>
<span class="name">Anna K.</span>
</span>
</td>
<td class="cell-muted">22h</td>
<td class="text-right"><a class="btn btn-secondary btn-sm" href="06-order-detail.html">Open</a></td>
</tr>
<tr>
<td><input type="checkbox" class="check" aria-label="Select #ILED-1030" /></td>
<td>
<div class="cell-strong">#ILED-1030</div>
<div class="cell-muted">15 Oct 11:05</div>
</td>
<td>ola@mail.pl</td>
<td class="cell-strong">329,00 zł</td>
<td><span class="badge badge-success">Paid</span></td>
<td><span class="badge badge-success">Shipped</span></td>
<td>
<span class="handled-by">
<span class="avatar avatar-sm avatar-muted">MW</span>
<span class="name">Marek W.</span>
</span>
</td>
<td class="cell-muted">2d</td>
<td class="text-right"><a class="btn btn-secondary btn-sm" href="06-order-detail.html">Open</a></td>
</tr>
</tbody>
</table>
</div>
<div class="pagination">
<span>Showing 1–5 of 128 · Tip: select rows for bulk pick / invoice / label</span>
<div class="pagination-btns">
<button type="button" class="btn btn-secondary btn-sm" disabled>Prev</button>
<button type="button" class="btn btn-secondary btn-sm">Next</button>
</div>
</div>
</div>
</div>
<div class="tab-panel" data-panel="pick">
<div class="card mb-16">
<div class="toolbar">
<select class="select"><option>Warehouse: Warszawa Central</option><option>Kraków Hub</option></select>
<label class="flex items-center gap-8" style="font-size: 13px"><input type="checkbox" class="check" /> Show collected</label>
<div class="toolbar-spacer"></div>
<span class="handled-by">
<span class="avatar avatar-sm">AK</span>
Picking as <span class="name">Anna K.</span>
</span>
<button type="button" class="btn btn-secondary btn-sm">Refresh</button>
</div>
<div class="bulk-bar is-visible" data-bulk-bar>
<span class="count" data-bulk-count>2 orders selected</span>
<button type="button" class="btn btn-primary btn-sm">
<svg class="ico" aria-hidden="true"><use href="#i-pick"></use></svg>
Collect selected
</button>
<button type="button" class="btn btn-secondary btn-sm">
<svg class="ico" aria-hidden="true"><use href="#i-label"></use></svg>
Labels for selected
</button>
</div>
</div>
<div class="card mb-16">
<div class="card-head">
<div class="flex items-center gap-12">
<input type="checkbox" class="check" checked aria-label="Select order" />
<div>
<h2>#ILED-1041 · jan.nowak@mail.pl</h2>
<span class="cell-muted">2 lines · DHL · claimed by Anna K.</span>
</div>
</div>
<button type="button" class="btn btn-primary btn-sm">Collect order</button>
</div>
<div class="table-wrap">
<table class="data">
<thead><tr><th>Product</th><th>Qty</th><th>Location</th><th>Collected by</th><th></th></tr></thead>
<tbody>
<tr>
<td class="cell-strong">Lampa LED Black</td>
<td>1</td>
<td class="cell-muted">WH1 · A-12</td>
<td class="cell-muted">—</td>
<td class="text-right"><button type="button" class="btn btn-secondary btn-sm">Collect line</button></td>
</tr>
<tr>
<td class="cell-strong">LED Strip 5m</td>
<td>1</td>
<td class="cell-muted">WH1 · B-03</td>
<td class="cell-muted">—</td>
<td class="text-right"><button type="button" class="btn btn-secondary btn-sm">Collect line</button></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-head">
<div class="flex items-center gap-12">
<input type="checkbox" class="check" checked aria-label="Select order" />
<div>
<h2>#ILED-1037 · piotr.z@mail.pl</h2>
<span class="cell-muted">1 line · DPD · claimed by Anna K.</span>
</div>
</div>
<button type="button" class="btn btn-primary btn-sm">Collect order</button>
</div>
<div class="table-wrap">
<table class="data">
<thead><tr><th>Product</th><th>Qty</th><th>Location</th><th>Collected by</th><th></th></tr></thead>
<tbody>
<tr>
<td class="cell-strong">Lampa LED Gold</td>
<td>2</td>
<td class="cell-muted">WH1 · A-08</td>
<td>
<span class="handled-by">
<span class="avatar avatar-sm avatar-muted">MW</span>
<span class="name">Marek W.</span>
</span>
</td>
<td class="text-right"><button type="button" class="btn btn-secondary btn-sm" disabled>Collected</button></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</main>
</div>
</div>
<script src="assets/admin-k.js"></script>
</body>
</html>