UNPKG

@rhds/elements

Version:
99 lines (98 loc) 3.94 kB
import { LitElement } from 'lit'; import { type ColorPalette } from '@rhds/elements/lib/color-palettes.js'; import '@rhds/elements/rh-icon/rh-icon.js'; export type NavigationPrimaryPalette = Extract<ColorPalette, ('lightest' | 'darkest')>; /** * Primary navigation provides a persistent bar for orienting users and * navigating across websites and domains. It groups primary links, * dropdown menus, event promotions, and utility actions into a single * responsive bar. There must not be more than one on a page. The element * uses the ARIA `navigation` landmark role and should have a unique * `accessible-label` when multiple navigation landmarks exist on the page, * so screen readers can distinguish between them. Keyboard users navigate * items with Tab/Shift+Tab and close open dropdowns with Escape. * * @summary Persistent bar for orienting users and navigating across sites * * @alias Navigation (primary) * */ export declare class RhNavigationPrimary extends LitElement { #private; static readonly styles: CSSStyleSheet[]; /** * We should start in compact mode (mobile first) * Later, after the element has fully hydrated, we can recompute * whether to use the compact layout based on the viewport * @internal */ compact: boolean; private _overlayOpen; private _hamburgerOpen; private _linksMenuOpen; private _hamburger; private _linksMenu; private _hamburgerSummary; private _linksMenuSummary; private _title; /** * Accessible label for the mobile hamburger toggle. Must be set when the * navigation is served in a non-English locale. Defaults to `'Menu'`. */ mobileToggleLabel: string; /** * Accessible label for the mobile links (bento box) toggle. Must be set * when the navigation is served in a non-English locale. Defaults to * `'Explore Red Hat'`. */ mobileLinksToggleLabel: string; /** * Sets the color palette for the navigation and its child components. * Should only use `lightest` or `darkest` to match the page theme. * Defaults to `undefined` (inherits from the page color scheme). * Should not be set when user's color-scheme preference is respected. */ colorPalette?: NavigationPrimaryPalette; /** * Accessible label applied to the navigation landmark. Must be set when the * navigation is served in a non-English locale, and should be set when the * page contains multiple navigation landmarks, to provide unique identification * for assistive technology. Defaults to `'Main navigation'`. */ accessibleLabel: string; /** * Sets the visible sub-domain title displayed beside the Red Hat logo * lockup. Both `site-name` and `site-href` must be set to enable the * sub-domain variation; when either is missing the sub-domain area is * hidden. Defaults to `undefined`. */ siteName?: string; /** * Sets the URL for the sub-domain title link. Both `site-href` and * `site-name` must be set to enable the sub-domain variation; when * either is missing the sub-domain area is hidden. Defaults to * `undefined`. */ siteHref?: string; /** * Sets the `href` for the default logo link. Avoid changing this value * unless the site requires a non-root landing page for the logo. Defaults * to `'/'`. */ logoHref: string; constructor(); protected firstUpdated(): void; connectedCallback(): Promise<void>; render(): import("lit-html").TemplateResult<1>; protected compactChanged(oldVal: boolean, newVal: boolean): void; /** * Close Menus * @param skip Boolean - closes hamburger menu if true and in a small viewport, default false; */ close(skip?: boolean): void; } declare global { interface HTMLElementTagNameMap { 'rh-navigation-primary': RhNavigationPrimary; } }