import type { IconName } from '@africanies/africanies-icons'; /** * Option row for {@link ActionMenuComponent}. * * Set optional {@link routerLink} (and `queryParams` / `fragment`) so the row * renders as an `` — right-click / ⌘-click can open in a new tab. * Primary click still runs {@link onClick} when provided; otherwise the menu * navigates via the router (same pattern as tabs / segment). */ export interface AfricaniesMenuItem { /** Visible label. */ label: string; /** * Invoked on primary activation (then the menu closes). * Optional when {@link routerLink} is set — the menu navigates instead. */ onClick?: () => void; /** Optional leading icon from `@africanies/africanies-icons`. */ icon?: IconName; /** * Optional leading image URL (e.g. flagcdn). Takes precedence over * {@link icon} when both are set. */ imageUrl?: string; /** Leading image crop; default rectangular flag aspect. */ imageShape?: 'rect' | 'circle'; /** * Optional Angular router link (`string` or commands array). * When set, the row is an `` with a real `href` for open-in-new-tab. */ routerLink?: string | readonly unknown[]; /** Optional query params passed with {@link routerLink}. */ queryParams?: Record; /** Optional URL fragment with {@link routerLink}. */ fragment?: string; /** When true, the item cannot be activated. */ disabled?: boolean; /** Destructive styling (e.g. Delete). */ danger?: boolean; /** Renders a hairline rule above this item. */ dividerBefore?: boolean; }