Commit Graph

174 Commits

Author SHA1 Message Date
b0txec e1ce1533bd Give Ūdens's resolution buttons the same visual language as the cards
CI / backend (push) Successful in 1m7s
CI / frontend (push) Successful in 44s
They used the app's generic flat button style (transparent border, solid
gray fill) while the temperature cards next to them have a considered
look (border, soft glass background, label hierarchy) -- so the buttons
read as a lightweight, generic control next to more polished content.
Matched border, border-radius, and background to the cards, and gave them
a bit more height/padding so the block reads with similar visual weight.

(Measured actual box positions before touching anything: button and card
tops are pixel-identical at the user's real viewport width, confirmed via
Playwright bounding boxes -- the "buttons look higher" read was about
visual weight/style mismatch, not a coordinate offset.)
2026-08-25 11:04:46 +03:00
b0txec e62895ad68 Narrow Ūdens's temperature cards so all six fit on one row
CI / backend (push) Successful in 1m2s
CI / frontend (push) Successful in 39s
The No/Līdz number-input boxes were sized for a hardcoded 3-column grid
(minmax(250px,1fr)) despite only ever holding 2-3 digit temperatures.
Switched to grid-template-columns: repeat(auto-fit, minmax(165px,1fr)) --
the browser now fits however many 165px+ cards actually fit at the current
width, growing them to fill leftover space, with no manual breakpoints
needed (removed three now-redundant @media overrides for .rangeGrid).

Caught a real bug while tuning the floor value: a naive hardcoded
repeat(6, minmax(130px,1fr)) first pass produced 6 columns at every width
from 1050px to 1900px, but at some widths in that range (e.g. 1300px) the
resulting per-input width came out to ~38px -- native number-input spinner
arrows ate nearly all of it, and the digits, while genuinely present in the
DOM (verified via inputValue()), were visually clipped to nothing. The map
preview below (fed by the same signal) still rendered correctly, which is
what made clear this was a paint/width issue, not a data bug. Fixed two
ways: hid the native spinner arrows (reclaims space, matches the project's
existing pattern of fully custom-styling other native inputs like
checkboxes) and switched to auto-fit so the actual computed column width
can never fall below the safe floor regardless of viewport width -- the
exact class of bug a hand-rolled breakpoint ladder is prone to.

