Skip to content

feat(apollo-react): densify the add-node panel and enrich toolbox rows#891

Draft
BenGSchulz wants to merge 1 commit into
mainfrom
feat/add-node-structure
Draft

feat(apollo-react): densify the add-node panel and enrich toolbox rows#891
BenGSchulz wants to merge 1 commit into
mainfrom
feat/add-node-structure

Conversation

@BenGSchulz

@BenGSchulz BenGSchulz commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Visual layer of the add-node menu redesign (MST-11860): denser rows plus optional per-row content for the canvas Toolbox / ListView. Everything new is additive — existing consumers get only the density/geometry change; the new fields render nothing unless set. (The menu structure itself is built in the companion flow-workbench PR.)

  • Denser rows: 32px single-line (44px with an inline second line), 20x20 icon glyphs in 24x24 tiles (was 24px in 32x32), 16px chevrons. TOOLBOX_HEIGHT 440 → 410 so the root menu cuts the last row to hint at scrolling. Icon tiles default to transparent (items keep explicit color / colorDark).
  • New optional ListItem fields:
    • description — inline second line under the name
    • detail — extra text shown only in the row's hover tooltip
    • badge — uppercase tag at the trailing edge (e.g. TRIGGER / WAIT)
    • dividerBefore — thin separator above the row; suppressed at the list head and in flat search results
    • contentColor / trailingIcon — color the name + leading icon and add a trailing icon; together they form the "Create new …" affordance
  • One tooltip per row: a single popover merges name + description + detail and appears only when it adds something the row can't show (a hidden detail, or a clipped name / description), revealing just those pieces. Centered above the row with a slight overlap; width capped via a merged content class. CanvasTooltip gains sideOffset, contentClassName, and disableHoverableContent (closes as the pointer leaves the row, so it never blocks neighbouring rows).
  • Section headers: spaced uppercase labels, no bordered rule. Section + divider rows are presentation-only (no listbox option ARIA). Per-item row heights via getRenderItemHeight.
  • Story: menu-structure demo (banded root, badges, In this solution / Published submenus, styled create rows) plus a "Tooltip scenarios" group covering each popover path.

Test plan

  • ListView / CanvasTooltip unit tests: badges, dividers (emit + suppress), inline description vs tooltip-only detail, truncation-gated popover, contentColor / trailingIcon, section headers, getRenderItemHeight
  • Full apollo-react suite green (1911 tests)
  • tsc + Biome clean
  • Visual verification in Storybook

Notes for reviewers

  • Density (row heights, icon sizes, panel height) applies to all Toolbox consumers by design; the new per-row fields stay inert unless set.
  • Companion PR UiPath/flow-workbench#2386 builds the menu tree and sets these fields; it renders once this ships and the dependency is bumped.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 7, 2026 06:40
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-design 🟢 Ready Preview, Logs Jul 08, 2026, 06:19:01 PM
apollo-docs 🟢 Ready Preview, Logs Jul 08, 2026, 06:19:01 PM
apollo-landing 🟢 Ready Preview, Logs Jul 08, 2026, 06:19:01 PM
apollo-vertex 🟢 Ready Preview, Logs Jul 08, 2026, 06:19:01 PM

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Dependency License Review

  • 1948 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 2 package(s) excluded (see details below)
License distribution
License Packages
MIT 1718
ISC 89
Apache-2.0 55
BSD-3-Clause 27
BSD-2-Clause 23
BlueOak-1.0.0 8
MPL-2.0 4
MIT-0 3
CC0-1.0 3
MIT OR Apache-2.0 2
(MIT OR Apache-2.0) 2
Unlicense 2
LGPL-3.0-or-later 1
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
Unknown 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the canvas add-node panel’s Toolbox/ListView presentation to match the new dense menu design, introducing optional per-item UI affordances (badges, meta line, and dividers) while keeping the underlying data shape backward-compatible for existing consumers.

Changes:

  • Densifies ListView rows (smaller icon tile/glyph sizes, smaller chevrons) and moves description to a delayed hover tooltip on the whole row.
  • Adds optional ListItem fields (meta, badge, dividerBefore) and implements a divider render item plus per-render-item row heights via a rowHeight function.
  • Updates tests and Storybook to demonstrate/validate the new menu visuals and new fields.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/apollo-react/src/canvas/constants.ts Adjusts toolbox height to align with the new dense menu’s “scroll hint” design.
packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx Implements new ListItem fields, divider render items, delayed-hover description tooltip, and variable row heights.
packages/apollo-react/src/canvas/components/Toolbox/ListView.test.tsx Updates/extends unit tests for new rendering behavior (description no longer inline, meta/badge/dividers).
packages/apollo-react/src/canvas/components/Toolbox/ListView.styles.ts Updates icon tile sizing to match the new density metrics.
packages/apollo-react/src/canvas/components/AddNodePanel/AddNodePanel.stories.tsx Adds a Storybook scenario demonstrating the target menu structure (badges/meta/dividers).

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx Outdated
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

