@tamagui/portal 1.115.5 → 1.116.0

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.
Files changed (48) hide show
  1. package/dist/cjs/GorhomPortal.cjs +68 -34
  2. package/dist/cjs/GorhomPortal.cjs.map +1 -1
  3. package/dist/cjs/GorhomPortal.native.js +42 -15
  4. package/dist/cjs/GorhomPortal.native.js.map +2 -2
  5. package/dist/cjs/Portal.cjs +20 -12
  6. package/dist/cjs/Portal.cjs.map +1 -1
  7. package/dist/cjs/Portal.native.cjs +10 -4
  8. package/dist/cjs/Portal.native.cjs.map +1 -1
  9. package/dist/cjs/Portal.native.js +5 -5
  10. package/dist/cjs/Portal.native.js.map +2 -2
  11. package/dist/cjs/useStackedZIndex.cjs +46 -0
  12. package/dist/cjs/useStackedZIndex.cjs.map +6 -0
  13. package/dist/cjs/useStackedZIndex.native.js +45 -0
  14. package/dist/cjs/useStackedZIndex.native.js.map +6 -0
  15. package/dist/esm/GorhomPortal.js +42 -15
  16. package/dist/esm/GorhomPortal.js.map +1 -1
  17. package/dist/esm/GorhomPortal.mjs +69 -35
  18. package/dist/esm/GorhomPortal.mjs.map +1 -1
  19. package/dist/esm/GorhomPortal.native.js +44 -16
  20. package/dist/esm/GorhomPortal.native.js.map +2 -2
  21. package/dist/esm/Portal.js +10 -5
  22. package/dist/esm/Portal.js.map +1 -1
  23. package/dist/esm/Portal.mjs +20 -12
  24. package/dist/esm/Portal.mjs.map +1 -1
  25. package/dist/esm/Portal.native.js +5 -4
  26. package/dist/esm/Portal.native.js.map +2 -2
  27. package/dist/esm/useStackedZIndex.js +24 -0
  28. package/dist/esm/useStackedZIndex.js.map +6 -0
  29. package/dist/esm/useStackedZIndex.mjs +23 -0
  30. package/dist/esm/useStackedZIndex.mjs.map +1 -0
  31. package/dist/esm/useStackedZIndex.native.js +25 -0
  32. package/dist/esm/useStackedZIndex.native.js.map +6 -0
  33. package/package.json +10 -12
  34. package/src/GorhomPortal.tsx +67 -17
  35. package/src/Portal.native.tsx +6 -2
  36. package/src/Portal.tsx +24 -20
  37. package/src/PortalProps.tsx +1 -0
  38. package/src/useStackedZIndex.tsx +34 -0
  39. package/types/GorhomPortal.d.ts +3 -2
  40. package/types/GorhomPortal.d.ts.map +1 -1
  41. package/types/Portal.d.ts +1 -1
  42. package/types/Portal.d.ts.map +1 -1
  43. package/types/Portal.native.d.ts +1 -1
  44. package/types/Portal.native.d.ts.map +1 -1
  45. package/types/PortalProps.d.ts +1 -0
  46. package/types/PortalProps.d.ts.map +1 -1
  47. package/types/useStackedZIndex.d.ts +3 -0
  48. package/types/useStackedZIndex.d.ts.map +1 -0
@@ -41,8 +41,9 @@ __export(GorhomPortal_exports, {
41
41
  module.exports = __toCommonJS(GorhomPortal_exports);
42
42
  var import_constants = require("@tamagui/constants"),
43
43
  import_core = require("@tamagui/core"),
44
- import_react = __toESM(require("react")),
45
44
  import_start_transition = require("@tamagui/start-transition"),
45
+ import_react = __toESM(require("react")),
46
+ import_react_dom = require("react-dom"),
46
47
  import_jsx_runtime = require("react/jsx-runtime"),
47
48
  ACTIONS = /* @__PURE__ */(ACTIONS2 => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2))(ACTIONS || {});
48
49
  const INITIAL_STATE = {};
@@ -157,39 +158,72 @@ PortalProvider.displayName = "PortalProvider";
157
158
  const defaultRenderer = children => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
158
159
  children
159
160
  }),
