Repository navigation
feat: chart UX polish & heatmap fixes - #1834
Conversation
- PropertyComparisonChart: typed tooltip, TruncatedTick for long labels, per-bar Cell coloring for "Other" bucket, CSS ellipsis on chart titles - deltaChartUtils: applyTopNAggregation with adaptive threshold (MAX_CHART_VALUES=6, upper=8), constants for colors - DBHeatmapChart: fix tooltip showing on page load (mouseInsideRef gate), fix invalid rgba(#hex) CSS, fix tooltip overflow near right edge, ignore zero-size selections, red selection color for heatmap, keyboard a11y on filter button - Tests: 8 unit tests for applyTopNAggregation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 241146c The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
E2E Test Results✅ All tests passed • 78 passed • 4 skipped • 839s
Tests ran across 4 shards in parallel. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @teeohhem's task in 1m 18s —— View job PR Review✅ The fixes for A few items worth addressing:
|
- Add overflow: hidden + textOverflow: ellipsis to heatmap tooltip so long content respects maxWidth with whiteSpace: nowrap - Lower tooltip z-index from 9998 to 1000 to avoid layering over modals - Add missing changeset Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @alex-fedotyev's task in 1m 7s —— View job PR Review✅ Solid fixes overall — tooltip overflow ( One remaining item from the prior review:
|
The custom SVG <text> element had no explicit fill, defaulting to black which was unreadable in dark mode. Using fill="currentColor" inherits the text color from Mantine's theme provider, adapting to both themes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @alex-fedotyev's task in 1m 38s —— View job PR Review
|
|
@teeohhem - good eye! Both themes should have correct fonts now, please take a look. |
Replace fill="currentColor" with fill="var(--color-text-muted)" so X-axis tick labels have the same muted visual weight as Recharts' default ticks. The CSS variable adapts to both light and dark themes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @alex-fedotyev's task in 42s —— View job PR Review✅ All prior review items have been addressed. One remaining cleanup committed:
No other issues found. |
Co-authored-by: Alex Fedotyev <undefined@users.noreply.github.com>
|
Claude finished @teeohhem's task in 1m 6s —— View job PR Review✅ All prior review items have been addressed. The code is clean and the fixes are solid. One minor note:
No critical issues found. |
The previous commit converted the eslint-disable-next-line to a plain comment, but react-hooks/refs IS a real ESLint rule that flags passing refs to functions. The disable is correct: mouseInsideRef is only read at event time inside highlightDataPlugin, not during render. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @alex-fedotyev's task in 52s —— View job PR Review✅ Solid fixes overall. Two minor remaining items:
|
This constant is not used in this PR. It will be introduced in #1824 (Always-on Distribution) where it's actually needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @alex-fedotyev's task in 1m 7s —— View job PR Review✅ Previous review items are resolved: One item persists:
|
Resolve conflict in deltaChartUtils.ts: keep both applyTopNAggregation (from merged #1834) and field classification helpers (this branch). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
## Summary Closes #1823 - **PropertyComparisonChart**: Typed tooltip (replaces `any` props), `TruncatedTick` custom XAxis tick with native SVG tooltip for long attribute labels, per-bar `Cell` coloring for the "Other" aggregated bucket, CSS ellipsis on chart titles - **deltaChartUtils**: `applyTopNAggregation()` with adaptive threshold (shows all values up to 8, collapses beyond 6 into "Other (N)"), color constants (`ALL_SPANS_COLOR`, `OTHER_BUCKET_COLOR`) - **DBHeatmapChart**: Fix tooltip showing on page load (`mouseInsideRef` gate for uPlot `setCursor` init), fix invalid `rgba(#hex ...)` CSS syntax (2 occurrences), fix tooltip overflow near right edge (flip at 50% width, add `maxWidth`), ignore zero-size selections, red selection rectangle color for heatmap (scoped CSS), keyboard accessibility on "Filter by Selection" button - **Tests**: 8 unit tests for `applyTopNAggregation` covering adaptive threshold, top-N sorting, Other bucket accumulation ## Test plan - [ ] Verify heatmap tooltip no longer appears on initial page load (before hovering) - [ ] Verify tooltip flips correctly near the right edge without overflow - [ ] Verify heatmap selection rectangle is red (not green) - [ ] Verify "Filter by Selection" button is keyboard-accessible (Tab + Enter) - [ ] Verify attribute charts show "Other (N)" bucket for high-cardinality fields - [ ] Verify truncated axis labels show full text on hover (native tooltip) - [ ] Run `npx jest src/components/__tests__/deltaChartUtils.test.ts` — 8 tests pass 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>


Summary
Closes #1823
anyprops),TruncatedTickcustom XAxis tick with native SVG tooltip for long attribute labels, per-barCellcoloring for the "Other" aggregated bucket, CSS ellipsis on chart titlesapplyTopNAggregation()with adaptive threshold (shows all values up to 8, collapses beyond 6 into "Other (N)"), color constants (ALL_SPANS_COLOR,OTHER_BUCKET_COLOR)mouseInsideRefgate for uPlotsetCursorinit), fix invalidrgba(#hex ...)CSS syntax (2 occurrences), fix tooltip overflow near right edge (flip at 50% width, addmaxWidth), ignore zero-size selections, red selection rectangle color for heatmap (scoped CSS), keyboard accessibility on "Filter by Selection" buttonapplyTopNAggregationcovering adaptive threshold, top-N sorting, Other bucket accumulationTest plan
npx jest src/components/__tests__/deltaChartUtils.test.ts— 8 tests pass🤖 Generated with Claude Code