// What the seat sheet shows before it is asked. // // The sheet is the second-most-used surface in the tool — every buy-in, every rename, // every correction goes through it — and it was the least finished. Seven things were // stacked flat at one weight and all open at once: a name, two status boxes, two // hole-card slots, a stack, a five-box chip counter with an override and a total, and a // list of custom fields. Measured on a 390px phone it came to 594px, and the three // controls a dealer touches on nearly every visit were 132px of that — 22%. The chip // counter alone was 174px, the tallest single thing in the sheet, and its five number // boxes were told apart by five coloured dots and a `title` attribute, which is a // tooltip, which is nothing at all on a phone. // // Two of these describe layout decisions and are checked as text — the markup for what // sits in front of a dealer at rest, the stylesheet for the scrim and the order two // bottom-anchored things stack in. The third describes behaviour and is run: which // sections stand open is a question about the seat, and the answer is computed. const test = require("node:test"); const { describe } = require("node:test"); const assert = require("node:assert"); const fs = require("fs"); const path = require("path"); const { Render, makeTable } = require("./load"); const PAGE = fs.readFileSync( path.join(__dirname, "..", "..", "JoshHeaps.Net", "Pages", "Casino", "TexasHoldem.cshtml"), "utf8"); const CSS = fs.readFileSync( path.join(__dirname, "..", "..", "JoshHeaps.Net", "wwwroot", "css", "casino", "holdem.css"), "utf8"); const template = id => { const at = PAGE.indexOf(`