@huin-core/react-navigation-menu 1.0.4 → 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.js
CHANGED
|
@@ -61,7 +61,6 @@ var import_react_use_controllable_state = require("@huin-core/react-use-controll
|
|
|
61
61
|
var import_react_id = require("@huin-core/react-id");
|
|
62
62
|
var import_react_use_previous = require("@huin-core/react-use-previous");
|
|
63
63
|
var import_react_use_callback_ref = require("@huin-core/react-use-callback-ref");
|
|
64
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
65
64
|
var SUB_NAME = "NavigationMenuSub";
|
|
66
65
|
var NavigationMenuSub = import_react.default.forwardRef((props, forwardedRef) => {
|
|
67
66
|
const {
|
|
@@ -78,7 +77,7 @@ var NavigationMenuSub = import_react.default.forwardRef((props, forwardedRef) =>
|
|
|
78
77
|
onChange: onValueChange,
|
|
79
78
|
defaultProp: defaultValue
|
|
80
79
|
});
|
|
81
|
-
return /* @__PURE__ */
|
|
80
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
82
81
|
NavigationMenuProvider,
|
|
83
82
|
{
|
|
84
83
|
scope: __scopeNavigationMenu,
|
|
@@ -89,16 +88,16 @@ var NavigationMenuSub = import_react.default.forwardRef((props, forwardedRef) =>
|
|
|
89
88
|
rootNavigationMenu: context.rootNavigationMenu,
|
|
90
89
|
onTriggerEnter: (itemValue) => setValue(itemValue),
|
|
91
90
|
onItemSelect: (itemValue) => setValue(itemValue),
|
|
92
|
-
onItemDismiss: () => setValue("")
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
91
|
+
onItemDismiss: () => setValue("")
|
|
92
|
+
},
|
|
93
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
94
|
+
import_react_primitive.Primitive.div,
|
|
95
|
+
{
|
|
96
|
+
"data-orientation": orientation,
|
|
97
|
+
...subProps,
|
|
98
|
+
ref: forwardedRef
|
|
99
|
+
}
|
|
100
|
+
)
|
|
102
101
|
);
|
|
103
102
|
});
|
|
104
103
|
NavigationMenuSub.displayName = SUB_NAME;
|
|
@@ -121,7 +120,7 @@ var NavigationMenuProvider = (props) => {
|
|
|
121
120
|
const [viewport, setViewport] = import_react.default.useState(null);
|
|
122
121
|
const [viewportContent, setViewportContent] = import_react.default.useState(/* @__PURE__ */ new Map());
|
|
123
122
|
const [indicatorTrack, setIndicatorTrack] = import_react.default.useState(null);
|
|
124
|
-
return /* @__PURE__ */
|
|
123
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
125
124
|
NavigationMenuProviderImpl,
|
|
126
125
|
{
|
|
127
126
|
scope,
|
|
@@ -157,9 +156,9 @@ var NavigationMenuProvider = (props) => {
|
|
|
157
156
|
prevContent.delete(contentValue);
|
|
158
157
|
return new Map(prevContent);
|
|
159
158
|
});
|
|
160
|
-
}, [])
|
|
161
|
-
|
|
162
|
-
}
|
|
159
|
+
}, [])
|
|
160
|
+
},
|
|
161
|
+
/* @__PURE__ */ import_react.default.createElement(Collection.Provider, { scope }, /* @__PURE__ */ import_react.default.createElement(ViewportContentProvider, { scope, items: viewportContent }, children))
|
|
163
162
|
);
|
|
164
163
|
};
|
|
165
164
|
|
|
@@ -189,7 +188,6 @@ var import_react_use_callback_ref2 = require("@huin-core/react-use-callback-ref"
|
|
|
189
188
|
var import_react_use_layout_effect = require("@huin-core/react-use-layout-effect");
|
|
190
189
|
var import_react_compose_refs = require("@huin-core/react-compose-refs");
|
|
191
190
|
var import_primitive = require("@huin-core/primitive");
|
|
192
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
193
191
|
var VIEWPORT_NAME = "NavigationMenuViewport";
|
|
194
192
|
var NavigationMenuViewport = import_react2.default.forwardRef((props, forwardedRef) => {
|
|
195
193
|
const { forceMount, ...viewportProps } = props;
|
|
@@ -198,7 +196,7 @@ var NavigationMenuViewport = import_react2.default.forwardRef((props, forwardedR
|
|
|
198
196
|
props.__scopeNavigationMenu
|
|
199
197
|
);
|
|
200
198
|
const open = Boolean(context.value);
|
|
201
|
-
return /* @__PURE__ */
|
|
199
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_presence.Presence, { present: forceMount || open }, /* @__PURE__ */ import_react2.default.createElement(NavigationMenuViewportImpl, { ...viewportProps, ref: forwardedRef }));
|
|
202
200
|
});
|
|
203
201
|
NavigationMenuViewport.displayName = VIEWPORT_NAME;
|
|
204
202
|
var NavigationMenuViewportImpl = import_react2.default.forwardRef((props, forwardedRef) => {
|
|
@@ -223,7 +221,7 @@ var NavigationMenuViewportImpl = import_react2.default.forwardRef((props, forwar
|
|
|
223
221
|
setSize({ width: content.offsetWidth, height: content.offsetHeight });
|
|
224
222
|
};
|
|
225
223
|
useResizeObserver(content, handleSizeChange);
|
|
226
|
-
return /* @__PURE__ */
|
|
224
|
+
return /* @__PURE__ */ import_react2.default.createElement(
|
|
227
225
|
import_react_primitive2.Primitive.div,
|
|
228
226
|
{
|
|
229
227
|
"data-state": getOpenState(open),
|
|
@@ -244,22 +242,22 @@ var NavigationMenuViewportImpl = import_react2.default.forwardRef((props, forwar
|
|
|
244
242
|
onPointerLeave: (0, import_primitive.composeEventHandlers)(
|
|
245
243
|
props.onPointerLeave,
|
|
246
244
|
whenMouse(context.onContentLeave)
|
|
247
|
-
),
|
|
248
|
-
children: Array.from(viewportContentContext.items).map(
|
|
249
|
-
([value, { ref, forceMount, ...props2 }]) => {
|
|
250
|
-
const isActive = activeContentValue === value;
|
|
251
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_presence.Presence, { present: forceMount || isActive, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
252
|
-
NavigationMenuContentImpl,
|
|
253
|
-
{
|
|
254
|
-
...props2,
|
|
255
|
-
ref: (0, import_react_compose_refs.composeRefs)(ref, (node) => {
|
|
256
|
-
if (isActive && node) setContent(node);
|
|
257
|
-
})
|
|
258
|
-
}
|
|
259
|
-
) }, value);
|
|
260
|
-
}
|
|
261
245
|
)
|
|
262
|
-
}
|
|
246
|
+
},
|
|
247
|
+
Array.from(viewportContentContext.items).map(
|
|
248
|
+
([value, { ref, forceMount, ...props2 }]) => {
|
|
249
|
+
const isActive = activeContentValue === value;
|
|
250
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_presence.Presence, { key: value, present: forceMount || isActive }, /* @__PURE__ */ import_react2.default.createElement(
|
|
251
|
+
NavigationMenuContentImpl,
|
|
252
|
+
{
|
|
253
|
+
...props2,
|
|
254
|
+
ref: (0, import_react_compose_refs.composeRefs)(ref, (node) => {
|
|
255
|
+
if (isActive && node) setContent(node);
|
|
256
|
+
})
|
|
257
|
+
}
|
|
258
|
+
));
|
|
259
|
+
}
|
|
260
|
+
)
|
|
263
261
|
);
|
|
264
262
|
});
|
|
265
263
|
function useResizeObserver(element, onResize) {
|
|
@@ -288,7 +286,6 @@ function whenMouse(handler) {
|
|
|
288
286
|
|
|
289
287
|
// packages/react/navigation-menu/src/NavigationMenuContent.tsx
|
|
290
288
|
var import_react_primitive3 = require("@huin-core/react-primitive");
|
|
291
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
292
289
|
var CONTENT_NAME = "NavigationMenuContent";
|
|
293
290
|
var NavigationMenuContent = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
294
291
|
const { forceMount, ...contentProps } = props;
|
|
@@ -311,7 +308,7 @@ var NavigationMenuContent = import_react3.default.forwardRef((props, forwardedRe
|
|
|
311
308
|
onRootContentClose: itemContext.onRootContentClose,
|
|
312
309
|
...contentProps
|
|
313
310
|
};
|
|
314
|
-
return !context.viewport ? /* @__PURE__ */
|
|
311
|
+
return !context.viewport ? /* @__PURE__ */ import_react3.default.createElement(import_react_presence2.Presence, { present: forceMount || open }, /* @__PURE__ */ import_react3.default.createElement(
|
|
315
312
|
NavigationMenuContentImpl,
|
|
316
313
|
{
|
|
317
314
|
"data-state": getOpenState(open),
|
|
@@ -331,7 +328,7 @@ var NavigationMenuContent = import_react3.default.forwardRef((props, forwardedRe
|
|
|
331
328
|
...commonProps.style
|
|
332
329
|
}
|
|
333
330
|
}
|
|
334
|
-
)
|
|
331
|
+
)) : /* @__PURE__ */ import_react3.default.createElement(
|
|
335
332
|
ViewportContentMounter,
|
|
336
333
|
{
|
|
337
334
|
forceMount,
|
|
@@ -418,7 +415,7 @@ var NavigationMenuContentImpl = import_react3.default.forwardRef((props, forward
|
|
|
418
415
|
prevMotionAttributeRef.current = attribute;
|
|
419
416
|
return attribute;
|
|
420
417
|
}, [context.previousValue, context.value, context.dir, getItems, value]);
|
|
421
|
-
return /* @__PURE__ */
|
|
418
|
+
return /* @__PURE__ */ import_react3.default.createElement(FocusGroup, { asChild: true }, /* @__PURE__ */ import_react3.default.createElement(
|
|
422
419
|
import_react_dismissable_layer.DismissableLayer,
|
|
423
420
|
{
|
|
424
421
|
id: contentId,
|
|
@@ -478,7 +475,7 @@ var NavigationMenuContentImpl = import_react3.default.forwardRef((props, forward
|
|
|
478
475
|
}
|
|
479
476
|
)
|
|
480
477
|
}
|
|
481
|
-
)
|
|
478
|
+
));
|
|
482
479
|
});
|
|
483
480
|
var FOCUS_GROUP_NAME = "FocusGroup";
|
|
484
481
|
var FocusGroup = import_react3.default.forwardRef(
|
|
@@ -488,7 +485,7 @@ var FocusGroup = import_react3.default.forwardRef(
|
|
|
488
485
|
FOCUS_GROUP_NAME,
|
|
489
486
|
__scopeNavigationMenu
|
|
490
487
|
);
|
|
491
|
-
return /* @__PURE__ */
|
|
488
|
+
return /* @__PURE__ */ import_react3.default.createElement(FocusGroupCollection.Provider, { scope: __scopeNavigationMenu }, /* @__PURE__ */ import_react3.default.createElement(FocusGroupCollection.Slot, { scope: __scopeNavigationMenu }, /* @__PURE__ */ import_react3.default.createElement(import_react_primitive3.Primitive.div, { dir: context.dir, ...groupProps, ref: forwardedRef })));
|
|
492
489
|
}
|
|
493
490
|
);
|
|
494
491
|
function makeTriggerId(baseId, value) {
|
|
@@ -499,12 +496,11 @@ function makeContentId(baseId, value) {
|
|
|
499
496
|
}
|
|
500
497
|
|
|
501
498
|
// packages/react/navigation-menu/src/NavigationMenuLink.tsx
|
|
502
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
503
499
|
var LINK_NAME = "NavigationMenuLink";
|
|
504
500
|
var LINK_SELECT = "navigationMenu.linkSelect";
|
|
505
501
|
var NavigationMenuLink = import_react4.default.forwardRef((props, forwardedRef) => {
|
|
506
502
|
const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;
|
|
507
|
-
return /* @__PURE__ */
|
|
503
|
+
return /* @__PURE__ */ import_react4.default.createElement(FocusGroupItem, { asChild: true }, /* @__PURE__ */ import_react4.default.createElement(
|
|
508
504
|
import_react_primitive4.Primitive.a,
|
|
509
505
|
{
|
|
510
506
|
"data-active": active ? "" : void 0,
|
|
@@ -537,7 +533,7 @@ var NavigationMenuLink = import_react4.default.forwardRef((props, forwardedRef)
|
|
|
537
533
|
{ checkForDefaultPrevented: false }
|
|
538
534
|
)
|
|
539
535
|
}
|
|
540
|
-
)
|
|
536
|
+
));
|
|
541
537
|
});
|
|
542
538
|
NavigationMenuLink.displayName = LINK_NAME;
|
|
543
539
|
var ARROW_KEYS = ["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"];
|
|
@@ -549,7 +545,7 @@ var FocusGroupItem = import_react4.default.forwardRef((props, forwardedRef) => {
|
|
|
549
545
|
FOCUS_GROUP_ITEM_NAME,
|
|
550
546
|
__scopeNavigationMenu
|
|
551
547
|
);
|
|
552
|
-
return /* @__PURE__ */
|
|
548
|
+
return /* @__PURE__ */ import_react4.default.createElement(FocusGroupCollection.ItemSlot, { scope: __scopeNavigationMenu }, /* @__PURE__ */ import_react4.default.createElement(
|
|
553
549
|
import_react_primitive4.Primitive.button,
|
|
554
550
|
{
|
|
555
551
|
...groupProps,
|
|
@@ -572,7 +568,7 @@ var FocusGroupItem = import_react4.default.forwardRef((props, forwardedRef) => {
|
|
|
572
568
|
}
|
|
573
569
|
})
|
|
574
570
|
}
|
|
575
|
-
)
|
|
571
|
+
));
|
|
576
572
|
});
|
|
577
573
|
function focusFirst(candidates) {
|
|
578
574
|
const previouslyFocusedElement = document.activeElement;
|
|
@@ -584,7 +580,6 @@ function focusFirst(candidates) {
|
|
|
584
580
|
}
|
|
585
581
|
|
|
586
582
|
// packages/react/navigation-menu/src/NavigationMenuItem.tsx
|
|
587
|
-
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
588
583
|
var ITEM_NAME = "NavigationMenuItem";
|
|
589
584
|
var NavigationMenuItem = import_react5.default.forwardRef((props, forwardedRef) => {
|
|
590
585
|
const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;
|
|
@@ -611,7 +606,7 @@ var NavigationMenuItem = import_react5.default.forwardRef((props, forwardedRef)
|
|
|
611
606
|
restoreContentTabOrderRef.current = removeFromTabOrder(candidates);
|
|
612
607
|
}
|
|
613
608
|
}, []);
|
|
614
|
-
return /* @__PURE__ */
|
|
609
|
+
return /* @__PURE__ */ import_react5.default.createElement(
|
|
615
610
|
NavigationMenuItemContextProvider,
|
|
616
611
|
{
|
|
617
612
|
scope: __scopeNavigationMenu,
|
|
@@ -623,9 +618,9 @@ var NavigationMenuItem = import_react5.default.forwardRef((props, forwardedRef)
|
|
|
623
618
|
onEntryKeyDown: handleContentEntry,
|
|
624
619
|
onFocusProxyEnter: handleContentEntry,
|
|
625
620
|
onRootContentClose: handleContentExit,
|
|
626
|
-
onContentFocusOutside: handleContentExit
|
|
627
|
-
|
|
628
|
-
}
|
|
621
|
+
onContentFocusOutside: handleContentExit
|
|
622
|
+
},
|
|
623
|
+
/* @__PURE__ */ import_react5.default.createElement(import_react_primitive5.Primitive.li, { ...itemProps, ref: forwardedRef })
|
|
629
624
|
);
|
|
630
625
|
});
|
|
631
626
|
NavigationMenuItem.displayName = ITEM_NAME;
|
|
@@ -660,7 +655,6 @@ function removeFromTabOrder(candidates) {
|
|
|
660
655
|
}
|
|
661
656
|
|
|
662
657
|
// packages/react/navigation-menu/src/NavigationMenu.tsx
|
|
663
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
664
658
|
var NAVIGATION_MENU_NAME = "NavigationMenu";
|
|
665
659
|
var [Collection, useCollection, createCollectionScope] = (0, import_react_collection.createCollection)(
|
|
666
660
|
NAVIGATION_MENU_NAME
|
|
@@ -750,7 +744,7 @@ var NavigationMenu = React6.forwardRef((props, forwardedRef) => {
|
|
|
750
744
|
window.clearTimeout(skipDelayTimerRef.current);
|
|
751
745
|
};
|
|
752
746
|
}, []);
|
|
753
|
-
return /* @__PURE__ */
|
|
747
|
+
return /* @__PURE__ */ React6.createElement(
|
|
754
748
|
NavigationMenuProvider,
|
|
755
749
|
{
|
|
756
750
|
scope: __scopeNavigationMenu,
|
|
@@ -773,18 +767,18 @@ var NavigationMenu = React6.forwardRef((props, forwardedRef) => {
|
|
|
773
767
|
onItemSelect: (itemValue) => {
|
|
774
768
|
setValue((prevValue) => prevValue === itemValue ? "" : itemValue);
|
|
775
769
|
},
|
|
776
|
-
onItemDismiss: () => setValue("")
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
770
|
+
onItemDismiss: () => setValue("")
|
|
771
|
+
},
|
|
772
|
+
/* @__PURE__ */ React6.createElement(
|
|
773
|
+
import_react_primitive6.Primitive.nav,
|
|
774
|
+
{
|
|
775
|
+
"aria-label": "Main",
|
|
776
|
+
"data-orientation": orientation,
|
|
777
|
+
dir: direction,
|
|
778
|
+
...NavigationMenuProps,
|
|
779
|
+
ref: composedRef
|
|
780
|
+
}
|
|
781
|
+
)
|
|
788
782
|
);
|
|
789
783
|
});
|
|
790
784
|
NavigationMenu.displayName = NAVIGATION_MENU_NAME;
|
|
@@ -793,12 +787,11 @@ var Root = NavigationMenu;
|
|
|
793
787
|
// packages/react/navigation-menu/src/NavigationMenuList.tsx
|
|
794
788
|
var import_react6 = __toESM(require("react"));
|
|
795
789
|
var import_react_primitive7 = require("@huin-core/react-primitive");
|
|
796
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
797
790
|
var LIST_NAME = "NavigationMenuList";
|
|
798
791
|
var NavigationMenuList = import_react6.default.forwardRef((props, forwardedRef) => {
|
|
799
792
|
const { __scopeNavigationMenu, ...listProps } = props;
|
|
800
793
|
const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);
|
|
801
|
-
const list = /* @__PURE__ */
|
|
794
|
+
const list = /* @__PURE__ */ import_react6.default.createElement(
|
|
802
795
|
import_react_primitive7.Primitive.ul,
|
|
803
796
|
{
|
|
804
797
|
"data-orientation": context.orientation,
|
|
@@ -806,13 +799,13 @@ var NavigationMenuList = import_react6.default.forwardRef((props, forwardedRef)
|
|
|
806
799
|
ref: forwardedRef
|
|
807
800
|
}
|
|
808
801
|
);
|
|
809
|
-
return /* @__PURE__ */
|
|
802
|
+
return /* @__PURE__ */ import_react6.default.createElement(
|
|
810
803
|
import_react_primitive7.Primitive.div,
|
|
811
804
|
{
|
|
812
805
|
style: { position: "relative" },
|
|
813
|
-
ref: context.onIndicatorTrackChange
|
|
814
|
-
|
|
815
|
-
}
|
|
806
|
+
ref: context.onIndicatorTrackChange
|
|
807
|
+
},
|
|
808
|
+
/* @__PURE__ */ import_react6.default.createElement(Collection.Slot, { scope: __scopeNavigationMenu }, context.isRootMenu ? /* @__PURE__ */ import_react6.default.createElement(FocusGroup, { asChild: true }, list) : list)
|
|
816
809
|
);
|
|
817
810
|
});
|
|
818
811
|
NavigationMenuList.displayName = LIST_NAME;
|
|
@@ -823,7 +816,6 @@ var import_react_primitive8 = require("@huin-core/react-primitive");
|
|
|
823
816
|
var import_react_compose_refs4 = require("@huin-core/react-compose-refs");
|
|
824
817
|
var import_primitive4 = require("@huin-core/primitive");
|
|
825
818
|
var VisuallyHiddenPrimitive = __toESM(require("@huin-core/react-visually-hidden"));
|
|
826
|
-
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
827
819
|
var TRIGGER_NAME = "NavigationMenuTrigger";
|
|
828
820
|
var NavigationMenuTrigger = import_react7.default.forwardRef((props, forwardedRef) => {
|
|
829
821
|
const { __scopeNavigationMenu, disabled, ...triggerProps } = props;
|
|
@@ -846,86 +838,80 @@ var NavigationMenuTrigger = import_react7.default.forwardRef((props, forwardedRe
|
|
|
846
838
|
const hasPointerMoveOpenedRef = import_react7.default.useRef(false);
|
|
847
839
|
const wasClickCloseRef = import_react7.default.useRef(false);
|
|
848
840
|
const open = itemContext.value === context.value;
|
|
849
|
-
return /* @__PURE__ */
|
|
850
|
-
|
|
851
|
-
|
|
841
|
+
return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(
|
|
842
|
+
Collection.ItemSlot,
|
|
843
|
+
{
|
|
844
|
+
scope: __scopeNavigationMenu,
|
|
845
|
+
value: itemContext.value
|
|
846
|
+
},
|
|
847
|
+
/* @__PURE__ */ import_react7.default.createElement(FocusGroupItem, { asChild: true }, /* @__PURE__ */ import_react7.default.createElement(
|
|
848
|
+
import_react_primitive8.Primitive.button,
|
|
852
849
|
{
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
)
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
vertical: verticalEntryKey
|
|
896
|
-
}[context.orientation];
|
|
897
|
-
if (open && event.key === entryKey) {
|
|
898
|
-
itemContext.onEntryKeyDown();
|
|
899
|
-
event.preventDefault();
|
|
900
|
-
}
|
|
901
|
-
})
|
|
850
|
+
id: triggerId,
|
|
851
|
+
disabled,
|
|
852
|
+
"data-disabled": disabled ? "" : void 0,
|
|
853
|
+
"data-state": getOpenState(open),
|
|
854
|
+
"aria-expanded": open,
|
|
855
|
+
"aria-controls": contentId,
|
|
856
|
+
...triggerProps,
|
|
857
|
+
ref: composedRefs,
|
|
858
|
+
onPointerEnter: (0, import_primitive4.composeEventHandlers)(props.onPointerEnter, () => {
|
|
859
|
+
wasClickCloseRef.current = false;
|
|
860
|
+
itemContext.wasEscapeCloseRef.current = false;
|
|
861
|
+
}),
|
|
862
|
+
onPointerMove: (0, import_primitive4.composeEventHandlers)(
|
|
863
|
+
props.onPointerMove,
|
|
864
|
+
whenMouse(() => {
|
|
865
|
+
if (disabled || wasClickCloseRef.current || itemContext.wasEscapeCloseRef.current || hasPointerMoveOpenedRef.current)
|
|
866
|
+
return;
|
|
867
|
+
context.onTriggerEnter(itemContext.value);
|
|
868
|
+
hasPointerMoveOpenedRef.current = true;
|
|
869
|
+
})
|
|
870
|
+
),
|
|
871
|
+
onPointerLeave: (0, import_primitive4.composeEventHandlers)(
|
|
872
|
+
props.onPointerLeave,
|
|
873
|
+
whenMouse(() => {
|
|
874
|
+
if (disabled) return;
|
|
875
|
+
context.onTriggerLeave();
|
|
876
|
+
hasPointerMoveOpenedRef.current = false;
|
|
877
|
+
})
|
|
878
|
+
),
|
|
879
|
+
onClick: (0, import_primitive4.composeEventHandlers)(props.onClick, () => {
|
|
880
|
+
context.onItemSelect(itemContext.value);
|
|
881
|
+
wasClickCloseRef.current = open;
|
|
882
|
+
}),
|
|
883
|
+
onKeyDown: (0, import_primitive4.composeEventHandlers)(props.onKeyDown, (event) => {
|
|
884
|
+
const verticalEntryKey = context.dir === "rtl" ? "ArrowLeft" : "ArrowRight";
|
|
885
|
+
const entryKey = {
|
|
886
|
+
horizontal: "ArrowDown",
|
|
887
|
+
vertical: verticalEntryKey
|
|
888
|
+
}[context.orientation];
|
|
889
|
+
if (open && event.key === entryKey) {
|
|
890
|
+
itemContext.onEntryKeyDown();
|
|
891
|
+
event.preventDefault();
|
|
902
892
|
}
|
|
903
|
-
|
|
893
|
+
})
|
|
904
894
|
}
|
|
905
|
-
)
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
);
|
|
922
|
-
}
|
|
923
|
-
}
|
|
895
|
+
))
|
|
896
|
+
), open && /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(
|
|
897
|
+
VisuallyHiddenPrimitive.Root,
|
|
898
|
+
{
|
|
899
|
+
"aria-hidden": true,
|
|
900
|
+
tabIndex: 0,
|
|
901
|
+
ref: itemContext.focusProxyRef,
|
|
902
|
+
onFocus: (event) => {
|
|
903
|
+
const content = itemContext.contentRef.current;
|
|
904
|
+
const prevFocusedElement = event.relatedTarget;
|
|
905
|
+
const wasTriggerFocused = prevFocusedElement === ref.current;
|
|
906
|
+
const wasFocusFromContent = content?.contains(prevFocusedElement);
|
|
907
|
+
if (wasTriggerFocused || !wasFocusFromContent) {
|
|
908
|
+
itemContext.onFocusProxyEnter(
|
|
909
|
+
wasTriggerFocused ? "start" : "end"
|
|
910
|
+
);
|
|
924
911
|
}
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
] });
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
), context.viewport && /* @__PURE__ */ import_react7.default.createElement("span", { "aria-owns": contentId })));
|
|
929
915
|
});
|
|
930
916
|
NavigationMenuTrigger.displayName = TRIGGER_NAME;
|
|
931
917
|
|
|
@@ -934,7 +920,6 @@ var import_react8 = __toESM(require("react"));
|
|
|
934
920
|
var import_react_presence3 = require("@huin-core/react-presence");
|
|
935
921
|
var import_react_dom = __toESM(require("react-dom"));
|
|
936
922
|
var import_react_primitive9 = require("@huin-core/react-primitive");
|
|
937
|
-
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
938
923
|
var INDICATOR_NAME = "NavigationMenuIndicator";
|
|
939
924
|
var NavigationMenuIndicator = import_react8.default.forwardRef((props, forwardedRef) => {
|
|
940
925
|
const { forceMount, ...indicatorProps } = props;
|
|
@@ -944,7 +929,7 @@ var NavigationMenuIndicator = import_react8.default.forwardRef((props, forwarded
|
|
|
944
929
|
);
|
|
945
930
|
const isVisible = Boolean(context.value);
|
|
946
931
|
return context.indicatorTrack ? import_react_dom.default.createPortal(
|
|
947
|
-
/* @__PURE__ */
|
|
932
|
+
/* @__PURE__ */ import_react8.default.createElement(import_react_presence3.Presence, { present: forceMount || isVisible }, /* @__PURE__ */ import_react8.default.createElement(NavigationMenuIndicatorImpl, { ...indicatorProps, ref: forwardedRef })),
|
|
948
933
|
context.indicatorTrack
|
|
949
934
|
) : null;
|
|
950
935
|
});
|
|
@@ -975,7 +960,7 @@ var NavigationMenuIndicatorImpl = import_react8.default.forwardRef((props, forwa
|
|
|
975
960
|
};
|
|
976
961
|
useResizeObserver(activeTrigger, handlePositionChange);
|
|
977
962
|
useResizeObserver(context.indicatorTrack, handlePositionChange);
|
|
978
|
-
return position ? /* @__PURE__ */
|
|
963
|
+
return position ? /* @__PURE__ */ import_react8.default.createElement(
|
|
979
964
|
import_react_primitive9.Primitive.div,
|
|
980
965
|
{
|
|
981
966
|
"aria-hidden": true,
|