@rpcbase/ui 0.249.0 → 0.250.0
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/index120.js +10 -10
- package/dist/index122.js +2 -2
- package/dist/index123.js +3 -3
- package/dist/index176.js +4 -4
- package/dist/index178.js +1 -1
- package/dist/index182.js +1 -1
- package/dist/index184.js +1 -1
- package/dist/index186.js +1 -1
- package/dist/index188.js +1 -1
- package/dist/index189.js +2 -2
- package/dist/index192.js +2 -2
- package/dist/index200.js +1 -1
- package/dist/index202.js +1 -1
- package/dist/index210.js +1 -1
- package/dist/index217.js +1 -1
- package/dist/index218.js +2 -2
- package/dist/index253.js +1 -1
- package/dist/index296.js +14 -27
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +7 -12
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +9 -24
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +10 -5
- package/dist/index299.js.map +1 -1
- package/dist/index300.js +20 -15
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +8 -7
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +9 -10
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +9 -10
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +4 -21
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +5 -8
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +16 -9
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +8 -8
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +18 -4
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +20 -5
- package/dist/index309.js.map +1 -1
- package/dist/index310.js +12 -16
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +29 -9
- package/dist/index311.js.map +1 -1
- package/dist/index312.js +12 -18
- package/dist/index312.js.map +1 -1
- package/dist/index313.js +25 -20
- package/dist/index313.js.map +1 -1
- package/dist/index314.js +5 -12
- package/dist/index314.js.map +1 -1
- package/dist/index322.js +1 -1
- package/dist/index332.js +1 -1
- package/dist/index333.js +1 -1
- package/dist/index336.js +8 -7
- package/dist/index336.js.map +1 -1
- package/dist/index337.js +7 -8
- package/dist/index337.js.map +1 -1
- package/dist/index341.js +1 -1
- package/dist/index347.js +51 -17
- package/dist/index347.js.map +1 -1
- package/dist/index348.js +5 -51
- package/dist/index348.js.map +1 -1
- package/dist/index349.js +61 -5
- package/dist/index349.js.map +1 -1
- package/dist/index350.js +65 -60
- package/dist/index350.js.map +1 -1
- package/dist/index351.js +16 -65
- package/dist/index351.js.map +1 -1
- package/dist/index352.js +7 -143
- package/dist/index352.js.map +1 -1
- package/dist/index353.js +4 -79
- package/dist/index353.js.map +1 -1
- package/dist/index354.js +11 -61
- package/dist/index354.js.map +1 -1
- package/dist/index355.js +22 -15
- package/dist/index355.js.map +1 -1
- package/dist/index356.js +16 -8
- package/dist/index356.js.map +1 -1
- package/dist/index357.js +8 -5
- package/dist/index357.js.map +1 -1
- package/dist/index358.js +144 -11
- package/dist/index358.js.map +1 -1
- package/dist/index359.js +77 -19
- package/dist/index359.js.map +1 -1
- package/dist/index360.js +61 -16
- package/dist/index360.js.map +1 -1
- package/dist/index361.js +15 -8
- package/dist/index361.js.map +1 -1
- package/dist/index372.js +1 -1
- package/dist/index388.js +2 -2
- package/dist/index391.js +1 -1
- package/dist/index411.js +1 -1
- package/dist/index416.js +1 -1
- package/dist/index417.js +1 -1
- package/dist/index420.js +1 -1
- package/dist/index421.js +1 -1
- package/dist/index430.js +2 -2
- package/dist/index432.js +2 -2
- package/dist/index44.js +1 -1
- package/dist/index45.js +2 -2
- package/dist/index66.js +1 -1
- package/dist/index67.js +1 -1
- package/dist/index70.js +1 -1
- package/dist/index71.js +1 -1
- package/dist/index72.js +2 -6
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +2 -8
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +2 -6
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +2 -2
- package/dist/index76.js +6 -2
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +8 -2
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +6 -2
- package/dist/index78.js.map +1 -1
- package/package.json +1 -1
package/dist/index354.js
CHANGED
|
@@ -1,65 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
add(e, t) {
|
|
11
|
-
const s = this.idMap.get(e);
|
|
12
|
-
if (s !== t && (s !== void 0 && this.elementsSet.delete(s), this.elementsSet.add(t), this.idMap.set(e, t), process.env.NODE_ENV !== "production" && this.elementsSet.size !== this.idMap.size))
|
|
13
|
-
throw new Error("Base UI: A trigger element cannot be registered under multiple IDs in PopupTriggerMap.");
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Removes the trigger element with the given ID.
|
|
17
|
-
*/
|
|
18
|
-
delete(e) {
|
|
19
|
-
const t = this.idMap.get(e);
|
|
20
|
-
t && (this.elementsSet.delete(t), this.idMap.delete(e));
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Whether the given element is registered as a trigger.
|
|
24
|
-
*/
|
|
25
|
-
hasElement(e) {
|
|
26
|
-
return this.elementsSet.has(e);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Whether there is a registered trigger element matching the given predicate.
|
|
30
|
-
*/
|
|
31
|
-
hasMatchingElement(e) {
|
|
32
|
-
for (const t of this.elementsSet)
|
|
33
|
-
if (e(t))
|
|
34
|
-
return !0;
|
|
35
|
-
return !1;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Returns the trigger element associated with the given ID, or undefined if no such element exists.
|
|
39
|
-
*/
|
|
40
|
-
getById(e) {
|
|
41
|
-
return this.idMap.get(e);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Returns an iterable of all registered trigger entries, where each entry is a tuple of [id, element].
|
|
45
|
-
*/
|
|
46
|
-
entries() {
|
|
47
|
-
return this.idMap.entries();
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Returns an iterable of all registered trigger elements.
|
|
51
|
-
*/
|
|
52
|
-
elements() {
|
|
53
|
-
return this.elementsSet.values();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Returns the number of registered trigger elements.
|
|
57
|
-
*/
|
|
58
|
-
get size() {
|
|
59
|
-
return this.idMap.size;
|
|
60
|
-
}
|
|
1
|
+
import n from "./index190.js";
|
|
2
|
+
import * as t from "react";
|
|
3
|
+
const e = /* @__PURE__ */ t.createContext(void 0);
|
|
4
|
+
process.env.NODE_ENV !== "production" && (e.displayName = "CompositeRootContext");
|
|
5
|
+
function r(s = !1) {
|
|
6
|
+
const o = t.useContext(e);
|
|
7
|
+
if (o === void 0 && !s)
|
|
8
|
+
throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>." : n(16));
|
|
9
|
+
return o;
|
|
61
10
|
}
|
|
62
11
|
export {
|
|
63
|
-
|
|
12
|
+
e as CompositeRootContext,
|
|
13
|
+
r as useCompositeRootContext
|
|
64
14
|
};
|
|
65
15
|
//# sourceMappingURL=index354.js.map
|
package/dist/index354.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index354.js","sources":["../../../node_modules/@base-ui/react/
|
|
1
|
+
{"version":3,"file":"index354.js","sources":["../../../node_modules/@base-ui/react/internals/composite/root/CompositeRootContext.mjs"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const CompositeRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CompositeRootContext.displayName = \"CompositeRootContext\";\nexport function useCompositeRootContext(optional = false) {\n const context = React.useContext(CompositeRootContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.' : _formatErrorMessage(16));\n }\n return context;\n}"],"names":["CompositeRootContext","React","useCompositeRootContext","optional","context","_formatErrorMessage"],"mappings":";;AAIY,MAACA,IAAoC,gBAAAC,EAAM,cAAc,MAAS;AAC1E,QAAQ,IAAI,aAAa,iBAAcD,EAAqB,cAAc;AACvE,SAASE,EAAwBC,IAAW,IAAO;AACxD,QAAMC,IAAUH,EAAM,WAAWD,CAAoB;AACrD,MAAII,MAAY,UAAa,CAACD;AAC5B,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,sGAAsGE,EAAoB,EAAE,CAAC;AAEvL,SAAOD;AACT;","x_google_ignoreList":[0]}
|
package/dist/index355.js
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import * as r from "react";
|
|
2
|
+
function f(l) {
|
|
3
|
+
const {
|
|
4
|
+
focusableWhenDisabled: e,
|
|
5
|
+
disabled: o,
|
|
6
|
+
composite: t = !1,
|
|
7
|
+
tabIndex: i = 0,
|
|
8
|
+
isNativeButton: s
|
|
9
|
+
} = l, n = t && e !== !1, b = t && e === !1;
|
|
10
|
+
return {
|
|
11
|
+
props: r.useMemo(() => {
|
|
12
|
+
const a = {
|
|
13
|
+
// allow Tabbing away from focusableWhenDisabled elements
|
|
14
|
+
onKeyDown(d) {
|
|
15
|
+
o && e && d.key !== "Tab" && d.preventDefault();
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
return t || (a.tabIndex = i, !s && o && (a.tabIndex = e ? i : -1)), (s && (e || n) || !s && o) && (a["aria-disabled"] = o), s && (!e || b) && (a.disabled = o), a;
|
|
19
|
+
}, [t, o, e, n, b, s, i])
|
|
20
|
+
};
|
|
21
|
+
}
|
|
15
22
|
export {
|
|
16
|
-
|
|
23
|
+
f as useFocusableWhenDisabled
|
|
17
24
|
};
|
|
18
25
|
//# sourceMappingURL=index355.js.map
|
package/dist/index355.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index355.js","sources":["../../../node_modules/@base-ui/utils/
|
|
1
|
+
{"version":3,"file":"index355.js","sources":["../../../node_modules/@base-ui/react/utils/useFocusableWhenDisabled.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nexport function useFocusableWhenDisabled(parameters) {\n const {\n focusableWhenDisabled,\n disabled,\n composite = false,\n tabIndex: tabIndexProp = 0,\n isNativeButton\n } = parameters;\n const isFocusableComposite = composite && focusableWhenDisabled !== false;\n const isNonFocusableComposite = composite && focusableWhenDisabled === false;\n\n // we can't explicitly assign `undefined` to any of these props because it\n // would otherwise prevent subsequently merged props from setting them\n const props = React.useMemo(() => {\n const additionalProps = {\n // allow Tabbing away from focusableWhenDisabled elements\n onKeyDown(event) {\n if (disabled && focusableWhenDisabled && event.key !== 'Tab') {\n event.preventDefault();\n }\n }\n };\n if (!composite) {\n additionalProps.tabIndex = tabIndexProp;\n if (!isNativeButton && disabled) {\n additionalProps.tabIndex = focusableWhenDisabled ? tabIndexProp : -1;\n }\n }\n if (isNativeButton && (focusableWhenDisabled || isFocusableComposite) || !isNativeButton && disabled) {\n additionalProps['aria-disabled'] = disabled;\n }\n if (isNativeButton && (!focusableWhenDisabled || isNonFocusableComposite)) {\n additionalProps.disabled = disabled;\n }\n return additionalProps;\n }, [composite, disabled, focusableWhenDisabled, isFocusableComposite, isNonFocusableComposite, isNativeButton, tabIndexProp]);\n return {\n props\n };\n}"],"names":["useFocusableWhenDisabled","parameters","focusableWhenDisabled","disabled","composite","tabIndexProp","isNativeButton","isFocusableComposite","isNonFocusableComposite","React","additionalProps","event"],"mappings":";AAGO,SAASA,EAAyBC,GAAY;AACnD,QAAM;AAAA,IACJ,uBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,UAAUC,IAAe;AAAA,IACzB,gBAAAC;AAAA,EACJ,IAAML,GACEM,IAAuBH,KAAaF,MAA0B,IAC9DM,IAA0BJ,KAAaF,MAA0B;AA2BvE,SAAO;AAAA,IACL,OAxBYO,EAAM,QAAQ,MAAM;AAChC,YAAMC,IAAkB;AAAA;AAAA,QAEtB,UAAUC,GAAO;AACf,UAAIR,KAAYD,KAAyBS,EAAM,QAAQ,SACrDA,EAAM,eAAc;AAAA,QAExB;AAAA,MACN;AACI,aAAKP,MACHM,EAAgB,WAAWL,GACvB,CAACC,KAAkBH,MACrBO,EAAgB,WAAWR,IAAwBG,IAAe,OAGlEC,MAAmBJ,KAAyBK,MAAyB,CAACD,KAAkBH,OAC1FO,EAAgB,eAAe,IAAIP,IAEjCG,MAAmB,CAACJ,KAAyBM,OAC/CE,EAAgB,WAAWP,IAEtBO;AAAA,IACT,GAAG,CAACN,GAAWD,GAAUD,GAAuBK,GAAsBC,GAAyBF,GAAgBD,CAAY,CAAC;AAAA,EAG9H;AACA;","x_google_ignoreList":[0]}
|
package/dist/index356.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import * as e from "react";
|
|
2
|
+
function t(i) {
|
|
3
|
+
const o = e.useRef(""), n = e.useCallback((r) => {
|
|
4
|
+
r.defaultPrevented || (o.current = r.pointerType, i(r, r.pointerType));
|
|
5
|
+
}, [i]);
|
|
6
|
+
return {
|
|
7
|
+
onClick: e.useCallback((r) => {
|
|
8
|
+
if (r.detail === 0) {
|
|
9
|
+
i(r, "keyboard");
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
"pointerType" in r ? i(r, r.pointerType) : i(r, o.current), o.current = "";
|
|
13
|
+
}, [i]),
|
|
14
|
+
onPointerDown: n
|
|
15
|
+
};
|
|
8
16
|
}
|
|
9
17
|
export {
|
|
10
|
-
|
|
18
|
+
t as useEnhancedClickHandler
|
|
11
19
|
};
|
|
12
20
|
//# sourceMappingURL=index356.js.map
|
package/dist/index356.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index356.js","sources":["../../../node_modules/@base-ui/utils/
|
|
1
|
+
{"version":3,"file":"index356.js","sources":["../../../node_modules/@base-ui/utils/useEnhancedClickHandler.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n/**\n * Provides a cross-browser way to determine the type of the pointer used to click.\n * Safari and Firefox do not provide the PointerEvent to the click handler (they use MouseEvent) yet.\n * Additionally, this implementation detects if the click was triggered by the keyboard.\n *\n * @param handler The function to be called when the button is clicked. The first parameter is the original event and the second parameter is the pointer type.\n */\nexport function useEnhancedClickHandler(handler) {\n const lastClickInteractionTypeRef = React.useRef('');\n const handlePointerDown = React.useCallback(event => {\n if (event.defaultPrevented) {\n return;\n }\n lastClickInteractionTypeRef.current = event.pointerType;\n handler(event, event.pointerType);\n }, [handler]);\n const handleClick = React.useCallback(event => {\n // event.detail has the number of clicks performed on the element. 0 means it was triggered by the keyboard.\n if (event.detail === 0) {\n handler(event, 'keyboard');\n return;\n }\n if ('pointerType' in event) {\n // Chrome and Edge correctly use PointerEvent\n handler(event, event.pointerType);\n } else {\n handler(event, lastClickInteractionTypeRef.current);\n }\n lastClickInteractionTypeRef.current = '';\n }, [handler]);\n return {\n onClick: handleClick,\n onPointerDown: handlePointerDown\n };\n}"],"names":["useEnhancedClickHandler","handler","lastClickInteractionTypeRef","React","handlePointerDown","event"],"mappings":";AAUO,SAASA,EAAwBC,GAAS;AAC/C,QAAMC,IAA8BC,EAAM,OAAO,EAAE,GAC7CC,IAAoBD,EAAM,YAAY,CAAAE,MAAS;AACnD,IAAIA,EAAM,qBAGVH,EAA4B,UAAUG,EAAM,aAC5CJ,EAAQI,GAAOA,EAAM,WAAW;AAAA,EAClC,GAAG,CAACJ,CAAO,CAAC;AAeZ,SAAO;AAAA,IACL,SAfkBE,EAAM,YAAY,CAAAE,MAAS;AAE7C,UAAIA,EAAM,WAAW,GAAG;AACtB,QAAAJ,EAAQI,GAAO,UAAU;AACzB;AAAA,MACF;AACA,MAAI,iBAAiBA,IAEnBJ,EAAQI,GAAOA,EAAM,WAAW,IAEhCJ,EAAQI,GAAOH,EAA4B,OAAO,GAEpDA,EAA4B,UAAU;AAAA,IACxC,GAAG,CAACD,CAAO,CAAC;AAAA,IAGV,eAAeG;AAAA,EACnB;AACA;","x_google_ignoreList":[0]}
|
package/dist/index357.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { lowerPlatform as t, lowerUserAgent as n, maxTouchPoints as i } from "./index422.js";
|
|
2
|
+
const s = /^i(os$|p)/.test(t) || t === "macintel" && i > 1, o = "android", c = t === o || n.includes(o), r = !s && t.startsWith("mac");
|
|
3
|
+
t.startsWith("win");
|
|
4
|
+
const e = r || s;
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
c as android,
|
|
7
|
+
e as apple,
|
|
8
|
+
s as ios,
|
|
9
|
+
r as mac
|
|
7
10
|
};
|
|
8
11
|
//# sourceMappingURL=index357.js.map
|
package/dist/index357.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index357.js","sources":["../../../node_modules/@base-ui/utils/
|
|
1
|
+
{"version":3,"file":"index357.js","sources":["../../../node_modules/@base-ui/utils/platform/os.mjs"],"sourcesContent":["import { lowerUserAgent, lowerPlatform, maxTouchPoints } from \"./shared.mjs\";\n\n// iPadOS 13+ reports `MacIntel` for `navigator.platform`; disambiguated via\n// `maxTouchPoints` so iPad is classified as iOS, not macOS.\n// https://github.com/mui/base-ui/issues/1309\n/** iPhone, iPad (including iPadOS 13+ reporting as macOS), iPod. */\nexport const ios = /^i(os$|p)/.test(lowerPlatform) || lowerPlatform === 'macintel' && maxTouchPoints > 1;\n\n/** Android phones, tablets, and embedded Android browsers. */\nconst ANDROID_STRING = 'android';\nexport const android = lowerPlatform === ANDROID_STRING || lowerUserAgent.includes(ANDROID_STRING);\n\n/** macOS desktop. Excludes iPadOS, which reports as `MacIntel`. */\nexport const mac = !ios && lowerPlatform.startsWith('mac');\n\n/** Windows desktop. */\nexport const windows = lowerPlatform.startsWith('win');\n\n/** Linux desktop (including Chrome OS). */\nexport const linux = !android && /^(linux|chrome os)/.test(lowerPlatform);\n\n/** Any Apple OS (`mac || ios`). */\nexport const apple = mac || ios;"],"names":["ios","lowerPlatform","maxTouchPoints","ANDROID_STRING","android","lowerUserAgent","mac","apple"],"mappings":";AAMY,MAACA,IAAM,YAAY,KAAKC,CAAa,KAAKA,MAAkB,cAAcC,IAAiB,GAGjGC,IAAiB,WACVC,IAAUH,MAAkBE,KAAkBE,EAAe,SAASF,CAAc,GAGpFG,IAAM,CAACN,KAAOC,EAAc,WAAW,KAAK;AAGlCA,EAAc,WAAW,KAAK;AAMzC,MAACM,IAAQD,KAAON;","x_google_ignoreList":[0]}
|
package/dist/index358.js
CHANGED
|
@@ -1,15 +1,148 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import * as c from "react";
|
|
2
|
+
import { Store as l } from "./index223.js";
|
|
3
|
+
import { useStore as a } from "./index217.js";
|
|
4
|
+
import { useStableCallback as f } from "./index202.js";
|
|
5
|
+
import { useIsoLayoutEffect as u } from "./index201.js";
|
|
6
|
+
import { NOOP as d } from "./index204.js";
|
|
7
|
+
class g 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;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Non-reactive values such as refs, callbacks, etc.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Synchronizes a single external value into the store.
|
|
23
|
+
*
|
|
24
|
+
* Note that the while the value in `state` is updated immediately, the value returned
|
|
25
|
+
* by `useState` is updated before the next render (similarly to React's `useState`).
|
|
26
|
+
*/
|
|
27
|
+
useSyncedValue(e, t) {
|
|
28
|
+
c.useDebugValue(e);
|
|
29
|
+
const s = this;
|
|
30
|
+
u(() => {
|
|
31
|
+
s.state[e] !== t && s.set(e, t);
|
|
32
|
+
}, [s, e, t]);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Synchronizes a single external value into the store and
|
|
36
|
+
* cleans it up (sets to `undefined`) on unmount.
|
|
37
|
+
*
|
|
38
|
+
* Note that the while the value in `state` is updated immediately, the value returned
|
|
39
|
+
* by `useState` is updated before the next render (similarly to React's `useState`).
|
|
40
|
+
*/
|
|
41
|
+
useSyncedValueWithCleanup(e, t) {
|
|
42
|
+
const s = this;
|
|
43
|
+
u(() => (s.state[e] !== t && s.set(e, t), () => {
|
|
44
|
+
s.set(e, void 0);
|
|
45
|
+
}), [s, e, t]);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Synchronizes multiple external values into the store.
|
|
49
|
+
*
|
|
50
|
+
* Note that the while the values in `state` are updated immediately, the values returned
|
|
51
|
+
* by `useState` are updated before the next render (similarly to React's `useState`).
|
|
52
|
+
*/
|
|
53
|
+
useSyncedValues(e) {
|
|
54
|
+
const t = this;
|
|
55
|
+
if (process.env.NODE_ENV !== "production") {
|
|
56
|
+
c.useDebugValue(e, (r) => Object.keys(r));
|
|
57
|
+
const o = c.useRef(Object.keys(e)).current, n = Object.keys(e);
|
|
58
|
+
(o.length !== n.length || o.some((r, i) => r !== n[i])) && console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
|
|
59
|
+
}
|
|
60
|
+
const s = Object.values(e);
|
|
61
|
+
u(() => {
|
|
62
|
+
t.update(e);
|
|
63
|
+
}, [t, ...s]);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`
|
|
67
|
+
* is non-undefined, the store's state at `key` is updated to match `controlled`.
|
|
68
|
+
*/
|
|
69
|
+
useControlledProp(e, t) {
|
|
70
|
+
c.useDebugValue(e);
|
|
71
|
+
const s = this, o = t !== void 0;
|
|
72
|
+
if (u(() => {
|
|
73
|
+
o && !Object.is(s.state[e], t) && s.setState({
|
|
74
|
+
...s.state,
|
|
75
|
+
[e]: t
|
|
76
|
+
});
|
|
77
|
+
}, [s, e, t, o]), process.env.NODE_ENV !== "production") {
|
|
78
|
+
const n = this.controlledValues ??= /* @__PURE__ */ new Map();
|
|
79
|
+
n.has(e) || n.set(e, o);
|
|
80
|
+
const r = n.get(e);
|
|
81
|
+
r !== void 0 && r !== 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).`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/** Gets the current value from the store using a selector with the provided key.
|
|
85
|
+
*
|
|
86
|
+
* @param key Key of the selector to use.
|
|
87
|
+
*/
|
|
88
|
+
select(e, t, s, o) {
|
|
89
|
+
const n = this.selectors[e];
|
|
90
|
+
return n(this.state, t, s, o);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns a value from the store's state using a selector function.
|
|
94
|
+
* Used to subscribe to specific parts of the state.
|
|
95
|
+
* This methods causes a rerender whenever the selected state changes.
|
|
96
|
+
*
|
|
97
|
+
* @param key Key of the selector to use.
|
|
98
|
+
*/
|
|
99
|
+
useState(e, t, s, o) {
|
|
100
|
+
return c.useDebugValue(e), a(this, this.selectors[e], t, s, o);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Wraps a function with `useStableCallback` to ensure it has a stable reference
|
|
104
|
+
* and assigns it to the context.
|
|
105
|
+
*
|
|
106
|
+
* @param key Key of the event callback. Must be a function in the context.
|
|
107
|
+
* @param fn Function to assign.
|
|
108
|
+
*/
|
|
109
|
+
useContextCallback(e, t) {
|
|
110
|
+
c.useDebugValue(e);
|
|
111
|
+
const s = f(t ?? d);
|
|
112
|
+
this.context[e] = s;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Returns a stable setter function for a specific key in the store's state.
|
|
116
|
+
* It's commonly used to pass as a ref callback to React elements.
|
|
117
|
+
*
|
|
118
|
+
* @param key Key of the state to set.
|
|
119
|
+
*/
|
|
120
|
+
useStateSetter(e) {
|
|
121
|
+
const t = c.useRef(void 0);
|
|
122
|
+
return t.current === void 0 && (t.current = (s) => {
|
|
123
|
+
this.set(e, s);
|
|
124
|
+
}), t.current;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Observes changes derived from the store's selectors and calls the listener when the selected value changes.
|
|
128
|
+
*
|
|
129
|
+
* @param key Key of the selector to observe.
|
|
130
|
+
* @param listener Listener function called when the selector result changes.
|
|
131
|
+
*/
|
|
132
|
+
observe(e, t) {
|
|
133
|
+
let s;
|
|
134
|
+
typeof e == "function" ? s = e : s = this.selectors[e];
|
|
135
|
+
let o = s(this.state);
|
|
136
|
+
return t(o, o, this), this.subscribe((n) => {
|
|
137
|
+
const r = s(n);
|
|
138
|
+
if (!Object.is(o, r)) {
|
|
139
|
+
const i = o;
|
|
140
|
+
o = r, t(r, i, this);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
10
144
|
}
|
|
11
145
|
export {
|
|
12
|
-
|
|
13
|
-
r as useCompositeRootContext
|
|
146
|
+
g as ReactStore
|
|
14
147
|
};
|
|
15
148
|
//# sourceMappingURL=index358.js.map
|
package/dist/index358.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index358.js","sources":["../../../node_modules/@base-ui/react/internals/composite/root/CompositeRootContext.mjs"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const CompositeRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CompositeRootContext.displayName = \"CompositeRootContext\";\nexport function useCompositeRootContext(optional = false) {\n const context = React.useContext(CompositeRootContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.' : _formatErrorMessage(16));\n }\n return context;\n}"],"names":["CompositeRootContext","React","useCompositeRootContext","optional","context","_formatErrorMessage"],"mappings":";;AAIY,MAACA,IAAoC,gBAAAC,EAAM,cAAc,MAAS;AAC1E,QAAQ,IAAI,aAAa,iBAAcD,EAAqB,cAAc;AACvE,SAASE,EAAwBC,IAAW,IAAO;AACxD,QAAMC,IAAUH,EAAM,WAAWD,CAAoB;AACrD,MAAII,MAAY,UAAa,CAACD;AAC5B,UAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,sGAAsGE,EAAoB,EAAE,CAAC;AAEvL,SAAOD;AACT;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index358.js","sources":["../../../node_modules/@base-ui/utils/store/ReactStore.mjs"],"sourcesContent":["/* False positives - ESLint thinks we're calling a hook from a class component. */\n/* eslint-disable react-hooks/rules-of-hooks */\n'use client';\n\nimport * as React from 'react';\nimport { Store } from \"./Store.mjs\";\nimport { useStore } from \"./useStore.mjs\";\nimport { useStableCallback } from \"../useStableCallback.mjs\";\nimport { useIsoLayoutEffect } from \"../useIsoLayoutEffect.mjs\";\nimport { NOOP } from \"../empty.mjs\";\n\n/**\n * A Store that supports controlled state keys, non-reactive values and provides utility methods for React.\n */\nexport class ReactStore extends Store {\n /**\n * Creates a new ReactStore instance.\n *\n * @param state Initial state of the store.\n * @param context Non-reactive context values.\n * @param selectors Optional selectors for use with `useState`.\n */\n constructor(state, context = {}, selectors) {\n super(state);\n this.context = context;\n this.selectors = selectors;\n }\n\n /**\n * Non-reactive values such as refs, callbacks, etc.\n */\n\n /**\n * Synchronizes a single external value into the store.\n *\n * Note that the while the value in `state` is updated immediately, the value returned\n * by `useState` is updated before the next render (similarly to React's `useState`).\n */\n useSyncedValue(key, value) {\n React.useDebugValue(key);\n // eslint-disable-next-line consistent-this\n const store = this;\n useIsoLayoutEffect(() => {\n if (store.state[key] !== value) {\n store.set(key, value);\n }\n }, [store, key, value]);\n }\n\n /**\n * Synchronizes a single external value into the store and\n * cleans it up (sets to `undefined`) on unmount.\n *\n * Note that the while the value in `state` is updated immediately, the value returned\n * by `useState` is updated before the next render (similarly to React's `useState`).\n */\n useSyncedValueWithCleanup(key, value) {\n // eslint-disable-next-line consistent-this\n const store = this;\n useIsoLayoutEffect(() => {\n if (store.state[key] !== value) {\n store.set(key, value);\n }\n return () => {\n store.set(key, undefined);\n };\n }, [store, key, value]);\n }\n\n /**\n * Synchronizes multiple external values into the store.\n *\n * Note that the while the values in `state` are updated immediately, the values returned\n * by `useState` are updated before the next render (similarly to React's `useState`).\n */\n useSyncedValues(statePart) {\n // eslint-disable-next-line consistent-this\n const store = this;\n if (process.env.NODE_ENV !== 'production') {\n // Check that an object with the same shape is passed on every render\n React.useDebugValue(statePart, p => Object.keys(p));\n const keys = React.useRef(Object.keys(statePart)).current;\n const nextKeys = Object.keys(statePart);\n if (keys.length !== nextKeys.length || keys.some((key, index) => key !== nextKeys[index])) {\n console.error('ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.');\n }\n }\n const dependencies = Object.values(statePart);\n useIsoLayoutEffect(() => {\n store.update(statePart);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store, ...dependencies]);\n }\n\n /**\n * Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`\n * is non-undefined, the store's state at `key` is updated to match `controlled`.\n */\n useControlledProp(key, controlled) {\n React.useDebugValue(key);\n // eslint-disable-next-line consistent-this\n const store = this;\n const isControlled = controlled !== undefined;\n useIsoLayoutEffect(() => {\n if (isControlled && !Object.is(store.state[key], controlled)) {\n // Set the internal state to match the controlled value.\n store.setState({\n ...store.state,\n [key]: controlled\n });\n }\n }, [store, key, controlled, isControlled]);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n const cache = this.controlledValues ??= new Map();\n if (!cache.has(key)) {\n cache.set(key, isControlled);\n }\n const previouslyControlled = cache.get(key);\n if (previouslyControlled !== undefined && previouslyControlled !== isControlled) {\n console.error(`A component is changing the ${isControlled ? '' : 'un'}controlled state of ${key.toString()} to be ${isControlled ? 'un' : ''}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);\n }\n }\n }\n\n /** Gets the current value from the store using a selector with the provided key.\n *\n * @param key Key of the selector to use.\n */\n\n select(key, a1, a2, a3) {\n const selector = this.selectors[key];\n return selector(this.state, a1, a2, a3);\n }\n\n /**\n * Returns a value from the store's state using a selector function.\n * Used to subscribe to specific parts of the state.\n * This methods causes a rerender whenever the selected state changes.\n *\n * @param key Key of the selector to use.\n */\n\n useState(key, a1, a2, a3) {\n React.useDebugValue(key);\n return useStore(this, this.selectors[key], a1, a2, a3);\n }\n\n /**\n * Wraps a function with `useStableCallback` to ensure it has a stable reference\n * and assigns it to the context.\n *\n * @param key Key of the event callback. Must be a function in the context.\n * @param fn Function to assign.\n */\n useContextCallback(key, fn) {\n React.useDebugValue(key);\n const stableFunction = useStableCallback(fn ?? NOOP);\n this.context[key] = stableFunction;\n }\n\n /**\n * Returns a stable setter function for a specific key in the store's state.\n * It's commonly used to pass as a ref callback to React elements.\n *\n * @param key Key of the state to set.\n */\n useStateSetter(key) {\n const ref = React.useRef(undefined);\n if (ref.current === undefined) {\n ref.current = value => {\n this.set(key, value);\n };\n }\n return ref.current;\n }\n\n /**\n * Observes changes derived from the store's selectors and calls the listener when the selected value changes.\n *\n * @param key Key of the selector to observe.\n * @param listener Listener function called when the selector result changes.\n */\n\n observe(selector, listener) {\n let selectFn;\n if (typeof selector === 'function') {\n selectFn = selector;\n } else {\n selectFn = this.selectors[selector];\n }\n let prevValue = selectFn(this.state);\n listener(prevValue, prevValue, this);\n return this.subscribe(nextState => {\n const nextValue = selectFn(nextState);\n if (!Object.is(prevValue, nextValue)) {\n const oldValue = prevValue;\n prevValue = nextValue;\n listener(nextValue, oldValue, this);\n }\n });\n }\n}"],"names":["ReactStore","Store","state","context","selectors","key","value","React","store","useIsoLayoutEffect","statePart","p","keys","nextKeys","index","dependencies","controlled","isControlled","cache","previouslyControlled","a1","a2","a3","selector","useStore","fn","stableFunction","useStableCallback","NOOP","ref","listener","selectFn","prevValue","nextState","nextValue","oldValue"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index359.js
CHANGED
|
@@ -1,25 +1,83 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
composite: t = !1,
|
|
7
|
-
tabIndex: i = 0,
|
|
8
|
-
isNativeButton: s
|
|
9
|
-
} = l, n = t && e !== !1, b = t && e === !1;
|
|
1
|
+
import { EMPTY_OBJECT as r } from "./index204.js";
|
|
2
|
+
import { FloatingRootStore as l } from "./index388.js";
|
|
3
|
+
import { getEmptyRootContext as d } from "./index391.js";
|
|
4
|
+
import { createSelector as o } from "./index361.js";
|
|
5
|
+
function P() {
|
|
10
6
|
return {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
open: !1,
|
|
8
|
+
openProp: void 0,
|
|
9
|
+
mounted: !1,
|
|
10
|
+
transitionStatus: void 0,
|
|
11
|
+
floatingRootContext: d(),
|
|
12
|
+
floatingId: void 0,
|
|
13
|
+
triggerCount: 0,
|
|
14
|
+
preventUnmountingOnClose: !1,
|
|
15
|
+
payload: void 0,
|
|
16
|
+
activeTriggerId: null,
|
|
17
|
+
activeTriggerElement: null,
|
|
18
|
+
triggerIdProp: void 0,
|
|
19
|
+
popupElement: null,
|
|
20
|
+
positionerElement: null,
|
|
21
|
+
activeTriggerProps: r,
|
|
22
|
+
inactiveTriggerProps: r,
|
|
23
|
+
popupProps: r
|
|
20
24
|
};
|
|
21
25
|
}
|
|
26
|
+
function T(e, n, g = !1) {
|
|
27
|
+
return new l({
|
|
28
|
+
open: !1,
|
|
29
|
+
transitionStatus: void 0,
|
|
30
|
+
floatingElement: null,
|
|
31
|
+
referenceElement: null,
|
|
32
|
+
triggerElements: e,
|
|
33
|
+
floatingId: n,
|
|
34
|
+
syncOnly: !0,
|
|
35
|
+
nested: g,
|
|
36
|
+
onOpenChange: void 0
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const t = o((e) => e.triggerIdProp ?? e.activeTriggerId), i = o((e) => e.openProp ?? e.open), p = o((e) => (e.popupElement?.id ?? e.floatingId) || void 0);
|
|
40
|
+
function u(e, n) {
|
|
41
|
+
return n !== void 0 && i(e) && t(e) === n;
|
|
42
|
+
}
|
|
43
|
+
function f(e, n) {
|
|
44
|
+
return u(e, n) ? !0 : n !== void 0 && i(e) && t(e) == null && e.triggerCount === 1;
|
|
45
|
+
}
|
|
46
|
+
const v = {
|
|
47
|
+
open: i,
|
|
48
|
+
mounted: o((e) => e.mounted),
|
|
49
|
+
transitionStatus: o((e) => e.transitionStatus),
|
|
50
|
+
floatingRootContext: o((e) => e.floatingRootContext),
|
|
51
|
+
triggerCount: o((e) => e.triggerCount),
|
|
52
|
+
preventUnmountingOnClose: o((e) => e.preventUnmountingOnClose),
|
|
53
|
+
payload: o((e) => e.payload),
|
|
54
|
+
activeTriggerId: t,
|
|
55
|
+
activeTriggerElement: o((e) => e.mounted ? e.activeTriggerElement : null),
|
|
56
|
+
popupId: p,
|
|
57
|
+
/**
|
|
58
|
+
* Whether the trigger with the given ID was used to open the popup.
|
|
59
|
+
*/
|
|
60
|
+
isTriggerActive: o((e, n) => n !== void 0 && t(e) === n),
|
|
61
|
+
/**
|
|
62
|
+
* Whether the popup is open and was activated by a trigger with the given ID.
|
|
63
|
+
*/
|
|
64
|
+
isOpenedByTrigger: o((e, n) => u(e, n)),
|
|
65
|
+
/**
|
|
66
|
+
* Whether the popup is mounted and was activated by a trigger with the given ID.
|
|
67
|
+
*/
|
|
68
|
+
isMountedByTrigger: o((e, n) => n !== void 0 && t(e) === n && e.mounted),
|
|
69
|
+
triggerProps: o((e, n) => n ? e.activeTriggerProps : e.inactiveTriggerProps),
|
|
70
|
+
/**
|
|
71
|
+
* Popup id for the trigger that currently owns the open popup.
|
|
72
|
+
*/
|
|
73
|
+
triggerPopupId: o((e, n) => f(e, n) ? p(e) : void 0),
|
|
74
|
+
popupProps: o((e) => e.popupProps),
|
|
75
|
+
popupElement: o((e) => e.popupElement),
|
|
76
|
+
positionerElement: o((e) => e.positionerElement)
|
|
77
|
+
};
|
|
22
78
|
export {
|
|
23
|
-
|
|
79
|
+
P as createInitialPopupStoreState,
|
|
80
|
+
T as createPopupFloatingRootContext,
|
|
81
|
+
v as popupStoreSelectors
|
|
24
82
|
};
|
|
25
83
|
//# sourceMappingURL=index359.js.map
|
package/dist/index359.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index359.js","sources":["../../../node_modules/@base-ui/react/utils/
|
|
1
|
+
{"version":3,"file":"index359.js","sources":["../../../node_modules/@base-ui/react/utils/popups/store.mjs"],"sourcesContent":["import { createSelector } from '@base-ui/utils/store';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { FloatingRootStore } from \"../../floating-ui-react/components/FloatingRootStore.mjs\";\nimport { getEmptyRootContext } from \"../../floating-ui-react/utils/getEmptyRootContext.mjs\";\n\n/**\n * State common to all popup stores.\n */\n\nexport function createInitialPopupStoreState() {\n return {\n open: false,\n openProp: undefined,\n mounted: false,\n transitionStatus: undefined,\n floatingRootContext: getEmptyRootContext(),\n floatingId: undefined,\n triggerCount: 0,\n preventUnmountingOnClose: false,\n payload: undefined,\n activeTriggerId: null,\n activeTriggerElement: null,\n triggerIdProp: undefined,\n popupElement: null,\n positionerElement: null,\n activeTriggerProps: EMPTY_OBJECT,\n inactiveTriggerProps: EMPTY_OBJECT,\n popupProps: EMPTY_OBJECT\n };\n}\nexport function createPopupFloatingRootContext(triggerElements, floatingId, nested = false) {\n return new FloatingRootStore({\n open: false,\n transitionStatus: undefined,\n floatingElement: null,\n referenceElement: null,\n triggerElements,\n floatingId,\n syncOnly: true,\n nested,\n onOpenChange: undefined\n });\n}\nconst activeTriggerIdSelector = createSelector(state => state.triggerIdProp ?? state.activeTriggerId);\nconst openSelector = createSelector(state => state.openProp ?? state.open);\nconst popupIdSelector = createSelector(state => {\n const popupId = state.popupElement?.id ?? state.floatingId;\n return popupId || undefined;\n});\nfunction triggerOwnsOpenPopup(state, triggerId) {\n return triggerId !== undefined && openSelector(state) && activeTriggerIdSelector(state) === triggerId;\n}\nfunction triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) {\n if (triggerOwnsOpenPopup(state, triggerId)) {\n return true;\n }\n return triggerId !== undefined && openSelector(state) && activeTriggerIdSelector(state) == null && state.triggerCount === 1;\n}\nexport const popupStoreSelectors = {\n open: openSelector,\n mounted: createSelector(state => state.mounted),\n transitionStatus: createSelector(state => state.transitionStatus),\n floatingRootContext: createSelector(state => state.floatingRootContext),\n triggerCount: createSelector(state => state.triggerCount),\n preventUnmountingOnClose: createSelector(state => state.preventUnmountingOnClose),\n payload: createSelector(state => state.payload),\n activeTriggerId: activeTriggerIdSelector,\n activeTriggerElement: createSelector(state => state.mounted ? state.activeTriggerElement : null),\n popupId: popupIdSelector,\n /**\n * Whether the trigger with the given ID was used to open the popup.\n */\n isTriggerActive: createSelector((state, triggerId) => triggerId !== undefined && activeTriggerIdSelector(state) === triggerId),\n /**\n * Whether the popup is open and was activated by a trigger with the given ID.\n */\n isOpenedByTrigger: createSelector((state, triggerId) => triggerOwnsOpenPopup(state, triggerId)),\n /**\n * Whether the popup is mounted and was activated by a trigger with the given ID.\n */\n isMountedByTrigger: createSelector((state, triggerId) => triggerId !== undefined && activeTriggerIdSelector(state) === triggerId && state.mounted),\n triggerProps: createSelector((state, isActive) => isActive ? state.activeTriggerProps : state.inactiveTriggerProps),\n /**\n * Popup id for the trigger that currently owns the open popup.\n */\n triggerPopupId: createSelector((state, triggerId) => triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) ? popupIdSelector(state) : undefined),\n popupProps: createSelector(state => state.popupProps),\n popupElement: createSelector(state => state.popupElement),\n positionerElement: createSelector(state => state.positionerElement)\n};"],"names":["createInitialPopupStoreState","getEmptyRootContext","EMPTY_OBJECT","createPopupFloatingRootContext","triggerElements","floatingId","nested","FloatingRootStore","activeTriggerIdSelector","createSelector","state","openSelector","popupIdSelector","triggerOwnsOpenPopup","triggerId","triggerOwnsOpenPopupOrIsOnlyTrigger","popupStoreSelectors","isActive"],"mappings":";;;;AASO,SAASA,IAA+B;AAC7C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,qBAAqBC,EAAmB;AAAA,IACxC,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,0BAA0B;AAAA,IAC1B,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoBC;AAAA,IACpB,sBAAsBA;AAAA,IACtB,YAAYA;AAAA,EAChB;AACA;AACO,SAASC,EAA+BC,GAAiBC,GAAYC,IAAS,IAAO;AAC1F,SAAO,IAAIC,EAAkB;AAAA,IAC3B,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,iBAAAH;AAAA,IACA,YAAAC;AAAA,IACA,UAAU;AAAA,IACV,QAAAC;AAAA,IACA,cAAc;AAAA,EAClB,CAAG;AACH;AACA,MAAME,IAA0BC,EAAe,CAAAC,MAASA,EAAM,iBAAiBA,EAAM,eAAe,GAC9FC,IAAeF,EAAe,CAAAC,MAASA,EAAM,YAAYA,EAAM,IAAI,GACnEE,IAAkBH,EAAe,CAAAC,OACrBA,EAAM,cAAc,MAAMA,EAAM,eAC9B,MACnB;AACD,SAASG,EAAqBH,GAAOI,GAAW;AAC9C,SAAOA,MAAc,UAAaH,EAAaD,CAAK,KAAKF,EAAwBE,CAAK,MAAMI;AAC9F;AACA,SAASC,EAAoCL,GAAOI,GAAW;AAC7D,SAAID,EAAqBH,GAAOI,CAAS,IAChC,KAEFA,MAAc,UAAaH,EAAaD,CAAK,KAAKF,EAAwBE,CAAK,KAAK,QAAQA,EAAM,iBAAiB;AAC5H;AACY,MAACM,IAAsB;AAAA,EACjC,MAAML;AAAA,EACN,SAASF,EAAe,CAAAC,MAASA,EAAM,OAAO;AAAA,EAC9C,kBAAkBD,EAAe,CAAAC,MAASA,EAAM,gBAAgB;AAAA,EAChE,qBAAqBD,EAAe,CAAAC,MAASA,EAAM,mBAAmB;AAAA,EACtE,cAAcD,EAAe,CAAAC,MAASA,EAAM,YAAY;AAAA,EACxD,0BAA0BD,EAAe,CAAAC,MAASA,EAAM,wBAAwB;AAAA,EAChF,SAASD,EAAe,CAAAC,MAASA,EAAM,OAAO;AAAA,EAC9C,iBAAiBF;AAAA,EACjB,sBAAsBC,EAAe,CAAAC,MAASA,EAAM,UAAUA,EAAM,uBAAuB,IAAI;AAAA,EAC/F,SAASE;AAAA;AAAA;AAAA;AAAA,EAIT,iBAAiBH,EAAe,CAACC,GAAOI,MAAcA,MAAc,UAAaN,EAAwBE,CAAK,MAAMI,CAAS;AAAA;AAAA;AAAA;AAAA,EAI7H,mBAAmBL,EAAe,CAACC,GAAOI,MAAcD,EAAqBH,GAAOI,CAAS,CAAC;AAAA;AAAA;AAAA;AAAA,EAI9F,oBAAoBL,EAAe,CAACC,GAAOI,MAAcA,MAAc,UAAaN,EAAwBE,CAAK,MAAMI,KAAaJ,EAAM,OAAO;AAAA,EACjJ,cAAcD,EAAe,CAACC,GAAOO,MAAaA,IAAWP,EAAM,qBAAqBA,EAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAIlH,gBAAgBD,EAAe,CAACC,GAAOI,MAAcC,EAAoCL,GAAOI,CAAS,IAAIF,EAAgBF,CAAK,IAAI,MAAS;AAAA,EAC/I,YAAYD,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,cAAcD,EAAe,CAAAC,MAASA,EAAM,YAAY;AAAA,EACxD,mBAAmBD,EAAe,CAAAC,MAASA,EAAM,iBAAiB;AACpE;","x_google_ignoreList":[0]}
|