@octanejs/base-ui 0.1.30 → 0.1.32
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/cjs/accordion.cjs +497 -0
- package/dist/cjs/alert-dialog.cjs +65 -0
- package/dist/cjs/avatar.cjs +234 -0
- package/dist/cjs/button.cjs +54 -0
- package/dist/cjs/checkbox-group.cjs +165 -0
- package/dist/cjs/checkbox.cjs +475 -0
- package/dist/cjs/collapsible.cjs +700 -0
- package/dist/cjs/context-menu.cjs +257 -0
- package/dist/cjs/csp-provider.cjs +40 -0
- package/dist/cjs/dialog.cjs +741 -0
- package/dist/cjs/direction-provider.cjs +35 -0
- package/dist/cjs/field.cjs +559 -0
- package/dist/cjs/fieldset.cjs +101 -0
- package/dist/cjs/form.cjs +177 -0
- package/dist/cjs/index.cjs +133 -0
- package/dist/cjs/input.cjs +32 -0
- package/dist/cjs/internal.cjs +51 -0
- package/dist/cjs/menu.cjs +2420 -0
- package/dist/cjs/menubar.cjs +132 -0
- package/dist/cjs/merge-props.cjs +34 -0
- package/dist/cjs/meter.cjs +169 -0
- package/dist/cjs/number-field.cjs +812 -0
- package/dist/cjs/popover.cjs +966 -0
- package/dist/cjs/preview-card.cjs +632 -0
- package/dist/cjs/progress.cjs +206 -0
- package/dist/cjs/radio-group.cjs +264 -0
- package/dist/cjs/radio.cjs +327 -0
- package/dist/cjs/separator.cjs +44 -0
- package/dist/cjs/slider.cjs +1384 -0
- package/dist/cjs/switch.cjs +306 -0
- package/dist/cjs/tabs.cjs +727 -0
- package/dist/cjs/toast.cjs +1766 -0
- package/dist/cjs/toggle-group.cjs +118 -0
- package/dist/cjs/toggle.cjs +121 -0
- package/dist/cjs/tooltip.cjs +835 -0
- package/dist/cjs/unstable-use-media-query.cjs +79 -0
- package/dist/cjs/use-render.cjs +40 -0
- package/dist/cjs/utils/CSPContext.cjs +38 -0
- package/dist/cjs/utils/CheckboxGroupContext.cjs +40 -0
- package/dist/cjs/utils/CompositeRootContext.cjs +40 -0
- package/dist/cjs/utils/ContextMenuRootContext.cjs +42 -0
- package/dist/cjs/utils/DirectionContext.cjs +34 -0
- package/dist/cjs/utils/FloatingPortalLite.cjs +47 -0
- package/dist/cjs/utils/InternalBackdrop.cjs +49 -0
- package/dist/cjs/utils/MenubarContext.cjs +40 -0
- package/dist/cjs/utils/RadioGroupContext.cjs +34 -0
- package/dist/cjs/utils/RequestQueue.cjs +111 -0
- package/dist/cjs/utils/TimeoutManager.cjs +50 -0
- package/dist/cjs/utils/ToggleGroupContext.cjs +40 -0
- package/dist/cjs/utils/adaptiveOriginMiddleware.cjs +94 -0
- package/dist/cjs/utils/addEventListener.cjs +33 -0
- package/dist/cjs/utils/areArraysEqual.cjs +30 -0
- package/dist/cjs/utils/clamp.cjs +30 -0
- package/dist/cjs/utils/closePart.cjs +70 -0
- package/dist/cjs/utils/collapsibleOpenStateMapping.cjs +42 -0
- package/dist/cjs/utils/composeRefs.cjs +68 -0
- package/dist/cjs/utils/composite/CompositeItem.cjs +59 -0
- package/dist/cjs/utils/composite/CompositeList.cjs +177 -0
- package/dist/cjs/utils/composite/CompositeListContext.cjs +43 -0
- package/dist/cjs/utils/composite/CompositeRoot.cjs +118 -0
- package/dist/cjs/utils/composite/grid-utils.cjs +343 -0
- package/dist/cjs/utils/composite/gridNavigation.cjs +92 -0
- package/dist/cjs/utils/composite/keys.cjs +174 -0
- package/dist/cjs/utils/composite/list-utils.cjs +90 -0
- package/dist/cjs/utils/composite/useCompositeItem.cjs +63 -0
- package/dist/cjs/utils/composite/useCompositeListItem.cjs +104 -0
- package/dist/cjs/utils/composite/useCompositeRoot.cjs +263 -0
- package/dist/cjs/utils/constants.cjs +56 -0
- package/dist/cjs/utils/contains.cjs +46 -0
- package/dist/cjs/utils/createChangeEventDetails.cjs +92 -0
- package/dist/cjs/utils/dom.cjs +35 -0
- package/dist/cjs/utils/empty.cjs +34 -0
- package/dist/cjs/utils/field/FieldItemContext.cjs +34 -0
- package/dist/cjs/utils/field/FieldRootContext.cjs +80 -0
- package/dist/cjs/utils/field/FormContext.cjs +41 -0
- package/dist/cjs/utils/field/LabelableContext.cjs +43 -0
- package/dist/cjs/utils/field/LabelableProvider.cjs +115 -0
- package/dist/cjs/utils/field/constants.cjs +68 -0
- package/dist/cjs/utils/field/getCombinedFieldValidityData.cjs +36 -0
- package/dist/cjs/utils/field/useAriaLabelledBy.cjs +87 -0
- package/dist/cjs/utils/field/useFieldControlRegistration.cjs +165 -0
- package/dist/cjs/utils/field/useFieldValidation.cjs +285 -0
- package/dist/cjs/utils/field/useLabel.cjs +99 -0
- package/dist/cjs/utils/field/useLabelableId.cjs +105 -0
- package/dist/cjs/utils/field/useRegisterFieldControl.cjs +60 -0
- package/dist/cjs/utils/findRootOwnerId.cjs +37 -0
- package/dist/cjs/utils/floating/FloatingDelayGroup.cjs +219 -0
- package/dist/cjs/utils/floating/FloatingFocusManager.cjs +685 -0
- package/dist/cjs/utils/floating/FloatingPortal.cjs +230 -0
- package/dist/cjs/utils/floating/FloatingRootStore.cjs +87 -0
- package/dist/cjs/utils/floating/FloatingTree.cjs +86 -0
- package/dist/cjs/utils/floating/FloatingTreeStore.cjs +41 -0
- package/dist/cjs/utils/floating/FocusGuard.cjs +54 -0
- package/dist/cjs/utils/floating/composite.cjs +42 -0
- package/dist/cjs/utils/floating/constants.cjs +34 -0
- package/dist/cjs/utils/floating/createAttribute.cjs +30 -0
- package/dist/cjs/utils/floating/createEventEmitter.cjs +44 -0
- package/dist/cjs/utils/floating/element.cjs +103 -0
- package/dist/cjs/utils/floating/enqueueFocus.cjs +51 -0
- package/dist/cjs/utils/floating/event.cjs +65 -0
- package/dist/cjs/utils/floating/getEmptyRootContext.cjs +42 -0
- package/dist/cjs/utils/floating/gridNavigation.cjs +45 -0
- package/dist/cjs/utils/floating/markOthers.cjs +181 -0
- package/dist/cjs/utils/floating/nodes.cjs +48 -0
- package/dist/cjs/utils/floating/safePolygon.cjs +301 -0
- package/dist/cjs/utils/floating/tabbable.cjs +242 -0
- package/dist/cjs/utils/floating/types.cjs +16 -0
- package/dist/cjs/utils/floating/useClick.cjs +153 -0
- package/dist/cjs/utils/floating/useClientPoint.cjs +225 -0
- package/dist/cjs/utils/floating/useDismiss.cjs +506 -0
- package/dist/cjs/utils/floating/useFloating.cjs +186 -0
- package/dist/cjs/utils/floating/useFloatingRootContext.cjs +75 -0
- package/dist/cjs/utils/floating/useFocus.cjs +184 -0
- package/dist/cjs/utils/floating/useHoverFloatingInteraction.cjs +231 -0
- package/dist/cjs/utils/floating/useHoverInteractionSharedState.cjs +113 -0
- package/dist/cjs/utils/floating/useHoverReferenceInteraction.cjs +380 -0
- package/dist/cjs/utils/floating/useHoverShared.cjs +65 -0
- package/dist/cjs/utils/floating/useListNavigation.cjs +665 -0
- package/dist/cjs/utils/floating/useSyncedFloatingRootContext.cjs +91 -0
- package/dist/cjs/utils/floating/useTypeahead.cjs +187 -0
- package/dist/cjs/utils/formatNumber.cjs +60 -0
- package/dist/cjs/utils/generateId.cjs +32 -0
- package/dist/cjs/utils/getCssDimensions.cjs +42 -0
- package/dist/cjs/utils/getDefaultFormSubmitter.cjs +42 -0
- package/dist/cjs/utils/getDisabledMountTransitionStyles.cjs +32 -0
- package/dist/cjs/utils/getElementRef.cjs +35 -0
- package/dist/cjs/utils/getPseudoElementBounds.cjs +56 -0
- package/dist/cjs/utils/getStateAttributesProps.cjs +46 -0
- package/dist/cjs/utils/hideMiddleware.cjs +42 -0
- package/dist/cjs/utils/inertValue.cjs +30 -0
- package/dist/cjs/utils/matchesFocusVisible.cjs +38 -0
- package/dist/cjs/utils/mergeCleanups.cjs +37 -0
- package/dist/cjs/utils/mergeObjects.cjs +39 -0
- package/dist/cjs/utils/mergeProps.cjs +182 -0
- package/dist/cjs/utils/noop.cjs +29 -0
- package/dist/cjs/utils/number/constants.cjs +34 -0
- package/dist/cjs/utils/number/parse.cjs +258 -0
- package/dist/cjs/utils/number/types.cjs +16 -0
- package/dist/cjs/utils/number/validate.cjs +104 -0
- package/dist/cjs/utils/owner.cjs +35 -0
- package/dist/cjs/utils/platform.cjs +83 -0
- package/dist/cjs/utils/popupStateMapping.cjs +74 -0
- package/dist/cjs/utils/popups/index.cjs +39 -0
- package/dist/cjs/utils/popups/inlineRect.cjs +218 -0
- package/dist/cjs/utils/popups/popupStoreUtils.cjs +379 -0
- package/dist/cjs/utils/popups/popupTriggerMap.cjs +76 -0
- package/dist/cjs/utils/popups/store.cjs +118 -0
- package/dist/cjs/utils/popups/useTriggerFocusGuards.cjs +72 -0
- package/dist/cjs/utils/resolveAriaLabelledBy.cjs +35 -0
- package/dist/cjs/utils/resolveClassName.cjs +30 -0
- package/dist/cjs/utils/resolveRef.cjs +33 -0
- package/dist/cjs/utils/resolveStyle.cjs +30 -0
- package/dist/cjs/utils/serializeValue.cjs +40 -0
- package/dist/cjs/utils/slider/asc.cjs +30 -0
- package/dist/cjs/utils/slider/getMidpoint.cjs +34 -0
- package/dist/cjs/utils/slider/getPushedThumbValues.cjs +73 -0
- package/dist/cjs/utils/slider/getSliderValue.cjs +42 -0
- package/dist/cjs/utils/slider/replaceArrayItemAtIndex.cjs +33 -0
- package/dist/cjs/utils/slider/resolveThumbCollision.cjs +155 -0
- package/dist/cjs/utils/slider/roundValueToStep.cjs +45 -0
- package/dist/cjs/utils/slider/validateMinimumDistance.cjs +40 -0
- package/dist/cjs/utils/slider/valueArrayToPercentages.cjs +36 -0
- package/dist/cjs/utils/store/ReactStore.cjs +135 -0
- package/dist/cjs/utils/store/Store.cjs +83 -0
- package/dist/cjs/utils/store/createSelector.cjs +74 -0
- package/dist/cjs/utils/store/useStore.cjs +51 -0
- package/dist/cjs/utils/stringifyLocale.cjs +36 -0
- package/dist/cjs/utils/useAnchorPositioning.cjs +421 -0
- package/dist/cjs/utils/useAnchoredPopupScrollLock.cjs +59 -0
- package/dist/cjs/utils/useAnimationFrame.cjs +93 -0
- package/dist/cjs/utils/useAnimationsFinished.cjs +98 -0
- package/dist/cjs/utils/useBaseUiId.cjs +36 -0
- package/dist/cjs/utils/useButton.cjs +177 -0
- package/dist/cjs/utils/useCheckboxGroupParent.cjs +114 -0
- package/dist/cjs/utils/useControlled.cjs +47 -0
- package/dist/cjs/utils/useEnhancedClickHandler.cjs +60 -0
- package/dist/cjs/utils/useFocusableWhenDisabled.cjs +77 -0
- package/dist/cjs/utils/useForcedRerendering.cjs +35 -0
- package/dist/cjs/utils/useIsHydrating.cjs +44 -0
- package/dist/cjs/utils/useMixedToggleClickHandler.cjs +66 -0
- package/dist/cjs/utils/useOnFirstRender.cjs +35 -0
- package/dist/cjs/utils/useOnMount.cjs +36 -0
- package/dist/cjs/utils/useOpenChangeComplete.cjs +57 -0
- package/dist/cjs/utils/useOpenInteractionType.cjs +69 -0
- package/dist/cjs/utils/usePopupAutoResize.cjs +191 -0
- package/dist/cjs/utils/usePopupViewport.cjs +283 -0
- package/dist/cjs/utils/usePositioner.cjs +53 -0
- package/dist/cjs/utils/usePressAndHold.cjs +51 -0
- package/dist/cjs/utils/usePreviousValue.cjs +47 -0
- package/dist/cjs/utils/useRefWithInit.cjs +41 -0
- package/dist/cjs/utils/useRegisteredLabelId.cjs +48 -0
- package/dist/cjs/utils/useRenderElement.cjs +106 -0
- package/dist/cjs/utils/useScrollLock.cjs +232 -0
- package/dist/cjs/utils/useStableCallback.cjs +41 -0
- package/dist/cjs/utils/useTimeout.cjs +66 -0
- package/dist/cjs/utils/useTransitionStatus.cjs +116 -0
- package/dist/cjs/utils/useValueAsRef.cjs +43 -0
- package/dist/cjs/utils/useValueChanged.cjs +55 -0
- package/dist/cjs/utils/valueToPercent.cjs +30 -0
- package/dist/cjs/utils/visuallyHidden.cjs +49 -0
- package/package.json +20 -8
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var popupStoreUtils_exports = {};
|
|
20
|
+
__export(popupStoreUtils_exports, {
|
|
21
|
+
FOCUSABLE_POPUP_PROPS: () => FOCUSABLE_POPUP_PROPS,
|
|
22
|
+
applyPopupOpenChange: () => applyPopupOpenChange,
|
|
23
|
+
attachPreventUnmountOnClose: () => attachPreventUnmountOnClose,
|
|
24
|
+
createDefaultInitialFocus: () => createDefaultInitialFocus,
|
|
25
|
+
setPopupOpenState: () => setPopupOpenState,
|
|
26
|
+
useImplicitActiveTrigger: () => useImplicitActiveTrigger,
|
|
27
|
+
useInitialOpenSync: () => useInitialOpenSync,
|
|
28
|
+
useOpenStateTransitions: () => useOpenStateTransitions,
|
|
29
|
+
usePopupInteractionProps: () => usePopupInteractionProps,
|
|
30
|
+
usePopupRootSync: () => usePopupRootSync,
|
|
31
|
+
usePopupStore: () => usePopupStore,
|
|
32
|
+
useTriggerDataForwarding: () => useTriggerDataForwarding,
|
|
33
|
+
useTriggerRegistration: () => useTriggerRegistration
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(popupStoreUtils_exports);
|
|
36
|
+
var import_octane = require("octane");
|
|
37
|
+
var import_internal = require("../../internal.cjs");
|
|
38
|
+
var import_useStableCallback = require("../useStableCallback.cjs");
|
|
39
|
+
var import_useOnFirstRender = require("../useOnFirstRender.cjs");
|
|
40
|
+
var import_useTransitionStatus = require("../useTransitionStatus.cjs");
|
|
41
|
+
var import_useOpenChangeComplete = require("../useOpenChangeComplete.cjs");
|
|
42
|
+
var import_empty = require("../empty.cjs");
|
|
43
|
+
var import_constants = require("../floating/constants.cjs");
|
|
44
|
+
var import_FloatingTree = require("../floating/FloatingTree.cjs");
|
|
45
|
+
var import_useSyncedFloatingRootContext = require("../floating/useSyncedFloatingRootContext.cjs");
|
|
46
|
+
var import_createChangeEventDetails = require("../createChangeEventDetails.cjs");
|
|
47
|
+
const FOCUSABLE_POPUP_PROPS = {
|
|
48
|
+
tabIndex: -1,
|
|
49
|
+
[import_constants.FOCUSABLE_ATTRIBUTE]: ""
|
|
50
|
+
};
|
|
51
|
+
function createDefaultInitialFocus(popupRef) {
|
|
52
|
+
return (interactionType) => interactionType === "touch" ? popupRef.current : true;
|
|
53
|
+
}
|
|
54
|
+
function usePopupStore(externalStore, createStore, treatPopupAsFloatingElement, slot) {
|
|
55
|
+
const floatingId = (0, import_octane.useId)((0, import_internal.subSlot)(slot, "fid"));
|
|
56
|
+
const nested = (0, import_FloatingTree.useFloatingParentNodeId)() != null;
|
|
57
|
+
const internalStoreRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "store"));
|
|
58
|
+
if (externalStore === void 0 && internalStoreRef.current === null) {
|
|
59
|
+
internalStoreRef.current = createStore(floatingId, nested);
|
|
60
|
+
}
|
|
61
|
+
const store = externalStore ?? internalStoreRef.current;
|
|
62
|
+
(0, import_useSyncedFloatingRootContext.useSyncedFloatingRootContext)(
|
|
63
|
+
{
|
|
64
|
+
popupStore: store,
|
|
65
|
+
treatPopupAsFloatingElement,
|
|
66
|
+
floatingRootContext: store.state.floatingRootContext,
|
|
67
|
+
floatingId,
|
|
68
|
+
nested,
|
|
69
|
+
onOpenChange: store.setOpen
|
|
70
|
+
},
|
|
71
|
+
(0, import_internal.subSlot)(slot, "synced")
|
|
72
|
+
);
|
|
73
|
+
return { store, internalStore: internalStoreRef.current };
|
|
74
|
+
}
|
|
75
|
+
function useTriggerRegistration(id, store, slot) {
|
|
76
|
+
const registeredElementIdRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "rid"));
|
|
77
|
+
const registeredElementRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "rel"));
|
|
78
|
+
return (0, import_octane.useCallback)(
|
|
79
|
+
(element) => {
|
|
80
|
+
if (id === void 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let shouldSyncTriggerCount = false;
|
|
84
|
+
if (registeredElementIdRef.current !== null) {
|
|
85
|
+
const registeredId = registeredElementIdRef.current;
|
|
86
|
+
const registeredElement = registeredElementRef.current;
|
|
87
|
+
const currentElement = store.context.triggerElements.getById(registeredId);
|
|
88
|
+
if (registeredElement && currentElement === registeredElement) {
|
|
89
|
+
store.context.triggerElements.delete(registeredId);
|
|
90
|
+
shouldSyncTriggerCount = true;
|
|
91
|
+
}
|
|
92
|
+
registeredElementIdRef.current = null;
|
|
93
|
+
registeredElementRef.current = null;
|
|
94
|
+
}
|
|
95
|
+
if (element !== null) {
|
|
96
|
+
registeredElementIdRef.current = id;
|
|
97
|
+
registeredElementRef.current = element;
|
|
98
|
+
store.context.triggerElements.add(id, element);
|
|
99
|
+
shouldSyncTriggerCount = true;
|
|
100
|
+
}
|
|
101
|
+
if (shouldSyncTriggerCount) {
|
|
102
|
+
const triggerCount = store.context.triggerElements.size;
|
|
103
|
+
if (store.select("open") && store.state.triggerCount !== triggerCount) {
|
|
104
|
+
store.set("triggerCount", triggerCount);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
[store, id],
|
|
109
|
+
(0, import_internal.subSlot)(slot, "cb")
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
function setPopupOpenState(state, open, trigger, preventUnmountOnClose = false) {
|
|
113
|
+
if (open) {
|
|
114
|
+
state.preventUnmountingOnClose = false;
|
|
115
|
+
} else if (preventUnmountOnClose) {
|
|
116
|
+
state.preventUnmountingOnClose = true;
|
|
117
|
+
}
|
|
118
|
+
const triggerId = trigger?.id ?? null;
|
|
119
|
+
if (triggerId || open) {
|
|
120
|
+
state.activeTriggerId = triggerId;
|
|
121
|
+
state.activeTriggerElement = trigger ?? null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function attachPreventUnmountOnClose(eventDetails) {
|
|
125
|
+
let preventUnmountOnClose = false;
|
|
126
|
+
eventDetails.preventUnmountOnClose = () => {
|
|
127
|
+
preventUnmountOnClose = true;
|
|
128
|
+
};
|
|
129
|
+
return () => preventUnmountOnClose;
|
|
130
|
+
}
|
|
131
|
+
function applyPopupOpenChange(store, nextOpen, eventDetails, options = {}) {
|
|
132
|
+
const reason = eventDetails.reason;
|
|
133
|
+
const isHover = reason === import_createChangeEventDetails.REASONS.triggerHover;
|
|
134
|
+
const isFocusOpen = nextOpen && reason === import_createChangeEventDetails.REASONS.triggerFocus;
|
|
135
|
+
const isDismissClose = !nextOpen && (reason === import_createChangeEventDetails.REASONS.triggerPress || reason === import_createChangeEventDetails.REASONS.escapeKey);
|
|
136
|
+
const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(eventDetails);
|
|
137
|
+
store.context.onOpenChange?.(nextOpen, eventDetails);
|
|
138
|
+
if (eventDetails.isCanceled) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
options.onBeforeDispatch?.();
|
|
142
|
+
store.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
|
|
143
|
+
const changeState = () => {
|
|
144
|
+
const updatedState = { ...options.extraState, open: nextOpen };
|
|
145
|
+
if (isFocusOpen) {
|
|
146
|
+
updatedState.instantType = "focus";
|
|
147
|
+
} else if (isDismissClose) {
|
|
148
|
+
updatedState.instantType = "dismiss";
|
|
149
|
+
} else if (isHover) {
|
|
150
|
+
updatedState.instantType = void 0;
|
|
151
|
+
}
|
|
152
|
+
setPopupOpenState(updatedState, nextOpen, eventDetails.trigger, shouldPreventUnmountOnClose());
|
|
153
|
+
store.update(updatedState);
|
|
154
|
+
};
|
|
155
|
+
if (isHover) {
|
|
156
|
+
(0, import_octane.flushSync)(changeState);
|
|
157
|
+
} else {
|
|
158
|
+
changeState();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function useInitialOpenSync(store, openProp, defaultOpen, defaultTriggerId, slot) {
|
|
162
|
+
(0, import_useOnFirstRender.useOnFirstRender)(
|
|
163
|
+
() => {
|
|
164
|
+
if (openProp === void 0 && store.state.open === false && defaultOpen) {
|
|
165
|
+
store.state = {
|
|
166
|
+
...store.state,
|
|
167
|
+
open: true,
|
|
168
|
+
activeTriggerId: defaultTriggerId,
|
|
169
|
+
preventUnmountingOnClose: false
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
(0, import_internal.subSlot)(slot, "first")
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
function useTriggerDataForwarding(triggerId, triggerElementRef, store, stateUpdates, slot) {
|
|
177
|
+
const isMountedByThisTrigger = store.useState(
|
|
178
|
+
"isMountedByTrigger",
|
|
179
|
+
(0, import_internal.subSlot)(slot, "mbt"),
|
|
180
|
+
triggerId
|
|
181
|
+
);
|
|
182
|
+
const baseRegisterTrigger = useTriggerRegistration(triggerId, store, (0, import_internal.subSlot)(slot, "reg"));
|
|
183
|
+
const registerTrigger = (0, import_useStableCallback.useStableCallback)(
|
|
184
|
+
(element) => {
|
|
185
|
+
baseRegisterTrigger(element);
|
|
186
|
+
if (!element) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const open = store.select("open");
|
|
190
|
+
const activeTriggerId = store.select("activeTriggerId");
|
|
191
|
+
if (activeTriggerId === triggerId) {
|
|
192
|
+
store.update({
|
|
193
|
+
activeTriggerElement: element,
|
|
194
|
+
...open ? stateUpdates : null
|
|
195
|
+
});
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (activeTriggerId == null && open) {
|
|
199
|
+
store.update({
|
|
200
|
+
activeTriggerId: triggerId,
|
|
201
|
+
activeTriggerElement: element,
|
|
202
|
+
...stateUpdates
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
(0, import_internal.subSlot)(slot, "regcb")
|
|
207
|
+
);
|
|
208
|
+
(0, import_octane.useLayoutEffect)(
|
|
209
|
+
() => {
|
|
210
|
+
if (isMountedByThisTrigger) {
|
|
211
|
+
store.update({
|
|
212
|
+
activeTriggerElement: triggerElementRef.current,
|
|
213
|
+
...stateUpdates
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
[isMountedByThisTrigger, store, triggerElementRef, ...Object.values(stateUpdates)],
|
|
218
|
+
(0, import_internal.subSlot)(slot, "e")
|
|
219
|
+
);
|
|
220
|
+
return { registerTrigger, isMountedByThisTrigger };
|
|
221
|
+
}
|
|
222
|
+
function useImplicitActiveTrigger(store, options, slot) {
|
|
223
|
+
const { closeOnActiveTriggerUnmount = false } = options;
|
|
224
|
+
const open = store.useState("open", (0, import_internal.subSlot)(slot, "open"));
|
|
225
|
+
const reactiveTriggerCount = store.useState("triggerCount", (0, import_internal.subSlot)(slot, "tc"));
|
|
226
|
+
(0, import_octane.useLayoutEffect)(
|
|
227
|
+
() => {
|
|
228
|
+
if (!open) {
|
|
229
|
+
if (store.state.triggerCount !== 0) {
|
|
230
|
+
store.set("triggerCount", 0);
|
|
231
|
+
}
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const triggerCount = store.context.triggerElements.size;
|
|
235
|
+
const stateUpdates = {};
|
|
236
|
+
if (store.state.triggerCount !== triggerCount) {
|
|
237
|
+
stateUpdates.triggerCount = triggerCount;
|
|
238
|
+
}
|
|
239
|
+
const activeTriggerId = store.select("activeTriggerId");
|
|
240
|
+
let lostActiveTriggerId = null;
|
|
241
|
+
if (activeTriggerId) {
|
|
242
|
+
const activeTriggerElement = store.context.triggerElements.getById(activeTriggerId);
|
|
243
|
+
if (!activeTriggerElement) {
|
|
244
|
+
lostActiveTriggerId = activeTriggerId;
|
|
245
|
+
} else if (activeTriggerElement !== store.state.activeTriggerElement) {
|
|
246
|
+
stateUpdates.activeTriggerElement = activeTriggerElement;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (!lostActiveTriggerId && !activeTriggerId && triggerCount === 1) {
|
|
250
|
+
const iteratorResult = store.context.triggerElements.entries().next();
|
|
251
|
+
if (!iteratorResult.done) {
|
|
252
|
+
const [implicitTriggerId, implicitTriggerElement] = iteratorResult.value;
|
|
253
|
+
stateUpdates.activeTriggerId = implicitTriggerId;
|
|
254
|
+
stateUpdates.activeTriggerElement = implicitTriggerElement;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (stateUpdates.triggerCount !== void 0 || stateUpdates.activeTriggerId !== void 0 || stateUpdates.activeTriggerElement !== void 0) {
|
|
258
|
+
store.update(stateUpdates);
|
|
259
|
+
}
|
|
260
|
+
if (lostActiveTriggerId) {
|
|
261
|
+
if (closeOnActiveTriggerUnmount) {
|
|
262
|
+
queueMicrotask(() => {
|
|
263
|
+
if (store.select("open") && store.select("activeTriggerId") === lostActiveTriggerId && !store.context.triggerElements.getById(lostActiveTriggerId)) {
|
|
264
|
+
const eventDetails = (0, import_createChangeEventDetails.createChangeEventDetails)(import_createChangeEventDetails.REASONS.none);
|
|
265
|
+
store.setOpen(false, eventDetails);
|
|
266
|
+
if (!eventDetails.isCanceled) {
|
|
267
|
+
store.update({
|
|
268
|
+
activeTriggerId: null,
|
|
269
|
+
activeTriggerElement: null
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
[open, store, reactiveTriggerCount, closeOnActiveTriggerUnmount],
|
|
278
|
+
(0, import_internal.subSlot)(slot, "e")
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
function useOpenStateTransitions(open, store, onUnmount, slot) {
|
|
282
|
+
const { mounted, setMounted, transitionStatus } = (0, import_useTransitionStatus.useTransitionStatus)(
|
|
283
|
+
open,
|
|
284
|
+
void 0,
|
|
285
|
+
void 0,
|
|
286
|
+
(0, import_internal.subSlot)(slot, "ts")
|
|
287
|
+
);
|
|
288
|
+
const preventUnmountingOnClose = store.useState(
|
|
289
|
+
"preventUnmountingOnClose",
|
|
290
|
+
(0, import_internal.subSlot)(slot, "puoc")
|
|
291
|
+
);
|
|
292
|
+
const syncedPreventUnmountingOnClose = open ? false : preventUnmountingOnClose;
|
|
293
|
+
store.useSyncedValues(
|
|
294
|
+
{
|
|
295
|
+
mounted,
|
|
296
|
+
transitionStatus,
|
|
297
|
+
preventUnmountingOnClose: syncedPreventUnmountingOnClose
|
|
298
|
+
},
|
|
299
|
+
(0, import_internal.subSlot)(slot, "sync")
|
|
300
|
+
);
|
|
301
|
+
const forceUnmount = (0, import_useStableCallback.useStableCallback)(
|
|
302
|
+
() => {
|
|
303
|
+
setMounted(false);
|
|
304
|
+
store.update({
|
|
305
|
+
activeTriggerId: null,
|
|
306
|
+
activeTriggerElement: null,
|
|
307
|
+
mounted: false,
|
|
308
|
+
preventUnmountingOnClose: false
|
|
309
|
+
});
|
|
310
|
+
onUnmount?.();
|
|
311
|
+
store.context.onOpenChangeComplete?.(false);
|
|
312
|
+
},
|
|
313
|
+
(0, import_internal.subSlot)(slot, "fu")
|
|
314
|
+
);
|
|
315
|
+
(0, import_useOpenChangeComplete.useOpenChangeComplete)(
|
|
316
|
+
{
|
|
317
|
+
enabled: mounted && !open && !syncedPreventUnmountingOnClose,
|
|
318
|
+
open,
|
|
319
|
+
ref: store.context.popupRef,
|
|
320
|
+
onComplete() {
|
|
321
|
+
if (!open) {
|
|
322
|
+
forceUnmount();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
(0, import_internal.subSlot)(slot, "occ")
|
|
327
|
+
);
|
|
328
|
+
return { forceUnmount, transitionStatus };
|
|
329
|
+
}
|
|
330
|
+
function usePopupInteractionProps(store, statePart, slot) {
|
|
331
|
+
store.useSyncedValues(statePart, (0, import_internal.subSlot)(slot, "sync"));
|
|
332
|
+
(0, import_octane.useLayoutEffect)(
|
|
333
|
+
() => () => {
|
|
334
|
+
store.update({
|
|
335
|
+
activeTriggerProps: import_empty.EMPTY_OBJECT,
|
|
336
|
+
inactiveTriggerProps: import_empty.EMPTY_OBJECT,
|
|
337
|
+
popupProps: import_empty.EMPTY_OBJECT
|
|
338
|
+
});
|
|
339
|
+
},
|
|
340
|
+
[store],
|
|
341
|
+
(0, import_internal.subSlot)(slot, "e")
|
|
342
|
+
);
|
|
343
|
+
}
|
|
344
|
+
function usePopupRootSync(store, open, slot) {
|
|
345
|
+
(0, import_octane.useLayoutEffect)(
|
|
346
|
+
() => {
|
|
347
|
+
if (!open && store.state.openMethod !== null) {
|
|
348
|
+
store.set("openMethod", null);
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
[open, store],
|
|
352
|
+
(0, import_internal.subSlot)(slot, "e1")
|
|
353
|
+
);
|
|
354
|
+
(0, import_octane.useLayoutEffect)(
|
|
355
|
+
() => () => {
|
|
356
|
+
if (store.state.openMethod !== null) {
|
|
357
|
+
store.set("openMethod", null);
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
[store],
|
|
361
|
+
(0, import_internal.subSlot)(slot, "e2")
|
|
362
|
+
);
|
|
363
|
+
}
|
|
364
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
365
|
+
0 && (module.exports = {
|
|
366
|
+
FOCUSABLE_POPUP_PROPS,
|
|
367
|
+
applyPopupOpenChange,
|
|
368
|
+
attachPreventUnmountOnClose,
|
|
369
|
+
createDefaultInitialFocus,
|
|
370
|
+
setPopupOpenState,
|
|
371
|
+
useImplicitActiveTrigger,
|
|
372
|
+
useInitialOpenSync,
|
|
373
|
+
useOpenStateTransitions,
|
|
374
|
+
usePopupInteractionProps,
|
|
375
|
+
usePopupRootSync,
|
|
376
|
+
usePopupStore,
|
|
377
|
+
useTriggerDataForwarding,
|
|
378
|
+
useTriggerRegistration
|
|
379
|
+
});
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var popupTriggerMap_exports = {};
|
|
20
|
+
__export(popupTriggerMap_exports, {
|
|
21
|
+
PopupTriggerMap: () => PopupTriggerMap
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(popupTriggerMap_exports);
|
|
24
|
+
class PopupTriggerMap {
|
|
25
|
+
elementsSet;
|
|
26
|
+
idMap;
|
|
27
|
+
constructor() {
|
|
28
|
+
this.elementsSet = /* @__PURE__ */ new Set();
|
|
29
|
+
this.idMap = /* @__PURE__ */ new Map();
|
|
30
|
+
}
|
|
31
|
+
add(id, element) {
|
|
32
|
+
const existingElement = this.idMap.get(id);
|
|
33
|
+
if (existingElement === element) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (existingElement !== void 0) {
|
|
37
|
+
this.elementsSet.delete(existingElement);
|
|
38
|
+
}
|
|
39
|
+
this.elementsSet.add(element);
|
|
40
|
+
this.idMap.set(id, element);
|
|
41
|
+
}
|
|
42
|
+
delete(id) {
|
|
43
|
+
const element = this.idMap.get(id);
|
|
44
|
+
if (element) {
|
|
45
|
+
this.elementsSet.delete(element);
|
|
46
|
+
this.idMap.delete(id);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
hasElement(element) {
|
|
50
|
+
return this.elementsSet.has(element);
|
|
51
|
+
}
|
|
52
|
+
hasMatchingElement(predicate) {
|
|
53
|
+
for (const element of this.elementsSet) {
|
|
54
|
+
if (predicate(element)) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
getById(id) {
|
|
61
|
+
return this.idMap.get(id);
|
|
62
|
+
}
|
|
63
|
+
entries() {
|
|
64
|
+
return this.idMap.entries();
|
|
65
|
+
}
|
|
66
|
+
elements() {
|
|
67
|
+
return this.elementsSet.values();
|
|
68
|
+
}
|
|
69
|
+
get size() {
|
|
70
|
+
return this.idMap.size;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
+
0 && (module.exports = {
|
|
75
|
+
PopupTriggerMap
|
|
76
|
+
});
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var store_exports = {};
|
|
20
|
+
__export(store_exports, {
|
|
21
|
+
createInitialPopupStoreState: () => createInitialPopupStoreState,
|
|
22
|
+
createPopupFloatingRootContext: () => createPopupFloatingRootContext,
|
|
23
|
+
popupStoreSelectors: () => popupStoreSelectors
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(store_exports);
|
|
26
|
+
var import_createSelector = require("../store/createSelector.cjs");
|
|
27
|
+
var import_empty = require("../empty.cjs");
|
|
28
|
+
var import_FloatingRootStore = require("../floating/FloatingRootStore.cjs");
|
|
29
|
+
var import_getEmptyRootContext = require("../floating/getEmptyRootContext.cjs");
|
|
30
|
+
function createInitialPopupStoreState() {
|
|
31
|
+
return {
|
|
32
|
+
open: false,
|
|
33
|
+
openProp: void 0,
|
|
34
|
+
mounted: false,
|
|
35
|
+
transitionStatus: void 0,
|
|
36
|
+
floatingRootContext: (0, import_getEmptyRootContext.getEmptyRootContext)(),
|
|
37
|
+
floatingId: void 0,
|
|
38
|
+
triggerCount: 0,
|
|
39
|
+
preventUnmountingOnClose: false,
|
|
40
|
+
payload: void 0,
|
|
41
|
+
activeTriggerId: null,
|
|
42
|
+
activeTriggerElement: null,
|
|
43
|
+
triggerIdProp: void 0,
|
|
44
|
+
popupElement: null,
|
|
45
|
+
positionerElement: null,
|
|
46
|
+
activeTriggerProps: import_empty.EMPTY_OBJECT,
|
|
47
|
+
inactiveTriggerProps: import_empty.EMPTY_OBJECT,
|
|
48
|
+
popupProps: import_empty.EMPTY_OBJECT
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function createPopupFloatingRootContext(triggerElements, floatingId, nested = false) {
|
|
52
|
+
return new import_FloatingRootStore.FloatingRootStore({
|
|
53
|
+
open: false,
|
|
54
|
+
transitionStatus: void 0,
|
|
55
|
+
floatingElement: null,
|
|
56
|
+
referenceElement: null,
|
|
57
|
+
triggerElements,
|
|
58
|
+
floatingId,
|
|
59
|
+
syncOnly: true,
|
|
60
|
+
nested,
|
|
61
|
+
onOpenChange: void 0
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const activeTriggerIdSelector = (0, import_createSelector.createSelector)(
|
|
65
|
+
(state) => state.triggerIdProp ?? state.activeTriggerId
|
|
66
|
+
);
|
|
67
|
+
const openSelector = (0, import_createSelector.createSelector)((state) => state.openProp ?? state.open);
|
|
68
|
+
const popupIdSelector = (0, import_createSelector.createSelector)((state) => {
|
|
69
|
+
const popupId = state.popupElement?.id ?? state.floatingId;
|
|
70
|
+
return popupId || void 0;
|
|
71
|
+
});
|
|
72
|
+
function triggerOwnsOpenPopup(state, triggerId) {
|
|
73
|
+
return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) === triggerId;
|
|
74
|
+
}
|
|
75
|
+
function triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) {
|
|
76
|
+
if (triggerOwnsOpenPopup(state, triggerId)) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) == null && state.triggerCount === 1;
|
|
80
|
+
}
|
|
81
|
+
const popupStoreSelectors = {
|
|
82
|
+
open: openSelector,
|
|
83
|
+
mounted: (0, import_createSelector.createSelector)((state) => state.mounted),
|
|
84
|
+
transitionStatus: (0, import_createSelector.createSelector)((state) => state.transitionStatus),
|
|
85
|
+
floatingRootContext: (0, import_createSelector.createSelector)((state) => state.floatingRootContext),
|
|
86
|
+
triggerCount: (0, import_createSelector.createSelector)((state) => state.triggerCount),
|
|
87
|
+
preventUnmountingOnClose: (0, import_createSelector.createSelector)((state) => state.preventUnmountingOnClose),
|
|
88
|
+
payload: (0, import_createSelector.createSelector)((state) => state.payload),
|
|
89
|
+
activeTriggerId: activeTriggerIdSelector,
|
|
90
|
+
activeTriggerElement: (0, import_createSelector.createSelector)(
|
|
91
|
+
(state) => state.mounted ? state.activeTriggerElement : null
|
|
92
|
+
),
|
|
93
|
+
popupId: popupIdSelector,
|
|
94
|
+
isTriggerActive: (0, import_createSelector.createSelector)(
|
|
95
|
+
(state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId
|
|
96
|
+
),
|
|
97
|
+
isOpenedByTrigger: (0, import_createSelector.createSelector)(
|
|
98
|
+
(state, triggerId) => triggerOwnsOpenPopup(state, triggerId)
|
|
99
|
+
),
|
|
100
|
+
isMountedByTrigger: (0, import_createSelector.createSelector)(
|
|
101
|
+
(state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId && state.mounted
|
|
102
|
+
),
|
|
103
|
+
triggerProps: (0, import_createSelector.createSelector)(
|
|
104
|
+
(state, isActive) => isActive ? state.activeTriggerProps : state.inactiveTriggerProps
|
|
105
|
+
),
|
|
106
|
+
triggerPopupId: (0, import_createSelector.createSelector)(
|
|
107
|
+
(state, triggerId) => triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) ? popupIdSelector(state) : void 0
|
|
108
|
+
),
|
|
109
|
+
popupProps: (0, import_createSelector.createSelector)((state) => state.popupProps),
|
|
110
|
+
popupElement: (0, import_createSelector.createSelector)((state) => state.popupElement),
|
|
111
|
+
positionerElement: (0, import_createSelector.createSelector)((state) => state.positionerElement)
|
|
112
|
+
};
|
|
113
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
114
|
+
0 && (module.exports = {
|
|
115
|
+
createInitialPopupStoreState,
|
|
116
|
+
createPopupFloatingRootContext,
|
|
117
|
+
popupStoreSelectors
|
|
118
|
+
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var useTriggerFocusGuards_exports = {};
|
|
20
|
+
__export(useTriggerFocusGuards_exports, {
|
|
21
|
+
useTriggerFocusGuards: () => useTriggerFocusGuards
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(useTriggerFocusGuards_exports);
|
|
24
|
+
var import_octane = require("octane");
|
|
25
|
+
var import_internal = require("../../internal.cjs");
|
|
26
|
+
var import_element = require("../floating/element.cjs");
|
|
27
|
+
var import_tabbable = require("../floating/tabbable.cjs");
|
|
28
|
+
var import_createChangeEventDetails = require("../createChangeEventDetails.cjs");
|
|
29
|
+
function useTriggerFocusGuards(store, triggerElementRef, slot) {
|
|
30
|
+
const preFocusGuardRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "pre"));
|
|
31
|
+
function handlePreFocusGuardFocus(event) {
|
|
32
|
+
(0, import_octane.flushSync)(() => {
|
|
33
|
+
store.setOpen(
|
|
34
|
+
false,
|
|
35
|
+
(0, import_createChangeEventDetails.createChangeEventDetails)(import_createChangeEventDetails.REASONS.focusOut, event, event.currentTarget)
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
const previousTabbable = (0, import_tabbable.getTabbableBeforeElement)(
|
|
39
|
+
preFocusGuardRef.current
|
|
40
|
+
);
|
|
41
|
+
previousTabbable?.focus();
|
|
42
|
+
}
|
|
43
|
+
function handleFocusTargetFocus(event) {
|
|
44
|
+
const positionerElement = store.select("positionerElement");
|
|
45
|
+
if (positionerElement && (0, import_tabbable.isOutsideEvent)(event, positionerElement)) {
|
|
46
|
+
store.context.beforeContentFocusGuardRef.current?.focus();
|
|
47
|
+
} else {
|
|
48
|
+
(0, import_octane.flushSync)(() => {
|
|
49
|
+
store.setOpen(
|
|
50
|
+
false,
|
|
51
|
+
(0, import_createChangeEventDetails.createChangeEventDetails)(import_createChangeEventDetails.REASONS.focusOut, event, event.currentTarget)
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
let nextTabbable = (0, import_tabbable.getTabbableAfterElement)(
|
|
55
|
+
store.context.triggerFocusTargetRef.current || triggerElementRef.current
|
|
56
|
+
);
|
|
57
|
+
while (nextTabbable !== null && (0, import_element.contains)(positionerElement, nextTabbable)) {
|
|
58
|
+
const prevTabbable = nextTabbable;
|
|
59
|
+
nextTabbable = (0, import_tabbable.getNextTabbable)(nextTabbable);
|
|
60
|
+
if (nextTabbable === prevTabbable) {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
nextTabbable?.focus();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { preFocusGuardRef, handlePreFocusGuardFocus, handleFocusTargetFocus };
|
|
68
|
+
}
|
|
69
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
70
|
+
0 && (module.exports = {
|
|
71
|
+
useTriggerFocusGuards
|
|
72
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var resolveAriaLabelledBy_exports = {};
|
|
20
|
+
__export(resolveAriaLabelledBy_exports, {
|
|
21
|
+
getDefaultLabelId: () => getDefaultLabelId,
|
|
22
|
+
resolveAriaLabelledBy: () => resolveAriaLabelledBy
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(resolveAriaLabelledBy_exports);
|
|
25
|
+
function getDefaultLabelId(id) {
|
|
26
|
+
return id == null ? void 0 : `${id}-label`;
|
|
27
|
+
}
|
|
28
|
+
function resolveAriaLabelledBy(fieldLabelId, localLabelId) {
|
|
29
|
+
return fieldLabelId ?? localLabelId;
|
|
30
|
+
}
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
getDefaultLabelId,
|
|
34
|
+
resolveAriaLabelledBy
|
|
35
|
+
});
|