@radix-ui/react-navigation-menu 1.2.18 → 1.2.19-rc.1784074599772

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.mjs CHANGED
@@ -1,4 +1,6 @@
1
1
  "use client";
2
+ var __defProp = Object.defineProperty;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
4
 
3
5
  // src/navigation-menu.tsx
4
6
  import * as React from "react";
@@ -27,8 +29,8 @@ var [createNavigationMenuContext, createNavigationMenuScope] = createContextScop
27
29
  );
28
30
  var [NavigationMenuProviderImpl, useNavigationMenuContext] = createNavigationMenuContext(NAVIGATION_MENU_NAME);
29
31
  var [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext(NAVIGATION_MENU_NAME);
30
- var NavigationMenu = React.forwardRef(
31
- (props, forwardedRef) => {
32
+ var NavigationMenu = /* @__PURE__ */ React.forwardRef(
33
+ /* @__PURE__ */ __name(function NavigationMenu2(props, forwardedRef) {
32
34
  const {
33
35
  __scopeNavigationMenu,
34
36
  value: valueProp,
@@ -49,7 +51,7 @@ var NavigationMenu = React.forwardRef(
49
51
  const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);
50
52
  const [value, setValue] = useControllableState({
51
53
  prop: valueProp,
52
- onChange: (value2) => {
54
+ onChange: /* @__PURE__ */ __name((value2) => {
53
55
  const isOpen = value2 !== "";
54
56
  const hasSkipDelayDuration = skipDelayDuration > 0;
55
57
  if (isOpen) {
@@ -63,7 +65,7 @@ var NavigationMenu = React.forwardRef(
63
65
  );
64
66
  }
65
67
  onValueChange?.(value2);
66
- },
68
+ }, "onChange"),
67
69
  defaultProp: defaultValue ?? "",
68
70
  caller: NAVIGATION_MENU_NAME
69
71
  });
@@ -135,12 +137,12 @@ var NavigationMenu = React.forwardRef(
135
137
  )
136
138
  }
137
139
  );
138
- }
140
+ }, "NavigationMenu")
139
141
  );
140
- NavigationMenu.displayName = NAVIGATION_MENU_NAME;
141
142
  var SUB_NAME = "NavigationMenuSub";
142
- var NavigationMenuSub = React.forwardRef(
143
- (props, forwardedRef) => {
143
+ var NavigationMenuSub = /* @__PURE__ */ React.forwardRef(
144
+ // blank line to reduce diff noise
145
+ /* @__PURE__ */ __name(function NavigationMenuSub2(props, forwardedRef) {
144
146
  const {
145
147
  __scopeNavigationMenu,
146
148
  value: valueProp,
@@ -171,10 +173,9 @@ var NavigationMenuSub = React.forwardRef(
171
173
  children: /* @__PURE__ */ jsx(Primitive.div, { "data-orientation": orientation, ...subProps, ref: forwardedRef })
172
174
  }
173
175
  );
174
- }
176
+ }, "NavigationMenuSub")
175
177
  );
176
- NavigationMenuSub.displayName = SUB_NAME;
177
- var NavigationMenuProvider = (props) => {
178
+ var NavigationMenuProvider = /* @__PURE__ */ __name((props) => {
178
179
  const {
179
180
  scope,
180
181
  isRootMenu,
@@ -230,21 +231,22 @@ var NavigationMenuProvider = (props) => {
230
231
  children: /* @__PURE__ */ jsx(Collection.Provider, { scope, children: /* @__PURE__ */ jsx(ViewportContentProvider, { scope, items: viewportContent, children }) })
231
232
  }
232
233
  );
233
- };
234
+ }, "NavigationMenuProvider");
234
235
  var LIST_NAME = "NavigationMenuList";
235
- var NavigationMenuList = React.forwardRef(
236
- (props, forwardedRef) => {
236
+ var NavigationMenuList = /* @__PURE__ */ React.forwardRef(
237
+ // blank line to reduce diff noise
238
+ /* @__PURE__ */ __name(function NavigationMenuList2(props, forwardedRef) {
237
239
  const { __scopeNavigationMenu, ...listProps } = props;
238
240
  const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);
239
241
  const list = /* @__PURE__ */ jsx(Primitive.ul, { "data-orientation": context.orientation, ...listProps, ref: forwardedRef });
240
242
  return /* @__PURE__ */ jsx(Primitive.div, { style: { position: "relative" }, ref: context.onIndicatorTrackChange, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeNavigationMenu, children: context.isRootMenu ? /* @__PURE__ */ jsx(FocusGroup, { asChild: true, children: list }) : list }) });
241
- }
243
+ }, "NavigationMenuList")
242
244
  );
