Skip to content

feat(apollo-react): add Toolbox quickActions slot#637

Merged
venkateshcherukuri merged 2 commits intomainfrom
feat/toolbox-quick-actions
May 1, 2026
Merged

feat(apollo-react): add Toolbox quickActions slot#637
venkateshcherukuri merged 2 commits intomainfrom
feat/toolbox-quick-actions

Conversation

@venkateshcherukuri
Copy link
Copy Markdown
Contributor

@venkateshcherukuri venkateshcherukuri commented May 1, 2026

Summary

Adds an optional quickActions prop to Toolbox that renders a row of icon shortcuts inside the popover chrome — a leading group plus an optional trailing group separated by a vertical divider. Canvas consumers can now absorb fast-access icon strips into the existing Toolbox padding rather than stacking them above the popover where they get clipped against canvas edges.

Motivation: PO.Frontend's BPMN canvas-element picker (HandleQuickAddPopover) currently renders an icon strip outside <Toolbox> via a separate <IconRowBorder> wrapper. When the picker opens near the top of the canvas, that extra row gets clipped by the canvas's overflow: hidden. Pulling the row into Toolbox's chrome reduces total popover height by ~50 px and lets floating-ui's flip placement fit more often.

Demo

image

What's in the diff

  • Toolbox.tsx — new optional prop quickActions?: ToolboxQuickAction[]. When set, renders <QuickActionsRow> inside the existing <Column> above the title. No-op when omitted.
  • QuickActionsRow.tsx — new component. Renders an apollo-wind ghost-Button per action wrapped in CanvasTooltip. Trailing actions render after a vertical separator; leading-only and trailing-only configurations are both supported.
  • Toolbox.styles.tsmin-height: 300px → 200px on AnimatedContainer + AnimatedContent. The 300 floor was never enforced for current consumers (Toolbox at 440 px height has 324 px available for the inner list — flex:1 already exceeds 300). 200 only matters when quickActions are added; existing consumers see no functional change.
  • ConnectorHandleIcon.tsx — new BPMN-style sequence-flow arrow (dot + line + arrowhead, 36×24 viewBox). Used by the trailing "Connect" action in the BPMN picker.
  • Toolbox.stories.tsx — new Default and WithQuickActions stories so the slot is discoverable in the design system.
  • QuickActionsRow.test.tsx — 10 tests covering leading-only, trailing-only, separator presence, click/hover wiring, disabled state.

Backwards compatibility

  • quickActions is optional — existing consumers (e.g. AddNodePanel in apollo-ui, multiple Toolbox usages in PO.Frontend) are unaffected.
  • The min-height reduction is functionally a no-op for current consumers since flex: 1 always provides ≥ 300 px at the standard TOOLBOX_HEIGHT of 440 px. 200 only kicks in when quickActions add ~56 px above the inner list.
  • 1452/1452 apollo-react tests pass.

Test plan

  • pnpm test in packages/apollo-react — 1452/1452 passing
  • Manually verified in PO.Frontend with a local apollo-react build — BPMN canvas-element picker renders the icon row inside Toolbox chrome, popover height fits within canvas bounds, click/hover wiring intact
  • Storybook story renders both Default and WithQuickActions variants
  • Reviewer to sanity-check the storybook visuals on Chromatic / preview deploy

Adds an optional `quickActions` prop to Toolbox that renders a row of
icon shortcuts inside the popover chrome with a leading group and an
optional trailing group separated by a vertical divider. Lets canvas
consumers absorb fast-access icon strips into the existing Toolbox
padding rather than stacking them above the popover where they get
clipped against canvas edges.

Lowers AnimatedContainer/AnimatedContent min-height from 300 to 200 so
the inner list can shrink when quickActions push other content. No
behavior change for existing Toolbox consumers — flex:1 still gives
them more than 200 of available space at the standard 440px height.

Adds ConnectorHandleIcon (BPMN-style sequence-flow arrow) used by the
PO.Frontend canvas-element picker for the trailing "Connect" action.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

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

Project Deployment Review Updated (PT)
apollo-design 🟢 Ready Preview, Logs May 01, 2026, 12:22:11 PM
apollo-docs 🟢 Ready Preview, Logs May 01, 2026, 12:20:35 PM
apollo-landing 🟢 Ready Preview, Logs May 01, 2026, 12:19:14 PM
apollo-ui-react 🟢 Ready Preview, Logs May 01, 2026, 12:20:25 PM
apollo-vertex 🟢 Ready Preview, Logs May 01, 2026, 12:20:58 PM

@github-actions github-actions Bot added pkg:apollo-react size:L 100-499 changed lines. labels May 1, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

Dependency License Review

  • 2104 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 15 package(s) excluded (see details below)
License distribution
License Packages
MIT 1825
ISC 104
Apache-2.0 69
BSD-3-Clause 30
BSD-2-Clause 24
Copyright 2022, UiPath, all rights reserved 9
BlueOak-1.0.0 8
MPL-2.0 5
MIT OR Apache-2.0 3
MIT-0 3
Unknown 3
Unlicense 3
CC0-1.0 3
LGPL-3.0-or-later 2
(MIT OR Apache-2.0) 2
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
BSD 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
@img/sharp-libvips-linuxmusl-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
@uipath/apollo-angular-elements 5.86.3 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-core 4.35.0, 4.35.1 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-fonts 1.25.8 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-icons 1.33.7 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-mui5 2.31.26 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell 3.351.4 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell-react 3.149.36 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell-types 3.325.2 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell-util 1.112.0 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-lab 25.12.0 Unknown UiPath first-party package
@uipath/telemetry-client-web 5.1.0 Unknown UiPath first-party package
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json
hyperx 2.5.4 BSD BSD-2-Clause per LICENSE file, non-SPDX "BSD" in package.json

Comment thread packages/apollo-react/src/canvas/components/Toolbox/QuickActionsRow.tsx Outdated
Per reviewer feedback. Drops the styled-components wrappers
(Container, Separator) in favor of static Tailwind class strings on
plain divs, following the migrate-canvas-styled-to-tailwind skill's
Pattern A. Inline style is used only for paddingInline/marginInline
which are parameterized by the TOOLBOX_PADDING_X constant (Pattern D).
@venkateshcherukuri venkateshcherukuri merged commit f57fecd into main May 1, 2026
39 checks passed
@venkateshcherukuri venkateshcherukuri deleted the feat/toolbox-quick-actions branch May 1, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg:apollo-react size:L 100-499 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants