@yselimcan/ui 0.0.5 → 0.0.7
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/index100.js +4 -5
- package/dist/index101.js +66 -7
- package/dist/index102.js +8 -87
- package/dist/index103.js +12 -11
- package/dist/index104.js +3 -62
- package/dist/index105.js +4 -38
- package/dist/index106.js +6 -14
- package/dist/index107.js +29 -32
- package/dist/index108.js +12 -19
- package/dist/index109.js +65 -4
- package/dist/index110.js +53 -3
- package/dist/index111.js +13 -5
- package/dist/index112.js +5 -11
- package/dist/index113.js +13 -19
- package/dist/index114.js +13 -13
- package/dist/index115.js +32 -296
- package/dist/index116.js +19 -5
- package/dist/index117.js +40 -38
- package/dist/index118.js +16 -123
- package/dist/index119.js +12 -21
- package/dist/index120.js +38 -77
- package/dist/index121.js +14 -65
- package/dist/index122.js +8 -45
- package/dist/index123.js +13 -14
- package/dist/index124.js +5 -5
- package/dist/index125.js +87 -29
- package/dist/index126.js +296 -4
- package/dist/index127.js +10 -26
- package/dist/index128.js +122 -14
- package/dist/index129.js +4 -21
- package/dist/index130.js +259 -54
- package/dist/index131.js +78 -16
- package/dist/index132.js +37 -26
- package/dist/index133.js +21 -41
- package/dist/index134.js +12 -43
- package/dist/index135.js +55 -20
- package/dist/index136.js +11 -48
- package/dist/index137.js +11 -51
- package/dist/index138.js +29 -16
- package/dist/index139.js +18 -11
- package/dist/index140.js +65 -21
- package/dist/index141.js +103 -34
- package/dist/index142.js +8 -230
- package/dist/index143.js +8 -283
- package/dist/index144.js +21 -52
- package/dist/index145.js +102 -14
- package/dist/index146.js +7 -79
- package/dist/index147.js +32 -3
- package/dist/index148.js +228 -28
- package/dist/index149.js +74 -23
- package/dist/index150.js +283 -15
- package/dist/index151.js +52 -68
- package/dist/index152.js +46 -4
- package/dist/index153.js +70 -98
- package/dist/index154.js +3 -79
- package/dist/index155.js +13 -262
- package/dist/index156.js +15 -11
- package/dist/index157.js +28 -10
- package/dist/index158.js +7 -40
- package/dist/index159.js +22 -4
- package/dist/index160.js +24 -66
- package/dist/index161.js +160 -9
- package/dist/index162.js +113 -8
- package/dist/index163.js +64 -5
- package/dist/index164.js +74 -132
- package/dist/index165.js +64 -53
- package/dist/index166.js +68 -10
- package/dist/index167.js +14 -118
- package/dist/index168.js +7 -11
- package/dist/index169.js +5 -8
- package/dist/index17.js +4 -4
- package/dist/index170.js +16 -11
- package/dist/index171.js +21 -22
- package/dist/index172.js +58 -11
- package/dist/index173.js +16 -65
- package/dist/index174.js +26 -11
- package/dist/index175.js +42 -12
- package/dist/index176.js +20 -11
- package/dist/index177.js +48 -11
- package/dist/index178.js +47 -83
- package/dist/index179.js +17 -11
- package/dist/index18.js +4 -4
- package/dist/index180.js +11 -11
- package/dist/index181.js +34 -55
- package/dist/index182.js +15 -11
- package/dist/index183.js +79 -11
- package/dist/index184.js +23 -18
- package/dist/index185.js +4 -9
- package/dist/index186.js +10 -7
- package/dist/index187.js +10 -103
- package/dist/index188.js +40 -7
- package/dist/index189.js +4 -32
- package/dist/index19.js +9 -9
- package/dist/index190.js +10 -75
- package/dist/index191.js +11 -14
- package/dist/index192.js +114 -25
- package/dist/index193.js +11 -7
- package/dist/index194.js +85 -20
- package/dist/index195.js +12 -24
- package/dist/index196.js +59 -157
- package/dist/index197.js +4 -114
- package/dist/index198.js +5 -76
- package/dist/index199.js +11 -64
- package/dist/index20.js +2 -2
- package/dist/index201.js +21 -47
- package/dist/index202.js +4 -200
- package/dist/index203.js +26 -47
- package/dist/index204.js +127 -19
- package/dist/index205.js +45 -27
- package/dist/index206.js +17 -11
- package/dist/index207.js +5 -7
- package/dist/index208.js +181 -4
- package/dist/index209.js +74 -8
- package/dist/index21.js +3 -3
- package/dist/index210.js +396 -14
- package/dist/index211.js +199 -21
- package/dist/index212.js +46 -126
- package/dist/index213.js +18 -43
- package/dist/index214.js +47 -17
- package/dist/index215.js +7 -5
- package/dist/index216.js +5 -181
- package/dist/index217.js +15 -74
- package/dist/index218.js +12 -396
- package/dist/index219.js +32 -38
- package/dist/index22.js +5 -5
- package/dist/index220.js +4 -57
- package/dist/index221.js +11 -27
- package/dist/index222.js +9 -7
- package/dist/index223.js +37 -11
- package/dist/index224.js +57 -12
- package/dist/index225.js +27 -11
- package/dist/index226.js +6 -20
- package/dist/index227.js +11 -10
- package/dist/index228.js +11 -7
- package/dist/index229.js +11 -42
- package/dist/index23.js +2 -2
- package/dist/index230.js +22 -4
- package/dist/index231.js +11 -4
- package/dist/index232.js +6 -595
- package/dist/index233.js +42 -11
- package/dist/index234.js +594 -12
- package/dist/index235.js +11 -32
- package/dist/index236.js +4 -209
- package/dist/index237.js +209 -4
- package/dist/index238.js +3 -13
- package/dist/index239.js +13 -47
- package/dist/index24.js +9 -9
- package/dist/index240.js +47 -3
- package/dist/index242.js +4 -4
- package/dist/index243.js +2 -2
- package/dist/index244.js +1 -1
- package/dist/index246.js +3 -3
- package/dist/index247.js +1 -1
- package/dist/index251.js +1 -1
- package/dist/index253.js +1 -1
- package/dist/index256.js +1 -1
- package/dist/index257.js +1 -1
- package/dist/index260.js +1 -1
- package/dist/index261.js +1 -1
- package/dist/index262.js +2 -2
- package/dist/index264.js +2 -2
- package/dist/index27.js +1 -1
- package/dist/index28.js +1 -1
- package/dist/index32.js +1 -1
- package/dist/index33.js +16 -16
- package/dist/index34.js +5 -5
- package/dist/index35.js +13 -13
- package/dist/index36.js +10 -10
- package/dist/index37.js +7 -7
- package/dist/index38.js +9 -9
- package/dist/index39.js +4 -4
- package/dist/index40.js +2 -2
- package/dist/index41.js +3 -3
- package/dist/index42.js +2 -2
- package/dist/index43.js +1 -1
- package/dist/index45.js +5 -5
- package/dist/index46.js +9 -9
- package/dist/index47.js +9 -9
- package/dist/index48.js +18 -18
- package/dist/index49.js +4 -4
- package/dist/index50.js +11 -11
- package/dist/index52.js +25 -25
- package/dist/index53.js +3 -3
- package/dist/index54.js +31 -31
- package/dist/index55.js +13 -13
- package/dist/index56.js +12 -12
- package/dist/index57.js +1 -1
- package/dist/index58.js +3 -3
- package/dist/index59.js +5 -5
- package/dist/index60.js +11 -11
- package/dist/index61.js +4 -4
- package/dist/index62.js +3 -3
- package/dist/index63.js +11 -11
- package/dist/index64.js +4 -4
- package/dist/index65.js +3 -3
- package/dist/index66.js +13 -13
- package/dist/index67.js +1 -1
- package/dist/index69.js +32 -32
- package/dist/index70.js +5 -5
- package/dist/index71.js +17 -17
- package/dist/index72.js +23 -23
- package/dist/index73.js +7 -7
- package/dist/index74.js +1 -1
- package/dist/index75.js +13 -13
- package/dist/index76.js +2 -2
- package/dist/index77.js +4 -4
- package/dist/index78.js +3 -3
- package/dist/index79.js +1 -1
- package/dist/index80.js +1 -1
- package/dist/index81.js +17 -17
- package/dist/index82.js +4 -4
- package/dist/index83.js +4 -4
- package/dist/index86.js +89 -11
- package/dist/index87.js +8 -8
- package/dist/index88.js +12 -96
- package/dist/index89.js +87 -81
- package/dist/index94.js +133 -4
- package/dist/index95.js +24 -63
- package/dist/index96.js +8 -8
- package/dist/index97.js +5 -14
- package/dist/index98.js +12 -3
- package/dist/index99.js +22 -3
- package/dist/styles.css +1 -1
- package/package.json +8 -4
package/dist/index145.js
CHANGED
|
@@ -1,18 +1,106 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import * as o from "react";
|
|
2
|
+
import { EMPTY_OBJECT as s } from "./index106.js";
|
|
3
|
+
import { useRefWithInit as l } from "./index168.js";
|
|
4
|
+
import { FloatingTreeStore as u } from "./index155.js";
|
|
5
|
+
import { ReactStore as p } from "./index211.js";
|
|
6
|
+
import { PopupTriggerMap as d } from "./index212.js";
|
|
7
|
+
import { createSelector as t } from "./index213.js";
|
|
8
|
+
import { popupStoreSelectors as f, createInitialPopupStoreState as c } from "./index214.js";
|
|
9
|
+
const m = {
|
|
10
|
+
...f,
|
|
11
|
+
disabled: t((e) => e.parent.type === "menubar" && e.parent.context.disabled || e.disabled),
|
|
12
|
+
modal: t((e) => (e.parent.type === void 0 || e.parent.type === "context-menu") && (e.modal ?? !0)),
|
|
13
|
+
allowMouseEnter: t((e) => e.parent.type === "menu" ? e.parent.store.select("allowMouseEnter") : e.allowMouseEnter),
|
|
14
|
+
stickIfOpen: t((e) => e.stickIfOpen),
|
|
15
|
+
parent: t((e) => e.parent),
|
|
16
|
+
rootId: t((e) => e.parent.type === "menu" ? e.parent.store.select("rootId") : e.parent.type !== void 0 ? e.parent.context.rootId : e.rootId),
|
|
17
|
+
activeIndex: t((e) => e.activeIndex),
|
|
18
|
+
isActive: t((e, n) => e.activeIndex === n),
|
|
19
|
+
hoverEnabled: t((e) => e.hoverEnabled),
|
|
20
|
+
instantType: t((e) => e.instantType),
|
|
21
|
+
lastOpenChangeReason: t((e) => e.openChangeReason),
|
|
22
|
+
floatingTreeRoot: t((e) => e.parent.type === "menu" ? e.parent.store.select("floatingTreeRoot") : e.floatingTreeRoot),
|
|
23
|
+
floatingNodeId: t((e) => e.floatingNodeId),
|
|
24
|
+
floatingParentNodeId: t((e) => e.floatingParentNodeId),
|
|
25
|
+
itemProps: t((e) => e.itemProps),
|
|
26
|
+
closeDelay: t((e) => e.closeDelay),
|
|
27
|
+
keyboardEventRelay: t((e) => {
|
|
28
|
+
if (e.keyboardEventRelay)
|
|
29
|
+
return e.keyboardEventRelay;
|
|
30
|
+
if (e.parent.type === "menu")
|
|
31
|
+
return e.parent.store.select("keyboardEventRelay");
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
class a extends p {
|
|
35
|
+
constructor(n) {
|
|
36
|
+
super({
|
|
37
|
+
...g(),
|
|
38
|
+
...n
|
|
39
|
+
}, {
|
|
40
|
+
positionerRef: /* @__PURE__ */ o.createRef(),
|
|
41
|
+
popupRef: /* @__PURE__ */ o.createRef(),
|
|
42
|
+
typingRef: {
|
|
43
|
+
current: !1
|
|
44
|
+
},
|
|
45
|
+
itemDomElements: {
|
|
46
|
+
current: []
|
|
47
|
+
},
|
|
48
|
+
itemLabels: {
|
|
49
|
+
current: []
|
|
50
|
+
},
|
|
51
|
+
allowMouseUpTriggerRef: {
|
|
52
|
+
current: !1
|
|
53
|
+
},
|
|
54
|
+
triggerFocusTargetRef: /* @__PURE__ */ o.createRef(),
|
|
55
|
+
beforeContentFocusGuardRef: /* @__PURE__ */ o.createRef(),
|
|
56
|
+
onOpenChangeComplete: void 0,
|
|
57
|
+
triggerElements: new d()
|
|
58
|
+
}, m), this.observe(t((r) => r.allowMouseEnter), (r, i) => {
|
|
59
|
+
this.state.parent.type === "menu" && r !== i && this.state.parent.store.set("allowMouseEnter", r);
|
|
60
|
+
}), this.unsubscribeParentListener = this.observe("parent", (r) => {
|
|
61
|
+
if (this.unsubscribeParentListener?.(), r.type === "menu") {
|
|
62
|
+
this.unsubscribeParentListener = r.store.subscribe(() => {
|
|
63
|
+
this.notifyAll();
|
|
64
|
+
}), this.context.allowMouseUpTriggerRef = r.store.context.allowMouseUpTriggerRef;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
r.type !== void 0 && (this.context.allowMouseUpTriggerRef = r.context.allowMouseUpTriggerRef), this.unsubscribeParentListener = null;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
setOpen(n, r) {
|
|
71
|
+
this.state.floatingRootContext.context.events.emit("setOpen", {
|
|
72
|
+
open: n,
|
|
73
|
+
eventDetails: r
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
static useStore(n, r) {
|
|
77
|
+
return l(() => n ?? new a(r)).current;
|
|
78
|
+
}
|
|
79
|
+
unsubscribeParentListener = null;
|
|
12
80
|
}
|
|
13
|
-
function
|
|
14
|
-
return
|
|
81
|
+
function g() {
|
|
82
|
+
return {
|
|
83
|
+
...c(),
|
|
84
|
+
disabled: !1,
|
|
85
|
+
modal: !0,
|
|
86
|
+
allowMouseEnter: !0,
|
|
87
|
+
stickIfOpen: !0,
|
|
88
|
+
parent: {
|
|
89
|
+
type: void 0
|
|
90
|
+
},
|
|
91
|
+
rootId: void 0,
|
|
92
|
+
activeIndex: null,
|
|
93
|
+
hoverEnabled: !0,
|
|
94
|
+
instantType: void 0,
|
|
95
|
+
openChangeReason: null,
|
|
96
|
+
floatingTreeRoot: new u(),
|
|
97
|
+
floatingNodeId: void 0,
|
|
98
|
+
floatingParentNodeId: null,
|
|
99
|
+
itemProps: s,
|
|
100
|
+
keyboardEventRelay: void 0,
|
|
101
|
+
closeDelay: 0
|
|
102
|
+
};
|
|
15
103
|
}
|
|
16
104
|
export {
|
|
17
|
-
|
|
105
|
+
a as MenuStore
|
|
18
106
|
};
|
package/dist/index146.js
CHANGED
|
@@ -1,82 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* The values can be used directly (to avoid subscribing to the store) in effects or event handlers.
|
|
7
|
-
*
|
|
8
|
-
* Do not modify properties in state directly. Instead, use the provided methods to ensure proper state management and listener notification.
|
|
9
|
-
*/
|
|
10
|
-
// Internal state to handle recursive `setState()` calls
|
|
11
|
-
constructor(t) {
|
|
12
|
-
this.state = t, this.listeners = /* @__PURE__ */ new Set(), this.updateTick = 0;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Registers a listener that will be called whenever the store's state changes.
|
|
16
|
-
*
|
|
17
|
-
* @param fn The listener function to be called on state changes.
|
|
18
|
-
* @returns A function to unsubscribe the listener.
|
|
19
|
-
*/
|
|
20
|
-
subscribe = (t) => (this.listeners.add(t), () => {
|
|
21
|
-
this.listeners.delete(t);
|
|
22
|
-
});
|
|
23
|
-
/**
|
|
24
|
-
* Returns the current state of the store.
|
|
25
|
-
*/
|
|
26
|
-
getSnapshot = () => this.state;
|
|
27
|
-
/**
|
|
28
|
-
* Updates the entire store's state and notifies all registered listeners.
|
|
29
|
-
*
|
|
30
|
-
* @param newState The new state to set for the store.
|
|
31
|
-
*/
|
|
32
|
-
setState(t) {
|
|
33
|
-
if (this.state === t)
|
|
34
|
-
return;
|
|
35
|
-
this.state = t, this.updateTick += 1;
|
|
36
|
-
const s = this.updateTick;
|
|
37
|
-
for (const i of this.listeners) {
|
|
38
|
-
if (s !== this.updateTick)
|
|
39
|
-
return;
|
|
40
|
-
i(t);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Merges the provided changes into the current state and notifies listeners if there are changes.
|
|
45
|
-
*
|
|
46
|
-
* @param changes An object containing the changes to apply to the current state.
|
|
47
|
-
*/
|
|
48
|
-
update(t) {
|
|
49
|
-
for (const s in t)
|
|
50
|
-
if (!Object.is(this.state[s], t[s])) {
|
|
51
|
-
e.prototype.setState.call(this, {
|
|
52
|
-
...this.state,
|
|
53
|
-
...t
|
|
54
|
-
});
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
|
|
60
|
-
*
|
|
61
|
-
* @param key The key in the store's state to update.
|
|
62
|
-
* @param value The new value to set for the specified key.
|
|
63
|
-
*/
|
|
64
|
-
set(t, s) {
|
|
65
|
-
Object.is(this.state[t], s) || e.prototype.setState.call(this, {
|
|
66
|
-
...this.state,
|
|
67
|
-
[t]: s
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Gives the state a new reference and updates all registered listeners.
|
|
72
|
-
*/
|
|
73
|
-
notifyAll() {
|
|
74
|
-
const t = {
|
|
75
|
-
...this.state
|
|
76
|
-
};
|
|
77
|
-
e.prototype.setState.call(this, t);
|
|
78
|
-
}
|
|
1
|
+
import * as e from "react";
|
|
2
|
+
const t = /* @__PURE__ */ e.createContext(void 0);
|
|
3
|
+
process.env.NODE_ENV !== "production" && (t.displayName = "MenuSubmenuRootContext");
|
|
4
|
+
function n() {
|
|
5
|
+
return e.useContext(t);
|
|
79
6
|
}
|
|
80
7
|
export {
|
|
81
|
-
|
|
8
|
+
t as MenuSubmenuRootContext,
|
|
9
|
+
n as useMenuSubmenuRootContext
|
|
82
10
|
};
|
package/dist/index147.js
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { useId as f } from "./index139.js";
|
|
2
|
+
import { useRefWithInit as g } from "./index168.js";
|
|
3
|
+
import { useIsoLayoutEffect as E } from "./index97.js";
|
|
4
|
+
import { isElement as d } from "./index94.js";
|
|
5
|
+
import { useFloatingParentNodeId as S } from "./index135.js";
|
|
6
|
+
import { FloatingRootStore as x } from "./index242.js";
|
|
7
|
+
function v(p) {
|
|
8
|
+
const {
|
|
9
|
+
popupStore: o,
|
|
10
|
+
noEmit: i = !1,
|
|
11
|
+
treatPopupAsFloatingElement: a = !1,
|
|
12
|
+
onOpenChange: m
|
|
13
|
+
} = p, n = f(), c = S() != null, r = o.useState("open"), t = o.useState("activeTriggerElement"), s = o.useState(a ? "popupElement" : "positionerElement"), u = o.context.triggerElements, e = g(() => new x({
|
|
14
|
+
open: r,
|
|
15
|
+
referenceElement: t,
|
|
16
|
+
floatingElement: s,
|
|
17
|
+
triggerElements: u,
|
|
18
|
+
onOpenChange: m,
|
|
19
|
+
floatingId: n,
|
|
20
|
+
nested: c,
|
|
21
|
+
noEmit: i
|
|
22
|
+
})).current;
|
|
23
|
+
return E(() => {
|
|
24
|
+
const l = {
|
|
25
|
+
open: r,
|
|
26
|
+
floatingId: n,
|
|
27
|
+
referenceElement: t,
|
|
28
|
+
floatingElement: s
|
|
29
|
+
};
|
|
30
|
+
d(t) && (l.domReferenceElement = t), e.update(l);
|
|
31
|
+
}, [r, n, t, s, e]), e.context.onOpenChange = m, e.context.nested = c, e.context.noEmit = i, e;
|
|
3
32
|
}
|
|
4
33
|
export {
|
|
5
|
-
|
|
34
|
+
v as useSyncedFloatingRootContext
|
|
6
35
|
};
|
package/dist/index148.js
CHANGED
|
@@ -1,33 +1,233 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
clear = () => {
|
|
22
|
-
this.currentId !== t && (clearTimeout(this.currentId), this.currentId = t);
|
|
1
|
+
import * as p from "react";
|
|
2
|
+
import { isElement as P, isLastTraversableNode as U, getParentNode as Ce, isHTMLElement as Oe, getComputedStyle as Se, getOverflowAncestors as j, isWebKit as De } from "./index94.js";
|
|
3
|
+
import { useTimeout as ce, Timeout as ke } from "./index138.js";
|
|
4
|
+
import { useStableCallback as s } from "./index95.js";
|
|
5
|
+
import { useFloatingTree as Me } from "./index135.js";
|
|
6
|
+
import { createChangeEventDetails as S } from "./index115.js";
|
|
7
|
+
import { createAttribute as Ke } from "./index238.js";
|
|
8
|
+
import { isReactEvent as Ie } from "./index225.js";
|
|
9
|
+
import { getTarget as w, getDocument as ie, contains as X, isRootElement as xe, isEventTargetWithin as f } from "./index166.js";
|
|
10
|
+
import { getNodeChildren as G } from "./index241.js";
|
|
11
|
+
import { triggerPress as le, escapeKey as Xe, outsidePress as Ye, none as We } from "./index116.js";
|
|
12
|
+
const _e = {
|
|
13
|
+
intentional: "onClick",
|
|
14
|
+
sloppy: "onPointerDown"
|
|
15
|
+
};
|
|
16
|
+
function He(d) {
|
|
17
|
+
return {
|
|
18
|
+
escapeKey: typeof d == "boolean" ? d : d?.escapeKey ?? !1,
|
|
19
|
+
outsidePress: typeof d == "boolean" ? d : d?.outsidePress ?? !0
|
|
23
20
|
};
|
|
24
|
-
disposeEffect = () => this.clear;
|
|
25
21
|
}
|
|
26
|
-
function
|
|
27
|
-
const r =
|
|
28
|
-
|
|
22
|
+
function Je(d, ue = {}) {
|
|
23
|
+
const r = "rootStore" in d ? d.rootStore : d, Y = r.useState("open"), D = r.useState("floatingElement"), C = r.useState("referenceElement"), W = r.useState("domReferenceElement"), {
|
|
24
|
+
onOpenChange: ae,
|
|
25
|
+
dataRef: m
|
|
26
|
+
} = r.context, {
|
|
27
|
+
enabled: E = !0,
|
|
28
|
+
escapeKey: k = !0,
|
|
29
|
+
outsidePress: M = !0,
|
|
30
|
+
outsidePressEvent: _ = "sloppy",
|
|
31
|
+
referencePress: J = !1,
|
|
32
|
+
referencePressEvent: H = "sloppy",
|
|
33
|
+
ancestorScroll: Q = !1,
|
|
34
|
+
bubbles: fe,
|
|
35
|
+
externalTree: de
|
|
36
|
+
} = ue, T = Me(de), pe = s(typeof M == "function" ? M : () => !1), v = typeof M == "function" ? pe : M, A = p.useRef(!1), {
|
|
37
|
+
escapeKey: K,
|
|
38
|
+
outsidePress: Z
|
|
39
|
+
} = He(fe), u = p.useRef(null), I = ce(), z = ce(), b = s(() => {
|
|
40
|
+
z.clear(), m.current.insideReactTree = !1;
|
|
41
|
+
}), B = p.useRef(!1), ee = p.useRef(""), N = s((e) => {
|
|
42
|
+
ee.current = e.pointerType;
|
|
43
|
+
}), L = s(() => {
|
|
44
|
+
const e = ee.current, n = e === "pen" || !e ? "mouse" : e, t = typeof _ == "function" ? _() : _;
|
|
45
|
+
return typeof t == "string" ? t : t[n];
|
|
46
|
+
}), h = s((e) => {
|
|
47
|
+
if (!Y || !E || !k || e.key !== "Escape" || B.current)
|
|
48
|
+
return;
|
|
49
|
+
const n = m.current.floatingContext?.nodeId, t = T ? G(T.nodesRef.current, n) : [];
|
|
50
|
+
if (!K && t.length > 0) {
|
|
51
|
+
let i = !0;
|
|
52
|
+
if (t.forEach((c) => {
|
|
53
|
+
c.context?.open && !c.context.dataRef.current.__escapeKeyBubbles && (i = !1);
|
|
54
|
+
}), !i)
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const a = Ie(e) ? e.nativeEvent : e, o = S(Xe, a);
|
|
58
|
+
r.setOpen(!1, o), !K && !o.isPropagationAllowed && e.stopPropagation();
|
|
59
|
+
}), me = s((e) => {
|
|
60
|
+
const n = L();
|
|
61
|
+
return n === "intentional" && e.type !== "click" || n === "sloppy" && e.type === "click";
|
|
62
|
+
}), g = s(() => {
|
|
63
|
+
m.current.insideReactTree = !0, z.start(0, b);
|
|
64
|
+
}), O = s((e, n = !1) => {
|
|
65
|
+
if (me(e)) {
|
|
66
|
+
b();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (m.current.insideReactTree) {
|
|
70
|
+
b();
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (L() === "intentional" && n || typeof v == "function" && !v(e))
|
|
74
|
+
return;
|
|
75
|
+
const t = w(e), a = `[${Ke("inert")}]`, o = ie(r.select("floatingElement")).querySelectorAll(a), i = r.context.triggerElements;
|
|
76
|
+
if (t && (i.hasElement(t) || i.hasMatchingElement((l) => X(l, t))))
|
|
77
|
+
return;
|
|
78
|
+
let c = P(t) ? t : null;
|
|
79
|
+
for (; c && !U(c); ) {
|
|
80
|
+
const l = Ce(c);
|
|
81
|
+
if (U(l) || !P(l))
|
|
82
|
+
break;
|
|
83
|
+
c = l;
|
|
84
|
+
}
|
|
85
|
+
if (o.length && P(t) && !xe(t) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
|
|
86
|
+
!X(t, r.select("floatingElement")) && // If the target root element contains none of the markers, then the
|
|
87
|
+
// element was injected after the floating element rendered.
|
|
88
|
+
Array.from(o).every((l) => !X(c, l)))
|
|
89
|
+
return;
|
|
90
|
+
if (Oe(t) && !("touches" in e)) {
|
|
91
|
+
const l = U(t), R = Se(t), se = /auto|scroll/, Te = l || se.test(R.overflowX), ve = l || se.test(R.overflowY), be = Te && t.clientWidth > 0 && t.scrollWidth > t.clientWidth, Le = ve && t.clientHeight > 0 && t.scrollHeight > t.clientHeight, Re = R.direction === "rtl", Pe = Le && (Re ? e.offsetX <= t.offsetWidth - t.clientWidth : e.offsetX > t.clientWidth), we = be && e.offsetY > t.clientHeight;
|
|
92
|
+
if (Pe || we)
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const oe = m.current.floatingContext?.nodeId, ye = T && G(T.nodesRef.current, oe).some((l) => f(e, l.context?.elements.floating));
|
|
96
|
+
if (f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")) || ye)
|
|
97
|
+
return;
|
|
98
|
+
const re = T ? G(T.nodesRef.current, oe) : [];
|
|
99
|
+
if (re.length > 0) {
|
|
100
|
+
let l = !0;
|
|
101
|
+
if (re.forEach((R) => {
|
|
102
|
+
R.context?.open && !R.context.dataRef.current.__outsidePressBubbles && (l = !1);
|
|
103
|
+
}), !l)
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
r.setOpen(!1, S(Ye, e)), b();
|
|
107
|
+
}), te = s((e) => {
|
|
108
|
+
L() !== "sloppy" || e.pointerType === "touch" || !r.select("open") || !E || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")) || O(e);
|
|
109
|
+
}), Ee = s((e) => {
|
|
110
|
+
if (L() !== "sloppy" || !r.select("open") || !E || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")))
|
|
111
|
+
return;
|
|
112
|
+
const n = e.touches[0];
|
|
113
|
+
n && (u.current = {
|
|
114
|
+
startTime: Date.now(),
|
|
115
|
+
startX: n.clientX,
|
|
116
|
+
startY: n.clientY,
|
|
117
|
+
dismissOnTouchEnd: !1,
|
|
118
|
+
dismissOnMouseDown: !0
|
|
119
|
+
}, I.start(1e3, () => {
|
|
120
|
+
u.current && (u.current.dismissOnTouchEnd = !1, u.current.dismissOnMouseDown = !1);
|
|
121
|
+
}));
|
|
122
|
+
}), V = s((e) => {
|
|
123
|
+
const n = w(e);
|
|
124
|
+
function t() {
|
|
125
|
+
Ee(e), n?.removeEventListener(e.type, t);
|
|
126
|
+
}
|
|
127
|
+
n?.addEventListener(e.type, t);
|
|
128
|
+
}), y = s((e) => {
|
|
129
|
+
const n = A.current;
|
|
130
|
+
if (A.current = !1, I.clear(), e.type === "mousedown" && u.current && !u.current.dismissOnMouseDown)
|
|
131
|
+
return;
|
|
132
|
+
const t = w(e);
|
|
133
|
+
function a() {
|
|
134
|
+
e.type === "pointerdown" ? te(e) : O(e, n), t?.removeEventListener(e.type, a);
|
|
135
|
+
}
|
|
136
|
+
t?.addEventListener(e.type, a);
|
|
137
|
+
}), he = s((e) => {
|
|
138
|
+
if (L() !== "sloppy" || !u.current || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")))
|
|
139
|
+
return;
|
|
140
|
+
const n = e.touches[0];
|
|
141
|
+
if (!n)
|
|
142
|
+
return;
|
|
143
|
+
const t = Math.abs(n.clientX - u.current.startX), a = Math.abs(n.clientY - u.current.startY), o = Math.sqrt(t * t + a * a);
|
|
144
|
+
o > 5 && (u.current.dismissOnTouchEnd = !0), o > 10 && (O(e), I.clear(), u.current = null);
|
|
145
|
+
}), $ = s((e) => {
|
|
146
|
+
const n = w(e);
|
|
147
|
+
function t() {
|
|
148
|
+
he(e), n?.removeEventListener(e.type, t);
|
|
149
|
+
}
|
|
150
|
+
n?.addEventListener(e.type, t);
|
|
151
|
+
}), ge = s((e) => {
|
|
152
|
+
L() !== "sloppy" || !u.current || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")) || (u.current.dismissOnTouchEnd && O(e), I.clear(), u.current = null);
|
|
153
|
+
}), q = s((e) => {
|
|
154
|
+
const n = w(e);
|
|
155
|
+
function t() {
|
|
156
|
+
ge(e), n?.removeEventListener(e.type, t);
|
|
157
|
+
}
|
|
158
|
+
n?.addEventListener(e.type, t);
|
|
159
|
+
});
|
|
160
|
+
p.useEffect(() => {
|
|
161
|
+
if (!Y || !E)
|
|
162
|
+
return;
|
|
163
|
+
m.current.__escapeKeyBubbles = K, m.current.__outsidePressBubbles = Z;
|
|
164
|
+
const e = new ke();
|
|
165
|
+
function n(c) {
|
|
166
|
+
r.setOpen(!1, S(We, c));
|
|
167
|
+
}
|
|
168
|
+
function t() {
|
|
169
|
+
e.clear(), B.current = !0;
|
|
170
|
+
}
|
|
171
|
+
function a() {
|
|
172
|
+
e.start(
|
|
173
|
+
// 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
|
|
174
|
+
// Only apply to WebKit for the test to remain 0ms.
|
|
175
|
+
De() ? 5 : 0,
|
|
176
|
+
() => {
|
|
177
|
+
B.current = !1;
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
const o = ie(D);
|
|
182
|
+
o.addEventListener("pointerdown", N, !0), k && (o.addEventListener("keydown", h), o.addEventListener("compositionstart", t), o.addEventListener("compositionend", a)), v && (o.addEventListener("click", y, !0), o.addEventListener("pointerdown", y, !0), o.addEventListener("touchstart", V, !0), o.addEventListener("touchmove", $, !0), o.addEventListener("touchend", q, !0), o.addEventListener("mousedown", y, !0));
|
|
183
|
+
let i = [];
|
|
184
|
+
return Q && (P(W) && (i = j(W)), P(D) && (i = i.concat(j(D))), !P(C) && C && C.contextElement && (i = i.concat(j(C.contextElement)))), i = i.filter((c) => c !== o.defaultView?.visualViewport), i.forEach((c) => {
|
|
185
|
+
c.addEventListener("scroll", n, {
|
|
186
|
+
passive: !0
|
|
187
|
+
});
|
|
188
|
+
}), () => {
|
|
189
|
+
o.removeEventListener("pointerdown", N, !0), k && (o.removeEventListener("keydown", h), o.removeEventListener("compositionstart", t), o.removeEventListener("compositionend", a)), v && (o.removeEventListener("click", y, !0), o.removeEventListener("pointerdown", y, !0), o.removeEventListener("touchstart", V, !0), o.removeEventListener("touchmove", $, !0), o.removeEventListener("touchend", q, !0), o.removeEventListener("mousedown", y, !0)), i.forEach((c) => {
|
|
190
|
+
c.removeEventListener("scroll", n);
|
|
191
|
+
}), e.clear();
|
|
192
|
+
};
|
|
193
|
+
}, [m, D, C, W, k, v, Y, ae, Q, E, K, Z, h, O, y, te, V, $, q, N, r]), p.useEffect(b, [v, b]);
|
|
194
|
+
const F = p.useMemo(() => ({
|
|
195
|
+
onKeyDown: h,
|
|
196
|
+
...J && {
|
|
197
|
+
[_e[H]]: (e) => {
|
|
198
|
+
r.setOpen(!1, S(le, e.nativeEvent));
|
|
199
|
+
},
|
|
200
|
+
...H !== "intentional" && {
|
|
201
|
+
onClick(e) {
|
|
202
|
+
r.setOpen(!1, S(le, e.nativeEvent));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}), [h, r, J, H]), x = s((e) => {
|
|
207
|
+
const n = w(e.nativeEvent);
|
|
208
|
+
!X(r.select("floatingElement"), n) || e.button !== 0 || (A.current = !0);
|
|
209
|
+
}), ne = p.useMemo(() => ({
|
|
210
|
+
onKeyDown: h,
|
|
211
|
+
// `onMouseDown` may be blocked if `event.preventDefault()` is called in
|
|
212
|
+
// `onPointerDown`, such as with <NumberField.ScrubArea>.
|
|
213
|
+
// See https://github.com/mui/base-ui/pull/3379
|
|
214
|
+
onPointerDown: x,
|
|
215
|
+
onMouseDown: x,
|
|
216
|
+
onMouseUp: x,
|
|
217
|
+
onClickCapture: g,
|
|
218
|
+
onMouseDownCapture: g,
|
|
219
|
+
onPointerDownCapture: g,
|
|
220
|
+
onMouseUpCapture: g,
|
|
221
|
+
onTouchEndCapture: g,
|
|
222
|
+
onTouchMoveCapture: g
|
|
223
|
+
}), [h, x, g]);
|
|
224
|
+
return p.useMemo(() => E ? {
|
|
225
|
+
reference: F,
|
|
226
|
+
floating: ne,
|
|
227
|
+
trigger: F
|
|
228
|
+
} : {}, [E, F, ne]);
|
|
29
229
|
}
|
|
30
230
|
export {
|
|
31
|
-
|
|
32
|
-
|
|
231
|
+
He as normalizeProp,
|
|
232
|
+
Je as useDismiss
|
|
33
233
|
};
|
package/dist/index149.js
CHANGED
|
@@ -1,26 +1,77 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
import * as r from "react";
|
|
2
|
+
import { useId as P } from "./index139.js";
|
|
3
|
+
import { useFloatingParentNodeId as S } from "./index135.js";
|
|
4
|
+
import { EMPTY_OBJECT as F } from "./index106.js";
|
|
5
|
+
import { getFloatingFocusElement as y } from "./index166.js";
|
|
6
|
+
const T = /* @__PURE__ */ new Map([["select", "listbox"], ["combobox", "listbox"], ["label", !1]]);
|
|
7
|
+
function k(c, I = {}) {
|
|
8
|
+
const a = "rootStore" in c ? c.rootStore : c, l = a.useState("open"), u = a.useState("floatingId"), x = a.useState("domReferenceElement"), d = a.useState("floatingElement"), {
|
|
9
|
+
enabled: m = !0,
|
|
10
|
+
role: o = "dialog"
|
|
11
|
+
} = I, M = P(), s = x?.id || M, t = r.useMemo(() => y(d)?.id || u, [d, u]), e = T.get(o) ?? o, p = S() != null, i = r.useMemo(() => e === "tooltip" || o === "label" ? F : {
|
|
12
|
+
"aria-haspopup": e === "alertdialog" ? "dialog" : e,
|
|
13
|
+
"aria-expanded": "false",
|
|
14
|
+
...e === "listbox" && {
|
|
15
|
+
role: "combobox"
|
|
16
|
+
},
|
|
17
|
+
...e === "menu" && p && {
|
|
18
|
+
role: "menuitem"
|
|
19
|
+
},
|
|
20
|
+
...o === "select" && {
|
|
21
|
+
"aria-autocomplete": "none"
|
|
22
|
+
},
|
|
23
|
+
...o === "combobox" && {
|
|
24
|
+
"aria-autocomplete": "list"
|
|
25
|
+
}
|
|
26
|
+
}, [e, p, o]), f = r.useMemo(() => e === "tooltip" || o === "label" ? {
|
|
27
|
+
[`aria-${o === "label" ? "labelledby" : "describedby"}`]: l ? t : void 0
|
|
28
|
+
} : {
|
|
29
|
+
...i,
|
|
30
|
+
"aria-expanded": l ? "true" : "false",
|
|
31
|
+
"aria-controls": l ? t : void 0,
|
|
32
|
+
...e === "menu" && {
|
|
33
|
+
id: s
|
|
34
|
+
}
|
|
35
|
+
}, [e, t, l, s, o, i]), b = r.useMemo(() => {
|
|
36
|
+
const n = {
|
|
37
|
+
id: t,
|
|
38
|
+
...e && {
|
|
39
|
+
role: e
|
|
40
|
+
}
|
|
20
41
|
};
|
|
21
|
-
|
|
22
|
-
|
|
42
|
+
return e === "tooltip" || o === "label" ? n : {
|
|
43
|
+
...n,
|
|
44
|
+
...e === "menu" && {
|
|
45
|
+
"aria-labelledby": s
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}, [e, t, s, o]), g = r.useCallback(({
|
|
49
|
+
active: n,
|
|
50
|
+
selected: R
|
|
51
|
+
}) => {
|
|
52
|
+
const E = {
|
|
53
|
+
role: "option",
|
|
54
|
+
...n && {
|
|
55
|
+
id: `${t}-fui-option`
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
switch (o) {
|
|
59
|
+
case "select":
|
|
60
|
+
case "combobox":
|
|
61
|
+
return {
|
|
62
|
+
...E,
|
|
63
|
+
"aria-selected": R
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {};
|
|
67
|
+
}, [t, o]);
|
|
68
|
+
return r.useMemo(() => m ? {
|
|
69
|
+
reference: f,
|
|
70
|
+
floating: b,
|
|
71
|
+
item: g,
|
|
72
|
+
trigger: i
|
|
73
|
+
} : {}, [m, f, b, i, g]);
|
|
74
|
+
}
|
|
23
75
|
export {
|
|
24
|
-
|
|
25
|
-
r as fieldValidityMapping
|
|
76
|
+
k as useRole
|
|
26
77
|
};
|