@yselimcan/ui 0.0.4 → 0.0.5
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/index101.js +7 -133
- package/dist/index102.js +86 -26
- package/dist/index103.js +12 -8
- package/dist/index104.js +63 -5
- package/dist/index105.js +38 -13
- package/dist/index106.js +14 -23
- package/dist/index107.js +32 -7
- package/dist/index108.js +19 -88
- package/dist/index109.js +4 -11
- package/dist/index110.js +4 -63
- package/dist/index111.js +4 -37
- package/dist/index112.js +12 -14
- package/dist/index113.js +18 -32
- package/dist/index114.js +13 -19
- package/dist/index115.js +295 -4
- package/dist/index116.js +5 -4
- package/dist/index117.js +39 -5
- package/dist/index118.js +124 -10
- package/dist/index119.js +21 -19
- package/dist/index120.js +77 -13
- package/dist/index121.js +59 -291
- package/dist/index122.js +45 -4
- package/dist/index123.js +14 -39
- package/dist/index124.js +4 -124
- package/dist/index125.js +29 -20
- package/dist/index126.js +5 -77
- package/dist/index127.js +25 -62
- package/dist/index128.js +16 -44
- package/dist/index129.js +22 -14
- package/dist/index130.js +58 -5
- package/dist/index131.js +16 -28
- package/dist/index132.js +25 -15
- package/dist/index133.js +40 -21
- package/dist/index134.js +43 -59
- package/dist/index135.js +19 -15
- package/dist/index136.js +47 -26
- package/dist/index137.js +49 -38
- package/dist/index138.js +18 -43
- package/dist/index139.js +11 -21
- package/dist/index140.js +22 -48
- package/dist/index141.js +34 -50
- package/dist/index142.js +229 -16
- package/dist/index143.js +283 -11
- package/dist/index144.js +52 -21
- package/dist/index145.js +15 -35
- package/dist/index146.js +74 -225
- package/dist/index147.js +3 -283
- package/dist/index148.js +30 -53
- package/dist/index149.js +24 -16
- package/dist/index150.js +15 -79
- package/dist/index151.js +69 -3
- package/dist/index152.js +4 -31
- package/dist/index153.js +103 -22
- package/dist/index154.js +79 -15
- package/dist/index155.js +259 -65
- package/dist/index156.js +12 -4
- package/dist/index157.js +11 -105
- package/dist/index158.js +37 -76
- package/dist/index159.js +4 -263
- package/dist/index160.js +66 -11
- package/dist/index161.js +9 -10
- package/dist/index162.js +8 -40
- package/dist/index163.js +5 -4
- package/dist/index164.js +129 -62
- package/dist/index165.js +54 -10
- package/dist/index166.js +11 -8
- package/dist/index167.js +118 -6
- package/dist/index168.js +11 -53
- package/dist/index169.js +8 -11
- package/dist/index17.js +4 -4
- package/dist/index170.js +12 -117
- package/dist/index171.js +22 -11
- package/dist/index173.js +2 -2
- package/dist/index175.js +2 -2
- package/dist/index178.js +6 -6
- package/dist/index18.js +5 -5
- package/dist/index181.js +2 -2
- package/dist/index184.js +1 -1
- package/dist/index187.js +5 -5
- package/dist/index189.js +3 -3
- package/dist/index19.js +10 -10
- package/dist/index190.js +1 -1
- package/dist/index191.js +1 -1
- package/dist/index192.js +2 -2
- package/dist/index193.js +1 -1
- package/dist/index194.js +1 -1
- package/dist/index195.js +3 -3
- package/dist/index196.js +6 -6
- package/dist/index197.js +3 -3
- package/dist/index198.js +6 -6
- package/dist/index199.js +1 -1
- package/dist/index20.js +3 -3
- package/dist/index200.js +5 -47
- package/dist/index201.js +41 -193
- package/dist/index202.js +182 -30
- package/dist/index203.js +48 -20
- package/dist/index204.js +20 -6
- package/dist/index205.js +2 -2
- package/dist/index207.js +6 -9
- package/dist/index208.js +4 -17
- package/dist/index209.js +9 -6
- package/dist/index21.js +4 -4
- package/dist/index210.js +17 -4
- package/dist/index217.js +3 -3
- package/dist/index218.js +1 -1
- package/dist/index22.js +5 -5
- package/dist/index220.js +2 -2
- package/dist/index221.js +1 -1
- package/dist/index229.js +1 -1
- package/dist/index23.js +3 -3
- package/dist/index230.js +4 -597
- package/dist/index231.js +4 -11
- package/dist/index232.js +593 -29
- package/dist/index233.js +12 -4
- package/dist/index234.js +15 -5
- package/dist/index235.js +30 -12
- package/dist/index239.js +2 -2
- package/dist/index24.js +9 -9
- package/dist/index242.js +3 -3
- package/dist/index243.js +1 -1
- package/dist/index247.js +14 -321
- package/dist/index248.js +322 -3
- package/dist/index249.js +3 -3
- package/dist/index250.js +3 -15
- package/dist/index251.js +1 -1
- package/dist/index26.js +1 -1
- package/dist/index27.js +1 -1
- package/dist/index28.js +2 -2
- package/dist/index32.js +1 -1
- package/dist/index33.js +11 -11
- package/dist/index34.js +2 -2
- package/dist/index35.js +10 -10
- package/dist/index36.js +8 -8
- package/dist/index37.js +4 -4
- package/dist/index38.js +6 -6
- package/dist/index39.js +4 -4
- package/dist/index40.js +1 -1
- package/dist/index41.js +3 -3
- package/dist/index43.js +1 -1
- package/dist/index44.js +1 -1
- package/dist/index45.js +3 -3
- package/dist/index46.js +6 -6
- package/dist/index47.js +7 -7
- package/dist/index48.js +16 -16
- package/dist/index49.js +2 -2
- package/dist/index50.js +10 -10
- package/dist/index52.js +14 -14
- package/dist/index53.js +1 -1
- package/dist/index54.js +17 -17
- package/dist/index55.js +9 -9
- package/dist/index56.js +10 -10
- package/dist/index57.js +1 -1
- package/dist/index58.js +3 -3
- package/dist/index59.js +3 -3
- package/dist/index60.js +7 -7
- package/dist/index61.js +3 -3
- package/dist/index62.js +3 -3
- package/dist/index63.js +6 -6
- package/dist/index64.js +3 -3
- package/dist/index66.js +7 -7
- package/dist/index67.js +1 -1
- package/dist/index69.js +30 -30
- package/dist/index70.js +5 -5
- package/dist/index71.js +18 -18
- package/dist/index72.js +24 -24
- package/dist/index73.js +8 -8
- package/dist/index74.js +2 -2
- package/dist/index75.js +14 -14
- package/dist/index76.js +3 -3
- package/dist/index77.js +5 -5
- package/dist/index78.js +4 -4
- package/dist/index79.js +1 -1
- package/dist/index80.js +1 -1
- package/dist/index81.js +17 -17
- package/dist/index82.js +5 -5
- package/dist/index83.js +5 -5
- package/dist/index86.js +11 -54
- package/dist/index87.js +54 -11
- package/dist/index88.js +87 -81
- package/dist/index89.js +81 -87
- package/dist/index95.js +1 -1
- package/dist/index96.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index192.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useRenderElement as c } from "./
|
|
3
|
-
import { useCompositeItem as u } from "./
|
|
2
|
+
import { useRenderElement as c } from "./index87.js";
|
|
3
|
+
import { useCompositeItem as u } from "./index235.js";
|
|
4
4
|
import { EMPTY_OBJECT as d, EMPTY_ARRAY as t } from "./index100.js";
|
|
5
5
|
function M(e) {
|
|
6
6
|
const {
|
package/dist/index193.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isHTMLElement as r, isLastTraversableNode as e, getParentNode as i } from "./
|
|
1
|
+
import { isHTMLElement as r, isLastTraversableNode as e, getParentNode as i } from "./index164.js";
|
|
2
2
|
function n(t) {
|
|
3
3
|
if (r(t) && t.hasAttribute("data-rootownerid"))
|
|
4
4
|
return t.getAttribute("data-rootownerid") ?? void 0;
|
package/dist/index194.js
CHANGED
package/dist/index195.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import * as r from "react";
|
|
3
|
-
import { useIsoLayoutEffect as a } from "./
|
|
4
|
-
import { isSafari as u } from "./
|
|
5
|
-
import { visuallyHidden as i } from "./
|
|
3
|
+
import { useIsoLayoutEffect as a } from "./index126.js";
|
|
4
|
+
import { isSafari as u } from "./index158.js";
|
|
5
|
+
import { visuallyHidden as i } from "./index123.js";
|
|
6
6
|
import { jsx as f } from "react/jsx-runtime";
|
|
7
7
|
const n = /* @__PURE__ */ r.forwardRef(function(e, t) {
|
|
8
8
|
const [o, s] = r.useState();
|
package/dist/index196.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as H from "react";
|
|
2
2
|
import * as te from "react-dom";
|
|
3
|
-
import { isElement as re } from "./
|
|
4
|
-
import { useValueAsRef as N } from "./
|
|
5
|
-
import { useStableCallback as Y } from "./
|
|
6
|
-
import { createChangeEventDetails as C } from "./
|
|
3
|
+
import { isElement as re } from "./index164.js";
|
|
4
|
+
import { useValueAsRef as N } from "./index128.js";
|
|
5
|
+
import { useStableCallback as Y } from "./index127.js";
|
|
6
|
+
import { createChangeEventDetails as C } from "./index107.js";
|
|
7
7
|
import { getDelay as V } from "./index244.js";
|
|
8
8
|
import { useFloatingTree as ne } from "./index181.js";
|
|
9
9
|
import { useHoverInteractionSharedState as oe, safePolygonIdentifier as ce } from "./index243.js";
|
|
10
|
-
import { triggerHover as L } from "./
|
|
11
|
-
import { getDocument as z, contains as O } from "./
|
|
10
|
+
import { triggerHover as L } from "./index108.js";
|
|
11
|
+
import { getDocument as z, contains as O } from "./index151.js";
|
|
12
12
|
import { isMouseLikePointerType as B } from "./index221.js";
|
|
13
13
|
function W(l) {
|
|
14
14
|
return typeof l == "function" ? l() : l;
|
package/dist/index197.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isElement as U } from "./
|
|
2
|
-
import { Timeout as Z } from "./
|
|
3
|
-
import { getTarget as $, contains as W } from "./
|
|
1
|
+
import { isElement as U } from "./index164.js";
|
|
2
|
+
import { Timeout as Z } from "./index148.js";
|
|
3
|
+
import { getTarget as $, contains as W } from "./index151.js";
|
|
4
4
|
import { getNodeChildren as y } from "./index241.js";
|
|
5
5
|
function G(u, t) {
|
|
6
6
|
const [_, R] = u;
|
package/dist/index198.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i from "react";
|
|
2
|
-
import { getWindow as h, isElement as b, isHTMLElement as M } from "./
|
|
3
|
-
import { isMac as F, isSafari as D } from "./
|
|
4
|
-
import { useTimeout as k } from "./
|
|
5
|
-
import { createChangeEventDetails as R } from "./
|
|
2
|
+
import { getWindow as h, isElement as b, isHTMLElement as M } from "./index164.js";
|
|
3
|
+
import { isMac as F, isSafari as D } from "./index158.js";
|
|
4
|
+
import { useTimeout as k } from "./index148.js";
|
|
5
|
+
import { createChangeEventDetails as R } from "./index107.js";
|
|
6
6
|
import { createAttribute as O } from "./index237.js";
|
|
7
|
-
import { activeElement as T, contains as w, getTarget as S, isTypeableElement as A, matchesFocusVisible as C, getDocument as x } from "./
|
|
8
|
-
import { triggerFocus as y, triggerPress as B, escapeKey as K } from "./
|
|
7
|
+
import { activeElement as T, contains as w, getTarget as S, isTypeableElement as A, matchesFocusVisible as C, getDocument as x } from "./index151.js";
|
|
8
|
+
import { triggerFocus as y, triggerPress as B, escapeKey as K } from "./index108.js";
|
|
9
9
|
const g = F && D;
|
|
10
10
|
function z(a, L = {}) {
|
|
11
11
|
const r = "rootStore" in a ? a.rootStore : a, {
|
package/dist/index199.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { tabbable as r } from "./index236.js";
|
|
2
|
-
import { contains as d, getDocument as b, activeElement as f } from "./
|
|
2
|
+
import { contains as d, getDocument as b, activeElement as f } from "./index151.js";
|
|
3
3
|
const s = () => ({
|
|
4
4
|
getShadowRoot: !0,
|
|
5
5
|
displayCheck: (
|
package/dist/index20.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import * as n from "react";
|
|
3
|
-
import { useDialogRootContext as p } from "./
|
|
4
|
-
import { useRenderElement as a } from "./
|
|
5
|
-
import { useBaseUiId as c } from "./
|
|
3
|
+
import { useDialogRootContext as p } from "./index103.js";
|
|
4
|
+
import { useRenderElement as a } from "./index87.js";
|
|
5
|
+
import { useBaseUiId as c } from "./index109.js";
|
|
6
6
|
const d = /* @__PURE__ */ n.forwardRef(function(e, i) {
|
|
7
7
|
const {
|
|
8
8
|
render: m,
|
package/dist/index200.js
CHANGED
|
@@ -1,50 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return {
|
|
6
|
-
open: !1,
|
|
7
|
-
mounted: !1,
|
|
8
|
-
transitionStatus: "idle",
|
|
9
|
-
floatingRootContext: i(),
|
|
10
|
-
preventUnmountingOnClose: !1,
|
|
11
|
-
payload: void 0,
|
|
12
|
-
activeTriggerId: null,
|
|
13
|
-
activeTriggerElement: null,
|
|
14
|
-
popupElement: null,
|
|
15
|
-
positionerElement: null,
|
|
16
|
-
activeTriggerProps: n,
|
|
17
|
-
inactiveTriggerProps: n,
|
|
18
|
-
popupProps: n
|
|
19
|
-
};
|
|
1
|
+
import * as t from "react";
|
|
2
|
+
const e = parseInt(t.version, 10);
|
|
3
|
+
function o(r) {
|
|
4
|
+
return e >= r;
|
|
20
5
|
}
|
|
21
|
-
const a = {
|
|
22
|
-
open: t((e) => e.open),
|
|
23
|
-
mounted: t((e) => e.mounted),
|
|
24
|
-
transitionStatus: t((e) => e.transitionStatus),
|
|
25
|
-
floatingRootContext: t((e) => e.floatingRootContext),
|
|
26
|
-
preventUnmountingOnClose: t((e) => e.preventUnmountingOnClose),
|
|
27
|
-
payload: t((e) => e.payload),
|
|
28
|
-
activeTriggerId: t((e) => e.activeTriggerId),
|
|
29
|
-
activeTriggerElement: t((e) => e.mounted ? e.activeTriggerElement : null),
|
|
30
|
-
/**
|
|
31
|
-
* Whether the trigger with the given ID was used to open the popup.
|
|
32
|
-
*/
|
|
33
|
-
isTriggerActive: t((e, o) => o !== void 0 && e.activeTriggerId === o),
|
|
34
|
-
/**
|
|
35
|
-
* Whether the popup is open and was activated by a trigger with the given ID.
|
|
36
|
-
*/
|
|
37
|
-
isOpenedByTrigger: t((e, o) => o !== void 0 && e.activeTriggerId === o && e.open),
|
|
38
|
-
/**
|
|
39
|
-
* Whether the popup is mounted and was activated by a trigger with the given ID.
|
|
40
|
-
*/
|
|
41
|
-
isMountedByTrigger: t((e, o) => o !== void 0 && e.activeTriggerId === o && e.mounted),
|
|
42
|
-
triggerProps: t((e, o) => o ? e.activeTriggerProps : e.inactiveTriggerProps),
|
|
43
|
-
popupProps: t((e) => e.popupProps),
|
|
44
|
-
popupElement: t((e) => e.popupElement),
|
|
45
|
-
positionerElement: t((e) => e.positionerElement)
|
|
46
|
-
};
|
|
47
6
|
export {
|
|
48
|
-
|
|
49
|
-
a as popupStoreSelectors
|
|
7
|
+
o as isReactVersionAtLeast
|
|
50
8
|
};
|
package/dist/index201.js
CHANGED
|
@@ -1,202 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* Non-reactive values such as refs, callbacks, etc.
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Keeps track of which properties are controlled.
|
|
23
|
-
*/
|
|
24
|
-
controlledValues = /* @__PURE__ */ new Map();
|
|
25
|
-
/**
|
|
26
|
-
* Synchronizes a single external value into the store.
|
|
27
|
-
*
|
|
28
|
-
* Note that the while the value in `state` is updated immediately, the value returned
|
|
29
|
-
* by `useState` is updated before the next render (similarly to React's `useState`).
|
|
30
|
-
*/
|
|
31
|
-
useSyncedValue(e, t) {
|
|
32
|
-
r.useDebugValue(e), i(() => {
|
|
33
|
-
this.state[e] !== t && this.set(e, t);
|
|
34
|
-
}, [e, t]);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Synchronizes a single external value into the store and
|
|
38
|
-
* cleans it up (sets to `undefined`) on unmount.
|
|
39
|
-
*
|
|
40
|
-
* Note that the while the value in `state` is updated immediately, the value returned
|
|
41
|
-
* by `useState` is updated before the next render (similarly to React's `useState`).
|
|
42
|
-
*/
|
|
43
|
-
useSyncedValueWithCleanup(e, t) {
|
|
44
|
-
i(() => (this.state[e] !== t && this.set(e, t), () => {
|
|
45
|
-
this.set(e, void 0);
|
|
46
|
-
}), [e, t]);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Synchronizes multiple external values into the store.
|
|
50
|
-
*
|
|
51
|
-
* Note that the while the values in `state` are updated immediately, the values returned
|
|
52
|
-
* by `useState` are updated before the next render (similarly to React's `useState`).
|
|
53
|
-
*/
|
|
54
|
-
useSyncedValues(e) {
|
|
55
|
-
if (process.env.NODE_ENV !== "production") {
|
|
56
|
-
r.useDebugValue(e, (n) => Object.keys(n));
|
|
57
|
-
const s = r.useRef(Object.keys(e)).current, o = Object.keys(e);
|
|
58
|
-
(s.length !== o.length || s.some((n, u) => n !== o[u])) && console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
|
|
59
|
-
}
|
|
60
|
-
const t = Object.values(e);
|
|
61
|
-
i(() => {
|
|
62
|
-
this.update(e);
|
|
63
|
-
}, t);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key.
|
|
67
|
-
* - If `controlled` is non-undefined, the key is marked as controlled and the store's
|
|
68
|
-
* state at `key` is updated to match `controlled`. Local writes to that key are ignored.
|
|
69
|
-
* - If `controlled` is undefined, the key is marked as uncontrolled. The store's state
|
|
70
|
-
* is initialized to `defaultValue` on first render and can be updated with local writes.
|
|
71
|
-
*/
|
|
72
|
-
useControlledProp(e, t, s) {
|
|
73
|
-
r.useDebugValue(e);
|
|
74
|
-
const o = t !== void 0;
|
|
75
|
-
if (process.env.NODE_ENV !== "production") {
|
|
76
|
-
const n = this.controlledValues.get(e);
|
|
77
|
-
n !== void 0 && n !== o && console.error(`A component is changing the ${o ? "" : "un"}controlled state of ${e.toString()} to be ${o ? "un" : ""}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);
|
|
78
|
-
}
|
|
79
|
-
this.controlledValues.has(e) || (this.controlledValues.set(e, o), !o && !Object.is(this.state[e], s) && super.setState({
|
|
80
|
-
...this.state,
|
|
81
|
-
[e]: s
|
|
82
|
-
})), i(() => {
|
|
83
|
-
o && !Object.is(this.state[e], t) && super.setState({
|
|
84
|
-
...this.state,
|
|
85
|
-
[e]: t
|
|
86
|
-
});
|
|
87
|
-
}, [e, t, s, o]);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
|
|
91
|
-
* If the key is controlled (registered via {@link useControlledProp} with a non-undefined value),
|
|
92
|
-
* the update is ignored and no listeners are notified.
|
|
93
|
-
*
|
|
94
|
-
* @param key The state key to update.
|
|
95
|
-
* @param value The new value to set for the specified key.
|
|
96
|
-
*/
|
|
97
|
-
set(e, t) {
|
|
98
|
-
this.controlledValues.get(e) !== !0 && super.set(e, t);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Merges the provided changes into the current state and notifies listeners if there are changes.
|
|
102
|
-
* Controlled keys are filtered out and not updated.
|
|
103
|
-
*
|
|
104
|
-
* @param values An object containing the changes to apply to the current state.
|
|
105
|
-
*/
|
|
106
|
-
update(e) {
|
|
107
|
-
const t = {
|
|
108
|
-
...e
|
|
109
|
-
};
|
|
110
|
-
for (const s in t)
|
|
111
|
-
if (Object.hasOwn(t, s) && this.controlledValues.get(s) === !0) {
|
|
112
|
-
delete t[s];
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
super.update(t);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Updates the entire store's state and notifies all registered listeners.
|
|
119
|
-
* Controlled keys are left unchanged; only uncontrolled keys from `newState` are applied.
|
|
120
|
-
*
|
|
121
|
-
* @param newState The new state to set for the store.
|
|
122
|
-
*/
|
|
123
|
-
setState(e) {
|
|
124
|
-
const t = {
|
|
125
|
-
...e
|
|
126
|
-
};
|
|
127
|
-
for (const s in t)
|
|
128
|
-
if (Object.hasOwn(t, s) && this.controlledValues.get(s) === !0) {
|
|
129
|
-
delete t[s];
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
super.setState({
|
|
133
|
-
...this.state,
|
|
134
|
-
...t
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
/** Gets the current value from the store using a selector with the provided key.
|
|
138
|
-
*
|
|
139
|
-
* @param key Key of the selector to use.
|
|
140
|
-
*/
|
|
141
|
-
select = (e, t, s, o) => {
|
|
142
|
-
const n = this.selectors[e];
|
|
143
|
-
return n(this.state, t, s, o);
|
|
144
|
-
};
|
|
145
|
-
/**
|
|
146
|
-
* Returns a value from the store's state using a selector function.
|
|
147
|
-
* Used to subscribe to specific parts of the state.
|
|
148
|
-
* This methods causes a rerender whenever the selected state changes.
|
|
149
|
-
*
|
|
150
|
-
* @param key Key of the selector to use.
|
|
151
|
-
*/
|
|
152
|
-
useState = (e, t, s, o) => {
|
|
153
|
-
r.useDebugValue(e);
|
|
154
|
-
const n = this.selectors[e];
|
|
155
|
-
return a(this, n, t, s, o);
|
|
1
|
+
import { getEmptyRootContext as i } from "./index247.js";
|
|
2
|
+
import { EMPTY_OBJECT as n } from "./index100.js";
|
|
3
|
+
import { createSelector as t } from "./index204.js";
|
|
4
|
+
function l() {
|
|
5
|
+
return {
|
|
6
|
+
open: !1,
|
|
7
|
+
mounted: !1,
|
|
8
|
+
transitionStatus: "idle",
|
|
9
|
+
floatingRootContext: i(),
|
|
10
|
+
preventUnmountingOnClose: !1,
|
|
11
|
+
payload: void 0,
|
|
12
|
+
activeTriggerId: null,
|
|
13
|
+
activeTriggerElement: null,
|
|
14
|
+
popupElement: null,
|
|
15
|
+
positionerElement: null,
|
|
16
|
+
activeTriggerProps: n,
|
|
17
|
+
inactiveTriggerProps: n,
|
|
18
|
+
popupProps: n
|
|
156
19
|
};
|
|
20
|
+
}
|
|
21
|
+
const a = {
|
|
22
|
+
open: t((e) => e.open),
|
|
23
|
+
mounted: t((e) => e.mounted),
|
|
24
|
+
transitionStatus: t((e) => e.transitionStatus),
|
|
25
|
+
floatingRootContext: t((e) => e.floatingRootContext),
|
|
26
|
+
preventUnmountingOnClose: t((e) => e.preventUnmountingOnClose),
|
|
27
|
+
payload: t((e) => e.payload),
|
|
28
|
+
activeTriggerId: t((e) => e.activeTriggerId),
|
|
29
|
+
activeTriggerElement: t((e) => e.mounted ? e.activeTriggerElement : null),
|
|
157
30
|
/**
|
|
158
|
-
*
|
|
159
|
-
* and assigns it to the context.
|
|
160
|
-
*
|
|
161
|
-
* @param key Key of the event callback. Must be a function in the context.
|
|
162
|
-
* @param fn Function to assign.
|
|
31
|
+
* Whether the trigger with the given ID was used to open the popup.
|
|
163
32
|
*/
|
|
164
|
-
|
|
165
|
-
r.useDebugValue(e);
|
|
166
|
-
const s = h(t ?? d);
|
|
167
|
-
this.context[e] = s;
|
|
168
|
-
}
|
|
33
|
+
isTriggerActive: t((e, o) => o !== void 0 && e.activeTriggerId === o),
|
|
169
34
|
/**
|
|
170
|
-
*
|
|
171
|
-
* It's commonly used to pass as a ref callback to React elements.
|
|
172
|
-
*
|
|
173
|
-
* @param key Key of the state to set.
|
|
35
|
+
* Whether the popup is open and was activated by a trigger with the given ID.
|
|
174
36
|
*/
|
|
175
|
-
|
|
176
|
-
const t = r.useRef(void 0);
|
|
177
|
-
return t.current === void 0 && (t.current = (s) => {
|
|
178
|
-
this.set(e, s);
|
|
179
|
-
}), t.current;
|
|
180
|
-
}
|
|
37
|
+
isOpenedByTrigger: t((e, o) => o !== void 0 && e.activeTriggerId === o && e.open),
|
|
181
38
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
* @param key Key of the selector to observe.
|
|
185
|
-
* @param listener Listener function called when the selector result changes.
|
|
39
|
+
* Whether the popup is mounted and was activated by a trigger with the given ID.
|
|
186
40
|
*/
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if (!Object.is(o, u)) {
|
|
194
|
-
const c = o;
|
|
195
|
-
o = u, t(u, c, this);
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
}
|
|
41
|
+
isMountedByTrigger: t((e, o) => o !== void 0 && e.activeTriggerId === o && e.mounted),
|
|
42
|
+
triggerProps: t((e, o) => o ? e.activeTriggerProps : e.inactiveTriggerProps),
|
|
43
|
+
popupProps: t((e) => e.popupProps),
|
|
44
|
+
popupElement: t((e) => e.popupElement),
|
|
45
|
+
positionerElement: t((e) => e.positionerElement)
|
|
46
|
+
};
|
|
200
47
|
export {
|
|
201
|
-
|
|
48
|
+
l as createInitialPopupStoreState,
|
|
49
|
+
a as popupStoreSelectors
|
|
202
50
|
};
|
package/dist/index202.js
CHANGED
|
@@ -1,50 +1,202 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import * as r from "react";
|
|
2
|
+
import { Store as l } from "./index146.js";
|
|
3
|
+
import { useStore as a } from "./index145.js";
|
|
4
|
+
import { useStableCallback as h } from "./index127.js";
|
|
5
|
+
import { useIsoLayoutEffect as i } from "./index126.js";
|
|
6
|
+
import { NOOP as d } from "./index100.js";
|
|
7
|
+
class O extends l {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new ReactStore instance.
|
|
10
|
+
*
|
|
11
|
+
* @param state Initial state of the store.
|
|
12
|
+
* @param context Non-reactive context values.
|
|
13
|
+
* @param selectors Optional selectors for use with `useState`.
|
|
14
|
+
*/
|
|
15
|
+
constructor(e, t = {}, s) {
|
|
16
|
+
super(e), this.context = t, this.selectors = s;
|
|
5
17
|
}
|
|
6
18
|
/**
|
|
7
|
-
*
|
|
19
|
+
* Non-reactive values such as refs, callbacks, etc.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Keeps track of which properties are controlled.
|
|
23
|
+
*/
|
|
24
|
+
controlledValues = /* @__PURE__ */ new Map();
|
|
25
|
+
/**
|
|
26
|
+
* Synchronizes a single external value into the store.
|
|
8
27
|
*
|
|
9
|
-
* Note
|
|
28
|
+
* Note that the while the value in `state` is updated immediately, the value returned
|
|
29
|
+
* by `useState` is updated before the next render (similarly to React's `useState`).
|
|
10
30
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
31
|
+
useSyncedValue(e, t) {
|
|
32
|
+
r.useDebugValue(e), i(() => {
|
|
33
|
+
this.state[e] !== t && this.set(e, t);
|
|
34
|
+
}, [e, t]);
|
|
15
35
|
}
|
|
16
36
|
/**
|
|
17
|
-
*
|
|
37
|
+
* Synchronizes a single external value into the store and
|
|
38
|
+
* cleans it up (sets to `undefined`) on unmount.
|
|
39
|
+
*
|
|
40
|
+
* Note that the while the value in `state` is updated immediately, the value returned
|
|
41
|
+
* by `useState` is updated before the next render (similarly to React's `useState`).
|
|
18
42
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
43
|
+
useSyncedValueWithCleanup(e, t) {
|
|
44
|
+
i(() => (this.state[e] !== t && this.set(e, t), () => {
|
|
45
|
+
this.set(e, void 0);
|
|
46
|
+
}), [e, t]);
|
|
22
47
|
}
|
|
23
48
|
/**
|
|
24
|
-
*
|
|
49
|
+
* Synchronizes multiple external values into the store.
|
|
50
|
+
*
|
|
51
|
+
* Note that the while the values in `state` are updated immediately, the values returned
|
|
52
|
+
* by `useState` are updated before the next render (similarly to React's `useState`).
|
|
25
53
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
54
|
+
useSyncedValues(e) {
|
|
55
|
+
if (process.env.NODE_ENV !== "production") {
|
|
56
|
+
r.useDebugValue(e, (n) => Object.keys(n));
|
|
57
|
+
const s = r.useRef(Object.keys(e)).current, o = Object.keys(e);
|
|
58
|
+
(s.length !== o.length || s.some((n, u) => n !== o[u])) && console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
|
|
59
|
+
}
|
|
60
|
+
const t = Object.values(e);
|
|
61
|
+
i(() => {
|
|
62
|
+
this.update(e);
|
|
63
|
+
}, t);
|
|
28
64
|
}
|
|
29
65
|
/**
|
|
30
|
-
*
|
|
66
|
+
* Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key.
|
|
67
|
+
* - If `controlled` is non-undefined, the key is marked as controlled and the store's
|
|
68
|
+
* state at `key` is updated to match `controlled`. Local writes to that key are ignored.
|
|
69
|
+
* - If `controlled` is undefined, the key is marked as uncontrolled. The store's state
|
|
70
|
+
* is initialized to `defaultValue` on first render and can be updated with local writes.
|
|
31
71
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
72
|
+
useControlledProp(e, t, s) {
|
|
73
|
+
r.useDebugValue(e);
|
|
74
|
+
const o = t !== void 0;
|
|
75
|
+
if (process.env.NODE_ENV !== "production") {
|
|
76
|
+
const n = this.controlledValues.get(e);
|
|
77
|
+
n !== void 0 && n !== o && console.error(`A component is changing the ${o ? "" : "un"}controlled state of ${e.toString()} to be ${o ? "un" : ""}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);
|
|
78
|
+
}
|
|
79
|
+
this.controlledValues.has(e) || (this.controlledValues.set(e, o), !o && !Object.is(this.state[e], s) && super.setState({
|
|
80
|
+
...this.state,
|
|
81
|
+
[e]: s
|
|
82
|
+
})), i(() => {
|
|
83
|
+
o && !Object.is(this.state[e], t) && super.setState({
|
|
84
|
+
...this.state,
|
|
85
|
+
[e]: t
|
|
86
|
+
});
|
|
87
|
+
}, [e, t, s, o]);
|
|
37
88
|
}
|
|
38
|
-
|
|
39
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
|
|
91
|
+
* If the key is controlled (registered via {@link useControlledProp} with a non-undefined value),
|
|
92
|
+
* the update is ignored and no listeners are notified.
|
|
93
|
+
*
|
|
94
|
+
* @param key The state key to update.
|
|
95
|
+
* @param value The new value to set for the specified key.
|
|
96
|
+
*/
|
|
97
|
+
set(e, t) {
|
|
98
|
+
this.controlledValues.get(e) !== !0 && super.set(e, t);
|
|
40
99
|
}
|
|
41
|
-
|
|
42
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Merges the provided changes into the current state and notifies listeners if there are changes.
|
|
102
|
+
* Controlled keys are filtered out and not updated.
|
|
103
|
+
*
|
|
104
|
+
* @param values An object containing the changes to apply to the current state.
|
|
105
|
+
*/
|
|
106
|
+
update(e) {
|
|
107
|
+
const t = {
|
|
108
|
+
...e
|
|
109
|
+
};
|
|
110
|
+
for (const s in t)
|
|
111
|
+
if (Object.hasOwn(t, s) && this.controlledValues.get(s) === !0) {
|
|
112
|
+
delete t[s];
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
super.update(t);
|
|
43
116
|
}
|
|
44
|
-
|
|
45
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Updates the entire store's state and notifies all registered listeners.
|
|
119
|
+
* Controlled keys are left unchanged; only uncontrolled keys from `newState` are applied.
|
|
120
|
+
*
|
|
121
|
+
* @param newState The new state to set for the store.
|
|
122
|
+
*/
|
|
123
|
+
setState(e) {
|
|
124
|
+
const t = {
|
|
125
|
+
...e
|
|
126
|
+
};
|
|
127
|
+
for (const s in t)
|
|
128
|
+
if (Object.hasOwn(t, s) && this.controlledValues.get(s) === !0) {
|
|
129
|
+
delete t[s];
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
super.setState({
|
|
133
|
+
...this.state,
|
|
134
|
+
...t
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/** Gets the current value from the store using a selector with the provided key.
|
|
138
|
+
*
|
|
139
|
+
* @param key Key of the selector to use.
|
|
140
|
+
*/
|
|
141
|
+
select = (e, t, s, o) => {
|
|
142
|
+
const n = this.selectors[e];
|
|
143
|
+
return n(this.state, t, s, o);
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Returns a value from the store's state using a selector function.
|
|
147
|
+
* Used to subscribe to specific parts of the state.
|
|
148
|
+
* This methods causes a rerender whenever the selected state changes.
|
|
149
|
+
*
|
|
150
|
+
* @param key Key of the selector to use.
|
|
151
|
+
*/
|
|
152
|
+
useState = (e, t, s, o) => {
|
|
153
|
+
r.useDebugValue(e);
|
|
154
|
+
const n = this.selectors[e];
|
|
155
|
+
return a(this, n, t, s, o);
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Wraps a function with `useStableCallback` to ensure it has a stable reference
|
|
159
|
+
* and assigns it to the context.
|
|
160
|
+
*
|
|
161
|
+
* @param key Key of the event callback. Must be a function in the context.
|
|
162
|
+
* @param fn Function to assign.
|
|
163
|
+
*/
|
|
164
|
+
useContextCallback(e, t) {
|
|
165
|
+
r.useDebugValue(e);
|
|
166
|
+
const s = h(t ?? d);
|
|
167
|
+
this.context[e] = s;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Returns a stable setter function for a specific key in the store's state.
|
|
171
|
+
* It's commonly used to pass as a ref callback to React elements.
|
|
172
|
+
*
|
|
173
|
+
* @param key Key of the state to set.
|
|
174
|
+
*/
|
|
175
|
+
useStateSetter(e) {
|
|
176
|
+
const t = r.useRef(void 0);
|
|
177
|
+
return t.current === void 0 && (t.current = (s) => {
|
|
178
|
+
this.set(e, s);
|
|
179
|
+
}), t.current;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Observes changes derived from the store's selectors and calls the listener when the selected value changes.
|
|
183
|
+
*
|
|
184
|
+
* @param key Key of the selector to observe.
|
|
185
|
+
* @param listener Listener function called when the selector result changes.
|
|
186
|
+
*/
|
|
187
|
+
observe(e, t) {
|
|
188
|
+
let s;
|
|
189
|
+
typeof e == "function" ? s = e : s = this.selectors[e];
|
|
190
|
+
let o = s(this.state);
|
|
191
|
+
return t(o, o, this), this.subscribe((n) => {
|
|
192
|
+
const u = s(n);
|
|
193
|
+
if (!Object.is(o, u)) {
|
|
194
|
+
const c = o;
|
|
195
|
+
o = u, t(u, c, this);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
46
198
|
}
|
|
47
199
|
}
|
|
48
200
|
export {
|
|
49
|
-
|
|
201
|
+
O as ReactStore
|
|
50
202
|
};
|