160
- PortalHostComponent = props => {
161
+ PortalHost = (0, import_react.memo)(function (props) {
162
+ return import_constants.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHostWeb, {
163
+ ...props
164
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHostNonNative, {
165
+ ...props
166
+ });
167
+ }),
168
+ allPortalHosts = /* @__PURE__ */new Map();
169
+ function PortalHostWeb(props) {
170
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
171
+ style: {
172
+ display: "contents"
173
+ },
174
+ ref: node => {
175
+ node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
176
+ }
177
+ });
178
+ }
179
+ function PortalHostNonNative(props) {
180
+ const {
181
+ name,
182
+ forwardProps,
183
+ render = defaultRenderer
184
+ } = props,
185
+ state = usePortalState(name),
186
+ {
187
+ registerHost: registerHost2,
188
+ deregisterHost: deregisterHost2
189
+ } = usePortal(props.name);
190
+ return (0, import_react.useEffect)(() => {
191
+ if (!(typeof window > "u")) return registerHost2(), () => {
192
+ deregisterHost2();
193
+ };
194
+ }, []), render(forwardProps ? state.map(item => {
195
+ let next = item.node;
161
196
  const {
162
- name,
163
- forwardProps,
164
- render = defaultRenderer
165
- } = props,
166
- state = usePortalState(name),
167
- {
168
- registerHost: registerHost2,
169
- deregisterHost: deregisterHost2
170
- } = usePortal(props.name);
171
- return (0, import_react.useEffect)(() => {
172
- if (!(typeof window > "u")) return registerHost2(), () => {
173
- deregisterHost2();
174
- };
175
- }, []), render(forwardProps ? state.map(item => {
176
- let next = item.node;
177
- return forwardProps ? import_react.default.Children.map(next, child => import_react.default.isValidElement(child) ? import_react.default.cloneElement(child, {
178
- key: child.key,
179
- ...forwardProps
180
- }) : child) : next;
181
- }) : state.map(item => item.node));
197
+ children,
198
+ ...restForwardProps
199
+ } = forwardProps;
200
+ return forwardProps ? import_react.default.Children.map(next, child => import_react.default.isValidElement(child) ? import_react.default.cloneElement(child, {
201
+ key: child.key,
202
+ ...restForwardProps
203
+ }) : child) : next;
204
+ }) : state.map(item => item.node));
205
+ }
206
+ const PortalItem = (0, import_react.memo)(function (props) {
207
+ return import_constants.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalItemWeb, {
208
+ ...props
209
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(NonNativePortalComponent, {
210
+ ...props
211
+ });
212
+ }),
213
+ PortalItemWeb = props => {
214
+ if (!props.hostName) throw new Error("No name");
215
+ const hostNode = allPortalHosts.get(props.hostName);
216
+ return hostNode ? (0, import_react_dom.createPortal)(props.children, hostNode) : null;
182
217
  },
183
- PortalHost = (0, import_react.memo)(PortalHostComponent);
184
- PortalHost.displayName = "PortalHost";
185
- const PortalComponent = props => {
218
+ NonNativePortalComponent = props => {
186
219
  const {
187
220
  name: _providedName,
188
221
  hostName,
189
222
  handleOnMount: _providedHandleOnMount,
190
223
  handleOnUnmount: _providedHandleOnUnmount,
191
224
  handleOnUpdate: _providedHandleOnUpdate,
192
- children
225
+ children,
226
+ passthrough
193
227
  } = props,
194
228
  {
195
229
  addPortal: addUpdatePortal2,
@@ -206,11 +240,11 @@ const PortalComponent = props => {
206
240
  handleOnUpdate = (0, import_core.useEvent)(() => {
207
241
  _providedHandleOnUpdate ? _providedHandleOnUpdate(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
208
242
  });
209
- return (0, import_constants.useIsomorphicLayoutEffect)(() => (handleOnMount(), () => {
210
- handleOnUnmount();
211
- }), []), (0, import_react.useEffect)(() => {
212
- handleOnUpdate();
213
- }, [children]), null;
214
- },
215
- PortalItem = (0, import_react.memo)(PortalComponent);
216
- PortalItem.displayName = "Portal";
243
+ return (0, import_constants.useIsomorphicLayoutEffect)(() => {
244
+ if (!passthrough) return handleOnMount(), () => {
245
+ handleOnUnmount();
246
+ };
247
+ }, []), (0, import_react.useEffect)(() => {
248
+ passthrough || handleOnUpdate();
249
+ }, [children]), passthrough ? children : null;
250
+ };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/GorhomPortal.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "React"]
6
6
  }
@@ -31,7 +31,7 @@ __export(GorhomPortal_exports, {
31
31
  usePortal: () => usePortal
32
32
  });
33
33
  module.exports = __toCommonJS(GorhomPortal_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_react = __toESM(require("react")), import_start_transition = require("@tamagui/start-transition"), ACTIONS = /* @__PURE__ */ function(ACTIONS2) {
34
+ var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_start_transition = require("@tamagui/start-transition"), import_react = __toESM(require("react")), import_react_dom = require("react-dom"), ACTIONS = /* @__PURE__ */ function(ACTIONS2) {
35
35
  return ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2;
36
36
  }(ACTIONS || {}), INITIAL_STATE = {};
37
37
  var registerHost = function(state, hostName) {
@@ -145,7 +145,24 @@ var defaultRenderer = function(children) {
145
145
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
146
146
  children
147
147
  });
148
- }, PortalHostComponent = function(props) {
148
+ }, PortalHost = /* @__PURE__ */ (0, import_react.memo)(function(props) {
149
+ return import_constants.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHostWeb, {
150
+ ...props
151
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHostNonNative, {
152
+ ...props
153
+ });
154
+ }), allPortalHosts = /* @__PURE__ */ new Map();
155
+ function PortalHostWeb(props) {
156
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
157
+ style: {
158
+ display: "contents"
159
+ },
160
+ ref: function(node) {
161
+ node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
162
+ }
163
+ });
164
+ }
165
+ function PortalHostNonNative(props) {
149
166
  var { name, forwardProps, render = defaultRenderer } = props, state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
150
167
  return (0, import_react.useEffect)(function() {
151
168
  if (!(typeof window > "u"))
@@ -153,20 +170,30 @@ var defaultRenderer = function(children) {
153
170
  deregisterHost2();
154
171
  };
155
172
  }, []), render(forwardProps ? state.map(function(item) {
156
- var next = item.node;
173
+ var next = item.node, { children, ...restForwardProps } = forwardProps;
157
174
  return forwardProps ? import_react.default.Children.map(next, function(child) {
158
175
  return /* @__PURE__ */ import_react.default.isValidElement(child) ? /* @__PURE__ */ import_react.default.cloneElement(child, {
159
176
  key: child.key,
160
- ...forwardProps
177
+ ...restForwardProps
161
178
  }) : child;
162
179
  }) : next;
163
180
  }) : state.map(function(item) {
164
181
  return item.node;
165
182
  }));
166
- }, PortalHost = /* @__PURE__ */ (0, import_react.memo)(PortalHostComponent);
167
- PortalHost.displayName = "PortalHost";
168
- var PortalComponent = function(props) {
169
- var { name: _providedName, hostName, handleOnMount: _providedHandleOnMount, handleOnUnmount: _providedHandleOnUnmount, handleOnUpdate: _providedHandleOnUpdate, children } = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = (0, import_react.useId)(), name = _providedName || id, handleOnMount = (0, import_core.useEvent)(function() {
183
+ }
184
+ var PortalItem = /* @__PURE__ */ (0, import_react.memo)(function(props) {
185
+ return import_constants.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalItemWeb, {
186
+ ...props
187
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NonNativePortalComponent, {
188
+ ...props
189
+ });
190
+ }), PortalItemWeb = function(props) {
191
+ if (!props.hostName)
192
+ throw new Error("No name");
193
+ var hostNode = allPortalHosts.get(props.hostName);
194
+ return hostNode ? /* @__PURE__ */ (0, import_react_dom.createPortal)(props.children, hostNode) : null;
195
+ }, NonNativePortalComponent = function(props) {
196
+ var { name: _providedName, hostName, handleOnMount: _providedHandleOnMount, handleOnUnmount: _providedHandleOnUnmount, handleOnUpdate: _providedHandleOnUpdate, children, passthrough } = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = (0, import_react.useId)(), name = _providedName || id, handleOnMount = (0, import_core.useEvent)(function() {
170
197
  _providedHandleOnMount ? _providedHandleOnMount(function() {
171
198
  return addUpdatePortal2(name, children);
172
199
  }) : addUpdatePortal2(name, children);
@@ -180,16 +207,16 @@ var PortalComponent = function(props) {
180
207
  }) : addUpdatePortal2(name, children);
181
208
  });
182
209
  return (0, import_constants.useIsomorphicLayoutEffect)(function() {
183
- return handleOnMount(), function() {
184
- handleOnUnmount();
185
- };
210
+ if (!passthrough)
211
+ return handleOnMount(), function() {
212
+ handleOnUnmount();
213
+ };
186
214
  }, []), (0, import_react.useEffect)(function() {
187
- handleOnUpdate();
215
+ passthrough || handleOnUpdate();
188
216
  }, [
189
217
  children
190
- ]), null;
191
- }, PortalItem = /* @__PURE__ */ (0, import_react.memo)(PortalComponent);
192
- PortalItem.displayName = "Portal";
218
+ ]), passthrough ? children : null;
219
+ };
193
220
  // Annotate the CommonJS export names for ESM import in node:
