chrome:shell.skip

generated:catalog.entry.popover.title

generated:catalog.entry.popover.description

@xngui/components/popover
import { XPopover } from '@xngui/components/popover';

chrome:demo.section

chrome:demo.preview

demo-preview:hints.category.navigation:
Tab
demo-preview:hints.category.focus:
Focus
demo-preview:hints.category.shortcuts:
Enter / SpaceEscape
demo-preview:projection.slots-label:
[xHeader] [xContent] ng-content [xFooter]
import { Component } from '@angular/core';
import { XButton } from '@xngui/components/button';
import { XPopover } from '@xngui/components/popover';
 
@Component({
selector: 'app-example',
imports: [XButton, XPopover],
templateUrl: './popover.component.html',
})
export class ExampleComponent {}

chrome:demo.events.title

chrome:demo.events.empty

chrome:demo.api.title

x-popover

chrome:demo.api.col.property
chrome:demo.api.col.type
chrome:demo.api.col.default
chrome:demo.api.col.description
placement
XPlacement
—
Connected placement — falls back to XConfigService when unset.
size
XSize
—
Visual size tier — falls back to XConfigService when unset.
density
XDensity
—
Spacing offsets — orthogonal to `size`; falls back to XConfigService when unset.
offsetX
number
0
Horizontal offset from the anchor (px).
offsetY
number
DEFAULT_ORIGIN_OFFSET_Y
Vertical offset from the anchor (px).
matchWidth
boolean
false
When true, the open panel width matches the trigger origin (overridable per open via `options.width`).
ariaLabel
string
—
Accessible name when no labelled header is present.
ariaLabelledBy
string
—
ID of the element that labels the panel.
closeOnOutside
boolean
—
Close on outside pointer unless a nested overlay is topmost — falls back to XConfigService when unset.
closeOnEscape
boolean
—
Close when Escape is pressed — falls back to XConfigService when unset.