@tamagui/animations-css 2.1.0 → 2.2.0-1781071309197
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/createAnimations.cjs +28 -14
- package/dist/cjs/createAnimations.native.js +30 -14
- package/dist/cjs/createAnimations.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/createAnimations.mjs +28 -14
- package/dist/esm/createAnimations.mjs.map +1 -1
- package/dist/esm/createAnimations.native.js +30 -14
- package/dist/esm/createAnimations.native.js.map +1 -1
- package/package.json +7 -7
- package/src/createAnimations.tsx +35 -25
- package/types/createAnimations.d.ts.map +1 -1
|
@@ -217,6 +217,9 @@ function createAnimations(animations) {
|
|
|
217
217
|
const exitCompletedRef = import_react.default.useRef(false);
|
|
218
218
|
const wasExitingRef = import_react.default.useRef(false);
|
|
219
219
|
const exitInterruptedRef = import_react.default.useRef(false);
|
|
220
|
+
const sendExitCompleteRef = import_react.default.useRef(sendExitComplete);
|
|
221
|
+
const lastNonExitingStyleRef = import_react.default.useRef({});
|
|
222
|
+
sendExitCompleteRef.current = sendExitComplete;
|
|
220
223
|
const justStartedExiting = isExiting && !wasExitingRef.current;
|
|
221
224
|
const justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
222
225
|
if (justStartedExiting) {
|
|
@@ -230,6 +233,14 @@ function createAnimations(animations) {
|
|
|
230
233
|
import_react.default.useEffect(() => {
|
|
231
234
|
wasExitingRef.current = isExiting;
|
|
232
235
|
});
|
|
236
|
+
(0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
237
|
+
const host = stateRef.current.host;
|
|
238
|
+
if (isExiting || !host) return;
|
|
239
|
+
const computedStyle = getComputedStyle(host);
|
|
240
|
+
lastNonExitingStyleRef.current = {
|
|
241
|
+
opacity: computedStyle.opacity
|
|
242
|
+
};
|
|
243
|
+
});
|
|
233
244
|
const effectiveTransition = styleState?.effectiveTransition ?? props.transition;
|
|
234
245
|
const normalized = (0, import_animation_helpers.normalizeTransition)(effectiveTransition);
|
|
235
246
|
const animationState = isExiting ? "exit" : isEntering || justFinishedEntering ? "enter" : "default";
|
|
@@ -257,7 +268,7 @@ function createAnimations(animations) {
|
|
|
257
268
|
if (cycleId !== exitCycleIdRef.current) return;
|
|
258
269
|
if (exitCompletedRef.current) return;
|
|
259
270
|
exitCompletedRef.current = true;
|
|
260
|
-
|
|
271
|
+
sendExitCompleteRef.current?.();
|
|
261
272
|
};
|
|
262
273
|
if (keys.length === 0) {
|
|
263
274
|
completeExit();
|
|
@@ -285,18 +296,24 @@ function createAnimations(animations) {
|
|
|
285
296
|
}
|
|
286
297
|
return animationValue ? `${key} ${animationValue}${delayStr2}` : null;
|
|
287
298
|
}).filter(Boolean).join(", ");
|
|
299
|
+
const getResetValue = key => {
|
|
300
|
+
if (key === "opacity") {
|
|
301
|
+
return style?.opacity ?? props.opacity ?? lastNonExitingStyleRef.current.opacity ?? 1;
|
|
302
|
+
}
|
|
303
|
+
if (TRANSFORM_KEYS.includes(key)) {
|
|
304
|
+
return key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
305
|
+
}
|
|
306
|
+
return enterStyle?.[key];
|
|
307
|
+
};
|
|
288
308
|
if (wasInterrupted) {
|
|
289
309
|
exitInterruptedRef.current = false;
|
|
290
310
|
node.style.transition = "none";
|
|
291
311
|
if (exitStyle) {
|
|
292
312
|
const resetStyle = {};
|
|
293
313
|
for (const key of Object.keys(exitStyle)) {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
resetStyle[key] = key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
298
|
-
} else if (enterStyle?.[key] !== void 0) {
|
|
299
|
-
resetStyle[key] = enterStyle[key];
|
|
314
|
+
const resetValue = getResetValue(key);
|
|
315
|
+
if (resetValue !== void 0) {
|
|
316
|
+
resetStyle[key] = resetValue;
|
|
300
317
|
}
|
|
301
318
|
}
|
|
302
319
|
applyStylesToNode(node, resetStyle);
|
|
@@ -310,12 +327,9 @@ function createAnimations(animations) {
|
|
|
310
327
|
node.style.transition = "none";
|
|
311
328
|
const resetStyle = {};
|
|
312
329
|
for (const key of Object.keys(exitStyle)) {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
resetStyle[key] = key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
317
|
-
} else if (enterStyle?.[key] !== void 0) {
|
|
318
|
-
resetStyle[key] = enterStyle[key];
|
|
330
|
+
const resetValue = getResetValue(key);
|
|
331
|
+
if (resetValue !== void 0) {
|
|
332
|
+
resetStyle[key] = resetValue;
|
|
319
333
|
}
|
|
320
334
|
}
|
|
321
335
|
applyStylesToNode(node, resetStyle);
|
|
@@ -379,7 +393,7 @@ function createAnimations(animations) {
|
|
|
379
393
|
node.removeEventListener("transitioncancel", onCancelAnimation);
|
|
380
394
|
node.style.transition = "";
|
|
381
395
|
};
|
|
382
|
-
}, [
|
|
396
|
+
}, [isExiting]);
|
|
383
397
|
if (isHydrating) {
|
|
384
398
|
return null;
|
|
385
399
|
}
|
|
@@ -252,6 +252,9 @@ function createAnimations(animations) {
|
|
|
252
252
|
var exitCompletedRef = import_react.default.useRef(false);
|
|
253
253
|
var wasExitingRef = import_react.default.useRef(false);
|
|
254
254
|
var exitInterruptedRef = import_react.default.useRef(false);
|
|
255
|
+
var sendExitCompleteRef = import_react.default.useRef(sendExitComplete);
|
|
256
|
+
var lastNonExitingStyleRef = import_react.default.useRef({});
|
|
257
|
+
sendExitCompleteRef.current = sendExitComplete;
|
|
255
258
|
var justStartedExiting = isExiting && !wasExitingRef.current;
|
|
256
259
|
var justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
257
260
|
if (justStartedExiting) {
|
|
@@ -265,6 +268,14 @@ function createAnimations(animations) {
|
|
|
265
268
|
import_react.default.useEffect(function () {
|
|
266
269
|
wasExitingRef.current = isExiting;
|
|
267
270
|
});
|
|
271
|
+
(0, import_constants.useIsomorphicLayoutEffect)(function () {
|
|
272
|
+
var host = stateRef.current.host;
|
|
273
|
+
if (isExiting || !host) return;
|
|
274
|
+
var computedStyle = getComputedStyle(host);
|
|
275
|
+
lastNonExitingStyleRef.current = {
|
|
276
|
+
opacity: computedStyle.opacity
|
|
277
|
+
};
|
|
278
|
+
});
|
|
268
279
|
var _styleState_effectiveTransition;
|
|
269
280
|
var effectiveTransition = (_styleState_effectiveTransition = styleState === null || styleState === void 0 ? void 0 : styleState.effectiveTransition) !== null && _styleState_effectiveTransition !== void 0 ? _styleState_effectiveTransition : props.transition;
|
|
270
281
|
var normalized = (0, import_animation_helpers.normalizeTransition)(effectiveTransition);
|
|
@@ -291,10 +302,11 @@ function createAnimations(animations) {
|
|
|
291
302
|
var node = host;
|
|
292
303
|
var cycleId = exitCycleIdRef.current;
|
|
293
304
|
var completeExit = function () {
|
|
305
|
+
var _sendExitCompleteRef_current;
|
|
294
306
|
if (cycleId !== exitCycleIdRef.current) return;
|
|
295
307
|
if (exitCompletedRef.current) return;
|
|
296
308
|
exitCompletedRef.current = true;
|
|
297
|
-
|
|
309
|
+
(_sendExitCompleteRef_current = sendExitCompleteRef.current) === null || _sendExitCompleteRef_current === void 0 ? void 0 : _sendExitCompleteRef_current.call(sendExitCompleteRef);
|
|
298
310
|
};
|
|
299
311
|
if (keys.length === 0) {
|
|
300
312
|
completeExit();
|
|
@@ -322,6 +334,16 @@ function createAnimations(animations) {
|
|
|
322
334
|
}
|
|
323
335
|
return animationValue2 ? `${key2} ${animationValue2}${delayStr2}` : null;
|
|
324
336
|
}).filter(Boolean).join(", ");
|
|
337
|
+
var getResetValue = function (key2) {
|
|
338
|
+
if (key2 === "opacity") {
|
|
339
|
+
var _style_opacity, _ref, _ref1;
|
|
340
|
+
return (_ref1 = (_ref = (_style_opacity = style === null || style === void 0 ? void 0 : style.opacity) !== null && _style_opacity !== void 0 ? _style_opacity : props.opacity) !== null && _ref !== void 0 ? _ref : lastNonExitingStyleRef.current.opacity) !== null && _ref1 !== void 0 ? _ref1 : 1;
|
|
341
|
+
}
|
|
342
|
+
if (TRANSFORM_KEYS.includes(key2)) {
|
|
343
|
+
return key2 === "scale" || key2 === "scaleX" || key2 === "scaleY" ? 1 : 0;
|
|
344
|
+
}
|
|
345
|
+
return enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key2];
|
|
346
|
+
};
|
|
325
347
|
if (wasInterrupted) {
|
|
326
348
|
exitInterruptedRef.current = false;
|
|
327
349
|
node.style.transition = "none";
|
|
@@ -333,12 +355,9 @@ function createAnimations(animations) {
|
|
|
333
355
|
try {
|
|
334
356
|
for (var _iterator = Object.keys(exitStyle)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
335
357
|
var key = _step.value;
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
resetStyle[key] = key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
340
|
-
} else if ((enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key]) !== void 0) {
|
|
341
|
-
resetStyle[key] = enterStyle[key];
|
|
358
|
+
var resetValue = getResetValue(key);
|
|
359
|
+
if (resetValue !== void 0) {
|
|
360
|
+
resetStyle[key] = resetValue;
|
|
342
361
|
}
|
|
343
362
|
}
|
|
344
363
|
} catch (err) {
|
|
@@ -371,12 +390,9 @@ function createAnimations(animations) {
|
|
|
371
390
|
try {
|
|
372
391
|
for (var _iterator1 = Object.keys(exitStyle)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
373
392
|
var key1 = _step1.value;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
resetStyle1[key1] = key1 === "scale" || key1 === "scaleX" || key1 === "scaleY" ? 1 : 0;
|
|
378
|
-
} else if ((enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key1]) !== void 0) {
|
|
379
|
-
resetStyle1[key1] = enterStyle[key1];
|
|
393
|
+
var resetValue1 = getResetValue(key1);
|
|
394
|
+
if (resetValue1 !== void 0) {
|
|
395
|
+
resetStyle1[key1] = resetValue1;
|
|
380
396
|
}
|
|
381
397
|
}
|
|
382
398
|
} catch (err) {
|
|
@@ -474,7 +490,7 @@ function createAnimations(animations) {
|
|
|
474
490
|
node.removeEventListener("transitioncancel", onCancelAnimation);
|
|
475
491
|
node.style.transition = "";
|
|
476
492
|
};
|
|
477
|
-
}, [
|
|
493
|
+
}, [isExiting]);
|
|
478
494
|
if (isHydrating) {
|
|
479
495
|
return null;
|
|
480
496
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createAnimations_exports","__export","createAnimations","module","exports","import_animation_helpers","require","import_constants","import_use_presence","import_web","import_react","__toESM","_type_of","obj","Symbol","constructor","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","_style_x","_style_y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","key","opacity","String","backgroundColor","color","err","return","animations","reactionListeners","WeakMap","usePresence","ResetPresence","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","default","useState","finishTimerRef","useRef","getInstance","getValue","setValue","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","get","forEach","listener","stop","useAnimatedNumberReaction","param","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","_normalized_config","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","justStartedExiting","justStoppedExiting","_styleState_effectiveTransition","effectiveTransition","transition","normalized","normalizeTransition","animationState","effectiveAnimationKey","getEffectiveAnimation","defaultAnimation","animatedProperties","getAnimatedProperties","hasDefault","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","useIsomorphicLayoutEffect","_normalized_config2","host","cycleId","completeExit","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr2","delay","durationOverride2","exitTransitionString","key2","propAnimation","properties","animationValue2","filter","Boolean","resetStyle","offsetHeight","resetStyle1","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","key1","requestAnimationFrame","maxDuration","animationConfigs","getAnimationConfigsForKeys","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","values","_step2","animationValue","_normalized_delay","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","target","eventProp","propertyName","has","size"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","createAnimations_exports","createAnimations","module","exports","import_animation_helpers","require","import_constants","import_use_presence","import_web","import_react","_type_of","obj","Symbol","constructor","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","_style_x","_style_y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","entries","iterator","_step","next","done","opacity","String","backgroundColor","color","err","return","animations","reactionListeners","WeakMap","usePresence","ResetPresence","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","default","useState","finishTimerRef","useRef","getInstance","getValue","setValue","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","forEach","listener","stop","useAnimatedNumberReaction","param","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","_normalized_config","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","sendExitCompleteRef","lastNonExitingStyleRef","justStartedExiting","justStoppedExiting","useIsomorphicLayoutEffect","host","computedStyle","getComputedStyle","_styleState_effectiveTransition","effectiveTransition","transition","normalized","normalizeTransition","animationState","effectiveAnimationKey","getEffectiveAnimation","defaultAnimation","animatedProperties","getAnimatedProperties","hasDefault","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","_normalized_config2","cycleId","completeExit","_sendExitCompleteRef_current","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr2","delay","durationOverride2","exitTransitionString","key2","propAnimation","properties","animationValue2","filter","Boolean","getResetValue","_style_opacity","_ref","_ref1","resetStyle","resetValue","offsetHeight","resetStyle1","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","key1","resetValue1","requestAnimationFrame","maxDuration","animationConfigs","getAnimationConfigsForKeys","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","values","_step2","animationValue","_normalized_delay","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","eventProp","propertyName","has","size","onCancelAnimation","addEventListener","cancelAnimationFrame","removeEventListener","hasAnimation","Array","isArray","transformsToString","delayStr","durationOverride","process","env","NODE_ENV","console","info","className"],"sources":["createAnimations.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar createAnimations_exports = {};\n__export(createAnimations_exports, {\n createAnimations: () => createAnimations\n});\nmodule.exports = __toCommonJS(createAnimations_exports);\nvar import_animation_helpers = require(\"@tamagui/animation-helpers\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_use_presence = require(\"@tamagui/use-presence\");\nvar import_web = require(\"@tamagui/web\");\nvar import_react = __toESM(require(\"react\"), 1);\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar EXTRACT_MS_REGEX = /(\\d+(?:\\.\\d+)?)\\s*ms/;\nvar EXTRACT_S_REGEX = /(\\d+(?:\\.\\d+)?)\\s*s/;\nfunction extractDuration(animation) {\n var msMatch = animation.match(EXTRACT_MS_REGEX);\n if (msMatch) {\n return Number.parseInt(msMatch[1], 10);\n }\n var sMatch = animation.match(EXTRACT_S_REGEX);\n if (sMatch) {\n return Math.round(Number.parseFloat(sMatch[1]) * 1e3);\n }\n return 300;\n}\nvar MS_DURATION_REGEX = /(\\d+(?:\\.\\d+)?)\\s*ms/;\nvar S_DURATION_REGEX = /(\\d+(?:\\.\\d+)?)\\s*s(?!tiffness)/;\nfunction applyDurationOverride(animation, durationMs) {\n var msReplaced = animation.replace(MS_DURATION_REGEX, `${durationMs}ms`);\n if (msReplaced !== animation) {\n return msReplaced;\n }\n var sReplaced = animation.replace(S_DURATION_REGEX, `${durationMs}ms`);\n if (sReplaced !== animation) {\n return sReplaced;\n }\n return `${durationMs}ms ${animation}`;\n}\nvar TRANSFORM_KEYS = [\n \"x\",\n \"y\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skewX\",\n \"skewY\"\n];\nfunction buildTransformString(style) {\n if (!style) return \"\";\n var parts = [];\n if (style.x !== void 0 || style.y !== void 0) {\n var _style_x;\n var x = (_style_x = style.x) !== null && _style_x !== void 0 ? _style_x : 0;\n var _style_y;\n var y = (_style_y = style.y) !== null && _style_y !== void 0 ? _style_y : 0;\n parts.push(`translate(${x}px, ${y}px)`);\n }\n if (style.scale !== void 0) {\n parts.push(`scale(${style.scale})`);\n }\n if (style.scaleX !== void 0) {\n parts.push(`scaleX(${style.scaleX})`);\n }\n if (style.scaleY !== void 0) {\n parts.push(`scaleY(${style.scaleY})`);\n }\n if (style.rotate !== void 0) {\n var val = style.rotate;\n var unit = typeof val === \"string\" && val.includes(\"deg\") ? \"\" : \"deg\";\n parts.push(`rotate(${val}${unit})`);\n }\n if (style.rotateX !== void 0) {\n parts.push(`rotateX(${style.rotateX}deg)`);\n }\n if (style.rotateY !== void 0) {\n parts.push(`rotateY(${style.rotateY}deg)`);\n }\n if (style.rotateZ !== void 0) {\n parts.push(`rotateZ(${style.rotateZ}deg)`);\n }\n if (style.skewX !== void 0) {\n parts.push(`skewX(${style.skewX}deg)`);\n }\n if (style.skewY !== void 0) {\n parts.push(`skewY(${style.skewY}deg)`);\n }\n return parts.join(\" \");\n}\nfunction applyStylesToNode(node, style) {\n if (!style) return;\n var transformStr = buildTransformString(style);\n if (transformStr) {\n node.style.transform = transformStr;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(style)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n if (TRANSFORM_KEYS.includes(key)) continue;\n if (value === void 0) continue;\n if (key === \"opacity\") {\n node.style.opacity = String(value);\n } else if (key === \"backgroundColor\") {\n node.style.backgroundColor = String(value);\n } else if (key === \"color\") {\n node.style.color = String(value);\n } else {\n node.style[key] = typeof value === \"number\" ? `${value}px` : String(value);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction createAnimations(animations) {\n var reactionListeners = /* @__PURE__ */ new WeakMap();\n return {\n animations,\n usePresence: import_use_presence.usePresence,\n ResetPresence: import_use_presence.ResetPresence,\n inputStyle: \"css\",\n outputStyle: \"css\",\n useAnimatedNumber(initial) {\n var [val, setVal] = import_react.default.useState(initial);\n var finishTimerRef = import_react.default.useRef(null);\n return {\n getInstance() {\n return setVal;\n },\n getValue() {\n return val;\n },\n setValue(next, config, onFinish) {\n setVal(next);\n if (finishTimerRef.current) {\n clearTimeout(finishTimerRef.current);\n finishTimerRef.current = null;\n }\n if (onFinish) {\n if (!config || config.type === \"direct\" || config.type === \"timing\" && config.duration === 0) {\n onFinish();\n } else {\n var duration = config.type === \"timing\" ? config.duration : 300;\n finishTimerRef.current = setTimeout(onFinish, duration);\n }\n }\n var listeners = reactionListeners.get(setVal);\n if (listeners) {\n listeners.forEach(function(listener) {\n return listener(next);\n });\n }\n },\n stop() {\n if (finishTimerRef.current) {\n clearTimeout(finishTimerRef.current);\n finishTimerRef.current = null;\n }\n }\n };\n },\n useAnimatedNumberReaction(param, onValue) {\n var { value } = param;\n import_react.default.useEffect(function() {\n var instance = value.getInstance();\n var queue = reactionListeners.get(instance);\n if (!queue) {\n var next = /* @__PURE__ */ new Set();\n reactionListeners.set(instance, next);\n queue = next;\n }\n queue.add(onValue);\n return function() {\n queue === null || queue === void 0 ? void 0 : queue.delete(onValue);\n };\n }, []);\n },\n useAnimatedNumberStyle(val, getStyle) {\n return getStyle(val.getValue());\n },\n useAnimatedNumbersStyle(vals, getStyle) {\n return getStyle(...vals.map(function(v) {\n return v.getValue();\n }));\n },\n // @ts-ignore - styleState is added by createComponent\n useAnimations: function(param) {\n var { props, presence, style, componentState, stateRef, styleState } = param;\n var _normalized_config;\n var isHydrating = componentState.unmounted === true;\n var isEntering = !!componentState.unmounted;\n var isExiting = (presence === null || presence === void 0 ? void 0 : presence[0]) === false;\n var sendExitComplete = presence === null || presence === void 0 ? void 0 : presence[1];\n var wasEnteringRef = import_react.default.useRef(isEntering);\n var justFinishedEntering = wasEnteringRef.current && !isEntering;\n import_react.default.useEffect(function() {\n wasEnteringRef.current = isEntering;\n });\n var exitCycleIdRef = import_react.default.useRef(0);\n var exitCompletedRef = import_react.default.useRef(false);\n var wasExitingRef = import_react.default.useRef(false);\n var exitInterruptedRef = import_react.default.useRef(false);\n var sendExitCompleteRef = import_react.default.useRef(sendExitComplete);\n var lastNonExitingStyleRef = import_react.default.useRef({});\n sendExitCompleteRef.current = sendExitComplete;\n var justStartedExiting = isExiting && !wasExitingRef.current;\n var justStoppedExiting = !isExiting && wasExitingRef.current;\n if (justStartedExiting) {\n exitCycleIdRef.current++;\n exitCompletedRef.current = false;\n }\n if (justStoppedExiting) {\n exitCycleIdRef.current++;\n exitInterruptedRef.current = true;\n }\n import_react.default.useEffect(function() {\n wasExitingRef.current = isExiting;\n });\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var host = stateRef.current.host;\n if (isExiting || !host) return;\n var computedStyle = getComputedStyle(host);\n lastNonExitingStyleRef.current = {\n opacity: computedStyle.opacity\n };\n });\n var _styleState_effectiveTransition;\n var effectiveTransition = (_styleState_effectiveTransition = styleState === null || styleState === void 0 ? void 0 : styleState.effectiveTransition) !== null && _styleState_effectiveTransition !== void 0 ? _styleState_effectiveTransition : props.transition;\n var normalized = (0, import_animation_helpers.normalizeTransition)(effectiveTransition);\n var animationState = isExiting ? \"exit\" : isEntering || justFinishedEntering ? \"enter\" : \"default\";\n var effectiveAnimationKey = (0, import_animation_helpers.getEffectiveAnimation)(normalized, animationState);\n var defaultAnimation = effectiveAnimationKey ? animations[effectiveAnimationKey] : null;\n var animatedProperties = (0, import_animation_helpers.getAnimatedProperties)(normalized);\n var hasDefault = normalized.default !== null || normalized.enter !== null || normalized.exit !== null;\n var hasPerPropertyConfigs = animatedProperties.length > 0;\n var keys;\n if (props.animateOnly) {\n keys = props.animateOnly;\n } else if (hasPerPropertyConfigs && !hasDefault) {\n keys = animatedProperties;\n } else if (hasPerPropertyConfigs && hasDefault) {\n keys = [\n \"all\",\n ...animatedProperties\n ];\n } else {\n keys = [\n \"all\"\n ];\n }\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var _normalized_config2;\n var host = stateRef.current.host;\n if (!sendExitComplete || !isExiting || !host) return;\n var node = host;\n var cycleId = exitCycleIdRef.current;\n var completeExit = function() {\n var _sendExitCompleteRef_current;\n if (cycleId !== exitCycleIdRef.current) return;\n if (exitCompletedRef.current) return;\n exitCompletedRef.current = true;\n (_sendExitCompleteRef_current = sendExitCompleteRef.current) === null || _sendExitCompleteRef_current === void 0 ? void 0 : _sendExitCompleteRef_current.call(sendExitCompleteRef);\n };\n if (keys.length === 0) {\n completeExit();\n return;\n }\n var rafId;\n var wasInterrupted = exitInterruptedRef.current;\n var ignoreCancelEvents = wasInterrupted;\n var enterStyle = props.enterStyle;\n var exitStyle = props.exitStyle;\n var delayStr2 = normalized.delay ? ` ${normalized.delay}ms` : \"\";\n var durationOverride2 = (_normalized_config2 = normalized.config) === null || _normalized_config2 === void 0 ? void 0 : _normalized_config2.duration;\n var exitTransitionString = keys.map(function(key2) {\n var propAnimation = normalized.properties[key2];\n var animationValue2 = null;\n if (typeof propAnimation === \"string\") {\n animationValue2 = animations[propAnimation];\n } else if (propAnimation && (typeof propAnimation === \"undefined\" ? \"undefined\" : _type_of(propAnimation)) === \"object\" && propAnimation.type) {\n animationValue2 = animations[propAnimation.type];\n } else if (defaultAnimation) {\n animationValue2 = defaultAnimation;\n }\n if (animationValue2 && durationOverride2) {\n animationValue2 = applyDurationOverride(animationValue2, durationOverride2);\n }\n return animationValue2 ? `${key2} ${animationValue2}${delayStr2}` : null;\n }).filter(Boolean).join(\", \");\n var getResetValue = function(key2) {\n if (key2 === \"opacity\") {\n var _style_opacity, _ref, _ref1;\n return (_ref1 = (_ref = (_style_opacity = style === null || style === void 0 ? void 0 : style.opacity) !== null && _style_opacity !== void 0 ? _style_opacity : props.opacity) !== null && _ref !== void 0 ? _ref : lastNonExitingStyleRef.current.opacity) !== null && _ref1 !== void 0 ? _ref1 : 1;\n }\n if (TRANSFORM_KEYS.includes(key2)) {\n return key2 === \"scale\" || key2 === \"scaleX\" || key2 === \"scaleY\" ? 1 : 0;\n }\n return enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key2];\n };\n if (wasInterrupted) {\n exitInterruptedRef.current = false;\n node.style.transition = \"none\";\n if (exitStyle) {\n var resetStyle = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.keys(exitStyle)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var resetValue = getResetValue(key);\n if (resetValue !== void 0) {\n resetStyle[key] = resetValue;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n applyStylesToNode(node, resetStyle);\n } else {\n node.style.opacity = \"1\";\n node.style.transform = \"none\";\n }\n void node.offsetHeight;\n } else if (exitStyle) {\n ignoreCancelEvents = true;\n node.style.transition = \"none\";\n var resetStyle1 = {};\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = Object.keys(exitStyle)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var key1 = _step1.value;\n var resetValue1 = getResetValue(key1);\n if (resetValue1 !== void 0) {\n resetStyle1[key1] = resetValue1;\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n applyStylesToNode(node, resetStyle1);\n void node.offsetHeight;\n rafId = requestAnimationFrame(function() {\n if (cycleId !== exitCycleIdRef.current) return;\n node.style.transition = exitTransitionString;\n void node.offsetHeight;\n applyStylesToNode(node, exitStyle);\n ignoreCancelEvents = false;\n });\n }\n var maxDuration = defaultAnimation ? extractDuration(defaultAnimation) : 200;\n var animationConfigs = (0, import_animation_helpers.getAnimationConfigsForKeys)(normalized, animations, keys, defaultAnimation);\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = animationConfigs.values()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var animationValue = _step2.value;\n if (animationValue) {\n var duration = extractDuration(animationValue);\n if (duration > maxDuration) {\n maxDuration = duration;\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n var _normalized_delay;\n var delay = (_normalized_delay = normalized.delay) !== null && _normalized_delay !== void 0 ? _normalized_delay : 0;\n var fallbackTimeout = maxDuration + delay;\n var timeoutId = setTimeout(function() {\n completeExit();\n }, fallbackTimeout);\n var transitioningProps = new Set(keys);\n var completedCount = 0;\n var onFinishAnimation = function(event) {\n if (event.target !== node) return;\n var eventProp = event.propertyName;\n if (transitioningProps.has(eventProp) || eventProp === \"all\") {\n completedCount++;\n if (completedCount >= transitioningProps.size) {\n clearTimeout(timeoutId);\n completeExit();\n }\n }\n };\n var onCancelAnimation = function() {\n if (ignoreCancelEvents) return;\n clearTimeout(timeoutId);\n completeExit();\n };\n node.addEventListener(\"transitionend\", onFinishAnimation);\n node.addEventListener(\"transitioncancel\", onCancelAnimation);\n if (wasInterrupted) {\n rafId = requestAnimationFrame(function() {\n if (cycleId !== exitCycleIdRef.current) return;\n node.style.transition = exitTransitionString;\n void node.offsetHeight;\n applyStylesToNode(node, exitStyle);\n ignoreCancelEvents = false;\n });\n }\n return function() {\n clearTimeout(timeoutId);\n if (rafId !== void 0) cancelAnimationFrame(rafId);\n node.removeEventListener(\"transitionend\", onFinishAnimation);\n node.removeEventListener(\"transitioncancel\", onCancelAnimation);\n node.style.transition = \"\";\n };\n }, [\n isExiting\n ]);\n if (isHydrating) {\n return null;\n }\n if (!(0, import_animation_helpers.hasAnimation)(normalized)) {\n return null;\n }\n if (Array.isArray(style.transform)) {\n style.transform = (0, import_web.transformsToString)(style.transform);\n }\n var delayStr = normalized.delay ? ` ${normalized.delay}ms` : \"\";\n var durationOverride = (_normalized_config = normalized.config) === null || _normalized_config === void 0 ? void 0 : _normalized_config.duration;\n style.transition = keys.map(function(key) {\n var propAnimation = normalized.properties[key];\n var animationValue = null;\n if (typeof propAnimation === \"string\") {\n animationValue = animations[propAnimation];\n } else if (propAnimation && (typeof propAnimation === \"undefined\" ? \"undefined\" : _type_of(propAnimation)) === \"object\" && propAnimation.type) {\n animationValue = animations[propAnimation.type];\n } else if (defaultAnimation) {\n animationValue = defaultAnimation;\n }\n if (animationValue && durationOverride) {\n animationValue = applyDurationOverride(animationValue, durationOverride);\n }\n return animationValue ? `${key} ${animationValue}${delayStr}` : null;\n }).filter(Boolean).join(\", \");\n if (process.env.NODE_ENV === \"development\" && props[\"debug\"] === \"verbose\") {\n console.info(\"CSS animation\", {\n props,\n animations,\n normalized,\n defaultAnimation,\n style,\n isEntering,\n isExiting\n });\n }\n return {\n style,\n className: isEntering ? \"t_unmounted\" : \"\"\n };\n }\n };\n}\n//# sourceMappingURL=createAnimations.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__copyProps","to","from","except","desc","key","call","get","enumerable","__reExport","target","mod","secondTarget","__toCommonJS","value","index_exports","module","exports","require"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./createAnimations\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIV,iBAAiB,CAACO,IAAI,CAAC,EACrC,IAAI,CAACL,YAAY,CAACS,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/Cb,SAAS,CAACW,EAAE,EAAEI,GAAG,EAAE;MAAEE,GAAG,EAAEA,CAAA,KAAML,IAAI,CAACG,GAAG,CAAC;MAAEG,UAAU,EAAE,EAAEJ,IAAI,GAAGX,gBAAgB,CAACS,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACI;IAAW,CAAC,CAAC;EACxH;EACA,OAAOP,EAAE;AACX,CAAC;AACD,IAAIQ,UAAU,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAEC,YAAY,MAAMZ,WAAW,CAACU,MAAM,EAAEC,GAAG,EAAE,SAAS,CAAC,EAAEC,YAAY,IAAIZ,WAAW,CAACY,YAAY,EAAED,GAAG,EAAE,SAAS,CAAC,CAAC;AAChJ,IAAIE,YAAY,GAAIF,GAAG,IAAKX,WAAW,CAACV,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEwB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAEH,GAAG,CAAC;AAC1F,IAAII,aAAa,GAAG,CAAC,CAAC;AACtBC,MAAM,CAACC,OAAO,GAAGJ,YAAY,CAACE,aAAa,CAAC;AAC5CN,UAAU,CAACM,aAAa,EAAEG,OAAO,CAAC,8BAAoB,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC","ignoreList":[]}
|
|
@@ -179,6 +179,9 @@ function createAnimations(animations) {
|
|
|
179
179
|
const exitCompletedRef = React.useRef(false);
|
|
180
180
|
const wasExitingRef = React.useRef(false);
|
|
181
181
|
const exitInterruptedRef = React.useRef(false);
|
|
182
|
+
const sendExitCompleteRef = React.useRef(sendExitComplete);
|
|
183
|
+
const lastNonExitingStyleRef = React.useRef({});
|
|
184
|
+
sendExitCompleteRef.current = sendExitComplete;
|
|
182
185
|
const justStartedExiting = isExiting && !wasExitingRef.current;
|
|
183
186
|
const justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
184
187
|
if (justStartedExiting) {
|
|
@@ -192,6 +195,14 @@ function createAnimations(animations) {
|
|
|
192
195
|
React.useEffect(() => {
|
|
193
196
|
wasExitingRef.current = isExiting;
|
|
194
197
|
});
|
|
198
|
+
useIsomorphicLayoutEffect(() => {
|
|
199
|
+
const host = stateRef.current.host;
|
|
200
|
+
if (isExiting || !host) return;
|
|
201
|
+
const computedStyle = getComputedStyle(host);
|
|
202
|
+
lastNonExitingStyleRef.current = {
|
|
203
|
+
opacity: computedStyle.opacity
|
|
204
|
+
};
|
|
205
|
+
});
|
|
195
206
|
const effectiveTransition = styleState?.effectiveTransition ?? props.transition;
|
|
196
207
|
const normalized = normalizeTransition(effectiveTransition);
|
|
197
208
|
const animationState = isExiting ? "exit" : isEntering || justFinishedEntering ? "enter" : "default";
|
|
@@ -219,7 +230,7 @@ function createAnimations(animations) {
|
|
|
219
230
|
if (cycleId !== exitCycleIdRef.current) return;
|
|
220
231
|
if (exitCompletedRef.current) return;
|
|
221
232
|
exitCompletedRef.current = true;
|
|
222
|
-
|
|
233
|
+
sendExitCompleteRef.current?.();
|
|
223
234
|
};
|
|
224
235
|
if (keys.length === 0) {
|
|
225
236
|
completeExit();
|
|
@@ -247,18 +258,24 @@ function createAnimations(animations) {
|
|
|
247
258
|
}
|
|
248
259
|
return animationValue ? `${key} ${animationValue}${delayStr2}` : null;
|
|
249
260
|
}).filter(Boolean).join(", ");
|
|
261
|
+
const getResetValue = key => {
|
|
262
|
+
if (key === "opacity") {
|
|
263
|
+
return style?.opacity ?? props.opacity ?? lastNonExitingStyleRef.current.opacity ?? 1;
|
|
264
|
+
}
|
|
265
|
+
if (TRANSFORM_KEYS.includes(key)) {
|
|
266
|
+
return key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
267
|
+
}
|
|
268
|
+
return enterStyle?.[key];
|
|
269
|
+
};
|
|
250
270
|
if (wasInterrupted) {
|
|
251
271
|
exitInterruptedRef.current = false;
|
|
252
272
|
node.style.transition = "none";
|
|
253
273
|
if (exitStyle) {
|
|
254
274
|
const resetStyle = {};
|
|
255
275
|
for (const key of Object.keys(exitStyle)) {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
resetStyle[key] = key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
260
|
-
} else if (enterStyle?.[key] !== void 0) {
|
|
261
|
-
resetStyle[key] = enterStyle[key];
|
|
276
|
+
const resetValue = getResetValue(key);
|
|
277
|
+
if (resetValue !== void 0) {
|
|
278
|
+
resetStyle[key] = resetValue;
|
|
262
279
|
}
|
|
263
280
|
}
|
|
264
281
|
applyStylesToNode(node, resetStyle);
|
|
@@ -272,12 +289,9 @@ function createAnimations(animations) {
|
|
|
272
289
|
node.style.transition = "none";
|
|
273
290
|
const resetStyle = {};
|
|
274
291
|
for (const key of Object.keys(exitStyle)) {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
resetStyle[key] = key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
279
|
-
} else if (enterStyle?.[key] !== void 0) {
|
|
280
|
-
resetStyle[key] = enterStyle[key];
|
|
292
|
+
const resetValue = getResetValue(key);
|
|
293
|
+
if (resetValue !== void 0) {
|
|
294
|
+
resetStyle[key] = resetValue;
|
|
281
295
|
}
|
|
282
296
|
}
|
|
283
297
|
applyStylesToNode(node, resetStyle);
|
|
@@ -341,7 +355,7 @@ function createAnimations(animations) {
|
|
|
341
355
|
node.removeEventListener("transitioncancel", onCancelAnimation);
|
|
342
356
|
node.style.transition = "";
|
|
343
357
|
};
|
|
344
|
-
}, [
|
|
358
|
+
}, [isExiting]);
|
|
345
359
|
if (isHydrating) {
|
|
346
360
|
return null;
|
|
347
361
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeTransition","getAnimatedProperties","hasAnimation","hasNormalizedAnimation","getEffectiveAnimation","getAnimationConfigsForKeys","useIsomorphicLayoutEffect","ResetPresence","usePresence","transformsToString","React","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","key","value","Object","entries","opacity","String","backgroundColor","color","createAnimations","animations","reactionListeners","WeakMap","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","useState","finishTimerRef","useRef","getInstance","getValue","setValue","next","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","get","forEach","listener","stop","useAnimatedNumberReaction","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","justStartedExiting","justStoppedExiting","effectiveTransition","transition","normalized","animationState","effectiveAnimationKey","defaultAnimation","animatedProperties","hasDefault","default","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","host","cycleId","completeExit","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr2","delay","durationOverride2","exitTransitionString","propAnimation","properties","animationValue","filter","Boolean","resetStyle","offsetHeight","requestAnimationFrame","maxDuration","animationConfigs","values","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","target","eventProp","propertyName","has","size","onCancelAnimation","addEventListener","cancelAnimationFrame","removeEventListener","Array","isArray","delayStr","durationOverride","process","env","NODE_ENV","console","info","className"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["normalizeTransition","getAnimatedProperties","hasAnimation","hasNormalizedAnimation","getEffectiveAnimation","getAnimationConfigsForKeys","useIsomorphicLayoutEffect","ResetPresence","usePresence","transformsToString","React","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","key","value","Object","entries","opacity","String","backgroundColor","color","createAnimations","animations","reactionListeners","WeakMap","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","useState","finishTimerRef","useRef","getInstance","getValue","setValue","next","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","get","forEach","listener","stop","useAnimatedNumberReaction","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","sendExitCompleteRef","lastNonExitingStyleRef","justStartedExiting","justStoppedExiting","host","computedStyle","getComputedStyle","effectiveTransition","transition","normalized","animationState","effectiveAnimationKey","defaultAnimation","animatedProperties","hasDefault","default","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","cycleId","completeExit","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr2","delay","durationOverride2","exitTransitionString","propAnimation","properties","animationValue","filter","Boolean","getResetValue","resetStyle","resetValue","offsetHeight","requestAnimationFrame","maxDuration","animationConfigs","values","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","target","eventProp","propertyName","has","size","onCancelAnimation","addEventListener","cancelAnimationFrame","removeEventListener","Array","isArray","delayStr","durationOverride","process","env","NODE_ENV","console","info","className"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -212,6 +212,9 @@ function createAnimations(animations) {
|
|
|
212
212
|
var exitCompletedRef = React.useRef(false);
|
|
213
213
|
var wasExitingRef = React.useRef(false);
|
|
214
214
|
var exitInterruptedRef = React.useRef(false);
|
|
215
|
+
var sendExitCompleteRef = React.useRef(sendExitComplete);
|
|
216
|
+
var lastNonExitingStyleRef = React.useRef({});
|
|
217
|
+
sendExitCompleteRef.current = sendExitComplete;
|
|
215
218
|
var justStartedExiting = isExiting && !wasExitingRef.current;
|
|
216
219
|
var justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
217
220
|
if (justStartedExiting) {
|
|
@@ -225,6 +228,14 @@ function createAnimations(animations) {
|
|
|
225
228
|
React.useEffect(function () {
|
|
226
229
|
wasExitingRef.current = isExiting;
|
|
227
230
|
});
|
|
231
|
+
useIsomorphicLayoutEffect(function () {
|
|
232
|
+
var host = stateRef.current.host;
|
|
233
|
+
if (isExiting || !host) return;
|
|
234
|
+
var computedStyle = getComputedStyle(host);
|
|
235
|
+
lastNonExitingStyleRef.current = {
|
|
236
|
+
opacity: computedStyle.opacity
|
|
237
|
+
};
|
|
238
|
+
});
|
|
228
239
|
var _styleState_effectiveTransition;
|
|
229
240
|
var effectiveTransition = (_styleState_effectiveTransition = styleState === null || styleState === void 0 ? void 0 : styleState.effectiveTransition) !== null && _styleState_effectiveTransition !== void 0 ? _styleState_effectiveTransition : props.transition;
|
|
230
241
|
var normalized = normalizeTransition(effectiveTransition);
|
|
@@ -251,10 +262,11 @@ function createAnimations(animations) {
|
|
|
251
262
|
var node = host;
|
|
252
263
|
var cycleId = exitCycleIdRef.current;
|
|
253
264
|
var completeExit = function () {
|
|
265
|
+
var _sendExitCompleteRef_current;
|
|
254
266
|
if (cycleId !== exitCycleIdRef.current) return;
|
|
255
267
|
if (exitCompletedRef.current) return;
|
|
256
268
|
exitCompletedRef.current = true;
|
|
257
|
-
|
|
269
|
+
(_sendExitCompleteRef_current = sendExitCompleteRef.current) === null || _sendExitCompleteRef_current === void 0 ? void 0 : _sendExitCompleteRef_current.call(sendExitCompleteRef);
|
|
258
270
|
};
|
|
259
271
|
if (keys.length === 0) {
|
|
260
272
|
completeExit();
|
|
@@ -282,6 +294,16 @@ function createAnimations(animations) {
|
|
|
282
294
|
}
|
|
283
295
|
return animationValue2 ? `${key2} ${animationValue2}${delayStr2}` : null;
|
|
284
296
|
}).filter(Boolean).join(", ");
|
|
297
|
+
var getResetValue = function (key2) {
|
|
298
|
+
if (key2 === "opacity") {
|
|
299
|
+
var _style_opacity, _ref, _ref1;
|
|
300
|
+
return (_ref1 = (_ref = (_style_opacity = style === null || style === void 0 ? void 0 : style.opacity) !== null && _style_opacity !== void 0 ? _style_opacity : props.opacity) !== null && _ref !== void 0 ? _ref : lastNonExitingStyleRef.current.opacity) !== null && _ref1 !== void 0 ? _ref1 : 1;
|
|
301
|
+
}
|
|
302
|
+
if (TRANSFORM_KEYS.includes(key2)) {
|
|
303
|
+
return key2 === "scale" || key2 === "scaleX" || key2 === "scaleY" ? 1 : 0;
|
|
304
|
+
}
|
|
305
|
+
return enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key2];
|
|
306
|
+
};
|
|
285
307
|
if (wasInterrupted) {
|
|
286
308
|
exitInterruptedRef.current = false;
|
|
287
309
|
node.style.transition = "none";
|
|
@@ -293,12 +315,9 @@ function createAnimations(animations) {
|
|
|
293
315
|
try {
|
|
294
316
|
for (var _iterator = Object.keys(exitStyle)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
295
317
|
var key = _step.value;
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
resetStyle[key] = key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
300
|
-
} else if ((enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key]) !== void 0) {
|
|
301
|
-
resetStyle[key] = enterStyle[key];
|
|
318
|
+
var resetValue = getResetValue(key);
|
|
319
|
+
if (resetValue !== void 0) {
|
|
320
|
+
resetStyle[key] = resetValue;
|
|
302
321
|
}
|
|
303
322
|
}
|
|
304
323
|
} catch (err) {
|
|
@@ -331,12 +350,9 @@ function createAnimations(animations) {
|
|
|
331
350
|
try {
|
|
332
351
|
for (var _iterator1 = Object.keys(exitStyle)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
333
352
|
var key1 = _step1.value;
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
resetStyle1[key1] = key1 === "scale" || key1 === "scaleX" || key1 === "scaleY" ? 1 : 0;
|
|
338
|
-
} else if ((enterStyle === null || enterStyle === void 0 ? void 0 : enterStyle[key1]) !== void 0) {
|
|
339
|
-
resetStyle1[key1] = enterStyle[key1];
|
|
353
|
+
var resetValue1 = getResetValue(key1);
|
|
354
|
+
if (resetValue1 !== void 0) {
|
|
355
|
+
resetStyle1[key1] = resetValue1;
|
|
340
356
|
}
|
|
341
357
|
}
|
|
342
358
|
} catch (err) {
|
|
@@ -434,7 +450,7 @@ function createAnimations(animations) {
|
|
|
434
450
|
node.removeEventListener("transitioncancel", onCancelAnimation);
|
|
435
451
|
node.style.transition = "";
|
|
436
452
|
};
|
|
437
|
-
}, [
|
|
453
|
+
}, [isExiting]);
|
|
438
454
|
if (isHydrating) {
|
|
439
455
|
return null;
|
|
440
456
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeTransition","getAnimatedProperties","hasAnimation","hasNormalizedAnimation","getEffectiveAnimation","getAnimationConfigsForKeys","useIsomorphicLayoutEffect","ResetPresence","usePresence","transformsToString","React","_type_of","obj","Symbol","constructor","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","_style_x","_style_y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","key","value","opacity","String","backgroundColor","color","err","return","createAnimations","animations","reactionListeners","WeakMap","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","useState","finishTimerRef","useRef","getInstance","getValue","setValue","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","get","forEach","listener","stop","useAnimatedNumberReaction","param","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","_normalized_config","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","justStartedExiting","justStoppedExiting","_styleState_effectiveTransition","effectiveTransition","transition","normalized","animationState","effectiveAnimationKey","defaultAnimation","animatedProperties","hasDefault","default","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","_normalized_config2","host","cycleId","completeExit","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr2","delay","durationOverride2","exitTransitionString","key2","propAnimation","properties","animationValue2","filter","Boolean","resetStyle","offsetHeight","resetStyle1","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","key1","requestAnimationFrame","maxDuration","animationConfigs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","values","_step2","animationValue","_normalized_delay","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","target","eventProp","propertyName","has","size","onCancelAnimation"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["normalizeTransition","getAnimatedProperties","hasAnimation","hasNormalizedAnimation","getEffectiveAnimation","getAnimationConfigsForKeys","useIsomorphicLayoutEffect","ResetPresence","usePresence","transformsToString","React","_type_of","obj","Symbol","constructor","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","_style_x","_style_y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","key","value","opacity","String","backgroundColor","color","err","return","createAnimations","animations","reactionListeners","WeakMap","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","useState","finishTimerRef","useRef","getInstance","getValue","setValue","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","get","forEach","listener","stop","useAnimatedNumberReaction","param","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","_normalized_config","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","sendExitCompleteRef","lastNonExitingStyleRef","justStartedExiting","justStoppedExiting","host","computedStyle","getComputedStyle","_styleState_effectiveTransition","effectiveTransition","transition","normalized","animationState","effectiveAnimationKey","defaultAnimation","animatedProperties","hasDefault","default","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","_normalized_config2","cycleId","completeExit","_sendExitCompleteRef_current","call","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr2","delay","durationOverride2","exitTransitionString","key2","propAnimation","properties","animationValue2","filter","Boolean","getResetValue","_style_opacity","_ref","_ref1","resetStyle","resetValue","offsetHeight","resetStyle1","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","key1","resetValue1","requestAnimationFrame","maxDuration","animationConfigs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","values","_step2","animationValue","_normalized_delay","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","target","eventProp","propertyName"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/animations-css",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0-1781071309197",
|
|
4
4
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"clean:build": "tamagui-build clean:build"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@tamagui/animation-helpers": "2.
|
|
40
|
-
"@tamagui/constants": "2.
|
|
41
|
-
"@tamagui/cubic-bezier-animator": "2.
|
|
42
|
-
"@tamagui/use-presence": "2.
|
|
43
|
-
"@tamagui/web": "2.
|
|
39
|
+
"@tamagui/animation-helpers": "2.2.0-1781071309197",
|
|
40
|
+
"@tamagui/constants": "2.2.0-1781071309197",
|
|
41
|
+
"@tamagui/cubic-bezier-animator": "2.2.0-1781071309197",
|
|
42
|
+
"@tamagui/use-presence": "2.2.0-1781071309197",
|
|
43
|
+
"@tamagui/web": "2.2.0-1781071309197"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@tamagui/build": "2.
|
|
46
|
+
"@tamagui/build": "2.2.0-1781071309197",
|
|
47
47
|
"react": ">=19",
|
|
48
48
|
"react-dom": "*"
|
|
49
49
|
},
|
package/src/createAnimations.tsx
CHANGED
|
@@ -265,6 +265,9 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
265
265
|
const exitCompletedRef = React.useRef(false)
|
|
266
266
|
const wasExitingRef = React.useRef(false)
|
|
267
267
|
const exitInterruptedRef = React.useRef(false)
|
|
268
|
+
const sendExitCompleteRef = React.useRef(sendExitComplete)
|
|
269
|
+
const lastNonExitingStyleRef = React.useRef<Record<string, string>>({})
|
|
270
|
+
sendExitCompleteRef.current = sendExitComplete
|
|
268
271
|
|
|
269
272
|
// detect transition into/out of exiting state
|
|
270
273
|
const justStartedExiting = isExiting && !wasExitingRef.current
|
|
@@ -286,6 +289,15 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
286
289
|
wasExitingRef.current = isExiting
|
|
287
290
|
})
|
|
288
291
|
|
|
292
|
+
useIsomorphicLayoutEffect(() => {
|
|
293
|
+
const host = stateRef.current.host
|
|
294
|
+
if (isExiting || !host) return
|
|
295
|
+
const computedStyle = getComputedStyle(host as HTMLElement)
|
|
296
|
+
lastNonExitingStyleRef.current = {
|
|
297
|
+
opacity: computedStyle.opacity,
|
|
298
|
+
}
|
|
299
|
+
})
|
|
300
|
+
|
|
289
301
|
// use effectiveTransition computed by createComponent (single source of truth)
|
|
290
302
|
const effectiveTransition = styleState?.effectiveTransition ?? props.transition
|
|
291
303
|
|
|
@@ -344,7 +356,7 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
344
356
|
if (cycleId !== exitCycleIdRef.current) return
|
|
345
357
|
if (exitCompletedRef.current) return
|
|
346
358
|
exitCompletedRef.current = true
|
|
347
|
-
|
|
359
|
+
sendExitCompleteRef.current?.()
|
|
348
360
|
}
|
|
349
361
|
|
|
350
362
|
// if no properties to animate (animateOnly=[]), complete immediately
|
|
@@ -393,6 +405,21 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
393
405
|
.filter(Boolean)
|
|
394
406
|
.join(', ')
|
|
395
407
|
|
|
408
|
+
const getResetValue = (key: string) => {
|
|
409
|
+
if (key === 'opacity') {
|
|
410
|
+
return (
|
|
411
|
+
style?.opacity ??
|
|
412
|
+
props.opacity ??
|
|
413
|
+
lastNonExitingStyleRef.current.opacity ??
|
|
414
|
+
1
|
|
415
|
+
)
|
|
416
|
+
}
|
|
417
|
+
if (TRANSFORM_KEYS.includes(key as any)) {
|
|
418
|
+
return key === 'scale' || key === 'scaleX' || key === 'scaleY' ? 1 : 0
|
|
419
|
+
}
|
|
420
|
+
return enterStyle?.[key]
|
|
421
|
+
}
|
|
422
|
+
|
|
396
423
|
if (wasInterrupted) {
|
|
397
424
|
exitInterruptedRef.current = false
|
|
398
425
|
// disable transition, reset to enter state
|
|
@@ -403,13 +430,9 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
403
430
|
if (exitStyle) {
|
|
404
431
|
const resetStyle: Record<string, unknown> = {}
|
|
405
432
|
for (const key of Object.keys(exitStyle)) {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
resetStyle[key] =
|
|
410
|
-
key === 'scale' || key === 'scaleX' || key === 'scaleY' ? 1 : 0
|
|
411
|
-
} else if (enterStyle?.[key] !== undefined) {
|
|
412
|
-
resetStyle[key] = enterStyle[key]
|
|
433
|
+
const resetValue = getResetValue(key)
|
|
434
|
+
if (resetValue !== undefined) {
|
|
435
|
+
resetStyle[key] = resetValue
|
|
413
436
|
}
|
|
414
437
|
}
|
|
415
438
|
applyStylesToNode(node, resetStyle)
|
|
@@ -439,13 +462,9 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
439
462
|
// when exitStyle is applied, so the CSS transition wouldn't fire.
|
|
440
463
|
const resetStyle: Record<string, unknown> = {}
|
|
441
464
|
for (const key of Object.keys(exitStyle)) {
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
resetStyle[key] =
|
|
446
|
-
key === 'scale' || key === 'scaleX' || key === 'scaleY' ? 1 : 0
|
|
447
|
-
} else if (enterStyle?.[key] !== undefined) {
|
|
448
|
-
resetStyle[key] = enterStyle[key]
|
|
465
|
+
const resetValue = getResetValue(key)
|
|
466
|
+
if (resetValue !== undefined) {
|
|
467
|
+
resetStyle[key] = resetValue
|
|
449
468
|
}
|
|
450
469
|
}
|
|
451
470
|
applyStylesToNode(node, resetStyle)
|
|
@@ -568,16 +587,7 @@ export function createAnimations<A extends object>(animations: A): AnimationDriv
|
|
|
568
587
|
// override lets React's value take effect again.
|
|
569
588
|
node.style.transition = ''
|
|
570
589
|
}
|
|
571
|
-
}, [
|
|
572
|
-
sendExitComplete,
|
|
573
|
-
isExiting,
|
|
574
|
-
stateRef,
|
|
575
|
-
keys,
|
|
576
|
-
normalized,
|
|
577
|
-
defaultAnimation,
|
|
578
|
-
props.enterStyle,
|
|
579
|
-
props.exitStyle,
|
|
580
|
-
])
|
|
590
|
+
}, [isExiting])
|
|
581
591
|
|
|
582
592
|
// tamagui doesnt even use animation output during hydration
|
|
583
593
|
if (isHydrating) {
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
],
|
|
7
7
|
"version": 3,
|
|
8
8
|
"sourcesContent": [
|
|
9
|
-
"import {\n normalizeTransition,\n getAnimatedProperties,\n hasAnimation as hasNormalizedAnimation,\n getEffectiveAnimation,\n getAnimationConfigsForKeys,\n} from '@tamagui/animation-helpers'\nimport { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { ResetPresence, usePresence } from '@tamagui/use-presence'\nimport type { AnimationDriver, UniversalAnimatedNumber } from '@tamagui/web'\nimport { transformsToString } from '@tamagui/web'\nimport React, { useState } from 'react' // import { animate } from '@tamagui/cubic-bezier-animator'\n\nconst EXTRACT_MS_REGEX = /(\\d+(?:\\.\\d+)?)\\s*ms/\nconst EXTRACT_S_REGEX = /(\\d+(?:\\.\\d+)?)\\s*s/\n\n/**\n * Helper function to extract duration from CSS animation string\n * Examples: \"ease-in 200ms\" -> 200, \"cubic-bezier(0.215, 0.610, 0.355, 1.000) 400ms\" -> 400\n * \"ease-in 0.5s\" -> 500, \"slow 2s\" -> 2000\n */\nfunction extractDuration(animation: string): number {\n // Try to match milliseconds first\n const msMatch = animation.match(EXTRACT_MS_REGEX)\n if (msMatch) {\n return Number.parseInt(msMatch[1], 10)\n }\n\n // Try to match seconds and convert to milliseconds\n const sMatch = animation.match(EXTRACT_S_REGEX)\n if (sMatch) {\n return Math.round(Number.parseFloat(sMatch[1]) * 1000)\n }\n\n // Default to 300ms if no duration found\n return 300\n}\n\nconst MS_DURATION_REGEX = /(\\d+(?:\\.\\d+)?)\\s*ms/\nconst S_DURATION_REGEX = /(\\d+(?:\\.\\d+)?)\\s*s(?!tiffness)/\n\n/**\n * Apply duration override to a CSS animation string\n * Replaces the existing duration with the override value\n */\nfunction applyDurationOverride(animation: string, durationMs: number): string {\n // Replace ms duration\n const msReplaced = animation.replace(MS_DURATION_REGEX, `${durationMs}ms`)\n if (msReplaced !== animation) {\n return msReplaced\n }\n\n // Replace seconds duration\n const sReplaced = animation.replace(S_DURATION_REGEX, `${durationMs}ms`)\n if (sReplaced !== animation) {\n return sReplaced\n }\n\n // No duration found, prepend the duration\n return `${durationMs}ms ${animation}`\n}\n\n// transform keys that need special handling\nconst TRANSFORM_KEYS = [\n 'x',\n 'y',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'skewX',\n 'skewY',\n] as const\n\n/**\n * Build a CSS transform string from a style object containing transform properties\n */\nfunction buildTransformString(style: Record<string, unknown> | undefined): string {\n if (!style) return ''\n\n const parts: string[] = []\n\n if (style.x !== undefined || style.y !== undefined) {\n const x = style.x ?? 0\n const y = style.y ?? 0\n parts.push(`translate(${x}px, ${y}px)`)\n }\n if (style.scale !== undefined) {\n parts.push(`scale(${style.scale})`)\n }\n if (style.scaleX !== undefined) {\n parts.push(`scaleX(${style.scaleX})`)\n }\n if (style.scaleY !== undefined) {\n parts.push(`scaleY(${style.scaleY})`)\n }\n if (style.rotate !== undefined) {\n const val = style.rotate\n const unit = typeof val === 'string' && val.includes('deg') ? '' : 'deg'\n parts.push(`rotate(${val}${unit})`)\n }\n if (style.rotateX !== undefined) {\n parts.push(`rotateX(${style.rotateX}deg)`)\n }\n if (style.rotateY !== undefined) {\n parts.push(`rotateY(${style.rotateY}deg)`)\n }\n if (style.rotateZ !== undefined) {\n parts.push(`rotateZ(${style.rotateZ}deg)`)\n }\n if (style.skewX !== undefined) {\n parts.push(`skewX(${style.skewX}deg)`)\n }\n if (style.skewY !== undefined) {\n parts.push(`skewY(${style.skewY}deg)`)\n }\n\n return parts.join(' ')\n}\n\n/**\n * Apply a style object to a DOM node, handling transform keys specially\n */\nfunction applyStylesToNode(\n node: HTMLElement,\n style: Record<string, unknown> | undefined\n): void {\n if (!style) return\n\n // collect transform values\n const transformStr = buildTransformString(style)\n if (transformStr) {\n node.style.transform = transformStr\n }\n\n // apply non-transform properties\n for (const [key, value] of Object.entries(style)) {\n if (TRANSFORM_KEYS.includes(key as any)) continue\n if (value === undefined) continue\n\n if (key === 'opacity') {\n node.style.opacity = String(value)\n } else if (key === 'backgroundColor') {\n node.style.backgroundColor = String(value)\n } else if (key === 'color') {\n node.style.color = String(value)\n } else {\n // generic fallback\n node.style[key as any] = typeof value === 'number' ? `${value}px` : String(value)\n }\n }\n}\n\nexport function createAnimations<A extends object>(animations: A): AnimationDriver<A> {\n const reactionListeners = new WeakMap<any, Set<Function>>()\n\n return {\n animations,\n usePresence,\n ResetPresence,\n inputStyle: 'css',\n outputStyle: 'css',\n\n useAnimatedNumber(initial): UniversalAnimatedNumber<Function> {\n const [val, setVal] = React.useState(initial)\n const finishTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n\n return {\n getInstance() {\n return setVal\n },\n getValue() {\n return val\n },\n setValue(next, config, onFinish) {\n setVal(next)\n\n // clear any pending finish callback from a previous setValue\n if (finishTimerRef.current) {\n clearTimeout(finishTimerRef.current)\n finishTimerRef.current = null\n }\n\n if (onFinish) {\n if (\n !config ||\n config.type === 'direct' ||\n (config.type === 'timing' && config.duration === 0)\n ) {\n onFinish()\n } else {\n // estimate duration: use explicit duration, or fall back to\n // default CSS transition duration for spring-type configs\n const duration = config.type === 'timing' ? config.duration : 300\n finishTimerRef.current = setTimeout(onFinish, duration)\n }\n }\n\n // call reaction listeners with the new value\n const listeners = reactionListeners.get(setVal)\n if (listeners) {\n listeners.forEach((listener) => listener(next))\n }\n },\n stop() {\n if (finishTimerRef.current) {\n clearTimeout(finishTimerRef.current)\n finishTimerRef.current = null\n }\n },\n }\n },\n\n useAnimatedNumberReaction({ value }, onValue) {\n React.useEffect(() => {\n const instance = value.getInstance()\n let queue = reactionListeners.get(instance)\n if (!queue) {\n const next = new Set<Function>()\n reactionListeners.set(instance, next)\n queue = next!\n }\n queue.add(onValue)\n return () => {\n queue?.delete(onValue)\n }\n }, [])\n },\n\n useAnimatedNumberStyle(val, getStyle) {\n return getStyle(val.getValue())\n },\n\n useAnimatedNumbersStyle(vals, getStyle) {\n return getStyle(...vals.map((v) => v.getValue()))\n },\n\n // @ts-ignore - styleState is added by createComponent\n useAnimations: ({\n props,\n presence,\n style,\n componentState,\n stateRef,\n styleState,\n }: any) => {\n const isHydrating = componentState.unmounted === true\n const isEntering = !!componentState.unmounted\n const isExiting = presence?.[0] === false\n const sendExitComplete = presence?.[1]\n\n // Track if we just finished entering (transition from entering to not entering)\n // This is needed because the CSS transition happens on the render AFTER t_unmounted is removed\n const wasEnteringRef = React.useRef(isEntering)\n const justFinishedEntering = wasEnteringRef.current && !isEntering\n React.useEffect(() => {\n wasEnteringRef.current = isEntering\n })\n\n // exit cycle guards to prevent stale/duplicate completion\n const exitCycleIdRef = React.useRef(0)\n const exitCompletedRef = React.useRef(false)\n const wasExitingRef = React.useRef(false)\n const exitInterruptedRef = React.useRef(false)\n\n // detect transition into/out of exiting state\n const justStartedExiting = isExiting && !wasExitingRef.current\n const justStoppedExiting = !isExiting && wasExitingRef.current\n\n // start new exit cycle only on transition INTO exiting\n if (justStartedExiting) {\n exitCycleIdRef.current++\n exitCompletedRef.current = false\n }\n // track interruptions so we know to force-restart transitions\n if (justStoppedExiting) {\n exitCycleIdRef.current++\n exitInterruptedRef.current = true\n }\n\n // track previous exiting state\n React.useEffect(() => {\n wasExitingRef.current = isExiting\n })\n\n // use effectiveTransition computed by createComponent (single source of truth)\n const effectiveTransition = styleState?.effectiveTransition ?? props.transition\n\n // Normalize the transition prop to a consistent format\n const normalized = normalizeTransition(effectiveTransition)\n\n // Determine animation state and get effective animation\n // Use 'enter' if we're entering OR if we just finished entering (transition is happening)\n const animationState = isExiting\n ? 'exit'\n : isEntering || justFinishedEntering\n ? 'enter'\n : 'default'\n const effectiveAnimationKey = getEffectiveAnimation(normalized, animationState)\n const defaultAnimation = effectiveAnimationKey\n ? animations[effectiveAnimationKey]\n : null\n const animatedProperties = getAnimatedProperties(normalized)\n\n // Determine which properties to animate\n // - animateOnly prop is an exclusive filter (only animate those properties)\n // - per-property configs WITHOUT a default = only animate those specific properties\n // - per-property configs WITH a default = per-property overrides + default for rest\n const hasDefault =\n normalized.default !== null ||\n normalized.enter !== null ||\n normalized.exit !== null\n const hasPerPropertyConfigs = animatedProperties.length > 0\n\n let keys: string[]\n if (props.animateOnly) {\n // animateOnly is explicit filter\n keys = props.animateOnly\n } else if (hasPerPropertyConfigs && !hasDefault) {\n // object format without default: { opacity: '200ms' } = only animate opacity\n keys = animatedProperties\n } else if (hasPerPropertyConfigs && hasDefault) {\n // array format or object with default: 'all' first, then per-property overrides\n // CSS transition specificity: later declarations override earlier ones for the same property\n keys = ['all', ...animatedProperties]\n } else {\n // simple string format: 'quick' = animate all\n keys = ['all']\n }\n\n useIsomorphicLayoutEffect(() => {\n const host = stateRef.current.host\n if (!sendExitComplete || !isExiting || !host) return\n const node = host as HTMLElement\n\n // capture current cycle id for this effect\n const cycleId = exitCycleIdRef.current\n\n // helper to complete exit with guards\n const completeExit = () => {\n if (cycleId !== exitCycleIdRef.current) return\n if (exitCompletedRef.current) return\n exitCompletedRef.current = true\n sendExitComplete()\n }\n\n // if no properties to animate (animateOnly=[]), complete immediately\n if (keys.length === 0) {\n completeExit()\n return\n }\n\n // Force transition restart for interrupted exits\n // When an exit is interrupted and restarted, the element may already be at\n // the exit style, so no CSS transition fires. We need to:\n // 1. Reset to non-exit state\n // 2. Force reflow\n // 3. Re-apply exit state to trigger transition\n let rafId: number | undefined\n const wasInterrupted = exitInterruptedRef.current\n // flag to ignore transitioncancel during reset (we intentionally cancel the old transition)\n let ignoreCancelEvents = wasInterrupted\n // get enter/exit styles for potential restart\n const enterStyle = props.enterStyle as Record<string, unknown> | undefined\n const exitStyle = props.exitStyle as Record<string, unknown> | undefined\n\n // Build the exit transition string - needed for both normal and interrupted exits\n const delayStr = normalized.delay ? ` ${normalized.delay}ms` : ''\n const durationOverride = normalized.config?.duration\n const exitTransitionString = keys\n .map((key) => {\n const propAnimation = normalized.properties[key]\n let animationValue: string | null = null\n if (typeof propAnimation === 'string') {\n animationValue = animations[propAnimation]\n } else if (\n propAnimation &&\n typeof propAnimation === 'object' &&\n propAnimation.type\n ) {\n animationValue = animations[propAnimation.type]\n } else if (defaultAnimation) {\n animationValue = defaultAnimation\n }\n if (animationValue && durationOverride) {\n animationValue = applyDurationOverride(animationValue, durationOverride)\n }\n return animationValue ? `${key} ${animationValue}${delayStr}` : null\n })\n .filter(Boolean)\n .join(', ')\n\n if (wasInterrupted) {\n exitInterruptedRef.current = false\n // disable transition, reset to enter state\n node.style.transition = 'none'\n\n // reset: apply active/open state for each exit property (not enterStyle,\n // which may equal exitStyle — see comment in the normal exit path below)\n if (exitStyle) {\n const resetStyle: Record<string, unknown> = {}\n for (const key of Object.keys(exitStyle)) {\n if (key === 'opacity') {\n resetStyle[key] = 1\n } else if (TRANSFORM_KEYS.includes(key as any)) {\n resetStyle[key] =\n key === 'scale' || key === 'scaleX' || key === 'scaleY' ? 1 : 0\n } else if (enterStyle?.[key] !== undefined) {\n resetStyle[key] = enterStyle[key]\n }\n }\n applyStylesToNode(node, resetStyle)\n } else {\n // fallback if no exitStyle defined\n node.style.opacity = '1'\n node.style.transform = 'none'\n }\n\n // force reflow\n void node.offsetHeight\n } else if (exitStyle) {\n // For normal (non-interrupted) exits, we need to ensure the CSS transition is\n // processed by the browser BEFORE the exitStyle takes effect. The issue is that\n // React may have already applied exitStyle in the same render batch. To fix this:\n // 1. Disable transition and reset to non-exit state\n // 2. Force reflow so browser processes the reset\n // 3. Use RAF to ensure we're in a new frame\n // 4. Re-enable transition and apply exitStyle\n // This mirrors the interrupted exit handling approach (which also uses RAF).\n ignoreCancelEvents = true\n node.style.transition = 'none'\n\n // Reset to the active/open state (not enterStyle, which may equal exitStyle).\n // enterStyle is the \"unmounted\" initial state and can share values with exitStyle\n // (e.g., both have opacity: 0). resetting to enterStyle would mean no value change\n // when exitStyle is applied, so the CSS transition wouldn't fire.\n const resetStyle: Record<string, unknown> = {}\n for (const key of Object.keys(exitStyle)) {\n if (key === 'opacity') {\n resetStyle[key] = 1\n } else if (TRANSFORM_KEYS.includes(key as any)) {\n resetStyle[key] =\n key === 'scale' || key === 'scaleX' || key === 'scaleY' ? 1 : 0\n } else if (enterStyle?.[key] !== undefined) {\n resetStyle[key] = enterStyle[key]\n }\n }\n applyStylesToNode(node, resetStyle)\n\n // Force reflow\n void node.offsetHeight\n\n // Use RAF to ensure transition is applied in a new frame\n rafId = requestAnimationFrame(() => {\n if (cycleId !== exitCycleIdRef.current) return\n // Re-enable transition\n node.style.transition = exitTransitionString\n // Force reflow to ensure transition is active\n void node.offsetHeight\n // Apply exit styles - this triggers the animation\n applyStylesToNode(node, exitStyle)\n // Re-enable cancel event handling\n ignoreCancelEvents = false\n })\n }\n\n /**\n * Exit animation handling for Dialog/Modal components\n *\n * The Challenge: When users close dialogs (via Escape key or clicking outside),\n * the element can disappear from the DOM before CSS transitions finish, which causes:\n * 1. Dialogs to stick around on screen\n * 2. Event handlers to stop working\n *\n * Fix: Calculate the MAXIMUM duration across all animated properties, not just\n * the default. With animateOnly and per-property configs, different properties\n * can have different durations, and we need to wait for the LONGEST one.\n */\n\n // calculate max duration across all animated properties\n let maxDuration = defaultAnimation ? extractDuration(defaultAnimation) : 200\n\n // check per-property animation durations using shared helper\n const animationConfigs = getAnimationConfigsForKeys(\n normalized,\n animations as Record<string, string>,\n keys,\n defaultAnimation\n )\n for (const animationValue of animationConfigs.values()) {\n if (animationValue) {\n const duration = extractDuration(animationValue)\n if (duration > maxDuration) {\n maxDuration = duration\n }\n }\n }\n\n const delay = normalized.delay ?? 0\n const fallbackTimeout = maxDuration + delay\n\n const timeoutId = setTimeout(() => {\n completeExit()\n }, fallbackTimeout)\n\n // track number of transitioning properties to wait for all to finish\n // (each property fires its own transitionend event)\n const transitioningProps = new Set(keys)\n let completedCount = 0\n\n const onFinishAnimation = (event: TransitionEvent) => {\n // only count transitions on THIS element, not bubbled from children\n if (event.target !== node) return\n\n // map CSS property names to our key names\n // e.g., transitionend fires with propertyName 'transform' for scale/x/y\n const eventProp = event.propertyName\n if (transitioningProps.has(eventProp) || eventProp === 'all') {\n completedCount++\n // wait for all properties to finish\n if (completedCount >= transitioningProps.size) {\n clearTimeout(timeoutId)\n completeExit()\n }\n }\n }\n\n // on cancel, still complete (element is exiting and animation was interrupted)\n // the guards prevent duplicate completion if this is a stale cycle\n const onCancelAnimation = () => {\n // ignore cancel events during reset phase (we intentionally cancel the old transition)\n if (ignoreCancelEvents) return\n clearTimeout(timeoutId)\n completeExit()\n }\n\n node.addEventListener('transitionend', onFinishAnimation)\n node.addEventListener('transitioncancel', onCancelAnimation)\n\n // For interrupted exits, re-enable transition and re-apply exit styles\n // This must happen AFTER listeners are set up so we catch the transitionend\n if (wasInterrupted) {\n rafId = requestAnimationFrame(() => {\n if (cycleId !== exitCycleIdRef.current) return\n // re-enable transition using the pre-built string\n node.style.transition = exitTransitionString\n // force reflow again\n void node.offsetHeight\n // now apply exit styles - this triggers the transition\n applyStylesToNode(node, exitStyle)\n // re-enable cancel event handling now that reset is complete\n ignoreCancelEvents = false\n })\n }\n\n return () => {\n clearTimeout(timeoutId)\n if (rafId !== undefined) cancelAnimationFrame(rafId)\n node.removeEventListener('transitionend', onFinishAnimation)\n node.removeEventListener('transitioncancel', onCancelAnimation)\n // restore transition: the exit handling sets node.style.transition='none'\n // directly on the DOM (bypassing React). if exit is interrupted (e.g. same-key\n // re-entry in AnimatePresence), React won't re-apply its managed transition\n // value because it hasn't changed in the virtual DOM. clearing the inline\n // override lets React's value take effect again.\n node.style.transition = ''\n }\n }, [\n sendExitComplete,\n isExiting,\n stateRef,\n keys,\n normalized,\n defaultAnimation,\n props.enterStyle,\n props.exitStyle,\n ])\n\n // tamagui doesnt even use animation output during hydration\n if (isHydrating) {\n return null\n }\n\n // Check if we have any animation to apply\n if (!hasNormalizedAnimation(normalized)) {\n return null\n }\n\n if (Array.isArray(style.transform)) {\n style.transform = transformsToString(style.transform)\n }\n\n // Build CSS transition string\n // TODO: we disabled the transform transition, because it will create issue for inverse function and animate function\n // for non layout transform properties either use animate function or find a workaround to do it with css\n const delayStr = normalized.delay ? ` ${normalized.delay}ms` : ''\n const durationOverride = normalized.config?.duration\n style.transition = keys\n .map((key) => {\n // Check for property-specific animation, fall back to default\n const propAnimation = normalized.properties[key]\n let animationValue: string | null = null\n\n if (typeof propAnimation === 'string') {\n animationValue = animations[propAnimation]\n } else if (\n propAnimation &&\n typeof propAnimation === 'object' &&\n propAnimation.type\n ) {\n animationValue = animations[propAnimation.type]\n } else if (defaultAnimation) {\n animationValue = defaultAnimation\n }\n\n // Apply global duration override if specified\n if (animationValue && durationOverride) {\n animationValue = applyDurationOverride(animationValue, durationOverride)\n }\n\n return animationValue ? `${key} ${animationValue}${delayStr}` : null\n })\n .filter(Boolean)\n .join(', ')\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.info('CSS animation', {\n props,\n animations,\n normalized,\n defaultAnimation,\n style,\n isEntering,\n isExiting,\n })\n }\n\n return { style, className: isEntering ? 't_unmounted' : '' }\n },\n }\n}\n\n// layout animations\n// useIsomorphicLayoutEffect(() => {\n// if (!host || !props.layout) {\n// return\n// }\n// // @ts-ignore\n// const boundingBox = host?.getBoundingClientRect()\n// if (isChanged(initialPositionRef.current, boundingBox)) {\n// const transform = invert(\n// host,\n// boundingBox,\n// initialPositionRef.current\n// )\n\n// animate({\n// from: transform,\n// to: { x: 0, y: 0, scaleX: 1, scaleY: 1 },\n// duration: 1000,\n// onUpdate: ({ x, y, scaleX, scaleY }) => {\n// // @ts-ignore\n// host.style.transform = `translate(${x}px, ${y}px) scaleX(${scaleX}) scaleY(${scaleY})`\n// // TODO: handle childRef inverse scale\n// // childRef.current.style.transform = `scaleX(${1 / scaleX}) scaleY(${\n// // 1 / scaleY\n// // })`\n// },\n// // TODO: extract ease-in from string and convert/map it to a cubicBezier array\n// cubicBezier: [0, 1.38, 1, -0.41],\n// })\n// }\n// initialPositionRef.current = boundingBox\n// })\n\n// style.transition = `${keys} ${animation}${\n// props.layout ? ',width 0s, height 0s, margin 0s, padding 0s, transform' : ''\n// }`\n\n// const isChanged = (initialBox: any, finalBox: any) => {\n// // we just mounted, so we don't have complete data yet\n// if (!initialBox || !finalBox) return false\n\n// // deep compare the two boxes\n// return JSON.stringify(initialBox) !== JSON.stringify(finalBox)\n// }\n\n// const invert = (el, from, to) => {\n// const { x: fromX, y: fromY, width: fromWidth, height: fromHeight } = from\n// const { x, y, width, height } = to\n\n// const transform = {\n// x: x - fromX - (fromWidth - width) / 2,\n// y: y - fromY - (fromHeight - height) / 2,\n// scaleX: width / fromWidth,\n// scaleY: height / fromHeight,\n// }\n\n// el.style.transform = `\n"
|
|
9
|
+
"import {\n normalizeTransition,\n getAnimatedProperties,\n hasAnimation as hasNormalizedAnimation,\n getEffectiveAnimation,\n getAnimationConfigsForKeys,\n} from '@tamagui/animation-helpers'\nimport { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { ResetPresence, usePresence } from '@tamagui/use-presence'\nimport type { AnimationDriver, UniversalAnimatedNumber } from '@tamagui/web'\nimport { transformsToString } from '@tamagui/web'\nimport React, { useState } from 'react' // import { animate } from '@tamagui/cubic-bezier-animator'\n\nconst EXTRACT_MS_REGEX = /(\\d+(?:\\.\\d+)?)\\s*ms/\nconst EXTRACT_S_REGEX = /(\\d+(?:\\.\\d+)?)\\s*s/\n\n/**\n * Helper function to extract duration from CSS animation string\n * Examples: \"ease-in 200ms\" -> 200, \"cubic-bezier(0.215, 0.610, 0.355, 1.000) 400ms\" -> 400\n * \"ease-in 0.5s\" -> 500, \"slow 2s\" -> 2000\n */\nfunction extractDuration(animation: string): number {\n // Try to match milliseconds first\n const msMatch = animation.match(EXTRACT_MS_REGEX)\n if (msMatch) {\n return Number.parseInt(msMatch[1], 10)\n }\n\n // Try to match seconds and convert to milliseconds\n const sMatch = animation.match(EXTRACT_S_REGEX)\n if (sMatch) {\n return Math.round(Number.parseFloat(sMatch[1]) * 1000)\n }\n\n // Default to 300ms if no duration found\n return 300\n}\n\nconst MS_DURATION_REGEX = /(\\d+(?:\\.\\d+)?)\\s*ms/\nconst S_DURATION_REGEX = /(\\d+(?:\\.\\d+)?)\\s*s(?!tiffness)/\n\n/**\n * Apply duration override to a CSS animation string\n * Replaces the existing duration with the override value\n */\nfunction applyDurationOverride(animation: string, durationMs: number): string {\n // Replace ms duration\n const msReplaced = animation.replace(MS_DURATION_REGEX, `${durationMs}ms`)\n if (msReplaced !== animation) {\n return msReplaced\n }\n\n // Replace seconds duration\n const sReplaced = animation.replace(S_DURATION_REGEX, `${durationMs}ms`)\n if (sReplaced !== animation) {\n return sReplaced\n }\n\n // No duration found, prepend the duration\n return `${durationMs}ms ${animation}`\n}\n\n// transform keys that need special handling\nconst TRANSFORM_KEYS = [\n 'x',\n 'y',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'skewX',\n 'skewY',\n] as const\n\n/**\n * Build a CSS transform string from a style object containing transform properties\n */\nfunction buildTransformString(style: Record<string, unknown> | undefined): string {\n if (!style) return ''\n\n const parts: string[] = []\n\n if (style.x !== undefined || style.y !== undefined) {\n const x = style.x ?? 0\n const y = style.y ?? 0\n parts.push(`translate(${x}px, ${y}px)`)\n }\n if (style.scale !== undefined) {\n parts.push(`scale(${style.scale})`)\n }\n if (style.scaleX !== undefined) {\n parts.push(`scaleX(${style.scaleX})`)\n }\n if (style.scaleY !== undefined) {\n parts.push(`scaleY(${style.scaleY})`)\n }\n if (style.rotate !== undefined) {\n const val = style.rotate\n const unit = typeof val === 'string' && val.includes('deg') ? '' : 'deg'\n parts.push(`rotate(${val}${unit})`)\n }\n if (style.rotateX !== undefined) {\n parts.push(`rotateX(${style.rotateX}deg)`)\n }\n if (style.rotateY !== undefined) {\n parts.push(`rotateY(${style.rotateY}deg)`)\n }\n if (style.rotateZ !== undefined) {\n parts.push(`rotateZ(${style.rotateZ}deg)`)\n }\n if (style.skewX !== undefined) {\n parts.push(`skewX(${style.skewX}deg)`)\n }\n if (style.skewY !== undefined) {\n parts.push(`skewY(${style.skewY}deg)`)\n }\n\n return parts.join(' ')\n}\n\n/**\n * Apply a style object to a DOM node, handling transform keys specially\n */\nfunction applyStylesToNode(\n node: HTMLElement,\n style: Record<string, unknown> | undefined\n): void {\n if (!style) return\n\n // collect transform values\n const transformStr = buildTransformString(style)\n if (transformStr) {\n node.style.transform = transformStr\n }\n\n // apply non-transform properties\n for (const [key, value] of Object.entries(style)) {\n if (TRANSFORM_KEYS.includes(key as any)) continue\n if (value === undefined) continue\n\n if (key === 'opacity') {\n node.style.opacity = String(value)\n } else if (key === 'backgroundColor') {\n node.style.backgroundColor = String(value)\n } else if (key === 'color') {\n node.style.color = String(value)\n } else {\n // generic fallback\n node.style[key as any] = typeof value === 'number' ? `${value}px` : String(value)\n }\n }\n}\n\nexport function createAnimations<A extends object>(animations: A): AnimationDriver<A> {\n const reactionListeners = new WeakMap<any, Set<Function>>()\n\n return {\n animations,\n usePresence,\n ResetPresence,\n inputStyle: 'css',\n outputStyle: 'css',\n\n useAnimatedNumber(initial): UniversalAnimatedNumber<Function> {\n const [val, setVal] = React.useState(initial)\n const finishTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n\n return {\n getInstance() {\n return setVal\n },\n getValue() {\n return val\n },\n setValue(next, config, onFinish) {\n setVal(next)\n\n // clear any pending finish callback from a previous setValue\n if (finishTimerRef.current) {\n clearTimeout(finishTimerRef.current)\n finishTimerRef.current = null\n }\n\n if (onFinish) {\n if (\n !config ||\n config.type === 'direct' ||\n (config.type === 'timing' && config.duration === 0)\n ) {\n onFinish()\n } else {\n // estimate duration: use explicit duration, or fall back to\n // default CSS transition duration for spring-type configs\n const duration = config.type === 'timing' ? config.duration : 300\n finishTimerRef.current = setTimeout(onFinish, duration)\n }\n }\n\n // call reaction listeners with the new value\n const listeners = reactionListeners.get(setVal)\n if (listeners) {\n listeners.forEach((listener) => listener(next))\n }\n },\n stop() {\n if (finishTimerRef.current) {\n clearTimeout(finishTimerRef.current)\n finishTimerRef.current = null\n }\n },\n }\n },\n\n useAnimatedNumberReaction({ value }, onValue) {\n React.useEffect(() => {\n const instance = value.getInstance()\n let queue = reactionListeners.get(instance)\n if (!queue) {\n const next = new Set<Function>()\n reactionListeners.set(instance, next)\n queue = next!\n }\n queue.add(onValue)\n return () => {\n queue?.delete(onValue)\n }\n }, [])\n },\n\n useAnimatedNumberStyle(val, getStyle) {\n return getStyle(val.getValue())\n },\n\n useAnimatedNumbersStyle(vals, getStyle) {\n return getStyle(...vals.map((v) => v.getValue()))\n },\n\n // @ts-ignore - styleState is added by createComponent\n useAnimations: ({\n props,\n presence,\n style,\n componentState,\n stateRef,\n styleState,\n }: any) => {\n const isHydrating = componentState.unmounted === true\n const isEntering = !!componentState.unmounted\n const isExiting = presence?.[0] === false\n const sendExitComplete = presence?.[1]\n\n // Track if we just finished entering (transition from entering to not entering)\n // This is needed because the CSS transition happens on the render AFTER t_unmounted is removed\n const wasEnteringRef = React.useRef(isEntering)\n const justFinishedEntering = wasEnteringRef.current && !isEntering\n React.useEffect(() => {\n wasEnteringRef.current = isEntering\n })\n\n // exit cycle guards to prevent stale/duplicate completion\n const exitCycleIdRef = React.useRef(0)\n const exitCompletedRef = React.useRef(false)\n const wasExitingRef = React.useRef(false)\n const exitInterruptedRef = React.useRef(false)\n const sendExitCompleteRef = React.useRef(sendExitComplete)\n const lastNonExitingStyleRef = React.useRef<Record<string, string>>({})\n sendExitCompleteRef.current = sendExitComplete\n\n // detect transition into/out of exiting state\n const justStartedExiting = isExiting && !wasExitingRef.current\n const justStoppedExiting = !isExiting && wasExitingRef.current\n\n // start new exit cycle only on transition INTO exiting\n if (justStartedExiting) {\n exitCycleIdRef.current++\n exitCompletedRef.current = false\n }\n // track interruptions so we know to force-restart transitions\n if (justStoppedExiting) {\n exitCycleIdRef.current++\n exitInterruptedRef.current = true\n }\n\n // track previous exiting state\n React.useEffect(() => {\n wasExitingRef.current = isExiting\n })\n\n useIsomorphicLayoutEffect(() => {\n const host = stateRef.current.host\n if (isExiting || !host) return\n const computedStyle = getComputedStyle(host as HTMLElement)\n lastNonExitingStyleRef.current = {\n opacity: computedStyle.opacity,\n }\n })\n\n // use effectiveTransition computed by createComponent (single source of truth)\n const effectiveTransition = styleState?.effectiveTransition ?? props.transition\n\n // Normalize the transition prop to a consistent format\n const normalized = normalizeTransition(effectiveTransition)\n\n // Determine animation state and get effective animation\n // Use 'enter' if we're entering OR if we just finished entering (transition is happening)\n const animationState = isExiting\n ? 'exit'\n : isEntering || justFinishedEntering\n ? 'enter'\n : 'default'\n const effectiveAnimationKey = getEffectiveAnimation(normalized, animationState)\n const defaultAnimation = effectiveAnimationKey\n ? animations[effectiveAnimationKey]\n : null\n const animatedProperties = getAnimatedProperties(normalized)\n\n // Determine which properties to animate\n // - animateOnly prop is an exclusive filter (only animate those properties)\n // - per-property configs WITHOUT a default = only animate those specific properties\n // - per-property configs WITH a default = per-property overrides + default for rest\n const hasDefault =\n normalized.default !== null ||\n normalized.enter !== null ||\n normalized.exit !== null\n const hasPerPropertyConfigs = animatedProperties.length > 0\n\n let keys: string[]\n if (props.animateOnly) {\n // animateOnly is explicit filter\n keys = props.animateOnly\n } else if (hasPerPropertyConfigs && !hasDefault) {\n // object format without default: { opacity: '200ms' } = only animate opacity\n keys = animatedProperties\n } else if (hasPerPropertyConfigs && hasDefault) {\n // array format or object with default: 'all' first, then per-property overrides\n // CSS transition specificity: later declarations override earlier ones for the same property\n keys = ['all', ...animatedProperties]\n } else {\n // simple string format: 'quick' = animate all\n keys = ['all']\n }\n\n useIsomorphicLayoutEffect(() => {\n const host = stateRef.current.host\n if (!sendExitComplete || !isExiting || !host) return\n const node = host as HTMLElement\n\n // capture current cycle id for this effect\n const cycleId = exitCycleIdRef.current\n\n // helper to complete exit with guards\n const completeExit = () => {\n if (cycleId !== exitCycleIdRef.current) return\n if (exitCompletedRef.current) return\n exitCompletedRef.current = true\n sendExitCompleteRef.current?.()\n }\n\n // if no properties to animate (animateOnly=[]), complete immediately\n if (keys.length === 0) {\n completeExit()\n return\n }\n\n // Force transition restart for interrupted exits\n // When an exit is interrupted and restarted, the element may already be at\n // the exit style, so no CSS transition fires. We need to:\n // 1. Reset to non-exit state\n // 2. Force reflow\n // 3. Re-apply exit state to trigger transition\n let rafId: number | undefined\n const wasInterrupted = exitInterruptedRef.current\n // flag to ignore transitioncancel during reset (we intentionally cancel the old transition)\n let ignoreCancelEvents = wasInterrupted\n // get enter/exit styles for potential restart\n const enterStyle = props.enterStyle as Record<string, unknown> | undefined\n const exitStyle = props.exitStyle as Record<string, unknown> | undefined\n\n // Build the exit transition string - needed for both normal and interrupted exits\n const delayStr = normalized.delay ? ` ${normalized.delay}ms` : ''\n const durationOverride = normalized.config?.duration\n const exitTransitionString = keys\n .map((key) => {\n const propAnimation = normalized.properties[key]\n let animationValue: string | null = null\n if (typeof propAnimation === 'string') {\n animationValue = animations[propAnimation]\n } else if (\n propAnimation &&\n typeof propAnimation === 'object' &&\n propAnimation.type\n ) {\n animationValue = animations[propAnimation.type]\n } else if (defaultAnimation) {\n animationValue = defaultAnimation\n }\n if (animationValue && durationOverride) {\n animationValue = applyDurationOverride(animationValue, durationOverride)\n }\n return animationValue ? `${key} ${animationValue}${delayStr}` : null\n })\n .filter(Boolean)\n .join(', ')\n\n const getResetValue = (key: string) => {\n if (key === 'opacity') {\n return (\n style?.opacity ??\n props.opacity ??\n lastNonExitingStyleRef.current.opacity ??\n 1\n )\n }\n if (TRANSFORM_KEYS.includes(key as any)) {\n return key === 'scale' || key === 'scaleX' || key === 'scaleY' ? 1 : 0\n }\n return enterStyle?.[key]\n }\n\n if (wasInterrupted) {\n exitInterruptedRef.current = false\n // disable transition, reset to enter state\n node.style.transition = 'none'\n\n // reset: apply active/open state for each exit property (not enterStyle,\n // which may equal exitStyle — see comment in the normal exit path below)\n if (exitStyle) {\n const resetStyle: Record<string, unknown> = {}\n for (const key of Object.keys(exitStyle)) {\n const resetValue = getResetValue(key)\n if (resetValue !== undefined) {\n resetStyle[key] = resetValue\n }\n }\n applyStylesToNode(node, resetStyle)\n } else {\n // fallback if no exitStyle defined\n node.style.opacity = '1'\n node.style.transform = 'none'\n }\n\n // force reflow\n void node.offsetHeight\n } else if (exitStyle) {\n // For normal (non-interrupted) exits, we need to ensure the CSS transition is\n // processed by the browser BEFORE the exitStyle takes effect. The issue is that\n // React may have already applied exitStyle in the same render batch. To fix this:\n // 1. Disable transition and reset to non-exit state\n // 2. Force reflow so browser processes the reset\n // 3. Use RAF to ensure we're in a new frame\n // 4. Re-enable transition and apply exitStyle\n // This mirrors the interrupted exit handling approach (which also uses RAF).\n ignoreCancelEvents = true\n node.style.transition = 'none'\n\n // Reset to the active/open state (not enterStyle, which may equal exitStyle).\n // enterStyle is the \"unmounted\" initial state and can share values with exitStyle\n // (e.g., both have opacity: 0). resetting to enterStyle would mean no value change\n // when exitStyle is applied, so the CSS transition wouldn't fire.\n const resetStyle: Record<string, unknown> = {}\n for (const key of Object.keys(exitStyle)) {\n const resetValue = getResetValue(key)\n if (resetValue !== undefined) {\n resetStyle[key] = resetValue\n }\n }\n applyStylesToNode(node, resetStyle)\n\n // Force reflow\n void node.offsetHeight\n\n // Use RAF to ensure transition is applied in a new frame\n rafId = requestAnimationFrame(() => {\n if (cycleId !== exitCycleIdRef.current) return\n // Re-enable transition\n node.style.transition = exitTransitionString\n // Force reflow to ensure transition is active\n void node.offsetHeight\n // Apply exit styles - this triggers the animation\n applyStylesToNode(node, exitStyle)\n // Re-enable cancel event handling\n ignoreCancelEvents = false\n })\n }\n\n /**\n * Exit animation handling for Dialog/Modal components\n *\n * The Challenge: When users close dialogs (via Escape key or clicking outside),\n * the element can disappear from the DOM before CSS transitions finish, which causes:\n * 1. Dialogs to stick around on screen\n * 2. Event handlers to stop working\n *\n * Fix: Calculate the MAXIMUM duration across all animated properties, not just\n * the default. With animateOnly and per-property configs, different properties\n * can have different durations, and we need to wait for the LONGEST one.\n */\n\n // calculate max duration across all animated properties\n let maxDuration = defaultAnimation ? extractDuration(defaultAnimation) : 200\n\n // check per-property animation durations using shared helper\n const animationConfigs = getAnimationConfigsForKeys(\n normalized,\n animations as Record<string, string>,\n keys,\n defaultAnimation\n )\n for (const animationValue of animationConfigs.values()) {\n if (animationValue) {\n const duration = extractDuration(animationValue)\n if (duration > maxDuration) {\n maxDuration = duration\n }\n }\n }\n\n const delay = normalized.delay ?? 0\n const fallbackTimeout = maxDuration + delay\n\n const timeoutId = setTimeout(() => {\n completeExit()\n }, fallbackTimeout)\n\n // track number of transitioning properties to wait for all to finish\n // (each property fires its own transitionend event)\n const transitioningProps = new Set(keys)\n let completedCount = 0\n\n const onFinishAnimation = (event: TransitionEvent) => {\n // only count transitions on THIS element, not bubbled from children\n if (event.target !== node) return\n\n // map CSS property names to our key names\n // e.g., transitionend fires with propertyName 'transform' for scale/x/y\n const eventProp = event.propertyName\n if (transitioningProps.has(eventProp) || eventProp === 'all') {\n completedCount++\n // wait for all properties to finish\n if (completedCount >= transitioningProps.size) {\n clearTimeout(timeoutId)\n completeExit()\n }\n }\n }\n\n // on cancel, still complete (element is exiting and animation was interrupted)\n // the guards prevent duplicate completion if this is a stale cycle\n const onCancelAnimation = () => {\n // ignore cancel events during reset phase (we intentionally cancel the old transition)\n if (ignoreCancelEvents) return\n clearTimeout(timeoutId)\n completeExit()\n }\n\n node.addEventListener('transitionend', onFinishAnimation)\n node.addEventListener('transitioncancel', onCancelAnimation)\n\n // For interrupted exits, re-enable transition and re-apply exit styles\n // This must happen AFTER listeners are set up so we catch the transitionend\n if (wasInterrupted) {\n rafId = requestAnimationFrame(() => {\n if (cycleId !== exitCycleIdRef.current) return\n // re-enable transition using the pre-built string\n node.style.transition = exitTransitionString\n // force reflow again\n void node.offsetHeight\n // now apply exit styles - this triggers the transition\n applyStylesToNode(node, exitStyle)\n // re-enable cancel event handling now that reset is complete\n ignoreCancelEvents = false\n })\n }\n\n return () => {\n clearTimeout(timeoutId)\n if (rafId !== undefined) cancelAnimationFrame(rafId)\n node.removeEventListener('transitionend', onFinishAnimation)\n node.removeEventListener('transitioncancel', onCancelAnimation)\n // restore transition: the exit handling sets node.style.transition='none'\n // directly on the DOM (bypassing React). if exit is interrupted (e.g. same-key\n // re-entry in AnimatePresence), React won't re-apply its managed transition\n // value because it hasn't changed in the virtual DOM. clearing the inline\n // override lets React's value take effect again.\n node.style.transition = ''\n }\n }, [isExiting])\n\n // tamagui doesnt even use animation output during hydration\n if (isHydrating) {\n return null\n }\n\n // Check if we have any animation to apply\n if (!hasNormalizedAnimation(normalized)) {\n return null\n }\n\n if (Array.isArray(style.transform)) {\n style.transform = transformsToString(style.transform)\n }\n\n // Build CSS transition string\n // TODO: we disabled the transform transition, because it will create issue for inverse function and animate function\n // for non layout transform properties either use animate function or find a workaround to do it with css\n const delayStr = normalized.delay ? ` ${normalized.delay}ms` : ''\n const durationOverride = normalized.config?.duration\n style.transition = keys\n .map((key) => {\n // Check for property-specific animation, fall back to default\n const propAnimation = normalized.properties[key]\n let animationValue: string | null = null\n\n if (typeof propAnimation === 'string') {\n animationValue = animations[propAnimation]\n } else if (\n propAnimation &&\n typeof propAnimation === 'object' &&\n propAnimation.type\n ) {\n animationValue = animations[propAnimation.type]\n } else if (defaultAnimation) {\n animationValue = defaultAnimation\n }\n\n // Apply global duration override if specified\n if (animationValue && durationOverride) {\n animationValue = applyDurationOverride(animationValue, durationOverride)\n }\n\n return animationValue ? `${key} ${animationValue}${delayStr}` : null\n })\n .filter(Boolean)\n .join(', ')\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.info('CSS animation', {\n props,\n animations,\n normalized,\n defaultAnimation,\n style,\n isEntering,\n isExiting,\n })\n }\n\n return { style, className: isEntering ? 't_unmounted' : '' }\n },\n }\n}\n\n// layout animations\n// useIsomorphicLayoutEffect(() => {\n// if (!host || !props.layout) {\n// return\n// }\n// // @ts-ignore\n// const boundingBox = host?.getBoundingClientRect()\n// if (isChanged(initialPositionRef.current, boundingBox)) {\n// const transform = invert(\n// host,\n// boundingBox,\n// initialPositionRef.current\n// )\n\n// animate({\n// from: transform,\n// to: { x: 0, y: 0, scaleX: 1, scaleY: 1 },\n// duration: 1000,\n// onUpdate: ({ x, y, scaleX, scaleY }) => {\n// // @ts-ignore\n// host.style.transform = `translate(${x}px, ${y}px) scaleX(${scaleX}) scaleY(${scaleY})`\n// // TODO: handle childRef inverse scale\n// // childRef.current.style.transform = `scaleX(${1 / scaleX}) scaleY(${\n// // 1 / scaleY\n// // })`\n// },\n// // TODO: extract ease-in from string and convert/map it to a cubicBezier array\n// cubicBezier: [0, 1.38, 1, -0.41],\n// })\n// }\n// initialPositionRef.current = boundingBox\n// })\n\n// style.transition = `${keys} ${animation}${\n// props.layout ? ',width 0s, height 0s, margin 0s, padding 0s, transform' : ''\n// }`\n\n// const isChanged = (initialBox: any, finalBox: any) => {\n// // we just mounted, so we don't have complete data yet\n// if (!initialBox || !finalBox) return false\n\n// // deep compare the two boxes\n// return JSON.stringify(initialBox) !== JSON.stringify(finalBox)\n// }\n\n// const invert = (el, from, to) => {\n// const { x: fromX, y: fromY, width: fromWidth, height: fromHeight } = from\n// const { x, y, width, height } = to\n\n// const transform = {\n// x: x - fromX - (fromWidth - width) / 2,\n// y: y - fromY - (fromHeight - height) / 2,\n// scaleX: width / fromWidth,\n// scaleY: height / fromHeight,\n// }\n\n// el.style.transform = `\n"
|
|
10
10
|
]
|
|
11
11
|
}
|