243
- NavigationMenuList.displayName = LIST_NAME;
244
245
  var ITEM_NAME = "NavigationMenuItem";
245
246
  var [NavigationMenuItemContextProvider, useNavigationMenuItemContext] = createNavigationMenuContext(ITEM_NAME);
246
- var NavigationMenuItem = React.forwardRef(
247
- (props, forwardedRef) => {
247
+ var NavigationMenuItem = /* @__PURE__ */ React.forwardRef(
248
+ // blank line to reduce diff noise
249
+ /* @__PURE__ */ __name(function NavigationMenuItem2(props, forwardedRef) {
248
250
  const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;
249
251
  const autoValue = useId();
250
252
  const value = valueProp || autoValue || "LEGACY_REACT_AUTO_VALUE";
@@ -283,11 +285,10 @@ var NavigationMenuItem = React.forwardRef(
283
285
  children: /* @__PURE__ */ jsx(Primitive.li, { ...itemProps, ref: forwardedRef })
284
286
  }
285
287
  );
286
- }
288
+ }, "NavigationMenuItem")
287
289
  );
288
- NavigationMenuItem.displayName = ITEM_NAME;
289
290
  var TRIGGER_NAME = "NavigationMenuTrigger";
290
- var NavigationMenuTrigger = React.forwardRef((props, forwardedRef) => {
291
+ var NavigationMenuTrigger = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuTrigger2(props, forwardedRef) {
291
292
  const { __scopeNavigationMenu, disabled, ...triggerProps } = props;
292
293
  const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);
293
294
  const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);
@@ -366,12 +367,11 @@ var NavigationMenuTrigger = React.forwardRef((props, forwardedRef) => {
366
367
  context.viewport && /* @__PURE__ */ jsx("span", { "aria-owns": contentId })
367
368
  ] })
368
369
  ] });
369
- });
370
- NavigationMenuTrigger.displayName = TRIGGER_NAME;
371
- var LINK_NAME = "NavigationMenuLink";
370
+ }, "NavigationMenuTrigger"));
372
371
  var LINK_SELECT = "navigationMenu.linkSelect";
373
- var NavigationMenuLink = React.forwardRef(
374
- (props, forwardedRef) => {
372
+ var NavigationMenuLink = /* @__PURE__ */ React.forwardRef(
373
+ // blank line to reduce diff noise
374
+ /* @__PURE__ */ __name(function NavigationMenuLink2(props, forwardedRef) {
375
375
  const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;
376
376
  return /* @__PURE__ */ jsx(FocusGroupItem, { asChild: true, children: /* @__PURE__ */ jsx(
377
377
  Primitive.a,
@@ -402,11 +402,10 @@ var NavigationMenuLink = React.forwardRef(
402
402
  )
403
403
  }
404
404
  ) });
405
- }
405
+ }, "NavigationMenuLink")
406
406
  );
407
- NavigationMenuLink.displayName = LINK_NAME;
408
407
  var INDICATOR_NAME = "NavigationMenuIndicator";
