import type{PropertyValues}from'lit';import{type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraSize,LyraVariant}from'../../../internal/variants.js';import type{LyraAvatar,LyraAvatarShape}from'../avatar/avatar.class.js';export interface LyraAvatarGroupOverflowDetail{readonly hiddenCount:number;readonly hiddenAvatars:readonly LyraAvatar[];}export interface LyraAvatarGroupEventMap{'lr-overflow-click':CustomEvent;} /** * `` — stacks a set of slotted `` children into a single * overlapping row (negative-margin overlap, ring border so each circle reads as distinct) and, * past a configurable `max` count, collapses the excess into a "+N" overflow badge. First-party * invention (no Web Awesome equivalent), composed over `` rather than reimplementing * it — plain light-DOM slotted content is the group's items, the same shape ``'s * panels / ``'s cards / ``'s chips already use, not a * `.items` array prop. * * `size`/`shape`/`variant` provide defaults to assigned avatars that omit the corresponding * attribute. Explicit child attributes always win; group-owned defaults are removed on disconnect * or removal without overwriting later author writes. * * **Deliberate divergence from ``'s overflow pattern.** Chip-group's overflow * indicator is a disclosure toggle that reveals the excess children in place (`aria-expanded`, * a "Show less" relabel). This component's overflow badge does not do that — unstacking N more * circles back into the row would defeat the entire point of a compact identity stack. Instead, * `lr-overflow-click` is a pure notification hook: the component keeps rendering the same * collapsed stack + badge regardless of whether anyone listens, and a consumer typically wires * the event to open their own popover/dialog/tooltip listing the hidden members (out of scope for * this component — no popover dependency is introduced here). There is no `expanded` state, no * `aria-expanded`, and the badge never changes its own text/label on click. * * **No roving-tabindex / arrow-key composite-widget behavior applies here, and this is * intentional, not an oversight.** Avatars are non-interactive per ``'s own * established contract (purely presentational, no built-in interactivity), so this is not a * listbox/toolbar/grid needing `ArrowLeft`/`ArrowRight` roving focus — the overflow badge is the * only interactive element, and as a native `