weather_app/public/pwa-icon.svg
hermes-explorigin 897f49ae22
All checks were successful
Test, Build & Deploy / test-and-build (push) Successful in 1m1s
Test, Build & Deploy / deploy (push) Successful in 22s
Add installable PWA (manifest, service worker, icons) + per-type notification toggles
- manifest.webmanifest + apple/maskable PNG icons; relative paths so the
  app works both at dev root and under /weather
- plain-JS service worker (sw.js) with notificationclick/push handlers and
  an SW-mediated showNotification() path for native Android notifications
- src/lib/pwa.js bootstraps registration and routes alerts to the SW
- Every alert kind (storm/precip/heat/cold/uv/wind) is now a per-type
  preference toggle in Settings; removed the old alertThresholds.thunderstorm
  boolean in favor of notificationTypes.storm
- Store dedups native notifications per forecast day and fires best-effort
  native notifications for newly-appeared alerts
- inline-assets keeps manifest/sw/icons in dist; deploy.yml uploads + verifies
  all PWA files via WebDAV
2026-09-08 00:59:19 +00:00

25 lines
1.2 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#0ea5e9" />
<stop offset="1" stop-color="#132744" />
</linearGradient>
</defs>
<rect x="0" y="0" width="512" height="512" rx="112" ry="112" fill="url(#bg)" />
<circle cx="256" cy="256" r="196" fill="#fbbf24" opacity="0.92" />
<g stroke="#fbbf24" stroke-width="12" stroke-linecap="round" opacity="0.9">
<line x1="256" y1="92" x2="256" y2="140" />
<line x1="256" y1="372" x2="256" y2="420" />
<line x1="92" y1="256" x2="140" y2="256" />
<line x1="372" y1="256" x2="420" y2="256" />
<line x1="142" y1="142" x2="184" y2="184" />
<line x1="328" y1="328" x2="370" y2="370" />
<line x1="142" y1="328" x2="184" y2="370" />
<line x1="328" y1="142" x2="370" y2="184" />
</g>
<path d="M256 332 Q214 332 196 306 Q184 276 192 256 Q188 232 214 218 Q206 204 238 196
Q246 190 262 194 Q268 178 296 190 Q300 208 314 216 Q328 226 326 238
Q342 246 344 268 Q348 288 336 300 Q330 318 316 330 Q310 344 256 332Z"
fill="#38bdf8" opacity="0.95" />
</svg>