Skip to content

chore: staging/pfv6#3134

Open
zeroedin wants to merge 30 commits into
mainfrom
staging/pfv6
Open

chore: staging/pfv6#3134
zeroedin wants to merge 30 commits into
mainfrom
staging/pfv6

Conversation

@zeroedin

@zeroedin zeroedin commented May 8, 2026

Copy link
Copy Markdown
Collaborator

What I did

Testing Instructions

Notes to Reviewers

@changeset-bot

changeset-bot Bot commented May 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cec0ca3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@patternfly/pfe-tools Minor
@patternfly/elements Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@netlify

netlify Bot commented May 8, 2026

Copy link
Copy Markdown

Deploy Preview for patternfly-elements ready!

Name Link
🔨 Latest commit 6b806db
😎 Deploy Preview https://deploy-preview-3134--patternfly-elements.netlify.app/

To edit notification comments on pull requests, go to your Netlify site settings.

@github-actions github-actions Bot added the AT passed Automated testing has passed label May 8, 2026
@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

SSR Test Run for a4a106a: Report

* chore(tools): update tooling config for v6 prefix

- Generalize eslint ignore glob for icon demo path to match both
  pf-v5-icon and pf-v6-icon directories
- Update eslint no-missing-package-exports rule to match only pf-v6-*
  element directories
- Remove all pf-v5-* export entries from elements/package.json since
  v6 release will not ship v5 elements
- Bump elements package version to 6.0.0-next.0

Audited and confirmed no changes needed in:
- tsconfig files (no v5-specific paths)
- web-test-runner.config.js (generic globs)
- playwright.config.ts (generic globs)
- commitlint.config.js (already handles both prefixes dynamically)

Closes #3130

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: custome-element.json output location

* chore: add settings.local.json to gitignore

* chore: remove extra cem config

* chore: revert package.json version

* chore: revert eslint config

* chore: remove no-missing-package-exports altogether

* chore: splat exports

* docs: delete migration plan

it's now in the issue body for epic #3110

* chore: update cem configs

* chore: update cem

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for dd4ee41: Report

bennypowers and others added 2 commits May 11, 2026 20:33
Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore(deps): bump @pwrs/cem to 0.10.5
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for ea95c87: Report

* chore: remove v5 element after update

* docs: apply suggestion from @bennypowers

---------

Co-authored-by: Benny Powers <bennypowers@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for d19c3ec: Report

@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 3380d11: Report

@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 2a2e7a2: Report

bennypowers and others added 3 commits May 14, 2026 15:55
Add Phase 8 (README) to create-element and update-element skills,
instructing agents to produce a divergences-from-React document for
each element. Three tables: not implemented, changed API, and added.
Includes accuracy rules to prevent false claims about shadow DOM.

References elements/pf-v6-tooltip/README.md as example.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docs(create-element): add README phase to element skills
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 8156a2c: Report

@zeroedin zeroedin changed the title staging: pfv6 feat: staging/pfv6 May 14, 2026
@zeroedin zeroedin changed the title feat: staging/pfv6 chore: staging/pfv6 May 14, 2026
@github-actions

github-actions Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

✅ Commitlint tests passed!

More Info
{
  "valid": true,
  "errors": [],
  "warnings": [],
  "input": "chore: staging/pfv6"
}