194
221
  0 && (module.exports = {
195
222
  ACTIONS,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/portal/src/GorhomPortal.tsx"],
4
- "mappings": "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",
5
- "names": ["ACTIONS", "INITIAL_STATE", "registerHost", "state", "hostName", "deregisterHost", "addUpdatePortal", "portalName", "node", "index", "findIndex", "item", "name", "push", "removePortal", "console", "info", "splice", "reducer", "action", "type", "PortalStateContext", "createContext", "PortalDispatchContext", "usePortalState", "useContext", "Error", "usePortal", "dispatch", "useCallback", "addPortal", "updatePortal", "PortalProviderComponent", "rootHostName", "shouldAddRootHost", "children", "useReducer", "INITIAL_STATE", "transitionDispatch", "useMemo", "next", "value", "startTransition", "_jsx", "Provider", "_jsxs", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "_Fragment", "PortalHostComponent", "props", "forwardProps", "render", "useEffect", "window", "map", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalComponent", "_providedName", "handleOnMount", "_providedHandleOnMount", "handleOnUnmount", "_providedHandleOnUnmount", "handleOnUpdate", "_providedHandleOnUpdate", "id", "useId", "useEvent", "useIsomorphicLayoutEffect", "PortalItem"]
4
+ "mappings": "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",
5
+ "names": ["ACTIONS", "INITIAL_STATE", "registerHost", "state", "hostName", "deregisterHost", "addUpdatePortal", "portalName", "node", "index", "findIndex", "item", "name", "push", "removePortal", "console", "info", "splice", "reducer", "action", "type", "PortalStateContext", "createContext", "PortalDispatchContext", "usePortalState", "useContext", "Error", "usePortal", "dispatch", "useCallback", "addPortal", "updatePortal", "PortalProviderComponent", "rootHostName", "shouldAddRootHost", "children", "useReducer", "INITIAL_STATE", "transitionDispatch", "useMemo", "next", "value", "startTransition", "_jsx", "Provider", "_jsxs", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "_Fragment", "props", "isWeb", "PortalHostWeb", "PortalHostNonNative", "allPortalHosts", "Map", "div", "style", "display", "ref", "set", "delete", "forwardProps", "render", "useEffect", "window", "map", "restForwardProps", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalItem", "PortalItemWeb", "NonNativePortalComponent", "hostNode", "get", "createPortal", "_providedName", "handleOnMount", "_providedHandleOnMount", "handleOnUnmount", "_providedHandleOnUnmount", "handleOnUpdate", "_providedHandleOnUpdate", "passthrough", "id", "useId", "useEvent", "useIsomorphicLayoutEffect"]
6
6
  }
@@ -39,16 +39,24 @@ var import_polyfill_dev = require("@tamagui/polyfill-dev"),
39
39
  import_stacks = require("@tamagui/stacks"),
40
40
  React = __toESM(require("react")),
41
41
  import_react_dom = require("react-dom"),
42
+ import_useStackedZIndex = require("./useStackedZIndex.cjs"),
42
43
  import_jsx_runtime = require("react/jsx-runtime");
43
- const Portal = React.memo(({
44
- host = globalThis.document?.body,
45
- ...props
46
- }) => import_constants.isServer ? null : (0, import_react_dom.createPortal)(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
47
- contain: "strict",
48
- fullscreen: !0,
49
- position: "fixed",
50
- maxWidth: "100vw",
51
- maxHeight: "100vh",
52
- pointerEvents: "none",
53
- ...props
54
- }), host));
44
+ const Portal = React.memo(propsIn => {
45
+ if (import_constants.isServer) return null;
46
+ const {
47
+ host = globalThis.document?.body,
48
+ stackZIndex,
49
+ ...props
50
+ } = propsIn,
51
+ zIndex = (0, import_useStackedZIndex.useStackedZIndex)(propsIn);
52
+ return (0, import_react_dom.createPortal)(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
53
+ contain: "strict",
54
+ fullscreen: !0,
55
+ position: "fixed",
56
+ maxWidth: "100vw",
57
+ maxHeight: "100vh",
58
+ pointerEvents: "none",
59
+ ...props,
60
+ zIndex
61
+ }), host);
62
+ });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Portal.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAO,kCAEP,mBAAyB,+BACzB,gBAAuB,4BACvB,QAAuB,2BACvB,mBAA6B,sBAavB;AAPC,MAAM,SAAS,MAAM;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,MAAM,GAAG,MAAM,MACxC,4BACK,WAGF;AAAA,IACL;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,YAAU;AAAA,QAEV,UAAS;AAAA,QACT,UAAS;AAAA,QACT,WAAU;AAAA,QACV,eAAc;AAAA,QACb,GAAG;AAAA;AAAA,IACN;AAAA,IACA;AAAA,EACF;AAEJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAO,kCAEP,mBAAyB,+BACzB,gBAAuB,4BACvB,QAAuB,2BACvB,mBAA6B,sBAG7B,0BAAiC,+BAc7B;AAVG,MAAM,SAAS,MAAM,KAAK,CAAC,YAAyB;AACzD,MAAI;AACF,WAAO;AAGT,QAAM,EAAE,OAAO,WAAW,UAAU,MAAM,aAAa,GAAG,MAAM,IAAI,SAE9D,aAAS,0CAAiB,OAAO;AAEvC,aAAO;AAAA,IACL;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,YAAU;AAAA,QAEV,UAAS;AAAA,QACT,UAAS;AAAA,QACT,WAAU;AAAA,QACV,eAAc;AAAA,QACb,GAAG;AAAA,QACJ;AAAA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -38,19 +38,25 @@ var import_stacks = require("@tamagui/stacks"),
38
38
  React = __toESM(require("react")),
