pc setup v2: one-screen layout with a time slider, photo grid and lightbox
All checks were successful
Deploy production / deploy (push) Successful in 1m7s

- hardware: slots, sections, usage, install/removal dates, images and a hidden flag on
  components and devices; setup_photos table; setup_overview view gains the new columns
- data: hide the 2021 friends-PC build and the wrong 140mm / unknown fans (kept, not deleted);
  7x SL-INF + 3 Kraken stock fans; mice, audio, desk extras; MacBook Pro 16 M2 Pro 1 TB;
  dates for every swap so the slider can rebuild the setup on any day
- self-hosted product images in static/hardware (webp + thumbs)
- prices and order details are owner-only (in a popover)
This commit is contained in:
2026-10-25 16:15:51 +00:00
parent d414e7190e
commit eff5a24985
204 changed files with 32374 additions and 776 deletions

View File

@@ -22,6 +22,10 @@
import Speaker from 'lucide-svelte/icons/speaker';
import Tablet from 'lucide-svelte/icons/tablet';
import Zap from 'lucide-svelte/icons/zap';
import Mic from 'lucide-svelte/icons/mic';
import RectangleHorizontal from 'lucide-svelte/icons/rectangle-horizontal';
import Webcam from 'lucide-svelte/icons/webcam';
import Armchair from 'lucide-svelte/icons/armchair';
import { CATEGORY_META, DEVICE_KIND_META } from './shared';
// A gradient tile with a white icon, for a part category or a device kind.
@@ -49,6 +53,10 @@
audio: Speaker,
controller: Gamepad2,
accessory: Package,
microphone: Mic,
mousepad: RectangleHorizontal,
webcam: Webcam,
chair: Armchair,
other: Box,
desktop: PcCase,
laptop: Laptop,
@@ -63,7 +71,9 @@
CATEGORY_META.other
);
const Icon = $derived(icons[key as keyof typeof icons] ?? Box);
const light = $derived(key === 'case' || key === 'psu' || key === 'controller');
const light = $derived(
key === 'case' || key === 'psu' || key === 'controller' || key === 'chair'
);
</script>
<span