@radix-ui/react-navigation-menu 0.1.3-rc.7 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -48,8 +48,9 @@ export interface NavigationMenuTriggerProps extends PrimitiveButtonProps {
48
48
  }
49
49
  export const NavigationMenuTrigger: React.ForwardRefExoticComponent<NavigationMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
50
50
  type PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;
51
- export interface NavigationMenuLinkProps extends PrimitiveLinkProps {
51
+ export interface NavigationMenuLinkProps extends Omit<PrimitiveLinkProps, 'onSelect'> {
52
52
  active?: boolean;
53
+ onSelect?: (event: Event) => void;
53
54
  }
54
55
  export const NavigationMenuLink: React.ForwardRefExoticComponent<NavigationMenuLinkProps & React.RefAttributes<HTMLAnchorElement>>;
55
56
  export interface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/navigation-menu/src/packages/react/navigation-menu/src/NavigationMenu.tsx","packages/react/navigation-menu/src/packages/react/navigation-menu/src/index.ts","packages/react/navigation-menu/src/index.ts"],"sourcesContent":[null,null,"export * from './NavigationMenu';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":"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","sources":["packages/react/navigation-menu/src/packages/react/navigation-menu/src/NavigationMenu.tsx","packages/react/navigation-menu/src/packages/react/navigation-menu/src/index.ts","packages/react/navigation-menu/src/index.ts"],"sourcesContent":[null,null,"export {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n} from './NavigationMenu';\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n} from './NavigationMenu';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -16,49 +16,32 @@ var $6jHCS$radixuireactuselayouteffect = require("@radix-ui/react-use-layout-eff
16
16
  var $6jHCS$radixuireactusecallbackref = require("@radix-ui/react-use-callback-ref");
17
17
  var $6jHCS$radixuireactvisuallyhidden = require("@radix-ui/react-visually-hidden");
18
18
 
19
- function $parcel$exportWildcard(dest, source) {
20
- Object.keys(source).forEach(function(key) {
21
- if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
22
- return;
23
- }
24
-
25
- Object.defineProperty(dest, key, {
26
- enumerable: true,
27
- get: function get() {
28
- return source[key];
29
- }
30
- });
31
- });
32
-
33
- return dest;
19
+ function $parcel$export(e, n, v, s) {
20
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
34
21
  }
35
22
  function $parcel$interopDefault(a) {
36
23
  return a && a.__esModule ? a.default : a;
37
24
  }
38
- function $parcel$export(e, n, v, s) {
39
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
40
- }
41
- var $7f73b938b73b5118$exports = {};
42
25
 
43
- $parcel$export($7f73b938b73b5118$exports, "createNavigationMenuScope", () => $7f73b938b73b5118$export$fb8ea5af8c9fcdf0);
44
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenu", () => $7f73b938b73b5118$export$5b2278cf1e8bcae2);
45
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuSub", () => $7f73b938b73b5118$export$5958edd6c4ee7c79);
46
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuList", () => $7f73b938b73b5118$export$c361068a95fd2286);
47
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuItem", () => $7f73b938b73b5118$export$ffdbb83a2de845c2);
48
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuTrigger", () => $7f73b938b73b5118$export$37fe8002734d8f2);
49
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuLink", () => $7f73b938b73b5118$export$6893bf21536567da);
50
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuIndicator", () => $7f73b938b73b5118$export$8ddb526647c0d8fb);
51
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuContent", () => $7f73b938b73b5118$export$38e00e996c2f93f7);
52
- $parcel$export($7f73b938b73b5118$exports, "NavigationMenuViewport", () => $7f73b938b73b5118$export$ee880b97cc6d44a5);
53
- $parcel$export($7f73b938b73b5118$exports, "Root", () => $7f73b938b73b5118$export$be92b6f5f03c0fe9);
54
- $parcel$export($7f73b938b73b5118$exports, "Sub", () => $7f73b938b73b5118$export$d7a01e11500dfb6f);
55
- $parcel$export($7f73b938b73b5118$exports, "List", () => $7f73b938b73b5118$export$54c2e3dc7acea9f5);
56
- $parcel$export($7f73b938b73b5118$exports, "Item", () => $7f73b938b73b5118$export$6d08773d2e66f8f2);
57
- $parcel$export($7f73b938b73b5118$exports, "Trigger", () => $7f73b938b73b5118$export$41fb9f06171c75f4);
58
- $parcel$export($7f73b938b73b5118$exports, "Link", () => $7f73b938b73b5118$export$a6c7ac8248d6e38a);
59
- $parcel$export($7f73b938b73b5118$exports, "Indicator", () => $7f73b938b73b5118$export$adb584737d712b70);
60
- $parcel$export($7f73b938b73b5118$exports, "Content", () => $7f73b938b73b5118$export$7c6e2c02157bb7d2);
61
- $parcel$export($7f73b938b73b5118$exports, "Viewport", () => $7f73b938b73b5118$export$d5c6c08dc2d3ca7);
26
+ $parcel$export(module.exports, "createNavigationMenuScope", () => $7f73b938b73b5118$export$fb8ea5af8c9fcdf0);
27
+ $parcel$export(module.exports, "NavigationMenu", () => $7f73b938b73b5118$export$5b2278cf1e8bcae2);
28
+ $parcel$export(module.exports, "NavigationMenuSub", () => $7f73b938b73b5118$export$5958edd6c4ee7c79);
29
+ $parcel$export(module.exports, "NavigationMenuList", () => $7f73b938b73b5118$export$c361068a95fd2286);
30
+ $parcel$export(module.exports, "NavigationMenuItem", () => $7f73b938b73b5118$export$ffdbb83a2de845c2);
31
+ $parcel$export(module.exports, "NavigationMenuTrigger", () => $7f73b938b73b5118$export$37fe8002734d8f2);
32
+ $parcel$export(module.exports, "NavigationMenuLink", () => $7f73b938b73b5118$export$6893bf21536567da);
33
+ $parcel$export(module.exports, "NavigationMenuIndicator", () => $7f73b938b73b5118$export$8ddb526647c0d8fb);
34
+ $parcel$export(module.exports, "NavigationMenuContent", () => $7f73b938b73b5118$export$38e00e996c2f93f7);
35
+ $parcel$export(module.exports, "NavigationMenuViewport", () => $7f73b938b73b5118$export$ee880b97cc6d44a5);
36
+ $parcel$export(module.exports, "Root", () => $7f73b938b73b5118$export$be92b6f5f03c0fe9);
37
+ $parcel$export(module.exports, "Sub", () => $7f73b938b73b5118$export$d7a01e11500dfb6f);
38
+ $parcel$export(module.exports, "List", () => $7f73b938b73b5118$export$54c2e3dc7acea9f5);
39
+ $parcel$export(module.exports, "Item", () => $7f73b938b73b5118$export$6d08773d2e66f8f2);
40
+ $parcel$export(module.exports, "Trigger", () => $7f73b938b73b5118$export$41fb9f06171c75f4);
41
+ $parcel$export(module.exports, "Link", () => $7f73b938b73b5118$export$a6c7ac8248d6e38a);
42
+ $parcel$export(module.exports, "Indicator", () => $7f73b938b73b5118$export$adb584737d712b70);
43
+ $parcel$export(module.exports, "Content", () => $7f73b938b73b5118$export$7c6e2c02157bb7d2);
44
+ $parcel$export(module.exports, "Viewport", () => $7f73b938b73b5118$export$d5c6c08dc2d3ca7);
62
45
 
63
46
 
64
47
 
@@ -358,15 +341,37 @@ const $7f73b938b73b5118$export$37fe8002734d8f2 = /*#__PURE__*/ $6jHCS$react.forw
358
341
  /* -------------------------------------------------------------------------------------------------
359
342
  * NavigationMenuLink
360
343
  * -----------------------------------------------------------------------------------------------*/ const $7f73b938b73b5118$var$LINK_NAME = 'NavigationMenuLink';
344
+ const $7f73b938b73b5118$var$LINK_SELECT = 'navigationMenu.linkSelect';
361
345
  const $7f73b938b73b5118$export$6893bf21536567da = /*#__PURE__*/ $6jHCS$react.forwardRef((props, forwardedRef)=>{
362
- const { __scopeNavigationMenu: __scopeNavigationMenu , active: active , ...linkProps } = props;
346
+ const { __scopeNavigationMenu: __scopeNavigationMenu , active: active , onSelect: onSelect , ...linkProps } = props;
363
347
  return /*#__PURE__*/ $6jHCS$react.createElement($7f73b938b73b5118$var$FocusGroupItem, {
364
348
  asChild: true
365
349
  }, /*#__PURE__*/ $6jHCS$react.createElement($6jHCS$radixuireactprimitive.Primitive.a, ($parcel$interopDefault($6jHCS$babelruntimehelpersextends))({
366
350
  "data-active": active ? '' : undefined,
367
351
  "aria-current": active ? 'page' : undefined
368
352
  }, linkProps, {
369
- ref: forwardedRef
353
+ ref: forwardedRef,
354
+ onClick: $6jHCS$radixuiprimitive.composeEventHandlers(props.onClick, (event1)=>{
355
+ const target = event1.target;
356
+ const linkSelectEvent = new CustomEvent($7f73b938b73b5118$var$LINK_SELECT, {
357
+ bubbles: true,
358
+ cancelable: true
359
+ });
360
+ target.addEventListener($7f73b938b73b5118$var$LINK_SELECT, (event)=>onSelect === null || onSelect === void 0 ? void 0 : onSelect(event)
361
+ , {
362
+ once: true
363
+ });
364
+ $6jHCS$radixuireactprimitive.dispatchDiscreteCustomEvent(target, linkSelectEvent);
365
+ if (!linkSelectEvent.defaultPrevented) {
366
+ const rootContentDismissEvent = new CustomEvent($7f73b938b73b5118$var$ROOT_CONTENT_DISMISS, {
367
+ bubbles: true,
368
+ cancelable: true
369
+ });
370
+ $6jHCS$radixuireactprimitive.dispatchDiscreteCustomEvent(target, rootContentDismissEvent);
371
+ }
372
+ }, {
373
+ checkForDefaultPrevented: false
374
+ })
370
375
  })));
371
376
  });
372
377
  /*#__PURE__*/ Object.assign($7f73b938b73b5118$export$6893bf21536567da, {
@@ -501,7 +506,7 @@ const $7f73b938b73b5118$export$38e00e996c2f93f7 = /*#__PURE__*/ $6jHCS$react.for
501
506
  ]); // Content is proxied into the viewport
502
507
  return null;
503
508
  });