409
- var NavigationMenuIndicator = React.forwardRef((props, forwardedRef) => {
408
+ var NavigationMenuIndicator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuIndicator2(props, forwardedRef) {
410
409
  const { forceMount, ...indicatorProps } = props;
411
410
  const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);
412
411
  const isVisible = Boolean(context.value);
@@ -414,9 +413,8 @@ var NavigationMenuIndicator = React.forwardRef((props, forwardedRef) => {
414
413
  /* @__PURE__ */ jsx(Presence, { present: forceMount || isVisible, children: /* @__PURE__ */ jsx(NavigationMenuIndicatorImpl, { ...indicatorProps, ref: forwardedRef }) }),
415
414
  context.indicatorTrack
416
415
  ) : null;
417
- });
418
- NavigationMenuIndicator.displayName = INDICATOR_NAME;
419
- var NavigationMenuIndicatorImpl = React.forwardRef((props, forwardedRef) => {
416
+ }, "NavigationMenuIndicator"));
417
+ var NavigationMenuIndicatorImpl = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuIndicatorImpl2(props, forwardedRef) {
420
418
  const { __scopeNavigationMenu, ...indicatorProps } = props;
421
419
  const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);
422
420
  const getItems = useCollection(__scopeNavigationMenu);
@@ -431,14 +429,14 @@ var NavigationMenuIndicatorImpl = React.forwardRef((props, forwardedRef) => {
431
429
  const triggerNode = items.find((item) => item.value === context.value)?.ref.current;
432
430
  if (triggerNode) setActiveTrigger(triggerNode);
433
431
  }, [getItems, context.value]);
434
- const handlePositionChange = () => {
432
+ const handlePositionChange = /* @__PURE__ */ __name(() => {
435
433
  if (activeTrigger) {
436
434
  setPosition({
437
435
  size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,
438
436
  offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop
439
437
  });
440
438
  }
441
- };
439
+ }, "handlePositionChange");
442
440
  useResizeObserver(activeTrigger, handlePositionChange);
443
441
  useResizeObserver(context.indicatorTrack, handlePositionChange);
444
442
  return position ? /* @__PURE__ */ jsx(
@@ -466,9 +464,9 @@ var NavigationMenuIndicatorImpl = React.forwardRef((props, forwardedRef) => {
466
464
  }
467
465
  }
468
466
  ) : null;
469
- });
467
+ }, "NavigationMenuIndicatorImpl"));
470
468
  var CONTENT_NAME = "NavigationMenuContent";
471
- var NavigationMenuContent = React.forwardRef((props, forwardedRef) => {
469
+ var NavigationMenuContent = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuContent2(props, forwardedRef) {
472
470
  const { forceMount, ...contentProps } = props;
473
471
  const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);
474
472
  const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);
@@ -501,9 +499,8 @@ var NavigationMenuContent = React.forwardRef((props, forwardedRef) => {
501
499
  }
502
500
  }
503
501
  ) }) : /* @__PURE__ */ jsx(ViewportContentMounter, { forceMount, ...commonProps, ref: composedRefs });
504
- });
505
- NavigationMenuContent.displayName = CONTENT_NAME;
506
- var ViewportContentMounter = React.forwardRef((props, forwardedRef) => {
502
+ }, "NavigationMenuContent"));
503
+ var ViewportContentMounter = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ViewportContentMounter2(props, forwardedRef) {
507
504
  const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);
508
505
  const { onViewportContentChange, onViewportContentRemove } = context;
509
506
  useLayoutEffect(() => {
@@ -516,9 +513,9 @@ var ViewportContentMounter = React.forwardRef((props, forwardedRef) => {
516
513
  return () => onViewportContentRemove(props.value);
517
514
  }, [props.value, onViewportContentRemove]);
518
515
  return null;
519
- });
516
+ }, "ViewportContentMounter"));
520
517
  var ROOT_CONTENT_DISMISS = "navigationMenu.rootContentDismiss";
