Commit Graph
6 Commits
Author SHA1 Message Date
catarrh 4a03f83459 APDU list + detail: hover and the detail header follow the theme tints
- the detail header used --bg-input in dark mode (plus a light-only #dbeafe
  override), so it only matched the list selection in the light theme; it now
  uses var(--selected-bg) — the same variable as the selected row — so the two
  are in sync in both themes (light unchanged)
- .apdu-entry:hover used --bg-panel (a grey in the same family as the GET
  RESPONSE pair rows); both themes now set --hover-bg — the accent at 16%
  (dark) / 10% (light), a translucent tint that stacks with whatever the row's
  background is — and a single hover rule uses it: hovering tints the row
  blue, lighter than the selection and a different hue from the pair rows.
  The rules stay ordered .apdu-pair → :hover → .selected, so hovering the
  selected row keeps its selection colour
- Node tests pin the hover variable per theme, the hover rule (and that the
  old grey rule is gone) and the detail header's variable; 540 Python +
  80 Node tests
- SW cache simtrace-analyser-v91 (cosmetic, no version bump)
2026-10-18 11:38:02 +03:00
catarrh 119b1cd54a APDU list: the selected row gets a blue tint in dark mode too
- the selection used --bg-input (#334155, a neutral slate) in dark mode, which
  sat right next to the GET RESPONSE pair rows' grey tint
  (--pair-row = rgba(148,163,184,0.12)) and was easy to mistake for them; the
  light theme already had its own blue (#dbeafe) through a
  [data-theme="light"] override
- both themes now set a --selected-bg variable (dark #1e3a8a = blue-900 — the
  palette counterpart of the light blue-100 — light #dbeafe unchanged) and a
  single `.apdu-entry.selected` rule uses it, so the override is gone
- Node test pins the variable in both themes and the single rule
- SW cache simtrace-analyser-v90 (cosmetic, no version bump)
2026-10-18 11:16:56 +03:00
catarrh b743c6621d Detail view: P3 says Lc or Le, and SEARCH RECORD names its target (v2.7.9)
- the P3 row read "0x02 — 2 bytes" for both kinds of P3; the decode now marks
  it (p3_kind): a command that carries data has Lc (the command-data length),
  a case-2 command (APDU_SPEC 'le', e.g. READ BINARY/RECORD, GET RESPONSE,
  SEARCH…) has Le (the expected response length).  The detail row appends
  "· Lc (command data length)" / "· Le (expected response length)"
  («Lc (длина данных команды)» / «Le (ожидаемая длина ответа)»)
- a SEARCH RECORD without an SFI searched the current EF (TS 102 221
  §11.1.7.1) but showed no file at all; it now resolves like READ/UPDATE:
  the SFI's declared file when SFI-addressed (an unresolved SFI stays marked
  "SFI n"), otherwise the current selection — with the stale-selection note
  when that EF is not a record file.  Verified on session 193: the 5.371 s
  search (P2=0x04, no SFI) now shows 4FA1, the 5.434 s one (SFI 2) shows 4F3A
- tests: p3_kind cases (Le/Lc/none) and the SEARCH target cases (current EF,
  SFI-resolved, unknown SFI, transparent selection); a Node pin for the P3
  row and the two new Russian strings; 540 Python + 77 Node tests
- PWA_VERSION/pyproject/version.py 2.7.9, SW cache simtrace-analyser-v89
2026-10-18 01:34:01 +03:00
catarrh 475c136749 Topbar: title trim, shorter search, the view selector pinned above the panel (v2.6.3)
- the header title drops its "UICC" prefix — "GSMTAP trace analyser" is enough
- the trace topbar's search input is half its previous width (flex basis
  33.333% -> 16.667%); the session name now ellipsizes instead of wrapping
  the tighter row
- the side-panel view selector moved out of the scrollable side panel into
  the trace topbar: right-aligned over the panel at the panel's width
  (--side-panel-w: 260px, the negative right margin cancelling the topbar's
  16px padding so the edges line up), so it stays visible at all times while
  the panel scrolls
- tests: the topbar/selector position pins (the Files-view wiring test and
  style.test.js), the shared width variable, the halved search basis and the
  title; 527 Python + 61 Node tests
- README/README_RUS: the selector's new place; PWA_VERSION/pyproject/
  version.py 2.6.3, SW cache simtrace-analyser-v77
2026-10-17 23:30:37 +03:00
catarrh a0a2251522 Scrollbars: one 12px style for every pane
- the APDU list's 12px rule is folded into the global scrollbar style, so
  the side panel, APDU detail pane, dialogs (file-diff body), session
  lists/grid and the hex views' horizontal bars all use the same 12px bar
  with a 6px rounded thumb — no per-element overrides remain to drift,
  and the horizontal bars get an explicit height instead of the browser
  default
- Node test pins the global rule (12px width/height, 6px thumb radius) and
  the absence of per-element overrides; 527 Python + 55 Node tests
- SW cache simtrace-analyser-v75 (cosmetic, no version bump)
2026-10-17 23:08:40 +03:00
catarrh 424cb4e238 Side panel: scrollbar matches the APDU list's width
- the side panel had no scrollbar rule of its own, so it fell back to the
  global 6px default while the APDU list uses 12px; the two now share one
  rule (width 12px, thumb radius 6px = half the bar), so they cannot drift
  apart again — the other panes keep the thin global bar
- Node test pins the shared rule (and the 6px global default)
- SW cache simtrace-analyser-v74 (cosmetic, no version bump)
2026-10-17 23:07:31 +03:00