mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-11 17:26:32 +02:00
feat: Implement an Apple-inspired design system with dark/light modes and introduce the initial dashboard layout including a heatmap grid component.
This commit is contained in:
1 parent
3ba16d0895
commit
c7fa25a5d1
4 files changed
+21
-17
No files matched your search
@@ -7,7 +7,7 @@ export default async function DashboardLayout({ children }: { children: React.Re
|
||||
<Sidebar />
|
||||
<main className="flex-1 flex flex-col h-full min-w-0 overflow-hidden">
|
||||
<Header />
|
||||
<div className="flex-1 overflow-auto p-4 md:p-8">
|
||||
<div className="flex-1 overflow-hidden flex flex-col p-4 md:p-8">
|
||||
{children}
|
||||
</div>
|
||||
</main>
|
||||
|
||||
+2
-2
@@ -192,8 +192,8 @@
|
||||
|
||||
/* ── Refined scrollbar ── */
|
||||
.overflow-auto::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
.overflow-auto::-webkit-scrollbar-track {
|
||||
|
||||
@@ -78,9 +78,9 @@ export function GridClient({ initialRows, nomFournisseur, fournisseurs, magasins
|
||||
const activeStoreNom = magasins.find(m => m.code === magasin)?.nom || "National (Total)";
|
||||
|
||||
return (
|
||||
<div className="space-y-3 pb-20">
|
||||
<div className="flex flex-col h-full space-y-3 min-h-0 pb-12">
|
||||
{/* Header */}
|
||||
<div className="flex items-end justify-between">
|
||||
<div className="flex items-end justify-between shrink-0">
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold tracking-tight">Révision d'Assortiment</h1>
|
||||
<p className="text-[13px] mt-0.5" style={{ color: "var(--text-secondary)" }}>
|
||||
@@ -114,18 +114,24 @@ export function GridClient({ initialRows, nomFournisseur, fournisseurs, magasins
|
||||
</div>
|
||||
|
||||
{/* Filters */}
|
||||
<GridFilterBar fournisseurs={fournisseurs} magasins={magasins} nomenclature={nomenclature} />
|
||||
<div className="shrink-0">
|
||||
<GridFilterBar fournisseurs={fournisseurs} magasins={magasins} nomenclature={nomenclature} />
|
||||
</div>
|
||||
|
||||
{/* Bulk toolbar (contextual) */}
|
||||
<BulkActionToolbar
|
||||
selectedCodeins={selectedCodeins}
|
||||
onClearSelection={() => setSelectedCodeins([])}
|
||||
/>
|
||||
<div className="shrink-0">
|
||||
<BulkActionToolbar
|
||||
selectedCodeins={selectedCodeins}
|
||||
onClearSelection={() => setSelectedCodeins([])}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Main grid */}
|
||||
<HeatmapGrid
|
||||
onSelectionChange={setSelectedCodeins}
|
||||
/>
|
||||
<div className="flex-1 min-h-0 min-w-0">
|
||||
<HeatmapGrid
|
||||
onSelectionChange={setSelectedCodeins}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Summary bar */}
|
||||
<FloatingSummaryBar />
|
||||
|
||||
@@ -441,9 +441,8 @@ export function HeatmapGrid({ onSelectionChange }: HeatmapGridProps) {
|
||||
if (!isMounted) {
|
||||
return (
|
||||
<div
|
||||
className="overflow-auto rounded-[12px] flex items-center justify-center"
|
||||
className="h-full w-full overflow-auto rounded-[12px] flex items-center justify-center"
|
||||
style={{
|
||||
height: "calc(100vh - 240px)",
|
||||
background: "var(--bg-surface)",
|
||||
border: "1px solid var(--border)",
|
||||
}}
|
||||
@@ -456,9 +455,8 @@ export function HeatmapGrid({ onSelectionChange }: HeatmapGridProps) {
|
||||
return (
|
||||
<div
|
||||
ref={tableContainerRef}
|
||||
className="overflow-auto rounded-[12px] scroll-smooth"
|
||||
className="h-full w-full overflow-auto rounded-[12px] scroll-smooth"
|
||||
style={{
|
||||
height: "calc(100vh - 240px)",
|
||||
background: "var(--bg-surface)",
|
||||
border: "1px solid var(--border)",
|
||||
boxShadow: "var(--shadow-sm)"
|
||||
|
||||
Reference in new issue
Block a user