39
39
  import_react_native = require("react-native-web"),
40
40
  import_GorhomPortal = require("./GorhomPortal.cjs"),
41
+ import_useStackedZIndex = require("./useStackedZIndex.cjs"),
41
42
  import_jsx_runtime = require("react/jsx-runtime");
42
43
  const isFabric = global?.nativeFabricUIManager;
43
44
  let createPortal;
44
45
  isFabric ? createPortal = require("react-native/Libraries/Renderer/shims/ReactFabric").createPortal : createPortal = require("react-native/Libraries/Renderer/shims/ReactNative").createPortal;
45
- const Portal = props => {
46
- const rootTag = React.useContext(import_react_native.RootTagContext),
46
+ const Portal = propsIn => {
47
+ const {
48
+ stackZIndex,
49
+ ...props
50
+ } = propsIn,
51
+ rootTag = React.useContext(import_react_native.RootTagContext),
52
+ zIndex = (0, import_useStackedZIndex.useStackedZIndex)(propsIn),
47
53
  contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
48
54
  pointerEvents: "box-none",
49
55
  fullscreen: !0,
50
56
  position: "absolute",
51
57
  maxWidth: "100%",
52
- zIndex: 1e5,
53
- ...props
58
+ ...props,
59
+ zIndex
54
60
  });
