Build the popover-facade adapter the submenu brain (CngxMenuItemSubmenu)
drives instead of a [cngxMenuItemSubmenu] popover input. Every member
delegates to the target panel's own CngxPopover, reading target() lazily
so the facade stays valid across [submenu] changes and inert (no visible,
empty id) while the target is unbound. show() delegates to the supplied
open routing rather than popover.show(), so opening goes through the
trigger's focus stack (Pillar 1) instead of bypassing it.
Internal decompose glue, not a consumer contract - NOT exported from
public-api.ts. Extracting it keeps CngxContextMenuItem's class body a
thin shell (reference_atomic_decompose rule 1).