521
- var NavigationMenuContentImpl = React.forwardRef((props, forwardedRef) => {
518
+ var NavigationMenuContentImpl = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuContentImpl2(props, forwardedRef) {
522
519
  const {
523
520
  __scopeNavigationMenu,
524
521
  value,
@@ -540,11 +537,11 @@ var NavigationMenuContentImpl = React.forwardRef((props, forwardedRef) => {
540
537
  React.useEffect(() => {
541
538
  const content = ref.current;
542
539
  if (context.isRootMenu && content) {
543
- const handleClose = () => {
540
+ const handleClose = /* @__PURE__ */ __name(() => {
544
541
  onItemDismiss();
545
542
  onRootContentClose();
546
543
  if (content.contains(document.activeElement)) triggerRef.current?.focus();
547
- };
544
+ }, "handleClose");
548
545
  content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);
549
546
  return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);
550
547
  }
@@ -617,16 +614,15 @@ var NavigationMenuContentImpl = React.forwardRef((props, forwardedRef) => {
617
614
  })
618
615
  }
619
616
  ) });
620
- });
617
+ }, "NavigationMenuContentImpl"));
621
618
  var VIEWPORT_NAME = "NavigationMenuViewport";
622
- var NavigationMenuViewport = React.forwardRef((props, forwardedRef) => {
619
+ var NavigationMenuViewport = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuViewport2(props, forwardedRef) {
623
620
  const { forceMount, ...viewportProps } = props;
624
621
  const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);
625
622
  const open = Boolean(context.value);
626
623
  return /* @__PURE__ */ jsx(Presence, { present: forceMount || open, children: /* @__PURE__ */ jsx(NavigationMenuViewportImpl, { ...viewportProps, ref: forwardedRef }) });
627
- });
628
- NavigationMenuViewport.displayName = VIEWPORT_NAME;
629
- var NavigationMenuViewportImpl = React.forwardRef((props, forwardedRef) => {
624
+ }, "NavigationMenuViewport"));
625
+ var NavigationMenuViewportImpl = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function NavigationMenuViewportImpl2(props, forwardedRef) {
630
626
  const { __scopeNavigationMenu, children, ...viewportImplProps } = props;
631
627
  const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);
632
628
  const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);
@@ -640,9 +636,9 @@ var NavigationMenuViewportImpl = React.forwardRef((props, forwardedRef) => {
640
636
  const viewportHeight = size ? size?.height + "px" : void 0;
641
637
  const open = Boolean(context.value);
642
638
  const activeContentValue = open ? context.value : context.previousValue;
643
- const handleSizeChange = () => {
639
+ const handleSizeChange = /* @__PURE__ */ __name(() => {
644
640
  if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });
645
- };
641
+ }, "handleSizeChange");
646
642
  useResizeObserver(content, handleSizeChange);
647
643
  return /* @__PURE__ */ jsx(
648
644
  Primitive.div,
@@ -674,8 +670,8 @@ var NavigationMenuViewportImpl = React.forwardRef((props, forwardedRef) => {
674
670
  })
675
671
  }
676
672
  );
