@wix/site-ui 1.30.0 → 1.32.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/1268.js +99 -0
- package/dist/1279.js +7 -0
- package/dist/1457.js +10 -0
- package/dist/1477.js +106 -0
- package/dist/1500.js +111 -0
- package/dist/167.js +6 -0
- package/dist/2274.js +34 -0
- package/dist/2287.js +17 -0
- package/dist/2418.js +31 -0
- package/dist/2801.js +20 -0
- package/dist/285.js +86 -0
- package/dist/2861.js +6 -0
- package/dist/3020.js +7 -0
- package/dist/3021.js +72 -0
- package/dist/3056.js +229 -0
- package/dist/3140.js +4 -0
- package/dist/3248.js +307 -0
- package/dist/3296.js +4 -0
- package/dist/3319.js +400 -0
- package/dist/3395.js +4 -0
- package/dist/3485.js +854 -0
- package/dist/353.js +14 -0
- package/dist/3670.js +418 -0
- package/dist/3829.js +113 -0
- package/dist/4026.js +12 -0
- package/dist/4143.js +46 -0
- package/dist/42.js +32 -0
- package/dist/4281.js +30 -0
- package/dist/4346.js +2 -0
- package/dist/4388.js +418 -0
- package/dist/4490.js +32 -0
- package/dist/4495.js +9 -0
- package/dist/4549.js +24 -0
- package/dist/4586.js +41 -0
- package/dist/4586.js.LICENSE.txt +19 -0
- package/dist/4707.js +19 -0
- package/dist/4723.js +7 -0
- package/dist/4745.js +7 -0
- package/dist/4768.js +35 -0
- package/dist/4922.js +15 -0
- package/dist/5036.js +17 -0
- package/dist/5085.js +20 -0
- package/dist/5299.js +597 -0
- package/dist/5659.js +4 -0
- package/dist/5778.js +10 -0
- package/dist/5864.js +86 -0
- package/dist/5992.js +913 -0
- package/dist/5992.js.LICENSE.txt +19 -0
- package/dist/6003.js +10 -0
- package/dist/6046.js +29 -0
- package/dist/6089.js +2355 -0
- package/dist/6107.js +10 -0
- package/dist/6247.js +20 -0
- package/dist/6270.js +487 -0
- package/dist/6329.js +32 -0
- package/dist/6330.js +30 -0
- package/dist/6499.js +7 -0
- package/dist/6535.js +71 -0
- package/dist/6588.js +382 -0
- package/dist/6706.js +16 -0
- package/dist/6825.js +7 -0
- package/dist/6882.js +1562 -0
- package/dist/6914.js +30 -0
- package/dist/7021.js +13 -0
- package/dist/7366.js +83 -0
- package/dist/7373.js +25 -0
- package/dist/7541.js +25 -0
- package/dist/7564.js +10 -0
- package/dist/7642.js +20 -0
- package/dist/7725.js +10 -0
- package/dist/7871.js +38 -0
- package/dist/8052.js +352 -0
- package/dist/8106.js +238 -0
- package/dist/8171.js +346 -0
- package/dist/8225.js +21 -0
- package/dist/8272.js +333 -0
- package/dist/8527.js +58 -0
- package/dist/8724.js +10 -0
- package/dist/8750.js +1920 -0
- package/dist/8758.js +43 -0
- package/dist/880.js +149 -0
- package/dist/8935.js +8 -0
- package/dist/8960.js +22 -0
- package/dist/8971.js +40 -0
- package/dist/8979.js +10 -0
- package/dist/8996.js +71 -0
- package/dist/904.js +121 -0
- package/dist/9048.js +52 -0
- package/dist/9087.js +256 -0
- package/dist/9189.js +158 -0
- package/dist/9255.js +136 -0
- package/dist/9352.js +148 -0
- package/dist/951.js +22 -0
- package/dist/9635.js +22 -0
- package/dist/9829.js +4 -0
- package/dist/9863.js +8 -0
- package/dist/Accordion/index.d.ts +569 -12
- package/dist/Accordion/index.js +423 -8
- package/dist/AlertDialog/index.d.ts +1417 -18
- package/dist/AlertDialog/index.js +34 -14
- package/dist/Autocomplete/index.d.ts +1861 -38
- package/dist/Autocomplete/index.js +98 -24
- package/dist/Avatar/index.d.ts +129 -7
- package/dist/Avatar/index.js +149 -6
- package/dist/Breadcrumbs/index.d.ts +960 -7
- package/dist/Breadcrumbs/index.js +5 -5
- package/dist/Button/index.d.ts +88 -6
- package/dist/Button/index.js +27 -3
- package/dist/Checkbox/index.d.ts +425 -5
- package/dist/Checkbox/index.js +45 -5
- package/dist/CheckboxGroup/index.d.ts +318 -3
- package/dist/CheckboxGroup/index.js +166 -3
- package/dist/Collapsible/index.d.ts +377 -7
- package/dist/Collapsible/index.js +160 -6
- package/dist/Combobox/index.d.ts +1984 -48
- package/dist/Combobox/index.js +352 -29
- package/dist/ContextMenu/index.d.ts +2340 -36
- package/dist/ContextMenu/index.js +197 -22
- package/dist/Dialog/index.d.ts +1355 -18
- package/dist/Dialog/index.js +16 -14
- package/dist/Drawer/index.d.ts +1653 -18
- package/dist/Drawer/index.js +2797 -20
- package/dist/Field/index.d.ts +655 -15
- package/dist/Field/index.js +677 -10
- package/dist/Fieldset/index.d.ts +94 -5
- package/dist/Fieldset/index.js +68 -5
- package/dist/Form/index.d.ts +331 -2
- package/dist/Form/index.js +106 -3
- package/dist/Input/index.d.ts +692 -3
- package/dist/Input/index.js +10 -3
- package/dist/Menu/index.d.ts +2301 -36
- package/dist/Menu/index.js +365 -26
- package/dist/Menubar/index.d.ts +2301 -3
- package/dist/Menubar/index.js +105 -3
- package/dist/Meter/index.d.ts +175 -11
- package/dist/Meter/index.js +129 -9
- package/dist/NavigationMenu/index.d.ts +978 -28
- package/dist/NavigationMenu/index.js +1034 -17
- package/dist/NumberField/index.d.ts +612 -15
- package/dist/NumberField/index.js +1409 -11
- package/dist/Popover/index.d.ts +1655 -20
- package/dist/Popover/index.js +792 -17
- package/dist/PreviewCard/index.d.ts +1523 -14
- package/dist/PreviewCard/index.js +679 -14
- package/dist/Progress/index.d.ts +183 -11
- package/dist/Progress/index.js +181 -9
- package/dist/Radio/index.d.ts +185 -6
- package/dist/Radio/index.js +253 -6
- package/dist/RadioGroup/index.d.ts +341 -2
- package/dist/RadioGroup/index.js +154 -3
- package/dist/ScrollArea/index.d.ts +265 -13
- package/dist/ScrollArea/index.js +892 -10
- package/dist/Select/index.d.ts +1493 -38
- package/dist/Select/index.js +1824 -23
- package/dist/Separator/index.d.ts +80 -6
- package/dist/Separator/index.js +3 -3
- package/dist/Slider/index.d.ts +678 -16
- package/dist/Slider/index.js +1199 -11
- package/dist/Switch/index.d.ts +393 -5
- package/dist/Switch/index.js +208 -6
- package/dist/Tabs/index.d.ts +523 -12
- package/dist/Tabs/index.js +685 -9
- package/dist/Toggle/index.d.ts +305 -2
- package/dist/Toggle/index.js +76 -3
- package/dist/ToggleGroup/index.d.ts +316 -2
- package/dist/ToggleGroup/index.js +102 -3
- package/dist/Toolbar/index.d.ts +282 -13
- package/dist/Toolbar/index.js +230 -9
- package/dist/Tooltip/index.d.ts +1572 -14
- package/dist/Tooltip/index.js +965 -14
- package/dist/index.d.ts +12749 -652
- package/dist/rslib-runtime.js +18 -0
- package/package.json +3 -3
package/dist/8758.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { isElement, isHTMLElement } from "./3829.js";
|
|
2
|
+
import { contains } from "./4549.js";
|
|
3
|
+
import { TYPEABLE_SELECTOR, FOCUSABLE_ATTRIBUTE } from "./4745.js";
|
|
4
|
+
import { isJSDOM } from "./8971.js";
|
|
5
|
+
function isTargetInsideEnabledTrigger(target, triggerElements) {
|
|
6
|
+
if (!isElement(target)) return false;
|
|
7
|
+
const targetElement = target;
|
|
8
|
+
if (triggerElements.hasElement(targetElement)) return !targetElement.hasAttribute('data-trigger-disabled');
|
|
9
|
+
for (const [, trigger] of triggerElements.entries())if (contains(trigger, targetElement)) return !trigger.hasAttribute('data-trigger-disabled');
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
function isEventTargetWithin(event, node) {
|
|
13
|
+
if (null == node) return false;
|
|
14
|
+
if ('composedPath' in event) return event.composedPath().includes(node);
|
|
15
|
+
const eventAgain = event;
|
|
16
|
+
return null != eventAgain.target && node.contains(eventAgain.target);
|
|
17
|
+
}
|
|
18
|
+
function isRootElement(element) {
|
|
19
|
+
return element.matches('html,body');
|
|
20
|
+
}
|
|
21
|
+
function isTypeableElement(element) {
|
|
22
|
+
return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
|
|
23
|
+
}
|
|
24
|
+
function isInteractiveElement(element) {
|
|
25
|
+
return element?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${TYPEABLE_SELECTOR}`) != null;
|
|
26
|
+
}
|
|
27
|
+
function isTypeableCombobox(element) {
|
|
28
|
+
if (!element) return false;
|
|
29
|
+
return 'combobox' === element.getAttribute('role') && isTypeableElement(element);
|
|
30
|
+
}
|
|
31
|
+
function matchesFocusVisible(element) {
|
|
32
|
+
if (!element || isJSDOM) return true;
|
|
33
|
+
try {
|
|
34
|
+
return element.matches(':focus-visible');
|
|
35
|
+
} catch (_e) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function getFloatingFocusElement(floatingElement) {
|
|
40
|
+
if (!floatingElement) return null;
|
|
41
|
+
return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(`[${FOCUSABLE_ATTRIBUTE}]`) || floatingElement;
|
|
42
|
+
}
|
|
43
|
+
export { getFloatingFocusElement, isEventTargetWithin, isInteractiveElement, isRootElement, isTargetInsideEnabledTrigger, isTypeableCombobox, isTypeableElement, matchesFocusVisible };
|
package/dist/880.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { useIsoLayoutEffect } from "./6499.js";
|
|
2
|
+
import { AnimationFrame, useAnimationFrame } from "./8996.js";
|
|
3
|
+
import { useStableCallback } from "./7541.js";
|
|
4
|
+
import * as __rspack_external_react from "react";
|
|
5
|
+
import * as __rspack_external_react_dom_7136dc57 from "react-dom";
|
|
6
|
+
function useTransitionStatus(open, enableIdleState = false, deferEndingState = false) {
|
|
7
|
+
const [transitionStatus, setTransitionStatus] = __rspack_external_react.useState(open && enableIdleState ? 'idle' : void 0);
|
|
8
|
+
const [mounted, setMounted] = __rspack_external_react.useState(open);
|
|
9
|
+
if (open && !mounted) {
|
|
10
|
+
setMounted(true);
|
|
11
|
+
setTransitionStatus('starting');
|
|
12
|
+
}
|
|
13
|
+
if (!open && mounted && 'ending' !== transitionStatus && !deferEndingState) setTransitionStatus('ending');
|
|
14
|
+
if (!open && !mounted && 'ending' === transitionStatus) setTransitionStatus(void 0);
|
|
15
|
+
useIsoLayoutEffect(()=>{
|
|
16
|
+
if (!open && mounted && 'ending' !== transitionStatus && deferEndingState) {
|
|
17
|
+
const frame = AnimationFrame.request(()=>{
|
|
18
|
+
setTransitionStatus('ending');
|
|
19
|
+
});
|
|
20
|
+
return ()=>{
|
|
21
|
+
AnimationFrame.cancel(frame);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}, [
|
|
25
|
+
open,
|
|
26
|
+
mounted,
|
|
27
|
+
transitionStatus,
|
|
28
|
+
deferEndingState
|
|
29
|
+
]);
|
|
30
|
+
useIsoLayoutEffect(()=>{
|
|
31
|
+
if (!open || enableIdleState) return;
|
|
32
|
+
const frame = AnimationFrame.request(()=>{
|
|
33
|
+
setTransitionStatus(void 0);
|
|
34
|
+
});
|
|
35
|
+
return ()=>{
|
|
36
|
+
AnimationFrame.cancel(frame);
|
|
37
|
+
};
|
|
38
|
+
}, [
|
|
39
|
+
enableIdleState,
|
|
40
|
+
open
|
|
41
|
+
]);
|
|
42
|
+
useIsoLayoutEffect(()=>{
|
|
43
|
+
if (!open || !enableIdleState) return;
|
|
44
|
+
if (open && mounted && 'idle' !== transitionStatus) setTransitionStatus('starting');
|
|
45
|
+
const frame = AnimationFrame.request(()=>{
|
|
46
|
+
setTransitionStatus('idle');
|
|
47
|
+
});
|
|
48
|
+
return ()=>{
|
|
49
|
+
AnimationFrame.cancel(frame);
|
|
50
|
+
};
|
|
51
|
+
}, [
|
|
52
|
+
enableIdleState,
|
|
53
|
+
open,
|
|
54
|
+
mounted,
|
|
55
|
+
transitionStatus
|
|
56
|
+
]);
|
|
57
|
+
return {
|
|
58
|
+
mounted,
|
|
59
|
+
setMounted,
|
|
60
|
+
transitionStatus
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
let stateAttributesMapping_TransitionStatusDataAttributes = /*#__PURE__*/ function(TransitionStatusDataAttributes) {
|
|
64
|
+
TransitionStatusDataAttributes["startingStyle"] = "data-starting-style";
|
|
65
|
+
TransitionStatusDataAttributes["endingStyle"] = "data-ending-style";
|
|
66
|
+
return TransitionStatusDataAttributes;
|
|
67
|
+
}({});
|
|
68
|
+
const STARTING_HOOK = {
|
|
69
|
+
[stateAttributesMapping_TransitionStatusDataAttributes.startingStyle]: ''
|
|
70
|
+
};
|
|
71
|
+
const ENDING_HOOK = {
|
|
72
|
+
[stateAttributesMapping_TransitionStatusDataAttributes.endingStyle]: ''
|
|
73
|
+
};
|
|
74
|
+
const transitionStatusMapping = {
|
|
75
|
+
transitionStatus (value) {
|
|
76
|
+
if ('starting' === value) return STARTING_HOOK;
|
|
77
|
+
if ('ending' === value) return ENDING_HOOK;
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
function resolveRef(maybeRef) {
|
|
82
|
+
if (null == maybeRef) return maybeRef;
|
|
83
|
+
return 'current' in maybeRef ? maybeRef.current : maybeRef;
|
|
84
|
+
}
|
|
85
|
+
function useAnimationsFinished(elementOrRef, waitForStartingStyleRemoved = false, treatAbortedAsFinished = true) {
|
|
86
|
+
const frame = useAnimationFrame();
|
|
87
|
+
return useStableCallback((fnToExecute, signal = null)=>{
|
|
88
|
+
frame.cancel();
|
|
89
|
+
const element = resolveRef(elementOrRef);
|
|
90
|
+
if (null == element) return;
|
|
91
|
+
const resolvedElement = element;
|
|
92
|
+
const done = ()=>{
|
|
93
|
+
__rspack_external_react_dom_7136dc57.flushSync(fnToExecute);
|
|
94
|
+
};
|
|
95
|
+
if ('function' != typeof resolvedElement.getAnimations || globalThis.BASE_UI_ANIMATIONS_DISABLED) return void fnToExecute();
|
|
96
|
+
function exec() {
|
|
97
|
+
Promise.all(resolvedElement.getAnimations().map((animation)=>animation.finished)).then(()=>{
|
|
98
|
+
if (!signal?.aborted) done();
|
|
99
|
+
}).catch(()=>{
|
|
100
|
+
if (treatAbortedAsFinished) {
|
|
101
|
+
if (!signal?.aborted) done();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const currentAnimations = resolvedElement.getAnimations();
|
|
105
|
+
if (!signal?.aborted && currentAnimations.length > 0 && currentAnimations.some((animation)=>animation.pending || 'finished' !== animation.playState)) exec();
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (waitForStartingStyleRemoved) {
|
|
109
|
+
const startingStyleAttribute = stateAttributesMapping_TransitionStatusDataAttributes.startingStyle;
|
|
110
|
+
if (!resolvedElement.hasAttribute(startingStyleAttribute)) return void frame.request(exec);
|
|
111
|
+
const attributeObserver = new MutationObserver(()=>{
|
|
112
|
+
if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
|
|
113
|
+
attributeObserver.disconnect();
|
|
114
|
+
exec();
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
attributeObserver.observe(resolvedElement, {
|
|
118
|
+
attributes: true,
|
|
119
|
+
attributeFilter: [
|
|
120
|
+
startingStyleAttribute
|
|
121
|
+
]
|
|
122
|
+
});
|
|
123
|
+
signal?.addEventListener('abort', ()=>attributeObserver.disconnect(), {
|
|
124
|
+
once: true
|
|
125
|
+
});
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
frame.request(exec);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function useOpenChangeComplete(parameters) {
|
|
132
|
+
const { enabled = true, open, ref, onComplete: onCompleteParam } = parameters;
|
|
133
|
+
const onComplete = useStableCallback(onCompleteParam);
|
|
134
|
+
const runOnceAnimationsFinish = useAnimationsFinished(ref, open, false);
|
|
135
|
+
__rspack_external_react.useEffect(()=>{
|
|
136
|
+
if (!enabled) return;
|
|
137
|
+
const abortController = new AbortController();
|
|
138
|
+
runOnceAnimationsFinish(onComplete, abortController.signal);
|
|
139
|
+
return ()=>{
|
|
140
|
+
abortController.abort();
|
|
141
|
+
};
|
|
142
|
+
}, [
|
|
143
|
+
enabled,
|
|
144
|
+
open,
|
|
145
|
+
onComplete,
|
|
146
|
+
runOnceAnimationsFinish
|
|
147
|
+
]);
|
|
148
|
+
}
|
|
149
|
+
export { resolveRef, stateAttributesMapping_TransitionStatusDataAttributes, transitionStatusMapping, useAnimationsFinished, useOpenChangeComplete, useTransitionStatus };
|
package/dist/8935.js
ADDED
package/dist/8960.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useFloatingPortalNode } from "./4388.js";
|
|
3
|
+
import * as __rspack_external_react from "react";
|
|
4
|
+
import * as __rspack_external_react_dom_7136dc57 from "react-dom";
|
|
5
|
+
const FloatingPortalLite_FloatingPortalLite = /*#__PURE__*/ __rspack_external_react.forwardRef(function(componentProps, forwardedRef) {
|
|
6
|
+
const { children, container, className, render, style, ...elementProps } = componentProps;
|
|
7
|
+
const { portalNode, portalSubtree } = useFloatingPortalNode({
|
|
8
|
+
container,
|
|
9
|
+
ref: forwardedRef,
|
|
10
|
+
componentProps,
|
|
11
|
+
elementProps
|
|
12
|
+
});
|
|
13
|
+
if (!portalSubtree && !portalNode) return null;
|
|
14
|
+
return /*#__PURE__*/ jsxs(__rspack_external_react.Fragment, {
|
|
15
|
+
children: [
|
|
16
|
+
portalSubtree,
|
|
17
|
+
portalNode && /*#__PURE__*/ __rspack_external_react_dom_7136dc57.createPortal(children, portalNode)
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
if ("production" !== process.env.NODE_ENV) FloatingPortalLite_FloatingPortalLite.displayName = "FloatingPortalLite";
|
|
22
|
+
export { FloatingPortalLite_FloatingPortalLite };
|
package/dist/8971.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const hasNavigator = "u" > typeof navigator;
|
|
2
|
+
const nav = getNavigatorData();
|
|
3
|
+
const platform = getPlatform();
|
|
4
|
+
const userAgent = getUserAgent();
|
|
5
|
+
const isWebKit = "u" > typeof CSS && CSS.supports ? CSS.supports('-webkit-backdrop-filter:none') : false;
|
|
6
|
+
const isIOS = 'MacIntel' === nav.platform && nav.maxTouchPoints > 1 ? true : /iP(hone|ad|od)|iOS/.test(nav.platform);
|
|
7
|
+
const isFirefox = hasNavigator && /firefox/i.test(userAgent);
|
|
8
|
+
const isSafari = hasNavigator && /apple/i.test(navigator.vendor);
|
|
9
|
+
hasNavigator && /Edg/i.test(userAgent);
|
|
10
|
+
const isAndroid = hasNavigator && /android/i.test(platform) || /android/i.test(userAgent);
|
|
11
|
+
const isMac = hasNavigator && platform.toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;
|
|
12
|
+
const isJSDOM = userAgent.includes('jsdom/');
|
|
13
|
+
function getNavigatorData() {
|
|
14
|
+
if (!hasNavigator) return {
|
|
15
|
+
platform: '',
|
|
16
|
+
maxTouchPoints: -1
|
|
17
|
+
};
|
|
18
|
+
const uaData = navigator.userAgentData;
|
|
19
|
+
if (uaData?.platform) return {
|
|
20
|
+
platform: uaData.platform,
|
|
21
|
+
maxTouchPoints: navigator.maxTouchPoints
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
platform: navigator.platform ?? '',
|
|
25
|
+
maxTouchPoints: navigator.maxTouchPoints ?? -1
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function getUserAgent() {
|
|
29
|
+
if (!hasNavigator) return '';
|
|
30
|
+
const uaData = navigator.userAgentData;
|
|
31
|
+
if (uaData && Array.isArray(uaData.brands)) return uaData.brands.map(({ brand, version })=>`${brand}/${version}`).join(' ');
|
|
32
|
+
return navigator.userAgent;
|
|
33
|
+
}
|
|
34
|
+
function getPlatform() {
|
|
35
|
+
if (!hasNavigator) return '';
|
|
36
|
+
const uaData = navigator.userAgentData;
|
|
37
|
+
if (uaData?.platform) return uaData.platform;
|
|
38
|
+
return navigator.platform ?? '';
|
|
39
|
+
}
|
|
40
|
+
export { isAndroid, isFirefox, isIOS, isJSDOM, isMac, isSafari, isWebKit };
|
package/dist/8979.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { esm_formatErrorMessage } from "./8272.js";
|
|
2
|
+
import * as __rspack_external_react from "react";
|
|
3
|
+
const CheckboxGroupContext = /*#__PURE__*/ __rspack_external_react.createContext(void 0);
|
|
4
|
+
if ("production" !== process.env.NODE_ENV) CheckboxGroupContext.displayName = "CheckboxGroupContext";
|
|
5
|
+
function useCheckboxGroupContext(optional = true) {
|
|
6
|
+
const context = __rspack_external_react.useContext(CheckboxGroupContext);
|
|
7
|
+
if (void 0 === context && !optional) throw new Error("production" !== process.env.NODE_ENV ? 'Base UI: CheckboxGroupContext is missing. CheckboxGroup parts must be placed within <CheckboxGroup>.' : esm_formatErrorMessage(3));
|
|
8
|
+
return context;
|
|
9
|
+
}
|
|
10
|
+
export { CheckboxGroupContext, useCheckboxGroupContext };
|
package/dist/8996.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { useRefWithInit } from "./8272.js";
|
|
2
|
+
import { useOnMount } from "./2861.js";
|
|
3
|
+
const EMPTY = null;
|
|
4
|
+
let LAST_RAF = globalThis.requestAnimationFrame;
|
|
5
|
+
class Scheduler {
|
|
6
|
+
callbacks = [];
|
|
7
|
+
callbacksCount = 0;
|
|
8
|
+
nextId = 1;
|
|
9
|
+
startId = 1;
|
|
10
|
+
isScheduled = false;
|
|
11
|
+
tick = (timestamp)=>{
|
|
12
|
+
this.isScheduled = false;
|
|
13
|
+
const currentCallbacks = this.callbacks;
|
|
14
|
+
const currentCallbacksCount = this.callbacksCount;
|
|
15
|
+
this.callbacks = [];
|
|
16
|
+
this.callbacksCount = 0;
|
|
17
|
+
this.startId = this.nextId;
|
|
18
|
+
if (currentCallbacksCount > 0) for(let i = 0; i < currentCallbacks.length; i += 1)currentCallbacks[i]?.(timestamp);
|
|
19
|
+
};
|
|
20
|
+
request(fn) {
|
|
21
|
+
const id = this.nextId;
|
|
22
|
+
this.nextId += 1;
|
|
23
|
+
this.callbacks.push(fn);
|
|
24
|
+
this.callbacksCount += 1;
|
|
25
|
+
const didRAFChange = 'production' !== process.env.NODE_ENV && LAST_RAF !== requestAnimationFrame && (LAST_RAF = requestAnimationFrame, true);
|
|
26
|
+
if (!this.isScheduled || didRAFChange) {
|
|
27
|
+
requestAnimationFrame(this.tick);
|
|
28
|
+
this.isScheduled = true;
|
|
29
|
+
}
|
|
30
|
+
return id;
|
|
31
|
+
}
|
|
32
|
+
cancel(id) {
|
|
33
|
+
const index = id - this.startId;
|
|
34
|
+
if (index < 0 || index >= this.callbacks.length) return;
|
|
35
|
+
this.callbacks[index] = null;
|
|
36
|
+
this.callbacksCount -= 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const scheduler = new Scheduler();
|
|
40
|
+
class AnimationFrame {
|
|
41
|
+
static create() {
|
|
42
|
+
return new AnimationFrame();
|
|
43
|
+
}
|
|
44
|
+
static request(fn) {
|
|
45
|
+
return scheduler.request(fn);
|
|
46
|
+
}
|
|
47
|
+
static cancel(id) {
|
|
48
|
+
return scheduler.cancel(id);
|
|
49
|
+
}
|
|
50
|
+
currentId = EMPTY;
|
|
51
|
+
request(fn) {
|
|
52
|
+
this.cancel();
|
|
53
|
+
this.currentId = scheduler.request(()=>{
|
|
54
|
+
this.currentId = EMPTY;
|
|
55
|
+
fn();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
cancel = ()=>{
|
|
59
|
+
if (this.currentId !== EMPTY) {
|
|
60
|
+
scheduler.cancel(this.currentId);
|
|
61
|
+
this.currentId = EMPTY;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
disposeEffect = ()=>this.cancel;
|
|
65
|
+
}
|
|
66
|
+
function useAnimationFrame() {
|
|
67
|
+
const timeout = useRefWithInit(AnimationFrame.create).current;
|
|
68
|
+
useOnMount(timeout.disposeEffect);
|
|
69
|
+
return timeout;
|
|
70
|
+
}
|
|
71
|
+
export { AnimationFrame, useAnimationFrame };
|
package/dist/904.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { isMac, isSafari } from "./8971.js";
|
|
2
|
+
import { useTimeout } from "./42.js";
|
|
3
|
+
import { getWindow, isHTMLElement, isElement } from "./3829.js";
|
|
4
|
+
import { getTarget, contains, activeElement } from "./4549.js";
|
|
5
|
+
import { ownerDocument } from "./9829.js";
|
|
6
|
+
import { mergeCleanups } from "./4495.js";
|
|
7
|
+
import { addEventListener } from "./4723.js";
|
|
8
|
+
import { triggerPress, triggerFocus, escapeKey } from "./2418.js";
|
|
9
|
+
import { matchesFocusVisible, isTypeableElement, isTargetInsideEnabledTrigger } from "./8758.js";
|
|
10
|
+
import { createChangeEventDetails } from "./4768.js";
|
|
11
|
+
import { createAttribute } from "./5992.js";
|
|
12
|
+
import * as __rspack_external_react from "react";
|
|
13
|
+
const isMacSafari = isMac && isSafari;
|
|
14
|
+
function useFocus(context, props = {}) {
|
|
15
|
+
const { enabled = true, delay } = props;
|
|
16
|
+
const store = 'rootStore' in context ? context.rootStore : context;
|
|
17
|
+
const { events, dataRef } = store.context;
|
|
18
|
+
const blockFocusRef = __rspack_external_react.useRef(false);
|
|
19
|
+
const blockedReferenceRef = __rspack_external_react.useRef(null);
|
|
20
|
+
const keyboardModalityRef = __rspack_external_react.useRef(true);
|
|
21
|
+
const timeout = useTimeout();
|
|
22
|
+
__rspack_external_react.useEffect(()=>{
|
|
23
|
+
const domReference = store.select('domReferenceElement');
|
|
24
|
+
if (!enabled) return;
|
|
25
|
+
const win = getWindow(domReference);
|
|
26
|
+
function onBlur() {
|
|
27
|
+
const currentDomReference = store.select('domReferenceElement');
|
|
28
|
+
if (!store.select('open') && isHTMLElement(currentDomReference) && currentDomReference === activeElement(ownerDocument(currentDomReference))) blockFocusRef.current = true;
|
|
29
|
+
}
|
|
30
|
+
function onKeyDown() {
|
|
31
|
+
keyboardModalityRef.current = true;
|
|
32
|
+
}
|
|
33
|
+
function onPointerDown() {
|
|
34
|
+
keyboardModalityRef.current = false;
|
|
35
|
+
}
|
|
36
|
+
return mergeCleanups(addEventListener(win, 'blur', onBlur), isMacSafari && addEventListener(win, 'keydown', onKeyDown, true), isMacSafari && addEventListener(win, 'pointerdown', onPointerDown, true));
|
|
37
|
+
}, [
|
|
38
|
+
store,
|
|
39
|
+
enabled
|
|
40
|
+
]);
|
|
41
|
+
__rspack_external_react.useEffect(()=>{
|
|
42
|
+
if (!enabled) return;
|
|
43
|
+
function onOpenChangeLocal(details) {
|
|
44
|
+
if (details.reason === triggerPress || details.reason === escapeKey) {
|
|
45
|
+
const referenceElement = store.select('domReferenceElement');
|
|
46
|
+
if (isElement(referenceElement)) {
|
|
47
|
+
blockedReferenceRef.current = referenceElement;
|
|
48
|
+
blockFocusRef.current = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
events.on('openchange', onOpenChangeLocal);
|
|
53
|
+
return ()=>{
|
|
54
|
+
events.off('openchange', onOpenChangeLocal);
|
|
55
|
+
};
|
|
56
|
+
}, [
|
|
57
|
+
events,
|
|
58
|
+
enabled,
|
|
59
|
+
store
|
|
60
|
+
]);
|
|
61
|
+
const reference = __rspack_external_react.useMemo(()=>{
|
|
62
|
+
function resetBlockedFocus() {
|
|
63
|
+
blockFocusRef.current = false;
|
|
64
|
+
blockedReferenceRef.current = null;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
onMouseLeave () {
|
|
68
|
+
resetBlockedFocus();
|
|
69
|
+
},
|
|
70
|
+
onFocus (event) {
|
|
71
|
+
const focusTarget = event.currentTarget;
|
|
72
|
+
if (blockFocusRef.current) {
|
|
73
|
+
if (blockedReferenceRef.current === focusTarget) return;
|
|
74
|
+
resetBlockedFocus();
|
|
75
|
+
}
|
|
76
|
+
const target = getTarget(event.nativeEvent);
|
|
77
|
+
if (isElement(target)) {
|
|
78
|
+
if (isMacSafari && !event.relatedTarget) {
|
|
79
|
+
if (!keyboardModalityRef.current && !isTypeableElement(target)) return;
|
|
80
|
+
} else if (!matchesFocusVisible(target)) return;
|
|
81
|
+
}
|
|
82
|
+
const movedFromOtherEnabledTrigger = isTargetInsideEnabledTrigger(event.relatedTarget, store.context.triggerElements);
|
|
83
|
+
const { nativeEvent, currentTarget } = event;
|
|
84
|
+
const delayValue = 'function' == typeof delay ? delay() : delay;
|
|
85
|
+
if (store.select('open') && movedFromOtherEnabledTrigger || 0 === delayValue || void 0 === delayValue) return void store.setOpen(true, createChangeEventDetails(triggerFocus, nativeEvent, currentTarget));
|
|
86
|
+
timeout.start(delayValue, ()=>{
|
|
87
|
+
if (blockFocusRef.current) return;
|
|
88
|
+
store.setOpen(true, createChangeEventDetails(triggerFocus, nativeEvent, currentTarget));
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
onBlur (event) {
|
|
92
|
+
resetBlockedFocus();
|
|
93
|
+
const relatedTarget = event.relatedTarget;
|
|
94
|
+
const nativeEvent = event.nativeEvent;
|
|
95
|
+
const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && 'outside' === relatedTarget.getAttribute('data-type');
|
|
96
|
+
timeout.start(0, ()=>{
|
|
97
|
+
const domReference = store.select('domReferenceElement');
|
|
98
|
+
const activeEl = activeElement(ownerDocument(domReference));
|
|
99
|
+
if (!relatedTarget && activeEl === domReference) return;
|
|
100
|
+
if (contains(dataRef.current.floatingContext?.refs.floating.current, activeEl) || contains(domReference, activeEl) || movedToFocusGuard) return;
|
|
101
|
+
const nextFocusedElement = relatedTarget ?? activeEl;
|
|
102
|
+
if (isTargetInsideEnabledTrigger(nextFocusedElement, store.context.triggerElements)) return;
|
|
103
|
+
store.setOpen(false, createChangeEventDetails(triggerFocus, nativeEvent));
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}, [
|
|
108
|
+
dataRef,
|
|
109
|
+
delay,
|
|
110
|
+
store,
|
|
111
|
+
timeout
|
|
112
|
+
]);
|
|
113
|
+
return __rspack_external_react.useMemo(()=>enabled ? {
|
|
114
|
+
reference,
|
|
115
|
+
trigger: reference
|
|
116
|
+
} : {}, [
|
|
117
|
+
enabled,
|
|
118
|
+
reference
|
|
119
|
+
]);
|
|
120
|
+
}
|
|
121
|
+
export { useFocus };
|
package/dist/9048.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useLabelableContext } from "./1477.js";
|
|
2
|
+
import { useBaseUiId } from "./6046.js";
|
|
3
|
+
import { useRefWithInit, NOOP } from "./8272.js";
|
|
4
|
+
import { useStableCallback } from "./7541.js";
|
|
5
|
+
import { useIsoLayoutEffect } from "./6499.js";
|
|
6
|
+
import { isElement } from "./3829.js";
|
|
7
|
+
import * as __rspack_external_react from "react";
|
|
8
|
+
function useLabelableId(params = {}) {
|
|
9
|
+
const { id, implicit = false, controlRef } = params;
|
|
10
|
+
const { controlId, registerControlId } = useLabelableContext();
|
|
11
|
+
const defaultId = useBaseUiId(id);
|
|
12
|
+
const controlIdForEffect = implicit ? controlId : void 0;
|
|
13
|
+
const controlSourceRef = useRefWithInit(()=>Symbol('labelable-control'));
|
|
14
|
+
const hasRegisteredRef = __rspack_external_react.useRef(false);
|
|
15
|
+
const hadExplicitIdRef = __rspack_external_react.useRef(null != id);
|
|
16
|
+
const unregisterControlId = useStableCallback(()=>{
|
|
17
|
+
if (!hasRegisteredRef.current || registerControlId === NOOP) return;
|
|
18
|
+
hasRegisteredRef.current = false;
|
|
19
|
+
registerControlId(controlSourceRef.current, void 0);
|
|
20
|
+
});
|
|
21
|
+
useIsoLayoutEffect(()=>{
|
|
22
|
+
if (registerControlId === NOOP) return;
|
|
23
|
+
let nextId;
|
|
24
|
+
if (implicit) {
|
|
25
|
+
const elem = controlRef?.current;
|
|
26
|
+
nextId = isElement(elem) && null != elem.closest('label') ? id ?? null : controlIdForEffect ?? defaultId;
|
|
27
|
+
} else if (null != id) {
|
|
28
|
+
hadExplicitIdRef.current = true;
|
|
29
|
+
nextId = id;
|
|
30
|
+
} else {
|
|
31
|
+
if (!hadExplicitIdRef.current) return void unregisterControlId();
|
|
32
|
+
nextId = defaultId;
|
|
33
|
+
}
|
|
34
|
+
if (void 0 === nextId) return void unregisterControlId();
|
|
35
|
+
hasRegisteredRef.current = true;
|
|
36
|
+
registerControlId(controlSourceRef.current, nextId);
|
|
37
|
+
}, [
|
|
38
|
+
id,
|
|
39
|
+
controlRef,
|
|
40
|
+
controlIdForEffect,
|
|
41
|
+
registerControlId,
|
|
42
|
+
implicit,
|
|
43
|
+
defaultId,
|
|
44
|
+
controlSourceRef,
|
|
45
|
+
unregisterControlId
|
|
46
|
+
]);
|
|
47
|
+
__rspack_external_react.useEffect(()=>unregisterControlId, [
|
|
48
|
+
unregisterControlId
|
|
49
|
+
]);
|
|
50
|
+
return controlId ?? defaultId;
|
|
51
|
+
}
|
|
52
|
+
export { useLabelableId };
|