// Offline visual fixture of pinned OS rail/tile styling, not a connected OS session. // Run with Node and redirect stdout to an HTML file; ?mode=dark switches theme. import brand from "../../../brand.json" with { type: "json" }; import tokens from "../../forkhorse-dashboard/src/host-tokens.json" with { type: "json" }; import { markIconUrl } from "../../forkhorse-dashboard/src/mark.ts"; import { railIconUrl } from "../src/rail-icon.ts"; // Phosphor House regular 2.1.10, for comparison with the OS built-in Home row. const housePath = "M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z"; const escape = (value: string) => value.replace(/[&<>"']/g, c => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'", })[c]!); const vars = (values: Record) => Object.entries(values).map(([key, value]) => `${key}:${value}`).join(";"); const railUrl = escape(railIconUrl(brand.railIcon)); const markUrl = escape(markIconUrl(brand.mark)); console.log(`Offline rail icon fixture

OFFLINE FIXTURE — FH-047 ·

14px glyphs; pinned OS mask and row dimensions. No live connection.

Gatekeepers

${escape(brand.name)}auto-provisioned

Vendor logo still uses brand.mark (${escape(brand.mark)}).

`);