@ledgerhq/lumen-ui-react 0.1.14 → 0.1.16
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/ai-rules/RULES.md +1 -1
- package/dist/_virtual/index.js +5 -0
- package/dist/_virtual/index2.js +4 -0
- package/dist/_virtual/use-sync-external-store-shim.development.js +4 -0
- package/dist/_virtual/use-sync-external-store-shim.production.js +4 -0
- package/dist/_virtual/with-selector.development.js +4 -0
- package/dist/_virtual/with-selector.js +5 -0
- package/dist/_virtual/with-selector.production.js +4 -0
- package/dist/_virtual/with-selector2.js +4 -0
- package/dist/i18n/i18n.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -134
- package/dist/lib/Components/AmountInput/AmountInput.d.ts.map +1 -1
- package/dist/lib/Components/Avatar/Avatar.js +26 -26
- package/dist/lib/Components/BaseInput/BaseInput.d.ts.map +1 -1
- package/dist/lib/Components/BaseInput/BaseInput.js +60 -60
- package/dist/lib/Components/CardButton/CardButton.js +10 -10
- package/dist/lib/Components/Dialog/Dialog.js +39 -39
- package/dist/lib/Components/Dialog/types.d.ts +3 -3
- package/dist/lib/Components/Icon/Icon.js +5 -5
- package/dist/lib/Components/Icon/createIcon.d.ts.map +1 -1
- package/dist/lib/Components/Link/Link.d.ts.map +1 -1
- package/dist/lib/Components/Link/Link.js +25 -32
- package/dist/lib/Components/ListItem/ListItem.d.ts +17 -28
- package/dist/lib/Components/ListItem/ListItem.d.ts.map +1 -1
- package/dist/lib/Components/ListItem/ListItem.js +81 -93
- package/dist/lib/Components/ListItem/types.d.ts +13 -32
- package/dist/lib/Components/ListItem/types.d.ts.map +1 -1
- package/dist/lib/Components/MediaBanner/MediaBanner.d.ts.map +1 -1
- package/dist/lib/Components/MediaBanner/MediaBanner.js +30 -28
- package/dist/lib/Components/Menu/Menu.d.ts +4 -4
- package/dist/lib/Components/Menu/Menu.d.ts.map +1 -1
- package/dist/lib/Components/NavBar/NavBar.d.ts +0 -1
- package/dist/lib/Components/NavBar/NavBar.d.ts.map +1 -1
- package/dist/lib/Components/Popover/Popover.d.ts +57 -0
- package/dist/lib/Components/Popover/Popover.d.ts.map +1 -0
- package/dist/lib/Components/Popover/Popover.js +126 -0
- package/dist/lib/Components/Popover/index.d.ts +3 -0
- package/dist/lib/Components/Popover/index.d.ts.map +1 -0
- package/dist/lib/Components/Popover/types.d.ts +129 -0
- package/dist/lib/Components/Popover/types.d.ts.map +1 -0
- package/dist/lib/Components/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/lib/Components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/lib/Components/SegmentedControl/SegmentedControl.js +97 -81
- package/dist/lib/Components/SegmentedControl/SegmentedControlContext.d.ts +1 -0
- package/dist/lib/Components/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
- package/dist/lib/Components/SegmentedControl/types.d.ts +7 -0
- package/dist/lib/Components/SegmentedControl/types.d.ts.map +1 -1
- package/dist/lib/Components/SegmentedControl/usePillElementLayoutEffect.d.ts +5 -6
- package/dist/lib/Components/SegmentedControl/usePillElementLayoutEffect.d.ts.map +1 -1
- package/dist/lib/Components/SegmentedControl/usePillElementLayoutEffect.js +30 -25
- package/dist/lib/Components/Select/Select.js +9 -9
- package/dist/lib/Components/SideBar/SideBar.d.ts +1 -1
- package/dist/lib/Components/SideBar/SideBar.d.ts.map +1 -1
- package/dist/lib/Components/SideBar/SideBar.js +93 -89
- package/dist/lib/Components/SideBar/types.d.ts +7 -1
- package/dist/lib/Components/SideBar/types.d.ts.map +1 -1
- package/dist/lib/Components/Stepper/Stepper.d.ts +5 -6
- package/dist/lib/Components/Stepper/Stepper.d.ts.map +1 -1
- package/dist/lib/Components/Stepper/Stepper.js +100 -102
- package/dist/lib/Components/Stepper/types.d.ts +2 -2
- package/dist/lib/Components/Stepper/types.d.ts.map +1 -1
- package/dist/lib/Components/Tag/Tag.d.ts.map +1 -1
- package/dist/lib/Components/Tag/Tag.js +6 -6
- package/dist/lib/Components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/lib/Components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/lib/Components/Tooltip/Tooltip.js +1 -1
- package/dist/lib/Components/TriggerButton/TriggerButton.js +8 -8
- package/dist/lib/Components/index.d.ts +1 -0
- package/dist/lib/Components/index.d.ts.map +1 -1
- package/dist/lib/Symbols/Icons/Csv.js +5 -5
- package/dist/lib/Symbols/Icons/TriangleDown.d.ts +29 -0
- package/dist/lib/Symbols/Icons/TriangleDown.d.ts.map +1 -0
- package/dist/lib/Symbols/Icons/TriangleDown.js +25 -0
- package/dist/lib/Symbols/Icons/TriangleUp.d.ts +29 -0
- package/dist/lib/Symbols/Icons/TriangleUp.d.ts.map +1 -0
- package/dist/lib/Symbols/Icons/TriangleUp.js +25 -0
- package/dist/lib/Symbols/index.d.ts +2 -0
- package/dist/lib/Symbols/index.d.ts.map +1 -1
- package/dist/lib/Symbols/index.js +104 -100
- package/dist/node_modules/@base-ui/react/esm/composite/composite.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/CompositeRootContext.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/direction-provider/DirectionContext.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.js +284 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.js +128 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.js +60 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.js +58 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.js +67 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.js +275 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.js +78 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js +38 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +87 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +42 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +145 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverShared.js +19 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useInteractions.js +48 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useRole.js +76 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +35 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/middleware/arrow.js +47 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.js +131 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/composite.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/constants.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createAttribute.js +6 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createEventEmitter.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/element.js +69 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/enqueueFocus.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/event.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/getEmptyRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/markOthers.js +80 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/nodes.js +15 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/tabbable.js +68 -0
- package/dist/node_modules/@base-ui/react/esm/merge-props/mergeProps.js +82 -0
- package/dist/node_modules/@base-ui/react/esm/popover/backdrop/PopoverBackdrop.js +39 -0
- package/dist/node_modules/@base-ui/react/esm/popover/popup/PopoverPopup.js +88 -0
- package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortal.js +24 -0
- package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortalContext.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositioner.js +110 -0
- package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositionerContext.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRoot.js +117 -0
- package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRootContext.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/popover/store/PopoverHandle.js +44 -0
- package/dist/node_modules/@base-ui/react/esm/popover/store/PopoverStore.js +94 -0
- package/dist/node_modules/@base-ui/react/esm/popover/trigger/PopoverTrigger.js +120 -0
- package/dist/node_modules/@base-ui/react/esm/popover/utils/constants.js +4 -0
- package/dist/node_modules/@base-ui/react/esm/toolbar/root/ToolbarRootContext.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/use-button/useButton.js +113 -0
- package/dist/node_modules/@base-ui/react/esm/utils/FocusGuard.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/utils/InternalBackdrop.js +41 -0
- package/dist/node_modules/@base-ui/react/esm/utils/adaptiveOriginMiddleware.js +63 -0
- package/dist/node_modules/@base-ui/react/esm/utils/closePart.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/utils/constants.js +19 -0
- package/dist/node_modules/@base-ui/react/esm/utils/createBaseUIEventDetails.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getDisabledMountTransitionStyles.js +8 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/utils/hideMiddleware.js +20 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popupStateMapping.js +40 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.js +95 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.js +64 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/store.js +52 -0
- package/dist/node_modules/@base-ui/react/esm/utils/reason-parts.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveClassName.js +6 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveRef.js +6 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveStyle.js +6 -0
- package/dist/node_modules/@base-ui/react/esm/utils/stateAttributesMapping.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useAnchorPositioning.js +267 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useAnimationsFinished.js +57 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useBaseUiId.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useFocusableWhenDisabled.js +24 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useOpenChangeComplete.js +22 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useOpenInteractionType.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useRenderElement.js +71 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useTransitionStatus.js +42 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useValueChanged.js +14 -0
- package/dist/node_modules/@base-ui/utils/esm/detectBrowser.js +43 -0
- package/dist/node_modules/@base-ui/utils/esm/empty.js +7 -0
- package/dist/node_modules/@base-ui/utils/esm/error.js +11 -0
- package/dist/node_modules/@base-ui/utils/esm/formatErrorMessage.js +11 -0
- package/dist/node_modules/@base-ui/utils/esm/getReactElementRef.js +11 -0
- package/dist/node_modules/@base-ui/utils/esm/inertValue.js +7 -0
- package/dist/node_modules/@base-ui/utils/esm/mergeObjects.js +14 -0
- package/dist/node_modules/@base-ui/utils/esm/owner.js +6 -0
- package/dist/node_modules/@base-ui/utils/esm/reactVersion.js +8 -0
- package/dist/node_modules/@base-ui/utils/esm/safeReact.js +7 -0
- package/dist/node_modules/@base-ui/utils/esm/store/ReactStore.js +145 -0
- package/dist/node_modules/@base-ui/utils/esm/store/Store.js +86 -0
- package/dist/node_modules/@base-ui/utils/esm/store/createSelector.js +25 -0
- package/dist/node_modules/@base-ui/utils/esm/store/useStore.js +21 -0
- package/dist/node_modules/@base-ui/utils/esm/useAnimationFrame.js +68 -0
- package/dist/node_modules/@base-ui/utils/esm/useEnhancedClickHandler.js +19 -0
- package/dist/node_modules/@base-ui/utils/esm/useId.js +20 -0
- package/dist/node_modules/@base-ui/utils/esm/useIsoLayoutEffect.js +6 -0
- package/dist/node_modules/@base-ui/utils/esm/useMergedRefs.js +69 -0
- package/dist/node_modules/@base-ui/utils/esm/useOnFirstRender.js +8 -0
- package/dist/node_modules/@base-ui/utils/esm/useOnMount.js +8 -0
- package/dist/node_modules/@base-ui/utils/esm/useRefWithInit.js +9 -0
- package/dist/node_modules/@base-ui/utils/esm/useScrollLock.js +122 -0
- package/dist/node_modules/@base-ui/utils/esm/useStableCallback.js +32 -0
- package/dist/node_modules/@base-ui/utils/esm/useTimeout.js +32 -0
- package/dist/node_modules/@base-ui/utils/esm/useValueAsRef.js +19 -0
- package/dist/node_modules/@base-ui/utils/esm/visuallyHidden.js +18 -0
- package/dist/node_modules/@base-ui/utils/esm/warn.js +11 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +494 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +402 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +203 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +136 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +128 -0
- package/dist/node_modules/i18next/dist/esm/i18next.js +45 -47
- package/dist/node_modules/reselect/dist/reselect.js +324 -0
- package/dist/node_modules/tabbable/dist/index.esm.js +210 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +58 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +57 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +58 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +46 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js +10 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js +10 -0
- package/dist/package.json +2 -1
- package/dist/utils/icon-template.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/lib/Patterns/index.d.ts +0 -3
- package/dist/lib/Patterns/index.d.ts.map +0 -1
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import * as a from "react";
|
|
2
|
+
import { isWebKit as Xe, isElement as B, isShadowRoot as We, isLastTraversableNode as Z, getParentNode as Ye, isHTMLElement as Ae, getComputedStyle as _e } from "../../../../../@floating-ui/utils/dist/floating-ui.utils.dom.js";
|
|
3
|
+
import { useTimeout as de, Timeout as pe } from "../../../../utils/esm/useTimeout.js";
|
|
4
|
+
import { useStableCallback as y } from "../../../../utils/esm/useStableCallback.js";
|
|
5
|
+
import { ownerDocument as me } from "../../../../utils/esm/owner.js";
|
|
6
|
+
import { useFloatingTree as He } from "../components/FloatingTree.js";
|
|
7
|
+
import { createChangeEventDetails as N } from "../../utils/createBaseUIEventDetails.js";
|
|
8
|
+
import { createAttribute as Be } from "../utils/createAttribute.js";
|
|
9
|
+
import { isReactEvent as Ne } from "../utils/event.js";
|
|
10
|
+
import { getTarget as S, contains as F, isEventTargetWithin as l, isRootElement as Fe } from "../utils/element.js";
|
|
11
|
+
import { getNodeChildren as z } from "../utils/nodes.js";
|
|
12
|
+
import { escapeKey as qe, triggerPress as Ee, outsidePress as $e } from "../../utils/reason-parts.js";
|
|
13
|
+
const Ve = {
|
|
14
|
+
intentional: "onClick",
|
|
15
|
+
sloppy: "onPointerDown"
|
|
16
|
+
};
|
|
17
|
+
function Ue() {
|
|
18
|
+
return !1;
|
|
19
|
+
}
|
|
20
|
+
function je(f) {
|
|
21
|
+
return {
|
|
22
|
+
escapeKey: typeof f == "boolean" ? f : f?.escapeKey ?? !1,
|
|
23
|
+
outsidePress: typeof f == "boolean" ? f : f?.outsidePress ?? !0
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function it(f, he = {}) {
|
|
27
|
+
const n = "rootStore" in f ? f.rootStore : f, C = n.useState("open"), ee = n.useState("floatingElement"), {
|
|
28
|
+
dataRef: p
|
|
29
|
+
} = n.context, {
|
|
30
|
+
enabled: m = !0,
|
|
31
|
+
escapeKey: X = !0,
|
|
32
|
+
outsidePress: W = !0,
|
|
33
|
+
outsidePressEvent: ye = "sloppy",
|
|
34
|
+
referencePress: ge = Ue,
|
|
35
|
+
referencePressEvent: q = "sloppy",
|
|
36
|
+
bubbles: Pe,
|
|
37
|
+
externalTree: ve
|
|
38
|
+
} = he, g = He(ve), Re = y(typeof W == "function" ? W : () => !1), P = typeof W == "function" ? Re : W, $ = P !== !1, te = y(() => ye), k = a.useRef(!1), Y = a.useRef(!1), T = a.useRef(!1), {
|
|
39
|
+
escapeKey: A,
|
|
40
|
+
outsidePress: ne
|
|
41
|
+
} = je(Pe), i = a.useRef(null), O = de(), re = de(), E = y(() => {
|
|
42
|
+
re.clear(), p.current.insideReactTree = !1;
|
|
43
|
+
}), V = a.useRef(!1), U = a.useRef(""), j = y(ge), v = y((s) => {
|
|
44
|
+
if (!C || !m || !X || s.key !== "Escape" || V.current)
|
|
45
|
+
return;
|
|
46
|
+
const h = p.current.floatingContext?.nodeId, D = g ? z(g.nodesRef.current, h) : [];
|
|
47
|
+
if (!A && D.length > 0) {
|
|
48
|
+
let M = !0;
|
|
49
|
+
if (D.forEach((d) => {
|
|
50
|
+
d.context?.open && !d.context.dataRef.current.__escapeKeyBubbles && (M = !1);
|
|
51
|
+
}), !M)
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const _ = Ne(s) ? s.nativeEvent : s, I = N(qe, _);
|
|
55
|
+
n.setOpen(!1, I), !A && !I.isPropagationAllowed && s.stopPropagation();
|
|
56
|
+
}), R = y(() => {
|
|
57
|
+
p.current.insideReactTree = !0, re.start(0, E);
|
|
58
|
+
});
|
|
59
|
+
a.useEffect(() => {
|
|
60
|
+
if (!C || !m)
|
|
61
|
+
return;
|
|
62
|
+
p.current.__escapeKeyBubbles = A, p.current.__outsidePressBubbles = ne;
|
|
63
|
+
const s = new pe(), h = new pe();
|
|
64
|
+
function D() {
|
|
65
|
+
s.clear(), V.current = !0;
|
|
66
|
+
}
|
|
67
|
+
function _() {
|
|
68
|
+
s.start(
|
|
69
|
+
// 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
|
|
70
|
+
// Only apply to WebKit for the test to remain 0ms.
|
|
71
|
+
Xe() ? 5 : 0,
|
|
72
|
+
() => {
|
|
73
|
+
V.current = !1;
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
function I() {
|
|
78
|
+
T.current = !0, h.start(0, () => {
|
|
79
|
+
T.current = !1;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function M() {
|
|
83
|
+
k.current = !1, Y.current = !1;
|
|
84
|
+
}
|
|
85
|
+
function d() {
|
|
86
|
+
const e = U.current, t = e === "pen" || !e ? "mouse" : e, o = te(), c = typeof o == "function" ? o() : o;
|
|
87
|
+
return typeof c == "string" ? c : c[t];
|
|
88
|
+
}
|
|
89
|
+
function Te(e) {
|
|
90
|
+
const t = d();
|
|
91
|
+
return t === "intentional" && e.type !== "click" || t === "sloppy" && e.type === "click";
|
|
92
|
+
}
|
|
93
|
+
function oe(e) {
|
|
94
|
+
const t = p.current.floatingContext?.nodeId, o = g && z(g.nodesRef.current, t).some((c) => l(e, c.context?.elements.floating));
|
|
95
|
+
return l(e, n.select("floatingElement")) || l(e, n.select("domReferenceElement")) || o;
|
|
96
|
+
}
|
|
97
|
+
function H(e) {
|
|
98
|
+
if (Te(e)) {
|
|
99
|
+
E();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (p.current.insideReactTree) {
|
|
103
|
+
E();
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const t = S(e), o = `[${Be("inert")}]`;
|
|
107
|
+
let c = Array.from(me(n.select("floatingElement")).querySelectorAll(o));
|
|
108
|
+
const K = B(t) ? t.getRootNode() : null;
|
|
109
|
+
We(K) && (c = c.concat(Array.from(K.querySelectorAll(o))));
|
|
110
|
+
const ae = n.context.triggerElements;
|
|
111
|
+
if (t && (ae.hasElement(t) || ae.hasMatchingElement((u) => F(u, t))))
|
|
112
|
+
return;
|
|
113
|
+
let x = B(t) ? t : null;
|
|
114
|
+
for (; x && !Z(x); ) {
|
|
115
|
+
const u = Ye(x);
|
|
116
|
+
if (Z(u) || !B(u))
|
|
117
|
+
break;
|
|
118
|
+
x = u;
|
|
119
|
+
}
|
|
120
|
+
if (c.length && B(t) && !Fe(t) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
|
|
121
|
+
!F(t, n.select("floatingElement")) && // If the target root element contains none of the markers, then the
|
|
122
|
+
// element was injected after the floating element rendered.
|
|
123
|
+
c.every((u) => !F(x, u)))
|
|
124
|
+
return;
|
|
125
|
+
if (Ae(t) && !("touches" in e)) {
|
|
126
|
+
const u = Z(t), w = _e(t), fe = /auto|scroll/, ke = u || fe.test(w.overflowX), Oe = u || fe.test(w.overflowY), De = ke && t.clientWidth > 0 && t.scrollWidth > t.clientWidth, Ie = Oe && t.clientHeight > 0 && t.scrollHeight > t.clientHeight, Me = w.direction === "rtl", Ke = Ie && (Me ? e.offsetX <= t.offsetWidth - t.clientWidth : e.offsetX > t.clientWidth), xe = De && e.offsetY > t.clientHeight;
|
|
127
|
+
if (Ke || xe)
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (oe(e))
|
|
131
|
+
return;
|
|
132
|
+
if (d() === "intentional" && T.current) {
|
|
133
|
+
h.clear(), T.current = !1;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (typeof P == "function" && !P(e))
|
|
137
|
+
return;
|
|
138
|
+
const Ce = p.current.floatingContext?.nodeId, le = g ? z(g.nodesRef.current, Ce) : [];
|
|
139
|
+
if (le.length > 0) {
|
|
140
|
+
let u = !0;
|
|
141
|
+
if (le.forEach((w) => {
|
|
142
|
+
w.context?.open && !w.context.dataRef.current.__outsidePressBubbles && (u = !1);
|
|
143
|
+
}), !u)
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
n.setOpen(!1, N($e, e)), E();
|
|
147
|
+
}
|
|
148
|
+
function be(e) {
|
|
149
|
+
d() !== "sloppy" || e.pointerType === "touch" || !n.select("open") || !m || l(e, n.select("floatingElement")) || l(e, n.select("domReferenceElement")) || H(e);
|
|
150
|
+
}
|
|
151
|
+
function Le(e) {
|
|
152
|
+
if (d() !== "sloppy" || !n.select("open") || !m || l(e, n.select("floatingElement")) || l(e, n.select("domReferenceElement")))
|
|
153
|
+
return;
|
|
154
|
+
const t = e.touches[0];
|
|
155
|
+
t && (i.current = {
|
|
156
|
+
startTime: Date.now(),
|
|
157
|
+
startX: t.clientX,
|
|
158
|
+
startY: t.clientY,
|
|
159
|
+
dismissOnTouchEnd: !1,
|
|
160
|
+
dismissOnMouseDown: !0
|
|
161
|
+
}, O.start(1e3, () => {
|
|
162
|
+
i.current && (i.current.dismissOnTouchEnd = !1, i.current.dismissOnMouseDown = !1);
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
function ie(e) {
|
|
166
|
+
U.current = "touch";
|
|
167
|
+
const t = S(e);
|
|
168
|
+
function o() {
|
|
169
|
+
Le(e), t?.removeEventListener(e.type, o);
|
|
170
|
+
}
|
|
171
|
+
t?.addEventListener(e.type, o);
|
|
172
|
+
}
|
|
173
|
+
function b(e) {
|
|
174
|
+
if (O.clear(), e.type === "pointerdown" && (U.current = e.pointerType), e.type === "mousedown" && i.current && !i.current.dismissOnMouseDown)
|
|
175
|
+
return;
|
|
176
|
+
const t = S(e);
|
|
177
|
+
function o() {
|
|
178
|
+
e.type === "pointerdown" ? be(e) : H(e), t?.removeEventListener(e.type, o);
|
|
179
|
+
}
|
|
180
|
+
t?.addEventListener(e.type, o);
|
|
181
|
+
}
|
|
182
|
+
function L(e) {
|
|
183
|
+
if (!k.current)
|
|
184
|
+
return;
|
|
185
|
+
const t = Y.current;
|
|
186
|
+
if (M(), d() === "intentional") {
|
|
187
|
+
if (e.type === "pointercancel") {
|
|
188
|
+
t && I();
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (!oe(e)) {
|
|
192
|
+
if (t) {
|
|
193
|
+
I();
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
typeof P == "function" && !P(e) || (h.clear(), T.current = !0, E());
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function we(e) {
|
|
201
|
+
if (d() !== "sloppy" || !i.current || l(e, n.select("floatingElement")) || l(e, n.select("domReferenceElement")))
|
|
202
|
+
return;
|
|
203
|
+
const t = e.touches[0];
|
|
204
|
+
if (!t)
|
|
205
|
+
return;
|
|
206
|
+
const o = Math.abs(t.clientX - i.current.startX), c = Math.abs(t.clientY - i.current.startY), K = Math.sqrt(o * o + c * c);
|
|
207
|
+
K > 5 && (i.current.dismissOnTouchEnd = !0), K > 10 && (H(e), O.clear(), i.current = null);
|
|
208
|
+
}
|
|
209
|
+
function ce(e) {
|
|
210
|
+
const t = S(e);
|
|
211
|
+
function o() {
|
|
212
|
+
we(e), t?.removeEventListener(e.type, o);
|
|
213
|
+
}
|
|
214
|
+
t?.addEventListener(e.type, o);
|
|
215
|
+
}
|
|
216
|
+
function Se(e) {
|
|
217
|
+
d() !== "sloppy" || !i.current || l(e, n.select("floatingElement")) || l(e, n.select("domReferenceElement")) || (i.current.dismissOnTouchEnd && H(e), O.clear(), i.current = null);
|
|
218
|
+
}
|
|
219
|
+
function ue(e) {
|
|
220
|
+
const t = S(e);
|
|
221
|
+
function o() {
|
|
222
|
+
Se(e), t?.removeEventListener(e.type, o);
|
|
223
|
+
}
|
|
224
|
+
t?.addEventListener(e.type, o);
|
|
225
|
+
}
|
|
226
|
+
const r = me(ee);
|
|
227
|
+
return X && (r.addEventListener("keydown", v), r.addEventListener("compositionstart", D), r.addEventListener("compositionend", _)), $ && (r.addEventListener("click", b, !0), r.addEventListener("pointerdown", b, !0), r.addEventListener("pointerup", L, !0), r.addEventListener("pointercancel", L, !0), r.addEventListener("mousedown", b, !0), r.addEventListener("mouseup", L, !0), r.addEventListener("touchstart", ie, !0), r.addEventListener("touchmove", ce, !0), r.addEventListener("touchend", ue, !0)), () => {
|
|
228
|
+
X && (r.removeEventListener("keydown", v), r.removeEventListener("compositionstart", D), r.removeEventListener("compositionend", _)), $ && (r.removeEventListener("click", b, !0), r.removeEventListener("pointerdown", b, !0), r.removeEventListener("pointerup", L, !0), r.removeEventListener("pointercancel", L, !0), r.removeEventListener("mousedown", b, !0), r.removeEventListener("mouseup", L, !0), r.removeEventListener("touchstart", ie, !0), r.removeEventListener("touchmove", ce, !0), r.removeEventListener("touchend", ue, !0)), s.clear(), h.clear(), M(), T.current = !1;
|
|
229
|
+
};
|
|
230
|
+
}, [p, ee, X, $, P, C, m, A, ne, v, E, te, g, n, O]), a.useEffect(E, [P, E]);
|
|
231
|
+
const G = a.useMemo(() => ({
|
|
232
|
+
onKeyDown: v,
|
|
233
|
+
[Ve[q]]: (s) => {
|
|
234
|
+
j() && n.setOpen(!1, N(Ee, s.nativeEvent));
|
|
235
|
+
},
|
|
236
|
+
...q !== "intentional" && {
|
|
237
|
+
onClick(s) {
|
|
238
|
+
j() && n.setOpen(!1, N(Ee, s.nativeEvent));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}), [v, n, q, j]), J = y((s) => {
|
|
242
|
+
if (!C || !m || s.button !== 0)
|
|
243
|
+
return;
|
|
244
|
+
const h = S(s.nativeEvent);
|
|
245
|
+
F(n.select("floatingElement"), h) && (k.current || (k.current = !0, Y.current = !1));
|
|
246
|
+
}), Q = y((s) => {
|
|
247
|
+
!C || !m || (s.defaultPrevented || s.nativeEvent.defaultPrevented) && k.current && (Y.current = !0);
|
|
248
|
+
}), se = a.useMemo(() => ({
|
|
249
|
+
onKeyDown: v,
|
|
250
|
+
// `onMouseDown` may be blocked if `event.preventDefault()` is called in
|
|
251
|
+
// `onPointerDown`, such as with <NumberField.ScrubArea>.
|
|
252
|
+
// See https://github.com/mui/base-ui/pull/3379
|
|
253
|
+
onPointerDown: Q,
|
|
254
|
+
onMouseDown: Q,
|
|
255
|
+
onClickCapture: R,
|
|
256
|
+
onMouseDownCapture(s) {
|
|
257
|
+
R(), J(s);
|
|
258
|
+
},
|
|
259
|
+
onPointerDownCapture(s) {
|
|
260
|
+
R(), J(s);
|
|
261
|
+
},
|
|
262
|
+
onMouseUpCapture: R,
|
|
263
|
+
onTouchEndCapture: R,
|
|
264
|
+
onTouchMoveCapture: R
|
|
265
|
+
}), [v, R, J, Q]);
|
|
266
|
+
return a.useMemo(() => m ? {
|
|
267
|
+
reference: G,
|
|
268
|
+
floating: se,
|
|
269
|
+
trigger: G
|
|
270
|
+
} : {}, [m, G, se]);
|
|
271
|
+
}
|
|
272
|
+
export {
|
|
273
|
+
je as normalizeProp,
|
|
274
|
+
it as useDismiss
|
|
275
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as o from "react";
|
|
2
|
+
import { useFloating as P } from "../../../../../@floating-ui/react-dom/dist/floating-ui.react-dom.js";
|
|
3
|
+
import { isElement as s } from "../../../../../@floating-ui/utils/dist/floating-ui.utils.dom.js";
|
|
4
|
+
import { useIsoLayoutEffect as F } from "../../../../utils/esm/useIsoLayoutEffect.js";
|
|
5
|
+
import { useFloatingTree as V } from "../components/FloatingTree.js";
|
|
6
|
+
import { useFloatingRootContext as v } from "./useFloatingRootContext.js";
|
|
7
|
+
function w(c = {}) {
|
|
8
|
+
const {
|
|
9
|
+
nodeId: m,
|
|
10
|
+
externalTree: y
|
|
11
|
+
} = c, I = v(c), t = c.rootContext || I, r = {
|
|
12
|
+
reference: t.useState("referenceElement"),
|
|
13
|
+
floating: t.useState("floatingElement"),
|
|
14
|
+
domReference: t.useState("domReferenceElement")
|
|
15
|
+
}, [g, M] = o.useState(null), i = o.useRef(null), b = V(y);
|
|
16
|
+
F(() => {
|
|
17
|
+
r.domReference && (i.current = r.domReference);
|
|
18
|
+
}, [r.domReference]);
|
|
19
|
+
const n = P({
|
|
20
|
+
...c,
|
|
21
|
+
elements: {
|
|
22
|
+
...r,
|
|
23
|
+
...g && {
|
|
24
|
+
reference: g
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}), d = o.useCallback((e) => {
|
|
28
|
+
const u = s(e) ? {
|
|
29
|
+
getBoundingClientRect: () => e.getBoundingClientRect(),
|
|
30
|
+
getClientRects: () => e.getClientRects(),
|
|
31
|
+
contextElement: e
|
|
32
|
+
} : e;
|
|
33
|
+
M(u), n.refs.setReference(u);
|
|
34
|
+
}, [n.refs]), [R, S] = o.useState(null), [k, L] = o.useState(null);
|
|
35
|
+
t.useSyncedValue("referenceElement", R), t.useSyncedValue("domReferenceElement", s(R) ? R : null), t.useSyncedValue("floatingElement", k);
|
|
36
|
+
const x = o.useCallback((e) => {
|
|
37
|
+
(s(e) || e === null) && (i.current = e, S(e)), (s(n.refs.reference.current) || n.refs.reference.current === null || // Don't allow setting virtual elements using the old technique back to
|
|
38
|
+
// `null` to support `positionReference` + an unstable `reference`
|
|
39
|
+
// callback ref.
|
|
40
|
+
e !== null && !s(e)) && n.refs.setReference(e);
|
|
41
|
+
}, [n.refs, S]), C = o.useCallback((e) => {
|
|
42
|
+
L(e), n.refs.setFloating(e);
|
|
43
|
+
}, [n.refs]), l = o.useMemo(() => ({
|
|
44
|
+
...n.refs,
|
|
45
|
+
setReference: x,
|
|
46
|
+
setFloating: C,
|
|
47
|
+
setPositionReference: d,
|
|
48
|
+
domReference: i
|
|
49
|
+
}), [n.refs, x, C, d]), f = o.useMemo(() => ({
|
|
50
|
+
...n.elements,
|
|
51
|
+
domReference: r.domReference
|
|
52
|
+
}), [n.elements, r.domReference]), E = t.useState("open"), p = t.useState("floatingId"), a = o.useMemo(() => ({
|
|
53
|
+
...n,
|
|
54
|
+
dataRef: t.context.dataRef,
|
|
55
|
+
open: E,
|
|
56
|
+
onOpenChange: t.setOpen,
|
|
57
|
+
events: t.context.events,
|
|
58
|
+
floatingId: p,
|
|
59
|
+
refs: l,
|
|
60
|
+
elements: f,
|
|
61
|
+
nodeId: m,
|
|
62
|
+
rootStore: t
|
|
63
|
+
}), [n, l, f, m, t, E, p]);
|
|
64
|
+
return F(() => {
|
|
65
|
+
t.context.dataRef.current.floatingContext = a;
|
|
66
|
+
const e = b?.nodesRef.current.find((u) => u.id === m);
|
|
67
|
+
e && (e.context = a);
|
|
68
|
+
}), o.useMemo(() => ({
|
|
69
|
+
...n,
|
|
70
|
+
context: a,
|
|
71
|
+
refs: l,
|
|
72
|
+
elements: f,
|
|
73
|
+
rootStore: t
|
|
74
|
+
}), [n, l, f, a, t]);
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
w as useFloating
|
|
78
|
+
};
|
package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { isElement as l } from "../../../../../@floating-ui/utils/dist/floating-ui.utils.dom.js";
|
|
2
|
+
import { useId as c } from "../../../../utils/esm/useId.js";
|
|
3
|
+
import { useRefWithInit as m } from "../../../../utils/esm/useRefWithInit.js";
|
|
4
|
+
import { useIsoLayoutEffect as a } from "../../../../utils/esm/useIsoLayoutEffect.js";
|
|
5
|
+
import { useFloatingParentNodeId as u } from "../components/FloatingTree.js";
|
|
6
|
+
import { FloatingRootStore as p } from "../components/FloatingRootStore.js";
|
|
7
|
+
import { PopupTriggerMap as g } from "../../utils/popups/popupTriggerMap.js";
|
|
8
|
+
function O(s) {
|
|
9
|
+
const {
|
|
10
|
+
open: o = !1,
|
|
11
|
+
onOpenChange: f,
|
|
12
|
+
elements: e = {}
|
|
13
|
+
} = s, r = c(), i = u() != null;
|
|
14
|
+
if (process.env.NODE_ENV !== "production") {
|
|
15
|
+
const n = e.reference;
|
|
16
|
+
n && !l(n) && console.error("Cannot pass a virtual element to the `elements.reference` option,", "as it must be a real DOM element. Use `context.setPositionReference()`", "instead.");
|
|
17
|
+
}
|
|
18
|
+
const t = m(() => new p({
|
|
19
|
+
open: o,
|
|
20
|
+
onOpenChange: f,
|
|
21
|
+
referenceElement: e.reference ?? null,
|
|
22
|
+
floatingElement: e.floating ?? null,
|
|
23
|
+
triggerElements: new g(),
|
|
24
|
+
floatingId: r,
|
|
25
|
+
nested: i,
|
|
26
|
+
noEmit: !1
|
|
27
|
+
})).current;
|
|
28
|
+
return a(() => {
|
|
29
|
+
const n = {
|
|
30
|
+
open: o,
|
|
31
|
+
floatingId: r
|
|
32
|
+
};
|
|
33
|
+
e.reference !== void 0 && (n.referenceElement = e.reference, n.domReferenceElement = l(e.reference) ? e.reference : null), e.floating !== void 0 && (n.floatingElement = e.floating), t.update(n);
|
|
34
|
+
}, [o, r, e.reference, e.floating, t]), t.context.onOpenChange = f, t.context.nested = i, t.context.noEmit = !1, t;
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
O as useFloatingRootContext
|
|
38
|
+
};
|
package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as y from "react";
|
|
2
|
+
import { isElement as F } from "../../../../../@floating-ui/utils/dist/floating-ui.utils.dom.js";
|
|
3
|
+
import { useStableCallback as d } from "../../../../utils/esm/useStableCallback.js";
|
|
4
|
+
import { useIsoLayoutEffect as P } from "../../../../utils/esm/useIsoLayoutEffect.js";
|
|
5
|
+
import { useTimeout as w } from "../../../../utils/esm/useTimeout.js";
|
|
6
|
+
import { ownerDocument as H } from "../../../../utils/esm/owner.js";
|
|
7
|
+
import { createChangeEventDetails as b } from "../../utils/createBaseUIEventDetails.js";
|
|
8
|
+
import { useFloatingTree as M, useFloatingParentNodeId as N } from "../components/FloatingTree.js";
|
|
9
|
+
import { useHoverInteractionSharedState as x, clearSafePolygonPointerEventsMutation as W, isInteractiveElement as $, applySafePolygonPointerEventsMutation as j } from "./useHoverInteractionSharedState.js";
|
|
10
|
+
import { isClickLikeOpenEvent as q, getDelay as z } from "./useHoverShared.js";
|
|
11
|
+
import { isTargetInsideEnabledTrigger as A, getTarget as B } from "../utils/element.js";
|
|
12
|
+
import { triggerHover as R } from "../../utils/reason-parts.js";
|
|
13
|
+
import { getNodeChildren as k } from "../utils/nodes.js";
|
|
14
|
+
function ne(p, D = {}) {
|
|
15
|
+
const r = "rootStore" in p ? p.rootStore : p, u = r.useState("open"), f = r.useState("floatingElement"), g = r.useState("domReferenceElement"), {
|
|
16
|
+
dataRef: E
|
|
17
|
+
} = r.context, {
|
|
18
|
+
enabled: m = !0,
|
|
19
|
+
closeDelay: T = 0
|
|
20
|
+
} = D, e = x(r), n = M(), c = N(), I = d(() => q(E.current.openEvent?.type, e.interactedInside)), C = d(() => {
|
|
21
|
+
const t = E.current.openEvent?.type;
|
|
22
|
+
return t?.includes("mouse") && t !== "mousedown";
|
|
23
|
+
}), S = d((t) => A(t, r.context.triggerElements)), L = y.useCallback((t) => {
|
|
24
|
+
const s = z(T, "close", e.pointerType), a = () => {
|
|
25
|
+
r.setOpen(!1, b(R, t)), n?.events.emit("floating.closed", t);
|
|
26
|
+
};
|
|
27
|
+
s ? e.openChangeTimeout.start(s, a) : (e.openChangeTimeout.clear(), a());
|
|
28
|
+
}, [T, r, e, n]), i = d(() => {
|
|
29
|
+
W(e);
|
|
30
|
+
}), v = d((t) => {
|
|
31
|
+
const s = B(t);
|
|
32
|
+
if (!$(s)) {
|
|
33
|
+
e.interactedInside = !1;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
e.interactedInside = s?.closest("[aria-haspopup]") != null;
|
|
37
|
+
});
|
|
38
|
+
P(() => {
|
|
39
|
+
u || (e.pointerType = void 0, e.restTimeoutPending = !1, e.interactedInside = !1, i());
|
|
40
|
+
}, [u, e, i]), y.useEffect(() => i, [i]), P(() => {
|
|
41
|
+
if (m && u && e.handleCloseOptions?.blockPointerEvents && C() && F(g) && f) {
|
|
42
|
+
const t = g, s = f, a = H(f), o = n?.nodesRef.current.find((O) => O.id === c)?.context?.elements.floating;
|
|
43
|
+
o && (o.style.pointerEvents = "");
|
|
44
|
+
const l = e.handleCloseOptions?.getScope?.() ?? e.pointerEventsScopeElement ?? o ?? t.closest("[data-rootownerid]") ?? a.body;
|
|
45
|
+
return j(e, {
|
|
46
|
+
scopeElement: l,
|
|
47
|
+
referenceElement: t,
|
|
48
|
+
floatingElement: s
|
|
49
|
+
}), () => {
|
|
50
|
+
i();
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}, [m, u, g, f, e, C, n, c, i]);
|
|
54
|
+
const h = w();
|
|
55
|
+
y.useEffect(() => {
|
|
56
|
+
if (!m)
|
|
57
|
+
return;
|
|
58
|
+
function t() {
|
|
59
|
+
e.openChangeTimeout.clear(), h.clear(), n?.events.off("floating.closed", a), i();
|
|
60
|
+
}
|
|
61
|
+
function s(l) {
|
|
62
|
+
if (n && c && k(n.nodesRef.current, c).length > 0) {
|
|
63
|
+
n.events.on("floating.closed", a);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!S(l.relatedTarget)) {
|
|
67
|
+
if (e.handler) {
|
|
68
|
+
e.handler(l);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
i(), I() || L(l);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function a(l) {
|
|
75
|
+
!n || !c || k(n.nodesRef.current, c).length > 0 || h.start(0, () => {
|
|
76
|
+
n.events.off("floating.closed", a), r.setOpen(!1, b(R, l)), n.events.emit("floating.closed", l);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const o = f;
|
|
80
|
+
return o && (o.addEventListener("mouseenter", t), o.addEventListener("mouseleave", s), o.addEventListener("pointerdown", v, !0)), () => {
|
|
81
|
+
o && (o.removeEventListener("mouseenter", t), o.removeEventListener("mouseleave", s), o.removeEventListener("pointerdown", v, !0)), n?.events.off("floating.closed", a);
|
|
82
|
+
};
|
|
83
|
+
}, [m, f, r, E, I, S, L, i, v, e, n, c, h]);
|
|
84
|
+
}
|
|
85
|
+
export {
|
|
86
|
+
ne as useHoverFloatingInteraction
|
|
87
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useOnMount as l } from "../../../../utils/esm/useOnMount.js";
|
|
2
|
+
import { useRefWithInit as p } from "../../../../utils/esm/useRefWithInit.js";
|
|
3
|
+
import { Timeout as s } from "../../../../utils/esm/useTimeout.js";
|
|
4
|
+
import { TYPEABLE_SELECTOR as a } from "../utils/constants.js";
|
|
5
|
+
const u = `button,a,[role="button"],select,[tabindex]:not([tabindex="-1"]),${a}`;
|
|
6
|
+
function h(e) {
|
|
7
|
+
return e ? !!e.closest(u) : !1;
|
|
8
|
+
}
|
|
9
|
+
class o {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.pointerType = void 0, this.interactedInside = !1, this.handler = void 0, this.blockMouseMove = !0, this.performedPointerEventsMutation = !1, this.pointerEventsScopeElement = null, this.pointerEventsReferenceElement = null, this.pointerEventsFloatingElement = null, this.restTimeoutPending = !1, this.openChangeTimeout = new s(), this.restTimeout = new s(), this.handleCloseOptions = void 0;
|
|
12
|
+
}
|
|
13
|
+
static create() {
|
|
14
|
+
return new o();
|
|
15
|
+
}
|
|
16
|
+
dispose = () => {
|
|
17
|
+
this.openChangeTimeout.clear(), this.restTimeout.clear();
|
|
18
|
+
};
|
|
19
|
+
disposeEffect = () => this.dispose;
|
|
20
|
+
}
|
|
21
|
+
function E(e) {
|
|
22
|
+
e.performedPointerEventsMutation && (e.pointerEventsScopeElement?.style.removeProperty("pointer-events"), e.pointerEventsReferenceElement?.style.removeProperty("pointer-events"), e.pointerEventsFloatingElement?.style.removeProperty("pointer-events"), e.performedPointerEventsMutation = !1, e.pointerEventsScopeElement = null, e.pointerEventsReferenceElement = null, e.pointerEventsFloatingElement = null);
|
|
23
|
+
}
|
|
24
|
+
function d(e, n) {
|
|
25
|
+
const {
|
|
26
|
+
scopeElement: t,
|
|
27
|
+
referenceElement: r,
|
|
28
|
+
floatingElement: i
|
|
29
|
+
} = n;
|
|
30
|
+
E(e), e.performedPointerEventsMutation = !0, e.pointerEventsScopeElement = t, e.pointerEventsReferenceElement = r, e.pointerEventsFloatingElement = i, t.style.pointerEvents = "none", r.style.pointerEvents = "auto", i.style.pointerEvents = "auto";
|
|
31
|
+
}
|
|
32
|
+
function S(e) {
|
|
33
|
+
const n = p(o.create).current, t = e.context.dataRef.current;
|
|
34
|
+
return t.hoverInteractionState || (t.hoverInteractionState = n), l(t.hoverInteractionState.disposeEffect), t.hoverInteractionState;
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
o as HoverInteraction,
|
|
38
|
+
d as applySafePolygonPointerEventsMutation,
|
|
39
|
+
E as clearSafePolygonPointerEventsMutation,
|
|
40
|
+
h as isInteractiveElement,
|
|
41
|
+
S as useHoverInteractionSharedState
|
|
42
|
+
};
|
package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import * as v from "react";
|
|
2
|
+
import * as J from "react-dom";
|
|
3
|
+
import { isElement as X } from "../../../../../@floating-ui/utils/dist/floating-ui.utils.dom.js";
|
|
4
|
+
import { useValueAsRef as L } from "../../../../utils/esm/useValueAsRef.js";
|
|
5
|
+
import { useStableCallback as M } from "../../../../utils/esm/useStableCallback.js";
|
|
6
|
+
import { ownerDocument as B } from "../../../../utils/esm/owner.js";
|
|
7
|
+
import { createChangeEventDetails as d } from "../../utils/createBaseUIEventDetails.js";
|
|
8
|
+
import { useFloatingTree as K } from "../components/FloatingTree.js";
|
|
9
|
+
import { useHoverInteractionSharedState as Q, clearSafePolygonPointerEventsMutation as U } from "./useHoverInteractionSharedState.js";
|
|
10
|
+
import { getDelay as Y, getRestMs as N, isClickLikeOpenEvent as Z } from "./useHoverShared.js";
|
|
11
|
+
import { isMouseLikePointerType as W } from "../utils/event.js";
|
|
12
|
+
import { triggerHover as g } from "../../utils/reason-parts.js";
|
|
13
|
+
import { contains as P, isTargetInsideEnabledTrigger as ee } from "../utils/element.js";
|
|
14
|
+
const te = {
|
|
15
|
+
current: null
|
|
16
|
+
};
|
|
17
|
+
function de(b, $ = {}) {
|
|
18
|
+
const n = "rootStore" in b ? b.rootStore : b, {
|
|
19
|
+
dataRef: k,
|
|
20
|
+
events: I
|
|
21
|
+
} = n.context, {
|
|
22
|
+
enabled: c = !0,
|
|
23
|
+
delay: j = 0,
|
|
24
|
+
handleClose: q = null,
|
|
25
|
+
mouseOnly: C = !1,
|
|
26
|
+
restMs: z = 0,
|
|
27
|
+
move: x = !0,
|
|
28
|
+
triggerElementRef: D = te,
|
|
29
|
+
externalTree: G,
|
|
30
|
+
isActiveTrigger: S = !0,
|
|
31
|
+
getHandleCloseContext: _
|
|
32
|
+
} = $, p = K(G), e = Q(n), R = L(q), T = L(j), y = L(z), w = L(c);
|
|
33
|
+
S && (e.handleCloseOptions = R.current?.__options);
|
|
34
|
+
const E = M(() => Z(k.current.openEvent?.type, e.interactedInside)), A = M((t) => ee(t, n.context.triggerElements)), O = M((t, r, i) => {
|
|
35
|
+
const o = n.context.triggerElements;
|
|
36
|
+
if (o.hasElement(r))
|
|
37
|
+
return !t || !P(t, r);
|
|
38
|
+
if (!X(i))
|
|
39
|
+
return !1;
|
|
40
|
+
const a = i;
|
|
41
|
+
return o.hasMatchingElement((l) => P(l, a)) && (!t || !P(t, a));
|
|
42
|
+
}), H = v.useCallback((t, r = !0) => {
|
|
43
|
+
const i = Y(T.current, "close", e.pointerType);
|
|
44
|
+
i ? e.openChangeTimeout.start(i, () => {
|
|
45
|
+
n.setOpen(!1, d(g, t)), p?.events.emit("floating.closed", t);
|
|
46
|
+
}) : r && (e.openChangeTimeout.clear(), n.setOpen(!1, d(g, t)), p?.events.emit("floating.closed", t));
|
|
47
|
+
}, [T, n, e, p]), u = M(() => {
|
|
48
|
+
if (!e.handler)
|
|
49
|
+
return;
|
|
50
|
+
B(n.select("domReferenceElement")).removeEventListener("mousemove", e.handler), e.handler = void 0;
|
|
51
|
+
});
|
|
52
|
+
v.useEffect(() => u, [u]);
|
|
53
|
+
const V = M(() => {
|
|
54
|
+
U(e);
|
|
55
|
+
});
|
|
56
|
+
return v.useEffect(() => {
|
|
57
|
+
if (!c)
|
|
58
|
+
return;
|
|
59
|
+
function t(r) {
|
|
60
|
+
r.open || (u(), e.openChangeTimeout.clear(), e.restTimeout.clear(), e.blockMouseMove = !0, e.restTimeoutPending = !1);
|
|
61
|
+
}
|
|
62
|
+
return I.on("openchange", t), () => {
|
|
63
|
+
I.off("openchange", t);
|
|
64
|
+
};
|
|
65
|
+
}, [c, I, e, u]), v.useEffect(() => {
|
|
66
|
+
if (!c)
|
|
67
|
+
return;
|
|
68
|
+
const t = D.current ?? (S ? n.select("domReferenceElement") : null);
|
|
69
|
+
if (!X(t))
|
|
70
|
+
return;
|
|
71
|
+
function r(o) {
|
|
72
|
+
if (e.openChangeTimeout.clear(), e.blockMouseMove = !1, C && !W(e.pointerType) || N(y.current) > 0 && !Y(T.current, "open"))
|
|
73
|
+
return;
|
|
74
|
+
const l = Y(T.current, "open", e.pointerType), s = o.currentTarget ?? null, h = n.select("domReferenceElement"), f = s == null ? !1 : O(h, s, o.target), m = n.select("open"), F = !m || f;
|
|
75
|
+
f && m ? n.setOpen(!0, d(g, o, s)) : l ? e.openChangeTimeout.start(l, () => {
|
|
76
|
+
F && n.setOpen(!0, d(g, o, s));
|
|
77
|
+
}) : F && n.setOpen(!0, d(g, o, s));
|
|
78
|
+
}
|
|
79
|
+
function i(o) {
|
|
80
|
+
if (E()) {
|
|
81
|
+
V();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
u();
|
|
85
|
+
const a = n.select("domReferenceElement"), l = B(a);
|
|
86
|
+
e.restTimeout.clear(), e.restTimeoutPending = !1;
|
|
87
|
+
const s = k.current.floatingContext ?? _?.();
|
|
88
|
+
if (A(o.relatedTarget))
|
|
89
|
+
return;
|
|
90
|
+
if (R.current && s) {
|
|
91
|
+
n.select("open") || e.openChangeTimeout.clear();
|
|
92
|
+
const m = D.current;
|
|
93
|
+
e.handler = R.current({
|
|
94
|
+
...s,
|
|
95
|
+
tree: p,
|
|
96
|
+
x: o.clientX,
|
|
97
|
+
y: o.clientY,
|
|
98
|
+
onClose() {
|
|
99
|
+
V(), u(), w.current && !E() && m === n.select("domReferenceElement") && H(o, !0);
|
|
100
|
+
}
|
|
101
|
+
}), l.addEventListener("mousemove", e.handler), e.handler(o);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
(e.pointerType !== "touch" || !P(n.select("floatingElement"), o.relatedTarget)) && H(o);
|
|
105
|
+
}
|
|
106
|
+
return x && t.addEventListener("mousemove", r, {
|
|
107
|
+
once: !0
|
|
108
|
+
}), t.addEventListener("mouseenter", r), t.addEventListener("mouseleave", i), () => {
|
|
109
|
+
x && t.removeEventListener("mousemove", r), t.removeEventListener("mouseenter", r), t.removeEventListener("mouseleave", i);
|
|
110
|
+
};
|
|
111
|
+
}, [u, V, k, T, H, n, c, R, e, S, O, E, A, C, x, y, D, p, w, _]), v.useMemo(() => {
|
|
112
|
+
if (!c)
|
|
113
|
+
return;
|
|
114
|
+
function t(r) {
|
|
115
|
+
e.pointerType = r.pointerType;
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
onPointerDown: t,
|
|
119
|
+
onPointerEnter: t,
|
|
120
|
+
onMouseMove(r) {
|
|
121
|
+
const {
|
|
122
|
+
nativeEvent: i
|
|
123
|
+
} = r, o = r.currentTarget, a = n.select("domReferenceElement"), l = n.select("open"), s = O(a, o, r.target);
|
|
124
|
+
if (C && !W(e.pointerType))
|
|
125
|
+
return;
|
|
126
|
+
const h = N(y.current);
|
|
127
|
+
if (l && !s || h === 0 || !s && e.restTimeoutPending && r.movementX ** 2 + r.movementY ** 2 < 2)
|
|
128
|
+
return;
|
|
129
|
+
e.restTimeout.clear();
|
|
130
|
+
function f() {
|
|
131
|
+
if (e.restTimeoutPending = !1, E())
|
|
132
|
+
return;
|
|
133
|
+
const m = n.select("open");
|
|
134
|
+
!e.blockMouseMove && (!m || s) && n.setOpen(!0, d(g, i, o));
|
|
135
|
+
}
|
|
136
|
+
e.pointerType === "touch" ? J.flushSync(() => {
|
|
137
|
+
f();
|
|
138
|
+
}) : s && l ? f() : (e.restTimeoutPending = !0, e.restTimeout.start(h, f));
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}, [c, e, E, O, C, n, y]);
|
|
142
|
+
}
|
|
143
|
+
export {
|
|
144
|
+
de as useHoverReferenceInteraction
|
|
145
|
+
};
|