📊 Coverage + size by package

Per-package coverage and bundle size on this PR. New-line coverage = of the source lines this PR adds or changes, the % hit by tests.

Package Coverage New-line coverage Packed (gzip) Unpacked vs main
@uipath/apollo-core 9.0% 43.82 MB 57.31 MB ±0
@uipath/apollo-react 34.5% 71.7% (33/46) 7.27 MB 27.61 MB +2.8 KB
@uipath/apollo-wind 40.3% 395.0 KB 2.57 MB +1 B
@uipath/ap-chat 85.8% 43.41 MB 55.85 MB ±0

"Coverage" is each package's own coverage.include scope (e.g. apollo-core instruments only scripts/). "Packed"/"Unpacked" come from npm pack --dry-run and only cover built packages — "—" means not measured this run (package not affected / not built). "vs main" is the packed (gzipped) delta against the last successful main build (the package-sizes artifact from the Release workflow); "—" there means no main baseline was available this run. The baseline is main's latest build, not this PR's exact merge-base, so it includes any drift since the branch diverged. Packages with no vitest config are omitted.

@BenGSchulz BenGSchulz added the dev-packages Adds dev package publishing on pushes to this PR label Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

📦 Dev Packages

Package Status Updated (PT)
@uipath/apollo-react@4.58.0-pr891.f00bd0a 🟢 Published Jul 08, 2026, 06:18:33 PM

Copilot AI review requested due to automatic review settings July 7, 2026 22:24
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from 71a0030 to ba9cd3c Compare July 7, 2026 22:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx Outdated
Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from ba9cd3c to 846d48f Compare July 7, 2026 22:52
Copilot AI review requested due to automatic review settings July 8, 2026 00:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
Copilot AI review requested due to automatic review settings July 8, 2026 01:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 8, 2026 15:20
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from d1d9745 to 172f680 Compare July 8, 2026 15:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
Copilot AI review requested due to automatic review settings July 8, 2026 16:30
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from 172f680 to 73b8347 Compare July 8, 2026 16:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 8, 2026 23:55
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from 73b8347 to 0c469c3 Compare July 8, 2026 23:55
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from 0c469c3 to 1851984 Compare July 8, 2026 23:57
@BenGSchulz BenGSchulz changed the title feat(apollo-react): densify add-node panel rows and add badges, meta, dividers feat(apollo-react): densify the add-node panel and enrich toolbox rows Jul 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
Copilot AI review requested due to automatic review settings July 9, 2026 00:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
Visual layer of the add-node menu redesign (MST-11860): denser rows plus
optional per-row content on the canvas Toolbox / ListView. Everything new is
additive, so existing consumers only get the density change unless they set
the new fields.

- Denser rows: 32px single-line (44px with an inline second line), 20x20 icon
  glyphs in 24x24 tiles, 16px chevrons. TOOLBOX_HEIGHT 440 -> 410 so the root
  menu hints at scrolling. Icon tiles default to transparent; items keep
  explicit color / colorDark.
- New optional ListItem fields: `description` (inline second line), `detail`
  (extra text shown only in the hover tooltip), `badge` (uppercase trailing
  tag), `dividerBefore` (thin separator, suppressed at the list head and in
  flat search results), `contentColor` (colors the name and leading icon), and
  `trailingIcon` — the last two compose the "Create new ..." affordance.
- One tooltip per row: a single popover merges name + description + detail and
  appears only when it adds something the row can't show (a hidden detail, or a
  clipped name / description), revealing just those pieces. Centered above the
  row with a slight overlap; width capped via a merged content class.
  CanvasTooltip gains `sideOffset`, `contentClassName`, and
  `disableHoverableContent` (closes as the pointer leaves the row so it never
  blocks neighbouring rows).
- Section headers are spaced uppercase labels with no bordered rule; section
  and divider rows are presentation-only (no listbox option ARIA). Per-item
  row heights via getRenderItemHeight.
- Menu-structure story mirrors the target hierarchy (banded root, badges,
  In this solution / Published submenus, styled create rows) plus a Tooltip
  scenarios group covering each popover path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 9, 2026 01:14
@BenGSchulz BenGSchulz force-pushed the feat/add-node-structure branch from 1851984 to 833ebe8 Compare July 9, 2026 01:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comment thread packages/apollo-react/src/canvas/components/Toolbox/ListView.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev-packages Adds dev package publishing on pushes to this PR pkg:apollo-react size:XL 500-999 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants