[Streams] Implement Ingest Pipeline Structure Tree Design Review Feedback #238061
+259
−201
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.
Summary
This PR implements design feedback from the Figma designs for the ingest sub-pipeline interface, bringing the implementation into closer alignment with the intended design specifications.
Closes #[ISSUE_NUMBER]
Changes
Flyout Layout Restructure
The flyout has been restructured from using
EuiSplitPanelto a custom layout withEuiFlyout,EuiFlyoutBody, andEuiFlyoutFooter. This enables:Tree Panel Improvements
All tree node styling has been updated to match the design specifications:
Sizing and spacing:
Typography:
colors.linkfor a more interactive appearanceState colors:
borderBasePlainborder,backgroundBasePlainbackground, subdued iconsborderStrongPrimaryborder (1px, not 2px),backgroundBasePrimarybackground, primary color iconsbackgroundBaseInteractiveHoverbackground, underlined textContent improvements:
EuiTextwithcolor="subdued"for proper text stylingDetails Panel Enhancements
Semantic HTML structure:
Replaced
EuiDescriptionListwithEuiTitleandEuiCodeBlockcomponents. The previous implementation was not semantically correct usage of the<dl>HTML element, as we're displaying sections with titles and code blocks, not description lists.Improved alignment:
Fixed vertical alignment of meta information (version, managed tag, deprecated badge) by using
responsive={false}and tightergutterSize.Better loading experience:
Replaced
SectionLoadingspinner with structured skeleton loading usingEuiSkeletonTextandEuiSkeletonRectanglecomponents that match the actual content layout.Callout Improvements
Removed redundant warning message from "Custom pipeline does not exist" callouts. The message "The pipeline [name] does not exist" was duplicated in both the callout title and body, creating unnecessary repetition.
Technical Details
All styling now uses proper EUI theme tokens for maintainability:
euiTheme.size.*for all spacing valueseuiTheme.border.*for borders and radiieuiTheme.colors.*for all color valueseuiTheme.font.*for typographyThe flyout layout uses Emotion CSS-in-JS for precise control over dimensions and responsive behavior while maintaining clean component structure.
Known Limitations
Expand/Collapse Action Separation
The design called for the expand/collapse button to operate independently from the pipeline selection action (clicking the pipeline name). This is fundamentally limited by the
EuiTreeViewcomponent's architecture, which treats the entire node as a single clickable area with no API to intercept expand button clicks separately.Potential solutions (not implemented):
EuiTreeViewin the EUI library itselfThis limitation was acknowledged in the original issue with "Or is this limited by our use of the EuiTreeView component?"
Panel Flashing on Selection
Suppressing the flashing when selecting a new pipeline would require implementing React optimization techniques (React.memo, Suspense, careful state management) that go beyond the scope of these styling updates.
Testing
Manual testing should verify:
Screenshots
TODO: Add before/after screenshots
Related: Addresses feedback from @[DESIGN_REVIEWER] in the design review issue.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
iojs.orgcurl -q --fail --compressed -L -s REDACTED -o -(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>[Streams] Ingest Pipeline Structure Tree Design Review</issue_title>
<issue_description>Thanks so much for implementing the designs for the ingest sub-pipeline interface in your recently merged PR, @ElenaStoeva. It looks great! I was out on PTO when this merged, but I did a quick review this week and had a few comments/suggestions that I wanted to share with you to see if we could bring the implementation into closer alignment with the designs. If you have any questions about any of these, feel free to comment here or we can schedule a Zoom call to chat about these.
General flyout
The flyout's width is slightly larger than the design. Can we change it so that the flyout is 1000px wide (460px for left ingest pipeline hierarchy panel, 560px for pipeline details panel)?
The padding for the flyout's two primary content panels is currently 16px. Can we change this to 24px?
There is a 1px border missing between the flyout's two primary content panels. Can we add this in? Note that this border should also be omitted at small viewport sizes, when the panels are no longer side-by-side.
The flyout's footer with "Edit pipeline", "Duplicate", and "Delete" actions was intended to only extend the width of the pipeline details panel. Currently it is extending across the full width of the flyout. This is problematic because it gives the impression that the actions are global across all pipelines, when it actually is only affecting the currently selected pipeline. Would it be possible to change this to match the designs?
The footer appears to have an errant shadow appearing at the top, emenating from styles applied to the
divelement above. Can this shadow be removed?Ingest pipeline hierarchy panel
The "A tree visualization…" subtitle should likely be placed in an
EuiTextcomponent in order to get the appropriate styles, such as line height. The subtitle text color should also becolors.textSubduedto better match the designs.The "pipeline processors" text wasn't an external link in the designs. The current implementation feels odd, as the external link icon is breaking a line. If this link is required, consider having it be an appended "View documentation" link that appears at the end of the subtitle.
The designs show each ingest pipeline item in the tree extending the full width of it's row, up to the right edge of the panel. Can the implementation be updated to reflect this?
Each child ingest pipeline item is intended to have a 40px left indent/margin from their parent. The current implementation uses 24px. Can we change to match the designs?
The gap between each ingest pipeline item is intended to be 8px, not 16px.
The original design intention was that the expand/collapse button action would operate independently from the pipeline selection action (triggered by interacting with the pipeline name). Would it be possible to modify your implementation to split those two actions as intended? Or is this limited by our use of the
EuiTreeViewcomponent?The selection of a new pipeline from the tree causes the right details panel to flash/disappear-and-reappear. Would it be possible to supress this flashing?
There's a handful of small inconsistencies between the design and the implementation of the ingest pipeline items. These include the following:
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.