677
- });
678
- var NavigationMenuViewportItem = ({
673
+ }, "NavigationMenuViewportImpl"));
674
+ var NavigationMenuViewportItem = /* @__PURE__ */ __name(({
679
675
  contentRef,
680
676
  isActive,
681
677
  onActiveContentChange,
@@ -691,19 +687,19 @@ var NavigationMenuViewportItem = ({
691
687
  );
692
688
  const composedRefs = useComposedRefs(contentRef, handleContentChange);
693
689
  return /* @__PURE__ */ jsx(NavigationMenuContentImpl, { ...props, ref: composedRefs });
694
- };
690
+ }, "NavigationMenuViewportItem");
695
691
  var FOCUS_GROUP_NAME = "FocusGroup";
696
- var FocusGroup = React.forwardRef(
697
- (props, forwardedRef) => {
692
+ var FocusGroup = /* @__PURE__ */ React.forwardRef(
693
+ /* @__PURE__ */ __name(function FocusGroup2(props, forwardedRef) {
698
694
  const { __scopeNavigationMenu, ...groupProps } = props;
699
695
  const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);
700
696
  return /* @__PURE__ */ jsx(FocusGroupCollection.Provider, { scope: __scopeNavigationMenu, children: /* @__PURE__ */ jsx(FocusGroupCollection.Slot, { scope: __scopeNavigationMenu, children: /* @__PURE__ */ jsx(Primitive.div, { dir: context.dir, ...groupProps, ref: forwardedRef }) }) });
701
- }
697
+ }, "FocusGroup")
702
698
  );
703
699
  var ARROW_KEYS = ["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"];
704
700
  var FOCUS_GROUP_ITEM_NAME = "FocusGroupItem";
705
- var FocusGroupItem = React.forwardRef(
706
- (props, forwardedRef) => {
701
+ var FocusGroupItem = /* @__PURE__ */ React.forwardRef(
702
+ /* @__PURE__ */ __name(function FocusGroupItem2(props, forwardedRef) {
707
703
  const { __scopeNavigationMenu, ...groupProps } = props;
708
704
  const getItems = useFocusGroupCollection(__scopeNavigationMenu);
709
705
  const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);
@@ -729,20 +725,21 @@ var FocusGroupItem = React.forwardRef(
729
725
  })
730
726
  }
731
727
  ) });
732
- }
728
+ }, "FocusGroupItem")
733
729
  );
734
730
  function getTabbableCandidates(container) {
735
731
  const nodes = [];
736
732
  const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
737
- acceptNode: (node) => {
733
+ acceptNode: /* @__PURE__ */ __name((node) => {
738
734
  const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
739
735
  if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;
740
736
  return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
741
- }
737
+ }, "acceptNode")
742
738
  });
743
739
  while (walker.nextNode()) nodes.push(walker.currentNode);
744
740
  return nodes;
745
741
  }
742
+ __name(getTabbableCandidates, "getTabbableCandidates");
746
743
  function focusFirst(candidates) {
747
744
  const previouslyFocusedElement = document.activeElement;
748
745
  return candidates.some((candidate) => {
@@ -751,6 +748,7 @@ function focusFirst(candidates) {
751
748
  return document.activeElement !== previouslyFocusedElement;
752
749
  });
753
750
  }
751
+ __name(focusFirst, "focusFirst");
754
752
  function removeFromTabOrder(candidates) {
755
753
  candidates.forEach((candidate) => {
756
754
  candidate.dataset.tabindex = candidate.getAttribute("tabindex") || "";
@@ -763,6 +761,7 @@ function removeFromTabOrder(candidates) {
763
761
  });
764
762
  };
765
763
  }
764
+ __name(removeFromTabOrder, "removeFromTabOrder");
766
765
  function useResizeObserver(element, onResize) {
767
766
  const handleResize = useCallbackRef(onResize);
768
767
  useLayoutEffect(() => {
@@ -780,18 +779,23 @@ function useResizeObserver(element, onResize) {
780
779
  }
781
780
  }, [element, handleResize]);
782
781
  }
782
+ __name(useResizeObserver, "useResizeObserver");
783
783
  function getOpenState(open) {
784
784
  return open ? "open" : "closed";
785
785
  }
786
+ __name(getOpenState, "getOpenState");
786
787
  function makeTriggerId(baseId, value) {
787
788
  return `${baseId}-trigger-${value}`;
788
789
  }
790
+ __name(makeTriggerId, "makeTriggerId");
789
791
  function makeContentId(baseId, value) {
790
792
  return `${baseId}-content-${value}`;
791
793
  }
794
+ __name(makeContentId, "makeContentId");
792
795
  function whenMouse(handler) {
793
796
  return (event) => event.pointerType === "mouse" ? handler(event) : void 0;
794
797
  }
798
+ __name(whenMouse, "whenMouse");
795
799
  var Root2 = NavigationMenu;
796
800
  var Sub = NavigationMenuSub;
797
801
  var List = NavigationMenuList;