55
61
  return process.env.TAMAGUI_USE_NATIVE_PORTAL === "false" || import_react_native.Platform.OS === "android" || !rootTag ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_GorhomPortal.PortalItem, {
56
62
  hostName: "root",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Portal.native.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BACvB,QAAuB,2BAEvB,sBAAyC,yBAEzC,sBAA2B,2BAevB;AAZJ,MAAM,WAAW,QAAQ;AACzB,IAAI;AACA,WACF,eAAe,QAAQ,mDAAmD,EAAE,eAE5E,eAAe,QAAQ,mDAAmD,EAAE;AAGvE,MAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,UAAU,MAAM,WAAW,kCAAc,GAEzC,WACJ;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,YAAU;AAAA,MACV,UAAS;AAAA,MACT,UAAS;AAAA,MACT,QAAQ;AAAA,MACP,GAAG;AAAA;AAAA,EACN;AAGF,SACE,QAAQ,IAAI,8BAA8B,WAC1C,6BAAS,OAAO,aAChB,CAAC,UAEM,4CAAC,kCAAW,UAAS,QAAQ,oBAAS,IAGxC,aAAa,UAAU,OAAO;AACvC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BACvB,QAAuB,2BAEvB,sBAAyC,yBAEzC,sBAA2B,2BAE3B,0BAAiC,+BAiB7B;AAfJ,MAAM,WAAW,QAAQ;AACzB,IAAI;AACA,WACF,eAAe,QAAQ,mDAAmD,EAAE,eAE5E,eAAe,QAAQ,mDAAmD,EAAE;AAGvE,MAAM,SAAS,CAAC,YAAyB;AAC9C,QAAM,EAAE,aAAa,GAAG,MAAM,IAAI,SAE5B,UAAU,MAAM,WAAW,kCAAc,GACzC,aAAS,0CAAiB,OAAO,GAEjC,WACJ;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,YAAU;AAAA,MACV,UAAS;AAAA,MACT,UAAS;AAAA,MACR,GAAG;AAAA,MACJ;AAAA;AAAA,EACF;AAGF,SACE,QAAQ,IAAI,8BAA8B,WAC1C,6BAAS,OAAO,aAChB,CAAC,UAEM,4CAAC,kCAAW,UAAS,QAAQ,oBAAS,IAGxC,aAAa,UAAU,OAAO;AACvC;",
5
5
  "names": []
6
6
  }
@@ -26,16 +26,16 @@ __export(Portal_native_exports, {
26
26
  Portal: () => Portal
27
27
  });
28
28
  module.exports = __toCommonJS(Portal_native_exports);
29
- var import_jsx_runtime = require("react/jsx-runtime"), import_stacks = require("@tamagui/stacks"), React = __toESM(require("react")), import_react_native = require("react-native"), import_GorhomPortal = require("./GorhomPortal"), _global, isFabric = (_global = global) === null || _global === void 0 ? void 0 : _global.nativeFabricUIManager, createPortal;
29
+ var import_jsx_runtime = require("react/jsx-runtime"), import_stacks = require("@tamagui/stacks"), React = __toESM(require("react")), import_react_native = require("react-native"), import_GorhomPortal = require("./GorhomPortal"), import_useStackedZIndex = require("./useStackedZIndex"), _global, isFabric = (_global = global) === null || _global === void 0 ? void 0 : _global.nativeFabricUIManager, createPortal;
30
30
  isFabric ? createPortal = require("react-native/Libraries/Renderer/shims/ReactFabric").createPortal : createPortal = require("react-native/Libraries/Renderer/shims/ReactNative").createPortal;
