- 78c8e4416: Added
StringListConverter
for managing comma-separated list attributes.
- 37c23c398:
overflow-controller
:- improves display calculations for overflow scroll buttons
- adds smooth scroll behavior
- 83024fe5e:
roving-tabindex-controller
: notify the host when the focused item changes. - 83024fe5e:
roving-tabindex-controller
: allow component authors to specify the type of items.
- e45f5eb5a:
roving-tabindex-controller
: enabled controller to be used by aria-expanded elements
-
e8788c7214: Initial Release 🎉
@patternfly/pfe-core
provides utilities for building PatternFly elements, like TypeScript decorators and Lit reactive controllers. Core utilities replace thePFElement
base class.export class PfeJazzHands extends PFElement { static get tag() { return "pfe-jazz-hands"; } static get properties() { return { cool: { type: Boolean, observer: "_upgradeObserver", }, }; } } PFElement.create(PfeJazzHands);
@customElement("pf-jazz-hands") export class PfJazzHands extends LitElement { @observed("_upgradeObserver") @property({ type: Boolean }) cool = true; _upgradeObserver() { console.log("cool"); } }
-
✨ Added
FloatingDOMController
for use with components that require popover content. For example, inBaseTooltip
we use the controller in this manner:import { FloatingDOMController } from "@patternfly/pfe-core/controllers/floating-dom-controller.js"; export class BaseTooltip extends LitElement { #domController = new FloatingDOMController(this); }
-
✨ Added
InternalsController
, providing preliminary facility for ElementInternals -
✨ Added
ScrollSpyController
which sets an attribute (active
by default) on one of it's children when that child'shref
attribute is to a hash reference to an ID'd heading on the page. -
✨ Added
RovingTabindexController
which implements roving tabindex, as described in WAI-ARIA practices. AddedRovingTabindexController
.
See README and the docs for more info.
-
-
530ef7155: ✨ Added
OverflowController
When added to a container and given a child array of elements,
OverflowController
checks to see if those elements exceed the bounds of the container. -
2e1fb5705:
InternalsController
: addedlabels
andvalidity
getters; addedsetFormValue
,setValidity
,checkValidity
andreportValidity
methods
- 5d3315fd4: Prepared release candidate
-
530ef7155: ✨ Added
OverflowController
When added to a container and given a child array of elements,
OverflowController
checks to see if those elements exceed the bounds of the container. -
2e1fb5705:
InternalsController
: addedlabels
andvalidity
getters; addedsetFormValue
,setValidity
,checkValidity
andreportValidity
methods
- 5d3315fd: Prepared release candidate
-
82da44c11: ✨ Added
ScrollSpyController
✨ AddedRovingTabindexController
ScrollSpyController
sets an attribute (active
by default) on one of it's children when that child'shref
attribute is to a hash reference to an IDd heading on the page.RovingTabindexController
implements roving tabindex, as described in WAI-ARIA practices.
-
b841afe40:
FloatingDOMController
: Removedpopperjs
dependency and replaced it withfloating-ui
dependency.- removed the
initialized
property - removed the
create
method - added
show(options)
method withplacement
andoffset
options. - added
arrow
,flip
,padding
, andshift
options - added read-only
alignment
,anchor
,placement
, andstyles
properties. - made
open
property read-only.
Now,
FloatingDOMController
s constructor requires certain options, at leastcontent
, which is anHTMLElement
or a function returning anHTMLElement
.Before:
class MyElement extends LitElement { #floating = new FloatingDOMController(this); }
After:
class MyElement extends LitElement { #floating = new FloatingDOMController(this, { content: () => this.shadowRoot.getElementById('content'); }); }
- removed the
-
0fe6c52db: Added options to
InternalsController
. Use them to initializeARIA
properties.role: 'listbox', });
-
0fe6c52db:
InternalsController
: hook into host'sformDisabledCallback
- 6b6e2617: Add InternalsController, providing preliminary facility for ElementInternals
-
b6bb3818: ### pfe-tabs: Rewrites
<pfe-tabs>
to align with Patternfly v4.With this change we are adding base class components
BaseTabs
,BaseTab
, andBaseTabPanel
which can be extended for uses in other components in child repositories such as RHDS. Also aligns the API and style closer to that of PatternFly v4.<pfe-tabs> <pfe-tab slot="tab" id="users">Users</pfe-tab> <pfe-tab-panel>Users</pfe-tab-panel> <pfe-tab slot="tab">Containers</pfe-tab> <pfe-tab-panel>Containers <a href="#">Focusable element</a></pfe-tab-panel> <pfe-tab slot="tab">Database</pfe-tab> <pfe-tab-panel> <pfe-icon slot="icon" icon="rh-atom"></pfe-icon> <!-- <pfe-icon> or <svg> --> Database </pfe-tab-panel> <pfe-tab slot="tab" disabled>Disabled</pfe-tab> <pfe-tab-panel>Disabled</pfe-tab-panel> <pfe-tab slot="tab" aria-disabled="true">Aria Disabled</pfe-tab> <pfe-tab-panel>Aria Disabled</pfe-tab-panel> </pfe-tabs>
For now, does not implement:
- sub tabs feature
- nav element feature
- separate content (trigger) feature
- child tab-panel mounting features
- dynamic closable tabs feature
- loading a tab via external toggle
These feature sets can be added retroactively.
The
isElementInView
function is borrowed from the Patternfly React core helper utilities.
- 07ad1d3d: Updates use of
<pfe-icon>
- 166ecee1: Improves performance of floating DOM (tooltip) by lazily initializing
- bfad8b4b: Updates dependencies
-
7c9b85cc: Adds floating DOM controller into pfe-core for use with components that require popover content.
For example, in
BaseTooltip
we use the controller in this manner:import { FloatingDOMController } from "@patternfly/pfe-core/controllers/floating-dom-controller.js"; export class BaseTooltip extends LitElement { #domController = new FloatingDOMController(this); }
- 34ecd410:
SlotController
now correctly initializes when given a single string slot name as config argument
- 55e843c8: - If
on
attribute is set in HTML, it overrides color context from providers
- 6a2a0407: View commit message here
- 447b2d75: Remove
esbuild
export condition, as this anyways was a runtime error
- c84a4366: Explicitly adds each module to the export map
- 999cdfdd: Register context providers even if they upgrade after the consumers
-
e8788c72: Initial Release 🎉
@patternfly/pfe-core
provides utilities for building PatternFly elements, like TypeScript decorators and Lit reactive controllers. Core utilities replace thePFElement
base class.export class PfeJazzHands extends PFElement { static get tag() { return "pfe-jazz-hands"; } static get properties() { return { cool: { type: Boolean, observer: "_upgradeObserver", }, }; } } PFElement.create(PfeJazzHands);
@customElement("pfe-jazz-hands") @pfelement() export class PfeJazzHands extends LitElement { static readonly version = "{{version}}"; @observed("_upgradeObserver") @property({ type: Boolean }) cool = true; }
See README and the docs for more info.