Verified via a programmatic sweep (14 widths from 375px to 1900px, reading
each input's real computed width and value, not just eyeballing
screenshots) that every width keeps at least ~53px per input -- confirmed
by direct visual check to be comfortably legible, well clear of the ~38px
threshold that broke -- and headless-browser screenshots at 1600/1300/700px
confirm all six cards render correctly with real live data.
2026-08-25 10:48:14 +03:00
b0txec 1e83e48cba Fix a real CSS collision and remove dead frontend code
CI / backend (push) Successful in 1m8s
CI / frontend (push) Successful in 43s
Result.css (Kartes' results grid/list): a newer consolidated .item rule
used background:var(--surface)!important to force out an older duplicate
rule instead of removing it -- the old rule's background-color was fully
dead but its padding/text-align/max-width were still silently active
underneath. Consolidated into one rule per view, dropped the !important.

Dead code, verified via a systematic check of every class in each
stylesheet against actual .tsx usage (not just the classes a prior review
happened to flag -- that list undercounted by several in mapGraphics.css
alone):
- mapGraphics.css: an entire leftover "Production layout" block (9 classes:
  graphicsSetup, graphicsMain, dataOptions, dataOptionsGrid, productionOptions,
  productionToolbar, loadMapButton, choiceGroup, windChoice), including a
  scoped selector (.mapGraphicsPage .workspaceRail) that never matched
  because no such element exists in the current Faktiskā markup -- leftover
  from an earlier panel restructure.
- index.css / aggregator.css: unused .grid-1-1/.grid-1-2 utility classes
  and a standalone .panel rule superseded by the more specific
  cityPanel/queryPanel/resultsPanel variants.
- calendar.module.css: .calendarNav (never rendered) and .nextMonth (no
  next-month dimming logic exists, only prevMonth).
- DateList.tsx: an empty <ul> wrapping fully commented-out code, superseded
  by the Calendar component already rendered above it.

Verified: typecheck clean, production build succeeds, and headless-browser
screenshots of every affected page (Kartes including an actual query
result, Faktiskā, Arhīvs) show no visual regression.
2026-08-25 10:38:07 +03:00
b0txec 464e03581c Add shared side padding to appContent for breathing room on full-bleed pages
CI / backend (push) Successful in 1m17s
CI / frontend (push) Successful in 46s
Kartes, Stacijas, and Apskats had no CSS of their own and rendered fully
edge-to-edge (no other layout control was actually shared across all pages
before this -- appContent only set min-height). clamp(16px,3vw,48px) gives
consistent side padding globally while staying full-width, not adding a
centered max-width column -- the ask was breathing room, not a narrower
layout. Verified on Rocky: Kartes now has visible margins, Home (which
already set its own max-width/padding) shows no visible double-padding
issue at 1600px viewport width.
2026-08-25 10:22:04 +03:00
b0txec e446f1ff09 Consolidate the weather-icon-picker CSS into one file, no !important
.symbolPalette/.selectedPreview/.currentSymbol are used by both
Faktiskā's IconInputs.tsx and Brīdinājumi's Warnings.tsx, but were
only defined in mapGraphics.css (Faktiskā's own stylesheet, twice,
with a fully dead first version) and then size-patched for both
consumers via !important overrides in weatherIcons.css. Moved the one
real definition into weatherIcons.css, the file both pages actually
import, and removed the dead/duplicate/!important versions.

No visual change intended — verified via headless-browser screenshot
on Faktiskā and computed-style checks on both pages. One incidental
fix: .currentSymbol.empty's Inter font was silently losing to the
!important rule; normal cascade now applies it correctly again.
2026-08-23 14:17:20 +03:00
b0txec d7439a2bd5 Translate WindInputs to Latvian on Faktiskā, remove dead CSS
Found by a fresh-eyes review after today's design pass: WindInputs
had no productionTemplate branching, so it kept showing "Wind
direction"/"Wind speed"/"Gusts" in English right under the freshly-
translated "Temperatūra un vējš" heading. Threaded the same
productionTemplate flag MapView.tsx already uses for its other
labels. Also removed .assignedSymbol, an unreferenced CSS rule the
same review flagged as dead.
2026-08-23 13:41:02 +03:00
b0txec 59bb4996ff Promote Brīdinājumi to the visible header nav, add icons throughout
Brīdinājumi was tucked in the "Vairāk" overflow menu despite being a
primary newsroom workflow. Moved it into the always-visible nav
alongside Stacijas/Kartes/Faktiskā/Ūdens, and gave every visible nav
item a small icon (reusing the same icons as their Home cards) so the
header matches the icon treatment the overflow menu already had.
2026-08-23 13:31:22 +03:00
b0txec 5c00e48bdd Fix temperature numbers sitting visually high on the map badges
canvas textBaseline "middle" centers on font em-box metrics, not
visible ink — digits have no descenders, so they read as sitting too
high in their boxes. Center on the actual glyph bounds instead,
matching the technique already used correctly in Ūdens's drawRanges.
Shared by Faktiskā and the older Kartes comparison map.
2026-08-23 13:31:17 +03:00
b0txec a1c2fd5d7d Declutter Faktiskā: collapse stations and map settings by default
Both "Jaunākās temperatūras" and "Kartes noformējums" dumped their
full content on load, forcing a scroll past both just to reach the
map/export on every visit. Both now collapse by default (Faktiskā
only; the older non-production Kartes overlay panel keeps its current
always-open behavior) behind a toggle that still surfaces a manual-
override count so nothing is silently hidden.

Also fixed a real bug found in the process: Faktiskā's resolution
buttons carried both "resolutionChoices" and "faktiskaResolutionChoices"
classes, and the former (defined in waterTemperature.css for a narrow
sidebar layout) was winning the cascade in this wide-content context,
forcing full-width, left-aligned buttons instead of the intended
compact pair.

Restructured "Kartes noformējums" into distinct bordered cards instead
of one continuous flow, translated the still-English "Weather symbols"
/"City assignments" block to Latvian ("Laikapstākļu simboli"/"Mākoņi
pilsētām"), and collapsed the city list to show only active exceptions
by default with a "Rādīt pārējās pilsētas" button to reveal the rest.
2026-08-23 13:31:12 +03:00
b0txec 744d706c83 Rework the visual palette: muted blue-gray backdrop, bright accent kept
Replaced the flat near-white page background with a layered blue-gray
gradient (from a sampled palette) for actual visual depth, while
keeping buttons/icons/links on the original saturated accent blue so
interactive elements still stand out against the calmer backdrop.
Also removed the "Testa dati" badge on Home, a synthetic-data leftover
now that both Rocky and the VPS run on real data only.
2026-08-23 13:31:02 +03:00
b0txec 9eca9ebaf3 Show real regional water-temperature ranges, not one station duplicated as both bounds
Classify all 65 LVĢMC stations reporting water temperature (56 inland
WTEMD + 9 coastal SEDUT) into the six Ūdens zones by geography, and
report the real min/max across each zone's currently-reporting
stations instead of one hand-picked station's single value shown
twice. Drops readings older than 12h so a stuck sensor can't skew a
zone's range.
2026-08-23 11:45:43 +03:00
b0txec 5a924653af Auto-populate Ūdens temperatures from real LVĢMC data, with manual override
Mirrors the Faktiskā pattern: fetch on load, auto-fill min/max per zone,
track manual overrides, per-zone reset, loading/error states.
2026-08-23 11:27:26 +03:00
b0txec c97875d6fe Add draggable, resizable weather-symbol placement to Brīdinājumi 2026-08-23 09:32:47 +03:00
b0txec 56b871606f Support multi-warning Brīdinājumi selection with narrower, solid-color chips 2026-08-22 21:51:09 +03:00
b0txec 6fbf672c50 Separate Brīdinājumi map selection from viewing warning detail 2026-08-22 21:41:52 +03:00
b0txec 70fd24cf83 Give Brīdinājumi chips a hover-expanding severity capsule 2026-08-22 21:36:31 +03:00
b0txec cafc75abeb Redesign Brīdinājumi cards as icon chips with a detail popup 2026-08-22 21:26:13 +03:00
b0txec 924e4105b1 Focus Brīdinājumi on one selected warning with templated titles 2026-08-22 21:14:20 +03:00
b0txec 4395935788 Calibrate Brīdinājumi projection to validated city pixel positions 2026-08-22 21:04:39 +03:00
b0txec 13115f014d Add warning map border overlays and feathered fills 2026-08-22 20:31:04 +03:00
b0txec bc5bee171c Add LVGMC warning map workflow 2026-08-22 20:11:20 +03:00
b0txec 7f09181d47 Center water temperature labels in template boxes 2026-08-22 16:27:36 +03:00
b0txec 06088653b1 Localize navigation and production UI 2026-08-22 14:48:16 +03:00
b0txec df911f14eb Fix authenticated City Analysis queries 2026-08-22 12:32:27 +03:00
b0txec 36d094ebdc Refine primary header navigation 2026-08-22 12:14:31 +03:00
b0txec de6f27958b Resolve frontend dependency advisories 2026-08-21 21:01:58 +03:00
b0txec 8050b2df02 Prune obsolete frontend dependencies 2026-08-21 10:51:36 +03:00
b0txec 4f4c197f1a Remove obsolete frontend plugins 2026-08-21 10:45:36 +03:00
b0txec 3901b42e6a Update frontend build tooling 2026-08-21 10:43:25 +03:00
b0txec 8f70ecdd35 Lock frontend type dependencies 2026-08-21 10:24:52 +03:00
b0txec b22cedadf2 Fix browser timer typing 2026-08-21 10:21:42 +03:00
b0txec 9dbd2ff3a5 Establish frontend type checking 2026-08-21 10:18:52 +03:00
7 5007517129 Update Solid runtime dependencies 2026-08-21 10:14:16 +03:00
b0txec 16a8c685e7 Use approved production map and branding assets 2026-08-20 22:23:23 +03:00
b0txec 754415a60c Match title overlay production margins 2026-08-20 11:05:31 +03:00
b0txec 0d641bd38f Replace Daira glyphs with normalized weather icons 2026-08-20 10:46:26 +03:00
b0txec 6c9290bbfc Center water temperature nameplate title 2026-08-20 09:58:53 +03:00
b0txec e36ddbe9ad Fix broadcast overlay scaling 2026-08-20 09:52:58 +03:00
b0txec ffcf3a2595 Redraw map canvases after Monda loads 2026-08-19 22:07:16 +03:00
b0txec d72c3d3473 Bundle Monda fonts in frontend assets 2026-08-19 22:04:43 +03:00
b0txec 1868041aac Add water temperature production workspace 2026-08-19 22:01:42 +03:00
b0txec 3aba9b4a40 Fine tune Faktiska symbol alignment 2026-08-19 21:22:55 +03:00
b0txec 63d351df3c Align Faktiska symbols with badges 2026-08-19 17:53:05 +03:00
b0txec 340c370c46 Anchor Faktiska symbols to temperature badges 2026-08-19 17:44:46 +03:00
b0txec 632f377c2d Arrange wind controls horizontally 2026-08-19 17:34:04 +03:00
b0txec 59132179ef Add Valmiera synthetic observations 2026-08-19 17:29:03 +03:00
b0txec 01115936f5 Document Faktiska production contract 2026-08-19 17:23:07 +03:00
b0txec e726291bdb Build fixed Faktiska production workflow 2026-08-19 17:11:58 +03:00
b0txec d9a788376b Add responsive scrolling navigation header 2026-08-19 11:47:57 +03:00
7 4cb66ca27a Lock Lucide icon dependency 2026-08-19 11:32:39 +03:00