31
- var Portal = function(props) {
32
- var rootTag = React.useContext(import_react_native.RootTagContext), contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
31
+ var Portal = function(propsIn) {
32
+ var { stackZIndex, ...props } = propsIn, rootTag = React.useContext(import_react_native.RootTagContext), zIndex = (0, import_useStackedZIndex.useStackedZIndex)(propsIn), contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
33
33
  pointerEvents: "box-none",
34
34
  fullscreen: !0,
35
35
  position: "absolute",
36
36
  maxWidth: "100%",
37
- zIndex: 1e5,
38
- ...props
37
+ ...props,
38
+ zIndex
39
39
  });
40
40
  return process.env.TAMAGUI_USE_NATIVE_PORTAL === "false" || import_react_native.Platform.OS === "android" || !rootTag ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_GorhomPortal.PortalItem, {
41
41
  hostName: "root",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/portal/src/Portal.native.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,gBAAuB,4BACvB,QAAuB,2BAEvB,sBAAyC,yBAEzC,sBAA2B,2BAGVA,SAAXC,YAAWD,UAAAA,YAAAA,QAAAA,YAAAA,SAAAA,SAAAA,QAAQE,uBACrBC;AACAF,WACFE,eAAeC,QAAQ,mDAAA,EAAqDD,eAE5EA,eAAeC,QAAQ,mDAAA,EAAqDD;AAGvE,IAAME,SAAS,SAACC,OAAAA;AACrB,MAAMC,UAAUC,MAAMC,WAAWC,kCAAAA,GAE3BC,WACJ,uCAAAC,KAACC,sBAAAA;IACCC,eAAc;IACdC,YAAU;IACVC,UAAS;IACTC,UAAS;IACTC,QAAQ;IACP,GAAGZ;;AAIR,SACEa,QAAQC,IAAIC,8BAA8B,WAC1CC,6BAASC,OAAO,aAChB,CAAChB,UAEM,uCAAAK,KAACY,gCAAAA;IAAWC,UAAS;cAAQd;OAG/BR,aAAaQ,UAAUJ,OAAAA;AAChC;",
5
- "names": ["global", "isFabric", "nativeFabricUIManager", "createPortal", "require", "Portal", "props", "rootTag", "React", "useContext", "RootTagContext", "contents", "_jsx", "YStack", "pointerEvents", "fullscreen", "position", "maxWidth", "zIndex", "process", "env", "TAMAGUI_USE_NATIVE_PORTAL", "Platform", "OS", "PortalItem", "hostName"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,gBAAuB,4BACvB,QAAuB,2BAEvB,sBAAyC,yBAEzC,sBAA2B,2BAE3B,0BAAiC,+BAEhBA,SAAXC,YAAWD,UAAAA,YAAAA,QAAAA,YAAAA,SAAAA,SAAAA,QAAQE,uBACrBC;AACAF,WACFE,eAAeC,QAAQ,mDAAA,EAAqDD,eAE5EA,eAAeC,QAAQ,mDAAA,EAAqDD;AAGvE,IAAME,SAAS,SAACC,SAAAA;AACrB,MAAM,EAAEC,aAAa,GAAGC,MAAAA,IAAUF,SAE5BG,UAAUC,MAAMC,WAAWC,kCAAAA,GAC3BC,aAASC,0CAAiBR,OAAAA,GAE1BS,WACJ,uCAAAC,KAACC,sBAAAA;IACCC,eAAc;IACdC,YAAU;IACVC,UAAS;IACTC,UAAS;IACR,GAAGb;IACJK;;AAIJ,SACES,QAAQC,IAAIC,8BAA8B,WAC1CC,6BAASC,OAAO,aAChB,CAACjB,UAEM,uCAAAO,KAACW,gCAAAA;IAAWC,UAAS;cAAQb;OAG/BZ,aAAaY,UAAUN,OAAAA;AAChC;",
5
+ "names": ["global", "isFabric", "nativeFabricUIManager", "createPortal", "require", "Portal", "propsIn", "stackZIndex", "props", "rootTag", "React", "useContext", "RootTagContext", "zIndex", "useStackedZIndex", "contents", "_jsx", "YStack", "pointerEvents", "fullscreen", "position", "maxWidth", "process", "env", "TAMAGUI_USE_NATIVE_PORTAL", "Platform", "OS", "PortalItem", "hostName"]
6
6
  }
@@ -0,0 +1,46 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var useStackedZIndex_exports = {};
22
+ __export(useStackedZIndex_exports, {
23
+ useStackedZIndex: () => useStackedZIndex
24
+ });
25
+ module.exports = __toCommonJS(useStackedZIndex_exports);
26
+ var import_react = require("react");
27
+ const CurrentPortalZIndices = {},
28
+ useStackedZIndex = props => {
29
+ const {
30
+ stackZIndex,
31
+ zIndex: zIndexProp = 1e3
32
+ } = props,
33
+ zIndex = (() => {
34
+ if (stackZIndex) {
35
+ const highest = Object.values(CurrentPortalZIndices).reduce((acc, cur) => Math.max(acc, cur), 0);
36
+ return Math.max(stackZIndex, highest + 1);
37
+ }
38
+ if (zIndexProp) return zIndexProp;
39
+ })(),
40
+ id = (0, import_react.useId)();
41
+ return (0, import_react.useEffect)(() => {
42
+ if (typeof zIndex == "number") return CurrentPortalZIndices[id] = zIndex, () => {
43
+ delete CurrentPortalZIndices[id];
44
+ };
45
+ }, [zIndex]), zIndex;
46
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useStackedZIndex.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAiC;AAGjC,MAAM,wBAAgD,CAAC,GAE1C,mBAAmB,CAAC,UAAuD;AACtF,QAAM,EAAE,aAAa,QAAQ,aAAa,IAAK,IAAI,OAE7C,UAAU,MAAM;AACpB,QAAI,aAAa;AACf,YAAM,UAAU,OAAO,OAAO,qBAAqB,EAAE;AAAA,QACnD,CAAC,KAAK,QAAQ,KAAK,IAAI,KAAK,GAAG;AAAA,QAC/B;AAAA,MACF;AACA,aAAO,KAAK,IAAI,aAAa,UAAU,CAAC;AAAA,IAC1C;AACA,QAAI;AACF,aAAO;AAAA,EAEX,GAAG,GAEG,SAAK,oBAAM;AAEjB,qCAAU,MAAM;AACd,QAAI,OAAO,UAAW;AACpB,mCAAsB,EAAE,IAAI,QACrB,MAAM;AACX,eAAO,sBAAsB,EAAE;AAAA,MACjC;AAAA,EAEJ,GAAG,CAAC,MAAM,CAAC,GAEJ;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var useStackedZIndex_exports = {};
17
+ __export(useStackedZIndex_exports, {
18
+ useStackedZIndex: () => useStackedZIndex
19
+ });
20
+ module.exports = __toCommonJS(useStackedZIndex_exports);
21
+ var import_react = require("react"), CurrentPortalZIndices = {}, useStackedZIndex = function(props) {
22
+ var { stackZIndex, zIndex: zIndexProp = 1e3 } = props, zIndex = function() {
23
+ if (stackZIndex) {
24
+ var highest = Object.values(CurrentPortalZIndices).reduce(function(acc, cur) {
25
+ return Math.max(acc, cur);
26
+ }, 0);
27
+ return Math.max(stackZIndex, highest + 1);
28
+ }
29
+ if (zIndexProp)
30
+ return zIndexProp;
31
+ }(), id = (0, import_react.useId)();
32
+ return (0, import_react.useEffect)(function() {
33
+ if (typeof zIndex == "number")
34
+ return CurrentPortalZIndices[id] = zIndex, function() {
35
+ delete CurrentPortalZIndices[id];
36
+ };
37
+ }, [
38
+ zIndex
39
+ ]), zIndex;
40
+ };
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ useStackedZIndex
44
+ });
45
+ //# sourceMappingURL=useStackedZIndex.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Users/n8/tamagui/code/ui/portal/src/useStackedZIndex.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;mBAAiC,kBAG3BA,wBAAgD,CAAC,GAE1CC,mBAAmB,SAACC,OAAAA;AAC/B,MAAM,EAAEC,aAAaC,QAAQC,aAAa,IAAI,IAAKH,OAE7CE,SAAU,WAAA;AACd,QAAID,aAAa;AACf,UAAMG,UAAUC,OAAOC,OAAOR,qBAAAA,EAAuBS,OACnD,SAACC,KAAKC,KAAAA;eAAQC,KAAKC,IAAIH,KAAKC,GAAAA;SAC5B,CAAA;AAEF,aAAOC,KAAKC,IAAIV,aAAaG,UAAU,CAAA;IACzC;AACA,QAAID;AACF,aAAOA;EAEX,EAAA,GAEMS,SAAKC,oBAAAA;AAEXC,qCAAU,WAAA;AACR,QAAI,OAAOZ,UAAW;AACpBJ,mCAAsBc,EAAAA,IAAMV,QACrB,WAAA;AACL,eAAOJ,sBAAsBc,EAAAA;MAC/B;EAEJ,GAAG;IAACV;GAAO,GAEJA;AACT;",
5
+ "names": ["CurrentPortalZIndices", "useStackedZIndex", "props", "stackZIndex", "zIndex", "zIndexProp", "highest", "Object", "values", "reduce", "acc", "cur", "Math", "max", "id", "useId", "useEffect"]
6
+ }
@@ -1,5 +1,6 @@
1
- import { useIsomorphicLayoutEffect } from "@tamagui/constants";
1
+ import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { useEvent } from "@tamagui/core";
3
+ import { startTransition } from "@tamagui/start-transition";
3
4
  import React, {
4
5
  createContext,
5
6
  memo,
@@ -10,7 +11,7 @@ import React, {
10
11
  useMemo,
11
12
  useReducer
12
13
  } from "react";
13
- import { startTransition } from "@tamagui/start-transition";
14
+ import { createPortal } from "react-dom";
14
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
16
  var ACTIONS = /* @__PURE__ */ ((ACTIONS2) => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2))(ACTIONS || {});
