@huin-core/react-navigation-menu 1.0.5 → 1.0.6
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.js +135 -150
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +135 -150
- package/dist/index.mjs.map +2 -2
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -16,7 +16,6 @@ import { useControllableState } from "@huin-core/react-use-controllable-state";
|
|
|
16
16
|
import { useId } from "@huin-core/react-id";
|
|
17
17
|
import { usePrevious } from "@huin-core/react-use-previous";
|
|
18
18
|
import { useCallbackRef } from "@huin-core/react-use-callback-ref";
|
|
19
|
-
import { jsx } from "react/jsx-runtime";
|
|
20
19
|
var SUB_NAME = "NavigationMenuSub";
|
|
21
20
|
var NavigationMenuSub = React.forwardRef((props, forwardedRef) => {
|
|
22
21
|
const {
|
|
@@ -33,7 +32,7 @@ var NavigationMenuSub = React.forwardRef((props, forwardedRef) => {
|
|
|
33
32
|
onChange: onValueChange,
|
|
34
33
|
defaultProp: defaultValue
|
|
35
34
|
});
|
|
36
|
-
return /* @__PURE__ */
|
|
35
|
+
return /* @__PURE__ */ React.createElement(
|
|
37
36
|
NavigationMenuProvider,
|
|
38
37
|
{
|
|
39
38
|
scope: __scopeNavigationMenu,
|
|
@@ -44,16 +43,16 @@ var NavigationMenuSub = React.forwardRef((props, forwardedRef) => {
|
|
|
44
43
|
rootNavigationMenu: context.rootNavigationMenu,
|
|
45
44
|
onTriggerEnter: (itemValue) => setValue(itemValue),
|
|
46
45
|
onItemSelect: (itemValue) => setValue(itemValue),
|
|
47
|
-
onItemDismiss: () => setValue("")
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
46
|
+
onItemDismiss: () => setValue("")
|
|
47
|
+
},
|
|
48
|
+
/* @__PURE__ */ React.createElement(
|
|
49
|
+
Primitive.div,
|
|
50
|
+
{
|
|
51
|
+
"data-orientation": orientation,
|
|
52
|
+
...subProps,
|
|
53
|
+
ref: forwardedRef
|
|
54
|
+
}
|
|
55
|
+
)
|
|
57
56
|
);
|
|
58
57
|
});
|
|
59
58
|
NavigationMenuSub.displayName = SUB_NAME;
|
|
@@ -76,7 +75,7 @@ var NavigationMenuProvider = (props) => {
|
|
|
76
75
|
const [viewport, setViewport] = React.useState(null);
|
|
77
76
|
const [viewportContent, setViewportContent] = React.useState(/* @__PURE__ */ new Map());
|
|
78
77
|
const [indicatorTrack, setIndicatorTrack] = React.useState(null);
|
|
79
|
-
return /* @__PURE__ */
|
|
78
|
+
return /* @__PURE__ */ React.createElement(
|
|
80
79
|
NavigationMenuProviderImpl,
|
|
81
80
|
{
|
|
82
81
|
scope,
|
|
@@ -112,9 +111,9 @@ var NavigationMenuProvider = (props) => {
|
|
|
112
111
|
prevContent.delete(contentValue);
|
|
113
112
|
return new Map(prevContent);
|
|
114
113
|
});
|
|
115
|
-
}, [])
|
|
116
|
-
|
|
117
|
-
}
|
|
114
|
+
}, [])
|
|
115
|
+
},
|
|
116
|
+
/* @__PURE__ */ React.createElement(Collection.Provider, { scope }, /* @__PURE__ */ React.createElement(ViewportContentProvider, { scope, items: viewportContent }, children))
|
|
118
117
|
);
|
|
119
118
|
};
|
|
120
119
|
|
|
@@ -144,7 +143,6 @@ import { useCallbackRef as useCallbackRef2 } from "@huin-core/react-use-callback
|
|
|
144
143
|
import { useLayoutEffect } from "@huin-core/react-use-layout-effect";
|
|
145
144
|
import { composeRefs, useComposedRefs } from "@huin-core/react-compose-refs";
|
|
146
145
|
import { composeEventHandlers } from "@huin-core/primitive";
|
|
147
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
148
146
|
var VIEWPORT_NAME = "NavigationMenuViewport";
|
|
149
147
|
var NavigationMenuViewport = React2.forwardRef((props, forwardedRef) => {
|
|
150
148
|
const { forceMount, ...viewportProps } = props;
|
|
@@ -153,7 +151,7 @@ var NavigationMenuViewport = React2.forwardRef((props, forwardedRef) => {
|
|
|
153
151
|
props.__scopeNavigationMenu
|
|
154
152
|
);
|
|
155
153
|
const open = Boolean(context.value);
|
|
156
|
-
return /* @__PURE__ */
|
|
154
|
+
return /* @__PURE__ */ React2.createElement(Presence, { present: forceMount || open }, /* @__PURE__ */ React2.createElement(NavigationMenuViewportImpl, { ...viewportProps, ref: forwardedRef }));
|
|
157
155
|
});
|
|
158
156
|
NavigationMenuViewport.displayName = VIEWPORT_NAME;
|
|
159
157
|
var NavigationMenuViewportImpl = React2.forwardRef((props, forwardedRef) => {
|
|
@@ -178,7 +176,7 @@ var NavigationMenuViewportImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
178
176
|
setSize({ width: content.offsetWidth, height: content.offsetHeight });
|
|
179
177
|
};
|
|
180
178
|
useResizeObserver(content, handleSizeChange);
|
|
181
|
-
return /* @__PURE__ */
|
|
179
|
+
return /* @__PURE__ */ React2.createElement(
|
|
182
180
|
Primitive2.div,
|
|
183
181
|
{
|
|
184
182
|
"data-state": getOpenState(open),
|
|
@@ -199,22 +197,22 @@ var NavigationMenuViewportImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
199
197
|
onPointerLeave: composeEventHandlers(
|
|
200
198
|
props.onPointerLeave,
|
|
201
199
|
whenMouse(context.onContentLeave)
|
|
202
|
-
),
|
|
203
|
-
children: Array.from(viewportContentContext.items).map(
|
|
204
|
-
([value, { ref, forceMount, ...props2 }]) => {
|
|
205
|
-
const isActive = activeContentValue === value;
|
|
206
|
-
return /* @__PURE__ */ jsx2(Presence, { present: forceMount || isActive, children: /* @__PURE__ */ jsx2(
|
|
207
|
-
NavigationMenuContentImpl,
|
|
208
|
-
{
|
|
209
|
-
...props2,
|
|
210
|
-
ref: composeRefs(ref, (node) => {
|
|
211
|
-
if (isActive && node) setContent(node);
|
|
212
|
-
})
|
|
213
|
-
}
|
|
214
|
-
) }, value);
|
|
215
|
-
}
|
|
216
200
|
)
|
|
217
|
-
}
|
|
201
|
+
},
|
|
202
|
+
Array.from(viewportContentContext.items).map(
|
|
203
|
+
([value, { ref, forceMount, ...props2 }]) => {
|
|
204
|
+
const isActive = activeContentValue === value;
|
|
205
|
+
return /* @__PURE__ */ React2.createElement(Presence, { key: value, present: forceMount || isActive }, /* @__PURE__ */ React2.createElement(
|
|
206
|
+
NavigationMenuContentImpl,
|
|
207
|
+
{
|
|
208
|
+
...props2,
|
|
209
|
+
ref: composeRefs(ref, (node) => {
|
|
210
|
+
if (isActive && node) setContent(node);
|
|
211
|
+
})
|
|
212
|
+
}
|
|
213
|
+
));
|
|
214
|
+
}
|
|
215
|
+
)
|
|
218
216
|
);
|
|
219
217
|
});
|
|
220
218
|
function useResizeObserver(element, onResize) {
|
|
@@ -243,7 +241,6 @@ function whenMouse(handler) {
|
|
|
243
241
|
|
|
244
242
|
// packages/react/navigation-menu/src/NavigationMenuContent.tsx
|
|
245
243
|
import { Primitive as Primitive3 } from "@huin-core/react-primitive";
|
|
246
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
247
244
|
var CONTENT_NAME = "NavigationMenuContent";
|
|
248
245
|
var NavigationMenuContent = React3.forwardRef((props, forwardedRef) => {
|
|
249
246
|
const { forceMount, ...contentProps } = props;
|
|
@@ -266,7 +263,7 @@ var NavigationMenuContent = React3.forwardRef((props, forwardedRef) => {
|
|
|
266
263
|
onRootContentClose: itemContext.onRootContentClose,
|
|
267
264
|
...contentProps
|
|
268
265
|
};
|
|
269
|
-
return !context.viewport ? /* @__PURE__ */
|
|
266
|
+
return !context.viewport ? /* @__PURE__ */ React3.createElement(Presence2, { present: forceMount || open }, /* @__PURE__ */ React3.createElement(
|
|
270
267
|
NavigationMenuContentImpl,
|
|
271
268
|
{
|
|
272
269
|
"data-state": getOpenState(open),
|
|
@@ -286,7 +283,7 @@ var NavigationMenuContent = React3.forwardRef((props, forwardedRef) => {
|
|
|
286
283
|
...commonProps.style
|
|
287
284
|
}
|
|
288
285
|
}
|
|
289
|
-
)
|
|
286
|
+
)) : /* @__PURE__ */ React3.createElement(
|
|
290
287
|
ViewportContentMounter,
|
|
291
288
|
{
|
|
292
289
|
forceMount,
|
|
@@ -373,7 +370,7 @@ var NavigationMenuContentImpl = React3.forwardRef((props, forwardedRef) => {
|
|
|
373
370
|
prevMotionAttributeRef.current = attribute;
|
|
374
371
|
return attribute;
|
|
375
372
|
}, [context.previousValue, context.value, context.dir, getItems, value]);
|
|
376
|
-
return /* @__PURE__ */
|
|
373
|
+
return /* @__PURE__ */ React3.createElement(FocusGroup, { asChild: true }, /* @__PURE__ */ React3.createElement(
|
|
377
374
|
DismissableLayer,
|
|
378
375
|
{
|
|
379
376
|
id: contentId,
|
|
@@ -433,7 +430,7 @@ var NavigationMenuContentImpl = React3.forwardRef((props, forwardedRef) => {
|
|
|
433
430
|
}
|
|
434
431
|
)
|
|
435
432
|
}
|
|
436
|
-
)
|
|
433
|
+
));
|
|
437
434
|
});
|
|
438
435
|
var FOCUS_GROUP_NAME = "FocusGroup";
|
|
439
436
|
var FocusGroup = React3.forwardRef(
|
|
@@ -443,7 +440,7 @@ var FocusGroup = React3.forwardRef(
|
|
|
443
440
|
FOCUS_GROUP_NAME,
|
|
444
441
|
__scopeNavigationMenu
|
|
445
442
|
);
|
|
446
|
-
return /* @__PURE__ */
|
|
443
|
+
return /* @__PURE__ */ React3.createElement(FocusGroupCollection.Provider, { scope: __scopeNavigationMenu }, /* @__PURE__ */ React3.createElement(FocusGroupCollection.Slot, { scope: __scopeNavigationMenu }, /* @__PURE__ */ React3.createElement(Primitive3.div, { dir: context.dir, ...groupProps, ref: forwardedRef })));
|
|
447
444
|
}
|
|
448
445
|
);
|
|
449
446
|
function makeTriggerId(baseId, value) {
|
|
@@ -454,12 +451,11 @@ function makeContentId(baseId, value) {
|
|
|
454
451
|
}
|
|
455
452
|
|
|
456
453
|
// packages/react/navigation-menu/src/NavigationMenuLink.tsx
|
|
457
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
458
454
|
var LINK_NAME = "NavigationMenuLink";
|
|
459
455
|
var LINK_SELECT = "navigationMenu.linkSelect";
|
|
460
456
|
var NavigationMenuLink = React4.forwardRef((props, forwardedRef) => {
|
|
461
457
|
const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;
|
|
462
|
-
return /* @__PURE__ */
|
|
458
|
+
return /* @__PURE__ */ React4.createElement(FocusGroupItem, { asChild: true }, /* @__PURE__ */ React4.createElement(
|
|
463
459
|
Primitive4.a,
|
|
464
460
|
{
|
|
465
461
|
"data-active": active ? "" : void 0,
|
|
@@ -492,7 +488,7 @@ var NavigationMenuLink = React4.forwardRef((props, forwardedRef) => {
|
|
|
492
488
|
{ checkForDefaultPrevented: false }
|
|
493
489
|
)
|
|
494
490
|
}
|
|
495
|
-
)
|
|
491
|
+
));
|
|
496
492
|
});
|
|
497
493
|
NavigationMenuLink.displayName = LINK_NAME;
|
|
498
494
|
var ARROW_KEYS = ["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"];
|
|
@@ -504,7 +500,7 @@ var FocusGroupItem = React4.forwardRef((props, forwardedRef) => {
|
|
|
504
500
|
FOCUS_GROUP_ITEM_NAME,
|
|
505
501
|
__scopeNavigationMenu
|
|
506
502
|
);
|
|
507
|
-
return /* @__PURE__ */
|
|
503
|
+
return /* @__PURE__ */ React4.createElement(FocusGroupCollection.ItemSlot, { scope: __scopeNavigationMenu }, /* @__PURE__ */ React4.createElement(
|
|
508
504
|
Primitive4.button,
|
|
509
505
|
{
|
|
510
506
|
...groupProps,
|
|
@@ -527,7 +523,7 @@ var FocusGroupItem = React4.forwardRef((props, forwardedRef) => {
|
|
|
527
523
|
}
|
|
528
524
|
})
|
|
529
525
|
}
|
|
530
|
-
)
|
|
526
|
+
));
|
|
531
527
|
});
|
|
532
528
|
function focusFirst(candidates) {
|
|
533
529
|
const previouslyFocusedElement = document.activeElement;
|
|
@@ -539,7 +535,6 @@ function focusFirst(candidates) {
|
|
|
539
535
|
}
|
|
540
536
|
|
|
541
537
|
// packages/react/navigation-menu/src/NavigationMenuItem.tsx
|
|
542
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
543
538
|
var ITEM_NAME = "NavigationMenuItem";
|
|
544
539
|
var NavigationMenuItem = React5.forwardRef((props, forwardedRef) => {
|
|
545
540
|
const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;
|
|
@@ -566,7 +561,7 @@ var NavigationMenuItem = React5.forwardRef((props, forwardedRef) => {
|
|
|
566
561
|
restoreContentTabOrderRef.current = removeFromTabOrder(candidates);
|
|
567
562
|
}
|
|
568
563
|
}, []);
|
|
569
|
-
return /* @__PURE__ */
|
|
564
|
+
return /* @__PURE__ */ React5.createElement(
|
|
570
565
|
NavigationMenuItemContextProvider,
|
|
571
566
|
{
|
|
572
567
|
scope: __scopeNavigationMenu,
|
|
@@ -578,9 +573,9 @@ var NavigationMenuItem = React5.forwardRef((props, forwardedRef) => {
|
|
|
578
573
|
onEntryKeyDown: handleContentEntry,
|
|
579
574
|
onFocusProxyEnter: handleContentEntry,
|
|
580
575
|
onRootContentClose: handleContentExit,
|
|
581
|
-
onContentFocusOutside: handleContentExit
|
|
582
|
-
|
|
583
|
-
}
|
|
576
|
+
onContentFocusOutside: handleContentExit
|
|
577
|
+
},
|
|
578
|
+
/* @__PURE__ */ React5.createElement(Primitive5.li, { ...itemProps, ref: forwardedRef })
|
|
584
579
|
);
|
|
585
580
|
});
|
|
586
581
|
NavigationMenuItem.displayName = ITEM_NAME;
|
|
@@ -615,7 +610,6 @@ function removeFromTabOrder(candidates) {
|
|
|
615
610
|
}
|
|
616
611
|
|
|
617
612
|
// packages/react/navigation-menu/src/NavigationMenu.tsx
|
|
618
|
-
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
619
613
|
var NAVIGATION_MENU_NAME = "NavigationMenu";
|
|
620
614
|
var [Collection, useCollection, createCollectionScope] = createCollection(
|
|
621
615
|
NAVIGATION_MENU_NAME
|
|
@@ -705,7 +699,7 @@ var NavigationMenu = React6.forwardRef((props, forwardedRef) => {
|
|
|
705
699
|
window.clearTimeout(skipDelayTimerRef.current);
|
|
706
700
|
};
|
|
707
701
|
}, []);
|
|
708
|
-
return /* @__PURE__ */
|
|
702
|
+
return /* @__PURE__ */ React6.createElement(
|
|
709
703
|
NavigationMenuProvider,
|
|
710
704
|
{
|
|
711
705
|
scope: __scopeNavigationMenu,
|
|
@@ -728,18 +722,18 @@ var NavigationMenu = React6.forwardRef((props, forwardedRef) => {
|
|
|
728
722
|
onItemSelect: (itemValue) => {
|
|
729
723
|
setValue((prevValue) => prevValue === itemValue ? "" : itemValue);
|
|
730
724
|
},
|
|
731
|
-
onItemDismiss: () => setValue("")
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
725
|
+
onItemDismiss: () => setValue("")
|
|
726
|
+
},
|
|
727
|
+
/* @__PURE__ */ React6.createElement(
|
|
728
|
+
Primitive6.nav,
|
|
729
|
+
{
|
|
730
|
+
"aria-label": "Main",
|
|
731
|
+
"data-orientation": orientation,
|
|
732
|
+
dir: direction,
|
|
733
|
+
...NavigationMenuProps,
|
|
734
|
+
ref: composedRef
|
|
735
|
+
}
|
|
736
|
+
)
|
|
743
737
|
);
|
|
744
738
|
});
|
|
745
739
|
NavigationMenu.displayName = NAVIGATION_MENU_NAME;
|
|
@@ -748,12 +742,11 @@ var Root = NavigationMenu;
|
|
|
748
742
|
// packages/react/navigation-menu/src/NavigationMenuList.tsx
|
|
749
743
|
import React7 from "react";
|
|
750
744
|
import { Primitive as Primitive7 } from "@huin-core/react-primitive";
|
|
751
|
-
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
752
745
|
var LIST_NAME = "NavigationMenuList";
|
|
753
746
|
var NavigationMenuList = React7.forwardRef((props, forwardedRef) => {
|
|
754
747
|
const { __scopeNavigationMenu, ...listProps } = props;
|
|
755
748
|
const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);
|
|
756
|
-
const list = /* @__PURE__ */
|
|
749
|
+
const list = /* @__PURE__ */ React7.createElement(
|
|
757
750
|
Primitive7.ul,
|
|
758
751
|
{
|
|
759
752
|
"data-orientation": context.orientation,
|
|
@@ -761,13 +754,13 @@ var NavigationMenuList = React7.forwardRef((props, forwardedRef) => {
|
|
|
761
754
|
ref: forwardedRef
|
|
762
755
|
}
|
|
763
756
|
);
|
|
764
|
-
return /* @__PURE__ */
|
|
757
|
+
return /* @__PURE__ */ React7.createElement(
|
|
765
758
|
Primitive7.div,
|
|
766
759
|
{
|
|
767
760
|
style: { position: "relative" },
|
|
768
|
-
ref: context.onIndicatorTrackChange
|
|
769
|
-
|
|
770
|
-
}
|
|
761
|
+
ref: context.onIndicatorTrackChange
|
|
762
|
+
},
|
|
763
|
+
/* @__PURE__ */ React7.createElement(Collection.Slot, { scope: __scopeNavigationMenu }, context.isRootMenu ? /* @__PURE__ */ React7.createElement(FocusGroup, { asChild: true }, list) : list)
|
|
771
764
|
);
|
|
772
765
|
});
|
|
773
766
|
NavigationMenuList.displayName = LIST_NAME;
|
|
@@ -778,7 +771,6 @@ import { Primitive as Primitive8 } from "@huin-core/react-primitive";
|
|
|
778
771
|
import { useComposedRefs as useComposedRefs4 } from "@huin-core/react-compose-refs";
|
|
779
772
|
import { composeEventHandlers as composeEventHandlers4 } from "@huin-core/primitive";
|
|
780
773
|
import * as VisuallyHiddenPrimitive from "@huin-core/react-visually-hidden";
|
|
781
|
-
import { Fragment, jsx as jsx8, jsxs } from "react/jsx-runtime";
|
|
782
774
|
var TRIGGER_NAME = "NavigationMenuTrigger";
|
|
783
775
|
var NavigationMenuTrigger = React8.forwardRef((props, forwardedRef) => {
|
|
784
776
|
const { __scopeNavigationMenu, disabled, ...triggerProps } = props;
|
|
@@ -801,86 +793,80 @@ var NavigationMenuTrigger = React8.forwardRef((props, forwardedRef) => {
|
|
|
801
793
|
const hasPointerMoveOpenedRef = React8.useRef(false);
|
|
802
794
|
const wasClickCloseRef = React8.useRef(false);
|
|
803
795
|
const open = itemContext.value === context.value;
|
|
804
|
-
return /* @__PURE__ */
|
|
805
|
-
|
|
806
|
-
|
|
796
|
+
return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(
|
|
797
|
+
Collection.ItemSlot,
|
|
798
|
+
{
|
|
799
|
+
scope: __scopeNavigationMenu,
|
|
800
|
+
value: itemContext.value
|
|
801
|
+
},
|
|
802
|
+
/* @__PURE__ */ React8.createElement(FocusGroupItem, { asChild: true }, /* @__PURE__ */ React8.createElement(
|
|
803
|
+
Primitive8.button,
|
|
807
804
|
{
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
)
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
vertical: verticalEntryKey
|
|
851
|
-
}[context.orientation];
|
|
852
|
-
if (open && event.key === entryKey) {
|
|
853
|
-
itemContext.onEntryKeyDown();
|
|
854
|
-
event.preventDefault();
|
|
855
|
-
}
|
|
856
|
-
})
|
|
805
|
+
id: triggerId,
|
|
806
|
+
disabled,
|
|
807
|
+
"data-disabled": disabled ? "" : void 0,
|
|
808
|
+
"data-state": getOpenState(open),
|
|
809
|
+
"aria-expanded": open,
|
|
810
|
+
"aria-controls": contentId,
|
|
811
|
+
...triggerProps,
|
|
812
|
+
ref: composedRefs,
|
|
813
|
+
onPointerEnter: composeEventHandlers4(props.onPointerEnter, () => {
|
|
814
|
+
wasClickCloseRef.current = false;
|
|
815
|
+
itemContext.wasEscapeCloseRef.current = false;
|
|
816
|
+
}),
|
|
817
|
+
onPointerMove: composeEventHandlers4(
|
|
818
|
+
props.onPointerMove,
|
|
819
|
+
whenMouse(() => {
|
|
820
|
+
if (disabled || wasClickCloseRef.current || itemContext.wasEscapeCloseRef.current || hasPointerMoveOpenedRef.current)
|
|
821
|
+
return;
|
|
822
|
+
context.onTriggerEnter(itemContext.value);
|
|
823
|
+
hasPointerMoveOpenedRef.current = true;
|
|
824
|
+
})
|
|
825
|
+
),
|
|
826
|
+
onPointerLeave: composeEventHandlers4(
|
|
827
|
+
props.onPointerLeave,
|
|
828
|
+
whenMouse(() => {
|
|
829
|
+
if (disabled) return;
|
|
830
|
+
context.onTriggerLeave();
|
|
831
|
+
hasPointerMoveOpenedRef.current = false;
|
|
832
|
+
})
|
|
833
|
+
),
|
|
834
|
+
onClick: composeEventHandlers4(props.onClick, () => {
|
|
835
|
+
context.onItemSelect(itemContext.value);
|
|
836
|
+
wasClickCloseRef.current = open;
|
|
837
|
+
}),
|
|
838
|
+
onKeyDown: composeEventHandlers4(props.onKeyDown, (event) => {
|
|
839
|
+
const verticalEntryKey = context.dir === "rtl" ? "ArrowLeft" : "ArrowRight";
|
|
840
|
+
const entryKey = {
|
|
841
|
+
horizontal: "ArrowDown",
|
|
842
|
+
vertical: verticalEntryKey
|
|
843
|
+
}[context.orientation];
|
|
844
|
+
if (open && event.key === entryKey) {
|
|
845
|
+
itemContext.onEntryKeyDown();
|
|
846
|
+
event.preventDefault();
|
|
857
847
|
}
|
|
858
|
-
|
|
848
|
+
})
|
|
859
849
|
}
|
|
860
|
-
)
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
);
|
|
877
|
-
}
|
|
878
|
-
}
|
|
850
|
+
))
|
|
851
|
+
), open && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(
|
|
852
|
+
VisuallyHiddenPrimitive.Root,
|
|
853
|
+
{
|
|
854
|
+
"aria-hidden": true,
|
|
855
|
+
tabIndex: 0,
|
|
856
|
+
ref: itemContext.focusProxyRef,
|
|
857
|
+
onFocus: (event) => {
|
|
858
|
+
const content = itemContext.contentRef.current;
|
|
859
|
+
const prevFocusedElement = event.relatedTarget;
|
|
860
|
+
const wasTriggerFocused = prevFocusedElement === ref.current;
|
|
861
|
+
const wasFocusFromContent = content?.contains(prevFocusedElement);
|
|
862
|
+
if (wasTriggerFocused || !wasFocusFromContent) {
|
|
863
|
+
itemContext.onFocusProxyEnter(
|
|
864
|
+
wasTriggerFocused ? "start" : "end"
|
|
865
|
+
);
|
|
879
866
|
}
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
] });
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
), context.viewport && /* @__PURE__ */ React8.createElement("span", { "aria-owns": contentId })));
|
|
884
870
|
});
|
|
885
871
|
NavigationMenuTrigger.displayName = TRIGGER_NAME;
|
|
886
872
|
|
|
@@ -889,7 +875,6 @@ import React9 from "react";
|
|
|
889
875
|
import { Presence as Presence3 } from "@huin-core/react-presence";
|
|
890
876
|
import ReactDOM from "react-dom";
|
|
891
877
|
import { Primitive as Primitive9 } from "@huin-core/react-primitive";
|
|
892
|
-
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
893
878
|
var INDICATOR_NAME = "NavigationMenuIndicator";
|
|
894
879
|
var NavigationMenuIndicator = React9.forwardRef((props, forwardedRef) => {
|
|
895
880
|
const { forceMount, ...indicatorProps } = props;
|
|
@@ -899,7 +884,7 @@ var NavigationMenuIndicator = React9.forwardRef((props, forwardedRef) => {
|
|
|
899
884
|
);
|
|
900
885
|
const isVisible = Boolean(context.value);
|
|
901
886
|
return context.indicatorTrack ? ReactDOM.createPortal(
|
|
902
|
-
/* @__PURE__ */
|
|
887
|
+
/* @__PURE__ */ React9.createElement(Presence3, { present: forceMount || isVisible }, /* @__PURE__ */ React9.createElement(NavigationMenuIndicatorImpl, { ...indicatorProps, ref: forwardedRef })),
|
|
903
888
|
context.indicatorTrack
|
|
904
889
|
) : null;
|
|
905
890
|
});
|
|
@@ -930,7 +915,7 @@ var NavigationMenuIndicatorImpl = React9.forwardRef((props, forwardedRef) => {
|
|
|
930
915
|
};
|
|
931
916
|
useResizeObserver(activeTrigger, handlePositionChange);
|
|
932
917
|
useResizeObserver(context.indicatorTrack, handlePositionChange);
|
|
933
|
-
return position ? /* @__PURE__ */
|
|
918
|
+
return position ? /* @__PURE__ */ React9.createElement(
|
|
934
919
|
Primitive9.div,
|
|
935
920
|
{
|
|
936
921
|
"aria-hidden": true,
|