Files
Rafał MiczekandCursor da85370936
continuous-integration/drone/push Build is passing
Ship K-design admin with multi-channel support and polish.
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>
2026-10-17 13:46:21 +02:00

239 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Inventory — 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" href="05-orders.html"><svg class="ico" aria-hidden="true"><use href="#i-orders"></use></svg> Orders</a>
<a class="nav-link is-active" 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"><span class="avatar">AK</span> Anna K.</div>
</div>
</header>
<main class="content" data-tabs-host>
<div class="page-header">
<div>
<h1>Inventory</h1>
<p class="page-purpose">Stock health across warehouses — alerts first, then matrix.</p>
</div>
<div class="page-actions">
<a class="btn btn-secondary" href="13-settings.html">Default threshold</a>
<button type="button" class="btn btn-primary">Adjust stock</button>
</div>
</div>
<div class="alert-strip">
<span class="alert-pill danger">
<span class="dot" style="background: var(--danger)"></span>
3 SKUs at or below threshold
</span>
<span class="alert-pill warn">
<span class="dot" style="background: var(--warning)"></span>
6 units reserved in open orders
</span>
</div>
<div class="tabs" data-tabs role="tablist">
<button type="button" class="tab is-active" data-tab="alerts">Low stock</button>
<button type="button" class="tab" data-tab="matrix">Warehouse matrix</button>
</div>
<div class="tab-panel is-active" data-panel="alerts">
<div class="card">
<div class="table-wrap">
<table class="data">
<thead>
<tr>
<th>Product</th>
<th>Available</th>
<th>Reserved</th>
<th>Threshold</th>
<th>WH1</th>
<th>WH2</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="cell-strong">Lampa LED Black</div>
<div class="cell-muted">LED-BLK-01</div>
</td>
<td><span class="badge badge-danger">1</span></td>
<td>1</td>
<td>5</td>
<td>1</td>
<td>1</td>
<td class="text-right">
<button type="button" class="btn btn-primary btn-sm">Restock</button>
<a class="btn btn-ghost btn-sm" href="04-product-form.html">Product</a>
</td>
</tr>
<tr>
<td>
<div class="cell-strong">Lampa LED Gold</div>
<div class="cell-muted">LED-GLD-01</div>
</td>
<td><span class="badge badge-warning">4</span></td>
<td>0</td>
<td>5</td>
<td>3</td>
<td>1</td>
<td class="text-right">
<button type="button" class="btn btn-primary btn-sm">Restock</button>
<a class="btn btn-ghost btn-sm" href="04-product-form.html">Product</a>
</td>
</tr>
<tr>
<td>
<div class="cell-strong">LED Strip 5m</div>
<div class="cell-muted">LED-STR-5</div>
</td>
<td><span class="badge badge-danger">0</span></td>
<td>2</td>
<td>5</td>
<td>1</td>
<td>0</td>
<td class="text-right">
<button type="button" class="btn btn-primary btn-sm">Restock</button>
<a class="btn btn-ghost btn-sm" href="04-product-form.html">Product</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Quick adjust drawer mock -->
<div class="card mt-16">
<div class="card-head"><h2>Quick adjust · Lampa LED Black</h2></div>
<div class="card-pad">
<div class="grid grid-3">
<div class="field"><label>Warehouse</label><select class="select"><option>Warszawa Central (WH1)</option><option>Kraków Hub (WH2)</option></select></div>
<div class="field"><label>New quantity</label><input class="input" type="number" value="12" /></div>
<div class="field"><label>Reason</label><input class="input" placeholder="Delivery received…" /></div>
</div>
<div class="flex gap-8 mt-16">
<button type="button" class="btn btn-primary">Apply</button>
<button type="button" class="btn btn-secondary">Cancel</button>
</div>
</div>
</div>
</div>
<div class="tab-panel" data-panel="matrix">
<div class="card">
<div class="toolbar">
<div class="search-wrap">
<span class="search-icon">⌕</span>
<input class="input" type="search" placeholder="Filter SKU…" />
</div>
<div class="toolbar-spacer"></div>
<span class="cell-muted">Available = stock − reserved</span>
</div>
<div class="table-wrap">
<table class="data">
<thead>
<tr>
<th>SKU</th>
<th>WH1 qty</th>
<th>WH2 qty</th>
<th>Total</th>
<th>Reserved</th>
<th>Available</th>
</tr>
</thead>
<tbody>
<tr>
<td class="cell-strong">LED-BLK-01</td>
<td>1</td>
<td>1</td>
<td>2</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td class="cell-strong">LED-GLD-01</td>
<td>3</td>
<td>1</td>
<td>4</td>
<td>0</td>
<td>4</td>
</tr>
<tr>
<td class="cell-strong">LED-STR-5</td>
<td>1</td>
<td>0</td>
<td>1</td>
<td>2</td>
<td><span class="badge badge-danger">−1†</span></td>
</tr>
<tr>
<td class="cell-strong">LED-WHT-01</td>
<td>18</td>
<td>6</td>
<td>24</td>
<td>3</td>
<td>21</td>
</tr>
</tbody>
</table>
</div>
<div class="card-pad">
<span class="field-hint">† Negative available means oversell risk — fulfill from another warehouse or restock.</span>
</div>
</div>
</div>
</main>
</div>
</div>
<script src="assets/admin-k.js"></script>
</body>
</html>