16
17
  const INITIAL_STATE = {};
@@ -111,7 +112,23 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
111
112
  ] }) });
112
113
  }, PortalProvider = memo(PortalProviderComponent);
113
114
  PortalProvider.displayName = "PortalProvider";
114
- const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children }), PortalHostComponent = (props) => {
115
+ const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children }), PortalHost = memo(function(props) {
116
+ return isWeb ? /* @__PURE__ */ jsx(PortalHostWeb, { ...props }) : /* @__PURE__ */ jsx(PortalHostNonNative, { ...props });
117
+ }), allPortalHosts = /* @__PURE__ */ new Map();
118
+ function PortalHostWeb(props) {
119
+ return /* @__PURE__ */ jsx(
120
+ "div",
121
+ {
122
+ style: {
123
+ display: "contents"
124
+ },
125
+ ref: (node) => {
126
+ node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
127
+ }
128
+ }
129
+ );
130
+ }
131
+ function PortalHostNonNative(props) {
115
132
  const { name, forwardProps, render = defaultRenderer } = props, state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
116
133
  return useEffect(() => {
117
134
  if (!(typeof window > "u"))
@@ -121,19 +138,27 @@ const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children }
121
138
  }, []), render(
122
139
  forwardProps ? state.map((item) => {
123
140
  let next = item.node;
124
- return forwardProps ? React.Children.map(next, (child) => React.isValidElement(child) ? React.cloneElement(child, { key: child.key, ...forwardProps }) : child) : next;
141
+ const { children, ...restForwardProps } = forwardProps;
142
+ return forwardProps ? React.Children.map(next, (child) => React.isValidElement(child) ? React.cloneElement(child, { key: child.key, ...restForwardProps }) : child) : next;
125
143
  }) : state.map((item) => item.node)
126
144
  );
