alinea
Version:
Headless git-based CMS
893 lines (864 loc) • 37.2 kB
JavaScript
// node_modules/@react-aria/interactions/dist/useHover.mjs
import { useState as $AWxnT$useState, useRef as $AWxnT$useRef, useEffect as $AWxnT$useEffect, useMemo as $AWxnT$useMemo } from "react";
var $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;
var $6179b936705e76d3$var$hoverCount = 0;
function $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {
$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;
setTimeout(() => {
$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;
}, 50);
}
function $6179b936705e76d3$var$handleGlobalPointerEvent(e2) {
if (e2.pointerType === "touch") $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();
}
function $6179b936705e76d3$var$setupGlobalTouchEvents() {
if (typeof document === "undefined") return;
if (typeof PointerEvent !== "undefined") document.addEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent);
else document.addEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);
$6179b936705e76d3$var$hoverCount++;
return () => {
$6179b936705e76d3$var$hoverCount--;
if ($6179b936705e76d3$var$hoverCount > 0) return;
if (typeof PointerEvent !== "undefined") document.removeEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent);
else document.removeEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);
};
}
function $6179b936705e76d3$export$ae780daf29e6d456(props) {
let { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
let [isHovered, setHovered] = (0, $AWxnT$useState)(false);
let state = (0, $AWxnT$useRef)({
isHovered: false,
ignoreEmulatedMouseEvents: false,
pointerType: "",
target: null
}).current;
(0, $AWxnT$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);
let { hoverProps, triggerHoverEnd } = (0, $AWxnT$useMemo)(() => {
let triggerHoverStart = (event, pointerType) => {
state.pointerType = pointerType;
if (isDisabled || pointerType === "touch" || state.isHovered || !event.currentTarget.contains(event.target)) return;
state.isHovered = true;
let target = event.currentTarget;
state.target = target;
if (onHoverStart) onHoverStart({
type: "hoverstart",
target,
pointerType
});
if (onHoverChange) onHoverChange(true);
setHovered(true);
};
let triggerHoverEnd2 = (event, pointerType) => {
state.pointerType = "";
state.target = null;
if (pointerType === "touch" || !state.isHovered) return;
state.isHovered = false;
let target = event.currentTarget;
if (onHoverEnd) onHoverEnd({
type: "hoverend",
target,
pointerType
});
if (onHoverChange) onHoverChange(false);
setHovered(false);
};
let hoverProps2 = {};
if (typeof PointerEvent !== "undefined") {
hoverProps2.onPointerEnter = (e2) => {
if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e2.pointerType === "mouse") return;
triggerHoverStart(e2, e2.pointerType);
};
hoverProps2.onPointerLeave = (e2) => {
if (!isDisabled && e2.currentTarget.contains(e2.target)) triggerHoverEnd2(e2, e2.pointerType);
};
} else {
hoverProps2.onTouchStart = () => {
state.ignoreEmulatedMouseEvents = true;
};
hoverProps2.onMouseEnter = (e2) => {
if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e2, "mouse");
state.ignoreEmulatedMouseEvents = false;
};
hoverProps2.onMouseLeave = (e2) => {
if (!isDisabled && e2.currentTarget.contains(e2.target)) triggerHoverEnd2(e2, "mouse");
};
}
return {
hoverProps: hoverProps2,
triggerHoverEnd: triggerHoverEnd2
};
}, [
onHoverStart,
onHoverChange,
onHoverEnd,
isDisabled,
state
]);
(0, $AWxnT$useEffect)(() => {
if (isDisabled) triggerHoverEnd({
currentTarget: state.target
}, state.pointerType);
}, [
isDisabled
]);
return {
hoverProps,
isHovered
};
}
// node_modules/@react-aria/utils/dist/useLayoutEffect.mjs
import $HgANd$react from "react";
var $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== "undefined" ? (0, $HgANd$react).useLayoutEffect : () => {
};
// node_modules/@react-aria/utils/dist/useEffectEvent.mjs
import { useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback } from "react";
function $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {
const ref = (0, $lmaYr$useRef)(null);
(0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(() => {
ref.current = fn;
}, [
fn
]);
return (0, $lmaYr$useCallback)((...args) => {
const f2 = ref.current;
return f2 === null || f2 === void 0 ? void 0 : f2(...args);
}, []);
}
// node_modules/@react-aria/utils/dist/domHelpers.mjs
var $431fbd86ca7dc216$export$b204af158042fbac = (el) => {
var _el_ownerDocument;
return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;
};
var $431fbd86ca7dc216$export$f21a1ffae260145a = (el) => {
if (el && "window" in el && el.window === el) return el;
const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);
return doc.defaultView || window;
};
// node_modules/@react-aria/utils/dist/platform.mjs
function $c87311424ea30a05$var$testUserAgent(re) {
var _window_navigator_userAgentData;
if (typeof window === "undefined" || window.navigator == null) return false;
return ((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand) => re.test(brand.brand))) || re.test(window.navigator.userAgent);
}
function $c87311424ea30a05$var$testPlatform(re) {
var _window_navigator_userAgentData;
return typeof window !== "undefined" && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;
}
function $c87311424ea30a05$var$cached(fn) {
let res = null;
return () => {
if (res == null) res = fn();
return res;
};
}
var $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testPlatform(/^Mac/i);
});
var $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testPlatform(/^iPhone/i);
});
var $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
$c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;
});
var $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();
});
var $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();
});
var $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();
});
var $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testUserAgent(/Chrome/i);
});
var $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testUserAgent(/Android/i);
});
var $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {
return $c87311424ea30a05$var$testUserAgent(/Firefox/i);
});
// node_modules/@react-aria/utils/dist/isVirtualEvent.mjs
function $6a7db85432448f7f$export$60278871457622de(event) {
if (event.mozInputSource === 0 && event.isTrusted) return true;
if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === "click" && event.buttons === 1;
return event.detail === 0 && !event.pointerType;
}
// node_modules/@react-aria/interactions/dist/utils.mjs
import { useRef as $6dfIe$useRef, useCallback as $6dfIe$useCallback } from "react";
var $8a9cb279dc87e130$export$905e7fc544a71f36 = class {
isDefaultPrevented() {
return this.nativeEvent.defaultPrevented;
}
preventDefault() {
this.defaultPrevented = true;
this.nativeEvent.preventDefault();
}
stopPropagation() {
this.nativeEvent.stopPropagation();
this.isPropagationStopped = () => true;
}
isPropagationStopped() {
return false;
}
persist() {
}
constructor(type, nativeEvent) {
this.nativeEvent = nativeEvent;
this.target = nativeEvent.target;
this.currentTarget = nativeEvent.currentTarget;
this.relatedTarget = nativeEvent.relatedTarget;
this.bubbles = nativeEvent.bubbles;
this.cancelable = nativeEvent.cancelable;
this.defaultPrevented = nativeEvent.defaultPrevented;
this.eventPhase = nativeEvent.eventPhase;
this.isTrusted = nativeEvent.isTrusted;
this.timeStamp = nativeEvent.timeStamp;
this.type = type;
}
};
function $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {
let stateRef = (0, $6dfIe$useRef)({
isFocused: false,
observer: null
});
(0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(() => {
const state = stateRef.current;
return () => {
if (state.observer) {
state.observer.disconnect();
state.observer = null;
}
};
}, []);
let dispatchBlur = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((e2) => {
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e2);
});
return (0, $6dfIe$useCallback)((e2) => {
if (e2.target instanceof HTMLButtonElement || e2.target instanceof HTMLInputElement || e2.target instanceof HTMLTextAreaElement || e2.target instanceof HTMLSelectElement) {
stateRef.current.isFocused = true;
let target = e2.target;
let onBlurHandler = (e3) => {
stateRef.current.isFocused = false;
if (target.disabled)
dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36("blur", e3));
if (stateRef.current.observer) {
stateRef.current.observer.disconnect();
stateRef.current.observer = null;
}
};
target.addEventListener("focusout", onBlurHandler, {
once: true
});
stateRef.current.observer = new MutationObserver(() => {
if (stateRef.current.isFocused && target.disabled) {
var _stateRef_current_observer;
(_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();
let relatedTargetEl = target === document.activeElement ? null : document.activeElement;
target.dispatchEvent(new FocusEvent("blur", {
relatedTarget: relatedTargetEl
}));
target.dispatchEvent(new FocusEvent("focusout", {
bubbles: true,
relatedTarget: relatedTargetEl
}));
}
});
stateRef.current.observer.observe(target, {
attributes: true,
attributeFilter: [
"disabled"
]
});
}
}, [
dispatchBlur
]);
}
// node_modules/@react-aria/interactions/dist/useFocus.mjs
import { useCallback as $hf0lj$useCallback } from "react";
function $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {
let { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props;
const onBlur = (0, $hf0lj$useCallback)((e2) => {
if (e2.target === e2.currentTarget) {
if (onBlurProp) onBlurProp(e2);
if (onFocusChange) onFocusChange(false);
return true;
}
}, [
onBlurProp,
onFocusChange
]);
const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);
const onFocus = (0, $hf0lj$useCallback)((e2) => {
const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e2.target);
if (e2.target === e2.currentTarget && ownerDocument.activeElement === e2.target) {
if (onFocusProp) onFocusProp(e2);
if (onFocusChange) onFocusChange(true);
onSyntheticFocus(e2);
}
}, [
onFocusChange,
onFocusProp,
onSyntheticFocus
]);
return {
focusProps: {
onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : void 0,
onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : void 0
}
};
}
// node_modules/@react-aria/interactions/dist/useFocusVisible.mjs
import { useState as $28AnR$useState, useEffect as $28AnR$useEffect } from "react";
var $507fabe10e71c6fb$var$currentModality = null;
var $507fabe10e71c6fb$var$changeHandlers = /* @__PURE__ */ new Set();
var $507fabe10e71c6fb$export$d90243b58daecda7 = /* @__PURE__ */ new Map();
var $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
var $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
var $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {
Tab: true,
Escape: true
};
function $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e2) {
for (let handler of $507fabe10e71c6fb$var$changeHandlers) handler(modality, e2);
}
function $507fabe10e71c6fb$var$isValidKey(e2) {
return !(e2.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e2.altKey || e2.ctrlKey || e2.key === "Control" || e2.key === "Shift" || e2.key === "Meta");
}
function $507fabe10e71c6fb$var$handleKeyboardEvent(e2) {
$507fabe10e71c6fb$var$hasEventBeforeFocus = true;
if ($507fabe10e71c6fb$var$isValidKey(e2)) {
$507fabe10e71c6fb$var$currentModality = "keyboard";
$507fabe10e71c6fb$var$triggerChangeHandlers("keyboard", e2);
}
}
function $507fabe10e71c6fb$var$handlePointerEvent(e2) {
$507fabe10e71c6fb$var$currentModality = "pointer";
if (e2.type === "mousedown" || e2.type === "pointerdown") {
$507fabe10e71c6fb$var$hasEventBeforeFocus = true;
$507fabe10e71c6fb$var$triggerChangeHandlers("pointer", e2);
}
}
function $507fabe10e71c6fb$var$handleClickEvent(e2) {
if ((0, $6a7db85432448f7f$export$60278871457622de)(e2)) {
$507fabe10e71c6fb$var$hasEventBeforeFocus = true;
$507fabe10e71c6fb$var$currentModality = "virtual";
}
}
function $507fabe10e71c6fb$var$handleFocusEvent(e2) {
if (e2.target === window || e2.target === document) return;
if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {
$507fabe10e71c6fb$var$currentModality = "virtual";
$507fabe10e71c6fb$var$triggerChangeHandlers("virtual", e2);
}
$507fabe10e71c6fb$var$hasEventBeforeFocus = false;
$507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
}
function $507fabe10e71c6fb$var$handleWindowBlur() {
$507fabe10e71c6fb$var$hasEventBeforeFocus = false;
$507fabe10e71c6fb$var$hasBlurredWindowRecently = true;
}
function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {
if (typeof window === "undefined" || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return;
const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);
const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);
let focus = windowObject.HTMLElement.prototype.focus;
windowObject.HTMLElement.prototype.focus = function() {
$507fabe10e71c6fb$var$hasEventBeforeFocus = true;
focus.apply(this, arguments);
};
documentObject.addEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
documentObject.addEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
documentObject.addEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true);
windowObject.addEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true);
windowObject.addEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false);
if (typeof PointerEvent !== "undefined") {
documentObject.addEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.addEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.addEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true);
} else {
documentObject.addEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.addEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.addEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true);
}
windowObject.addEventListener("beforeunload", () => {
$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);
}, {
once: true
});
$507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {
focus
});
}
var $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener) => {
const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);
const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);
if (loadListener) documentObject.removeEventListener("DOMContentLoaded", loadListener);
if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;
windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;
documentObject.removeEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
documentObject.removeEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
documentObject.removeEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true);
windowObject.removeEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true);
windowObject.removeEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false);
if (typeof PointerEvent !== "undefined") {
documentObject.removeEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.removeEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.removeEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true);
} else {
documentObject.removeEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.removeEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true);
documentObject.removeEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true);
}
$507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);
};
function $507fabe10e71c6fb$export$2f1888112f558a7d(element) {
const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element);
let loadListener;
if (documentObject.readyState !== "loading") $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);
else {
loadListener = () => {
$507fabe10e71c6fb$var$setupGlobalFocusEvents(element);
};
documentObject.addEventListener("DOMContentLoaded", loadListener);
}
return () => $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);
}
if (typeof document !== "undefined") $507fabe10e71c6fb$export$2f1888112f558a7d();
function $507fabe10e71c6fb$export$b9b3dfddab17db27() {
return $507fabe10e71c6fb$var$currentModality !== "pointer";
}
var $507fabe10e71c6fb$var$nonTextInputTypes = /* @__PURE__ */ new Set([
"checkbox",
"radio",
"range",
"color",
"file",
"image",
"button",
"submit",
"reset"
]);
function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e2) {
var _e_target;
const IHTMLInputElement = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e2 === null || e2 === void 0 ? void 0 : e2.target).HTMLInputElement : HTMLInputElement;
const IHTMLTextAreaElement = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e2 === null || e2 === void 0 ? void 0 : e2.target).HTMLTextAreaElement : HTMLTextAreaElement;
const IHTMLElement = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e2 === null || e2 === void 0 ? void 0 : e2.target).HTMLElement : HTMLElement;
const IKeyboardEvent = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e2 === null || e2 === void 0 ? void 0 : e2.target).KeyboardEvent : KeyboardEvent;
isTextInput = isTextInput || (e2 === null || e2 === void 0 ? void 0 : e2.target) instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(e2 === null || e2 === void 0 ? void 0 : (_e_target = e2.target) === null || _e_target === void 0 ? void 0 : _e_target.type) || (e2 === null || e2 === void 0 ? void 0 : e2.target) instanceof IHTMLTextAreaElement || (e2 === null || e2 === void 0 ? void 0 : e2.target) instanceof IHTMLElement && (e2 === null || e2 === void 0 ? void 0 : e2.target.isContentEditable);
return !(isTextInput && modality === "keyboard" && e2 instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e2.key]);
}
function $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {
$507fabe10e71c6fb$var$setupGlobalFocusEvents();
(0, $28AnR$useEffect)(() => {
let handler = (modality, e2) => {
if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e2)) return;
fn($507fabe10e71c6fb$export$b9b3dfddab17db27());
};
$507fabe10e71c6fb$var$changeHandlers.add(handler);
return () => {
$507fabe10e71c6fb$var$changeHandlers.delete(handler);
};
}, deps);
}
// node_modules/@react-aria/interactions/dist/useFocusWithin.mjs
import { useRef as $3b9Q0$useRef, useCallback as $3b9Q0$useCallback } from "react";
function $9ab94262bd0047c7$export$420e68273165f4ec(props) {
let { isDisabled, onBlurWithin, onFocusWithin, onFocusWithinChange } = props;
let state = (0, $3b9Q0$useRef)({
isFocusWithin: false
});
let onBlur = (0, $3b9Q0$useCallback)((e2) => {
if (state.current.isFocusWithin && !e2.currentTarget.contains(e2.relatedTarget)) {
state.current.isFocusWithin = false;
if (onBlurWithin) onBlurWithin(e2);
if (onFocusWithinChange) onFocusWithinChange(false);
}
}, [
onBlurWithin,
onFocusWithinChange,
state
]);
let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);
let onFocus = (0, $3b9Q0$useCallback)((e2) => {
if (!state.current.isFocusWithin && document.activeElement === e2.target) {
if (onFocusWithin) onFocusWithin(e2);
if (onFocusWithinChange) onFocusWithinChange(true);
state.current.isFocusWithin = true;
onSyntheticFocus(e2);
}
}, [
onFocusWithin,
onFocusWithinChange,
onSyntheticFocus
]);
if (isDisabled) return {
focusWithinProps: {
// These should not have been null, that would conflict in mergeProps
onFocus: void 0,
onBlur: void 0
}
};
return {
focusWithinProps: {
onFocus,
onBlur
}
};
}
// node_modules/@react-aria/focus/dist/useFocusRing.mjs
import { useRef as $isWE5$useRef, useState as $isWE5$useState, useCallback as $isWE5$useCallback } from "react";
function $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {
let { autoFocus = false, isTextInput, within } = props;
let state = (0, $isWE5$useRef)({
isFocused: false,
isFocusVisible: autoFocus || (0, $507fabe10e71c6fb$export$b9b3dfddab17db27)()
});
let [isFocused, setFocused] = (0, $isWE5$useState)(false);
let [isFocusVisibleState, setFocusVisible] = (0, $isWE5$useState)(() => state.current.isFocused && state.current.isFocusVisible);
let updateState = (0, $isWE5$useCallback)(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);
let onFocusChange = (0, $isWE5$useCallback)((isFocused2) => {
state.current.isFocused = isFocused2;
setFocused(isFocused2);
updateState();
}, [
updateState
]);
(0, $507fabe10e71c6fb$export$ec71b4b83ac08ec3)((isFocusVisible) => {
state.current.isFocusVisible = isFocusVisible;
updateState();
}, [], {
isTextInput
});
let { focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)({
isDisabled: within,
onFocusChange
});
let { focusWithinProps } = (0, $9ab94262bd0047c7$export$420e68273165f4ec)({
isDisabled: !within,
onFocusWithinChange: onFocusChange
});
return {
isFocused,
isFocusVisible: isFocusVisibleState,
focusProps: within ? focusWithinProps : focusProps
};
}
// node_modules/@headlessui/react/dist/utils/env.js
var i = Object.defineProperty;
var d = (t4, e2, n2) => e2 in t4 ? i(t4, e2, { enumerable: true, configurable: true, writable: true, value: n2 }) : t4[e2] = n2;
var r = (t4, e2, n2) => (d(t4, typeof e2 != "symbol" ? e2 + "" : e2, n2), n2);
var o = class {
constructor() {
r(this, "current", this.detect());
r(this, "handoffState", "pending");
r(this, "currentId", 0);
}
set(e2) {
this.current !== e2 && (this.handoffState = "pending", this.currentId = 0, this.current = e2);
}
reset() {
this.set(this.detect());
}
nextId() {
return ++this.currentId;
}
get isServer() {
return this.current === "server";
}
get isClient() {
return this.current === "client";
}
detect() {
return typeof window == "undefined" || typeof document == "undefined" ? "server" : "client";
}
handoff() {
this.handoffState === "pending" && (this.handoffState = "complete");
}
get isHandoffComplete() {
return this.handoffState === "complete";
}
};
var s = new o();
// node_modules/@headlessui/react/dist/utils/owner.js
function u(r3) {
return s.isServer ? null : r3 instanceof Node ? r3.ownerDocument : r3 != null && r3.hasOwnProperty("current") && r3.current instanceof Node ? r3.current.ownerDocument : document;
}
// node_modules/@headlessui/react/dist/utils/micro-task.js
function t(e2) {
typeof queueMicrotask == "function" ? queueMicrotask(e2) : Promise.resolve().then(e2).catch((o6) => setTimeout(() => {
throw o6;
}));
}
// node_modules/@headlessui/react/dist/utils/disposables.js
function o2() {
let n2 = [], r3 = { addEventListener(e2, t4, s4, a4) {
return e2.addEventListener(t4, s4, a4), r3.add(() => e2.removeEventListener(t4, s4, a4));
}, requestAnimationFrame(...e2) {
let t4 = requestAnimationFrame(...e2);
return r3.add(() => cancelAnimationFrame(t4));
}, nextFrame(...e2) {
return r3.requestAnimationFrame(() => r3.requestAnimationFrame(...e2));
}, setTimeout(...e2) {
let t4 = setTimeout(...e2);
return r3.add(() => clearTimeout(t4));
}, microTask(...e2) {
let t4 = { current: true };
return t(() => {
t4.current && e2[0]();
}), r3.add(() => {
t4.current = false;
});
}, style(e2, t4, s4) {
let a4 = e2.style.getPropertyValue(t4);
return Object.assign(e2.style, { [t4]: s4 }), this.add(() => {
Object.assign(e2.style, { [t4]: a4 });
});
}, group(e2) {
let t4 = o2();
return e2(t4), this.add(() => t4.dispose());
}, add(e2) {
return n2.includes(e2) || n2.push(e2), () => {
let t4 = n2.indexOf(e2);
if (t4 >= 0) for (let s4 of n2.splice(t4, 1)) s4();
};
}, dispose() {
for (let e2 of n2.splice(0)) e2();
} };
return r3;
}
// node_modules/@headlessui/react/dist/hooks/use-disposables.js
import { useEffect as s2, useState as o3 } from "react";
function p() {
let [e2] = o3(o2);
return s2(() => () => e2.dispose(), [e2]), e2;
}
// node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js
import { useEffect as f, useLayoutEffect as c } from "react";
var n = (e2, t4) => {
s.isServer ? f(e2, t4) : c(e2, t4);
};
// node_modules/@headlessui/react/dist/hooks/use-latest-value.js
import { useRef as t2 } from "react";
function s3(e2) {
let r3 = t2(e2);
return n(() => {
r3.current = e2;
}, [e2]), r3;
}
// node_modules/@headlessui/react/dist/hooks/use-event.js
import a from "react";
var o4 = function(t4) {
let e2 = s3(t4);
return a.useCallback((...r3) => e2.current(...r3), [e2]);
};
// node_modules/@headlessui/react/dist/hooks/use-active-press.js
import { useRef as a2, useState as m } from "react";
function E(e2) {
let t4 = e2.width / 2, n2 = e2.height / 2;
return { top: e2.clientY - n2, right: e2.clientX + t4, bottom: e2.clientY + n2, left: e2.clientX - t4 };
}
function P(e2, t4) {
return !(!e2 || !t4 || e2.right < t4.left || e2.left > t4.right || e2.bottom < t4.top || e2.top > t4.bottom);
}
function w({ disabled: e2 = false } = {}) {
let t4 = a2(null), [n2, l2] = m(false), r3 = p(), o6 = o4(() => {
t4.current = null, l2(false), r3.dispose();
}), f2 = o4((s4) => {
if (r3.dispose(), t4.current === null) {
t4.current = s4.currentTarget, l2(true);
{
let i3 = u(s4.currentTarget);
r3.addEventListener(i3, "pointerup", o6, false), r3.addEventListener(i3, "pointermove", (c2) => {
if (t4.current) {
let p2 = E(c2);
l2(P(p2, t4.current.getBoundingClientRect()));
}
}, false), r3.addEventListener(i3, "pointercancel", o6, false);
}
}
});
return { pressed: n2, pressProps: e2 ? {} : { onPointerDown: f2, onPointerUp: o6, onClick: o6 } };
}
// node_modules/@headlessui/react/dist/utils/match.js
function u2(r3, n2, ...a4) {
if (r3 in n2) {
let e2 = n2[r3];
return typeof e2 == "function" ? e2(...a4) : e2;
}
let t4 = new Error(`Tried to handle "${r3}" but there is no handler defined. Only defined handlers are: ${Object.keys(n2).map((e2) => `"${e2}"`).join(", ")}.`);
throw Error.captureStackTrace && Error.captureStackTrace(t4, u2), t4;
}
// node_modules/@headlessui/react/dist/utils/render.js
import E2, { Fragment as b, cloneElement as j, createElement as v, forwardRef as S, isValidElement as w2, useCallback as x, useRef as k } from "react";
// node_modules/@headlessui/react/dist/utils/class-names.js
function t3(...r3) {
return Array.from(new Set(r3.flatMap((n2) => typeof n2 == "string" ? n2.split(" ") : []))).filter(Boolean).join(" ");
}
// node_modules/@headlessui/react/dist/utils/render.js
var O = ((a4) => (a4[a4.None = 0] = "None", a4[a4.RenderStrategy = 1] = "RenderStrategy", a4[a4.Static = 2] = "Static", a4))(O || {});
var A = ((e2) => (e2[e2.Unmount = 0] = "Unmount", e2[e2.Hidden = 1] = "Hidden", e2))(A || {});
function L() {
let n2 = U();
return x((r3) => C({ mergeRefs: n2, ...r3 }), [n2]);
}
function C({ ourProps: n2, theirProps: r3, slot: e2, defaultTag: a4, features: s4, visible: t4 = true, name: l2, mergeRefs: i3 }) {
i3 = i3 != null ? i3 : $;
let o6 = P2(r3, n2);
if (t4) return F(o6, e2, a4, l2, i3);
let y2 = s4 != null ? s4 : 0;
if (y2 & 2) {
let { static: f2 = false, ...u4 } = o6;
if (f2) return F(u4, e2, a4, l2, i3);
}
if (y2 & 1) {
let { unmount: f2 = true, ...u4 } = o6;
return u2(f2 ? 0 : 1, { [0]() {
return null;
}, [1]() {
return F({ ...u4, hidden: true, style: { display: "none" } }, e2, a4, l2, i3);
} });
}
return F(o6, e2, a4, l2, i3);
}
function F(n2, r3 = {}, e2, a4, s4) {
let { as: t4 = e2, children: l2, refName: i3 = "ref", ...o6 } = h(n2, ["unmount", "static"]), y2 = n2.ref !== void 0 ? { [i3]: n2.ref } : {}, f2 = typeof l2 == "function" ? l2(r3) : l2;
"className" in o6 && o6.className && typeof o6.className == "function" && (o6.className = o6.className(r3)), o6["aria-labelledby"] && o6["aria-labelledby"] === o6.id && (o6["aria-labelledby"] = void 0);
let u4 = {};
if (r3) {
let d2 = false, p2 = [];
for (let [c2, T2] of Object.entries(r3)) typeof T2 == "boolean" && (d2 = true), T2 === true && p2.push(c2.replace(/([A-Z])/g, (g) => `-${g.toLowerCase()}`));
if (d2) {
u4["data-headlessui-state"] = p2.join(" ");
for (let c2 of p2) u4[`data-${c2}`] = "";
}
}
if (t4 === b && (Object.keys(m2(o6)).length > 0 || Object.keys(m2(u4)).length > 0)) if (!w2(f2) || Array.isArray(f2) && f2.length > 1) {
if (Object.keys(m2(o6)).length > 0) throw new Error(['Passing props on "Fragment"!', "", `The current component <${a4} /> is rendering a "Fragment".`, "However we need to passthrough the following props:", Object.keys(m2(o6)).concat(Object.keys(m2(u4))).map((d2) => ` - ${d2}`).join(`
`), "", "You can apply a few solutions:", ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".', "Render a single element as the child so that we can forward the props onto that element."].map((d2) => ` - ${d2}`).join(`
`)].join(`
`));
} else {
let d2 = f2.props, p2 = d2 == null ? void 0 : d2.className, c2 = typeof p2 == "function" ? (...R) => t3(p2(...R), o6.className) : t3(p2, o6.className), T2 = c2 ? { className: c2 } : {}, g = P2(f2.props, m2(h(o6, ["ref"])));
for (let R in u4) R in g && delete u4[R];
return j(f2, Object.assign({}, g, u4, y2, { ref: s4(H(f2), y2.ref) }, T2));
}
return v(t4, Object.assign({}, h(o6, ["ref"]), t4 !== b && y2, t4 !== b && u4), f2);
}
function U() {
let n2 = k([]), r3 = x((e2) => {
for (let a4 of n2.current) a4 != null && (typeof a4 == "function" ? a4(e2) : a4.current = e2);
}, []);
return (...e2) => {
if (!e2.every((a4) => a4 == null)) return n2.current = e2, r3;
};
}
function $(...n2) {
return n2.every((r3) => r3 == null) ? void 0 : (r3) => {
for (let e2 of n2) e2 != null && (typeof e2 == "function" ? e2(r3) : e2.current = r3);
};
}
function P2(...n2) {
var a4;
if (n2.length === 0) return {};
if (n2.length === 1) return n2[0];
let r3 = {}, e2 = {};
for (let s4 of n2) for (let t4 in s4) t4.startsWith("on") && typeof s4[t4] == "function" ? ((a4 = e2[t4]) != null || (e2[t4] = []), e2[t4].push(s4[t4])) : r3[t4] = s4[t4];
if (r3.disabled || r3["aria-disabled"]) for (let s4 in e2) /^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s4) && (e2[s4] = [(t4) => {
var l2;
return (l2 = t4 == null ? void 0 : t4.preventDefault) == null ? void 0 : l2.call(t4);
}]);
for (let s4 in e2) Object.assign(r3, { [s4](t4, ...l2) {
let i3 = e2[s4];
for (let o6 of i3) {
if ((t4 instanceof Event || (t4 == null ? void 0 : t4.nativeEvent) instanceof Event) && t4.defaultPrevented) return;
o6(t4, ...l2);
}
} });
return r3;
}
function _(...n2) {
var a4;
if (n2.length === 0) return {};
if (n2.length === 1) return n2[0];
let r3 = {}, e2 = {};
for (let s4 of n2) for (let t4 in s4) t4.startsWith("on") && typeof s4[t4] == "function" ? ((a4 = e2[t4]) != null || (e2[t4] = []), e2[t4].push(s4[t4])) : r3[t4] = s4[t4];
for (let s4 in e2) Object.assign(r3, { [s4](...t4) {
let l2 = e2[s4];
for (let i3 of l2) i3 == null || i3(...t4);
} });
return r3;
}
function K(n2) {
var r3;
return Object.assign(S(n2), { displayName: (r3 = n2.displayName) != null ? r3 : n2.name });
}
function m2(n2) {
let r3 = Object.assign({}, n2);
for (let e2 in r3) r3[e2] === void 0 && delete r3[e2];
return r3;
}
function h(n2, r3 = []) {
let e2 = Object.assign({}, n2);
for (let a4 of r3) a4 in e2 && delete e2[a4];
return e2;
}
function H(n2) {
return E2.version.split(".")[0] >= "19" ? n2.props.ref : n2.ref;
}
// node_modules/@headlessui/react/dist/hooks/use-id.js
import { useId as r2 } from "react";
// node_modules/@headlessui/react/dist/hooks/use-sync-refs.js
import { useEffect as l, useRef as i2 } from "react";
var u3 = Symbol();
function T(t4, n2 = true) {
return Object.assign(t4, { [u3]: n2 });
}
function y(...t4) {
let n2 = i2(t4);
l(() => {
n2.current = t4;
}, [t4]);
let c2 = o4((e2) => {
for (let o6 of n2.current) o6 != null && (typeof o6 == "function" ? o6(e2) : o6.current = e2);
});
return t4.every((e2) => e2 == null || (e2 == null ? void 0 : e2[u3])) ? void 0 : c2;
}
// node_modules/@headlessui/react/dist/components/keyboard.js
var o5 = ((r3) => (r3.Space = " ", r3.Enter = "Enter", r3.Escape = "Escape", r3.Backspace = "Backspace", r3.Delete = "Delete", r3.ArrowLeft = "ArrowLeft", r3.ArrowUp = "ArrowUp", r3.ArrowRight = "ArrowRight", r3.ArrowDown = "ArrowDown", r3.Home = "Home", r3.End = "End", r3.PageUp = "PageUp", r3.PageDown = "PageDown", r3.Tab = "Tab", r3))(o5 || {});
// node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js
import { useMemo as a3 } from "react";
function e(t4, u4) {
return a3(() => {
var n2;
if (t4.type) return t4.type;
let r3 = (n2 = t4.as) != null ? n2 : "button";
if (typeof r3 == "string" && r3.toLowerCase() === "button" || (u4 == null ? void 0 : u4.tagName) === "BUTTON" && !u4.hasAttribute("type")) return "button";
}, [t4.type, t4.as, u4]);
}
export {
$6179b936705e76d3$export$ae780daf29e6d456,
$f7dceffc5ad7768b$export$4e328f61c538687f,
s,
u,
t,
o2 as o,
p,
n,
s3 as s2,
o4 as o2,
w,
u2,
O,
L,
_,
K,
m2 as m,
r2 as r,
T,
y,
o5 as o3,
e
};