diff --git a/.changeset/olive-rivers-stick.md b/.changeset/olive-rivers-stick.md new file mode 100644 index 0000000000..821c753340 --- /dev/null +++ b/.changeset/olive-rivers-stick.md @@ -0,0 +1,4 @@ +--- +"@patternfly/pfe-core": patch +--- +`SlotController`: `hasContent`/`isEmpty` now respects text nodes diff --git a/core/pfe-core/controllers/slot-controller.ts b/core/pfe-core/controllers/slot-controller.ts index 519adf514d..6b46cae7b0 100644 --- a/core/pfe-core/controllers/slot-controller.ts +++ b/core/pfe-core/controllers/slot-controller.ts @@ -193,7 +193,8 @@ export class SlotController implements ReactiveController { ?? this.#getChildrenForSlot(name); const selector = slotName ? `slot[name="${slotName}"]` : 'slot:not([name])'; const slot = this.host.shadowRoot?.querySelector?.(selector) ?? null; - const hasContent = !!elements.length; + const nodes = slot?.assignedNodes?.(); + const hasContent = !!elements.length || !!nodes?.filter(x => x.textContent?.trim()).length; this.#nodes.set(name, { elements, name: slotName ?? '', hasContent, slot }); this.#logger.debug(slotName, hasContent); };