@energy8platform/platform-core 0.26.0 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1720,15 +1720,19 @@ const SHELL_CSS = SHELL_FONT_CSS + `
1720
1720
  #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-ov-body { max-width:none; padding:clamp(6px,2.5cqh,16px) clamp(12px,3vw,28px); }
1721
1721
  #${SHELL_ROOT_ID} .ge-bb-grid { display:flex; gap:14px; justify-content:safe center; overflow-x:auto; overflow-y:hidden; padding-bottom:6px;
1722
1722
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; }
1723
- /* the one knob that scales the whole card cqh measures the overlay (popout frame), not the
1724
- browser window, so cards shrink to fit the real container height. The floor is deliberately tiny:
1725
- on a 400×225 popout the whole card (incl. the CTA) only fits below ~5px, and a fully visible,
1726
- single-axis-scrolling card beats a bigger one whose button is clipped or needs a 2nd scrollbar. */
1723
+ /* the one knob that scales the whole card (its whole layout is em-relative). It is the SMALLER of two
1724
+ fits, so the card is always fully visible:
1725
+ 3.4cqh height: the card stays inside the band between the header and the bet footer (cqh
1726
+ measures the overlay popout frame, not the browser window);
1727
+ • 84cqw / (N*18) — width: the N cards (each 18em) fit the frame width side-by-side instead of
1728
+ overflowing into an X-scroll. --ge-bb-n is the live card count, set in BuyBonus.ts.
1729
+ Floor is deliberately tiny: on a 400×225 popout a fully visible card beats a bigger clipped one. */
1727
1730
  #${SHELL_ROOT_ID} .ge-bb-grid .ge-bonus-card { flex:0 0 18em; scroll-snap-align:start;
1728
- font-size:clamp(4px, 3.4cqh, 12px); }
1729
- /* mobile: vertical stack at a fixed, readable size — scroll the list, don't shrink the cards */
1731
+ font-size:clamp(4px, min(3.4cqh, calc(84cqw / (var(--ge-bb-n,3) * 18))), 12px); }
1732
+ /* mobile: vertical stack at a fixed, readable size — scroll the list; only shrink if the card would
1733
+ be wider than the frame (very narrow viewport), so it never overflows horizontally. */
1730
1734
  #${SHELL_ROOT_ID}.ge-mobile .ge-bb-grid { display:flex; flex-direction:column; gap:14px; overflow:visible; }
1731
- #${SHELL_ROOT_ID}.ge-mobile .ge-bb-grid .ge-bonus-card { flex:0 0 auto; font-size:12px; }
1735
+ #${SHELL_ROOT_ID}.ge-mobile .ge-bb-grid .ge-bonus-card { flex:0 0 auto; font-size:min(12px, calc(92cqw / 18)); }
1732
1736
  #${SHELL_ROOT_ID} .ge-bonus-card { display:flex; flex-direction:column; border-radius:1.4em; overflow:hidden;
1733
1737
  background:var(--shell-plaque-glass); border:1px solid var(--shell-plaque-line); color:#fff; text-align:center;
1734
1738
  pointer-events:auto; cursor:pointer; transition:box-shadow .12s ease, background .12s ease; }
@@ -1791,13 +1795,15 @@ const SHELL_CSS = SHELL_FONT_CSS + `
1791
1795
  #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-ov-spacer { width:clamp(24px,7cqh,32px); }
1792
1796
  #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-ov-nav { width:clamp(24px,7cqh,32px); height:clamp(24px,7cqh,32px);
1793
1797
  font-size:clamp(14px,4cqh,18px); border-radius:clamp(7px,2cqh,9px); }
1794
- #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betbar { padding:clamp(2px,.9cqh,4px); }
1795
- #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betpill { padding:clamp(2px,.67cqh,3px) clamp(4px,1.1cqh,5px); }
1796
- #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betstep { width:clamp(24px,7cqh,32px); height:clamp(24px,7cqh,32px);
1797
- font-size:clamp(15px,4.4cqh,20px); }
1798
- #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betval { min-width:clamp(62px,17.5cqh,80px); }
1799
- #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betval b { font-size:clamp(11px,3.1cqh,14px); }
1800
- #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betval span { font-size:clamp(6px,1.55cqh,7px); }
1798
+ /* the bet pill read too large next to the shrunk cards — size it ~0. across the board (the floors
1799
+ stay readable; the maxima are what dominate on Popout L / wide frames). */
1800
+ #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betbar { padding:clamp(2px,.75cqh,3px); }
1801
+ #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betpill { padding:clamp(2px,.55cqh,3px) clamp(3px,.9cqh,4px); }
1802
+ #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betstep { width:clamp(20px,5.7cqh,26px); height:clamp(20px,5.7cqh,26px);
1803
+ font-size:clamp(12px,3.5cqh,16px); }
1804
+ #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betval { min-width:clamp(50px,14cqh,66px); }
1805
+ #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betval b { font-size:clamp(9px,2.5cqh,11px); }
1806
+ #${SHELL_ROOT_ID} [data-ge="buybonus-overlay"] .ge-bb-betval span { font-size:clamp(5px,1.25cqh,6px); }
1801
1807
 
1802
1808
  /* ═══ base/wide plaque bar — grouped dark + glass panels (reference-style) ═══ */
1803
1809
  #${SHELL_ROOT_ID} .ge-zone-plaques { gap:0; } /* panels connect; buttons overlap */
@@ -2370,7 +2376,7 @@ function openSettingsModal(shell) {
2370
2376
 
2371
2377
  // AUTO-GENERATED by scripts/gen-version.mjs — do not edit. Mirrors package.json "version".
2372
2378
  /** The @energy8platform/platform-core package version, stamped at build time. */
2373
- const PACKAGE_VERSION = '0.26.0';
2379
+ const PACKAGE_VERSION = '0.26.1';
2374
2380
 
2375
2381
  /** Default order key for the auto-injected hotkeys section: just after `controls` (-1). */
2376
2382
  const HOTKEYS_DEFAULT_ORDER = -0.5;
@@ -2795,6 +2801,9 @@ function openBuyBonusOverlay(shell) {
2795
2801
  body.innerHTML = '';
2796
2802
  const grid = document.createElement('div');
2797
2803
  grid.className = 'ge-bb-grid';
2804
+ // Card count drives the width-fit clamp in CSS (each card is 18em; N cards must fit the frame
2805
+ // width), so the row scales to the available width instead of overflowing into an X-scroll.
2806
+ grid.style.setProperty('--ge-bb-n', String(bonuses.length));
2798
2807
  const affordable = [];
2799
2808
  for (const bonus of bonuses) {
2800
2809
  const card = buildCard(shell, bonus, root, st);