…ap (#3144)

The `.js` regex in `liveReloadTsChangesMiddleware` was not end-anchored,
so requests for `.js.map` (source maps) were matched and rewritten
to `.ts.map`, breaking source maps in the dev server.

End-anchor the regex (`\.js$`) and use a regex replacement so only
the final `.js` extension is rewritten to `.ts`.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for d869cee: Report

* fix(tools): support tagPrefix as an array of tags

* chore(tools): add changeset

* refactor(tools): extract getPrefixes/matchPrefix helpers from callsites

Centralizes prefix normalization into two helpers in config.ts:
- `getPrefixes()`: normalizes tagPrefix to non-empty array, throws on empty
- `matchPrefix()`: finds matching prefix for a tag name with trailing dash

All callsites (DocsPage, Manifest, test config, deslugify) updated to use
helpers instead of inline `[].flat()` normalization, addressing Copilot
review feedback about `prefixes[0]` being undefined when tagPrefix is an
empty array.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(tools): re-export DemoRecord from Manifest instead of duplicating

The DemoRecord interface in 11ty/plugins/types.ts was a separate copy
from the canonical one in Manifest.ts. Re-export it to maintain a single
source of truth. The CJS plugin's JSDoc type annotation still resolves
correctly.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test(tools): add unit tests for getPrefixes, matchPrefix, deslugify

Covers edge cases: empty array, undefined tagPrefix, empty string
filtering, prefix matching/fallback, trailing dash normalization,
and multi-prefix deslugify behavior.

Uses node:test + node:assert, run via `npx tsx --test`.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(tools): exclude node-only spec files from WTR

config.spec.ts uses node:test and node:assert, which cannot run in
WTR's browser context. Exclude tools/pfe-tools/*.spec.ts from the
WTR file glob.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 621fc75: Report

…round-image` (#3151)

* feat(background-image): port pf-v5-background-image to pf-v6-background-image

* test(background-image): remove unecessary tests

* fix(background-image): remove reflection on src

* fix(background-image): css tweak

* chore(background-image): add changeset
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 43378fe: Report

* feat(timestamp): add `<pf-v6-timestamp>` element

* chore(timestamp): remove `<pf-v5-timestamp>` directory and files

* test(timestamp): add tests

* docs(timestamp): use pf-v6-timestamp in docs

* chore(timestamp): add changeset

* docs(timestamp): update README

* refactor(timestamp): replace utc/hour12 with timeZone/hourCycle in controller

Replace boolean `utc` and `hour12` options with `timeZone` (IANA string)
and `hourCycle` (Intl enum). Remove dead `localeString` getter and fix
constructor that never applied initial options. Remove auto-suffix
coupling that forced "UTC" into displaySuffix.

API now aligns with Intl.DateTimeFormat options and future Temporal.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(timestamp): replace utc/hour-12/help-text with time-zone/hour-cycle

- `utc` boolean -> `time-zone` string (any IANA timezone identifier)
- `hour-12` boolean+converter -> `hour-cycle` enum (h11|h12|h23|h24)
- Remove `help-text` attribute and tabindex management (tooltip is a
  composition pattern, not a built-in feature)
- Remove BooleanStringConverter (no longer needed)
- Fix `date` getter to return ISO string for round-tripping

BREAKING CHANGE: `utc`, `hour-12`, and `help-text` attributes removed.
Use `time-zone`, `hour-cycle`, and `<pf-v5-tooltip>` composition.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(timestamp): remove help-text styles, improve CSS token docs

Remove all help-text modifier CSS (dashed underline, hover/focus color
changes). Tooltip trigger styling belongs to the composition pattern.

Add design token references in CSS comments for cem health scoring.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test(timestamp): update tests for time-zone/hour-cycle API

Replace utc, hour-12, and help-text tests with time-zone, hour-cycle,
and date round-trip tests. Add coverage for America/New_York timezone
and h12/h23 hour cycle variants.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs(timestamp): update demos for new API, add timezone and hour-cycle

Update existing demos: replace `utc` with `time-zone="UTC"`, remove
`help-text`, add `<a>` wrappers for keyboard a11y in tooltip demos.

Add new demos for capabilities React lacks:
- timezone: IANA timezone display (UTC, New York, London, Tokyo)
- hour-cycle: h11/h12/h23/h24 with locale combinations

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs(timestamp): document API divergences from React

Update README with React API mapping table showing time-zone replaces
shouldDisplayUTC and hour-cycle replaces is12Hour. Document tooltip
composition pattern and new capabilities.

Update changeset with full breaking change details.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

SSR Test Run for 297e910: Report

@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 06f358e: Report

zeroedin and others added 2 commits June 15, 2026 10:45
* feat(switch): port pf-v5-switch to pf-v6-switch

* fix(switch): use nested css with classes instead of host attribute selectors

* refactor(switch): replace imperative label mutation with SlotController

* docs(switch): improve README

* docs(switch): additional demos showing FACE and cancellable events

* chore(switch): remove dead code

* chore(switch): add changeset

* fix(switch): ensure ability to set a value

* fix(switch): correct type

* docs(switch): correct stale example

* fix(switch): correct icon display logic

* docs: update switch import reference

* test(accordion): correct switch import

* fix(switch): default form value to on when no value attribute is set

* docs: update readme

* docs: jsdoc

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
* feat(back-to-top): port pf-v5-back-to-top to pf-v6-back-to-top

* fix(back-to-top): css tweak

* chore(back-to-top): add changeset

* docs(back-to-top): add missing docs markdown and screenshot

* docs(back-to-top): add missing e2e test file

* chore(back-to-top): remove className from README.md

Co-authored-by: Benny Powers <bennypowers@users.noreply.github.com>

* docs: changeset and jsdoc

* fix: css

---------

Co-authored-by: Benny Powers <bennypowers@users.noreply.github.com>
Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 9892a96: Report

* feat(avatar): add pf-v6-avatar element

Port pf-v5-avatar to pf-v6-avatar with the following v6 API changes:

- Replace `border` string attribute (light/dark) with boolean `bordered`
  attribute, matching React v6 `isBordered` prop
- Drop `dark` boolean attribute (removed in v6 React)
- Update all CSS custom property tokens from `--pf-v5-c-avatar--*` to
  `--pf-v6-c-avatar--*` matching the v6 SCSS source
- Use v6 global tokens (`--pf-t--global--border--*`) for bordered
  variant
- Simplify placeholder SVG to use `light-dark()` for automatic
  light/dark mode, replacing the separate dark boolean
- Use private CSS custom properties (`--_*`) with public token fallback
  defaults at use sites
- Remove default value from `alt` property to avoid sprouting attributes
- Add `aria-hidden="true"` to placeholder SVG
- Add `@cssprop` JSDoc for all public CSS custom properties
- Export `AvatarSize` type union

Demos match patternfly.org: basic, bordered, size-variations.
Tests cover sizes (offsetWidth), load event, alt text (a11ySnapshot),
bordered, and placeholder rendering.

Closes #2979

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(avatar): apply review fixes

- Use `static styles = [style]` array form convention
- Simplify render return type to TemplateResult
- Change img/svg display from inline to block (prevents baseline gap)
- Add placeholder avatar to basic demo
- Add a11ySnapshot test for placeholder hidden from ax tree
- Add size=md test case
- Strengthen bordered test assertion (check border adds to size)
- Add cem generate output path to config

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(avatar): align demos to react

* fix(avatar): correct css vars

* fix(avatar): readd typing

* chore: remove pf-v5-avatar

* fix(avatar): correct jsdoc to cem documentation comments

* chore: add changeset

* docs(avatar): add README

* docs(avatar): improve README documentation

* test(avatar): improve tests

* docs(avatar): add missing docs markdown and screenshot

* test(avatar): add missing e2e test file

* chore(avatar): update readme

* docs: update avatar import reference

* docs: jsdoc

* fix!: remove load event

* perf: simplify template

* test: replace load element with nextFrame

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 570333f: Report

* feat(badge): add pf-v6-badge element

Port pf-v5-badge to pf-v6-badge with v6 design tokens, CSS, and
API parity with PatternFly v6 React Badge component.

Changes from v5:
- Updated CSS custom properties to --pf-v6-c-badge--* namespace
- Added border overlay via ::after pseudo-element (new in v6)
- Added disabled state with pointer-events: none
- Switched to CSS logical properties (padding-inline-start/end)
- Simplified render: no wrapper span, slot for default content
- Added `@cssprop` JSDoc for all public CSS custom properties
- Added `@summary` and `@slot` JSDoc annotations
- Exported BadgeState type union

Demos match patternfly.org: read, unread, disabled, plus
WC-specific threshold demo.

Tests cover: instantiation, number/threshold display, state colors,
disabled styling, accessibility tree, slot content.

Closes #2982

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(badge): apply review fixes

- Remove reflect from number and threshold properties (no CSS selectors)
- Fix threshold comparison: use <= instead of < so number=threshold shows +
- Simplify render return type to TemplateResult
- Add cem generate output path to config

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* test(badge): move test to element directory

* docs(badge): correct index demo to simplest

* chore: remove pf-v5-badge

* chore: replace pf-v5-badge refs with pf-v6-badge refs

* fix(badge): correct jsdoc to cem format documentation

* chore: add changeset

* docs(badge): add README.md

* fix(badge): improve language around screen reader text usage

* docs(badge): add missing docs markdown and screenshot

* test(badge): add missing e2e test

* fix(badge): remove `number` and `threshold` properties

* docs(badge): update docs to reflect api change

* chore(badge): update changeset

* docs(badge): reference pf-v6-badge in docs, button, and chip demos

* test(avatar): update test badge reference

* fix(chip): update reference to pf-v6-badge

* fix(select): update css to reference pf-v6-badge

* docs(badge): update readme

* docs: jsdoc

* fix: remove dangling test

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 7714479: Report

* feat(spinner): add pf-v6-spinner element

Port pf-v5-spinner to pf-v6-spinner with v6 design tokens and API:

- Migrate CSS tokens from --pf-v5-* to --pf-v6-* namespace
- Update icon size tokens to --pf-t--global--icon--size--* (v6)
- Add `xs` size variant (new in v6)
- Add `inline` boolean attribute for font-size-inherited spinners
- Add `accessible-label` attribute (abstracts aria-label via internals)
- Set role=progressbar and aria-valuetext via InternalsController
- Export `SpinnerSize` type union
- Avoid sprouting default `size` attribute (CSS handles xl default)
- Add demos: basic, size-variations, custom-size, inline-size
- Add unit tests with a11ySnapshot assertions and size measurements
- Update elements/package.json exports

Closes #3037

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(spinner): apply review fixes

- Remove unused styleMap import
- Use `static styles = [styles]` array form convention
- Move diameter CSS custom property to willUpdate (host style)
- Sync ariaValueText with accessibleLabel changes
- Simplify render return type to TemplateResult
- Use individual rotate property instead of transform function
- Add prefers-reduced-motion media query
- Add cem generate output path to config

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(spinner): a11y improvement

* test(spinner): improve tests

* fix(spinner): remove diameter attribute in favor of CSS custom property

* chore: remove pf-v5-spinner

* fix(spinner): correct jsdoc to cem documentation comments

* chore: add changeset

* docs(spinner): update readme from skill

* test(spinner): add missing e2e test

* docs(spinner): add docs markdown and screenshot

* fix(spinner): split `accessible-label` into separate `accessible-label` and `value-text` attributes

* chore(spinner): update README

* docs: remove references to pf-v5-spinner

* fix(button): reference pf-v6-spinner

* docs: cem health

* docs: update changeset

* fix: remove references to v5 spinner

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 942d57b: Report

* feat(banner): add pf-v6-banner

* style: format

* style: unused import

* chore: remove pf-v5-banner

* fix(banner): correct jsdoc to cem documentation comments

* chore: add changeset

* docs(banner): add README

* docs(banner): remove noise

* test(banner): add missing spec tests

* docs(banner): missing docs markdown and screenshot

* test(banner): missing e2e test file

* fix(banner): rename screen-reader-text to accessible-label

* docs: readme, jsdoc

* docs: update references to banner

* refactor: use static css

* fix!: remove accessible-label and screen-reader-text

instruct downstream users to slot visually hidden text instead

* fix: remove references to v5

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
Co-authored-by: Mark Caron <mark.caron@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 936c334: Report

* feat(progress): port pf-v5-progress to pf-v6-progress

Update progress bar element for PatternFly v6 with inline SVG status
icons, InternalsController, `helper-text` `@slot`, `value-text` and
`static-width` properties, `singleline` measure location, and v6
design tokens with CSS grid layout.

Closes #3031

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(progress): address review findings from a11y, API, and demo audits

Move progressbar role and all ARIA to host via InternalsController,
fix aria-valuemax to always be 100, remove unnecessary value reflection,
guard fade-in animation with prefers-reduced-motion, rename failure
demos to danger, and inline demo wrapper styles.

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(progress): port pf-v5-progress to pf-v6-progress

* fix(progress): singleline should be derived not an attribute

* fix(progress): correct missing hide-status-icon and correct info around toolip

* fix(progress): handle describedby like labelledby

* fix(progress): use @observes instead of willUpdate

* chore(progress): add changeset

* docs: readme, manifest

* fix: aria-describedby

---------

Co-authored-by: Benny Powers <web@bennypowers.com>
@github-actions

Copy link
Copy Markdown
Contributor

SSR Test Run for 6b806db: Report

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

Labels

AT passed Automated testing has passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants