Skip to content

Commit c9bd577

Browse files
bennypowerszeroedinbrianferrykelsS
authored
chore: release 4.0 (#2734)
* fix(avatar)!: remove BaseAvatar (#2630) * fix(avatar)!: remove BaseAvatar Closes #2617 Closes #2575 Closes #2349 * fix(avatar): update css * fix(avatar)!: rename AvatarLoadEvent => PfAvatarLoadEvent * fix(clipboard-copy)!: remove BaseClipboardCopy (#2635) * fix(clipboard-copy)!: remove BaseClipboardCopy Closes #2611 * fix(clipboard-copy): use pfv4 styles * fix(clipboard-copy)!: rename ClipboardCopyCopiedEvent to PfClipboardCopyCopiedEvent * fix(switch)!: remove BaseSwitch (#2634) * fix(switch)!: remove BaseSwitch Closes #2618 * fix(switch): remove extra semicolon * Merge branch 'staging/4.0' into fix/switch/remove-base * fix(switch): svg namespace --------- Co-authored-by: Steven Spriggs <[email protected]> * fix(code-block)!: remove BaseCodeBlock (#2633) Closes #2613 Co-authored-by: Steven Spriggs <[email protected]> * fix(label)!: remove BaseLabel (#2632) * fix(label)!: remove BaseLabel Closes #2620 * feat(label): self-remove on close * test(label): update tests * fix(label): correct font-size unit, include missing pf global var * docs(label): fix accesibility demo * fix(label): removes the removal of element and only triggers close event * fix(label): undo last commit, see the example in the changeset --------- Co-authored-by: Steven Spriggs <[email protected]> * fix(badge)!: remove BaseBadge (#2629) Closes #2619 * fix(spinner)!: remove BaseSpinner (#2627) Closes #2614 Co-authored-by: Steven Spriggs <[email protected]> * fix(tile)!: remove BaseTile (#2625) Co-authored-by: Steven Spriggs <[email protected]> * fix(tooltip)!: remove BaseTooltip (#2628) Closes #2615 Co-authored-by: Steven Spriggs <[email protected]> * feat(card)!: remove BaseCard (#2586) * fix(card): moving styles and code from baseclass * chore: changset * feat(card): removing basecard class, styles * fix(card): remove unused basecard import * Update .changeset/sharp-spiders-float.md Co-authored-by: Benny Powers <[email protected]> * docs: make changeset major * fix(card): make slot controller private * feat(card): title slot, header actions --------- Co-authored-by: Benny Powers <[email protected]> Co-authored-by: Benny Powers <[email protected]> * fix(button)!: remove BaseButton (#2631) * fix(tabs)!: remove BaseTabs (#2745) closes #2624 * fix(button): keyboard focus * fix(switch): revert bad merge from BaseSwitch * fix(icon)!: remove svg files (#2763) * fix(icon)!: remove BaseIcon (#2636) * fix(icon)!: remove BaseIcon Closes #2621 * docs: jsdoc * fix(icon): base styles * docs: addIconSet jsdoc Co-authored-by: Steven Spriggs <[email protected]> * docs: jsdoc for getIconUrl Co-authored-by: Steven Spriggs <[email protected]> * style: lint * fix: remove baseicon from bad merge --------- Co-authored-by: Steven Spriggs <[email protected]> * fix(accordion)!: remove BaseAccordion (#2764) * fix(accordion)!: remove BaseAccordion Closes #2612 fix(accordion): expand logic refactor(accordion): prevent circular imports * feat(tools): querySnapshot test helper * test(accordion): fix some tests * fix(accordion): single attribute * feat(tools): ts transform to add static version to elements (#2768) * fix(icon)!: remove getIconUrl for webpack's sake (#2766) * fix(icon)!: remove getIconUrl for webpack's sake * test(icon): refactor tests * chore: update icons * docs(icon): fix custom sets demo * chore: update rhds dep * feat!: ssr (#2762) * fix(core)!: remove side effects from core import Removes `window.PfeConfig` and auto-reveal features Adds server checks to `createContextWithRoot` * feat(tools): ssr test page * test(accordion): ssr tests * test(avatar): ssr tests * test(back-to-top): ssr * test(background-image): ssr * test(badge): ssr * test(banner): ssr * test(button): ssr * test(card): ssr * test(chip): ssr * test(clipboard-copy): ssr * test(code-block): ssr * test(dropdown): ssr * test(icon): ssr * test(jump-links): ssr * test(label): ssr * test(modal): ssr * test(panel): ssr * test(popover): ssr * test(progress): ssr * test(progress-stepper): ssr * test(select): ssr * test(spinner): ssr * test(switch): ssr * test(table): ssr * test(tabs): ssr * test(text-area): ssr * test(text-area): ssr * test(tile): ssr * test(timestamp): ssr * test(tooltip): ssr * feat(create-element): ssr tests * feat(tools): automatic ssr demos * fix(tools): shim module * docs: changesets * test: remove cruft * fix(tools): ssr error reports * test: playwright config for ssr * chore: ssr test workflow * fix(tools): ssr error status message * chore: ssr test workflow * chore: ssr test workflow * chore: ignore reports * fix(accordion): ssrability * fix(back-to-top): ssrability * docs: jsdoc for ssr tests * chore: test workflow in ci * fix(core): fix Logger for ssr * style: whitespace * chore: better elements build * fix(core): more ssr-able controllers * test(back-to-top): ssrable demos * fix(tools): redirects for demos in dev server * fix(tools): ssr files * test(background-image): ssrable demos * fix(tools): 11ty demo images * fix(core): floating dom controller more ssrable * feat(tools): export ssr helpers * fix(code-block): ssrable * fix(jump-links): ssrable * fix(core): ssrable ScrollSpyController * fix(progress-stepper): ssrable * fix(popover): ssrable * fix(core): ssrable lbc * fix(icon): ssr * fix(select): ssrable * fix(table): ssrable * fix(text-area): ssrable * fix(text-input): ssrable * fix(tooltip): ssrable * chore: pr reports * fix(tools): update playwright * chore: ssr workflow * chore: ssr workflow * chore: actions versions * chore: ssr workflow * chore: ssr workflow * chore: ssr workflow * chore: ssr workflow * chore: ssr workflow * chore: ssr workflow * chore: ssr workflow * fix: remove BaseAccordion from bad merge * chore: remove references to Base* * fix(core): ariaDescribedByElements, etc types * chore: lint massive lint. no more warnings * chore: update typescript enable `isolatedDeclarations`, which makes our dx a bit worse but improves downstream performance * chore: appease cupertino * chore: pkg lock * refactor(core): clarify the guts of InternalsController * docs(button): demo of custom roles * docs(button): a wee bit of style * chore: typescript 5.5 (#2801) * chore: lint massive lint. no more warnings * chore: update typescript enable `isolatedDeclarations`, which makes our dx a bit worse but improves downstream performance * chore: appease cupertino * chore: pkg lock * fix(tools): less chatty tests * chore: deps * chore: lint * test: lint * chore: update playwright in ci * fix(tools): dev server config watcher regexp * perf(tools): dev server uses mtime for etag * feat(core): new decorators `@listen` and `@observes` (#2807) * feat(core): add `@listen` decorator * feat(core): add `@observes` decorator * refactor: use new listen and observes decorators * fix(core): listen decorator call lifecycle correctly * test(core): observes decorator test * feat(core): observes decorator options waitFor option lets caller wait for connected, firstUpdated, or updated until calling the method * fix: observes calls * fix(core): improved types * fix(core): even better types * test(core): listen decorator * feat(select): typeahead (#2809) * fix(select): display value from attribute * feat(select): typeahead adds `ActivedescendantController` to core * fix: wip activedescendantcontroller clone nodes * fix(select): slightly less janky clonenode path * refactor: iterative improvements * fix(core)!: a11y controller options * fix: elements usage of a11y controllers * fix!: abstract ATFocusController * fix!: inching towards correctness * fix: give listbox controller access to control element * fix: inching closer * fix(core): index at focus item by number * fix(select): typeahead, focus, filter * fix(select): roles * fix(select): combobox controller * fix(select): combobox controller works with orca ff, apparently * fix(core): combobox * fix(select): better vo support * fix(select): activedescentant * fix(select): dropdown orientation * fix(core): listbox select * fix: select, core jsdoc, cleanup * fix(core): a more general combobox interface * fix(core): more nitpicks * fix(core): oopsies forgot to commit these yesterday * refactor(select): polish * fix(tabs): update to use new rtic stuff * fix(core): initial focus for rti * fix(accordion): wip rtic migration * test(accordion): update tests * refactor(accordion): whitespace * docs(accordion): focusable content in panel * docs(accordion): demo formatting * test(accordion): fix and refactor tests * fix(core): off-by-one error in RTIC controller * fix(core): nested rtic * feat(tools): chai a11y snapshot assertions * fix(core): more ssr-able controllers * fix(core): more ssr-able controllers * fix(core): more ssr-able controllers * fix(icon): more ssr-able icon * fix(core): remove unused ax controller apis * test(core): observes decorator * fix(chip): rtic apis, tests * feat(tools): a11yShapshot queries can match regex * chore: import maps in tests * refactor(select): type assertion * feat(tools): more ax assertions * fix(core): listbox/combobox selection state * fix(select): no placeholder label * fix(select): checkboxes * fix(core): listbox select behaviour * feat(tools): more ax chai helpers * docs(select): checkbox demo padding * test(select): all green * test: reporter in ci * fix(tools): always junit reporter in ci * chore: test runner config * fix(tools): test runner config * fix(tools): flatten assertions in ci * test(select): summaries * chore: update deps * test: refactor ax helpers * test(select): reformat test file * test(select): taborder when bluring listbox * test(select): format test file * test(select): home/end should expand listbox * test(select): show+home after selecting * test(select): no scroll on space * docs(select): demo containers * fix(core): aria-multiselectable * test(select): format test file * fix(select): redundant button role * fix: visually-hidden styles * test(select): provisional home/end typeahead * test(select): aria-posinset * fix(core): listbox aria-posinset * test(select): format file * test(select): dont expand listbox on type space * test(select): space on button no scroll * fix(core): combobox prevent scroll Also prevent listbox from showing on typing space in combobox input * test(select): tabbing away does not focus button * fix(core): combobox dont focus button on blur * refactor(core): combobox listeners * fix(core): home/end for combobox * test(select): format file * fix(select): ghost placeholder * test(select): refactor * test(select): cases involving labels and placeholders * fix(core): placeholder/label/carat * fix(select): focus styles * fix(select): fallback label to placeholder * fix(select): workaround for safari * test(select): cases * fix(select): inert instead of aria-hidden * fix(core): safari workaround for activedescendant * fix(core): wip single-vs-multiselect on click * fix(core): multiselect click * fix(select): checkbox label * test(select): refactor tests * feat(tools): test utils: allow clicking out of element bounds * test(select): clicking items * fix(core): clicking shadow ad items * test(select): more better selected tests * fix(core): clicking shadow items * fix(core): more x-root aria shenanigans * test(select): add lightdom options slotted test * refactor(core): unused var * test(core): test shadow-root-only combobox-controller * test(core): combobox works even with no user-set ids * fix(core): propertly detect rotten apples * refactor(core): rename support boolean * fix(core): ad controller works without preset ids * fix(core): default isItemDisabled predicate * test: try to deflake * test(select): greg's issues when an item is selected * refactor(core): controller field privacy * fix(core): correct order of operations in combobox listeners * refactor(core): override onKeydown * fix(core): ensure compatibility in combobox controller * test(core): combobox tests * refactor(core): don't bind this in controller options --------- Co-authored-by: Steven Spriggs <[email protected]> * feat(tools): getAllManifests * fix(tools): correct import (#2824) * docs: more changesets * chore: decruft * docs: pdate a11y-controller-opts.md * docs: update dirty-bears-win.md * docs: update a11y-controller-opts.md --------- Co-authored-by: Steven Spriggs <[email protected]> Co-authored-by: Brian Ferry <[email protected]> Co-authored-by: Kelsey S <[email protected]>
1 parent 05361d4 commit c9bd577

File tree

2,061 files changed

+13733
-13024
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,061 files changed

+13733
-13024
lines changed

.changeset/a11y-controller-opts.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
"@patternfly/pfe-core": major
3+
---
4+
`RovingTabindexController`, `ListboxController`: constructor options were changed.
5+
In particular, the `initItems(items: Item[])` and `setActiveItem(item: Item)` methods
6+
were removed and replaced with the `getItems: () => Item[]` constructor option, and
7+
the `atFocusedItemIndex` accessor.
8+
9+
**Before**:
10+
11+
```ts
12+
#tabindex = new TabindexController(this);
13+
14+
firstUpdated() {
15+
this.#tabindex.initItems(this.items);
16+
}
17+
18+
updated(changed: PropertyValues<this>) {
19+
if (changed.has('activeItem')) {
20+
this.#tabindex.setActiveItem(this.activeItem);
21+
}
22+
}
23+
```
24+
25+
**After**:
26+
27+
```ts
28+
#tabindex = new TabindexController(this, {
29+
getItems: () => this.items,
30+
});
31+
32+
updated(changed: PropertyValues<this>) {
33+
if (changed.has('activeItem')) {
34+
this.#tabindex.atFocusedItemIndex = this.items.indexOf(this.activeItem);
35+
}
36+
}
37+
```
38+
39+
40+
**For further migration guidance**, please see the [sources in `@patternfly/pfe-core`][sources],
41+
especially:
42+
- `ATFocusController.ts`,
43+
- `RovingTabindexController.ts`, and
44+
- `ListboxController.ts`.
45+
46+
[sources]: https://github.com/patternfly/patternfly-elements/tree/main/core/pfe-core/controllers/

.changeset/a11y-snapshot-chai.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
"@patternfly/pfe-tools": minor
3+
---
4+
`a11ySnapshot`: Added chai assertions for various accessibility-tree scenarios
5+
6+
Examples:
7+
```ts
8+
describe('<pf-accordion>', function() {
9+
beforeEach(() => fixture(html`
10+
<pf-accordion>
11+
<pf-accordion-header id="header1">header-1</pf-accordion-header>
12+
<pf-accordion-panel>panel-1</pf-accordion-panel>
13+
</pf-accordion>
14+
`))
15+
describe('clicking the first heading', function() {
16+
beforeEach(clickFirstHeading);
17+
it('expands the first panel', async function() {
18+
expect(await a11ySnapshot())
19+
.to.axContainName('panel-1');
20+
});
21+
it('focuses the first panel', async function() {
22+
expect(await a11ySnapshot())
23+
.to.have.axTreeFocusOn(document.getElementById('header1'));
24+
});
25+
it('shows the collapse all button', async function() {
26+
expect(await a11ySnapshot())
27+
.to.axContainRole('button');
28+
});
29+
})
30+
})
31+
32+
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
"@patternfly/pfe-core": minor
3+
---
4+
✨ Added `ActiveDescendantController`
5+
6+
This controller implements the [WAI-ARIA activedescendant pattern][pattern]
7+
for keyboard and screen-reader accessibility.
8+
9+
```ts
10+
#activedescentant = ActivedescendantController.of(this, {
11+
getItems: () => this.options,
12+
getItemsContainer: () => this.#listbox,
13+
getOrientation: () => 'vertical',
14+
getActiveDescendantContainer: () => this.#input,
15+
getControlsElements: () => [this.#input, this.#button].filter(x => !!x),
16+
setItemActive: (item, active) => void (item.active = active),
17+
});
18+
```
19+
20+
[pattern]: https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_focus_activedescendant

.changeset/clever-places-happen.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@patternfly/eslint-config": patch
3+
"@patternfly/create-element": patch
4+
"@patternfly/pfe-core": patch
5+
"@patternfly/pfe-tools": patch
6+
"@patternfly/elements": patch
7+
---
8+
updated dependencies

.changeset/clever-yaks-thank.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
"@patternfly/elements": minor
3+
---
4+
`<pf-card>`: added `title` slot, for when the title is not inline with any slotted header actions

.changeset/combobox-controller.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
"@patternfly/pfe-core": minor
3+
---
4+
✨ Added `ComboboxController`
5+
6+
This controller implements the [WAI-ARIA combobox pattern][pattern] for both
7+
select-only and inline autocomplete comboboxes.
8+
9+
```ts
10+
#combobox = ComboboxController.of(this, {
11+
multi: this.multi,
12+
getItems: () => this.options,
13+
getFallbackLabel: () => this.accessibleLabel,
14+
getListboxElement: () => this._listbox ?? null,
15+
getToggleButton: () => this._toggleButton ?? null,
16+
getComboboxInput: () => this._toggleInput ?? null,
17+
isExpanded: () => this.expanded,
18+
requestShowListbox: () => void (this.expanded ||= true),
19+
requestHideListbox: () => void (this.expanded &&= false),
20+
setItemHidden: (item, hidden) => void (item.hidden = hidden),
21+
isItem: item => item instanceof PfOption,
22+
setItemActive: (item, active) => item.active = active,
23+
setItemSelected: (item, selected) => item.selected = selected,
24+
});
25+
26+
```
27+
28+
[pattern]: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/

.changeset/dirty-bears-win.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
"@patternfly/elements": major
3+
---
4+
`<pf-icon>`: removed the `getIconUrl` static method, and replaced it with the
5+
`resolve` static method
6+
7+
The steps for overriding icon loading behaviour have changed. Before, you had to
8+
return a string from the `getIconUrl` method, or the second argument to
9+
`addIconSet`. Now, both of those functions must return a Node, or any lit-html
10+
renderable value, or a Promise thereof.
11+
12+
**Before**:
13+
14+
```js
15+
PfIcon.addIconSet('local', (set, icon) =>
16+
new URL(`/assets/icons/${set}-${icon}.js`));
17+
18+
// or
19+
PfIcon.getIconUrl = (set, icon) =>
20+
new URL(`/assets/icons/${set}-${icon}.js`))
21+
```
22+
23+
**After**:
24+
```js
25+
PfIcon.addIconSet('local', (set, icon) =>
26+
import(`/assets/icons/${set}-${icon}.js`))
27+
.then(mod => mod.default);
28+
29+
// or
30+
PfIcon.resolve = (set, icon) =>
31+
import(`/assets/icons/${set}-${icon}.js`))
32+
.then(mod => mod.default);
33+
```
34+

.changeset/few-lands-feel.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
"@patternfly/pfe-core": major
3+
---
4+
Removed global `pfeLog` feature

.changeset/fluffy-papers-sit.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@patternfly/pfe-core": minor
3+
---
4+
**Decorators**: Added `@listen`. Use it to attach element event listeners to
5+
class methods.
6+
7+
```ts
8+
@customElement('custom-input')
9+
class CustomInput extends LitElement {
10+
@property({ type: Boolean }) dirty = false;
11+
@listen('keyup', { once: true })
12+
protected onKeyup() {
13+
this.dirty = true;
14+
}
15+
}
16+
```

.changeset/free-ideas-fry.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
"@patternfly/pfe-core": patch
3+
---
4+
`InternalsController`: corrected the types for aria IDL list attributes

0 commit comments

Comments
 (0)