Repository navigation
Conversation
…hierarchy Built on Zag cascade-select (Ark UI does not wrap it yet): levels open side by side on hover, a node at any depth can be picked, the trigger reads the path. First cut for the Flow management Scope filter; search and toggle rows come next. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, clear useFilterCascade exposes the open levels; FilterCascadeLevel and FilterCascadeItem (+ ItemText / ItemDescription / ItemIcon) render them, with FilterCascadeGroupLabel, FilterCascadeSearch over the top level, FilterCascadeEmpty, FilterCascadeSection with FilterCascadeCheckboxItem, and a replaceable FilterCascadeClear. With no children, FilterCascadeContent still renders every level on its own. Every click target is an exported part, so the analytics gaps of the first cut are closed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…screenshots] Trigger states, the next level on hover, the composed Scope menu with search, groups and a section, no results, and picking a path with the keyboard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…shots] Zag's default scroll brings the deepest highlighted item into view inside every level, so the first column scrolled when the highlight moved into the next one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
CI note: the 4 failing e2e tests in 🤖 Generated with Claude Code |
…ots] Playwright scrolled the still-animating item into view, which scrolled the first level in the baseline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…enshots] locator.hover() scrolls its target into view, which scrolled the first level in the baselines. Move the mouse instead, and drop the two stale baselines so CI records them again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
What type of PR is this? (check all applicable)
Description
New
FilterCascade— theFilterDropdownpill over a hierarchy (organization › deployment › application, region › zone). The menu opens each level beside the previous one on hover; a node at any depth can be picked, and the trigger reads the path: «Scope · ● a › ● b» with a ✕.Built on Zag's
cascade-select— Ark UI 5.39 does not wrap it yet — so@zag-js/cascade-selectand@zag-js/react(1.43.3, already in the lockfile via Ark) become direct dependencies.Compound, following
FilterDropdown:useFilterCascade()gives the open levels (the top level plus one per highlighted branch), the pickedpath,query,isEmpty.FilterCascadeLevel,FilterCascadeItem(+ItemText/ItemDescription/ItemIcon, defaulting to the node's fields; › on branches, ✓ on the picked leaf),FilterCascadeGroupLabel,FilterCascadeSearch,FilterCascadeEmpty,FilterCascadeSection,FilterCascadeCheckboxItem,FilterCascadeClear,FilterCascadeLevels.FilterCascadeContentrenders every level by itself — the simple case stays one line.string[],[]= unset). Parent nodes are pickable by default (allowParentSelection).Worth a look:
selectedItemsis empty for adefaultValue(the path is derived fromvalue);data-autofocusis not honoured (the search focuses itself on open); its keymap listens on the content only (↓ in the search hands the list over).FilterDropdown's 180px cap withmax-w-full:max-w-noneis the 0 spacing token in this theme.First consumer: the Scope filter of Flow management (Figma: Deployment › Scope level filters). The
Composedstory reproduces it.Related Tickets & Documents
QA Instructions
Storybook → Patterns / FilterCascade:
Added/updated tests?
FilterCascade.test.tsx, 8: picking, parent pick, clear, composed parts with consumer attributes, search + empty, keyboard handoff, section toggle) and e2e (FilterCascade.e2e.ts: 6 visual + 2 behaviour). Baselines are generated by CI ([update-screenshots]on the last commit). Analytics targets:ANALYTICS_GAPS.md.have not been included
🤖 Generated with Claude Code