ai generated solutions to our ai generated problems

This commit is contained in:
2026-06-20 01:26:10 +01:00
parent a10b6fe657
commit eca52ca078
2 changed files with 49 additions and 30 deletions
+41 -22
View File
@@ -54,25 +54,43 @@ const siteGateEnabled = String(import.meta.env.VITE_SITE_GATE || 'false').toLowe
const staticDataBase = (import.meta.env.VITE_STATIC_DATA_BASE || '/data').replace(/\/+$/, '')
const staticDataEnabled = String(import.meta.env.VITE_STATIC_DATA || 'false').toLowerCase() === 'true'
const missingStaticDataPaths = new Set()
const pixelSunSvg = `data:image/svg+xml,${encodeURIComponent(`
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" shape-rendering="crispEdges">
<rect width="16" height="16" fill="none"/>
<path fill="currentColor" d="M5 1h6v1h2v2h1v2h1v4h-1v2h-1v2h-2v1H5v-1H3v-2H2v-2H1V6h1V4h1V2h2z"/>
<path fill="var(--sprite-light)" d="M5 3h5v1h2v2h1v3h-1v2h-2v1H5v-1H4V9H3V6h1V4h1z"/>
<path fill="var(--sprite-shine)" d="M5 3h3v1h2v2H8v1H5z"/>
<path fill="var(--sprite-shadow)" d="M11 9h2v2h-2v1H6v-1h3v-1h2z"/>
</svg>
`)}`
const pixelMoonSvg = `data:image/svg+xml,${encodeURIComponent(`
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" shape-rendering="crispEdges">
<rect width="16" height="16" fill="none"/>
<path fill="var(--sprite-light)" d="M7 1h5v1h2v2h1v7h-1v2h-2v1H6v-1H4v-2H3V5h1V3h3z"/>
<path fill="var(--sprite-mid)" d="M5 4h2v2H5zm5-1h2v1h1v2h-2V5h-1zm-4 6h2v2H6zm4 2h3v1h-1v1h-2zM4 7h1v3H4z"/>
<path fill="var(--sprite-shadow)" d="M5 10h1v2h2v1H6v-1H5zm7-5h1v2h-2V6h1zM8 3h1v2H7V4h1z"/>
<path fill="currentColor" d="M7 0h5v1h2v1h1v2h1v7h-1v2h-1v1h-2v1H6v-1H4v-1H3v-2H2V5h1V3h1V2h3zm0 1v1H5v1H4v2H3v6h1v2h2v1h6v-1h2v-2h1V4h-1V2h-2V1z"/>
<path fill="var(--sprite-shine)" d="M6 3h2v1H7v2H5V5h1zm4 4h2v1h1v1h-3zM8 11h1v1H7v-1z"/>
</svg>
`)}`
// Rendered inline (not via <img src="data:...">) so the SVGs live in the page's
// CSS scope and can resolve currentColor and the --sprite-* / --color-* theme
// variables. An external SVG image renders in an isolated document and would
// fall back to black for every themed fill.
function PixelSun(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
shapeRendering="crispEdges"
{...props}
>
<rect width="16" height="16" fill="none" />
<path fill="currentColor" d="M5 1h6v1h2v2h1v2h1v4h-1v2h-1v2h-2v1H5v-1H3v-2H2v-2H1V6h1V4h1V2h2z" />
<path fill="var(--sprite-light)" d="M5 3h5v1h2v2h1v3h-1v2h-2v1H5v-1H4V9H3V6h1V4h1z" />
<path fill="var(--sprite-shine)" d="M5 3h3v1h2v2H8v1H5z" />
<path fill="var(--sprite-shadow)" d="M11 9h2v2h-2v1H6v-1h3v-1h2z" />
</svg>
)
}
function PixelMoon(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
shapeRendering="crispEdges"
{...props}
>
<rect width="16" height="16" fill="none" />
<path fill="var(--sprite-light)" d="M7 1h5v1h2v2h1v7h-1v2h-2v1H6v-1H4v-2H3V5h1V3h3z" />
<path fill="var(--sprite-mid)" d="M5 4h2v2H5zm5-1h2v1h1v2h-2V5h-1zm-4 6h2v2H6zm4 2h3v1h-1v1h-2zM4 7h1v3H4z" />
<path fill="var(--sprite-shadow)" d="M5 10h1v2h2v1H6v-1H5zm7-5h1v2h-2V6h1zM8 3h1v2H7V4h1z" />
<path fill="currentColor" d="M7 0h5v1h2v1h1v2h1v7h-1v2h-1v1h-2v1H6v-1H4v-1H3v-2H2V5h1V3h1V2h3zm0 1v1H5v1H4v2H3v6h1v2h2v1h6v-1h2v-2h1V4h-1V2h-2V1z" />
<path fill="var(--sprite-shine)" d="M6 3h2v1H7v2H5V5h1zm4 4h2v1h1v1h-3zM8 11h1v1H7v-1z" />
</svg>
)
}
const defaultAnalyticsPreferences = {
chosen: false,
@@ -2900,9 +2918,9 @@ function PixelMountains() {
ref={skyRef}
style={skyPaths}
>
<img alt="" className="pixel-sun" src={pixelSunSvg} />
<PixelSun className="pixel-sun" aria-hidden="true" />
<span className="pixel-moon-group">
<img alt="" className="pixel-moon" src={pixelMoonSvg} />
<PixelMoon className="pixel-moon" aria-hidden="true" />
<span className="pixel-star pixel-star-a" />
<span className="pixel-star pixel-star-b" />
<span className="pixel-star pixel-star-c" />
@@ -3063,10 +3081,11 @@ function TeamProfilePage({ navigate, profile, requestedTeam, teams }) {
</div>
</div>
<div className="mt-6 grid gap-5 sm:grid-cols-2 xl:grid-cols-4">
<div className="mt-6 grid gap-5 sm:grid-cols-2 xl:grid-cols-5">
<Stat label="Roster" value={formatNumber(summary?.player_count)} />
<Stat label="Battles" value={formatNumber(summary?.total_battles)} />
<Stat label="Wins" value={formatNumber(summary?.wins)} />
<Stat label="Win rate" value={`${Number(summary?.win_rate || 0).toFixed(1)}%`} />
<Stat label="KDR" value={Number(summary?.kdr || 0).toFixed(1)} />
</div>
</div>