Repository navigation
feat(apollo-wind): add ConnectionPicker - #1246
Open
andreea-ene wants to merge 1 commit into
Open
andreea-ene wants to merge 1 commit into
andreea-ene wants to merge 1 commit into
Conversation
Contributor
Dependency License Review
License distribution
Excluded packages
|
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 1, 2026 12:03
895f2ce to
72a9cd2
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 1, 2026 12:43
c0e0590 to
847ee0c
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 1, 2026 12:45
72a9cd2 to
23c4179
Compare
andreea-ene
marked this pull request as draft
October 5, 2026 12:01
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 5, 2026 12:03
4a1d8a3 to
aa0695e
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Accessibility gaps, incomplete public exports, and an active action on disabled pickers must be addressed.
Review effort: Balanced
Findings: 6
Open (6)
Use accurate labels for all connection warning states · New Provide an accessible Edit action outside the listbox option · New Disable the Fix action when the picker is disabled · New Forward field accessibility props and combine generated descriptions · New Include connection health in the option's accessible name · New Export shared trigger classes from both public barrels · New
What changed in this PR
Adds ConnectionPicker to Apollo Wind, built on enhanced ResourcePicker extension points.
Changes:
- Adds connection health, grouping, search, actions, and schema refresh.
- Extends resource rows with subtitles, keywords, actions, and field status.
- Adds stories and unit tests.
| File | Description |
|---|---|
src/index.ts |
Exports ConnectionPicker API. |
resource-picker/types.ts |
Adds extension-point types. |
resource-picker/resource-picker.tsx |
Adds actions and field status. |
resource-picker/resource-picker.test.tsx |
Tests new behavior. |
resource-picker/components/resource-row.tsx |
Renders subtitles and actions. |
connection-picker/types.ts |
Defines public API. |
connection-picker/index.ts |
Adds component barrel. |
connection-picker/connection-picker.tsx |
Implements the picker. |
connection-picker/connection-picker.test.tsx |
Tests picker behavior. |
connection-picker/connection-picker.stories.tsx |
Documents states and usage. |
connection-picker/components/connection-status.tsx |
Renders health indicators. |
connection-picker/components/connection-actions-menu.tsx |
Implements schema refresh menu. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 5, 2026 12:26
5b21e54 to
a581ace
Compare
andreea-ene
marked this pull request as ready for review
October 5, 2026 12:40
dbacomputer
reviewed
Oct 5, 2026
dbacomputer
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed the changes against feat/resource-picker, including the earlier review fixes. The 63 existing ConnectionPicker/ResourcePicker tests pass locally. Two additional interaction regressions reproduced in targeted tests are noted inline; I recommend fixing these before approval.
andreea-ene
marked this pull request as draft
October 6, 2026 09:56
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 09:58
a581ace to
b9aea5c
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 09:59
aa0695e to
22d7212
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 10:45
b9aea5c to
5b75539
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 10:47
22d7212 to
a041670
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 10:48
5b75539 to
8edf3af
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 10:53
a041670 to
d822ff7
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 10:55
8edf3af to
f123a1d
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 10:57
d822ff7 to
ce4e3af
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 11:30
f123a1d to
ae9db56
Compare
andreea-ene
marked this pull request as ready for review
October 6, 2026 12:33
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 15:48
ce4e3af to
97bfb4e
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 15:49
ae9db56 to
3ca22c4
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 15:59
38b54c7 to
6557097
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 16:00
3ca22c4 to
92f55e0
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 16:05
6557097 to
cec8f17
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 16:07
92f55e0 to
c75e596
Compare
andreea-ene
marked this pull request as draft
October 6, 2026 16:07
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 16:33
cec8f17 to
7552b53
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 16:34
c75e596 to
cc941a6
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 16:58
7552b53 to
509ee2c
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 16:59
cc941a6 to
7be253d
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 17:25
509ee2c to
e6394fc
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 17:26
7be253d to
40328fb
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 6, 2026 17:48
e6394fc to
ebb848f
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 17:49
40328fb to
bd6ce2c
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
2 times, most recently
from
October 6, 2026 19:05
87d7b51 to
59d6cc2
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 6, 2026 19:37
bd6ce2c to
55d7873
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 7, 2026 00:09
59d6cc2 to
d0ffe2b
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 7, 2026 00:09
55d7873 to
3f10044
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 7, 2026 09:39
d0ffe2b to
c50fc4a
Compare
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 7, 2026 09:40
3f10044 to
19a6950
Compare
andreea-ene
force-pushed
the
feat/resource-picker
branch
from
October 7, 2026 10:08
c50fc4a to
65a222a
Compare
A field and popover for choosing the connection an activity runs with, built on ResourcePicker for the search, folders, keyboard model and footer. ResourcePicker gains what the connection picker needs from it: a row subtitle, with a text form joined into the row's accessible name, search keywords the row does not print, trailing row actions revealed under the cursor, and an error/warning field status. Its trigger classes are exported so pickers built on it read as a pair. What ConnectionPicker adds is what only a connection has: - health on every row and on the field, as its leading dot, its border and a message underneath. A warning is named by its own reason's headline, falling back to "Needs attention" - broken connections sorted to the end of their folder - Fix on broken rows and under the field, Edit on every row and in the field menu, so both are reachable from the keyboard - an Add connection footer link, and with no connections at all the field itself starts one - a field menu to refresh the chosen connection's schema, showing progress while the returned promise is pending - an `error` message for validation, and the field's id and ARIA labelling forwarded to either trigger Rows and the field show the account, falling back to the connection name, since a node bound to the wrong account is the mistake worth catching. The name stays searchable. Co-Authored-By: Claude Opus 5.5 <[email protected]>
andreea-ene
force-pushed
the
feat/connection-picker
branch
from
October 7, 2026 10:09
19a6950 to
629bf26
Compare
andreea-ene
marked this pull request as ready for review
October 7, 2026 13:57
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Adds
ConnectionPicker, a field and popover for choosing the connection an activity runs with.Why a separate component
ConnectionPickeris built onResourcePickerrather than being a variant of it. The search, folders, keyboard model, empty states and footer are shared. What a connection adds is its own domain: a health, repair and edit actions, a message under the field and a schema refresh. As avariantprop, most of that would be props that only mean something for connections.ResourcePicker additions
Generic extension points, useful to any picker built on it:
subtitle: a second line under a row's labelkeywords: extra search terms for detail a row does not printrenderItemActions: trailing controls on a row, revealed under the cursor; clicking them does not commit the rowstatus: anerrororwarningstate on the field, witharia-invalidfor errors, plusaria-describedbyfor the consumer's messageThe field's classes are exported as
resourcePickerTriggerClassNameso pickers built on it match. The trailing padding now also applies in the Future themes, wherefuture:px-4used to override it and let the value run under the clear control. The row icon slot grows from 14px to 16px so image logos keep their detail.ConnectionPicker
connected,warning(usable but degraded, such as missing scopes) orbroken. Rows show it as a second line. The field shows it as its leading dot, its border and, when unhealthy, a message underneath with the first sentence ofstatusReason(the whole reason on hover).logotakes an image URL for the connector, such as the third-party SVGs in@uipath/apollo-ui-icons.iconremains for a glyph.onFixadds Fix to broken rows and to the message under the field.onEditadds Edit to every row.onAddConnectionadds a footer link, and with no connections at all the field itself starts a new one.onRefreshSchemaadds a field menu while a connection is chosen, showing progress until its promise settles.errorputs the field in its error state with the message underneath, taking the place of the health message.Row actions are pointer shortcuts. A listbox option is atomic to assistive technology, so Fix is always also offered under the field once the broken connection is chosen.
Screenshots
Field states: broken, missing scopes, required and no connections.
Stories
Components/Core/Connection Picker: Default, WithValue, Broken, MissingScopes, Slack, Required, NoConnections, SelectOnly, Disabled.Checks
Run locally:
biome formatbiome check(changed files)tsc --noEmitvitest run(connection-picker, resource-picker)npm run build🤖 Generated with Claude Code