@tamagui/animate-presence 1.90.2 → 1.90.4
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/AnimatePresence.js.map +1 -1
- package/dist/cjs/AnimatePresence.native.js.map +1 -1
- package/dist/cjs/PresenceChild.js +45 -43
- package/dist/cjs/PresenceChild.js.map +2 -2
- package/dist/cjs/PresenceChild.native.js +7 -7
- package/dist/cjs/PresenceChild.native.js.map +2 -2
- package/dist/esm/AnimatePresence.js +1 -7
- package/dist/esm/AnimatePresence.js.map +1 -1
- package/dist/esm/AnimatePresence.native.js.map +1 -1
- package/dist/esm/PresenceChild.js +45 -43
- package/dist/esm/PresenceChild.js.map +2 -2
- package/dist/esm/PresenceChild.mjs +5 -5
- package/dist/esm/PresenceChild.native.js +7 -7
- package/dist/esm/PresenceChild.native.js.map +2 -2
- package/package.json +7 -7
- package/src/AnimatePresence.tsx +2 -9
- package/src/PresenceChild.tsx +61 -58
- package/types/AnimatePresence.d.ts.map +1 -1
- package/types/PresenceChild.d.ts +1 -1
- package/types/PresenceChild.d.ts.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/AnimatePresence.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/animate-presence/src/AnimatePresence.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["getChildKey", "child", "key", "updateChildLookup", "children", "allChildren", "forEach", "set", "onlyElements", "filtered", "Children", "isValidElement", "push", "AnimatePresence", "enterVariant", "exitVariant", "enterExitVariant", "initial", "onExitComplete", "exitBeforeEnter", "presenceAffectsLayout", "custom", "useContext", "forceRender", "LayoutGroupContext", "useForceUpdate", "filteredChildren", "presentChildren", "useRef", "Map", "current", "exiting", "Set", "isInitialRender", "_jsx", "_Fragment", "map", "PresenceChild", "isPresent", "undefined", "childrenToRender", "presentKeys", "targetKeys", "numPresent", "length", "i", "indexOf", "add", "delete", "size", "get", "insertionIndex", "onExit", "removeIndex", "findIndex", "presentChild", "splice", "exitingComponent", "has", "cloneElement", "displayName"]
|
|
6
6
|
}
|
|
@@ -26,49 +26,51 @@ __export(PresenceChild_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(PresenceChild_exports);
|
|
28
28
|
var import_use_constant = require("@tamagui/use-constant"), import_use_presence = require("@tamagui/use-presence"), React = __toESM(require("react")), import_react = require("react"), import_jsx_runtime = require("react/jsx-runtime");
|
|
29
|
-
const PresenceChild = (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
};
|
|
29
|
+
const PresenceChild = React.memo(
|
|
30
|
+
({
|
|
31
|
+
children,
|
|
32
|
+
initial,
|
|
33
|
+
isPresent,
|
|
34
|
+
onExitComplete,
|
|
35
|
+
exitVariant,
|
|
36
|
+
enterVariant,
|
|
37
|
+
enterExitVariant,
|
|
38
|
+
presenceAffectsLayout,
|
|
39
|
+
custom
|
|
40
|
+
}) => {
|
|
41
|
+
const presenceChildren = (0, import_use_constant.useConstant)(newChildrenMap), id = (0, import_react.useId)() || "", context = React.useMemo(
|
|
42
|
+
() => ({
|
|
43
|
+
id,
|
|
44
|
+
initial,
|
|
45
|
+
isPresent,
|
|
46
|
+
custom,
|
|
47
|
+
exitVariant,
|
|
48
|
+
enterVariant,
|
|
49
|
+
enterExitVariant,
|
|
50
|
+
onExitComplete: () => {
|
|
51
|
+
presenceChildren.set(id, !0);
|
|
52
|
+
for (const isComplete of presenceChildren.values())
|
|
53
|
+
if (!isComplete)
|
|
54
|
+
return;
|
|
55
|
+
onExitComplete?.();
|
|
56
|
+
},
|
|
57
|
+
register: () => (presenceChildren.set(id, !1), () => presenceChildren.delete(id))
|
|
58
|
+
}),
|
|
59
|
+
/**
|
|
60
|
+
* If the presence of a child affects the layout of the components around it,
|
|
61
|
+
* we want to make a new context value to ensure they get re-rendered
|
|
62
|
+
* so they can detect that layout change.
|
|
63
|
+
*/
|
|
64
|
+
// @ts-expect-error its ok
|
|
65
|
+
presenceAffectsLayout ? void 0 : [isPresent, exitVariant, enterVariant]
|
|
66
|
+
);
|
|
67
|
+
return React.useMemo(() => {
|
|
68
|
+
presenceChildren.forEach((_, key) => presenceChildren.set(key, !1));
|
|
69
|
+
}, [isPresent]), React.useEffect(() => {
|
|
70
|
+
!isPresent && !presenceChildren.size && onExitComplete?.();
|
|
71
|
+
}, [isPresent]), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_use_presence.PresenceContext.Provider, { value: context, children });
|
|
72
|
+
}
|
|
73
|
+
);
|
|
72
74
|
function newChildrenMap() {
|
|
73
75
|
return /* @__PURE__ */ new Map();
|
|
74
76
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/PresenceChild.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA4B,kCAC5B,sBAAgC,kCAEhC,QAAuB,2BACvB,eAAsB,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA4B,kCAC5B,sBAAgC,kCAEhC,QAAuB,2BACvB,eAAsB,kBA+EX;AA9DJ,MAAM,gBAAgB,MAAM;AAAA,EACjC,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAA0B;AACxB,UAAM,uBAAmB,iCAAY,cAAc,GAC7C,SAAK,oBAAM,KAAK,IAEhB,UAAU,MAAM;AAAA,MACpB,OACS;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,gBAAgB,MAAM;AACpB,2BAAiB,IAAI,IAAI,EAAI;AAC7B,qBAAW,cAAc,iBAAiB,OAAO;AAC/C,gBAAI,CAAC;AACH;AAGJ,2BAAiB;AAAA,QACnB;AAAA,QACA,UAAU,OACR,iBAAiB,IAAI,IAAI,EAAK,GACvB,MAAM,iBAAiB,OAAO,EAAE;AAAA,MAE3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASF,wBAAwB,SAAY,CAAC,WAAW,aAAa,YAAY;AAAA,IAC3E;AAEA,iBAAM,QAAQ,MAAM;AAClB,uBAAiB,QAAQ,CAAC,GAAG,QAAQ,iBAAiB,IAAI,KAAK,EAAK,CAAC;AAAA,IACvE,GAAG,CAAC,SAAS,CAAC,GAMd,MAAM,UAAU,MAAM;AACpB,OAAC,aAAa,CAAC,iBAAiB,QAAQ,iBAAiB;AAAA,IAC3D,GAAG,CAAC,SAAS,CAAC,GAEP,4CAAC,oCAAgB,UAAhB,EAAyB,OAAO,SAAU,UAAS;AAAA,EAC7D;AACF;AAEA,SAAS,iBAAuC;AAC9C,SAAO,oBAAI,IAAI;AACjB;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -26,7 +26,7 @@ __export(PresenceChild_exports, {
|
|
|
26
26
|
PresenceChild: () => PresenceChild
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(PresenceChild_exports);
|
|
29
|
-
var import_jsx_runtime = require("react/jsx-runtime"), import_use_constant = require("@tamagui/use-constant"), import_use_presence = require("@tamagui/use-presence"), React = __toESM(require("react")), import_react = require("react"), PresenceChild = function(param) {
|
|
29
|
+
var import_jsx_runtime = require("react/jsx-runtime"), import_use_constant = require("@tamagui/use-constant"), import_use_presence = require("@tamagui/use-presence"), React = __toESM(require("react")), import_react = require("react"), PresenceChild = /* @__PURE__ */ React.memo(function(param) {
|
|
30
30
|
var children = param.children, initial = param.initial, isPresent = param.isPresent, onExitComplete = param.onExitComplete, exitVariant = param.exitVariant, enterVariant = param.enterVariant, enterExitVariant = param.enterExitVariant, presenceAffectsLayout = param.presenceAffectsLayout, custom = param.custom, presenceChildren = (0, import_use_constant.useConstant)(newChildrenMap), id = (0, import_react.useId)() || "", context = React.useMemo(
|
|
31
31
|
function() {
|
|
32
32
|
return {
|
|
@@ -37,8 +37,8 @@ var import_jsx_runtime = require("react/jsx-runtime"), import_use_constant = req
|
|
|
37
37
|
exitVariant,
|
|
38
38
|
enterVariant,
|
|
39
39
|
enterExitVariant,
|
|
40
|
-
onExitComplete: function(
|
|
41
|
-
presenceChildren.set(
|
|
40
|
+
onExitComplete: function() {
|
|
41
|
+
presenceChildren.set(id, !0);
|
|
42
42
|
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
|
43
43
|
try {
|
|
44
44
|
for (var _iterator = presenceChildren.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
@@ -58,9 +58,9 @@ var import_jsx_runtime = require("react/jsx-runtime"), import_use_constant = req
|
|
|
58
58
|
}
|
|
59
59
|
onExitComplete == null || onExitComplete();
|
|
60
60
|
},
|
|
61
|
-
register: function(
|
|
62
|
-
return presenceChildren.set(
|
|
63
|
-
return presenceChildren.delete(
|
|
61
|
+
register: function() {
|
|
62
|
+
return presenceChildren.set(id, !1), function() {
|
|
63
|
+
return presenceChildren.delete(id);
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
};
|
|
@@ -91,7 +91,7 @@ var import_jsx_runtime = require("react/jsx-runtime"), import_use_constant = req
|
|
|
91
91
|
value: context,
|
|
92
92
|
children
|
|
93
93
|
});
|
|
94
|
-
};
|
|
94
|
+
});
|
|
95
95
|
function newChildrenMap() {
|
|
96
96
|
return /* @__PURE__ */ new Map();
|
|
97
97
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/animate-presence/src/PresenceChild.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAA4B,kCAC5B,sBAAgC,kCAEhC,QAAuB,2BACvB,eAAsB,
|
|
5
|
-
"names": ["PresenceChild", "children", "initial", "isPresent", "onExitComplete", "exitVariant", "enterVariant", "enterExitVariant", "presenceAffectsLayout", "custom", "presenceChildren", "useConstant", "newChildrenMap", "id", "useId", "context", "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAA4B,kCAC5B,sBAAgC,kCAEhC,QAAuB,2BACvB,eAAsB,kBAiBTA,gBAAgBC,sBAAMC,KACjC,SAAA,OAAA;MACEC,WAAAA,MAAAA,UACAC,UAAAA,MAAAA,SACAC,YAAAA,MAAAA,WACAC,iBAAAA,MAAAA,gBACAC,cAAAA,MAAAA,aACAC,eAAAA,MAAAA,cACAC,mBAAAA,MAAAA,kBACAC,wBAAAA,MAAAA,uBACAC,SAAAA,MAAAA,QAEMC,uBAAmBC,iCAAYC,cAAAA,GAC/BC,SAAKC,oBAAAA,KAAW,IAEhBC,UAAUhB,MAAMiB;IACpB,WAAA;AACE,aAAO;QACLH;QACAX;QACAC;QACAM;QACAJ;QACAC;QACAC;QACAH,gBAAgB,WAAA;AACdM,2BAAiBO,IAAIJ,IAAI,EAAA;cACpB,4BAAA,IAAA,oBAAA,IAAA,iBAAA;;AAAL,qBAAK,YAAoBH,iBAAiBQ,OAAM,EAAA,OAAA,QAAA,EAAA,GAA3C,OAAA,EAAA,6BAAA,QAAA,UAAA,KAAA,GAAA,OAAA,4BAAA,IAA+C;AAA/C,kBAAMC,aAAN,MAAA;AACH,kBAAI,CAACA;AACH;YAEJ;;AAJK,gCAAA,IAAA,iBAAA;;;eAAA,6BAAA,UAAA,UAAA,QAAA,UAAA,OAAA;;kBAAA;sBAAA;;;AAKLf,4BAAAA,QAAAA,eAAAA;QACF;QACAgB,UAAU,WAAA;AACRV,kCAAiBO,IAAIJ,IAAI,EAAA,GAClB,WAAA;mBAAMH,iBAAiBW,OAAOR,EAAAA;;QACvC;MACF;IACF;;;;;;;IAQAL,wBAAwBc,SAAY;MAACnB;MAAWE;MAAaC;;EAAa;AAG5EP,eAAMiB,QAAQ,WAAA;AACZN,qBAAiBa,QAAQ,SAACC,GAAGC,KAAAA;aAAQf,iBAAiBO,IAAIQ,KAAK,EAAA;;EACjE,GAAG;IAACtB;GAAU,GAMdJ,MAAM2B,UAAU,WAAA;AACd,KAACvB,aAAa,CAACO,iBAAiBiB,SAAQvB,kBAAAA,QAAAA,eAAAA;EAC1C,GAAG;IAACD;GAAU,GAEP,uCAAAyB,KAACC,oCAAgBC,UAAQ;IAACC,OAAOhB;;;AAC1C,CAAA;AAGF,SAASH,iBAAAA;AACP,SAAO,oBAAIoB,IAAAA;AACb;",
|
|
5
|
+
"names": ["PresenceChild", "React", "memo", "children", "initial", "isPresent", "onExitComplete", "exitVariant", "enterVariant", "enterExitVariant", "presenceAffectsLayout", "custom", "presenceChildren", "useConstant", "newChildrenMap", "id", "useId", "context", "useMemo", "set", "values", "isComplete", "register", "delete", "undefined", "forEach", "_", "key", "useEffect", "size", "_jsx", "PresenceContext", "Provider", "value", "Map"]
|
|
6
6
|
}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
2
|
-
import {
|
|
3
|
-
Children,
|
|
4
|
-
cloneElement,
|
|
5
|
-
isValidElement,
|
|
6
|
-
useContext,
|
|
7
|
-
useRef
|
|
8
|
-
} from "react";
|
|
2
|
+
import { Children, cloneElement, isValidElement, useContext, useRef } from "react";
|
|
9
3
|
import { LayoutGroupContext } from "./LayoutGroupContext";
|
|
10
4
|
import { PresenceChild } from "./PresenceChild";
|
|
11
5
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/AnimatePresence.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AAAA,SAAS,sBAAsB;AAE/B,SAAgB,UAAU,cAAc,gBAAgB,YAAY,cAAc;AAElF,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAgGxB,mBAEI,WAFJ;AA3FN,MAAM,cAAc,CAAC,UAA2C,MAAM,OAAO;AAE7E,SAAS,kBACP,UACA,aACA;AACA,WAAS,QAAQ,CAAC,UAAU;AAC1B,UAAM,MAAM,YAAY,KAAK;AAC7B,gBAAY,IAAI,KAAK,KAAK;AAAA,EAC5B,CAAC;AACH;AAEA,SAAS,aAAa,UAA0C;AAC9D,QAAM,WAAgC,CAAC;AAEvC,kBAAS,QAAQ,UAAU,CAAC,UAAU;AACpC,IAAI,eAAe,KAAK,KAAG,SAAS,KAAK,KAAK;AAAA,EAChD,CAAC,GACM;AACT;AAmCO,MAAM,kBAET,CAAC;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EACxB;AACF,MAAM;AAGJ,MAAI,cAAc,WAAW,kBAAkB,EAAE,eAAe,eAAe;AAG/E,QAAM,mBAAmB,aAAa,QAAQ,GAIxC,kBAAkB,OAAO,gBAAgB,GAGzC,cAAc,OAAO,oBAAI,IAAqC,CAAC,EAAE,SAEjE,UAAU,OAAO,oBAAI,IAAkB,CAAC,EAAE;AAChD,oBAAkB,kBAAkB,WAAW;AAI/C,QAAM,kBAAkB,OAAO,EAAI;AAEnC,MAAI,gBAAgB;AAClB,2BAAgB,UAAU,IAExB,gCACG,2BAAiB,IAAI,CAAC,UACrB;AAAA,MAAC;AAAA;AAAA,QAEC,WAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,UAAU,SAAY;AAAA,QAC/B;AAAA,QACA;AAAA,QAEC;AAAA;AAAA,MATI,YAAY,KAAK;AAAA,IAUxB,CACD,GACH;AAIJ,MAAI,mBAAmB,CAAC,GAAG,gBAAgB;AAI3C,QAAM,cAAc,gBAAgB,QAAQ,IAAI,WAAW,GACrD,aAAa,iBAAiB,IAAI,WAAW,GAG7C,aAAa,YAAY;AAC/B,WAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,UAAM,MAAM,YAAY,CAAC;AACzB,IAAI,WAAW,QAAQ,GAAG,MAAM,KAC9B,QAAQ,IAAI,GAAG,IAGf,QAAQ,OAAO,GAAG;AAAA,EAEtB;AAIA,SAAI,mBAAmB,QAAQ,SAC7B,mBAAmB,CAAC,IAKtB,QAAQ,QAAQ,CAAC,QAAQ;AAEvB,QAAI,WAAW,QAAQ,GAAG,MAAM;AAAI;AAEpC,UAAM,QAAQ,YAAY,IAAI,GAAG;AACjC,QAAI,CAAC;AAAO;AAEZ,UAAM,iBAAiB,YAAY,QAAQ,GAAG,GAiBxC,mBACJ;AAAA,MAAC;AAAA;AAAA,QAEC,WAAW;AAAA,QACX,gBAnBW,MAAM;AACnB,sBAAY,OAAO,GAAG,GACtB,QAAQ,OAAO,GAAG;AAClB,gBAAM,cAAc,gBAAgB,QAAQ;AAAA,YAC1C,CAAC,iBAAiB,aAAa,QAAQ;AAAA,UACzC;AACA,0BAAgB,QAAQ,OAAO,aAAa,CAAC,GAExC,QAAQ,SACX,gBAAgB,UAAU,kBAC1B,YAAY,GACZ,iBAAiB;AAAA,QAErB;AAAA,QAOI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEC;AAAA;AAAA,MATI,YAAY,KAAK;AAAA,IAUxB;AAGF,qBAAiB,OAAO,gBAAgB,GAAG,gBAAgB;AAAA,EAC7D,CAAC,GAID,mBAAmB,iBAAiB,IAAI,CAAC,UAAU;AACjD,UAAM,MAAM,MAAM;AAClB,WAAO,QAAQ,IAAI,GAAG,IACpB,QAEA;AAAA,MAAC;AAAA;AAAA,QAEC,WAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEC;AAAA;AAAA,MARI,YAAY,KAAK;AAAA,IASxB;AAAA,EAEJ,CAAC,GAED,gBAAgB,UAAU,kBAGxB,gCACG,kBAAQ,OACL,mBACA,iBAAiB,IAAI,CAAC,UAAU,aAAa,KAAK,CAAC,GACzD;AAEJ;AAEA,gBAAgB,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/animate-presence/src/AnimatePresence.tsx"],
|
|
4
|
-
"mappings": ";
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["useForceUpdate", "Children", "cloneElement", "isValidElement", "useContext", "useRef", "LayoutGroupContext", "PresenceChild", "getChildKey", "child", "key", "updateChildLookup", "children", "allChildren", "forEach", "set", "onlyElements", "filtered", "push", "AnimatePresence", "enterVariant", "exitVariant", "enterExitVariant", "initial", "onExitComplete", "exitBeforeEnter", "presenceAffectsLayout", "custom", "forceRender", "filteredChildren", "presentChildren", "Map", "current", "exiting", "Set", "isInitialRender", "map", "isPresent", "undefined", "childrenToRender", "presentKeys", "targetKeys", "numPresent", "length", "i", "indexOf", "add", "delete", "size", "get", "insertionIndex", "onExit", "removeIndex", "findIndex", "presentChild", "splice", "exitingComponent", "has", "displayName"]
|
|
6
6
|
}
|
|
@@ -3,49 +3,51 @@ import { PresenceContext } from "@tamagui/use-presence";
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { useId } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
const PresenceChild = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
()
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
};
|
|
6
|
+
const PresenceChild = React.memo(
|
|
7
|
+
({
|
|
8
|
+
children,
|
|
9
|
+
initial,
|
|
10
|
+
isPresent,
|
|
11
|
+
onExitComplete,
|
|
12
|
+
exitVariant,
|
|
13
|
+
enterVariant,
|
|
14
|
+
enterExitVariant,
|
|
15
|
+
presenceAffectsLayout,
|
|
16
|
+
custom
|
|
17
|
+
}) => {
|
|
18
|
+
const presenceChildren = useConstant(newChildrenMap), id = useId() || "", context = React.useMemo(
|
|
19
|
+
() => ({
|
|
20
|
+
id,
|
|
21
|
+
initial,
|
|
22
|
+
isPresent,
|
|
23
|
+
custom,
|
|
24
|
+
exitVariant,
|
|
25
|
+
enterVariant,
|
|
26
|
+
enterExitVariant,
|
|
27
|
+
onExitComplete: () => {
|
|
28
|
+
presenceChildren.set(id, !0);
|
|
29
|
+
for (const isComplete of presenceChildren.values())
|
|
30
|
+
if (!isComplete)
|
|
31
|
+
return;
|
|
32
|
+
onExitComplete?.();
|
|
33
|
+
},
|
|
34
|
+
register: () => (presenceChildren.set(id, !1), () => presenceChildren.delete(id))
|
|
35
|
+
}),
|
|
36
|
+
/**
|
|
37
|
+
* If the presence of a child affects the layout of the components around it,
|
|
38
|
+
* we want to make a new context value to ensure they get re-rendered
|
|
39
|
+
* so they can detect that layout change.
|
|
40
|
+
*/
|
|
41
|
+
// @ts-expect-error its ok
|
|
42
|
+
presenceAffectsLayout ? void 0 : [isPresent, exitVariant, enterVariant]
|
|
43
|
+
);
|
|
44
|
+
return React.useMemo(() => {
|
|
45
|
+
presenceChildren.forEach((_, key) => presenceChildren.set(key, !1));
|
|
46
|
+
}, [isPresent]), React.useEffect(() => {
|
|
47
|
+
!isPresent && !presenceChildren.size && onExitComplete?.();
|
|
48
|
+
}, [isPresent]), /* @__PURE__ */ jsx(PresenceContext.Provider, { value: context, children });
|
|
49
|
+
}
|
|
50
|
+
);
|
|
49
51
|
function newChildrenMap() {
|
|
50
52
|
return /* @__PURE__ */ new Map();
|
|
51
53
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/PresenceChild.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAEhC,YAAY,WAAW;AACvB,SAAS,aAAa;
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAEhC,YAAY,WAAW;AACvB,SAAS,aAAa;AA+EX;AA9DJ,MAAM,gBAAgB,MAAM;AAAA,EACjC,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAA0B;AACxB,UAAM,mBAAmB,YAAY,cAAc,GAC7C,KAAK,MAAM,KAAK,IAEhB,UAAU,MAAM;AAAA,MACpB,OACS;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,gBAAgB,MAAM;AACpB,2BAAiB,IAAI,IAAI,EAAI;AAC7B,qBAAW,cAAc,iBAAiB,OAAO;AAC/C,gBAAI,CAAC;AACH;AAGJ,2BAAiB;AAAA,QACnB;AAAA,QACA,UAAU,OACR,iBAAiB,IAAI,IAAI,EAAK,GACvB,MAAM,iBAAiB,OAAO,EAAE;AAAA,MAE3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASF,wBAAwB,SAAY,CAAC,WAAW,aAAa,YAAY;AAAA,IAC3E;AAEA,iBAAM,QAAQ,MAAM;AAClB,uBAAiB,QAAQ,CAAC,GAAG,QAAQ,iBAAiB,IAAI,KAAK,EAAK,CAAC;AAAA,IACvE,GAAG,CAAC,SAAS,CAAC,GAMd,MAAM,UAAU,MAAM;AACpB,OAAC,aAAa,CAAC,iBAAiB,QAAQ,iBAAiB;AAAA,IAC3D,GAAG,CAAC,SAAS,CAAC,GAEP,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,SAAU,UAAS;AAAA,EAC7D;AACF;AAEA,SAAS,iBAAuC;AAC9C,SAAO,oBAAI,IAAI;AACjB;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -3,7 +3,7 @@ import { PresenceContext } from "@tamagui/use-presence";
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { useId } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
const PresenceChild = ({
|
|
6
|
+
const PresenceChild = React.memo(({
|
|
7
7
|
children,
|
|
8
8
|
initial,
|
|
9
9
|
isPresent,
|
|
@@ -24,12 +24,12 @@ const PresenceChild = ({
|
|
|
24
24
|
exitVariant,
|
|
25
25
|
enterVariant,
|
|
26
26
|
enterExitVariant,
|
|
27
|
-
onExitComplete:
|
|
28
|
-
presenceChildren.set(
|
|
27
|
+
onExitComplete: () => {
|
|
28
|
+
presenceChildren.set(id, !0);
|
|
29
29
|
for (const isComplete of presenceChildren.values()) if (!isComplete) return;
|
|
30
30
|
onExitComplete?.();
|
|
31
31
|
},
|
|
32
|
-
register:
|
|
32
|
+
register: () => (presenceChildren.set(id, !1), () => presenceChildren.delete(id))
|
|
33
33
|
}),
|
|
34
34
|
/**
|
|
35
35
|
* If the presence of a child affects the layout of the components around it,
|
|
@@ -46,7 +46,7 @@ const PresenceChild = ({
|
|
|
46
46
|
value: context,
|
|
47
47
|
children
|
|
48
48
|
});
|
|
49
|
-
};
|
|
49
|
+
});
|
|
50
50
|
function newChildrenMap() {
|
|
51
51
|
return /* @__PURE__ */new Map();
|
|
52
52
|
}
|
|
@@ -3,7 +3,7 @@ import { useConstant } from "@tamagui/use-constant";
|
|
|
3
3
|
import { PresenceContext } from "@tamagui/use-presence";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { useId } from "react";
|
|
6
|
-
var PresenceChild = function(param) {
|
|
6
|
+
var PresenceChild = /* @__PURE__ */ React.memo(function(param) {
|
|
7
7
|
var children = param.children, initial = param.initial, isPresent = param.isPresent, onExitComplete = param.onExitComplete, exitVariant = param.exitVariant, enterVariant = param.enterVariant, enterExitVariant = param.enterExitVariant, presenceAffectsLayout = param.presenceAffectsLayout, custom = param.custom, presenceChildren = useConstant(newChildrenMap), id = useId() || "", context = React.useMemo(
|
|
8
8
|
function() {
|
|
9
9
|
return {
|
|
@@ -14,8 +14,8 @@ var PresenceChild = function(param) {
|
|
|
14
14
|
exitVariant,
|
|
15
15
|
enterVariant,
|
|
16
16
|
enterExitVariant,
|
|
17
|
-
onExitComplete: function(
|
|
18
|
-
presenceChildren.set(
|
|
17
|
+
onExitComplete: function() {
|
|
18
|
+
presenceChildren.set(id, !0);
|
|
19
19
|
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
|
20
20
|
try {
|
|
21
21
|
for (var _iterator = presenceChildren.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
@@ -35,9 +35,9 @@ var PresenceChild = function(param) {
|
|
|
35
35
|
}
|
|
36
36
|
onExitComplete == null || onExitComplete();
|
|
37
37
|
},
|
|
38
|
-
register: function(
|
|
39
|
-
return presenceChildren.set(
|
|
40
|
-
return presenceChildren.delete(
|
|
38
|
+
register: function() {
|
|
39
|
+
return presenceChildren.set(id, !1), function() {
|
|
40
|
+
return presenceChildren.delete(id);
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
};
|
|
@@ -68,7 +68,7 @@ var PresenceChild = function(param) {
|
|
|
68
68
|
value: context,
|
|
69
69
|
children
|
|
70
70
|
});
|
|
71
|
-
};
|
|
71
|
+
});
|
|
72
72
|
function newChildrenMap() {
|
|
73
73
|
return /* @__PURE__ */ new Map();
|
|
74
74
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/animate-presence/src/PresenceChild.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,mBAAmB;AAC5B,SAASC,uBAAuB;AAEhC,YAAYC,WAAW;AACvB,SAASC,aAAa;
|
|
5
|
-
"names": ["useConstant", "PresenceContext", "React", "useId", "PresenceChild", "children", "initial", "isPresent", "onExitComplete", "exitVariant", "enterVariant", "enterExitVariant", "presenceAffectsLayout", "custom", "presenceChildren", "newChildrenMap", "id", "context", "useMemo", "set", "values", "isComplete", "register", "delete", "undefined", "forEach", "_", "key", "useEffect", "size", "Provider", "value", "Map"]
|
|
4
|
+
"mappings": ";AAAA,SAASA,mBAAmB;AAC5B,SAASC,uBAAuB;AAEhC,YAAYC,WAAW;AACvB,SAASC,aAAa;AAiBf,IAAMC,gBAAgBF,sBAAMG,KACjC,SAAA,OAAA;MACEC,WAAAA,MAAAA,UACAC,UAAAA,MAAAA,SACAC,YAAAA,MAAAA,WACAC,iBAAAA,MAAAA,gBACAC,cAAAA,MAAAA,aACAC,eAAAA,MAAAA,cACAC,mBAAAA,MAAAA,kBACAC,wBAAAA,MAAAA,uBACAC,SAAAA,MAAAA,QAEMC,mBAAmBf,YAAYgB,cAAAA,GAC/BC,KAAKd,MAAAA,KAAW,IAEhBe,UAAUhB,MAAMiB;IACpB,WAAA;AACE,aAAO;QACLF;QACAV;QACAC;QACAM;QACAJ;QACAC;QACAC;QACAH,gBAAgB,WAAA;AACdM,2BAAiBK,IAAIH,IAAI,EAAA;cACpB,4BAAA,IAAA,oBAAA,IAAA,iBAAA;;AAAL,qBAAK,YAAoBF,iBAAiBM,OAAM,EAAA,OAAA,QAAA,EAAA,GAA3C,OAAA,EAAA,6BAAA,QAAA,UAAA,KAAA,GAAA,OAAA,4BAAA,IAA+C;AAA/C,kBAAMC,aAAN,MAAA;AACH,kBAAI,CAACA;AACH;YAEJ;;AAJK,gCAAA,IAAA,iBAAA;;;eAAA,6BAAA,UAAA,UAAA,QAAA,UAAA,OAAA;;kBAAA;sBAAA;;;AAKLb,4BAAAA,QAAAA,eAAAA;QACF;QACAc,UAAU,WAAA;AACRR,kCAAiBK,IAAIH,IAAI,EAAA,GAClB,WAAA;mBAAMF,iBAAiBS,OAAOP,EAAAA;;QACvC;MACF;IACF;;;;;;;IAQAJ,wBAAwBY,SAAY;MAACjB;MAAWE;MAAaC;;EAAa;AAG5ET,eAAMiB,QAAQ,WAAA;AACZJ,qBAAiBW,QAAQ,SAACC,GAAGC,KAAAA;aAAQb,iBAAiBK,IAAIQ,KAAK,EAAA;;EACjE,GAAG;IAACpB;GAAU,GAMdN,MAAM2B,UAAU,WAAA;AACd,KAACrB,aAAa,CAACO,iBAAiBe,SAAQrB,kBAAAA,QAAAA,eAAAA;EAC1C,GAAG;IAACD;GAAU,GAEP,qBAACP,gBAAgB8B,UAAQ;IAACC,OAAOd;;;AAC1C,CAAA;AAGF,SAASF,iBAAAA;AACP,SAAO,oBAAIiB,IAAAA;AACb;",
|
|
5
|
+
"names": ["useConstant", "PresenceContext", "React", "useId", "PresenceChild", "memo", "children", "initial", "isPresent", "onExitComplete", "exitVariant", "enterVariant", "enterExitVariant", "presenceAffectsLayout", "custom", "presenceChildren", "newChildrenMap", "id", "context", "useMemo", "set", "values", "isComplete", "register", "delete", "undefined", "forEach", "_", "key", "useEffect", "size", "Provider", "value", "Map"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/animate-presence",
|
|
3
|
-
"version": "1.90.
|
|
3
|
+
"version": "1.90.4",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"dist"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@tamagui/helpers": "1.90.
|
|
17
|
-
"@tamagui/use-constant": "1.90.
|
|
18
|
-
"@tamagui/use-force-update": "1.90.
|
|
19
|
-
"@tamagui/use-presence": "1.90.
|
|
20
|
-
"@tamagui/web": "1.90.
|
|
16
|
+
"@tamagui/helpers": "1.90.4",
|
|
17
|
+
"@tamagui/use-constant": "1.90.4",
|
|
18
|
+
"@tamagui/use-force-update": "1.90.4",
|
|
19
|
+
"@tamagui/use-presence": "1.90.4",
|
|
20
|
+
"@tamagui/web": "1.90.4"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@tamagui/build": "1.90.
|
|
23
|
+
"@tamagui/build": "1.90.4"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "tamagui-build",
|
package/src/AnimatePresence.tsx
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
import { useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
2
1
|
import { useForceUpdate } from '@tamagui/use-force-update'
|
|
3
2
|
import type { ReactElement, ReactNode } from 'react'
|
|
4
|
-
import React, {
|
|
5
|
-
Children,
|
|
6
|
-
cloneElement,
|
|
7
|
-
isValidElement,
|
|
8
|
-
useContext,
|
|
9
|
-
useEffect,
|
|
10
|
-
useRef,
|
|
11
|
-
} from 'react'
|
|
3
|
+
import React, { Children, cloneElement, isValidElement, useContext, useRef } from 'react'
|
|
12
4
|
|
|
13
5
|
import { LayoutGroupContext } from './LayoutGroupContext'
|
|
14
6
|
import { PresenceChild } from './PresenceChild'
|
|
@@ -169,6 +161,7 @@ export const AnimatePresence: React.FunctionComponent<
|
|
|
169
161
|
(presentChild) => presentChild.key === key
|
|
170
162
|
)
|
|
171
163
|
presentChildren.current.splice(removeIndex, 1)
|
|
164
|
+
|
|
172
165
|
if (!exiting.size) {
|
|
173
166
|
presentChildren.current = filteredChildren
|
|
174
167
|
forceRender()
|
package/src/PresenceChild.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useConstant } from '@tamagui/use-constant'
|
|
2
2
|
import { PresenceContext } from '@tamagui/use-presence'
|
|
3
|
-
import type
|
|
3
|
+
import { type PresenceContextProps } from '@tamagui/web'
|
|
4
4
|
import * as React from 'react'
|
|
5
5
|
import { useId } from 'react'
|
|
6
6
|
|
|
@@ -18,69 +18,72 @@ interface PresenceChildProps {
|
|
|
18
18
|
enterExitVariant?: string | null
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
21
|
+
// this memo seems to help PopoverContent from continuously re-rendering when open
|
|
22
|
+
export const PresenceChild = React.memo(
|
|
23
|
+
({
|
|
24
|
+
children,
|
|
25
|
+
initial,
|
|
26
|
+
isPresent,
|
|
27
|
+
onExitComplete,
|
|
28
|
+
exitVariant,
|
|
29
|
+
enterVariant,
|
|
30
|
+
enterExitVariant,
|
|
31
|
+
presenceAffectsLayout,
|
|
32
|
+
custom,
|
|
33
|
+
}: PresenceChildProps) => {
|
|
34
|
+
const presenceChildren = useConstant(newChildrenMap)
|
|
35
|
+
const id = useId() || ''
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
const context = React.useMemo(
|
|
38
|
+
(): PresenceContextProps => {
|
|
39
|
+
return {
|
|
40
|
+
id,
|
|
41
|
+
initial,
|
|
42
|
+
isPresent,
|
|
43
|
+
custom,
|
|
44
|
+
exitVariant,
|
|
45
|
+
enterVariant,
|
|
46
|
+
enterExitVariant,
|
|
47
|
+
onExitComplete: () => {
|
|
48
|
+
presenceChildren.set(id, true)
|
|
49
|
+
for (const isComplete of presenceChildren.values()) {
|
|
50
|
+
if (!isComplete) {
|
|
51
|
+
return // can stop searching when any is incomplete
|
|
52
|
+
}
|
|
50
53
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*/
|
|
54
|
+
onExitComplete?.()
|
|
55
|
+
},
|
|
56
|
+
register: () => {
|
|
57
|
+
presenceChildren.set(id, false)
|
|
58
|
+
return () => presenceChildren.delete(id)
|
|
59
|
+
},
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* If the presence of a child affects the layout of the components around it,
|
|
64
|
+
* we want to make a new context value to ensure they get re-rendered
|
|
65
|
+
* so they can detect that layout change.
|
|
66
|
+
*/
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
// @ts-expect-error its ok
|
|
69
|
+
presenceAffectsLayout ? undefined : [isPresent, exitVariant, enterVariant]
|
|
70
|
+
)
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
React.useMemo(() => {
|
|
73
|
+
presenceChildren.forEach((_, key) => presenceChildren.set(key, false))
|
|
74
|
+
}, [isPresent])
|
|
73
75
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
/**
|
|
77
|
+
* If there's no animated components to fire exit animations, we want to remove this
|
|
78
|
+
* component immediately.
|
|
79
|
+
*/
|
|
80
|
+
React.useEffect(() => {
|
|
81
|
+
!isPresent && !presenceChildren.size && onExitComplete?.()
|
|
82
|
+
}, [isPresent])
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
+
return <PresenceContext.Provider value={context}>{children}</PresenceContext.Provider>
|
|
85
|
+
}
|
|
86
|
+
)
|
|
84
87
|
|
|
85
88
|
function newChildrenMap(): Map<string, boolean> {
|
|
86
89
|
return new Map()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatePresence.d.ts","sourceRoot":"","sources":["../src/AnimatePresence.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnimatePresence.d.ts","sourceRoot":"","sources":["../src/AnimatePresence.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqE,MAAM,OAAO,CAAA;AAIzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAyBnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CACnD,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CA0J9C,CAAA"}
|
package/types/PresenceChild.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ interface PresenceChildProps {
|
|
|
11
11
|
enterVariant?: string | null;
|
|
12
12
|
enterExitVariant?: string | null;
|
|
13
13
|
}
|
|
14
|
-
export declare const PresenceChild: ({ children, initial, isPresent, onExitComplete, exitVariant, enterVariant, enterExitVariant, presenceAffectsLayout, custom, }: PresenceChildProps) => import("react/jsx-runtime").JSX.Element
|
|
14
|
+
export declare const PresenceChild: React.MemoExoticComponent<({ children, initial, isPresent, onExitComplete, exitVariant, enterVariant, enterExitVariant, presenceAffectsLayout, custom, }: PresenceChildProps) => import("react/jsx-runtime").JSX.Element>;
|
|
15
15
|
export {};
|
|
16
16
|
//# sourceMappingURL=PresenceChild.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresenceChild.d.ts","sourceRoot":"","sources":["../src/PresenceChild.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,OAAO,CAAC,EAAE,KAAK,GAAG,aAAa,CAAA;IAC/B,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,qBAAqB,EAAE,OAAO,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;
|
|
1
|
+
{"version":3,"file":"PresenceChild.d.ts","sourceRoot":"","sources":["../src/PresenceChild.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,OAAO,CAAC,EAAE,KAAK,GAAG,aAAa,CAAA;IAC/B,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,qBAAqB,EAAE,OAAO,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAGD,eAAO,MAAM,aAAa,4JAWrB,kBAAkB,6CAqDtB,CAAA"}
|