504
- /* -----------------------------------------------------------------------------------------------*/ const $7f73b938b73b5118$var$CONTENT_DISMISS = 'navigationMenu.contentDismiss';
509
+ /* -----------------------------------------------------------------------------------------------*/ const $7f73b938b73b5118$var$ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';
505
510
  const $7f73b938b73b5118$var$NavigationMenuContentImpl = /*#__PURE__*/ $6jHCS$react.forwardRef((props, forwardedRef)=>{
506
511
  const { __scopeNavigationMenu: __scopeNavigationMenu , value: value , triggerRef: triggerRef , focusProxyRef: focusProxyRef , onRootContentClose: onRootContentClose , onContentFocusOutside: onContentFocusOutside , ...contentProps } = props;
507
512
  const context = $7f73b938b73b5118$var$useNavigationMenuContext($7f73b938b73b5118$var$CONTENT_NAME, __scopeNavigationMenu);
@@ -521,8 +526,8 @@ const $7f73b938b73b5118$var$NavigationMenuContentImpl = /*#__PURE__*/ $6jHCS$rea
521
526
  onRootContentClose();
522
527
  if (content.contains(document.activeElement)) (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || _triggerRef$current.focus();
523
528
  };
524
- content.addEventListener($7f73b938b73b5118$var$CONTENT_DISMISS, handleClose);
525
- return ()=>content.removeEventListener($7f73b938b73b5118$var$CONTENT_DISMISS, handleClose)
529
+ content.addEventListener($7f73b938b73b5118$var$ROOT_CONTENT_DISMISS, handleClose);
530
+ return ()=>content.removeEventListener($7f73b938b73b5118$var$ROOT_CONTENT_DISMISS, handleClose)
526
531
  ;
527
532
  }
528
533
  }, [
@@ -573,11 +578,11 @@ const $7f73b938b73b5118$var$NavigationMenuContentImpl = /*#__PURE__*/ $6jHCS$rea
573
578
  ref: composedRefs,
574
579
  onDismiss: ()=>{
575
580
  var _ref$current;
576
- const contentDismissEvent = new Event($7f73b938b73b5118$var$CONTENT_DISMISS, {
581
+ const rootContentDismissEvent = new Event($7f73b938b73b5118$var$ROOT_CONTENT_DISMISS, {
577
582
  bubbles: true,
578
583
  cancelable: true
579
584
  });
580
- (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.dispatchEvent(contentDismissEvent);
585
+ (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.dispatchEvent(rootContentDismissEvent);
581
586
  },
582
587
  onFocusOutside: $6jHCS$radixuiprimitive.composeEventHandlers(props.onFocusOutside, (event)=>{
583
588
  var _context$rootNavigati;
@@ -842,7 +847,6 @@ const $7f73b938b73b5118$export$7c6e2c02157bb7d2 = $7f73b938b73b5118$export$38e00
842
847
  const $7f73b938b73b5118$export$d5c6c08dc2d3ca7 = $7f73b938b73b5118$export$ee880b97cc6d44a5;
843
848
 
844
849
 
845
- $parcel$exportWildcard(module.exports, $7f73b938b73b5118$exports);
846
850
 
847
851
 
848
852
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/navigation-menu/src/index.ts","packages/react/navigation-menu/src/NavigationMenu.tsx"],"sourcesContent":["export * from './NavigationMenu';\n","/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection<FocusGroupItemElement, {}>(NAVIGATION_MENU_NAME);\n\ntype ScopedProps<P> = P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref<ViewportContentMounterElement>;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onItemOver(itemValue: string): void;\n onItemLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext<NavigationMenuContextValue>(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map<string, ContentData>;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ElementRef<typeof Primitive.nav>;\ntype PrimitiveNavProps = Radix.ComponentPropsWithoutRef<typeof Primitive.nav>;\ninterface NavigationMenuProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveNavProps, 'defaultValue'> {\n dir?: Direction;\n orientation?: Orientation;\n}\n\nconst NavigationMenu = React.forwardRef<NavigationMenuElement, NavigationMenuProps>(\n (props: ScopedProps<NavigationMenuProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState<NavigationMenuElement | null>(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={true}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={direction}\n orientation={orientation}\n rootNavigationMenu={navigationMenu}\n >\n <Primitive.nav\n aria-label=\"Main\"\n data-orientation={orientation}\n dir={direction}\n {...NavigationMenuProps}\n ref={composedRef}\n />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface NavigationMenuSubProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveDivProps, 'defaultValue'> {\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef<NavigationMenuSubElement, NavigationMenuSubProps>(\n (props: ScopedProps<NavigationMenuSubProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={false}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={context.dir}\n orientation={orientation}\n rootNavigationMenu={context.rootNavigationMenu}\n >\n <Primitive.div data-orientation={orientation} {...subProps} ref={forwardedRef} />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst NavigationMenuProvider: React.FC<NavigationMenuProviderProps> = (\n props: ScopedProps<NavigationMenuProviderProps>\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n dir,\n orientation,\n children,\n } = props;\n const [viewport, setViewport] = React.useState<NavigationMenuViewportElement | null>(null);\n const [viewportContent, setViewportContent] = React.useState<Map<string, ContentData>>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState<HTMLDivElement | null>(null);\n const closeTimerRef = React.useRef(0);\n const [value = '', setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n React.useEffect(() => {\n return () => window.clearTimeout(closeTimerRef.current);\n }, [closeTimerRef]);\n\n return (\n <NavigationMenuProviderImpl\n scope={scope}\n isRootMenu={isRootMenu}\n rootNavigationMenu={rootNavigationMenu}\n value={value}\n previousValue={usePrevious(value)}\n baseId={useId()}\n dir={dir}\n orientation={orientation}\n viewport={viewport}\n onViewportChange={setViewport}\n indicatorTrack={indicatorTrack}\n onIndicatorTrackChange={setIndicatorTrack}\n onItemOver={React.useCallback(\n (itemValue) => {\n if (isRootMenu) window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue, isRootMenu]\n )}\n onItemLeave={React.useCallback(() => {\n if (isRootMenu) {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }\n }, [setValue, isRootMenu])}\n onItemSelect={React.useCallback(\n (itemValue) => {\n setValue((prevValue) => {\n return isRootMenu ? (prevValue === itemValue ? '' : itemValue) : itemValue;\n });\n },\n [setValue, isRootMenu]\n )}\n onItemDismiss={React.useCallback(() => setValue(''), [setValue])}\n onViewportContentChange={React.useCallback((contentValue, contentData) => {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n <Collection.Provider scope={scope}>\n <ViewportContentProvider scope={scope} items={viewportContent}>\n {children}\n </ViewportContentProvider>\n </Collection.Provider>\n </NavigationMenuProviderImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ElementRef<typeof Primitive.ul>;\ntype PrimitiveUnorderedListProps = Radix.ComponentPropsWithoutRef<typeof Primitive.ul>;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef<NavigationMenuListElement, NavigationMenuListProps>(\n (props: ScopedProps<NavigationMenuListProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n <Primitive.ul data-orientation={context.orientation} {...listProps} ref={forwardedRef} />\n );\n\n return (\n <Primitive.div style={{ position: 'relative' }} ref={context.onIndicatorTrackChange}>\n <Collection.Slot scope={__scopeNavigationMenu}>\n {context.isRootMenu ? <FocusGroup asChild>{list}</FocusGroup> : list}\n </Collection.Slot>\n </Primitive.div>\n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ElementRef<typeof VisuallyHiddenPrimitive.Root>;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n contentRef: React.RefObject<NavigationMenuContentElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext<NavigationMenuItemContextValue>(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ElementRef<typeof Primitive.li>;\ntype PrimitiveListItemProps = Radix.ComponentPropsWithoutRef<typeof Primitive.li>;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef<NavigationMenuItemElement, NavigationMenuItemProps>(\n (props: ScopedProps<NavigationMenuItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef<NavigationMenuContentElement>(null);\n const triggerRef = React.useRef<NavigationMenuTriggerElement>(null);\n const focusProxyRef = React.useRef<FocusProxyElement>(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n <NavigationMenuItemContextProvider\n scope={__scopeNavigationMenu}\n value={value}\n triggerRef={triggerRef}\n contentRef={contentRef}\n focusProxyRef={focusProxyRef}\n onEntryKeyDown={handleContentEntry}\n onFocusProxyEnter={handleContentEntry}\n onRootContentClose={handleContentExit}\n onContentFocusOutside={handleContentExit}\n >\n <Primitive.li {...itemProps} ref={forwardedRef} />\n </NavigationMenuItemContextProvider>\n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps<NavigationMenuTriggerProps>, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuTriggerElement>(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n <Collection.ItemSlot scope={__scopeNavigationMenu} value={itemContext.value}>\n <FocusGroupItem asChild>\n <Primitive.button\n id={triggerId}\n disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n data-state={getOpenState(open)}\n aria-expanded={open}\n aria-controls={contentId}\n {...triggerProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n wasClickCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (disabled || wasClickCloseRef.current) return;\n context.onItemOver(itemContext.value);\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onItemLeave();\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n </FocusGroupItem>\n </Collection.ItemSlot>\n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n <VisuallyHiddenPrimitive.Root\n aria-hidden\n tabIndex={0}\n ref={itemContext.focusProxyRef}\n onFocus={(event) => {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && <span aria-owns={contentId} />}\n </>\n )}\n </>\n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\n\ntype NavigationMenuLinkElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface NavigationMenuLinkProps extends PrimitiveLinkProps {\n active?: boolean;\n}\n\nconst NavigationMenuLink = React.forwardRef<NavigationMenuLinkElement, NavigationMenuLinkProps>(\n (props: ScopedProps<NavigationMenuLinkProps>, forwardedRef) => {\n const { __scopeNavigationMenu, active, ...linkProps } = props;\n\n return (\n <FocusGroupItem asChild>\n <Primitive.a\n data-active={active ? '' : undefined}\n aria-current={active ? 'page' : undefined}\n {...linkProps}\n ref={forwardedRef}\n />\n </FocusGroupItem>\n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps<NavigationMenuIndicatorProps>, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n <Presence present={forceMount || isVisible}>\n <NavigationMenuIndicatorImpl {...indicatorProps} ref={forwardedRef} />\n </Presence>,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps<NavigationMenuIndicatorImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState<NavigationMenuTriggerElement | null>(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n <Primitive.div\n aria-hidden\n data-state={isVisible ? 'visible' : 'hidden'}\n data-orientation={context.orientation}\n {...indicatorProps}\n ref={forwardedRef}\n style={{\n position: 'absolute',\n ...(isHorizontal\n ? {\n left: 0,\n width: position.size + 'px',\n transform: `translateX(${position.offset}px)`,\n }\n : {\n top: 0,\n height: position.size + 'px',\n transform: `translateY(${position.offset}px)`,\n }),\n ...indicatorProps.style,\n }}\n />\n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit<NavigationMenuContentImplProps, keyof NavigationMenuContentImplPrivateProps> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps<NavigationMenuContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n <Presence present={forceMount || open}>\n <NavigationMenuContentImpl\n data-state={getOpenState(open)}\n {...commonProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(itemContext.value);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ...commonProps.style,\n }}\n />\n </Presence>\n ) : (\n <ViewportContentMounter forceMount={forceMount} {...commonProps} ref={composedRefs} />\n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps<ViewportContentMounterProps>, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_DISMISS = 'navigationMenu.contentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ElementRef<typeof DismissableLayer>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit<DismissableLayerProps, 'onDismiss'>,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps<NavigationMenuContentImplProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuContentImplElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef<MotionAttribute | null>(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n <FocusGroup asChild>\n <DismissableLayer\n id={contentId}\n aria-labelledby={triggerId}\n data-motion={motionAttribute}\n data-orientation={context.orientation}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => {\n const contentDismissEvent = new Event(CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(contentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n />\n </FocusGroup>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit<NavigationMenuViewportImplProps, 'children' | 'activeContentValue'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps<NavigationMenuViewportProps>, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n <Presence present={forceMount || open}>\n <NavigationMenuViewportImpl {...viewportProps} ref={forwardedRef} />\n </Presence>\n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps<NavigationMenuViewportImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState<NavigationMenuContentElement | null>(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n <Primitive.div\n data-state={getOpenState(open)}\n data-orientation={context.orientation}\n {...viewportImplProps}\n ref={composedRefs}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ['--radix-navigation-menu-viewport-width' as any]: viewportWidth,\n ['--radix-navigation-menu-viewport-height' as any]: viewportHeight,\n ...viewportImplProps.style,\n }}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(activeContentValue);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n >\n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n <Presence key={value} present={forceMount || isActive}>\n <NavigationMenuContentImpl\n {...props}\n ref={composeRefs(ref, (node) => {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n </Presence>\n );\n })}\n </Primitive.div>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ElementRef<typeof Primitive.div>;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef<FocusGroupElement, FocusGroupProps>(\n (props: ScopedProps<FocusGroupProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.Provider scope={__scopeNavigationMenu}>\n <FocusGroupCollection.Slot scope={__scopeNavigationMenu}>\n <Primitive.div dir={context.dir} {...groupProps} ref={forwardedRef} />\n </FocusGroupCollection.Slot>\n </FocusGroupCollection.Provider>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ElementRef<typeof Primitive.button>;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef<FocusGroupItemElement, FocusGroupItemProps>(\n (props: ScopedProps<FocusGroupItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.ItemSlot scope={__scopeNavigationMenu}>\n <Primitive.button\n {...groupProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n </FocusGroupCollection.ItemSlot>\n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\n\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n"],"names":["React","ReactDOM","createContextScope","composeEventHandlers","Primitive","useControllableState","composeRefs","useComposedRefs","useDirection","Presence","useId","createCollection","DismissableLayer","usePrevious","useLayoutEffect","useCallbackRef","VisuallyHiddenPrimitive","NAVIGATION_MENU_NAME","Collection","useCollection","createCollectionScope","FocusGroupCollection","useFocusGroupCollection","createFocusGroupCollectionScope","createNavigationMenuContext","createNavigationMenuScope","NavigationMenuProviderImpl","useNavigationMenuContext","ViewportContentProvider","useViewportContentContext","NavigationMenu","forwardRef","props","forwardedRef","__scopeNavigationMenu","value","onValueChange","defaultValue","orientation","dir","NavigationMenuProps","navigationMenu","setNavigationMenu","useState","composedRef","node","direction","SUB_NAME","NavigationMenuSub","subProps","context","rootNavigationMenu","NavigationMenuProvider","scope","isRootMenu","valueProp","children","viewport","setViewport","viewportContent","setViewportContent","Map","indicatorTrack","setIndicatorTrack","closeTimerRef","useRef","setValue","prop","onChange","defaultProp","useEffect","window","clearTimeout","current","useCallback","itemValue","setTimeout","prevValue","contentValue","contentData","prevContent","set","has","delete","LIST_NAME","NavigationMenuList","listProps","list","position","onIndicatorTrackChange","ITEM_NAME","NavigationMenuItemContextProvider","useNavigationMenuItemContext","NavigationMenuItem","itemProps","autoValue","contentRef","triggerRef","focusProxyRef","restoreContentTabOrderRef","handleContentEntry","side","candidates","getTabbableCandidates","length","focusFirst","reverse","handleContentExit","removeFromTabOrder","TRIGGER_NAME","NavigationMenuTrigger","disabled","triggerProps","itemContext","ref","composedRefs","triggerId","makeTriggerId","baseId","contentId","makeContentId","wasClickCloseRef","open","undefined","getOpenState","onPointerEnter","onPointerMove","whenMouse","onItemOver","onPointerLeave","onItemLeave","onClick","onItemSelect","onKeyDown","event","verticalEntryKey","entryKey","horizontal","vertical","key","onEntryKeyDown","preventDefault","content","prevFocusedElement","relatedTarget","wasTriggerFocused","wasFocusFromContent","contains","onFocusProxyEnter","LINK_NAME","NavigationMenuLink","active","linkProps","INDICATOR_NAME","NavigationMenuIndicator","forceMount","indicatorProps","isVisible","Boolean","createPortal","NavigationMenuIndicatorImpl","getItems","activeTrigger","setActiveTrigger","setPosition","isHorizontal","items","triggerNode","find","item","handlePositionChange","size","offsetWidth","offsetHeight","offset","offsetLeft","offsetTop","useResizeObserver","left","width","transform","top","height","style","CONTENT_NAME","NavigationMenuContent","contentProps","commonProps","onContentFocusOutside","onRootContentClose","pointerEvents","ViewportContentMounter","onViewportContentChange","onViewportContentRemove","CONTENT_DISMISS","NavigationMenuContentImpl","prevMotionAttributeRef","onItemDismiss","handleClose","document","activeElement","focus","addEventListener","removeEventListener","motionAttribute","useMemo","values","map","index","indexOf","prevIndex","previousValue","isSelected","wasSelected","attribute","contentDismissEvent","Event","bubbles","cancelable","dispatchEvent","onFocusOutside","target","onPointerDownOutside","isTrigger","some","isRootViewport","isMetaKey","altKey","ctrlKey","metaKey","isTabKey","currentTarget","focusedElement","findIndex","candidate","isMovingBackwards","shiftKey","nextCandidates","slice","VIEWPORT_NAME","NavigationMenuViewport","viewportProps","NavigationMenuViewportImpl","viewportImplProps","onViewportChange","viewportContentContext","setSize","setContent","viewportWidth","viewportHeight","activeContentValue","handleSizeChange","Array","from","isActive","FOCUS_GROUP_NAME","FocusGroup","groupProps","ARROW_KEYS","FOCUS_GROUP_ITEM_NAME","FocusGroupItem","isFocusNavigationKey","includes","candidateNodes","prevItemKey","prevKeys","currentIndex","container","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","previouslyFocusedElement","forEach","dataset","tabindex","getAttribute","setAttribute","prevTabIndex","element","onResize","handleResize","rAF","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","unobserve","handler","pointerType","Root","Sub","List","Item","Trigger","Link","Indicator","Content","Viewport"],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["packages/react/navigation-menu/src/index.ts","packages/react/navigation-menu/src/NavigationMenu.tsx"],"sourcesContent":["export {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n} from './NavigationMenu';\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n} from './NavigationMenu';\n","/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection<FocusGroupItemElement, {}>(NAVIGATION_MENU_NAME);\n\ntype ScopedProps<P> = P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref<ViewportContentMounterElement>;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onItemOver(itemValue: string): void;\n onItemLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext<NavigationMenuContextValue>(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map<string, ContentData>;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ElementRef<typeof Primitive.nav>;\ntype PrimitiveNavProps = Radix.ComponentPropsWithoutRef<typeof Primitive.nav>;\ninterface NavigationMenuProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveNavProps, 'defaultValue'> {\n dir?: Direction;\n orientation?: Orientation;\n}\n\nconst NavigationMenu = React.forwardRef<NavigationMenuElement, NavigationMenuProps>(\n (props: ScopedProps<NavigationMenuProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState<NavigationMenuElement | null>(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={true}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={direction}\n orientation={orientation}\n rootNavigationMenu={navigationMenu}\n >\n <Primitive.nav\n aria-label=\"Main\"\n data-orientation={orientation}\n dir={direction}\n {...NavigationMenuProps}\n ref={composedRef}\n />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface NavigationMenuSubProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveDivProps, 'defaultValue'> {\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef<NavigationMenuSubElement, NavigationMenuSubProps>(\n (props: ScopedProps<NavigationMenuSubProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={false}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={context.dir}\n orientation={orientation}\n rootNavigationMenu={context.rootNavigationMenu}\n >\n <Primitive.div data-orientation={orientation} {...subProps} ref={forwardedRef} />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst NavigationMenuProvider: React.FC<NavigationMenuProviderProps> = (\n props: ScopedProps<NavigationMenuProviderProps>\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n dir,\n orientation,\n children,\n } = props;\n const [viewport, setViewport] = React.useState<NavigationMenuViewportElement | null>(null);\n const [viewportContent, setViewportContent] = React.useState<Map<string, ContentData>>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState<HTMLDivElement | null>(null);\n const closeTimerRef = React.useRef(0);\n const [value = '', setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n React.useEffect(() => {\n return () => window.clearTimeout(closeTimerRef.current);\n }, [closeTimerRef]);\n\n return (\n <NavigationMenuProviderImpl\n scope={scope}\n isRootMenu={isRootMenu}\n rootNavigationMenu={rootNavigationMenu}\n value={value}\n previousValue={usePrevious(value)}\n baseId={useId()}\n dir={dir}\n orientation={orientation}\n viewport={viewport}\n onViewportChange={setViewport}\n indicatorTrack={indicatorTrack}\n onIndicatorTrackChange={setIndicatorTrack}\n onItemOver={React.useCallback(\n (itemValue) => {\n if (isRootMenu) window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue, isRootMenu]\n )}\n onItemLeave={React.useCallback(() => {\n if (isRootMenu) {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }\n }, [setValue, isRootMenu])}\n onItemSelect={React.useCallback(\n (itemValue) => {\n setValue((prevValue) => {\n return isRootMenu ? (prevValue === itemValue ? '' : itemValue) : itemValue;\n });\n },\n [setValue, isRootMenu]\n )}\n onItemDismiss={React.useCallback(() => setValue(''), [setValue])}\n onViewportContentChange={React.useCallback((contentValue, contentData) => {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n <Collection.Provider scope={scope}>\n <ViewportContentProvider scope={scope} items={viewportContent}>\n {children}\n </ViewportContentProvider>\n </Collection.Provider>\n </NavigationMenuProviderImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ElementRef<typeof Primitive.ul>;\ntype PrimitiveUnorderedListProps = Radix.ComponentPropsWithoutRef<typeof Primitive.ul>;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef<NavigationMenuListElement, NavigationMenuListProps>(\n (props: ScopedProps<NavigationMenuListProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n <Primitive.ul data-orientation={context.orientation} {...listProps} ref={forwardedRef} />\n );\n\n return (\n <Primitive.div style={{ position: 'relative' }} ref={context.onIndicatorTrackChange}>\n <Collection.Slot scope={__scopeNavigationMenu}>\n {context.isRootMenu ? <FocusGroup asChild>{list}</FocusGroup> : list}\n </Collection.Slot>\n </Primitive.div>\n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ElementRef<typeof VisuallyHiddenPrimitive.Root>;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n contentRef: React.RefObject<NavigationMenuContentElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext<NavigationMenuItemContextValue>(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ElementRef<typeof Primitive.li>;\ntype PrimitiveListItemProps = Radix.ComponentPropsWithoutRef<typeof Primitive.li>;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef<NavigationMenuItemElement, NavigationMenuItemProps>(\n (props: ScopedProps<NavigationMenuItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef<NavigationMenuContentElement>(null);\n const triggerRef = React.useRef<NavigationMenuTriggerElement>(null);\n const focusProxyRef = React.useRef<FocusProxyElement>(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n <NavigationMenuItemContextProvider\n scope={__scopeNavigationMenu}\n value={value}\n triggerRef={triggerRef}\n contentRef={contentRef}\n focusProxyRef={focusProxyRef}\n onEntryKeyDown={handleContentEntry}\n onFocusProxyEnter={handleContentEntry}\n onRootContentClose={handleContentExit}\n onContentFocusOutside={handleContentExit}\n >\n <Primitive.li {...itemProps} ref={forwardedRef} />\n </NavigationMenuItemContextProvider>\n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps<NavigationMenuTriggerProps>, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuTriggerElement>(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n <Collection.ItemSlot scope={__scopeNavigationMenu} value={itemContext.value}>\n <FocusGroupItem asChild>\n <Primitive.button\n id={triggerId}\n disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n data-state={getOpenState(open)}\n aria-expanded={open}\n aria-controls={contentId}\n {...triggerProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n wasClickCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (disabled || wasClickCloseRef.current) return;\n context.onItemOver(itemContext.value);\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onItemLeave();\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n </FocusGroupItem>\n </Collection.ItemSlot>\n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n <VisuallyHiddenPrimitive.Root\n aria-hidden\n tabIndex={0}\n ref={itemContext.focusProxyRef}\n onFocus={(event) => {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && <span aria-owns={contentId} />}\n </>\n )}\n </>\n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\nconst LINK_SELECT = 'navigationMenu.linkSelect';\n\ntype NavigationMenuLinkElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface NavigationMenuLinkProps extends Omit<PrimitiveLinkProps, 'onSelect'> {\n active?: boolean;\n onSelect?: (event: Event) => void;\n}\n\nconst NavigationMenuLink = React.forwardRef<NavigationMenuLinkElement, NavigationMenuLinkProps>(\n (props: ScopedProps<NavigationMenuLinkProps>, forwardedRef) => {\n const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;\n\n return (\n <FocusGroupItem asChild>\n <Primitive.a\n data-active={active ? '' : undefined}\n aria-current={active ? 'page' : undefined}\n {...linkProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(\n props.onClick,\n (event) => {\n const target = event.target as HTMLElement;\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n });\n target.addEventListener(LINK_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(target, linkSelectEvent);\n\n if (!linkSelectEvent.defaultPrevented) {\n const rootContentDismissEvent = new CustomEvent(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n dispatchDiscreteCustomEvent(target, rootContentDismissEvent);\n }\n },\n { checkForDefaultPrevented: false }\n )}\n />\n </FocusGroupItem>\n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps<NavigationMenuIndicatorProps>, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n <Presence present={forceMount || isVisible}>\n <NavigationMenuIndicatorImpl {...indicatorProps} ref={forwardedRef} />\n </Presence>,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps<NavigationMenuIndicatorImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState<NavigationMenuTriggerElement | null>(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n <Primitive.div\n aria-hidden\n data-state={isVisible ? 'visible' : 'hidden'}\n data-orientation={context.orientation}\n {...indicatorProps}\n ref={forwardedRef}\n style={{\n position: 'absolute',\n ...(isHorizontal\n ? {\n left: 0,\n width: position.size + 'px',\n transform: `translateX(${position.offset}px)`,\n }\n : {\n top: 0,\n height: position.size + 'px',\n transform: `translateY(${position.offset}px)`,\n }),\n ...indicatorProps.style,\n }}\n />\n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit<NavigationMenuContentImplProps, keyof NavigationMenuContentImplPrivateProps> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps<NavigationMenuContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n <Presence present={forceMount || open}>\n <NavigationMenuContentImpl\n data-state={getOpenState(open)}\n {...commonProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(itemContext.value);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ...commonProps.style,\n }}\n />\n </Presence>\n ) : (\n <ViewportContentMounter forceMount={forceMount} {...commonProps} ref={composedRefs} />\n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps<ViewportContentMounterProps>, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ElementRef<typeof DismissableLayer>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit<DismissableLayerProps, 'onDismiss'>,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps<NavigationMenuContentImplProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuContentImplElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef<MotionAttribute | null>(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n <FocusGroup asChild>\n <DismissableLayer\n id={contentId}\n aria-labelledby={triggerId}\n data-motion={motionAttribute}\n data-orientation={context.orientation}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => {\n const rootContentDismissEvent = new Event(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(rootContentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n />\n </FocusGroup>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit<NavigationMenuViewportImplProps, 'children' | 'activeContentValue'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps<NavigationMenuViewportProps>, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n <Presence present={forceMount || open}>\n <NavigationMenuViewportImpl {...viewportProps} ref={forwardedRef} />\n </Presence>\n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps<NavigationMenuViewportImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState<NavigationMenuContentElement | null>(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n <Primitive.div\n data-state={getOpenState(open)}\n data-orientation={context.orientation}\n {...viewportImplProps}\n ref={composedRefs}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ['--radix-navigation-menu-viewport-width' as any]: viewportWidth,\n ['--radix-navigation-menu-viewport-height' as any]: viewportHeight,\n ...viewportImplProps.style,\n }}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(activeContentValue);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n >\n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n <Presence key={value} present={forceMount || isActive}>\n <NavigationMenuContentImpl\n {...props}\n ref={composeRefs(ref, (node) => {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n </Presence>\n );\n })}\n </Primitive.div>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ElementRef<typeof Primitive.div>;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef<FocusGroupElement, FocusGroupProps>(\n (props: ScopedProps<FocusGroupProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.Provider scope={__scopeNavigationMenu}>\n <FocusGroupCollection.Slot scope={__scopeNavigationMenu}>\n <Primitive.div dir={context.dir} {...groupProps} ref={forwardedRef} />\n </FocusGroupCollection.Slot>\n </FocusGroupCollection.Provider>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ElementRef<typeof Primitive.button>;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef<FocusGroupItemElement, FocusGroupItemProps>(\n (props: ScopedProps<FocusGroupItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.ItemSlot scope={__scopeNavigationMenu}>\n <Primitive.button\n {...groupProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n </FocusGroupCollection.ItemSlot>\n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n"],"names":["createNavigationMenuScope","NavigationMenu","NavigationMenuSub","NavigationMenuList","NavigationMenuItem","NavigationMenuTrigger","NavigationMenuLink","NavigationMenuIndicator","NavigationMenuContent","NavigationMenuViewport","Root","Sub","List","Item","Trigger","Link","Indicator","Content","Viewport","React","ReactDOM","createContextScope","composeEventHandlers","Primitive","dispatchDiscreteCustomEvent","useControllableState","composeRefs","useComposedRefs","useDirection","Presence","useId","createCollection","DismissableLayer","usePrevious","useLayoutEffect","useCallbackRef","VisuallyHiddenPrimitive","NAVIGATION_MENU_NAME","Collection","useCollection","createCollectionScope","FocusGroupCollection","useFocusGroupCollection","createFocusGroupCollectionScope","createNavigationMenuContext","NavigationMenuProviderImpl","useNavigationMenuContext","ViewportContentProvider","useViewportContentContext","forwardRef","props","forwardedRef","__scopeNavigationMenu","value","onValueChange","defaultValue","orientation","dir","NavigationMenuProps","navigationMenu","setNavigationMenu","useState","composedRef","node","direction","SUB_NAME","subProps","context","rootNavigationMenu","NavigationMenuProvider","scope","isRootMenu","valueProp","children","viewport","setViewport","viewportContent","setViewportContent","Map","indicatorTrack","setIndicatorTrack","closeTimerRef","useRef","setValue","prop","onChange","defaultProp","useEffect","window","clearTimeout","current","useCallback","itemValue","setTimeout","prevValue","contentValue","contentData","prevContent","set","has","delete","LIST_NAME","listProps","list","position","onIndicatorTrackChange","ITEM_NAME","NavigationMenuItemContextProvider","useNavigationMenuItemContext","itemProps","autoValue","contentRef","triggerRef","focusProxyRef","restoreContentTabOrderRef","handleContentEntry","side","candidates","getTabbableCandidates","length","focusFirst","reverse","handleContentExit","removeFromTabOrder","TRIGGER_NAME","disabled","triggerProps","itemContext","ref","composedRefs","triggerId","makeTriggerId","baseId","contentId","makeContentId","wasClickCloseRef","open","undefined","getOpenState","onPointerEnter","onPointerMove","whenMouse","onItemOver","onPointerLeave","onItemLeave","onClick","onItemSelect","onKeyDown","event","verticalEntryKey","entryKey","horizontal","vertical","key","onEntryKeyDown","preventDefault","content","prevFocusedElement","relatedTarget","wasTriggerFocused","wasFocusFromContent","contains","onFocusProxyEnter","LINK_NAME","LINK_SELECT","active","onSelect","linkProps","target","linkSelectEvent","CustomEvent","bubbles","cancelable","addEventListener","once","defaultPrevented","rootContentDismissEvent","ROOT_CONTENT_DISMISS","checkForDefaultPrevented","INDICATOR_NAME","forceMount","indicatorProps","isVisible","Boolean","createPortal","NavigationMenuIndicatorImpl","getItems","activeTrigger","setActiveTrigger","setPosition","isHorizontal","items","triggerNode","find","item","handlePositionChange","size","offsetWidth","offsetHeight","offset","offsetLeft","offsetTop","useResizeObserver","left","width","transform","top","height","style","CONTENT_NAME","contentProps","commonProps","onContentFocusOutside","onRootContentClose","pointerEvents","ViewportContentMounter","onViewportContentChange","onViewportContentRemove","NavigationMenuContentImpl","prevMotionAttributeRef","onItemDismiss","handleClose","document","activeElement","focus","removeEventListener","motionAttribute","useMemo","values","map","index","indexOf","prevIndex","previousValue","isSelected","wasSelected","attribute","Event","dispatchEvent","onFocusOutside","onPointerDownOutside","isTrigger","some","isRootViewport","isMetaKey","altKey","ctrlKey","metaKey","isTabKey","currentTarget","focusedElement","findIndex","candidate","isMovingBackwards","shiftKey","nextCandidates","slice","VIEWPORT_NAME","viewportProps","NavigationMenuViewportImpl","viewportImplProps","onViewportChange","viewportContentContext","setSize","setContent","viewportWidth","viewportHeight","activeContentValue","handleSizeChange","Array","from","isActive","FOCUS_GROUP_NAME","FocusGroup","groupProps","ARROW_KEYS","FOCUS_GROUP_ITEM_NAME","FocusGroupItem","isFocusNavigationKey","includes","candidateNodes","prevItemKey","prevKeys","currentIndex","container","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","previouslyFocusedElement","forEach","dataset","tabindex","getAttribute","setAttribute","prevTabIndex","element","onResize","handleResize","rAF","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","unobserve","handler","pointerType"],"version":3,"file":"index.js.map"}
@@ -3,7 +3,7 @@ import {forwardRef as $yHMN2$forwardRef, useState as $yHMN2$useState, createElem
3
3
  import $yHMN2$reactdom from "react-dom";
4
4
  import {createContextScope as $yHMN2$createContextScope} from "@radix-ui/react-context";
5
5
  import {composeEventHandlers as $yHMN2$composeEventHandlers} from "@radix-ui/primitive";
6
- import {Primitive as $yHMN2$Primitive} from "@radix-ui/react-primitive";
6
+ import {Primitive as $yHMN2$Primitive, dispatchDiscreteCustomEvent as $yHMN2$dispatchDiscreteCustomEvent} from "@radix-ui/react-primitive";
7
7
  import {useControllableState as $yHMN2$useControllableState} from "@radix-ui/react-use-controllable-state";
8
8
  import {useComposedRefs as $yHMN2$useComposedRefs, composeRefs as $yHMN2$composeRefs} from "@radix-ui/react-compose-refs";
9
9
  import {useDirection as $yHMN2$useDirection} from "@radix-ui/react-direction";
@@ -16,30 +16,6 @@ import {useLayoutEffect as $yHMN2$useLayoutEffect} from "@radix-ui/react-use-lay
16
16
  import {useCallbackRef as $yHMN2$useCallbackRef} from "@radix-ui/react-use-callback-ref";
17
17
  import {Root as $yHMN2$Root} from "@radix-ui/react-visually-hidden";
18
18
 
19
- function $parcel$export(e, n, v, s) {
20
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
21
- }
22
- var $322c88a641701f3b$exports = {};
23
-
24
- $parcel$export($322c88a641701f3b$exports, "createNavigationMenuScope", () => $322c88a641701f3b$export$fb8ea5af8c9fcdf0);
25
- $parcel$export($322c88a641701f3b$exports, "NavigationMenu", () => $322c88a641701f3b$export$5b2278cf1e8bcae2);
26
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuSub", () => $322c88a641701f3b$export$5958edd6c4ee7c79);
27
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuList", () => $322c88a641701f3b$export$c361068a95fd2286);
28
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuItem", () => $322c88a641701f3b$export$ffdbb83a2de845c2);
29
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuTrigger", () => $322c88a641701f3b$export$37fe8002734d8f2);
30
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuLink", () => $322c88a641701f3b$export$6893bf21536567da);
31
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuIndicator", () => $322c88a641701f3b$export$8ddb526647c0d8fb);
32
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuContent", () => $322c88a641701f3b$export$38e00e996c2f93f7);
33
- $parcel$export($322c88a641701f3b$exports, "NavigationMenuViewport", () => $322c88a641701f3b$export$ee880b97cc6d44a5);
34
- $parcel$export($322c88a641701f3b$exports, "Root", () => $322c88a641701f3b$export$be92b6f5f03c0fe9);
35
- $parcel$export($322c88a641701f3b$exports, "Sub", () => $322c88a641701f3b$export$d7a01e11500dfb6f);
36
- $parcel$export($322c88a641701f3b$exports, "List", () => $322c88a641701f3b$export$54c2e3dc7acea9f5);
37
- $parcel$export($322c88a641701f3b$exports, "Item", () => $322c88a641701f3b$export$6d08773d2e66f8f2);
38
- $parcel$export($322c88a641701f3b$exports, "Trigger", () => $322c88a641701f3b$export$41fb9f06171c75f4);
39
- $parcel$export($322c88a641701f3b$exports, "Link", () => $322c88a641701f3b$export$a6c7ac8248d6e38a);
40
- $parcel$export($322c88a641701f3b$exports, "Indicator", () => $322c88a641701f3b$export$adb584737d712b70);
41
- $parcel$export($322c88a641701f3b$exports, "Content", () => $322c88a641701f3b$export$7c6e2c02157bb7d2);
42
- $parcel$export($322c88a641701f3b$exports, "Viewport", () => $322c88a641701f3b$export$d5c6c08dc2d3ca7);
43
19
 
44
20
 
45
21
 
@@ -339,15 +315,37 @@ const $322c88a641701f3b$export$37fe8002734d8f2 = /*#__PURE__*/ $yHMN2$forwardRef
339
315
  /* -------------------------------------------------------------------------------------------------
340
316
  * NavigationMenuLink
341
317
  * -----------------------------------------------------------------------------------------------*/ const $322c88a641701f3b$var$LINK_NAME = 'NavigationMenuLink';
318
+ const $322c88a641701f3b$var$LINK_SELECT = 'navigationMenu.linkSelect';
342
319
  const $322c88a641701f3b$export$6893bf21536567da = /*#__PURE__*/ $yHMN2$forwardRef((props, forwardedRef)=>{
343
- const { __scopeNavigationMenu: __scopeNavigationMenu , active: active , ...linkProps } = props;
320
+ const { __scopeNavigationMenu: __scopeNavigationMenu , active: active , onSelect: onSelect , ...linkProps } = props;
344
321
  return /*#__PURE__*/ $yHMN2$createElement($322c88a641701f3b$var$FocusGroupItem, {
345
322
  asChild: true
346
323
  }, /*#__PURE__*/ $yHMN2$createElement($yHMN2$Primitive.a, $yHMN2$babelruntimehelpersesmextends({
347
324
  "data-active": active ? '' : undefined,
348
325
  "aria-current": active ? 'page' : undefined
349
326
  }, linkProps, {
350
- ref: forwardedRef
327
+ ref: forwardedRef,
328
+ onClick: $yHMN2$composeEventHandlers(props.onClick, (event1)=>{
329
+ const target = event1.target;
330
+ const linkSelectEvent = new CustomEvent($322c88a641701f3b$var$LINK_SELECT, {
331
+ bubbles: true,
332
+ cancelable: true
333
+ });
334
+ target.addEventListener($322c88a641701f3b$var$LINK_SELECT, (event)=>onSelect === null || onSelect === void 0 ? void 0 : onSelect(event)
335
+ , {
336
+ once: true
337
+ });
338
+ $yHMN2$dispatchDiscreteCustomEvent(target, linkSelectEvent);
339
+ if (!linkSelectEvent.defaultPrevented) {
340
+ const rootContentDismissEvent = new CustomEvent($322c88a641701f3b$var$ROOT_CONTENT_DISMISS, {
341
+ bubbles: true,
342
+ cancelable: true
343
+ });
344
+ $yHMN2$dispatchDiscreteCustomEvent(target, rootContentDismissEvent);
345
+ }
346
+ }, {
347
+ checkForDefaultPrevented: false
348
+ })
351
349
  })));
352
350
  });
353
351
  /*#__PURE__*/ Object.assign($322c88a641701f3b$export$6893bf21536567da, {
@@ -482,7 +480,7 @@ const $322c88a641701f3b$export$38e00e996c2f93f7 = /*#__PURE__*/ $yHMN2$forwardRe
482
480
  ]); // Content is proxied into the viewport
483
481
  return null;
484
482
  });
485
- /* -----------------------------------------------------------------------------------------------*/ const $322c88a641701f3b$var$CONTENT_DISMISS = 'navigationMenu.contentDismiss';
483
+ /* -----------------------------------------------------------------------------------------------*/ const $322c88a641701f3b$var$ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';
486
484
  const $322c88a641701f3b$var$NavigationMenuContentImpl = /*#__PURE__*/ $yHMN2$forwardRef((props, forwardedRef)=>{
487
485
  const { __scopeNavigationMenu: __scopeNavigationMenu , value: value , triggerRef: triggerRef , focusProxyRef: focusProxyRef , onRootContentClose: onRootContentClose , onContentFocusOutside: onContentFocusOutside , ...contentProps } = props;
488
486
  const context = $322c88a641701f3b$var$useNavigationMenuContext($322c88a641701f3b$var$CONTENT_NAME, __scopeNavigationMenu);
@@ -502,8 +500,8 @@ const $322c88a641701f3b$var$NavigationMenuContentImpl = /*#__PURE__*/ $yHMN2$for
502
500
  onRootContentClose();
503
501
  if (content.contains(document.activeElement)) (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || _triggerRef$current.focus();
504
502
  };
505
- content.addEventListener($322c88a641701f3b$var$CONTENT_DISMISS, handleClose);
506
- return ()=>content.removeEventListener($322c88a641701f3b$var$CONTENT_DISMISS, handleClose)
503
+ content.addEventListener($322c88a641701f3b$var$ROOT_CONTENT_DISMISS, handleClose);
504
+ return ()=>content.removeEventListener($322c88a641701f3b$var$ROOT_CONTENT_DISMISS, handleClose)
507
505
  ;
508
506
  }
509
507
  }, [
@@ -554,11 +552,11 @@ const $322c88a641701f3b$var$NavigationMenuContentImpl = /*#__PURE__*/ $yHMN2$for
554
552
  ref: composedRefs,
555
553
  onDismiss: ()=>{
556
554
  var _ref$current;
557
- const contentDismissEvent = new Event($322c88a641701f3b$var$CONTENT_DISMISS, {
555
+ const rootContentDismissEvent = new Event($322c88a641701f3b$var$ROOT_CONTENT_DISMISS, {
558
556
  bubbles: true,
559
557
  cancelable: true
560
558
  });
561
- (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.dispatchEvent(contentDismissEvent);
559
+ (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.dispatchEvent(rootContentDismissEvent);
562
560
  },
563
561
  onFocusOutside: $yHMN2$composeEventHandlers(props.onFocusOutside, (event)=>{
564
562
  var _context$rootNavigati;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/navigation-menu/src/index.ts","packages/react/navigation-menu/src/NavigationMenu.tsx"],"sourcesContent":["export * from './NavigationMenu';\n","/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection<FocusGroupItemElement, {}>(NAVIGATION_MENU_NAME);\n\ntype ScopedProps<P> = P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref<ViewportContentMounterElement>;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onItemOver(itemValue: string): void;\n onItemLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext<NavigationMenuContextValue>(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map<string, ContentData>;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ElementRef<typeof Primitive.nav>;\ntype PrimitiveNavProps = Radix.ComponentPropsWithoutRef<typeof Primitive.nav>;\ninterface NavigationMenuProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveNavProps, 'defaultValue'> {\n dir?: Direction;\n orientation?: Orientation;\n}\n\nconst NavigationMenu = React.forwardRef<NavigationMenuElement, NavigationMenuProps>(\n (props: ScopedProps<NavigationMenuProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState<NavigationMenuElement | null>(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={true}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={direction}\n orientation={orientation}\n rootNavigationMenu={navigationMenu}\n >\n <Primitive.nav\n aria-label=\"Main\"\n data-orientation={orientation}\n dir={direction}\n {...NavigationMenuProps}\n ref={composedRef}\n />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface NavigationMenuSubProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveDivProps, 'defaultValue'> {\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef<NavigationMenuSubElement, NavigationMenuSubProps>(\n (props: ScopedProps<NavigationMenuSubProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={false}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={context.dir}\n orientation={orientation}\n rootNavigationMenu={context.rootNavigationMenu}\n >\n <Primitive.div data-orientation={orientation} {...subProps} ref={forwardedRef} />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst NavigationMenuProvider: React.FC<NavigationMenuProviderProps> = (\n props: ScopedProps<NavigationMenuProviderProps>\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n dir,\n orientation,\n children,\n } = props;\n const [viewport, setViewport] = React.useState<NavigationMenuViewportElement | null>(null);\n const [viewportContent, setViewportContent] = React.useState<Map<string, ContentData>>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState<HTMLDivElement | null>(null);\n const closeTimerRef = React.useRef(0);\n const [value = '', setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n React.useEffect(() => {\n return () => window.clearTimeout(closeTimerRef.current);\n }, [closeTimerRef]);\n\n return (\n <NavigationMenuProviderImpl\n scope={scope}\n isRootMenu={isRootMenu}\n rootNavigationMenu={rootNavigationMenu}\n value={value}\n previousValue={usePrevious(value)}\n baseId={useId()}\n dir={dir}\n orientation={orientation}\n viewport={viewport}\n onViewportChange={setViewport}\n indicatorTrack={indicatorTrack}\n onIndicatorTrackChange={setIndicatorTrack}\n onItemOver={React.useCallback(\n (itemValue) => {\n if (isRootMenu) window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue, isRootMenu]\n )}\n onItemLeave={React.useCallback(() => {\n if (isRootMenu) {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }\n }, [setValue, isRootMenu])}\n onItemSelect={React.useCallback(\n (itemValue) => {\n setValue((prevValue) => {\n return isRootMenu ? (prevValue === itemValue ? '' : itemValue) : itemValue;\n });\n },\n [setValue, isRootMenu]\n )}\n onItemDismiss={React.useCallback(() => setValue(''), [setValue])}\n onViewportContentChange={React.useCallback((contentValue, contentData) => {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n <Collection.Provider scope={scope}>\n <ViewportContentProvider scope={scope} items={viewportContent}>\n {children}\n </ViewportContentProvider>\n </Collection.Provider>\n </NavigationMenuProviderImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ElementRef<typeof Primitive.ul>;\ntype PrimitiveUnorderedListProps = Radix.ComponentPropsWithoutRef<typeof Primitive.ul>;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef<NavigationMenuListElement, NavigationMenuListProps>(\n (props: ScopedProps<NavigationMenuListProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n <Primitive.ul data-orientation={context.orientation} {...listProps} ref={forwardedRef} />\n );\n\n return (\n <Primitive.div style={{ position: 'relative' }} ref={context.onIndicatorTrackChange}>\n <Collection.Slot scope={__scopeNavigationMenu}>\n {context.isRootMenu ? <FocusGroup asChild>{list}</FocusGroup> : list}\n </Collection.Slot>\n </Primitive.div>\n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ElementRef<typeof VisuallyHiddenPrimitive.Root>;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n contentRef: React.RefObject<NavigationMenuContentElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext<NavigationMenuItemContextValue>(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ElementRef<typeof Primitive.li>;\ntype PrimitiveListItemProps = Radix.ComponentPropsWithoutRef<typeof Primitive.li>;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef<NavigationMenuItemElement, NavigationMenuItemProps>(\n (props: ScopedProps<NavigationMenuItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef<NavigationMenuContentElement>(null);\n const triggerRef = React.useRef<NavigationMenuTriggerElement>(null);\n const focusProxyRef = React.useRef<FocusProxyElement>(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n <NavigationMenuItemContextProvider\n scope={__scopeNavigationMenu}\n value={value}\n triggerRef={triggerRef}\n contentRef={contentRef}\n focusProxyRef={focusProxyRef}\n onEntryKeyDown={handleContentEntry}\n onFocusProxyEnter={handleContentEntry}\n onRootContentClose={handleContentExit}\n onContentFocusOutside={handleContentExit}\n >\n <Primitive.li {...itemProps} ref={forwardedRef} />\n </NavigationMenuItemContextProvider>\n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps<NavigationMenuTriggerProps>, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuTriggerElement>(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n <Collection.ItemSlot scope={__scopeNavigationMenu} value={itemContext.value}>\n <FocusGroupItem asChild>\n <Primitive.button\n id={triggerId}\n disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n data-state={getOpenState(open)}\n aria-expanded={open}\n aria-controls={contentId}\n {...triggerProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n wasClickCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (disabled || wasClickCloseRef.current) return;\n context.onItemOver(itemContext.value);\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onItemLeave();\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n </FocusGroupItem>\n </Collection.ItemSlot>\n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n <VisuallyHiddenPrimitive.Root\n aria-hidden\n tabIndex={0}\n ref={itemContext.focusProxyRef}\n onFocus={(event) => {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && <span aria-owns={contentId} />}\n </>\n )}\n </>\n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\n\ntype NavigationMenuLinkElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface NavigationMenuLinkProps extends PrimitiveLinkProps {\n active?: boolean;\n}\n\nconst NavigationMenuLink = React.forwardRef<NavigationMenuLinkElement, NavigationMenuLinkProps>(\n (props: ScopedProps<NavigationMenuLinkProps>, forwardedRef) => {\n const { __scopeNavigationMenu, active, ...linkProps } = props;\n\n return (\n <FocusGroupItem asChild>\n <Primitive.a\n data-active={active ? '' : undefined}\n aria-current={active ? 'page' : undefined}\n {...linkProps}\n ref={forwardedRef}\n />\n </FocusGroupItem>\n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps<NavigationMenuIndicatorProps>, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n <Presence present={forceMount || isVisible}>\n <NavigationMenuIndicatorImpl {...indicatorProps} ref={forwardedRef} />\n </Presence>,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps<NavigationMenuIndicatorImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState<NavigationMenuTriggerElement | null>(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n <Primitive.div\n aria-hidden\n data-state={isVisible ? 'visible' : 'hidden'}\n data-orientation={context.orientation}\n {...indicatorProps}\n ref={forwardedRef}\n style={{\n position: 'absolute',\n ...(isHorizontal\n ? {\n left: 0,\n width: position.size + 'px',\n transform: `translateX(${position.offset}px)`,\n }\n : {\n top: 0,\n height: position.size + 'px',\n transform: `translateY(${position.offset}px)`,\n }),\n ...indicatorProps.style,\n }}\n />\n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit<NavigationMenuContentImplProps, keyof NavigationMenuContentImplPrivateProps> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps<NavigationMenuContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n <Presence present={forceMount || open}>\n <NavigationMenuContentImpl\n data-state={getOpenState(open)}\n {...commonProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(itemContext.value);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ...commonProps.style,\n }}\n />\n </Presence>\n ) : (\n <ViewportContentMounter forceMount={forceMount} {...commonProps} ref={composedRefs} />\n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps<ViewportContentMounterProps>, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_DISMISS = 'navigationMenu.contentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ElementRef<typeof DismissableLayer>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit<DismissableLayerProps, 'onDismiss'>,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps<NavigationMenuContentImplProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuContentImplElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef<MotionAttribute | null>(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n <FocusGroup asChild>\n <DismissableLayer\n id={contentId}\n aria-labelledby={triggerId}\n data-motion={motionAttribute}\n data-orientation={context.orientation}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => {\n const contentDismissEvent = new Event(CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(contentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n />\n </FocusGroup>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit<NavigationMenuViewportImplProps, 'children' | 'activeContentValue'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps<NavigationMenuViewportProps>, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n <Presence present={forceMount || open}>\n <NavigationMenuViewportImpl {...viewportProps} ref={forwardedRef} />\n </Presence>\n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps<NavigationMenuViewportImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState<NavigationMenuContentElement | null>(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n <Primitive.div\n data-state={getOpenState(open)}\n data-orientation={context.orientation}\n {...viewportImplProps}\n ref={composedRefs}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ['--radix-navigation-menu-viewport-width' as any]: viewportWidth,\n ['--radix-navigation-menu-viewport-height' as any]: viewportHeight,\n ...viewportImplProps.style,\n }}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(activeContentValue);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n >\n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n <Presence key={value} present={forceMount || isActive}>\n <NavigationMenuContentImpl\n {...props}\n ref={composeRefs(ref, (node) => {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n </Presence>\n );\n })}\n </Primitive.div>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ElementRef<typeof Primitive.div>;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef<FocusGroupElement, FocusGroupProps>(\n (props: ScopedProps<FocusGroupProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.Provider scope={__scopeNavigationMenu}>\n <FocusGroupCollection.Slot scope={__scopeNavigationMenu}>\n <Primitive.div dir={context.dir} {...groupProps} ref={forwardedRef} />\n </FocusGroupCollection.Slot>\n </FocusGroupCollection.Provider>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ElementRef<typeof Primitive.button>;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef<FocusGroupItemElement, FocusGroupItemProps>(\n (props: ScopedProps<FocusGroupItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.ItemSlot scope={__scopeNavigationMenu}>\n <Primitive.button\n {...groupProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n </FocusGroupCollection.ItemSlot>\n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\n\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n"],"names":["React","ReactDOM","createContextScope","composeEventHandlers","Primitive","useControllableState","composeRefs","useComposedRefs","useDirection","Presence","useId","createCollection","DismissableLayer","usePrevious","useLayoutEffect","useCallbackRef","VisuallyHiddenPrimitive","NAVIGATION_MENU_NAME","Collection","useCollection","createCollectionScope","FocusGroupCollection","useFocusGroupCollection","createFocusGroupCollectionScope","createNavigationMenuContext","createNavigationMenuScope","NavigationMenuProviderImpl","useNavigationMenuContext","ViewportContentProvider","useViewportContentContext","NavigationMenu","forwardRef","props","forwardedRef","__scopeNavigationMenu","value","onValueChange","defaultValue","orientation","dir","NavigationMenuProps","navigationMenu","setNavigationMenu","useState","composedRef","node","direction","SUB_NAME","NavigationMenuSub","subProps","context","rootNavigationMenu","NavigationMenuProvider","scope","isRootMenu","valueProp","children","viewport","setViewport","viewportContent","setViewportContent","Map","indicatorTrack","setIndicatorTrack","closeTimerRef","useRef","setValue","prop","onChange","defaultProp","useEffect","window","clearTimeout","current","useCallback","itemValue","setTimeout","prevValue","contentValue","contentData","prevContent","set","has","delete","LIST_NAME","NavigationMenuList","listProps","list","position","onIndicatorTrackChange","ITEM_NAME","NavigationMenuItemContextProvider","useNavigationMenuItemContext","NavigationMenuItem","itemProps","autoValue","contentRef","triggerRef","focusProxyRef","restoreContentTabOrderRef","handleContentEntry","side","candidates","getTabbableCandidates","length","focusFirst","reverse","handleContentExit","removeFromTabOrder","TRIGGER_NAME","NavigationMenuTrigger","disabled","triggerProps","itemContext","ref","composedRefs","triggerId","makeTriggerId","baseId","contentId","makeContentId","wasClickCloseRef","open","undefined","getOpenState","onPointerEnter","onPointerMove","whenMouse","onItemOver","onPointerLeave","onItemLeave","onClick","onItemSelect","onKeyDown","event","verticalEntryKey","entryKey","horizontal","vertical","key","onEntryKeyDown","preventDefault","content","prevFocusedElement","relatedTarget","wasTriggerFocused","wasFocusFromContent","contains","onFocusProxyEnter","LINK_NAME","NavigationMenuLink","active","linkProps","INDICATOR_NAME","NavigationMenuIndicator","forceMount","indicatorProps","isVisible","Boolean","createPortal","NavigationMenuIndicatorImpl","getItems","activeTrigger","setActiveTrigger","setPosition","isHorizontal","items","triggerNode","find","item","handlePositionChange","size","offsetWidth","offsetHeight","offset","offsetLeft","offsetTop","useResizeObserver","left","width","transform","top","height","style","CONTENT_NAME","NavigationMenuContent","contentProps","commonProps","onContentFocusOutside","onRootContentClose","pointerEvents","ViewportContentMounter","onViewportContentChange","onViewportContentRemove","CONTENT_DISMISS","NavigationMenuContentImpl","prevMotionAttributeRef","onItemDismiss","handleClose","document","activeElement","focus","addEventListener","removeEventListener","motionAttribute","useMemo","values","map","index","indexOf","prevIndex","previousValue","isSelected","wasSelected","attribute","contentDismissEvent","Event","bubbles","cancelable","dispatchEvent","onFocusOutside","target","onPointerDownOutside","isTrigger","some","isRootViewport","isMetaKey","altKey","ctrlKey","metaKey","isTabKey","currentTarget","focusedElement","findIndex","candidate","isMovingBackwards","shiftKey","nextCandidates","slice","VIEWPORT_NAME","NavigationMenuViewport","viewportProps","NavigationMenuViewportImpl","viewportImplProps","onViewportChange","viewportContentContext","setSize","setContent","viewportWidth","viewportHeight","activeContentValue","handleSizeChange","Array","from","isActive","FOCUS_GROUP_NAME","FocusGroup","groupProps","ARROW_KEYS","FOCUS_GROUP_ITEM_NAME","FocusGroupItem","isFocusNavigationKey","includes","candidateNodes","prevItemKey","prevKeys","currentIndex","container","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","previouslyFocusedElement","forEach","dataset","tabindex","getAttribute","setAttribute","prevTabIndex","element","onResize","handleResize","rAF","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","unobserve","handler","pointerType","Root","Sub","List","Item","Trigger","Link","Indicator","Content","Viewport"],"version":3,"file":"index.module.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;ACyBA;;oGAEA,CAEA,MAAMqC,0CAAoB,GAAG,gBAA7B,AAAA;AAEA,MAAM,CAACC,gCAAD,EAAaC,mCAAb,EAA4BC,2CAA5B,CAAA,GAAqDT,uBAAgB,CAGzEM,0CAHyE,CAA3E,AAAA;AAKA,MAAM,CAACI,0CAAD,EAAuBC,6CAAvB,EAAgDC,qDAAhD,CAAA,GACJZ,uBAAgB,CAA4BM,0CAA5B,CADlB,AAAA;AAIA,MAAM,CAACO,iDAAD,EAA8B5C,yCAA9B,CAAA,GAA2DqB,yBAAkB,CACjFgB,0CADiF,EAEjF;IAACG,2CAAD;IAAwBG,qDAAxB;CAFiF,CAAnF,AAAA;AA6BA,MAAM,CAACE,gDAAD,EAA6BC,8CAA7B,CAAA,GACJF,iDAA2B,CAA6BP,0CAA7B,CAD7B,AAAA;AAGA,MAAM,CAACU,6CAAD,EAA0BC,+CAA1B,CAAA,GAAuDJ,iDAA2B,CAErFP,0CAFqF,CAAxF,AAAA;AAaA,MAAMpC,yCAAc,GAAA,aAAGkB,CAAAA,iBAAA,CACrB,CAAC+B,KAAD,EAA0CC,YAA1C,GAA2D;IACzD,MAAM,E,uBACJC,qBADI,CAAA,E,OAEJC,KAFI,CAAA,E,eAGJC,aAHI,CAAA,E,cAIJC,YAJI,CAAA,eAKJC,WAAW,GAAG,YALV,G,KAMJC,GANI,CAAA,EAOJ,GAAGC,mBAAH,EAPI,GAQFR,KARJ,AAAM;IASN,MAAM,CAACS,cAAD,EAAiBC,iBAAjB,CAAA,GAAsCzC,eAAA,CAA6C,IAA7C,CAA5C,AAAA;IACA,MAAM2C,WAAW,GAAGnC,sBAAe,CAACwB,YAAD,EAAgBY,CAAAA,IAAD,GAAUH,iBAAiB,CAACG,IAAD,CAA1C;IAAA,CAAnC,AAAA;IACA,MAAMC,SAAS,GAAGpC,mBAAY,CAAC6B,GAAD,CAA9B,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,4CAAD,EADF;QAEI,KAAK,EAAEL,qBADT;QAEE,UAAU,EAAE,IAFd;QAGE,KAAK,EAAEC,KAHT;QAIE,aAAa,EAAEC,aAJjB;QAKE,YAAY,EAAEC,YALhB;QAME,GAAG,EAAES,SANP;QAOE,WAAW,EAAER,WAPf;QAQE,kBAAkB,EAAEG,cAApB;KARF,EAAA,aAUE,CAAA,oBAAA,CAAC,gBAAD,CAAW,GAAX,EAVF,oCAAA,CAAA;QAWI,YAAA,EAAW,MADb;QAEE,kBAAA,EAAkBH,WAFpB;QAGE,GAAG,EAAEQ,SAAL;KAHF,EAIMN,mBAJN,EAAA;QAKE,GAAG,EAAEI,WAAL;KALF,CAAA,CAVF,CADF,CAWI;CA1Be,CAAvB,AAmCG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,0CAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMG,8BAAQ,GAAG,mBAAjB,AAAA;AAUA,MAAM/D,yCAAiB,GAAA,aAAGiB,CAAAA,iBAAA,CACxB,CAAC+B,KAAD,EAA6CC,YAA7C,GAA8D;IAC5D,MAAM,E,uBACJC,qBADI,CAAA,E,OAEJC,KAFI,CAAA,E,eAGJC,aAHI,CAAA,E,cAIJC,YAJI,CAAA,eAKJC,WAAW,GAAG,YALV,GAMJ,GAAGU,QAAH,EANI,GAOFhB,KAPJ,AAAM;IAQN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACmB,8BAAD,EAAWb,qBAAX,CAAxC,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,4CAAD,EADF;QAEI,KAAK,EAAEA,qBADT;QAEE,UAAU,EAAE,KAFd;QAGE,KAAK,EAAEC,KAHT;QAIE,aAAa,EAAEC,aAJjB;QAKE,YAAY,EAAEC,YALhB;QAME,GAAG,EAAEY,OAAO,CAACV,GANf;QAOE,WAAW,EAAED,WAPf;QAQE,kBAAkB,EAAEW,OAAO,CAACC,kBAA5B;KARF,EAAA,aAUE,CAAA,oBAAA,CAAC,gBAAD,CAAW,GAAX,EAVF,oCAAA,CAAA;QAUiB,kBAAA,EAAkBZ,WAAlB;KAAf,EAAkDU,QAAlD,EAAA;QAA4D,GAAG,EAAEf,YAAL;KAA5D,CAAA,CAVF,CADF,CAWI;CAvBkB,CAA1B,AA0BG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,8BAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAiBA,MAAMkB,4CAA6D,GACjEnB,CAAAA,KADoE,GAEjE;IACH,MAAM,E,OACJoB,KADI,CAAA,E,YAEJC,UAFI,CAAA,E,oBAGJH,kBAHI,CAAA,EAIJf,KAAK,EAAEmB,SAJH,CAAA,E,eAKJlB,aALI,CAAA,E,cAMJC,YANI,CAAA,E,KAOJE,GAPI,CAAA,E,aAQJD,WARI,CAAA,E,UASJiB,QAAAA,CAAAA,EATI,GAUFvB,KAVJ,AAAM;IAWN,MAAM,CAACwB,QAAD,EAAWC,WAAX,CAAA,GAA0BxD,eAAA,CAAqD,IAArD,CAAhC,AAAA;IACA,MAAM,CAACyD,eAAD,EAAkBC,kBAAlB,CAAA,GAAwC1D,eAAA,CAAyC,IAAI2D,GAAJ,EAAzC,CAA9C,AAAA;IACA,MAAM,CAACC,cAAD,EAAiBC,iBAAjB,CAAA,GAAsC7D,eAAA,CAAsC,IAAtC,CAA5C,AAAA;IACA,MAAM8D,aAAa,GAAG9D,aAAA,CAAa,CAAb,CAAtB,AAAA;IACA,MAAM,CAACkC,KAAK,GAAG,EAAT,EAAa8B,QAAb,CAAA,GAAyB1D,2BAAoB,CAAC;QAClD2D,IAAI,EAAEZ,SAD4C;QAElDa,QAAQ,EAAE/B,aAFwC;QAGlDgC,WAAW,EAAE/B,YAAb+B;KAHiD,CAAnD,AAAoD;IAMpDnE,gBAAA,CAAgB,IAAM;QACpB,OAAO,IAAMqE,MAAM,CAACC,YAAP,CAAoBR,aAAa,CAACS,OAAlC,CAAb;QAAA,CAAA;KADF,EAEG;QAACT,aAAD;KAFH,CAEC,CAAA;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,gDAAD,EADF;QAEI,KAAK,EAAEX,KADT;QAEE,UAAU,EAAEC,UAFd;QAGE,kBAAkB,EAAEH,kBAHtB;QAIE,KAAK,EAAEf,KAJT;QAKE,aAAa,EAAEpB,kBAAW,CAACoB,KAAD,CAL5B;QAME,MAAM,EAAEvB,YAAK,EANf;QAOE,GAAG,EAAE2B,GAPP;QAQE,WAAW,EAAED,WARf;QASE,QAAQ,EAAEkB,QATZ;QAUE,gBAAgB,EAAEC,WAVpB;QAWE,cAAc,EAAEI,cAXlB;QAYE,sBAAsB,EAAEC,iBAZ1B;QAaE,UAAU,EAAE7D,kBAAA,CACTyE,CAAAA,SAAD,GAAe;YACb,IAAIrB,UAAJ,EAAgBiB,MAAM,CAACC,YAAP,CAAoBR,aAAa,CAACS,OAAlC,CAAhB,CAAA;YACAP,QAAQ,CAACS,SAAD,CAAR,CAAAT;SAHQ,EAKV;YAACA,QAAD;YAAWZ,UAAX;SALU,CAbd;QAoBE,WAAW,EAAEpD,kBAAA,CAAkB,IAAM;YACnC,IAAIoD,UAAJ,EAAgB;gBACdiB,MAAM,CAACC,YAAP,CAAoBR,aAAa,CAACS,OAAlC,CAAAF,CAAAA;gBACAP,aAAa,CAACS,OAAd,GAAwBF,MAAM,CAACK,UAAP,CAAkB,IAAMV,QAAQ,CAAC,EAAD,CAAhC;gBAAA,EAAsC,GAAtC,CAAxB,CAAAF;aACD;SAJU,EAKV;YAACE,QAAD;YAAWZ,UAAX;SALU,CApBf;QA0BE,YAAY,EAAEpD,kBAAA,CACXyE,CAAAA,SAAD,GAAe;YACbT,QAAQ,CAAEW,CAAAA,SAAD,GAAe;gBACtB,OAAOvB,UAAU,GAAIuB,SAAS,KAAKF,SAAd,GAA0B,EAA1B,GAA+BA,SAAnC,GAAgDA,SAAjE,CAAA;aADM,CAAR,CAEC;SAJS,EAMZ;YAACT,QAAD;YAAWZ,UAAX;SANY,CA1BhB;QAkCE,aAAa,EAAEpD,kBAAA,CAAkB,IAAMgE,QAAQ,CAAC,EAAD,CAAhC;QAAA,EAAsC;YAACA,QAAD;SAAtC,CAlCjB;QAmCE,uBAAuB,EAAEhE,kBAAA,CAAkB,CAAC4E,YAAD,EAAeC,WAAf,GAA+B;YACxEnB,kBAAkB,CAAEoB,CAAAA,WAAD,GAAiB;gBAClCA,WAAW,CAACC,GAAZ,CAAgBH,YAAhB,EAA8BC,WAA9B,CAAAC,CAAAA;gBACA,OAAO,IAAInB,GAAJ,CAAQmB,WAAR,CAAP,CAAA;aAFgB,CAAlB,CAGC;SAJsB,EAKtB,EALsB,CAnC3B;QAyCE,uBAAuB,EAAE9E,kBAAA,CAAmB4E,CAAAA,YAAD,GAAkB;YAC3DlB,kBAAkB,CAAEoB,CAAAA,WAAD,GAAiB;gBAClC,IAAI,CAACA,WAAW,CAACE,GAAZ,CAAgBJ,YAAhB,CAAL,EAAoC,OAAOE,WAAP,CAApC;gBACAA,WAAW,CAACG,MAAZ,CAAmBL,YAAnB,CAAAE,CAAAA;gBACA,OAAO,IAAInB,GAAJ,CAAQmB,WAAR,CAAP,CAAA;aAHgB,CAAlB,CAIC;SALsB,EAMtB,EANsB,CAMxB;KA/CH,EAAA,aAiDE,CAAA,oBAAA,CAAC,gCAAD,CAAY,QAAZ,EAjDF;QAiDuB,KAAK,EAAE3B,KAAP;KAArB,EAAA,aACE,CAAA,oBAAA,CAAC,6CAAD,EADF;QAC2B,KAAK,EAAEA,KAAhC;QAAuC,KAAK,EAAEM,eAAP;KAAvC,EACGH,QADH,CADF,CAjDF,CADF,CAmDM;CA/ER,AAqFC;AAED;;oGAEA,CAEA,MAAM4B,+BAAS,GAAG,oBAAlB,AAAA;AAMA,MAAMlG,yCAAkB,GAAA,aAAGgB,CAAAA,iBAAA,CACzB,CAAC+B,KAAD,EAA8CC,YAA9C,GAA+D;IAC7D,MAAM,E,uBAAEC,qBAAF,CAAA,EAAyB,GAAGkD,SAAH,EAAzB,GAA0CpD,KAAhD,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACuD,+BAAD,EAAYjD,qBAAZ,CAAxC,AAAA;IAEA,MAAMmD,IAAI,GAAA,aACR,CAAA,oBAAA,CAAC,gBAAD,CAAW,EAAX,EADF,oCAAA,CAAA;QACgB,kBAAA,EAAkBpC,OAAO,CAACX,WAA1B;KAAd,EAAyD8C,SAAzD,EAAA;QAAoE,GAAG,EAAEnD,YAAL;KAApE,CAAA,CADF,AACE;IAGF,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,GAAX,EADF;QACiB,KAAK,EAAE;YAAEqD,QAAQ,EAAE,UAAVA;SAAxB;QAAgD,GAAG,EAAErC,OAAO,CAACsC,sBAAb;KAAhD,EAAA,aACE,CAAA,oBAAA,CAAC,gCAAD,CAAY,IAAZ,EADF;QACmB,KAAK,EAAErD,qBAAP;KAAjB,EACGe,OAAO,CAACI,UAAR,GAAA,aAAqB,CAAA,oBAAA,CAAC,gCAAD,EADxB;QACoC,OAAO,EAAP,IAAA;KAAZ,EAAqBgC,IAArB,CAArB,GAA+DA,IADlE,CADF,CADF,CAG4B;CAZL,CAA3B,AAgBG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,+BAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMG,+BAAS,GAAG,oBAAlB,AAAA;AAeA,MAAM,CAACC,uDAAD,EAAoCC,kDAApC,CAAA,GACJhE,iDAA2B,CAAiC8D,+BAAjC,CAD7B,AAAA;AASA,MAAMtG,yCAAkB,GAAA,aAAGe,CAAAA,iBAAA,CACzB,CAAC+B,KAAD,EAA8CC,YAA9C,GAA+D;IAC7D,MAAM,E,uBAAEC,qBAAF,CAAA,EAAyBC,KAAK,EAAEmB,SAAhC,CAAA,EAA2C,GAAGqC,SAAH,EAA3C,GAA4D3D,KAAlE,AAAM;IACN,MAAM4D,SAAS,GAAGhF,YAAK,EAAvB,AAF6D,EAG7D,2EADA;IAEA,2FAAA;IACA,MAAMuB,KAAK,GAAGmB,SAAS,IAAIsC,SAAb,IAA0B,yBAAxC,AAAA;IACA,MAAMC,UAAU,GAAG5F,aAAA,CAA2C,IAA3C,CAAnB,AAAA;IACA,MAAM6F,UAAU,GAAG7F,aAAA,CAA2C,IAA3C,CAAnB,AAAA;IACA,MAAM8F,aAAa,GAAG9F,aAAA,CAAgC,IAAhC,CAAtB,AAAA;IACA,MAAM+F,yBAAyB,GAAG/F,aAAA,CAAa,IAAM,EAAnB,CAAlC,AAAA;IAEA,MAAMgG,kBAAkB,GAAGhG,kBAAA,CAAkB,CAACiG,IAAI,GAAG,OAAR,GAAoB;QAC/D,IAAIL,UAAU,CAACrB,OAAf,EAAwB;YACtBwB,yBAAyB,CAACxB,OAA1B,EAAAwB,CAAAA;YACA,MAAMG,UAAU,GAAGC,2CAAqB,CAACP,UAAU,CAACrB,OAAZ,CAAxC,AAAA;YACA,IAAI2B,UAAU,CAACE,MAAf,EAAuBC,gCAAU,CAACJ,IAAI,KAAK,OAAT,GAAmBC,UAAnB,GAAgCA,UAAU,CAACI,OAAX,EAAjC,CAAV,CAAvB;SACD;KALwB,EAMxB,EANwB,CAA3B,AAMC;IAED,MAAMC,iBAAiB,GAAGvG,kBAAA,CAAkB,IAAM;QAChD,IAAI4F,UAAU,CAACrB,OAAf,EAAwB;YACtB,MAAM2B,UAAU,GAAGC,2CAAqB,CAACP,UAAU,CAACrB,OAAZ,CAAxC,AAAA;YACA,IAAI2B,UAAU,CAACE,MAAf,EAAuBL,yBAAyB,CAACxB,OAA1B,GAAoCiC,wCAAkB,CAACN,UAAD,CAAtD,CAAvB;SACD;KAJuB,EAKvB,EALuB,CAA1B,AAKC;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,uDAAD,EADF;QAEI,KAAK,EAAEjE,qBADT;QAEE,KAAK,EAAEC,KAFT;QAGE,UAAU,EAAE2D,UAHd;QAIE,UAAU,EAAED,UAJd;QAKE,aAAa,EAAEE,aALjB;QAME,cAAc,EAAEE,kBANlB;QAOE,iBAAiB,EAAEA,kBAPrB;QAQE,kBAAkB,EAAEO,iBARtB;QASE,qBAAqB,EAAEA,iBAAvB;KATF,EAAA,aAWE,CAAA,oBAAA,CAAC,gBAAD,CAAW,EAAX,EAAA,oCAAA,CAAA,EAAA,EAAkBb,SAAlB,EAXF;QAW+B,GAAG,EAAE1D,YAAL;KAA7B,CAAA,CAXF,CADF,CAYI;CAvCmB,CAA3B,AA0CG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,+BAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMyE,kCAAY,GAAG,uBAArB,AAAA;AAMA,MAAMvH,wCAAqB,GAAA,aAAGc,CAAAA,iBAAA,CAG5B,CAAC+B,KAAD,EAAiDC,YAAjD,GAAkE;IAClE,MAAM,E,uBAAEC,qBAAF,CAAA,E,UAAyByE,QAAzB,CAAA,EAAmC,GAAGC,YAAH,EAAnC,GAAuD5E,KAA7D,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAAC8E,kCAAD,EAAe1E,KAAK,CAACE,qBAArB,CAAxC,AAAA;IACA,MAAM2E,WAAW,GAAGnB,kDAA4B,CAACgB,kCAAD,EAAe1E,KAAK,CAACE,qBAArB,CAAhD,AAAA;IACA,MAAM4E,GAAG,GAAG7G,aAAA,CAA2C,IAA3C,CAAZ,AAAA;IACA,MAAM8G,YAAY,GAAGtG,sBAAe,CAACqG,GAAD,EAAMD,WAAW,CAACf,UAAlB,EAA8B7D,YAA9B,CAApC,AAAA;IACA,MAAM+E,SAAS,GAAGC,mCAAa,CAAChE,OAAO,CAACiE,MAAT,EAAiBL,WAAW,CAAC1E,KAA7B,CAA/B,AAAA;IACA,MAAMgF,SAAS,GAAGC,mCAAa,CAACnE,OAAO,CAACiE,MAAT,EAAiBL,WAAW,CAAC1E,KAA7B,CAA/B,AAAA;IACA,MAAMkF,gBAAgB,GAAGpH,aAAA,CAAa,KAAb,CAAzB,AAAA;IACA,MAAMqH,IAAI,GAAGT,WAAW,CAAC1E,KAAZ,KAAsBc,OAAO,CAACd,KAA3C,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aACE,CAAA,oBAAA,CAAC,gCAAD,CAAY,QAAZ,EAFJ;QAEyB,KAAK,EAAED,qBAA5B;QAAmD,KAAK,EAAE2E,WAAW,CAAC1E,KAAnB;KAAnD,EAAA,aACE,CAAA,oBAAA,CAAC,oCAAD,EADF;QACkB,OAAO,EAAP,IAAA;KAAhB,EAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,MAAX,EADF,oCAAA,CAAA;QAEI,EAAE,EAAE6E,SADN;QAEE,QAAQ,EAAEL,QAFZ;QAGE,eAAA,EAAeA,QAAQ,GAAG,EAAH,GAAQY,SAHjC;QAIE,YAAA,EAAYC,kCAAY,CAACF,IAAD,CAJ1B;QAKE,eAAA,EAAeA,IALjB;QAME,eAAA,EAAeH,SAAf;KANF,EAOMP,YAPN,EAAA;QAQE,GAAG,EAAEG,YARP;QASE,cAAc,EAAE3G,2BAAoB,CAAC4B,KAAK,CAACyF,cAAP,EAAuB,IAAM;YAC/DJ,gBAAgB,CAAC7C,OAAjB,GAA2B,KAA3B,CAAA6C;SADkC,CATtC;QAYE,aAAa,EAAEjH,2BAAoB,CACjC4B,KAAK,CAAC0F,aAD2B,EAEjCC,+BAAS,CAAC,IAAM;YACd,IAAIhB,QAAQ,IAAIU,gBAAgB,CAAC7C,OAAjC,EAA0C,OAA1C;YACAvB,OAAO,CAAC2E,UAAR,CAAmBf,WAAW,CAAC1E,KAA/B,CAAAc,CAAAA;SAFO,CAFwB,CAZrC;QAmBE,cAAc,EAAE7C,2BAAoB,CAClC4B,KAAK,CAAC6F,cAD4B,EAElCF,+BAAS,CAAC,IAAM;YACd,IAAIhB,QAAJ,EAAc,OAAd;YACA1D,OAAO,CAAC6E,WAAR,EAAA7E,CAAAA;SAFO,CAFyB,CAnBtC;QA0BE,OAAO,EAAE7C,2BAAoB,CAAC4B,KAAK,CAAC+F,OAAP,EAAgB,IAAM;YACjD9E,OAAO,CAAC+E,YAAR,CAAqBnB,WAAW,CAAC1E,KAAjC,CAAAc,CAAAA;YACAoE,gBAAgB,CAAC7C,OAAjB,GAA2B8C,IAA3B,CAAAD;SAF2B,CA1B/B;QA8BE,SAAS,EAAEjH,2BAAoB,CAAC4B,KAAK,CAACiG,SAAP,EAAmBC,CAAAA,KAAD,GAAW;YAC1D,MAAMC,gBAAgB,GAAGlF,OAAO,CAACV,GAAR,KAAgB,KAAhB,GAAwB,WAAxB,GAAsC,YAA/D,AAAA;YACA,MAAM6F,QAAQ,GAAG;gBAAEC,UAAU,EAAE,WAAd;gBAA2BC,QAAQ,EAAEH,gBAAVG;aAA3B,CACfrF,OAAO,CAACX,WADO,CAAjB,AAAiB;YAIjB,IAAIgF,IAAI,IAAIY,KAAK,CAACK,GAAN,KAAcH,QAA1B,EAAoC;gBAClCvB,WAAW,CAAC2B,cAAZ,EAAA,CADkC,CAElC,iDADA3B;gBAEAqB,KAAK,CAACO,cAAN,EAAAP,CAAAA;aACD;SAV4B,CAW9B;KAzCH,CAAA,CADF,CADF,CADF,EAkDGZ,IAAI,IAAA,aACH,CAAA,oBAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aACE,CAAA,oBAAA,CAAC,WAAD,EAjDA;QAkDE,aAAA,EAAA,IADF;QAEE,QAAQ,EAAE,CAFZ;QAGE,GAAG,EAAET,WAAW,CAACd,aAHnB;QAIE,OAAO,EAAGmC,CAAAA,KAAD,GAAW;YAClB,MAAMQ,OAAO,GAAG7B,WAAW,CAAChB,UAAZ,CAAuBrB,OAAvC,AAAA;YACA,MAAMmE,kBAAkB,GAAGT,KAAK,CAACU,aAAjC,AAAA;YACA,MAAMC,iBAAiB,GAAGF,kBAAkB,KAAK7B,GAAG,CAACtC,OAArD,AAAA;YACA,MAAMsE,mBAAmB,GAAGJ,OAAH,KAAA,IAAA,IAAGA,OAAH,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAGA,OAAO,CAAEK,QAAT,CAAkBJ,kBAAlB,CAA5B,AAAA;YAEA,IAAIE,iBAAiB,IAAI,CAACC,mBAA1B,EACEjC,WAAW,CAACmC,iBAAZ,CAA8BH,iBAAiB,GAAG,OAAH,GAAa,KAA5D,CAAAhC,CAAAA;SAEH;KAbH,CADF,EAkBG5D,OAAO,CAACO,QAAR,IAAA,aAAoB,CAAA,oBAjBrB,CAAA,MAAA,EAAA;QAiB2B,WAAA,EAAW2D,SAAX;KAAN,CAlBvB,CAnDJ,CADF,CAsE6B;CApFD,CAA9B,AAyFC;AAED,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,wCAAA,EAAA;IAAA,WAAA,EAAA,kCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAM8B,+BAAS,GAAG,oBAAlB,AAAA;AACA,MAAMC,iCAAW,GAAG,2BAApB,AAAA;AASA,MAAM9J,yCAAkB,GAAA,aAAGa,CAAAA,iBAAA,CACzB,CAAC+B,KAAD,EAA8CC,YAA9C,GAA+D;IAC7D,MAAM,E,uBAAEC,qBAAF,CAAA,E,QAAyBiH,MAAzB,CAAA,E,UAAiCC,QAAjC,CAAA,EAA2C,GAAGC,SAAH,EAA3C,GAA4DrH,KAAlE,AAAM;IAEN,OAAA,aACE,CAAA,oBAAA,CAAC,oCAAD,EADF;QACkB,OAAO,EAAP,IAAA;KAAhB,EAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,CAAX,EADF,oCAAA,CAAA;QAEI,aAAA,EAAamH,MAAM,GAAG,EAAH,GAAQ5B,SAD7B;QAEE,cAAA,EAAc4B,MAAM,GAAG,MAAH,GAAY5B,SAAhC;KAFF,EAGM8B,SAHN,EAAA;QAIE,GAAG,EAAEpH,YAJP;QAKE,OAAO,EAAE7B,2BAAoB,CAC3B4B,KAAK,CAAC+F,OADqB,EAE1BG,CAAAA,MAAD,GAAW;YACT,MAAMoB,MAAM,GAAGpB,MAAK,CAACoB,MAArB,AAAA;YACA,MAAMC,eAAe,GAAG,IAAIC,WAAJ,CAAgBN,iCAAhB,EAA6B;gBACnDO,OAAO,EAAE,IAD0C;gBAEnDC,UAAU,EAAE,IAAZA;aAFsB,CAAxB,AAAqD;YAIrDJ,MAAM,CAACK,gBAAP,CAAwBT,iCAAxB,EAAsChB,CAAAA,KAAD,GAAWkB,QAAX,KAAA,IAAA,IAAWA,QAAX,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAWA,QAAQ,CAAGlB,KAAH,CAAxD;YAAA,EAAmE;gBAAE0B,IAAI,EAAE,IAANA;aAArE,CAAmE,CAAA;YACnEtJ,kCAA2B,CAACgJ,MAAD,EAASC,eAAT,CAA3B,CAAAjJ;YAEA,IAAI,CAACiJ,eAAe,CAACM,gBAArB,EAAuC;gBACrC,MAAMC,uBAAuB,GAAG,IAAIN,WAAJ,CAAgBO,0CAAhB,EAAsC;oBACpEN,OAAO,EAAE,IAD2D;oBAEpEC,UAAU,EAAE,IAAZA;iBAF8B,CAAhC,AAAsE;gBAItEpJ,kCAA2B,CAACgJ,MAAD,EAASQ,uBAAT,CAA3B,CAAAxJ;aACD;SAjBwB,EAmB3B;YAAE0J,wBAAwB,EAAE,KAA1BA;SAnByB,CAmB3B;KAxBJ,CAAA,CADF,CADF,CAEI;CANmB,CAA3B,AAmCG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,+BAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMC,oCAAc,GAAG,yBAAvB,AAAA;AAWA,MAAM5K,yCAAuB,GAAA,aAAGY,CAAAA,iBAAA,CAG9B,CAAC+B,KAAD,EAAmDC,YAAnD,GAAoE;IACpE,MAAM,E,YAAEiI,UAAF,CAAA,EAAc,GAAGC,cAAH,EAAd,GAAoCnI,KAA1C,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACqI,oCAAD,EAAiBjI,KAAK,CAACE,qBAAvB,CAAxC,AAAA;IACA,MAAMkI,SAAS,GAAGC,OAAO,CAACpH,OAAO,CAACd,KAAT,CAAzB,AAAA;IAEA,OAAOc,OAAO,CAACY,cAAR,GAAA,aACH3D,CAAAA,eAAQ,CAACoK,YAAT,CAAA,aACE,CAAA,oBAAA,CAAC,eAAD,EAFN;QAEgB,OAAO,EAAEJ,UAAU,IAAIE,SAAvB;KAAV,EAAA,aACE,CAAA,oBAAA,CAAC,iDAAD,EAAA,oCAAA,CAAA,EAAA,EAAiCD,cAAjC,EADF;QACmD,GAAG,EAAElI,YAAL;KAAjD,CAAA,CADF,CADF,EAIEgB,OAAO,CAACY,cAJV,CADG,GAOH,IAPJ,CAGQ;CAXsB,CAAhC,AAgBC;AAED,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,oCAAA;CAAA,CAAA,CAAA;AAKA,MAAM0G,iDAA2B,GAAA,aAAGtK,CAAAA,iBAAA,CAGlC,CAAC+B,KAAD,EAAuDC,YAAvD,GAAwE;IACxE,MAAM,E,uBAAEC,qBAAF,CAAA,EAAyB,GAAGiI,cAAH,EAAzB,GAA+CnI,KAArD,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACqI,oCAAD,EAAiB/H,qBAAjB,CAAxC,AAAA;IACA,MAAMsI,QAAQ,GAAGnJ,mCAAa,CAACa,qBAAD,CAA9B,AAAA;IACA,MAAM,CAACuI,aAAD,EAAgBC,gBAAhB,CAAA,GAAoCzK,eAAA,CACxC,IADwC,CAA1C,AAAA;IAGA,MAAM,CAACqF,QAAD,EAAWqF,WAAX,CAAA,GAA0B1K,eAAA,CAAwD,IAAxD,CAAhC,AAAA;IACA,MAAM2K,YAAY,GAAG3H,OAAO,CAACX,WAAR,KAAwB,YAA7C,AAAA;IACA,MAAM8H,SAAS,GAAGC,OAAO,CAACpH,OAAO,CAACd,KAAT,CAAzB,AAAA;IAEAlC,gBAAA,CAAgB,IAAM;QAAA,IAAA,WAAA,AAAA;QACpB,MAAM4K,KAAK,GAAGL,QAAQ,EAAtB,AAAA;QACA,MAAMM,WAAW,GAAA,AAAA,CAAA,WAAA,GAAGD,KAAK,CAACE,IAAN,CAAYC,CAAAA,IAAD,GAAUA,IAAI,CAAC7I,KAAL,KAAec,OAAO,CAACd,KAA5C;QAAA,CAAH,CAAA,KAAA,IAAA,IAAA,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAG,WAAA,CAAoD2E,GAApD,CAAwDtC,OAA5E,AAAA;QACA,IAAIsG,WAAJ,EAAiBJ,gBAAgB,CAACI,WAAD,CAAhB,CAAjB;KAHF,EAIG;QAACN,QAAD;QAAWvH,OAAO,CAACd,KAAnB;KAJH,CAIC,CAAA;IAED;;KAEF,CACE,MAAM8I,oBAAoB,GAAG,IAAM;QACjC,IAAIR,aAAJ,EACEE,WAAW,CAAC;YACVO,IAAI,EAAEN,YAAY,GAAGH,aAAa,CAACU,WAAjB,GAA+BV,aAAa,CAACW,YADrD;YAEVC,MAAM,EAAET,YAAY,GAAGH,aAAa,CAACa,UAAjB,GAA8Bb,aAAa,CAACc,SAAhEF;SAFS,CAAX,CAAY;KAFhB,AAOC;IACDG,uCAAiB,CAACf,aAAD,EAAgBQ,oBAAhB,CAAjB,CAAAO;IACAA,uCAAiB,CAACvI,OAAO,CAACY,cAAT,EAAyBoH,oBAAzB,CAAjB,CA7BwE,CA+BxE,iFAFAO;IAGA,wEAAA;IACA,OAAOlG,QAAQ,GAAA,aACb,CAAA,oBAAA,CAAC,gBAAD,CAAW,GAAX,EADF,oCAAA,CAAA;QAEI,aAAA,EAAA,IADF;QAEE,YAAA,EAAY8E,SAAS,GAAG,SAAH,GAAe,QAFtC;QAGE,kBAAA,EAAkBnH,OAAO,CAACX,WAA1B;KAHF,EAIM6H,cAJN,EAAA;QAKE,GAAG,EAAElI,YALP;QAME,KAAK,EAAE;YACLqD,QAAQ,EAAE,UADL;YAEL,GAAIsF,YAAY,GACZ;gBACEa,IAAI,EAAE,CADR;gBAEEC,KAAK,EAAEpG,QAAQ,CAAC4F,IAAT,GAAgB,IAFzB;gBAGES,SAAS,EAAG,CAAA,WAAA,EAAarG,QAAQ,CAAC+F,MAAO,CAAzCM,GAAAA,CAAAA;aAJU,GAMZ;gBACEC,GAAG,EAAE,CADP;gBAEEC,MAAM,EAAEvG,QAAQ,CAAC4F,IAAT,GAAgB,IAF1B;gBAGES,SAAS,EAAG,CAAA,WAAA,EAAarG,QAAQ,CAAC+F,MAAO,CAAzCM,GAAAA,CAAAA;aATN;YAWA,GAAGxB,cAAc,CAAC2B,KAAlB;SAbK;KANT,CAAA,CADa,GAuBX,IAvBJ,CACE;CArCgC,CAApC,AA4DC;AAED;;oGAEA,CAEA,MAAMC,kCAAY,GAAG,uBAArB,AAAA;AAYA,MAAMzM,yCAAqB,GAAA,aAAGW,CAAAA,iBAAA,CAG5B,CAAC+B,KAAD,EAAiDC,YAAjD,GAAkE;IAClE,MAAM,E,YAAEiI,UAAF,CAAA,EAAc,GAAG8B,YAAH,EAAd,GAAkChK,KAAxC,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACmK,kCAAD,EAAe/J,KAAK,CAACE,qBAArB,CAAxC,AAAA;IACA,MAAM2E,WAAW,GAAGnB,kDAA4B,CAACqG,kCAAD,EAAe/J,KAAK,CAACE,qBAArB,CAAhD,AAAA;IACA,MAAM6E,YAAY,GAAGtG,sBAAe,CAACoG,WAAW,CAAChB,UAAb,EAAyB5D,YAAzB,CAApC,AAAA;IACA,MAAMqF,IAAI,GAAGT,WAAW,CAAC1E,KAAZ,KAAsBc,OAAO,CAACd,KAA3C,AAAA;IAEA,MAAM8J,WAAW,GAAG;QAClB9J,KAAK,EAAE0E,WAAW,CAAC1E,KADD;QAElB2D,UAAU,EAAEe,WAAW,CAACf,UAFN;QAGlBC,aAAa,EAAEc,WAAW,CAACd,aAHT;QAIlBmG,qBAAqB,EAAErF,WAAW,CAACqF,qBAJjB;QAKlBC,kBAAkB,EAAEtF,WAAW,CAACsF,kBALd;QAMlB,GAAGH,YAAH;KANF,AAAoB;IASpB,OAAO,CAAC/I,OAAO,CAACO,QAAT,GAAA,aACL,CAAA,oBAAA,CAAC,eAAD,EADF;QACY,OAAO,EAAE0G,UAAU,IAAI5C,IAAvB;KAAV,EAAA,aACE,CAAA,oBAAA,CAAC,+CAAD,EADF,oCAAA,CAAA;QAEI,YAAA,EAAYE,kCAAY,CAACF,IAAD,CAAxB;KADF,EAEM2E,WAFN,EAAA;QAGE,GAAG,EAAElF,YAHP;QAIE,cAAc,EAAE3G,2BAAoB,CAAC4B,KAAK,CAACyF,cAAP,EAAuB,IAAM;YAC/DxE,OAAO,CAAC2E,UAAR,CAAmBf,WAAW,CAAC1E,KAA/B,CAAAc,CAAAA;SADkC,CAJtC;QAOE,cAAc,EAAE7C,2BAAoB,CAAC4B,KAAK,CAAC6F,cAAP,EAAuBF,+BAAS,CAAC1E,OAAO,CAAC6E,WAAT,CAAhC,CAPtC;QAQE,KAAK,EAAE;YACL,yCAAA;YACAsE,aAAa,EAAE,CAAC9E,IAAD,IAASrE,OAAO,CAACI,UAAjB,GAA8B,MAA9B,GAAuCkE,SAFjD;YAGL,GAAG0E,WAAW,CAACH,KAAf;SAHK;KART,CAAA,CADF,CADK,GAAA,aAkBL,CAAA,oBAAA,CAAC,4CAAD,EAhBE,oCAAA,CAAA;QAgBsB,UAAU,EAAE5B,UAAZ;KAAxB,EAAoD+B,WAApD,EAAA;QAAiE,GAAG,EAAElF,YAAL;KAAjE,CAAA,CAlBF,CAkBE;CArC0B,CAA9B,AAuCC;AAED,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,kCAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAWA,MAAMsF,4CAAsB,GAAA,aAAGpM,CAAAA,iBAAA,CAG7B,CAAC+B,KAAD,EAAkDC,YAAlD,GAAmE;IACnE,MAAMgB,OAAO,GAAGrB,8CAAwB,CAACmK,kCAAD,EAAe/J,KAAK,CAACE,qBAArB,CAAxC,AAAA;IACA,MAAM,E,yBAAEoK,uBAAF,CAAA,E,yBAA2BC,uBAAAA,CAAAA,EAA3B,GAAuDtJ,OAA7D,AAAM;IAENjC,sBAAe,CAAC,IAAM;QACpBsL,uBAAuB,CAACtK,KAAK,CAACG,KAAP,EAAc;YACnC2E,GAAG,EAAE7E,YAD8B;YAEnC,GAAGD,KAAH;SAFqB,CAAvB,CAAqC;KADxB,EAKZ;QAACA,KAAD;QAAQC,YAAR;QAAsBqK,uBAAtB;KALY,CAAf,CAKC;IAEDtL,sBAAe,CAAC,IAAM;QACpB,OAAO,IAAMuL,uBAAuB,CAACvK,KAAK,CAACG,KAAP,CAApC;QAAA,CAAA;KADa,EAEZ;QAACH,KAAK,CAACG,KAAP;QAAcoK,uBAAd;KAFY,CAAf,CAXmE,CAenE,uCAFC;IAGD,OAAO,IAAP,CAAA;CAnB6B,CAA/B,AAoBC;AAED,oGAAA,CAEA,MAAMxC,0CAAoB,GAAG,mCAA7B,AAAA;AAiBA,MAAMyC,+CAAyB,GAAA,aAAGvM,CAAAA,iBAAA,CAGhC,CAAC+B,KAAD,EAAqDC,YAArD,GAAsE;IACtE,MAAM,E,uBACJC,qBADI,CAAA,E,OAEJC,KAFI,CAAA,E,YAGJ2D,UAHI,CAAA,E,eAIJC,aAJI,CAAA,E,oBAKJoG,kBALI,CAAA,E,uBAMJD,qBANI,CAAA,EAOJ,GAAGF,YAAH,EAPI,GAQFhK,KARJ,AAAM;IASN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACmK,kCAAD,EAAe7J,qBAAf,CAAxC,AAAA;IACA,MAAM4E,GAAG,GAAG7G,aAAA,CAA+C,IAA/C,CAAZ,AAAA;IACA,MAAM8G,YAAY,GAAGtG,sBAAe,CAACqG,GAAD,EAAM7E,YAAN,CAApC,AAAA;IACA,MAAM+E,SAAS,GAAGC,mCAAa,CAAChE,OAAO,CAACiE,MAAT,EAAiB/E,KAAjB,CAA/B,AAAA;IACA,MAAMgF,SAAS,GAAGC,mCAAa,CAACnE,OAAO,CAACiE,MAAT,EAAiB/E,KAAjB,CAA/B,AAAA;IACA,MAAMqI,QAAQ,GAAGnJ,mCAAa,CAACa,qBAAD,CAA9B,AAAA;IACA,MAAMuK,sBAAsB,GAAGxM,aAAA,CAAqC,IAArC,CAA/B,AAAA;IAEA,MAAM,E,eAAEyM,aAAAA,CAAAA,EAAF,GAAoBzJ,OAA1B,AAAM;IAENhD,gBAAA,CAAgB,IAAM;QACpB,MAAMyI,OAAO,GAAG5B,GAAG,CAACtC,OAApB,AADoB,EAGpB,gEAFA;QAGA,IAAIvB,OAAO,CAACI,UAAR,IAAsBqF,OAA1B,EAAmC;YACjC,MAAMiE,WAAW,GAAG,IAAM;gBAAA,IAAA,mBAAA,AAAA;gBACxBD,aAAa,EAAbA,CAAAA;gBACAP,kBAAkB,EAAlBA,CAAAA;gBACA,IAAIzD,OAAO,CAACK,QAAR,CAAiB6D,QAAQ,CAACC,aAA1B,CAAJ,EAA8C,AAAA,CAAA,mBAAA,GAAA/G,UAAU,CAACtB,OAAX,CAAA,KAAA,IAAA,IAAA,mBAAA,KAAA,KAAA,CAAA,IAAA,mBAAA,CAAoBsI,KAApB,EAA9C,CAAA;aAHF,AAIC;YACDpE,OAAO,CAACiB,gBAAR,CAAyBI,0CAAzB,EAA+C4C,WAA/C,CAAAjE,CAAAA;YACA,OAAO,IAAMA,OAAO,CAACqE,mBAAR,CAA4BhD,0CAA5B,EAAkD4C,WAAlD,CAAb;YAAA,CAAA;SACD;KAZH,EAaG;QAAC1J,OAAO,CAACI,UAAT;QAAqBrB,KAAK,CAACG,KAA3B;QAAkC2D,UAAlC;QAA8C4G,aAA9C;QAA6DP,kBAA7D;KAbH,CAaC,CAAA;IAED,MAAMa,eAAe,GAAG/M,cAAA,CAAc,IAAM;QAC1C,MAAM4K,KAAK,GAAGL,QAAQ,EAAtB,AAAA;QACA,MAAM0C,MAAM,GAAGrC,KAAK,CAACsC,GAAN,CAAWnC,CAAAA,IAAD,GAAUA,IAAI,CAAC7I,KAAzB;QAAA,CAAf,AAAA;QACA,IAAIc,OAAO,CAACV,GAAR,KAAgB,KAApB,EAA2B2K,MAAM,CAAC3G,OAAP,EAA3B,CAAA;QACA,MAAM6G,KAAK,GAAGF,MAAM,CAACG,OAAP,CAAepK,OAAO,CAACd,KAAvB,CAAd,AAAA;QACA,MAAMmL,SAAS,GAAGJ,MAAM,CAACG,OAAP,CAAepK,OAAO,CAACsK,aAAvB,CAAlB,AAAA;QACA,MAAMC,UAAU,GAAGrL,KAAK,KAAKc,OAAO,CAACd,KAArC,AAAA;QACA,MAAMsL,WAAW,GAAGH,SAAS,KAAKJ,MAAM,CAACG,OAAP,CAAelL,KAAf,CAAlC,AAP0C,EAS1C,gEAFA;QAGA,iEAAA;QACA,IAAI,CAACqL,UAAD,IAAe,CAACC,WAApB,EAAiC,OAAOhB,sBAAsB,CAACjI,OAA9B,CAAjC;QAEA,MAAMkJ,SAAS,GAAG,AAAC,CAAA,IAAM;YACvB,gDAAA;YACA,IAAIN,KAAK,KAAKE,SAAd,EAAyB;gBACvB,4CAAA;gBACA,IAAIE,UAAU,IAAIF,SAAS,KAAK,EAAhC,EAAoC,OAAOF,KAAK,GAAGE,SAAR,GAAoB,UAApB,GAAiC,YAAxC,CAFb,CAGvB,yCADA;gBAEA,IAAIG,WAAW,IAAIL,KAAK,KAAK,EAA7B,EAAiC,OAAOA,KAAK,GAAGE,SAAR,GAAoB,UAApB,GAAiC,QAAxC,CAAjC;aANqB,CAQvB,2DADC;YAED,mDAAA;YACA,OAAO,IAAP,CAAA;SAVgB,CAAA,EAAlB,AAWC;QAEDb,sBAAsB,CAACjI,OAAvB,GAAiCkJ,SAAjC,CAAAjB;QACA,OAAOiB,SAAP,CAAA;KA3BsB,EA4BrB;QAACzK,OAAO,CAACsK,aAAT;QAAwBtK,OAAO,CAACd,KAAhC;QAAuCc,OAAO,CAACV,GAA/C;QAAoDiI,QAApD;QAA8DrI,KAA9D;KA5BqB,CAAxB,AA4BC;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,gCAAD,EADF;QACc,OAAO,EAAP,IAAA;KAAZ,EAAA,aACE,CAAA,oBAAA,CAAC,uBAAD,EADF,oCAAA,CAAA;QAEI,EAAE,EAAEgF,SADN;QAEE,iBAAA,EAAiBH,SAFnB;QAGE,aAAA,EAAagG,eAHf;QAIE,kBAAA,EAAkB/J,OAAO,CAACX,WAA1B;KAJF,EAKM0J,YALN,EAAA;QAME,GAAG,EAAEjF,YANP;QAOE,SAAS,EAAE,IAAM;YAAA,IAAA,YAAA,AAAA;YACf,MAAM+C,uBAAuB,GAAG,IAAI6D,KAAJ,CAAU5D,0CAAV,EAAgC;gBAC9DN,OAAO,EAAE,IADqD;gBAE9DC,UAAU,EAAE,IAAZA;aAF8B,CAAhC,AAAgE;YAIhE,CAAA,YAAA,GAAA5C,GAAG,CAACtC,OAAJ,CAAA,KAAA,IAAA,IAAA,YAAA,KAAA,KAAA,CAAA,IAAA,YAAA,CAAaoJ,aAAb,CAA2B9D,uBAA3B,CAAA,CAAA;SAZJ;QAcE,cAAc,EAAE1J,2BAAoB,CAAC4B,KAAK,CAAC6L,cAAP,EAAwB3F,CAAAA,KAAD,GAAW;YAAA,IAAA,qBAAA,AAAA;YACpEgE,qBAAqB,EAArBA,CAAAA;YACA,MAAM5C,MAAM,GAAGpB,KAAK,CAACoB,MAArB,AAFoE,EAGpE,4DADA;YAEA,IAAA,AAAA,CAAA,qBAAA,GAAIrG,OAAO,CAACC,kBAAZ,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAI,qBAAA,CAA4B6F,QAA5B,CAAqCO,MAArC,CAAJ,EAAkDpB,KAAK,CAACO,cAAN,EAAlD,CAAA;SAJkC,CAdtC;QAoBE,oBAAoB,EAAErI,2BAAoB,CAAC4B,KAAK,CAAC8L,oBAAP,EAA8B5F,CAAAA,KAAD,GAAW;YAAA,IAAA,iBAAA,AAAA;YAChF,MAAMoB,MAAM,GAAGpB,KAAK,CAACoB,MAArB,AAAA;YACA,MAAMyE,SAAS,GAAGvD,QAAQ,EAAA,CAAGwD,IAAX,CAAiBhD,CAAAA,IAAD,GAAlC;gBAAkC,IAAA,iBAAA,AAAA;gBAAA,OAAA,AAAA,CAAA,iBAAA,GAAUA,IAAI,CAAClE,GAAL,CAAStC,OAAnB,CAAA,KAAA,IAAA,IAAA,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAU,iBAAA,CAAkBuE,QAAlB,CAA2BO,MAA3B,CAAV,CAAA;aAAhB,CAAlB,AAAkC;YAClC,MAAM2E,cAAc,GAAGhL,OAAO,CAACI,UAAR,IAAA,CAAA,AAAA,CAAA,iBAAA,GAAsBJ,OAAO,CAACO,QAA9B,CAAA,KAAA,IAAA,IAAA,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAsB,iBAAA,CAAkBuF,QAAlB,CAA2BO,MAA3B,CAAtB,CAAA,AAAvB,AAAA;YACA,IAAIyE,SAAS,IAAIE,cAAb,IAA+B,CAAChL,OAAO,CAACI,UAA5C,EAAwD6E,KAAK,CAACO,cAAN,EAAxD,CAAA;SAJwC,CApB5C;QA0BE,SAAS,EAAErI,2BAAoB,CAAC4B,KAAK,CAACiG,SAAP,EAAmBC,CAAAA,KAAD,GAAW;YAC1D,MAAMgG,SAAS,GAAGhG,KAAK,CAACiG,MAAN,IAAgBjG,KAAK,CAACkG,OAAtB,IAAiClG,KAAK,CAACmG,OAAzD,AAAA;YACA,MAAMC,QAAQ,GAAGpG,KAAK,CAACK,GAAN,KAAc,KAAd,IAAuB,CAAC2F,SAAzC,AAAA;YACA,IAAII,QAAJ,EAAc;gBACZ,MAAMnI,UAAU,GAAGC,2CAAqB,CAAC8B,KAAK,CAACqG,aAAP,CAAxC,AAAA;gBACA,MAAMC,cAAc,GAAG5B,QAAQ,CAACC,aAAhC,AAAA;gBACA,MAAMO,KAAK,GAAGjH,UAAU,CAACsI,SAAX,CAAsBC,CAAAA,SAAD,GAAeA,SAAS,KAAKF,cAAlD;gBAAA,CAAd,AAAA;gBACA,MAAMG,iBAAiB,GAAGzG,KAAK,CAAC0G,QAAhC,AAAA;gBACA,MAAMC,cAAc,GAAGF,iBAAiB,GACpCxI,UAAU,CAAC2I,KAAX,CAAiB,CAAjB,EAAoB1B,KAApB,CAAA,CAA2B7G,OAA3B,EADoC,GAEpCJ,UAAU,CAAC2I,KAAX,CAAiB1B,KAAK,GAAG,CAAzB,EAA4BjH,UAAU,CAACE,MAAvC,CAFJ,AAAA;gBAIA,IAAIC,gCAAU,CAACuI,cAAD,CAAd,EACE,0DAAA;gBACA3G,KAAK,CAACO,cAAN,EAAAP,CAAAA;qBACK;oBAAA,IAAA,qBAAA,AAAA;oBACL,kDAAA;oBACA,4CAAA;oBACA,8CAAA;oBACA,CAAA,qBAAA,GAAAnC,aAAa,CAACvB,OAAd,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,qBAAA,CAAuBsI,KAAvB,EAAA,CAAA;iBACD;aACF;SArB4B,CAsB9B;KAhDH,CAAA,CADF,CADF,CAEI;CAtE4B,CAAlC,AA0HC;AAED;;oGAEA,CAEA,MAAMiC,mCAAa,GAAG,wBAAtB,AAAA;AAYA,MAAMxP,yCAAsB,GAAA,aAAGU,CAAAA,iBAAA,CAG7B,CAAC+B,KAAD,EAAkDC,YAAlD,GAAmE;IACnE,MAAM,E,YAAEiI,UAAF,CAAA,EAAc,GAAG8E,aAAH,EAAd,GAAmChN,KAAzC,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACmN,mCAAD,EAAgB/M,KAAK,CAACE,qBAAtB,CAAxC,AAAA;IACA,MAAMoF,IAAI,GAAG+C,OAAO,CAACpH,OAAO,CAACd,KAAT,CAApB,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,eAAD,EADF;QACY,OAAO,EAAE+H,UAAU,IAAI5C,IAAvB;KAAV,EAAA,aACE,CAAA,oBAAA,CAAC,gDAAD,EAAA,oCAAA,CAAA,EAAA,EAAgC0H,aAAhC,EADF;QACiD,GAAG,EAAE/M,YAAL;KAA/C,CAAA,CADF,CADF,CAEI;CAVyB,CAA/B,AAaC;AAED,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,mCAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAKA,MAAMgN,gDAA0B,GAAA,aAAGhP,CAAAA,iBAAA,CAGjC,CAAC+B,MAAD,EAAsDC,YAAtD,GAAuE;IACvE,MAAM,E,uBAAEC,qBAAF,CAAA,E,UAAyBqB,QAAzB,CAAA,EAAmC,GAAG2L,iBAAH,EAAnC,GAA4DlN,MAAlE,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACmN,mCAAD,EAAgB7M,qBAAhB,CAAxC,AAAA;IACA,MAAM6E,YAAY,GAAGtG,sBAAe,CAACwB,YAAD,EAAegB,OAAO,CAACkM,gBAAvB,CAApC,AAAA;IACA,MAAMC,sBAAsB,GAAGtN,+CAAyB,CACtDiK,kCADsD,EAEtD/J,MAAK,CAACE,qBAFgD,CAAxD,AAAA;IAIA,MAAM,CAACgJ,IAAD,EAAOmE,OAAP,CAAA,GAAkBpP,eAAA,CAAyD,IAAzD,CAAxB,AAAA;IACA,MAAM,CAACyI,OAAD,EAAU4G,UAAV,CAAA,GAAwBrP,eAAA,CAAoD,IAApD,CAA9B,AAAA;IACA,MAAMsP,aAAa,GAAGrE,IAAI,GAAG,AAAAA,CAAAA,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAA,KAAA,CAAA,GAAAA,IAAI,CAAEQ,KAAN,CAAA,GAAc,IAAjB,GAAwBnE,SAAlD,AAAA;IACA,MAAMiI,cAAc,GAAGtE,IAAI,GAAG,AAAAA,CAAAA,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAA,KAAA,CAAA,GAAAA,IAAI,CAAEW,MAAN,CAAA,GAAe,IAAlB,GAAyBtE,SAApD,AAAA;IACA,MAAMD,IAAI,GAAG+C,OAAO,CAACpH,OAAO,CAACd,KAAT,CAApB,AAZuE,EAavE,gFADA;IAEA,+EAAA;IACA,MAAMsN,kBAAkB,GAAGnI,IAAI,GAAGrE,OAAO,CAACd,KAAX,GAAmBc,OAAO,CAACsK,aAA1D,AAAA;IAEA;;;;;KAKF,CACE,MAAMmC,gBAAgB,GAAG,IAAM;QAC7B,IAAIhH,OAAJ,EAAa2G,OAAO,CAAC;YAAE3D,KAAK,EAAEhD,OAAO,CAACyC,WAAjB;YAA8BU,MAAM,EAAEnD,OAAO,CAAC0C,YAAhBS;SAA/B,CAAP,CAAQ;KADvB,AAEC;IACDL,uCAAiB,CAAC9C,OAAD,EAAUgH,gBAAV,CAAjB,CAAAlE;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,GAAX,EADF,oCAAA,CAAA;QAEI,YAAA,EAAYhE,kCAAY,CAACF,IAAD,CAD1B;QAEE,kBAAA,EAAkBrE,OAAO,CAACX,WAA1B;KAFF,EAGM4M,iBAHN,EAAA;QAIE,GAAG,EAAEnI,YAJP;QAKE,KAAK,EAAE;YACL,yCAAA;YACAqF,aAAa,EAAE,CAAC9E,IAAD,IAASrE,OAAO,CAACI,UAAjB,GAA8B,MAA9B,GAAuCkE,SAFjD;YAGL,CAAC,wCAAD,CAAA,EAAmDgI,aAH9C;YAIL,CAAC,yCAAD,CAAA,EAAoDC,cAJ/C;YAKL,GAAGN,iBAAiB,CAACpD,KAArB;SAVJ;QAYE,cAAc,EAAE1L,2BAAoB,CAAC4B,MAAK,CAACyF,cAAP,EAAuB,IAAM;YAC/DxE,OAAO,CAAC2E,UAAR,CAAmB6H,kBAAnB,CAAAxM,CAAAA;SADkC,CAZtC;QAeE,cAAc,EAAE7C,2BAAoB,CAAC4B,MAAK,CAAC6F,cAAP,EAAuBF,+BAAS,CAAC1E,OAAO,CAAC6E,WAAT,CAAhC,CAApC;KAfF,CAAA,EAiBG6H,KAAK,CAACC,IAAN,CAAWR,sBAAsB,CAACvE,KAAlC,CAAA,CAAyCsC,GAAzC,CAA6C,CAAC,CAAChL,KAAD,EAAQ,E,KAAE2E,GAAF,CAAA,E,YAAOoD,UAAP,CAAA,EAAmB,GAAGlI,KAAH,EAA3B,CAAD,GAA4C;QACxF,MAAM6N,QAAQ,GAAGJ,kBAAkB,KAAKtN,KAAxC,AAAA;QACA,OAAA,aACE,CAAA,oBAAA,CAAC,eAAD,EADF;YACY,GAAG,EAAEA,KAAf;YAAsB,OAAO,EAAE+H,UAAU,IAAI2F,QAAvB;SAAtB,EAAA,aACE,CAAA,oBAAA,CAAC,+CAAD,EAAA,oCAAA,CAAA,EAAA,EACM7N,KADN,EADF;YAGI,GAAG,EAAExB,kBAAW,CAACsG,GAAD,EAAOjE,CAAAA,IAAD,GAAU;gBAC9B,mEAAA;gBACA,kDAAA;gBACA,IAAIgN,QAAQ,IAAIhN,IAAhB,EAAsByM,UAAU,CAACzM,IAAD,CAAV,CAAtB;aAHc,CAIf;SANH,CAAA,CADF,CADF,CAEI;KAJL,CAjBH,CADF,CAgCK;CA/D4B,CAAnC,AAkEC;AAED,oGAAA,CAEA,MAAMiN,sCAAgB,GAAG,YAAzB,AAAA;AAKA,MAAMC,gCAAU,GAAA,aAAG9P,CAAAA,iBAAA,CACjB,CAAC+B,KAAD,EAAsCC,YAAtC,GAAuD;IACrD,MAAM,E,uBAAEC,qBAAF,CAAA,EAAyB,GAAG8N,UAAH,EAAzB,GAA2ChO,KAAjD,AAAM;IACN,MAAMiB,OAAO,GAAGrB,8CAAwB,CAACkO,sCAAD,EAAmB5N,qBAAnB,CAAxC,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,0CAAD,CAAsB,QAAtB,EADF;QACiC,KAAK,EAAEA,qBAAP;KAA/B,EAAA,aACE,CAAA,oBAAA,CAAC,0CAAD,CAAsB,IAAtB,EADF;QAC6B,KAAK,EAAEA,qBAAP;KAA3B,EAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,GAAX,EADF,oCAAA,CAAA;QACiB,GAAG,EAAEe,OAAO,CAACV,GAAb;KAAf,EAAqCyN,UAArC,EAAA;QAAiD,GAAG,EAAE/N,YAAL;KAAjD,CAAA,CADF,CADF,CADF,CAGM;CARS,CAAnB,AAYG;AAGH,oGAAA,CAEA,MAAMgO,gCAAU,GAAG;IAAC,YAAD;IAAe,WAAf;IAA4B,SAA5B;IAAuC,WAAvC;CAAnB,AAAA;AACA,MAAMC,2CAAqB,GAAG,gBAA9B,AAAA;AAKA,MAAMC,oCAAc,GAAA,aAAGlQ,CAAAA,iBAAA,CACrB,CAAC+B,KAAD,EAA0CC,YAA1C,GAA2D;IACzD,MAAM,E,uBAAEC,qBAAF,CAAA,EAAyB,GAAG8N,UAAH,EAAzB,GAA2ChO,KAAjD,AAAM;IACN,MAAMwI,QAAQ,GAAGhJ,6CAAuB,CAACU,qBAAD,CAAxC,AAAA;IACA,MAAMe,OAAO,GAAGrB,8CAAwB,CAACsO,2CAAD,EAAwBhO,qBAAxB,CAAxC,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,0CAAD,CAAsB,QAAtB,EADF;QACiC,KAAK,EAAEA,qBAAP;KAA/B,EAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,MAAX,EAAA,oCAAA,CAAA,EAAA,EACM8N,UADN,EADF;QAGI,GAAG,EAAE/N,YAFP;QAGE,SAAS,EAAE7B,2BAAoB,CAAC4B,KAAK,CAACiG,SAAP,EAAmBC,CAAAA,KAAD,GAAW;YAC1D,MAAMkI,oBAAoB,GAAG;gBAAC,MAAD;gBAAS,KAAT;mBAAmBH,gCAAnB;aAAA,CAA+BI,QAA/B,CAAwCnI,KAAK,CAACK,GAA9C,CAA7B,AAAA;YACA,IAAI6H,oBAAJ,EAA0B;gBACxB,IAAIE,cAAc,GAAG9F,QAAQ,EAAA,CAAG2C,GAAX,CAAgBnC,CAAAA,IAAD,GAAUA,IAAI,CAAClE,GAAL,CAAStC,OAAlC;gBAAA,CAArB,AAAA;gBACA,MAAM+L,WAAW,GAAGtN,OAAO,CAACV,GAAR,KAAgB,KAAhB,GAAwB,YAAxB,GAAuC,WAA3D,AAAA;gBACA,MAAMiO,QAAQ,GAAG;oBAACD,WAAD;oBAAc,SAAd;oBAAyB,KAAzB;iBAAjB,AAAA;gBACA,IAAIC,QAAQ,CAACH,QAAT,CAAkBnI,KAAK,CAACK,GAAxB,CAAJ,EAAkC+H,cAAc,CAAC/J,OAAf,EAAlC,CAAA;gBACA,IAAI0J,gCAAU,CAACI,QAAX,CAAoBnI,KAAK,CAACK,GAA1B,CAAJ,EAAoC;oBAClC,MAAMkI,YAAY,GAAGH,cAAc,CAACjD,OAAf,CAAuBnF,KAAK,CAACqG,aAA7B,CAArB,AAAA;oBACA+B,cAAc,GAAGA,cAAc,CAACxB,KAAf,CAAqB2B,YAAY,GAAG,CAApC,CAAjB,CAAAH;iBACD;gBACD;;;WAGd,CACc3L,UAAU,CAAC,IAAM2B,gCAAU,CAACgK,cAAD,CAAjB;gBAAA,CAAV,CAbwB,CAexB,uCAFA3L;gBAGAuD,KAAK,CAACO,cAAN,EAAAP,CAAAA;aACD;SAnB4B,CAoB9B;KAvBH,CAAA,CADF,CADF,CAEI;CARe,CAAvB,AAmCG;AAGH;;;;;;;;;GASA,CACA,SAAS9B,2CAAT,CAA+BsK,SAA/B,EAAuD;IACrD,MAAMC,KAAoB,GAAG,EAA7B,AAAA;IACA,MAAMC,MAAM,GAAGhE,QAAQ,CAACiE,gBAAT,CAA0BH,SAA1B,EAAqCI,UAAU,CAACC,YAAhD,EAA8D;QAC3EC,UAAU,EAAGnO,CAAAA,IAAD,GAAe;YACzB,MAAMoO,aAAa,GAAGpO,IAAI,CAACqO,OAAL,KAAiB,OAAjB,IAA4BrO,IAAI,CAACsO,IAAL,KAAc,QAAhE,AAAA;YACA,IAAItO,IAAI,CAAC8D,QAAL,IAAiB9D,IAAI,CAACuO,MAAtB,IAAgCH,aAApC,EAAmD,OAAOH,UAAU,CAACO,WAAlB,CAF1B,CAGzB,2EADA;YAEA,yEAAA;YACA,mDAAA;YACA,OAAOxO,IAAI,CAACyO,QAAL,IAAiB,CAAjB,GAAqBR,UAAU,CAACS,aAAhC,GAAgDT,UAAU,CAACO,WAAlE,CAAA;SACD;KARY,CAAf,AAA6E;IAU7E,MAAOT,MAAM,CAACY,QAAP,EAAP,CAA0Bb,KAAK,CAACc,IAAN,CAAWb,MAAM,CAACc,WAAlB,CAAA,CAZ2B,CAarD,gFADA;IAEA,uEAAA;IACA,OAAOf,KAAP,CAAA;CACD;AAED,SAASrK,gCAAT,CAAoBH,UAApB,EAA+C;IAC7C,MAAMwL,wBAAwB,GAAG/E,QAAQ,CAACC,aAA1C,AAAA;IACA,OAAO1G,UAAU,CAAC6H,IAAX,CAAiBU,CAAAA,SAAD,GAAe;QACpC,8FAAA;QACA,IAAIA,SAAS,KAAKiD,wBAAlB,EAA4C,OAAO,IAAP,CAA5C;QACAjD,SAAS,CAAC5B,KAAV,EAAA4B,CAAAA;QACA,OAAO9B,QAAQ,CAACC,aAAT,KAA2B8E,wBAAlC,CAAA;KAJK,CAAP,CAKC;CACF;AAED,SAASlL,wCAAT,CAA4BN,UAA5B,EAAuD;IACrDA,UAAU,CAACyL,OAAX,CAAoBlD,CAAAA,SAAD,GAAe;QAChCA,SAAS,CAACmD,OAAV,CAAkBC,QAAlB,GAA6BpD,SAAS,CAACqD,YAAV,CAAuB,UAAvB,CAAA,IAAsC,EAAnE,CAAArD;QACAA,SAAS,CAACsD,YAAV,CAAuB,UAAvB,EAAmC,IAAnC,CAAAtD,CAAAA;KAFF,CAGC,CAAA;IACD,OAAO,IAAM;QACXvI,UAAU,CAACyL,OAAX,CAAoBlD,CAAAA,SAAD,GAAe;YAChC,MAAMuD,YAAY,GAAGvD,SAAS,CAACmD,OAAV,CAAkBC,QAAvC,AAAA;YACApD,SAAS,CAACsD,YAAV,CAAuB,UAAvB,EAAmCC,YAAnC,CAAAvD,CAAAA;SAFF,CAGC,CAAA;KAJH,CAKC;CACF;AAED,SAASlD,uCAAT,CAA2B0G,OAA3B,EAAwDC,QAAxD,EAA8E;IAC5E,MAAMC,YAAY,GAAGnR,qBAAc,CAACkR,QAAD,CAAnC,AAAA;IACAnR,sBAAe,CAAC,IAAM;QACpB,IAAIqR,GAAG,GAAG,CAAV,AAAA;QACA,IAAIH,OAAJ,EAAa;YACX;;;;;;SAMN,CACM,MAAMI,cAAc,GAAG,IAAIC,cAAJ,CAAmB,IAAM;gBAC9CC,oBAAoB,CAACH,GAAD,CAApB,CAAAG;gBACAH,GAAG,GAAG/N,MAAM,CAACmO,qBAAP,CAA6BL,YAA7B,CAAN,CAAAC;aAFqB,CAAvB,AAGC;YACDC,cAAc,CAACI,OAAf,CAAuBR,OAAvB,CAAAI,CAAAA;YACA,OAAO,IAAM;gBACXhO,MAAM,CAACkO,oBAAP,CAA4BH,GAA5B,CAAA/N,CAAAA;gBACAgO,cAAc,CAACK,SAAf,CAAyBT,OAAzB,CAAAI,CAAAA;aAFF,CAGC;SACF;KAnBY,EAoBZ;QAACJ,OAAD;QAAUE,YAAV;KApBY,CAAf,CAoBC;CACF;AAED,SAAS5K,kCAAT,CAAsBF,IAAtB,EAAqC;IACnC,OAAOA,IAAI,GAAG,MAAH,GAAY,QAAvB,CAAA;CACD;AAED,SAASL,mCAAT,CAAuBC,MAAvB,EAAuC/E,KAAvC,EAAsD;IACpD,OAAQ,CAAA,EAAE+E,MAAO,CAAA,SAAA,EAAW/E,KAAM,CAAA,CAAlC,CAAA;CACD;AAED,SAASiF,mCAAT,CAAuBF,MAAvB,EAAuC/E,KAAvC,EAAsD;IACpD,OAAQ,CAAA,EAAE+E,MAAO,CAAA,SAAA,EAAW/E,KAAM,CAAA,CAAlC,CAAA;CACD;AAED,SAASwF,+BAAT,CAAsBiL,OAAtB,EAA2F;IACzF,OAAQ1K,CAAAA,KAAD,GAAYA,KAAK,CAAC2K,WAAN,KAAsB,OAAtB,GAAgCD,OAAO,CAAC1K,KAAD,CAAvC,GAAiDX,SAApE;IAAA,CAAA;CACD;AAED,oGAAA,CAEA,MAAM/H,yCAAI,GAAGT,yCAAb,AAAA;AACA,MAAMU,yCAAG,GAAGT,yCAAZ,AAAA;AACA,MAAMU,yCAAI,GAAGT,yCAAb,AAAA;AACA,MAAMU,yCAAI,GAAGT,yCAAb,AAAA;AACA,MAAMU,yCAAO,GAAGT,wCAAhB,AAAA;AACA,MAAMU,yCAAI,GAAGT,yCAAb,AAAA;AACA,MAAMU,yCAAS,GAAGT,yCAAlB,AAAA;AACA,MAAMU,yCAAO,GAAGT,yCAAhB,AAAA;AACA,MAAMU,wCAAQ,GAAGT,yCAAjB,AAAA;;AD5nCA","sources":["packages/react/navigation-menu/src/index.ts","packages/react/navigation-menu/src/NavigationMenu.tsx"],"sourcesContent":["export {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n} from './NavigationMenu';\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n} from './NavigationMenu';\n","/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection<FocusGroupItemElement, {}>(NAVIGATION_MENU_NAME);\n\ntype ScopedProps<P> = P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref<ViewportContentMounterElement>;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onItemOver(itemValue: string): void;\n onItemLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext<NavigationMenuContextValue>(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map<string, ContentData>;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ElementRef<typeof Primitive.nav>;\ntype PrimitiveNavProps = Radix.ComponentPropsWithoutRef<typeof Primitive.nav>;\ninterface NavigationMenuProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveNavProps, 'defaultValue'> {\n dir?: Direction;\n orientation?: Orientation;\n}\n\nconst NavigationMenu = React.forwardRef<NavigationMenuElement, NavigationMenuProps>(\n (props: ScopedProps<NavigationMenuProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState<NavigationMenuElement | null>(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={true}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={direction}\n orientation={orientation}\n rootNavigationMenu={navigationMenu}\n >\n <Primitive.nav\n aria-label=\"Main\"\n data-orientation={orientation}\n dir={direction}\n {...NavigationMenuProps}\n ref={composedRef}\n />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface NavigationMenuSubProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n Omit<PrimitiveDivProps, 'defaultValue'> {\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef<NavigationMenuSubElement, NavigationMenuSubProps>(\n (props: ScopedProps<NavigationMenuSubProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={false}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n dir={context.dir}\n orientation={orientation}\n rootNavigationMenu={context.rootNavigationMenu}\n >\n <Primitive.div data-orientation={orientation} {...subProps} ref={forwardedRef} />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst NavigationMenuProvider: React.FC<NavigationMenuProviderProps> = (\n props: ScopedProps<NavigationMenuProviderProps>\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n dir,\n orientation,\n children,\n } = props;\n const [viewport, setViewport] = React.useState<NavigationMenuViewportElement | null>(null);\n const [viewportContent, setViewportContent] = React.useState<Map<string, ContentData>>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState<HTMLDivElement | null>(null);\n const closeTimerRef = React.useRef(0);\n const [value = '', setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n React.useEffect(() => {\n return () => window.clearTimeout(closeTimerRef.current);\n }, [closeTimerRef]);\n\n return (\n <NavigationMenuProviderImpl\n scope={scope}\n isRootMenu={isRootMenu}\n rootNavigationMenu={rootNavigationMenu}\n value={value}\n previousValue={usePrevious(value)}\n baseId={useId()}\n dir={dir}\n orientation={orientation}\n viewport={viewport}\n onViewportChange={setViewport}\n indicatorTrack={indicatorTrack}\n onIndicatorTrackChange={setIndicatorTrack}\n onItemOver={React.useCallback(\n (itemValue) => {\n if (isRootMenu) window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue, isRootMenu]\n )}\n onItemLeave={React.useCallback(() => {\n if (isRootMenu) {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }\n }, [setValue, isRootMenu])}\n onItemSelect={React.useCallback(\n (itemValue) => {\n setValue((prevValue) => {\n return isRootMenu ? (prevValue === itemValue ? '' : itemValue) : itemValue;\n });\n },\n [setValue, isRootMenu]\n )}\n onItemDismiss={React.useCallback(() => setValue(''), [setValue])}\n onViewportContentChange={React.useCallback((contentValue, contentData) => {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n <Collection.Provider scope={scope}>\n <ViewportContentProvider scope={scope} items={viewportContent}>\n {children}\n </ViewportContentProvider>\n </Collection.Provider>\n </NavigationMenuProviderImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ElementRef<typeof Primitive.ul>;\ntype PrimitiveUnorderedListProps = Radix.ComponentPropsWithoutRef<typeof Primitive.ul>;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef<NavigationMenuListElement, NavigationMenuListProps>(\n (props: ScopedProps<NavigationMenuListProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n <Primitive.ul data-orientation={context.orientation} {...listProps} ref={forwardedRef} />\n );\n\n return (\n <Primitive.div style={{ position: 'relative' }} ref={context.onIndicatorTrackChange}>\n <Collection.Slot scope={__scopeNavigationMenu}>\n {context.isRootMenu ? <FocusGroup asChild>{list}</FocusGroup> : list}\n </Collection.Slot>\n </Primitive.div>\n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ElementRef<typeof VisuallyHiddenPrimitive.Root>;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n contentRef: React.RefObject<NavigationMenuContentElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext<NavigationMenuItemContextValue>(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ElementRef<typeof Primitive.li>;\ntype PrimitiveListItemProps = Radix.ComponentPropsWithoutRef<typeof Primitive.li>;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef<NavigationMenuItemElement, NavigationMenuItemProps>(\n (props: ScopedProps<NavigationMenuItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef<NavigationMenuContentElement>(null);\n const triggerRef = React.useRef<NavigationMenuTriggerElement>(null);\n const focusProxyRef = React.useRef<FocusProxyElement>(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n <NavigationMenuItemContextProvider\n scope={__scopeNavigationMenu}\n value={value}\n triggerRef={triggerRef}\n contentRef={contentRef}\n focusProxyRef={focusProxyRef}\n onEntryKeyDown={handleContentEntry}\n onFocusProxyEnter={handleContentEntry}\n onRootContentClose={handleContentExit}\n onContentFocusOutside={handleContentExit}\n >\n <Primitive.li {...itemProps} ref={forwardedRef} />\n </NavigationMenuItemContextProvider>\n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps<NavigationMenuTriggerProps>, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuTriggerElement>(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n <Collection.ItemSlot scope={__scopeNavigationMenu} value={itemContext.value}>\n <FocusGroupItem asChild>\n <Primitive.button\n id={triggerId}\n disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n data-state={getOpenState(open)}\n aria-expanded={open}\n aria-controls={contentId}\n {...triggerProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n wasClickCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (disabled || wasClickCloseRef.current) return;\n context.onItemOver(itemContext.value);\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onItemLeave();\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n </FocusGroupItem>\n </Collection.ItemSlot>\n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n <VisuallyHiddenPrimitive.Root\n aria-hidden\n tabIndex={0}\n ref={itemContext.focusProxyRef}\n onFocus={(event) => {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && <span aria-owns={contentId} />}\n </>\n )}\n </>\n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\nconst LINK_SELECT = 'navigationMenu.linkSelect';\n\ntype NavigationMenuLinkElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface NavigationMenuLinkProps extends Omit<PrimitiveLinkProps, 'onSelect'> {\n active?: boolean;\n onSelect?: (event: Event) => void;\n}\n\nconst NavigationMenuLink = React.forwardRef<NavigationMenuLinkElement, NavigationMenuLinkProps>(\n (props: ScopedProps<NavigationMenuLinkProps>, forwardedRef) => {\n const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;\n\n return (\n <FocusGroupItem asChild>\n <Primitive.a\n data-active={active ? '' : undefined}\n aria-current={active ? 'page' : undefined}\n {...linkProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(\n props.onClick,\n (event) => {\n const target = event.target as HTMLElement;\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n });\n target.addEventListener(LINK_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(target, linkSelectEvent);\n\n if (!linkSelectEvent.defaultPrevented) {\n const rootContentDismissEvent = new CustomEvent(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n dispatchDiscreteCustomEvent(target, rootContentDismissEvent);\n }\n },\n { checkForDefaultPrevented: false }\n )}\n />\n </FocusGroupItem>\n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps<NavigationMenuIndicatorProps>, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n <Presence present={forceMount || isVisible}>\n <NavigationMenuIndicatorImpl {...indicatorProps} ref={forwardedRef} />\n </Presence>,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps<NavigationMenuIndicatorImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState<NavigationMenuTriggerElement | null>(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n <Primitive.div\n aria-hidden\n data-state={isVisible ? 'visible' : 'hidden'}\n data-orientation={context.orientation}\n {...indicatorProps}\n ref={forwardedRef}\n style={{\n position: 'absolute',\n ...(isHorizontal\n ? {\n left: 0,\n width: position.size + 'px',\n transform: `translateX(${position.offset}px)`,\n }\n : {\n top: 0,\n height: position.size + 'px',\n transform: `translateY(${position.offset}px)`,\n }),\n ...indicatorProps.style,\n }}\n />\n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit<NavigationMenuContentImplProps, keyof NavigationMenuContentImplPrivateProps> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps<NavigationMenuContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n <Presence present={forceMount || open}>\n <NavigationMenuContentImpl\n data-state={getOpenState(open)}\n {...commonProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(itemContext.value);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ...commonProps.style,\n }}\n />\n </Presence>\n ) : (\n <ViewportContentMounter forceMount={forceMount} {...commonProps} ref={composedRefs} />\n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps<ViewportContentMounterProps>, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ElementRef<typeof DismissableLayer>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement>;\n focusProxyRef: React.RefObject<FocusProxyElement>;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit<DismissableLayerProps, 'onDismiss'>,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps<NavigationMenuContentImplProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuContentImplElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef<MotionAttribute | null>(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n <FocusGroup asChild>\n <DismissableLayer\n id={contentId}\n aria-labelledby={triggerId}\n data-motion={motionAttribute}\n data-orientation={context.orientation}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => {\n const rootContentDismissEvent = new Event(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(rootContentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n />\n </FocusGroup>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit<NavigationMenuViewportImplProps, 'children' | 'activeContentValue'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps<NavigationMenuViewportProps>, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n <Presence present={forceMount || open}>\n <NavigationMenuViewportImpl {...viewportProps} ref={forwardedRef} />\n </Presence>\n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ElementRef<typeof Primitive.div>;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps<NavigationMenuViewportImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState<NavigationMenuContentElement | null>(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n <Primitive.div\n data-state={getOpenState(open)}\n data-orientation={context.orientation}\n {...viewportImplProps}\n ref={composedRefs}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ['--radix-navigation-menu-viewport-width' as any]: viewportWidth,\n ['--radix-navigation-menu-viewport-height' as any]: viewportHeight,\n ...viewportImplProps.style,\n }}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n context.onItemOver(activeContentValue);\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onItemLeave))}\n >\n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n <Presence key={value} present={forceMount || isActive}>\n <NavigationMenuContentImpl\n {...props}\n ref={composeRefs(ref, (node) => {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n </Presence>\n );\n })}\n </Primitive.div>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ElementRef<typeof Primitive.div>;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef<FocusGroupElement, FocusGroupProps>(\n (props: ScopedProps<FocusGroupProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.Provider scope={__scopeNavigationMenu}>\n <FocusGroupCollection.Slot scope={__scopeNavigationMenu}>\n <Primitive.div dir={context.dir} {...groupProps} ref={forwardedRef} />\n </FocusGroupCollection.Slot>\n </FocusGroupCollection.Provider>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ElementRef<typeof Primitive.button>;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef<FocusGroupItemElement, FocusGroupItemProps>(\n (props: ScopedProps<FocusGroupItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.ItemSlot scope={__scopeNavigationMenu}>\n <Primitive.button\n {...groupProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n </FocusGroupCollection.ItemSlot>\n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n"],"names":["createNavigationMenuScope","NavigationMenu","NavigationMenuSub","NavigationMenuList","NavigationMenuItem","NavigationMenuTrigger","NavigationMenuLink","NavigationMenuIndicator","NavigationMenuContent","NavigationMenuViewport","Root","Sub","List","Item","Trigger","Link","Indicator","Content","Viewport","React","ReactDOM","createContextScope","composeEventHandlers","Primitive","dispatchDiscreteCustomEvent","useControllableState","composeRefs","useComposedRefs","useDirection","Presence","useId","createCollection","DismissableLayer","usePrevious","useLayoutEffect","useCallbackRef","VisuallyHiddenPrimitive","NAVIGATION_MENU_NAME","Collection","useCollection","createCollectionScope","FocusGroupCollection","useFocusGroupCollection","createFocusGroupCollectionScope","createNavigationMenuContext","NavigationMenuProviderImpl","useNavigationMenuContext","ViewportContentProvider","useViewportContentContext","forwardRef","props","forwardedRef","__scopeNavigationMenu","value","onValueChange","defaultValue","orientation","dir","NavigationMenuProps","navigationMenu","setNavigationMenu","useState","composedRef","node","direction","SUB_NAME","subProps","context","rootNavigationMenu","NavigationMenuProvider","scope","isRootMenu","valueProp","children","viewport","setViewport","viewportContent","setViewportContent","Map","indicatorTrack","setIndicatorTrack","closeTimerRef","useRef","setValue","prop","onChange","defaultProp","useEffect","window","clearTimeout","current","useCallback","itemValue","setTimeout","prevValue","contentValue","contentData","prevContent","set","has","delete","LIST_NAME","listProps","list","position","onIndicatorTrackChange","ITEM_NAME","NavigationMenuItemContextProvider","useNavigationMenuItemContext","itemProps","autoValue","contentRef","triggerRef","focusProxyRef","restoreContentTabOrderRef","handleContentEntry","side","candidates","getTabbableCandidates","length","focusFirst","reverse","handleContentExit","removeFromTabOrder","TRIGGER_NAME","disabled","triggerProps","itemContext","ref","composedRefs","triggerId","makeTriggerId","baseId","contentId","makeContentId","wasClickCloseRef","open","undefined","getOpenState","onPointerEnter","onPointerMove","whenMouse","onItemOver","onPointerLeave","onItemLeave","onClick","onItemSelect","onKeyDown","event","verticalEntryKey","entryKey","horizontal","vertical","key","onEntryKeyDown","preventDefault","content","prevFocusedElement","relatedTarget","wasTriggerFocused","wasFocusFromContent","contains","onFocusProxyEnter","LINK_NAME","LINK_SELECT","active","onSelect","linkProps","target","linkSelectEvent","CustomEvent","bubbles","cancelable","addEventListener","once","defaultPrevented","rootContentDismissEvent","ROOT_CONTENT_DISMISS","checkForDefaultPrevented","INDICATOR_NAME","forceMount","indicatorProps","isVisible","Boolean","createPortal","NavigationMenuIndicatorImpl","getItems","activeTrigger","setActiveTrigger","setPosition","isHorizontal","items","triggerNode","find","item","handlePositionChange","size","offsetWidth","offsetHeight","offset","offsetLeft","offsetTop","useResizeObserver","left","width","transform","top","height","style","CONTENT_NAME","contentProps","commonProps","onContentFocusOutside","onRootContentClose","pointerEvents","ViewportContentMounter","onViewportContentChange","onViewportContentRemove","NavigationMenuContentImpl","prevMotionAttributeRef","onItemDismiss","handleClose","document","activeElement","focus","removeEventListener","motionAttribute","useMemo","values","map","index","indexOf","prevIndex","previousValue","isSelected","wasSelected","attribute","Event","dispatchEvent","onFocusOutside","onPointerDownOutside","isTrigger","some","isRootViewport","isMetaKey","altKey","ctrlKey","metaKey","isTabKey","currentTarget","focusedElement","findIndex","candidate","isMovingBackwards","shiftKey","nextCandidates","slice","VIEWPORT_NAME","viewportProps","NavigationMenuViewportImpl","viewportImplProps","onViewportChange","viewportContentContext","setSize","setContent","viewportWidth","viewportHeight","activeContentValue","handleSizeChange","Array","from","isActive","FOCUS_GROUP_NAME","FocusGroup","groupProps","ARROW_KEYS","FOCUS_GROUP_ITEM_NAME","FocusGroupItem","isFocusNavigationKey","includes","candidateNodes","prevItemKey","prevKeys","currentIndex","container","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","previouslyFocusedElement","forEach","dataset","tabindex","getAttribute","setAttribute","prevTabIndex","element","onResize","handleResize","rAF","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","unobserve","handler","pointerType"],"version":3,"file":"index.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-navigation-menu",
3
- "version": "0.1.3-rc.7",
3
+ "version": "1.0.0-rc.1",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -17,20 +17,20 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@babel/runtime": "^7.13.10",
20
- "@radix-ui/primitive": "0.1.0",
21
- "@radix-ui/react-collection": "0.1.5-rc.4",
22
- "@radix-ui/react-compose-refs": "0.1.1-rc.4",
23
- "@radix-ui/react-context": "0.1.2-rc.4",
24
- "@radix-ui/react-direction": "0.1.0-rc.7",
25
- "@radix-ui/react-dismissable-layer": "0.1.6-rc.4",
26
- "@radix-ui/react-id": "0.1.6-rc.4",
27
- "@radix-ui/react-presence": "0.1.3-rc.4",
28
- "@radix-ui/react-primitive": "0.1.5-rc.4",
29
- "@radix-ui/react-use-callback-ref": "0.1.1-rc.4",
30
- "@radix-ui/react-use-controllable-state": "0.1.1-rc.4",
31
- "@radix-ui/react-use-layout-effect": "0.1.1-rc.4",
32
- "@radix-ui/react-use-previous": "0.1.2-rc.4",
33
- "@radix-ui/react-visually-hidden": "0.1.5-rc.4"
20
+ "@radix-ui/primitive": "1.0.0-rc.1",
21
+ "@radix-ui/react-collection": "1.0.0-rc.1",
22
+ "@radix-ui/react-compose-refs": "1.0.0-rc.1",
23
+ "@radix-ui/react-context": "1.0.0-rc.1",
24
+ "@radix-ui/react-direction": "1.0.0-rc.1",
25
+ "@radix-ui/react-dismissable-layer": "1.0.0-rc.1",
26
+ "@radix-ui/react-id": "1.0.0-rc.1",
27
+ "@radix-ui/react-presence": "1.0.0-rc.1",
28
+ "@radix-ui/react-primitive": "1.0.0-rc.1",
29
+ "@radix-ui/react-use-callback-ref": "1.0.0-rc.1",
30
+ "@radix-ui/react-use-controllable-state": "1.0.0-rc.1",
31
+ "@radix-ui/react-use-layout-effect": "1.0.0-rc.1",
32
+ "@radix-ui/react-use-previous": "1.0.0-rc.1",
33
+ "@radix-ui/react-visually-hidden": "1.0.0-rc.1"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "react": "^16.8 || ^17.0 || ^18.0",