Skip to content

[feat]: Create <pf-v6-tree-view> element #3049

Description

@bennypowers

Summary

Create a <pf-v6-tree-view> web component implementing the PatternFly v6 Tree view component.

Hierarchical tree display for nested data, with expandable nodes, checkboxes, and action menus.

Prior Art

Source Element Status
PFE v4 -- --
cem <pf-v6-tree-view> Exists
cockpit <pf-v6-tree-view> Exists
chickadee -- --

Sub-components

  • <pf-v6-tree-item> - Individual tree node

Requirements

  • MUST implement PFv6 visual designs
  • MUST provide end-user feature parity with @patternfly/react-core TreeView
  • MAY adjust element API to leverage web platform strengths
  • SHOULD maintain CSS custom property theming compatibility
  • SHOULD expose useful CSS shadow parts

Element-specific considerations

  • Tree ARIA pattern: role="tree" on root, role="treeitem" per node, role="group" on child lists
  • aria-expanded on expandable nodes, aria-selected for selection
  • Keyboard: Arrow Up/Down navigate siblings, Arrow Right expands/enters children, Arrow Left collapses/exits, Home/End jump to first/last, Enter/Space select
  • hasCheckboxes variant: each node has checkbox; aria-checked for tri-state (indeterminate when partial children selected)
  • hasActions variant: action button per node (e.g., edit, delete)
  • hasBadges variant: badge on each node showing child count
  • hasGuides variant: vertical guide lines
  • isNested for compact nested style
  • onSelect event with node data; onExpand / onCollapse
  • activeItems prop for controlled selection
  • Search/filter: onSearch callback or toolbar integration
  • Data-driven API: data prop array vs slotted <pf-v6-tree-item> children - evaluate both approaches

Checklist

Implementation

  • API per .claude/ADVICE.md
  • CSS uses v6 tokens, logical properties, nesting
  • @summary and JSDoc on element class

Demos

  • Demos match patternfly.org naming/structure
  • CSS custom properties match computed styles from patternfly.org (Chrome MCP)
  • Visual parity verified via Chrome MCP

Tests

  • Public API covered (attributes, properties, events, slots)
  • a11ySnapshot assertions

Reviews

  • /review-api passes
  • /review-demos passes
  • /review-a11y passes
  • eslint and stylelint pass

Ship

  • Add changeset
  • PR targets staging/pfv6 (NOT main)

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    1:1Aligning components with PatternFly v4for devpriority: mediumSeverity level: 2

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions