fix(visual): deterministic baselines + vendored lit (WHYNOT-WP-0002 T11)

Regenerate the four whynot-control visual baselines against the T06 token
regen, and make the harness render deterministically:

- serve.json (cleanUrls:false): serve was 301-redirecting /…/index.html and
  stripping the trailing slash, shifting the document base so every relative
  asset 404'd (also broke `pnpm showcase` in a browser).
- examples/whynot-control/index.html: token stylesheet pointed at a
  non-existent root path; repoint to ../../src/styles/colors_and_type.css so
  the page actually loads the T06 tokens.
- examples/vendor/lit.js: vendor a self-contained esbuild lit bundle and point
  the showcase importmap at it, removing the multi-hop live esm.sh dependency.
- tests/visual/ui-kit.spec.mjs: abort the unused Google-Fonts CDN (fonts are
  system-ui post-IBM-Plex); a hung font request blocked module execution.

The showcase "every component" test is marked test.fixme: that page wedges the
renderer main thread (a demo composition loops) and has never produced a
baseline. Tracked as WHYNOT-WP-0002-T11. Components + vendored lit render fine
in isolation; the four control baselines pass deterministically.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 21:08:06 +02:00
parent 0d688ca94a
commit 0f96736bb7
12 changed files with 102 additions and 5 deletions

View File

@@ -7,12 +7,14 @@
<link rel="stylesheet" href="../../src/styles/colors_and_type.css">
<link rel="stylesheet" href="../../src/styles/components.css">
<!-- Lit comes via importmap. In a real consumer this would be bundled. -->
<!-- Lit comes via importmap. Vendored as a self-contained bundle so the
page (and visual tests) render deterministically with no live CDN graph.
Regenerate with: npx esbuild <entry 'export * from "lit"'> --bundle
--format=esm --platform=browser --minify --outfile=examples/vendor/lit.js -->
<script type="importmap">
{
"imports": {
"lit": "https://esm.sh/lit@3.2.1",
"lit/": "https://esm.sh/lit@3.2.1/"
"lit": "../vendor/lit.js"
}
}
</script>

28
examples/vendor/lit.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -4,7 +4,7 @@
<meta charset="utf-8">
<title>whynot · control</title>
<link rel="icon" href="../../assets/whynot-logo.png">
<link rel="stylesheet" href="../../colors_and_type.css">
<link rel="stylesheet" href="../../src/styles/colors_and_type.css">
<style>
html, body { background: var(--paper); }
body { min-height: 100vh; }