127
- }, PortalHost = memo(PortalHostComponent);
128
- PortalHost.displayName = "PortalHost";
129
- const PortalComponent = (props) => {
145
+ }
146
+ const PortalItem = memo(function(props) {
147
+ return isWeb ? /* @__PURE__ */ jsx(PortalItemWeb, { ...props }) : /* @__PURE__ */ jsx(NonNativePortalComponent, { ...props });
148
+ }), PortalItemWeb = (props) => {
149
+ if (!props.hostName)
150
+ throw new Error("No name");
151
+ const hostNode = allPortalHosts.get(props.hostName);
152
+ return hostNode ? createPortal(props.children, hostNode) : null;
153
+ }, NonNativePortalComponent = (props) => {
130
154
  const {
131
155
  name: _providedName,
132
156
  hostName,
133
157
  handleOnMount: _providedHandleOnMount,
134
158
  handleOnUnmount: _providedHandleOnUnmount,
135
159
  handleOnUpdate: _providedHandleOnUpdate,
136
- children
160
+ children,
161
+ passthrough
137
162
  } = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = useId(), name = _providedName || id, handleOnMount = useEvent(() => {
138
163
  _providedHandleOnMount ? _providedHandleOnMount(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
139
164
  }), handleOnUnmount = useEvent(() => {
@@ -141,13 +166,15 @@ const PortalComponent = (props) => {
141
166
  }), handleOnUpdate = useEvent(() => {
142
167
  _providedHandleOnUpdate ? _providedHandleOnUpdate(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
143
168
  });
144
- return useIsomorphicLayoutEffect(() => (handleOnMount(), () => {
145
- handleOnUnmount();
146
- }), []), useEffect(() => {
147
- handleOnUpdate();
148
- }, [children]), null;
149
- }, PortalItem = memo(PortalComponent);
150
- PortalItem.displayName = "Portal";
169
+ return useIsomorphicLayoutEffect(() => {
170
+ if (!passthrough)
171
+ return handleOnMount(), () => {
172
+ handleOnUnmount();
173
+ };
174
+ }, []), useEffect(() => {
175
+ passthrough || handleOnUpdate();
176
+ }, [children]), passthrough ? children : null;
177
+ };
151
178
  export {
152
179
  ACTIONS,
153
180
  INITIAL_STATE,