Skip to content

ENG-10514: Update toolbar style - #198

Merged
Alek99 merged 10 commits into
mainfrom
carlos/update-toolbar
Jul 22, 2026
Merged

ENG-10514: Update toolbar style#198
Alek99 merged 10 commits into
mainfrom
carlos/update-toolbar

Conversation

@carlosabadia

Copy link
Copy Markdown
Contributor

No description provided.

@linear-code

linear-code Bot commented Jul 22, 2026

Copy link
Copy Markdown

ENG-10514

@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Greptile Summary

This PR redesigns the chart toolbar and expands its interaction controls. The main changes are:

  • Adds surface dragging with an adaptive external handle.
  • Moves view history into the zoom menu.
  • Adds Pan toggling and revised export controls.
  • Adds lasso vertex removal and selection clearing.
  • Updates toolbar styling, documentation, and browser tests.

Confidence Score: 5/5

This looks safe to merge.

No blocking issues found in the changed code.

T-Rex T-Rex Logs

What T-Rex did

  • Validated the runtime proof records for the UI controls, confirming the Zoom items Back, Next, Zoom In, Zoom Out, Box Zoom, Fit Data, Reset View, and the Export items PNG, SVG, and CSV were updated.
  • Confirmed the pan state changed from pressed/active to false/false in the proof evidence.
  • Verified the toolbar drag position updated from (503,601) to (437,676).
  • Checked that the dark-mode toggle applied by setting html.className to dark and the body background to rgb(9, 10, 11).
  • Noted that no changed toolbar-flow was proven; the status is inconclusive due to an incomplete required before/after pair.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
js/src/20_theme.ts Redesigns toolbar tokens, buttons, menus, drag affordances, themes, and accessibility states.
js/src/53_interaction.ts Updates toolbar construction, dragging, menus, Pan behavior, exports, history controls, and lasso interactions.
js/src/57_viewstate.ts Moves disabled history-button presentation from inline styles to the toolbar stylesheet.
tests/test_view_state_client.py Adds browser coverage for toolbar dragging, history controls, and selection interactions.
scripts/render_smoke_nonumpy.py Expands smoke checks for toolbar placement, visibility, dragging, menus, exports, and Pan toggling.

Reviews (8): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile

@codspeed-hq

codspeed-hq Bot commented Jul 22, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 102 untouched benchmarks
⏩ 1 skipped benchmark1


Comparing carlos/update-toolbar (731a829) with main (68617fe)

Open in CodSpeed

Footnotes

  1. 1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports.

@Alek99
Alek99 self-requested a review July 22, 2026 17:15

@Alek99 Alek99 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to address the changes in slack

@carlosabadia
carlosabadia requested a review from Alek99 July 22, 2026 18:26
@Alek99
Alek99 merged commit 5042c65 into main Jul 22, 2026
29 checks passed
FarhanAliRaza added a commit that referenced this pull request Jul 27, 2026
…344)

* Ship the Rust core with fat LTO and stripped symbols

Whole-program LTO plus strip cuts the cdylib ~15% (1.51 -> 1.29 MB); the
native scatter bench shows no runtime change beyond +/-15% run-to-run
noise. .dynsym survives stripping, so ctypes binding is unaffected
(abi_smoke passes 140/140 against the stripped build). panic stays
unwinding because lib.rs catches panics at the C ABI; the wasm target
keeps its explicit -C panic=abort in release.yml. Profile rationale and
the not-adopted PGO lever are recorded in spec/design/rust-engine.md.

* Keep wheel zoom and double-click reset alive under the box-zoom tool

The dragMode guard added with the toolbar restyle (#198) blocked the plot
wheel and dblclick handlers for every tool except pan, so activating the
modebar Box Zoom tool killed cursor-anchored wheel zoom and double-click
reset. Per the pan/zoom design spec (§5.5), the drag tool selects the drag
gesture only; guard on the deliberate exception instead — 'none', the
modebar escape hatch that releases page scroll for embedded charts.

Records the contract in spec/api/interaction.md and
spec/design/pan-and-zoom-configuration.md (whose 'none' + wheel_zoom
example had drifted since #198), and adds a headless-Chromium regression
probe covering both the box-zoom tool and the 'none' carve-out.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants