Skip to content

[feat]: Create <pf-v6-wizard> element #3051

@bennypowers

Description

@bennypowers

Summary

Create a <pf-v6-wizard> web component implementing the PatternFly v6 Wizard component.

Multi-step guided workflow with progress sidebar, navigation, and step validation.

Prior Art

Source Element Status
PFE v4 -- --
cem -- --
cockpit -- --
chickadee <chickadee-wizard> Exists

Sub-components

  • <pf-v6-wizard-step> - Individual step with title and content

Requirements

  • MUST implement PFv6 visual designs
  • MUST provide end-user feature parity with @patternfly/react-core Wizard
  • 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

  • Sub-components: WizardHeader, WizardBody, WizardFooter, WizardNav, WizardNavItem, WizardStep, WizardToggle (mobile)
  • Step props: id, name, isDisabled, isVisited, sub-steps (nested WizardNavItem)
  • onNext, onBack, onClose, onNavItemClick events
  • isNavItemsExpanded for sub-step nav expand/collapse
  • Current step tracked internally; startIndex for initial step
  • Footer: Back / Next / Cancel buttons with per-step override via WizardFooterWrapper
  • Mobile: collapsible nav via WizardToggle
  • Nav landmark: <nav aria-label="Wizard steps">, current step aria-current="page"
  • Consider wrapping in <dialog> for modal wizard variant (use showModal())
  • Step content area: role="main" or aria-labelledby pointing to step title

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)

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