- Widen the data-driven base width and clamp the panel to at least the widest button plus padding, since MenuButton measures itself in the live web font and won't shrink below its label. - Rewrite layout() with a top-edge-relative p() helper so the header/MINE/CANCEL order stays consistent whether the popup opens above or below the anchor. - Add dev/popup-shot.html/.mjs to boot the game headless, await the typefaces (same contract as js/main.js), open the mining menu on a deterministic cluster, and report panel/button geometry plus fit booleans. - Extend dev/wdshot.mjs with an optional settleMs argument so pages with top-level awaits (font loading) can finish their async boot before the setup script runs. |
||
|---|---|---|
| .. | ||
| ActionBar.js | ||
| ConfirmOverlay.js | ||
| CyberShape.js | ||
| DiscoveryCompass.js | ||
| GlitchText.js | ||
| MenuButton.js | ||
| MenuSubBar.js | ||
| MiningPopup.js | ||
| SavePanel.js | ||
| SlotCard.js | ||
| Toast.js | ||