import * as class_variance_authority_types from 'class-variance-authority/types'; import { NavigationMenu as NavigationMenu$1 } from '@base-ui/react/navigation-menu'; import * as React from 'react'; import { LinkProps } from './link.js'; import 'class-variance-authority'; /** * Trigger chrome, exported as a cva so siblings (e.g. a main-nav pattern) and * plain links that should sit visually beside triggers can reuse or extend it — * the app source's `Contact` item renders an `` with exactly these classes. * * The 10% ink halo marks hover/open and the 18% mix marks pressed; both are * backgrounds behind unchanged text, so text contrast is untouched. The * keyboard focus indicator is a 2px outline in the ink colour itself * (primary-800 on light surfaces, primary-200 in dark mode) — well above the * 3:1 non-text contrast minimum of WCAG 2.2 SC 1.4.11 against the white/dark * popover surfaces, and offset so it is never obscured (SC 2.4.7, 2.4.11). */ declare const navigationMenuTriggerVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string; type NavigationMenuProps = Omit & Pick & { className?: string; /** Extra classes for the shared popup surface (sizing, width caps, …). */ popupClassName?: string; /** * Inline styles for the shared popup surface. The popup normally sizes * itself from Base UI's `--popup-width`/`--popup-height`, which are * measured ONCE when a section activates — geometry that must track * something that can change while the menu is open (MainNav's * container-width panels, say) goes stale there. An inline style wins * over the measured vars and stays reactive to re-renders. */ popupStyle?: React.CSSProperties; }; /** * Top-level navigation menu — a menubar of triggers whose panels open into one * shared, animated popup. * * INTERNAL to MainNav — not exported from the package barrel, not a registry * item, no stories. It began as a public generic wrapper but was pulled from * the public API: bare primitive wrappers are not the nswds-ui style (the * design system publishes NSW-branded components, not shadcn-alikes), and * MainNav is the supported way to get this behaviour. The file ships inside * the main-nav registry item, and the module remains reachable through the * package's undocumented `components/navigation-menu` export subpath purely * as a build artefact — treat that as private API with no stability promise. * (The package name is deliberately not written out here: this comment ships * in registry content, and the alias-leak guard rejects any occurrence of the * package-prefixed import form.) * * Consumers only write `List > Item > (Trigger + Content)` pairs; the popup * plumbing Base UI requires (Portal → Positioner → Popup → Viewport, rendered * once at root level, into which every `Content` teleports) is composed here so * it cannot be assembled wrong. Positioning knobs (`side`, `sideOffset`, * `align`, `collisionPadding`, `collisionAvoidance`) pass through to the * internal Positioner. * * Accessibility is inherited from Base UI: the root renders a `