@tamagui/z-index-stack 1.0.1
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/LICENSE +21 -0
- package/dist/cjs/StackZIndex.cjs +42 -0
- package/dist/cjs/StackZIndex.js +29 -0
- package/dist/cjs/StackZIndex.js.map +6 -0
- package/dist/cjs/StackZIndex.native.js +46 -0
- package/dist/cjs/StackZIndex.native.js.map +1 -0
- package/dist/cjs/context.cjs +29 -0
- package/dist/cjs/context.js +23 -0
- package/dist/cjs/context.js.map +6 -0
- package/dist/cjs/context.native.js +32 -0
- package/dist/cjs/context.native.js.map +1 -0
- package/dist/cjs/index.cjs +20 -0
- package/dist/cjs/index.js +17 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +23 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/types.cjs +16 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/types.js.map +6 -0
- package/dist/cjs/types.native.js +19 -0
- package/dist/cjs/types.native.js.map +1 -0
- package/dist/cjs/useStackedZIndex.cjs +80 -0
- package/dist/cjs/useStackedZIndex.js +61 -0
- package/dist/cjs/useStackedZIndex.js.map +6 -0
- package/dist/cjs/useStackedZIndex.native.js +89 -0
- package/dist/cjs/useStackedZIndex.native.js.map +1 -0
- package/dist/esm/StackZIndex.js +15 -0
- package/dist/esm/StackZIndex.js.map +6 -0
- package/dist/esm/StackZIndex.mjs +19 -0
- package/dist/esm/StackZIndex.mjs.map +1 -0
- package/dist/esm/StackZIndex.native.js +20 -0
- package/dist/esm/StackZIndex.native.js.map +1 -0
- package/dist/esm/context.js +7 -0
- package/dist/esm/context.js.map +6 -0
- package/dist/esm/context.mjs +5 -0
- package/dist/esm/context.mjs.map +1 -0
- package/dist/esm/context.native.js +5 -0
- package/dist/esm/context.native.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +4 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +6 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/esm/types.native.js +2 -0
- package/dist/esm/types.native.js.map +1 -0
- package/dist/esm/useStackedZIndex.js +46 -0
- package/dist/esm/useStackedZIndex.js.map +6 -0
- package/dist/esm/useStackedZIndex.mjs +57 -0
- package/dist/esm/useStackedZIndex.mjs.map +1 -0
- package/dist/esm/useStackedZIndex.native.js +63 -0
- package/dist/esm/useStackedZIndex.native.js.map +1 -0
- package/package.json +45 -0
- package/src/StackZIndex.tsx +28 -0
- package/src/context.ts +7 -0
- package/src/index.ts +4 -0
- package/src/types.ts +16 -0
- package/src/useStackedZIndex.tsx +91 -0
- package/types/StackZIndex.d.ts +5 -0
- package/types/StackZIndex.d.ts.map +1 -0
- package/types/context.d.ts +3 -0
- package/types/context.d.ts.map +1 -0
- package/types/index.d.ts +5 -0
- package/types/index.d.ts.map +1 -0
- package/types/types.d.ts +17 -0
- package/types/types.d.ts.map +1 -0
- package/types/useStackedZIndex.d.ts +6 -0
- package/types/useStackedZIndex.d.ts.map +1 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from "./context";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
const StackZIndexContext = ({
|
|
5
|
+
children,
|
|
6
|
+
zIndex
|
|
7
|
+
}) => {
|
|
8
|
+
const existing = useContext(ZIndexStackContext);
|
|
9
|
+
let content = /* @__PURE__ */ jsx(ZIndexStackContext.Provider, { value: existing + 1, children });
|
|
10
|
+
return typeof zIndex < "u" && (content = /* @__PURE__ */ jsx(ZIndexHardcodedContext.Provider, { value: zIndex, children: content })), content;
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
StackZIndexContext
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=StackZIndex.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/StackZIndex.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB,0BAA0B;AAYvD;AAVG,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AACF,MAGM;AACJ,QAAM,WAAW,WAAW,kBAAkB;AAE9C,MAAI,UACF,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,WAAW,GAC5C,UACH;AAGF,SAAI,OAAO,SAAW,QACpB,UACE,oBAAC,uBAAuB,UAAvB,EAAgC,OAAO,QACrC,mBACH,IAIG;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from "./context.mjs";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
const StackZIndexContext = ({
|
|
5
|
+
children,
|
|
6
|
+
zIndex
|
|
7
|
+
}) => {
|
|
8
|
+
const existing = useContext(ZIndexStackContext);
|
|
9
|
+
let content = /* @__PURE__ */jsx(ZIndexStackContext.Provider, {
|
|
10
|
+
value: existing + 1,
|
|
11
|
+
children
|
|
12
|
+
});
|
|
13
|
+
return typeof zIndex < "u" && (content = /* @__PURE__ */jsx(ZIndexHardcodedContext.Provider, {
|
|
14
|
+
value: zIndex,
|
|
15
|
+
children: content
|
|
16
|
+
})), content;
|
|
17
|
+
};
|
|
18
|
+
export { StackZIndexContext };
|
|
19
|
+
//# sourceMappingURL=StackZIndex.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useContext","ZIndexHardcodedContext","ZIndexStackContext","jsx","StackZIndexContext","children","zIndex","existing","content","Provider","value"],"sources":["../../src/StackZIndex.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAC3B,SAASC,sBAAA,EAAwBC,kBAAA,QAA0B;AAYvD,SAAAC,GAAA;AAVG,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,QAAA;EACAC;AACF,MAGM;EACJ,MAAMC,QAAA,GAAWP,UAAA,CAAWE,kBAAkB;EAE9C,IAAIM,OAAA,GACF,eAAAL,GAAA,CAACD,kBAAA,CAAmBO,QAAA,EAAnB;IAA4BC,KAAA,EAAOH,QAAA,GAAW;IAC5CF;EAAA,CACH;EAGF,OAAI,OAAOC,MAAA,GAAW,QACpBE,OAAA,GACE,eAAAL,GAAA,CAACF,sBAAA,CAAuBQ,QAAA,EAAvB;IAAgCC,KAAA,EAAOJ,MAAA;IACrCD,QAAA,EAAAG;EAAA,CACH,IAIGA,OAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from "./context.native.js";
|
|
4
|
+
var StackZIndexContext = function (param) {
|
|
5
|
+
var {
|
|
6
|
+
children,
|
|
7
|
+
zIndex
|
|
8
|
+
} = param,
|
|
9
|
+
existing = useContext(ZIndexStackContext),
|
|
10
|
+
content = /* @__PURE__ */_jsx(ZIndexStackContext.Provider, {
|
|
11
|
+
value: existing + 1,
|
|
12
|
+
children
|
|
13
|
+
});
|
|
14
|
+
return typeof zIndex < "u" && (content = /* @__PURE__ */_jsx(ZIndexHardcodedContext.Provider, {
|
|
15
|
+
value: zIndex,
|
|
16
|
+
children: content
|
|
17
|
+
})), content;
|
|
18
|
+
};
|
|
19
|
+
export { StackZIndexContext };
|
|
20
|
+
//# sourceMappingURL=StackZIndex.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","useContext","ZIndexHardcodedContext","ZIndexStackContext","StackZIndexContext","param","children","zIndex","existing","content","Provider","value"],"sources":["../../src/StackZIndex.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,QAAkB;AAC3B,SAASC,UAAA,eAAwB;AAY7B,SAAAC,sBAAA,EAAAC,kBAAA;AAVG,IAAAC,kBAAM,YAAAA,CAAsBC,KAAA;EACjC;MAAAC,QAAA;MAAAC;IAAA,IAAAF,KAAA;IAAAG,QAAA,GAAAP,UAAA,CAAAE,kBAAA;IAAAM,OAAA,kBAAAT,IAAA,CAAAG,kBAAA,CAAAO,QAAA;MACAC,KAAA,EAAAH,QAAA;MACFF;IAIE;EAEA,OAAI,OACFC,MAAA,WAAAE,OAAC,kBAAmBT,IAAA,CAAAE,sBAA2B,CAAAQ,QAC5C;IAILC,KAAI,EAAAJ,MAAO;IASbD,QAAA,EAAAG","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","ZIndexStackContext","ZIndexHardcodedContext"],"sources":["../../src/context.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAqB;AAGvB,MAAMC,kBAAA,GAAqBD,aAAA,CAAc,CAAC;EAGpCE,sBAAA,GAAyBF,aAAA,CAAkC,MAAS","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","ZIndexStackContext","ZIndexHardcodedContext"],"sources":["../../src/context.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAqB;AAGvB,IAAAC,kBAAM,GAAAD,aAAqB,GAAc;EAACE,sBAGpC,GAAAF,aAAyB,MAAkC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useContext, useEffect, useId, useMemo } from "react";
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from "./context";
|
|
3
|
+
const ZIndicesByContext = {}, CurrentPortalZIndices = {}, useStackedZIndex = (props) => {
|
|
4
|
+
if (process.env.TAMAGUI_STACK_Z_INDEX_GLOBAL) {
|
|
5
|
+
const { stackZIndex, zIndex: zIndexProp } = props, id = useId(), zIndex = useMemo(() => {
|
|
6
|
+
if (stackZIndex && stackZIndex !== "global" && zIndexProp === void 0) {
|
|
7
|
+
const highest = Object.values(CurrentPortalZIndices).reduce(
|
|
8
|
+
(acc, cur) => Math.max(acc, cur),
|
|
9
|
+
0
|
|
10
|
+
);
|
|
11
|
+
return Math.max(stackZIndex === !0 ? 1 : stackZIndex, highest + 1);
|
|
12
|
+
}
|
|
13
|
+
return zIndexProp ?? 1e3;
|
|
14
|
+
}, [stackZIndex]);
|
|
15
|
+
return useEffect(() => {
|
|
16
|
+
if (typeof stackZIndex == "number")
|
|
17
|
+
return CurrentPortalZIndices[id] = stackZIndex, () => {
|
|
18
|
+
delete CurrentPortalZIndices[id];
|
|
19
|
+
};
|
|
20
|
+
}, [stackZIndex]), zIndex;
|
|
21
|
+
} else {
|
|
22
|
+
const { stackZIndex, zIndex: zIndexProp } = props, id = useId(), stackingContextLevel = useContext(ZIndexStackContext), stackLayer = stackZIndex === "global" ? 0 : stackingContextLevel, hardcoded = useContext(ZIndexHardcodedContext);
|
|
23
|
+
ZIndicesByContext[stackLayer] ||= {};
|
|
24
|
+
const stackContext = ZIndicesByContext[stackLayer], zIndex = useMemo(() => {
|
|
25
|
+
if (typeof zIndexProp == "number")
|
|
26
|
+
return zIndexProp;
|
|
27
|
+
if (stackZIndex) {
|
|
28
|
+
if (hardcoded)
|
|
29
|
+
return hardcoded + 1;
|
|
30
|
+
const entries = Object.values(stackContext), baseForLayer = stackLayer * 5e3, nextLayerBase = (stackLayer + 1) * 5e3, validEntries = entries.filter((z) => z < nextLayerBase), highest = validEntries.length > 0 ? Math.max(...validEntries) : baseForLayer, nextZIndex = highest === baseForLayer ? baseForLayer + 1 : highest + 1;
|
|
31
|
+
return typeof stackZIndex == "number" ? stackZIndex + nextZIndex : nextZIndex;
|
|
32
|
+
}
|
|
33
|
+
return 1;
|
|
34
|
+
}, [stackLayer, zIndexProp, stackZIndex]);
|
|
35
|
+
return useEffect(() => {
|
|
36
|
+
if (stackZIndex)
|
|
37
|
+
return stackContext[id] = zIndex, () => {
|
|
38
|
+
delete stackContext[id];
|
|
39
|
+
};
|
|
40
|
+
}, [zIndex]), zIndex;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
useStackedZIndex
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=useStackedZIndex.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useStackedZIndex.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,YAAY,WAAW,OAAO,eAAe;AACtD,SAAS,wBAAwB,0BAA0B;AAI3D,MAAM,oBAA4D,CAAC,GAG7D,wBAAgD,CAAC,GAE1C,mBAAmB,CAAC,UAG3B;AACJ,MAAI,QAAQ,IAAI,8BAA8B;AAC5C,UAAM,EAAE,aAAa,QAAQ,WAAW,IAAI,OACtC,KAAK,MAAM,GAEX,SAAS,QAAQ,MAAM;AAC3B,UAAI,eAAe,gBAAgB,YAAY,eAAe,QAAW;AACvE,cAAM,UAAU,OAAO,OAAO,qBAAqB,EAAE;AAAA,UACnD,CAAC,KAAK,QAAQ,KAAK,IAAI,KAAK,GAAG;AAAA,UAC/B;AAAA,QACF;AACA,eAAO,KAAK,IAAI,gBAAgB,KAAO,IAAI,aAAa,UAAU,CAAC;AAAA,MACrE;AACA,aAAO,cAAc;AAAA,IACvB,GAAG,CAAC,WAAW,CAAC;AAEhB,qBAAU,MAAM;AACd,UAAI,OAAO,eAAgB;AACzB,qCAAsB,EAAE,IAAI,aACrB,MAAM;AACX,iBAAO,sBAAsB,EAAE;AAAA,QACjC;AAAA,IAEJ,GAAG,CAAC,WAAW,CAAC,GAET;AAAA,EACT,OAAO;AACL,UAAM,EAAE,aAAa,QAAQ,WAAW,IAAI,OACtC,KAAK,MAAM,GACX,uBAAuB,WAAW,kBAAkB,GACpD,aAAa,gBAAgB,WAAW,IAAI,sBAC5C,YAAY,WAAW,sBAAsB;AAEnD,sBAAkB,UAAU,MAAM,CAAC;AACnC,UAAM,eAAe,kBAAkB,UAAU,GAE3C,SAAS,QAAQ,MAAM;AAC3B,UAAI,OAAO,cAAe;AACxB,eAAO;AAGT,UAAI,aAAa;AACf,YAAI;AACF,iBAAO,YAAY;AAGrB,cAAM,UAAU,OAAO,OAAO,YAAY,GACpC,eAAe,aAAa,KAC5B,iBAAiB,aAAa,KAAK,KAInC,eAAe,QAAQ,OAAO,CAAC,MAAM,IAAI,aAAa,GAEtD,UAAU,aAAa,SAAS,IAAI,KAAK,IAAI,GAAG,YAAY,IAAI,cAGhE,aAAa,YAAY,eAAe,eAAe,IAAI,UAAU;AAG3E,eAAO,OAAO,eAAgB,WAAW,cAAc,aAAa;AAAA,MACtE;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,YAAY,YAAY,WAAW,CAAC;AAExC,qBAAU,MAAM;AACd,UAAI;AACF,4BAAa,EAAE,IAAI,QACZ,MAAM;AACX,iBAAO,aAAa,EAAE;AAAA,QACxB;AAAA,IAEJ,GAAG,CAAC,MAAM,CAAC,GAEJ;AAAA,EACT;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { useContext, useEffect, useId, useMemo } from "react";
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from "./context.mjs";
|
|
3
|
+
const ZIndicesByContext = {},
|
|
4
|
+
CurrentPortalZIndices = {},
|
|
5
|
+
useStackedZIndex = props => {
|
|
6
|
+
if (process.env.TAMAGUI_STACK_Z_INDEX_GLOBAL) {
|
|
7
|
+
const {
|
|
8
|
+
stackZIndex,
|
|
9
|
+
zIndex: zIndexProp
|
|
10
|
+
} = props,
|
|
11
|
+
id = useId(),
|
|
12
|
+
zIndex = useMemo(() => {
|
|
13
|
+
if (stackZIndex && stackZIndex !== "global" && zIndexProp === void 0) {
|
|
14
|
+
const highest = Object.values(CurrentPortalZIndices).reduce((acc, cur) => Math.max(acc, cur), 0);
|
|
15
|
+
return Math.max(stackZIndex === !0 ? 1 : stackZIndex, highest + 1);
|
|
16
|
+
}
|
|
17
|
+
return zIndexProp ?? 1e3;
|
|
18
|
+
}, [stackZIndex]);
|
|
19
|
+
return useEffect(() => {
|
|
20
|
+
if (typeof stackZIndex == "number") return CurrentPortalZIndices[id] = stackZIndex, () => {
|
|
21
|
+
delete CurrentPortalZIndices[id];
|
|
22
|
+
};
|
|
23
|
+
}, [stackZIndex]), zIndex;
|
|
24
|
+
} else {
|
|
25
|
+
const {
|
|
26
|
+
stackZIndex,
|
|
27
|
+
zIndex: zIndexProp
|
|
28
|
+
} = props,
|
|
29
|
+
id = useId(),
|
|
30
|
+
stackingContextLevel = useContext(ZIndexStackContext),
|
|
31
|
+
stackLayer = stackZIndex === "global" ? 0 : stackingContextLevel,
|
|
32
|
+
hardcoded = useContext(ZIndexHardcodedContext);
|
|
33
|
+
ZIndicesByContext[stackLayer] ||= {};
|
|
34
|
+
const stackContext = ZIndicesByContext[stackLayer],
|
|
35
|
+
zIndex = useMemo(() => {
|
|
36
|
+
if (typeof zIndexProp == "number") return zIndexProp;
|
|
37
|
+
if (stackZIndex) {
|
|
38
|
+
if (hardcoded) return hardcoded + 1;
|
|
39
|
+
const entries = Object.values(stackContext),
|
|
40
|
+
baseForLayer = stackLayer * 5e3,
|
|
41
|
+
nextLayerBase = (stackLayer + 1) * 5e3,
|
|
42
|
+
validEntries = entries.filter(z => z < nextLayerBase),
|
|
43
|
+
highest = validEntries.length > 0 ? Math.max(...validEntries) : baseForLayer,
|
|
44
|
+
nextZIndex = highest === baseForLayer ? baseForLayer + 1 : highest + 1;
|
|
45
|
+
return typeof stackZIndex == "number" ? stackZIndex + nextZIndex : nextZIndex;
|
|
46
|
+
}
|
|
47
|
+
return 1;
|
|
48
|
+
}, [stackLayer, zIndexProp, stackZIndex]);
|
|
49
|
+
return useEffect(() => {
|
|
50
|
+
if (stackZIndex) return stackContext[id] = zIndex, () => {
|
|
51
|
+
delete stackContext[id];
|
|
52
|
+
};
|
|
53
|
+
}, [zIndex]), zIndex;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export { useStackedZIndex };
|
|
57
|
+
//# sourceMappingURL=useStackedZIndex.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useContext","useEffect","useId","useMemo","ZIndexHardcodedContext","ZIndexStackContext","ZIndicesByContext","CurrentPortalZIndices","useStackedZIndex","props","process","env","TAMAGUI_STACK_Z_INDEX_GLOBAL","stackZIndex","zIndex","zIndexProp","id","highest","Object","values","reduce","acc","cur","Math","max","stackingContextLevel","stackLayer","hardcoded","stackContext","entries","baseForLayer","nextLayerBase","validEntries","filter","z","length","nextZIndex"],"sources":["../../src/useStackedZIndex.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,EAAWC,KAAA,EAAOC,OAAA,QAAe;AACtD,SAASC,sBAAA,EAAwBC,kBAAA,QAA0B;AAI3D,MAAMC,iBAAA,GAA4D,CAAC;EAG7DC,qBAAA,GAAgD,CAAC;EAE1CC,gBAAA,GAAoBC,KAAA,IAG3B;IACJ,IAAIC,OAAA,CAAQC,GAAA,CAAIC,4BAAA,EAA8B;MAC5C,MAAM;UAAEC,WAAA;UAAaC,MAAA,EAAQC;QAAW,IAAIN,KAAA;QACtCO,EAAA,GAAKd,KAAA,CAAM;QAEXY,MAAA,GAASX,OAAA,CAAQ,MAAM;UAC3B,IAAIU,WAAA,IAAeA,WAAA,KAAgB,YAAYE,UAAA,KAAe,QAAW;YACvE,MAAME,OAAA,GAAUC,MAAA,CAAOC,MAAA,CAAOZ,qBAAqB,EAAEa,MAAA,CACnD,CAACC,GAAA,EAAKC,GAAA,KAAQC,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKC,GAAG,GAC/B,CACF;YACA,OAAOC,IAAA,CAAKC,GAAA,CAAIX,WAAA,KAAgB,KAAO,IAAIA,WAAA,EAAaI,OAAA,GAAU,CAAC;UACrE;UACA,OAAOF,UAAA,IAAc;QACvB,GAAG,CAACF,WAAW,CAAC;MAEhB,OAAAZ,SAAA,CAAU,MAAM;QACd,IAAI,OAAOY,WAAA,IAAgB,UACzB,OAAAN,qBAAA,CAAsBS,EAAE,IAAIH,WAAA,EACrB,MAAM;UACX,OAAON,qBAAA,CAAsBS,EAAE;QACjC;MAEJ,GAAG,CAACH,WAAW,CAAC,GAETC,MAAA;IACT,OAAO;MACL,MAAM;UAAED,WAAA;UAAaC,MAAA,EAAQC;QAAW,IAAIN,KAAA;QACtCO,EAAA,GAAKd,KAAA,CAAM;QACXuB,oBAAA,GAAuBzB,UAAA,CAAWK,kBAAkB;QACpDqB,UAAA,GAAab,WAAA,KAAgB,WAAW,IAAIY,oBAAA;QAC5CE,SAAA,GAAY3B,UAAA,CAAWI,sBAAsB;MAEnDE,iBAAA,CAAkBoB,UAAU,MAAM,CAAC;MACnC,MAAME,YAAA,GAAetB,iBAAA,CAAkBoB,UAAU;QAE3CZ,MAAA,GAASX,OAAA,CAAQ,MAAM;UAC3B,IAAI,OAAOY,UAAA,IAAe,UACxB,OAAOA,UAAA;UAGT,IAAIF,WAAA,EAAa;YACf,IAAIc,SAAA,EACF,OAAOA,SAAA,GAAY;YAGrB,MAAME,OAAA,GAAUX,MAAA,CAAOC,MAAA,CAAOS,YAAY;cACpCE,YAAA,GAAeJ,UAAA,GAAa;cAC5BK,aAAA,IAAiBL,UAAA,GAAa,KAAK;cAInCM,YAAA,GAAeH,OAAA,CAAQI,MAAA,CAAQC,CAAA,IAAMA,CAAA,GAAIH,aAAa;cAEtDd,OAAA,GAAUe,YAAA,CAAaG,MAAA,GAAS,IAAIZ,IAAA,CAAKC,GAAA,CAAI,GAAGQ,YAAY,IAAIF,YAAA;cAGhEM,UAAA,GAAanB,OAAA,KAAYa,YAAA,GAAeA,YAAA,GAAe,IAAIb,OAAA,GAAU;YAG3E,OAAO,OAAOJ,WAAA,IAAgB,WAAWA,WAAA,GAAcuB,UAAA,GAAaA,UAAA;UACtE;UAEA,OAAO;QACT,GAAG,CAACV,UAAA,EAAYX,UAAA,EAAYF,WAAW,CAAC;MAExC,OAAAZ,SAAA,CAAU,MAAM;QACd,IAAIY,WAAA,EACF,OAAAe,YAAA,CAAaZ,EAAE,IAAIF,MAAA,EACZ,MAAM;UACX,OAAOc,YAAA,CAAaZ,EAAE;QACxB;MAEJ,GAAG,CAACF,MAAM,CAAC,GAEJA,MAAA;IACT;EACF","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { useContext, useEffect, useId, useMemo } from "react";
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from "./context.native.js";
|
|
3
|
+
var ZIndicesByContext = {},
|
|
4
|
+
CurrentPortalZIndices = {},
|
|
5
|
+
useStackedZIndex = function (props) {
|
|
6
|
+
if (process.env.TAMAGUI_STACK_Z_INDEX_GLOBAL) {
|
|
7
|
+
var {
|
|
8
|
+
stackZIndex,
|
|
9
|
+
zIndex: zIndexProp
|
|
10
|
+
} = props,
|
|
11
|
+
id = useId(),
|
|
12
|
+
zIndex = useMemo(function () {
|
|
13
|
+
if (stackZIndex && stackZIndex !== "global" && zIndexProp === void 0) {
|
|
14
|
+
var highest = Object.values(CurrentPortalZIndices).reduce(function (acc, cur) {
|
|
15
|
+
return Math.max(acc, cur);
|
|
16
|
+
}, 0);
|
|
17
|
+
return Math.max(stackZIndex === !0 ? 1 : stackZIndex, highest + 1);
|
|
18
|
+
}
|
|
19
|
+
return zIndexProp ?? 1e3;
|
|
20
|
+
}, [stackZIndex]);
|
|
21
|
+
return useEffect(function () {
|
|
22
|
+
if (typeof stackZIndex == "number") return CurrentPortalZIndices[id] = stackZIndex, function () {
|
|
23
|
+
delete CurrentPortalZIndices[id];
|
|
24
|
+
};
|
|
25
|
+
}, [stackZIndex]), zIndex;
|
|
26
|
+
} else {
|
|
27
|
+
var _ZIndicesByContext,
|
|
28
|
+
_stackLayer,
|
|
29
|
+
{
|
|
30
|
+
stackZIndex: stackZIndex1,
|
|
31
|
+
zIndex: zIndexProp1
|
|
32
|
+
} = props,
|
|
33
|
+
id1 = useId(),
|
|
34
|
+
stackingContextLevel = useContext(ZIndexStackContext),
|
|
35
|
+
stackLayer = stackZIndex1 === "global" ? 0 : stackingContextLevel,
|
|
36
|
+
hardcoded = useContext(ZIndexHardcodedContext);
|
|
37
|
+
(_ZIndicesByContext = ZIndicesByContext)[_stackLayer = stackLayer] || (_ZIndicesByContext[_stackLayer] = {});
|
|
38
|
+
var stackContext = ZIndicesByContext[stackLayer],
|
|
39
|
+
zIndex1 = useMemo(function () {
|
|
40
|
+
if (typeof zIndexProp1 == "number") return zIndexProp1;
|
|
41
|
+
if (stackZIndex1) {
|
|
42
|
+
if (hardcoded) return hardcoded + 1;
|
|
43
|
+
var entries = Object.values(stackContext),
|
|
44
|
+
baseForLayer = stackLayer * 5e3,
|
|
45
|
+
nextLayerBase = (stackLayer + 1) * 5e3,
|
|
46
|
+
validEntries = entries.filter(function (z) {
|
|
47
|
+
return z < nextLayerBase;
|
|
48
|
+
}),
|
|
49
|
+
highest = validEntries.length > 0 ? Math.max(...validEntries) : baseForLayer,
|
|
50
|
+
nextZIndex = highest === baseForLayer ? baseForLayer + 1 : highest + 1;
|
|
51
|
+
return typeof stackZIndex1 == "number" ? stackZIndex1 + nextZIndex : nextZIndex;
|
|
52
|
+
}
|
|
53
|
+
return 1;
|
|
54
|
+
}, [stackLayer, zIndexProp1, stackZIndex1]);
|
|
55
|
+
return useEffect(function () {
|
|
56
|
+
if (stackZIndex1) return stackContext[id1] = zIndex1, function () {
|
|
57
|
+
delete stackContext[id1];
|
|
58
|
+
};
|
|
59
|
+
}, [zIndex1]), zIndex1;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
export { useStackedZIndex };
|
|
63
|
+
//# sourceMappingURL=useStackedZIndex.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useContext","useEffect","useId","useMemo","ZIndexHardcodedContext","ZIndexStackContext","ZIndicesByContext","CurrentPortalZIndices","useStackedZIndex","props","process","env","TAMAGUI_STACK_Z_INDEX_GLOBAL","stackZIndex","zIndex","zIndexProp","id","highest","Object","values","reduce","acc","cur","Math","max","_ZIndicesByContext","_stackLayer","stackZIndex1","zIndexProp1","id1","stackingContextLevel","stackLayer","hardcoded","stackContext","zIndex1","entries","baseForLayer","nextLayerBase","validEntries","filter","z","length","nextZIndex"],"sources":["../../src/useStackedZIndex.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,EAAWC,KAAA,EAAOC,OAAA,QAAe;AACtD,SAASC,sBAAA,EAAwBC,kBAAA,QAA0B;AAI3D,IAAAC,iBAAM,KAA4D;EAACC,qBAG7D,KAAgD;EAACC,gBAE1C,YAAAA,CAAoBC,KAG3B;IACJ,IAAIC,OAAA,CAAQC,GAAA,CAAIC,4BAAA,EAA8B;MAC5C;UAAMC,WAAE;UAAAC,MAAa,EAAAC;QAAQ,IAAWN,KAAI;QAAAO,EACtC,GAAAd,KAAK;QAAMY,MAEX,GAAAX,OAAS,aAAc;UAC3B,IAAIU,WAAA,IAAeA,WAAA,KAAgB,YAAYE,UAAA,KAAe,QAAW;YACvE,IAAAE,OAAM,GAAAC,MAAU,CAAAC,MAAO,CAAAZ,qBAAO,EAAqBa,MAAE,WAAAC,GAAA,EAAAC,GAAA;cACnD,OAAMC,IAAA,CAAAC,GAAQ,CAAAH,GAAK,EAAAC,GAAI;YAAQ,GAC/B;YACF,OAAAC,IAAA,CAAAC,GAAA,CAAAX,WAAA,cAAAA,WAAA,EAAAI,OAAA;UACA;UACF,OAAAF,UAAA;QACA,IACFF,WAAI,CAEJ;MACE,OAAIZ,SAAO,aAAgB;QACzB,WAAAY,WAAA,YAAwB,EAEtB,OAAAN,qBAAO,CAAAS,EAAsB,IAAEH,WAAA;UACjC,OAAAN,qBAAA,CAAAS,EAAA;QAEA;MAGN,IACEH,WAAQ,CAMR,GAAAC,MAAA;IACA;MAGE,IAAAW,kBAAW;QAAAC,WAAe;QAAA;UAAAb,WAAA,EAAAc,YAAA;UAAAb,MAAA,EAAAc;QAAA,IAAAnB,KAAA;QAAAoB,GAAA,GAAA3B,KAAA;QAAA4B,oBAAA,GAAA9B,UAAA,CAAAK,kBAAA;QAAA0B,UAAA,GAAAJ,YAAA,oBAAAG,oBAAA;QAAAE,SAAA,GAAAhC,UAAA,CAAAI,sBAAA;MACxB,CAAAqB,kBAAO,GAAAnB,iBAAA,EAAAoB,WAAA,GAAAK,UAAA,MAAAN,kBAAA,CAAAC,WAAA;MAGT,IAAAO,YAAI,GAAa3B,iBAAA,CAAAyB,UAAA;QAAAG,OAAA,GAAA/B,OAAA;UACf,WAAIyB,WAAA,cACF,OAAAA,WAAO;UAGT,IAAAD,YAAM,EAAU;YAchB,IAAAK,SAAO,EACT,OAAAA,SAAA;YAEA,IAAAG,OAAO,GAAAjB,MAAA,CAAAC,MAAA,CAAAc,YAAA;cAAAG,YAAA,GAAAL,UAAA;cAAAM,aAAA,IAAAN,UAAA;cAAAO,YAAA,GAAAH,OAAA,CAAAI,MAAA,WAAAC,CAAA;gBACL,OAAAA,CAAA,GAAYH,aAAY;cAE5B;cAAApB,OAAA,GAAUqB,YAAM,CAAAG,MAAA,OAAAlB,IAAA,CAAAC,GAAA,IAAAc,YAAA,IAAAF,YAAA;cAAAM,UAAA,GAAAzB,OAAA,KAAAmB,YAAA,GAAAA,YAAA,OAAAnB,OAAA;YACd,OAAI,OAAAU,YAAA,eAAAA,YAAA,GAAAe,UAAA,GAAAA,UAAA;UACF;UAEE;QAAsB,IAG5BX,UAAW,EAGbH,WAAA,EACFD,YAAA,C","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tamagui/z-index-stack",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"source": "src/index.ts",
|
|
5
|
+
"files": [
|
|
6
|
+
"src",
|
|
7
|
+
"types",
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"type": "module",
|
|
11
|
+
"sideEffects": [
|
|
12
|
+
"*.css"
|
|
13
|
+
],
|
|
14
|
+
"main": "dist/cjs",
|
|
15
|
+
"module": "dist/esm",
|
|
16
|
+
"types": "./types/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
"./package.json": "./package.json",
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./types/index.d.ts",
|
|
21
|
+
"react-native": "./dist/esm/index.native.js",
|
|
22
|
+
"browser": "./dist/esm/index.mjs",
|
|
23
|
+
"module": "./dist/esm/index.mjs",
|
|
24
|
+
"import": "./dist/esm/index.mjs",
|
|
25
|
+
"require": "./dist/cjs/index.cjs",
|
|
26
|
+
"default": "./dist/esm/index.mjs"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tamagui-build",
|
|
34
|
+
"watch": "tamagui-build --watch",
|
|
35
|
+
"clean": "tamagui-build clean",
|
|
36
|
+
"clean:build": "tamagui-build clean:build"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@tamagui/build": "1.0.1",
|
|
40
|
+
"react": ">=19"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"react": ">=19"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useContext } from 'react'
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from './context'
|
|
3
|
+
|
|
4
|
+
export const StackZIndexContext = ({
|
|
5
|
+
children,
|
|
6
|
+
zIndex,
|
|
7
|
+
}: {
|
|
8
|
+
children: React.ReactNode
|
|
9
|
+
zIndex?: number
|
|
10
|
+
}) => {
|
|
11
|
+
const existing = useContext(ZIndexStackContext)
|
|
12
|
+
|
|
13
|
+
let content = (
|
|
14
|
+
<ZIndexStackContext.Provider value={existing + 1}>
|
|
15
|
+
{children}
|
|
16
|
+
</ZIndexStackContext.Provider>
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
if (typeof zIndex !== 'undefined') {
|
|
20
|
+
content = (
|
|
21
|
+
<ZIndexHardcodedContext.Provider value={zIndex}>
|
|
22
|
+
{content}
|
|
23
|
+
</ZIndexHardcodedContext.Provider>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return content
|
|
28
|
+
}
|
package/src/context.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createContext } from 'react'
|
|
2
|
+
|
|
3
|
+
// stacks vertically through tree, based on nesting
|
|
4
|
+
export const ZIndexStackContext = createContext(1)
|
|
5
|
+
|
|
6
|
+
// if setting to overriden z index
|
|
7
|
+
export const ZIndexHardcodedContext = createContext<number | undefined>(undefined)
|
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tamagui will attempt to stack z-index in a smart way when true, it does this
|
|
3
|
+
* by automatically increasing z-index both horizontally and vertically in the component tree.
|
|
4
|
+
*
|
|
5
|
+
* Basically - if two stackable items are at the same level, then the order of mounting
|
|
6
|
+
* determines their z-index (later is higher). This is the horizontal logic.
|
|
7
|
+
*
|
|
8
|
+
* Below a stackable item, the z-index will always be above that specific item, but below
|
|
9
|
+
* other horizontal items that come after it.
|
|
10
|
+
*
|
|
11
|
+
* - false will avoid the stacking behavior.
|
|
12
|
+
* - number will keep the behavior, but add to the stacked z-index the given amount
|
|
13
|
+
* - 'global' will not stack things vertically and instead only stack them horizontally
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
export type StackZIndexProp = boolean | number | 'global'
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { useContext, useEffect, useId, useMemo } from 'react'
|
|
2
|
+
import { ZIndexHardcodedContext, ZIndexStackContext } from './context'
|
|
3
|
+
import type { StackZIndexProp } from './types'
|
|
4
|
+
|
|
5
|
+
// this stacks horizontally - just based on which mounted last within a stacking context
|
|
6
|
+
const ZIndicesByContext: Record<number, Record<string, number>> = {}
|
|
7
|
+
|
|
8
|
+
// old stacking style
|
|
9
|
+
const CurrentPortalZIndices: Record<string, number> = {}
|
|
10
|
+
|
|
11
|
+
export const useStackedZIndex = (props: {
|
|
12
|
+
zIndex?: number
|
|
13
|
+
stackZIndex?: StackZIndexProp
|
|
14
|
+
}) => {
|
|
15
|
+
if (process.env.TAMAGUI_STACK_Z_INDEX_GLOBAL) {
|
|
16
|
+
const { stackZIndex, zIndex: zIndexProp } = props
|
|
17
|
+
const id = useId()
|
|
18
|
+
|
|
19
|
+
const zIndex = useMemo(() => {
|
|
20
|
+
if (stackZIndex && stackZIndex !== 'global' && zIndexProp === undefined) {
|
|
21
|
+
const highest = Object.values(CurrentPortalZIndices).reduce(
|
|
22
|
+
(acc, cur) => Math.max(acc, cur),
|
|
23
|
+
0
|
|
24
|
+
)
|
|
25
|
+
return Math.max(stackZIndex === true ? 1 : stackZIndex, highest + 1)
|
|
26
|
+
}
|
|
27
|
+
return zIndexProp ?? 1000
|
|
28
|
+
}, [stackZIndex])
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (typeof stackZIndex === 'number') {
|
|
32
|
+
CurrentPortalZIndices[id] = stackZIndex
|
|
33
|
+
return () => {
|
|
34
|
+
delete CurrentPortalZIndices[id]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}, [stackZIndex])
|
|
38
|
+
|
|
39
|
+
return zIndex
|
|
40
|
+
} else {
|
|
41
|
+
const { stackZIndex, zIndex: zIndexProp } = props
|
|
42
|
+
const id = useId()
|
|
43
|
+
const stackingContextLevel = useContext(ZIndexStackContext)
|
|
44
|
+
const stackLayer = stackZIndex === 'global' ? 0 : stackingContextLevel
|
|
45
|
+
const hardcoded = useContext(ZIndexHardcodedContext)
|
|
46
|
+
|
|
47
|
+
ZIndicesByContext[stackLayer] ||= {}
|
|
48
|
+
const stackContext = ZIndicesByContext[stackLayer]
|
|
49
|
+
|
|
50
|
+
const zIndex = useMemo(() => {
|
|
51
|
+
if (typeof zIndexProp === 'number') {
|
|
52
|
+
return zIndexProp
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (stackZIndex) {
|
|
56
|
+
if (hardcoded) {
|
|
57
|
+
return hardcoded + 1
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const entries = Object.values(stackContext)
|
|
61
|
+
const baseForLayer = stackLayer * 5000
|
|
62
|
+
const nextLayerBase = (stackLayer + 1) * 5000
|
|
63
|
+
|
|
64
|
+
// Filter out values that belong to higher layers
|
|
65
|
+
// Any value >= next layer's base is definitely not from this layer
|
|
66
|
+
const validEntries = entries.filter((z) => z < nextLayerBase)
|
|
67
|
+
|
|
68
|
+
const highest = validEntries.length > 0 ? Math.max(...validEntries) : baseForLayer
|
|
69
|
+
|
|
70
|
+
// If we only have the base value or nothing, start fresh
|
|
71
|
+
const nextZIndex = highest === baseForLayer ? baseForLayer + 1 : highest + 1
|
|
72
|
+
|
|
73
|
+
// setting stackZIndex to a number lets you increase it further
|
|
74
|
+
return typeof stackZIndex === 'number' ? stackZIndex + nextZIndex : nextZIndex
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return 1
|
|
78
|
+
}, [stackLayer, zIndexProp, stackZIndex])
|
|
79
|
+
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (stackZIndex) {
|
|
82
|
+
stackContext[id] = zIndex
|
|
83
|
+
return () => {
|
|
84
|
+
delete stackContext[id]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, [zIndex])
|
|
88
|
+
|
|
89
|
+
return zIndex
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StackZIndex.d.ts","sourceRoot":"","sources":["../src/StackZIndex.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,GAAI,uBAGhC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,4CAkBA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,iCAAmB,CAAA;AAGlD,eAAO,MAAM,sBAAsB,6CAA+C,CAAA"}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,mBAAmB,SAAS,CAAA"}
|
package/types/types.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tamagui will attempt to stack z-index in a smart way when true, it does this
|
|
3
|
+
* by automatically increasing z-index both horizontally and vertically in the component tree.
|
|
4
|
+
*
|
|
5
|
+
* Basically - if two stackable items are at the same level, then the order of mounting
|
|
6
|
+
* determines their z-index (later is higher). This is the horizontal logic.
|
|
7
|
+
*
|
|
8
|
+
* Below a stackable item, the z-index will always be above that specific item, but below
|
|
9
|
+
* other horizontal items that come after it.
|
|
10
|
+
*
|
|
11
|
+
* - false will avoid the stacking behavior.
|
|
12
|
+
* - number will keep the behavior, but add to the stacked z-index the given amount
|
|
13
|
+
* - 'global' will not stack things vertically and instead only stack them horizontally
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
export type StackZIndexProp = boolean | number | 'global';
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStackedZIndex.d.ts","sourceRoot":"","sources":["../src/useStackedZIndex.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAQ9C,eAAO,MAAM,gBAAgB,GAAI,OAAO;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B,WA6EA,CAAA"}
|