import { require_react } from "./chunk-BXEBRY3I.js"; import { __toESM } from "./chunk-V4OQ3NZ2.js"; // node_modules/use-callback-ref/dist/es2015/assignRef.js function assignRef(ref, value) { if (typeof ref === "function") { ref(value); } else if (ref) { ref.current = value; } return ref; } // node_modules/use-callback-ref/dist/es2015/useRef.js var import_react = __toESM(require_react()); function useCallbackRef(initialValue, callback) { var ref = (0, import_react.useState)(function() { return { // value value: initialValue, // last callback callback, // "memoized" public interface facade: { get current() { return ref.value; }, set current(value) { var last = ref.value; if (last !== value) { ref.value = value; ref.callback(value, last); } } } }; })[0]; ref.callback = callback; return ref.facade; } // node_modules/use-callback-ref/dist/es2015/createRef.js function createCallbackRef(callback) { var current = null; return { get current() { return current; }, set current(value) { var last = current; if (last !== value) { current = value; callback(value, last); } } }; } // node_modules/use-callback-ref/dist/es2015/mergeRef.js function mergeRefs(refs) { return createCallbackRef(function(newValue) { return refs.forEach(function(ref) { return assignRef(ref, newValue); }); }); } // node_modules/use-callback-ref/dist/es2015/useMergeRef.js var React = __toESM(require_react()); var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect; var currentValues = /* @__PURE__ */ new WeakMap(); function useMergeRefs(refs, defaultValue) { var callbackRef = useCallbackRef(defaultValue || null, function(newValue) { return refs.forEach(function(ref) { return assignRef(ref, newValue); }); }); useIsomorphicLayoutEffect(function() { var oldValue = currentValues.get(callbackRef); if (oldValue) { var prevRefs_1 = new Set(oldValue); var nextRefs_1 = new Set(refs); var current_1 = callbackRef.current; prevRefs_1.forEach(function(ref) { if (!nextRefs_1.has(ref)) { assignRef(ref, null); } }); nextRefs_1.forEach(function(ref) { if (!prevRefs_1.has(ref)) { assignRef(ref, current_1); } }); } currentValues.set(callbackRef, refs); }, [refs]); return callbackRef; } // node_modules/use-callback-ref/dist/es2015/useTransformRef.js function useTransformRef(ref, transformer) { return useCallbackRef(null, function(value) { return assignRef(ref, transformer(value)); }); } // node_modules/use-callback-ref/dist/es2015/transformRef.js function transformRef(ref, transformer) { return createCallbackRef(function(value) { return assignRef(ref, transformer(value)); }); } // node_modules/use-callback-ref/dist/es2015/refToCallback.js function refToCallback(ref) { return function(newValue) { if (typeof ref === "function") { ref(newValue); } else if (ref) { ref.current = newValue; } }; } var nullCallback = function() { return null; }; var weakMem = /* @__PURE__ */ new WeakMap(); var weakMemoize = function(ref) { var usedRef = ref || nullCallback; var storedRef = weakMem.get(usedRef); if (storedRef) { return storedRef; } var cb = refToCallback(usedRef); weakMem.set(usedRef, cb); return cb; }; function useRefToCallback(ref) { return weakMemoize(ref); } export { assignRef, createCallbackRef, mergeRefs, refToCallback, transformRef, useCallbackRef, useMergeRefs, useRefToCallback, useTransformRef }; //# sourceMappingURL=use-callback-ref.js.map