Commit Graph

5 Commits

Author SHA256 Message Date
c5e9bf594f feat(dedicated): authentic OS logos from Wikimedia + expand to 17 distros
Logo source swap:
Replaced all 9 OS brand SVGs with the actual icon-only files mirrored
on Wikimedia Commons (each project's official press kit). The
simple-icons rendering of AlmaLinux specifically was a generic
circles pattern — Wikimedia carries the real multicolor flame mark.
Same correction for Rocky (real green wedge logo), Fedora (proper F
infinity), Debian (bare swirl), Ubuntu (Circle of Friends in orange
hex), FreeBSD (horned daemon mark), Proxmox (CoreUI icon-only),
Windows (4-square 2021 mark), and openSUSE (chameleon button).
Hand-drawn no-os.svg stays — it's a generic terminal indicator,
no brand to source.

OS list expanded 14 → 17 (latest non-EOL versions only):
- Added: AlmaLinux 8, Rocky Linux 8, Ubuntu 22.04 LTS, Debian 11,
  Fedora 43, Fedora 44, openSUSE Leap 15.6, Windows Server 2025,
  Windows Server 2019.
- Removed: Fedora 41 (EOL'd Nov 2025).
- Default flipped from "No OS" to AlmaLinux 9 in the previous commit;
  unchanged here.

OsGroupSelector metaFor() gains an openSUSE family rank between
Fedora and FreeBSD. Reseeded the OS group; 20/20 dedicated tests
still pass; npm run build clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 21:50:00 -04:00
2c85eba156 feat(dedicated): official OS logos + collapsible distro families
Two changes to the OS picker that should be felt together:

1. Swapped my hand-authored SVGs for official brand marks pulled from
   simple-icons (CC0). These are the actual path geometries used in
   each distro's brand kit, just colored to read on dark navy.
   AlmaLinux uses their accent orange (#FA9001) instead of the brand
   navy (#0E1F3D) so it's visible on our dark background.
   Affected: ubuntu, debian, almalinux, rocky, fedora, freebsd,
   proxmox. windows.svg and no-os.svg unchanged (geometric / generic).

2. Each distro family is now a collapsible accordion. The family
   containing the current selection auto-expands on mount; everything
   else collapses to a one-line row showing logo + family name +
   option count + chevron. Header gets a primary-color "selected"
   chip + tinted border when its family contains the active choice.
   "Expand all" / "Collapse all" toggle in the title row for power
   users; collapseAll() keeps the active selection's family open.

Net effect: the picker is ~1/4 of its previous height when only one
family is in use, and the official logos replace my approximations
(AlmaLinux flame mark is now correct, FreeBSD daemon is correct,
Proxmox four-square crown is correct, etc.).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 21:32:53 -04:00
dd8f83a990 polish(dedicated): drive bay title, HDD/SSD optgroups, OS expansion + grouping
Four customer-copy / UX cleanups bundled together:

1. Drive bay title strip — shortGroupLabel() collapses "LFF/SFF/NVMe
   Drive Bays" to just "Drive Bays" everywhere it surfaces (rail
   anchor, configurator section title, BuildSummary line item).
   Each chassis only ever shows one drive bay group, so the
   form-factor prefix was redundant noise.

2. HDD/SSD optgroups in Drive Selection — VSelect now interleaves
   VListSubheader rows ("HDDs", "SSDs", "NVMe") between options.
   Sentinel header values (`__hdr_<cat>`) are filtered in
   onDriveChange so a stray header click can't propagate.

3. OS list expansion — went from 6 entries to 14: added AlmaLinux 8,
   Rocky 8, Ubuntu 22.04 LTS, Debian 11, Fedora Server 41, FreeBSD 14,
   Proxmox VE 8, Windows Server 2019 (BYOL). Default flipped from
   "No OS" → "AlmaLinux 9" (matching what most dedicated buyers
   actually want — flag and revert via seeder if you'd rather keep
   bare-metal as the default).

4. OS picker grouped by distro — OsGroupSelector renders family
   sections (AlmaLinux, Rocky Linux, Ubuntu, Debian, Fedora,
   FreeBSD, Proxmox VE, Windows Server, Other) with a small
   uppercase heading above each row of tiles. metaFor() helper
   maps slug → family + logo path. New SVG logos for fedora,
   freebsd, proxmox; refined geometry on almalinux + rocky + debian.

Reseeded the OS group (deleted old 6 values, recreated 14 with new
ordering). 20/20 dedicated tests still pass. `npm run build` clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 21:21:50 -04:00
a224051bde feat(dedicated): dropdowns for radio groups, card-grid OS picker
Replaces stacked radio cards with VSelect dropdowns across CPU, RAM,
Bandwidth, IPv4, Private Networking, PCIe NVMe Add-in, and the Drive
Selection control inside each drive bay group. Major space savings —
the LFF Drive Selection alone goes from 15 stacked cards to one row
on screen, with the active price still visible at a glance via the
selection slot's right-aligned chip.

OS group becomes a tile-grid picker (`OsGroupSelector.vue`): 6 cards
with brand logos, distro name, and price chip. Logos shipped as
hand-authored SVGs at public/img/os/{ubuntu,debian,almalinux,rocky,
windows,no-os}.svg — no new npm dependency.

- Synchronous Pinia store init: moved store.init() out of onMounted
  into setup so children's `selected` props are populated on first
  render. Without this VSelect's selection slot fires with a stub
  item before init completes and the whole tree throws on a
  defensive `.toFixed` access.
- Defensive priceLabel guards in both OptionGroupSelector and
  DriveBayGroupSelector for any future re-render where the slot's
  raw item is incomplete.
- isOperatingSystemGroup() helper alongside isDriveBayGroup() in the
  store; configurator switches OS → OsGroupSelector, drive bays →
  DriveBayGroupSelector, everything else → OptionGroupSelector.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:48:53 -04:00
Claude EZSCALE
133bc56bfb Base Laravel 2026-02-09 01:20:27 -05:00