@tamagui/portal 2.7.7 → 3.0.0-beta.643.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.
Files changed (90) hide show
  1. package/dist/cjs/GorhomPortal.cjs +132 -164
  2. package/dist/cjs/GorhomPortal.native.cjs +202 -0
  3. package/dist/cjs/GorhomPortal.native.js +166 -211
  4. package/dist/cjs/GorhomPortal.native.js.map +1 -1
  5. package/dist/cjs/GorhomPortalItem.cjs +58 -58
  6. package/dist/cjs/GorhomPortalItem.native.cjs +105 -0
  7. package/dist/cjs/GorhomPortalItem.native.js +85 -106
  8. package/dist/cjs/GorhomPortalItem.native.js.map +1 -1
  9. package/dist/cjs/Portal.cjs +52 -60
  10. package/dist/cjs/Portal.native.cjs +57 -0
  11. package/dist/cjs/Portal.native.js +39 -44
  12. package/dist/cjs/Portal.native.js.map +1 -1
  13. package/dist/cjs/PortalProps.cjs +10 -11
  14. package/dist/cjs/PortalProps.native.cjs +19 -0
  15. package/dist/cjs/PortalProps.native.js +10 -10
  16. package/dist/cjs/PortalProps.native.js.map +1 -1
  17. package/dist/cjs/constants.cjs +24 -25
  18. package/dist/cjs/constants.native.cjs +44 -0
  19. package/dist/cjs/constants.native.js +26 -26
  20. package/dist/cjs/constants.native.js.map +1 -1
  21. package/dist/cjs/helpers.cjs +23 -24
  22. package/dist/cjs/helpers.native.cjs +39 -0
  23. package/dist/cjs/helpers.native.js +23 -23
  24. package/dist/cjs/helpers.native.js.map +1 -1
  25. package/dist/cjs/index.cjs +16 -17
  26. package/dist/cjs/index.native.cjs +36 -0
  27. package/dist/cjs/index.native.js +16 -16
  28. package/dist/cjs/index.native.js.map +1 -1
  29. package/dist/cjs/native-portal.cjs +32 -35
  30. package/dist/cjs/native-portal.native.cjs +51 -0
  31. package/dist/cjs/native-portal.native.js +37 -39
  32. package/dist/cjs/native-portal.native.js.map +1 -1
  33. package/dist/cjs/types.cjs +10 -11
  34. package/dist/cjs/types.native.cjs +19 -0
  35. package/dist/cjs/types.native.js +10 -10
  36. package/dist/cjs/types.native.js.map +1 -1
  37. package/dist/esm/GorhomPortal.mjs +112 -136
  38. package/dist/esm/GorhomPortal.mjs.map +1 -1
  39. package/dist/esm/GorhomPortal.native.js +146 -184
  40. package/dist/esm/GorhomPortal.native.js.map +1 -1
  41. package/dist/esm/GorhomPortalItem.mjs +46 -41
  42. package/dist/esm/GorhomPortalItem.mjs.map +1 -1
  43. package/dist/esm/GorhomPortalItem.native.js +74 -91
  44. package/dist/esm/GorhomPortalItem.native.js.map +1 -1
  45. package/dist/esm/Portal.mjs +38 -36
  46. package/dist/esm/Portal.mjs.map +1 -1
  47. package/dist/esm/Portal.native.js +28 -29
  48. package/dist/esm/Portal.native.js.map +1 -1
  49. package/dist/esm/PortalProps.mjs +0 -2
  50. package/dist/esm/PortalProps.native.js +0 -2
  51. package/dist/esm/constants.mjs +8 -6
  52. package/dist/esm/constants.mjs.map +1 -1
  53. package/dist/esm/constants.native.js +10 -8
  54. package/dist/esm/constants.native.js.map +1 -1
  55. package/dist/esm/helpers.mjs +9 -7
  56. package/dist/esm/helpers.mjs.map +1 -1
  57. package/dist/esm/helpers.native.js +9 -7
  58. package/dist/esm/helpers.native.js.map +1 -1
  59. package/dist/esm/index.js +10 -6
  60. package/dist/esm/index.mjs +10 -6
  61. package/dist/esm/index.native.js +10 -6
  62. package/dist/esm/native-portal.mjs +23 -17
  63. package/dist/esm/native-portal.mjs.map +1 -1
  64. package/dist/esm/native-portal.native.js +28 -22
  65. package/dist/esm/native-portal.native.js.map +1 -1
  66. package/dist/esm/types.mjs +0 -2
  67. package/dist/esm/types.native.js +0 -2
  68. package/package.json +11 -10
  69. package/src/GorhomPortalItem.tsx +11 -2
  70. package/src/Portal.tsx +31 -7
  71. package/src/PortalProps.tsx +7 -0
  72. package/types/GorhomPortal.d.ts +3 -2
  73. package/types/GorhomPortal.d.ts.map +1 -1
  74. package/types/GorhomPortalItem.d.ts.map +1 -1
  75. package/types/GorhomPortalItem.native.d.ts +1 -1
  76. package/types/GorhomPortalItem.native.d.ts.map +1 -1
  77. package/types/Portal.d.ts.map +1 -1
  78. package/types/Portal.native.d.ts +1 -1
  79. package/types/Portal.native.d.ts.map +1 -1
  80. package/types/PortalProps.d.ts +7 -1
  81. package/types/PortalProps.d.ts.map +1 -1
  82. package/types/helpers.d.ts +1 -1
  83. package/types/helpers.d.ts.map +1 -1
  84. package/dist/esm/PortalProps.mjs.map +0 -1
  85. package/dist/esm/PortalProps.native.js.map +0 -1
  86. package/dist/esm/index.js.map +0 -1
  87. package/dist/esm/index.mjs.map +0 -1
  88. package/dist/esm/index.native.js.map +0 -1
  89. package/dist/esm/types.mjs.map +0 -1
  90. package/dist/esm/types.native.js.map +0 -1
@@ -3,203 +3,165 @@ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
3
3
  import { NativePortalHost, NativePortalProvider, getPortal } from "@tamagui/native";
4
4
  import { startTransition } from "@tamagui/start-transition";
5
5
  import React, { createContext, memo, useCallback, useContext, useMemo, useReducer } from "react";
6
- var ACTIONS = /* @__PURE__ */function (ACTIONS2) {
7
- ACTIONS2[ACTIONS2["REGISTER_HOST"] = 0] = "REGISTER_HOST";
8
- ACTIONS2[ACTIONS2["DEREGISTER_HOST"] = 1] = "DEREGISTER_HOST";
9
- ACTIONS2[ACTIONS2["ADD_UPDATE_PORTAL"] = 2] = "ADD_UPDATE_PORTAL";
10
- ACTIONS2[ACTIONS2["REMOVE_PORTAL"] = 3] = "REMOVE_PORTAL";
11
- return ACTIONS2;
12
- }(ACTIONS || {});
6
+
7
+ var ACTIONS = /* @__PURE__ */ (function(ACTIONS2) {
8
+ ACTIONS2[ACTIONS2["REGISTER_HOST"] = 0] = "REGISTER_HOST";
9
+ ACTIONS2[ACTIONS2["DEREGISTER_HOST"] = 1] = "DEREGISTER_HOST";
10
+ ACTIONS2[ACTIONS2["ADD_UPDATE_PORTAL"] = 2] = "ADD_UPDATE_PORTAL";
11
+ ACTIONS2[ACTIONS2["REMOVE_PORTAL"] = 3] = "REMOVE_PORTAL";
12
+ return ACTIONS2;
13
+ })(ACTIONS || {});
13
14
  var INITIAL_STATE = {};
14
- var registerHost = function (state, hostName) {
15
- if (!(hostName in state)) state[hostName] = [];
16
- return state;
15
+ var registerHost = function(state, hostName) {
16
+ if (!(hostName in state)) state[hostName] = [];
17
+ return state;
17
18
  };
18
- var deregisterHost = function (state, hostName) {
19
- delete state[hostName];
20
- return state;
19
+ var deregisterHost = function(state, hostName) {
20
+ delete state[hostName];
21
+ return state;
21
22
  };
22
- var addUpdatePortal = function (state, hostName, portalName, node) {
23
- if (!(hostName in state)) state = registerHost(state, hostName);
24
- var index = state[hostName].findIndex(function (item) {
25
- return item.name === portalName;
26
- });
27
- if (index !== -1) state[hostName][index].node = node;else state[hostName].push({
28
- name: portalName,
29
- node
30
- });
31
- return state;
23
+ var addUpdatePortal = function(state, hostName, portalName, node) {
24
+ if (!(hostName in state)) state = registerHost(state, hostName);
25
+ var index = state[hostName].findIndex(function(item) {
26
+ return item.name === portalName;
27
+ });
28
+ if (index !== -1) state[hostName][index].node = node;
29
+ else state[hostName].push({
30
+ name: portalName,
31
+ node
32
+ });
33
+ return state;
32
34
  };
33
- var removePortal = function (state, hostName, portalName) {
34
- if (!(hostName in state)) {
35
- if (process.env.NODE_ENV === "development") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);
36
- return state;
37
- }
38
- var index = state[hostName].findIndex(function (item) {
39
- return item.name === portalName;
40
- });
41
- if (index !== -1) state[hostName].splice(index, 1);
42
- return state;
35
+ var removePortal = function(state, hostName, portalName) {
36
+ if (!(hostName in state)) {
37
+ if (process.env.NODE_ENV === "development") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);
38
+ return state;
39
+ }
40
+ var index = state[hostName].findIndex(function(item) {
41
+ return item.name === portalName;
42
+ });
43
+ if (index !== -1) state[hostName].splice(index, 1);
44
+ return state;
43
45
  };
44
- var reducer = function (state, action) {
45
- var {
46
- type
47
- } = action;
48
- switch (type) {
49
- case 0:
50
- return registerHost({
51
- ...state
52
- }, action.hostName);
53
- case 1:
54
- return deregisterHost({
55
- ...state
56
- }, action.hostName);
57
- case 2:
58
- return addUpdatePortal({
59
- ...state
60
- }, action.hostName, action.portalName, action.node);
61
- case 3:
62
- return removePortal({
63
- ...state
64
- }, action.hostName, action.portalName);
65
- default:
66
- return state;
67
- }
46
+ var reducer = function(state, action) {
47
+ var { type } = action;
48
+ switch (type) {
49
+ case 0: return registerHost({ ...state }, action.hostName);
50
+ case 1: return deregisterHost({ ...state }, action.hostName);
51
+ case 2: return addUpdatePortal({ ...state }, action.hostName, action.portalName, action.node);
52
+ case 3: return removePortal({ ...state }, action.hostName, action.portalName);
53
+ default: return state;
54
+ }
68
55
  };
69
- var PortalStateContext = /* @__PURE__ */createContext(null);
70
- var PortalDispatchContext = /* @__PURE__ */createContext(null);
71
- var PortalProviderActiveContext = /* @__PURE__ */createContext(false);
72
- var usePortalState = function (hostName) {
73
- var state = useContext(PortalStateContext);
74
- if (state === null) throw new Error("'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.");
75
- return state[hostName] || [];
56
+ var PortalStateContext = /* @__PURE__ */ createContext(null);
57
+ var PortalDispatchContext = /* @__PURE__ */ createContext(null);
58
+ var PortalProviderActiveContext = /* @__PURE__ */ createContext(false);
59
+ var usePortalState = function(hostName) {
60
+ var state = useContext(PortalStateContext);
61
+ if (state === null) throw new Error("'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.");
62
+ return state[hostName] || [];
76
63
  };
77
- var usePortal = function () {
78
- var hostName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "root";
79
- var dispatch = useContext(PortalDispatchContext);
80
- if (dispatch === null) throw new Error("'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.");
81
- var registerHost2 = useCallback(function () {
82
- dispatch({
83
- type: 0,
84
- hostName
85
- });
86
- }, []);
87
- var deregisterHost2 = useCallback(function () {
88
- dispatch({
89
- type: 1,
90
- hostName
91
- });
92
- }, []);
93
- var addUpdatePortal2 = useCallback(function (name, node) {
94
- dispatch({
95
- type: 2,
96
- hostName,
97
- portalName: name,
98
- node
99
- });
100
- }, []);
101
- return {
102
- registerHost: registerHost2,
103
- deregisterHost: deregisterHost2,
104
- addPortal: addUpdatePortal2,
105
- updatePortal: addUpdatePortal2,
106
- removePortal: useCallback(function (name) {
107
- dispatch({
108
- type: 3,
109
- hostName,
110
- portalName: name
111
- });
112
- }, [])
113
- };
64
+ var usePortal = function() {
65
+ var hostName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "root";
66
+ var dispatch = useContext(PortalDispatchContext);
67
+ if (dispatch === null) throw new Error("'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.");
68
+ var registerHost2 = useCallback(function() {
69
+ dispatch({
70
+ type: 0,
71
+ hostName
72
+ });
73
+ }, []);
74
+ var deregisterHost2 = useCallback(function() {
75
+ dispatch({
76
+ type: 1,
77
+ hostName
78
+ });
79
+ }, []);
80
+ var addUpdatePortal2 = useCallback(function(name, node) {
81
+ dispatch({
82
+ type: 2,
83
+ hostName,
84
+ portalName: name,
85
+ node
86
+ });
87
+ }, []);
88
+ return {
89
+ registerHost: registerHost2,
90
+ deregisterHost: deregisterHost2,
91
+ addPortal: addUpdatePortal2,
92
+ updatePortal: addUpdatePortal2,
93
+ removePortal: useCallback(function(name) {
94
+ dispatch({
95
+ type: 3,
96
+ hostName,
97
+ portalName: name
98
+ });
99
+ }, [])
100
+ };
114
101
  };
115
- var PortalProviderComponent = function (param) {
116
- var {
117
- rootHostName = "root",
118
- shouldAddRootHost = true,
119
- children
120
- } = param;
121
- var isAlreadyInProvider = useContext(PortalProviderActiveContext);
122
- if (process.env.NODE_ENV === "development") {
123
- if (isAlreadyInProvider && shouldAddRootHost) console.warn(`[tamagui] Nested PortalProvider with shouldAddRootHost detected. This causes hydration mismatches. TamaguiProvider from 'tamagui' already includes PortalProvider - remove the explicit PortalProvider wrapper or set shouldAddRootHost={false}.`);
124
- }
125
- var [state, dispatch] = useReducer(reducer, INITIAL_STATE);
126
- var transitionDispatch = useMemo(function () {
127
- var next = function (value) {
128
- startTransition(function () {
129
- dispatch(value);
130
- });
131
- };
132
- return next;
133
- }, [dispatch]);
134
- var portalState = getPortal().state;
135
- var content = /* @__PURE__ */jsx(PortalProviderActiveContext.Provider, {
136
- value: true,
137
- children: /* @__PURE__ */jsx(PortalDispatchContext.Provider, {
138
- value: transitionDispatch,
139
- children: /* @__PURE__ */jsxs(PortalStateContext.Provider, {
140
- value: state,
141
- children: [children, shouldAddRootHost && /* @__PURE__ */jsx(PortalHost, {
142
- name: rootHostName
143
- })]
144
- })
145
- })
146
- });
147
- if (portalState.type === "teleport") return /* @__PURE__ */jsx(NativePortalProvider, {
148
- children: content
149
- });
150
- return content;
102
+ var PortalProviderComponent = function(param) {
103
+ var { rootHostName = "root", shouldAddRootHost = true, children } = param;
104
+ var isAlreadyInProvider = useContext(PortalProviderActiveContext);
105
+ if (process.env.NODE_ENV === "development") {
106
+ if (isAlreadyInProvider && shouldAddRootHost) console.warn(`[tamagui] Nested PortalProvider with shouldAddRootHost detected. This causes hydration mismatches. TamaguiProvider from 'tamagui' already includes PortalProvider - remove the explicit PortalProvider wrapper or set shouldAddRootHost={false}.`);
107
+ }
108
+ var [state, dispatch] = useReducer(reducer, INITIAL_STATE);
109
+ var transitionDispatch = useMemo(function() {
110
+ var next = function(value) {
111
+ startTransition(function() {
112
+ dispatch(value);
113
+ });
114
+ };
115
+ return next;
116
+ }, [dispatch]);
117
+ var portalState = getPortal().state;
118
+ var content = /* @__PURE__ */ jsx(PortalProviderActiveContext.Provider, {
119
+ value: true,
120
+ children: /* @__PURE__ */ jsx(PortalDispatchContext.Provider, {
121
+ value: transitionDispatch,
122
+ children: /* @__PURE__ */ jsxs(PortalStateContext.Provider, {
123
+ value: state,
124
+ children: [children, shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })]
125
+ })
126
+ })
127
+ });
128
+ if (portalState.type === "teleport") return /* @__PURE__ */ jsx(NativePortalProvider, { children: content });
129
+ return content;
151
130
  };
152
- var PortalProvider = /* @__PURE__ */memo(PortalProviderComponent);
131
+ var PortalProvider = /* @__PURE__ */ memo(PortalProviderComponent);
153
132
  PortalProvider.displayName = "PortalProvider";
154
- var defaultRenderer = function (children) {
155
- return /* @__PURE__ */jsx(Fragment, {
156
- children
157
- });
133
+ var defaultRenderer = function(children) {
134
+ return /* @__PURE__ */ jsx(Fragment, { children });
158
135
  };
159
- var PortalHost = /* @__PURE__ */memo(function PortalHost2(props) {
160
- if (getPortal().state.type === "teleport") return /* @__PURE__ */jsx(NativePortalHost, {
161
- name: props.name
162
- });
163
- return /* @__PURE__ */jsx(PortalHostNonNative, {
164
- ...props
165
- });
136
+ var PortalHost = /* @__PURE__ */ memo(function PortalHost2(props) {
137
+ if (getPortal().state.type === "teleport") return /* @__PURE__ */ jsx(NativePortalHost, { name: props.name });
138
+ return /* @__PURE__ */ jsx(PortalHostNonNative, { ...props });
166
139
  });
167
140
  function PortalHostNonNative(props) {
168
- var {
169
- name,
170
- forwardProps,
171
- render = defaultRenderer
172
- } = props;
173
- var state = usePortalState(name);
174
- var {
175
- registerHost: registerHost2,
176
- deregisterHost: deregisterHost2
177
- } = usePortal(props.name);
178
- useIsomorphicLayoutEffect(function () {
179
- registerHost2();
180
- return function () {
181
- deregisterHost2();
182
- };
183
- }, []);
184
- if (forwardProps) return render(state.map(function (item) {
185
- var next = item.node;
186
- var {
187
- children,
188
- ...restForwardProps
189
- } = forwardProps;
190
- if (forwardProps) return React.Children.map(next, function (child) {
191
- return /* @__PURE__ */React.isValidElement(child) ? /* @__PURE__ */React.cloneElement(child, {
192
- key: child.key,
193
- ...restForwardProps
194
- }) : child;
195
- });
196
- return next;
197
- }));
198
- return render(state.map(function (item) {
199
- return /* @__PURE__ */jsx(React.Fragment, {
200
- children: item.node
201
- }, item.name);
202
- }));
141
+ var { name, forwardProps, render = defaultRenderer } = props;
142
+ var state = usePortalState(name);
143
+ var { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
144
+ useIsomorphicLayoutEffect(function() {
145
+ registerHost2();
146
+ return function() {
147
+ deregisterHost2();
148
+ };
149
+ }, []);
150
+ if (forwardProps) return render(state.map(function(item) {
151
+ var next = item.node;
152
+ var { children, ...restForwardProps } = forwardProps;
153
+ if (forwardProps) return React.Children.map(next, function(child) {
154
+ return /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ React.cloneElement(child, {
155
+ key: child.key,
156
+ ...restForwardProps
157
+ }) : child;
158
+ });
159
+ return next;
160
+ }));
161
+ return render(state.map(function(item) {
162
+ return /* @__PURE__ */ jsx(React.Fragment, { children: item.node }, item.name);
163
+ }));
203
164
  }
165
+
204
166
  export { ACTIONS, INITIAL_STATE, PortalHost, PortalProvider, usePortal };
205
167
  //# sourceMappingURL=GorhomPortal.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Fragment","jsx","jsxs","useIsomorphicLayoutEffect","NativePortalHost","NativePortalProvider","getPortal","startTransition","React","createContext","memo","useCallback","useContext","useMemo","useReducer","ACTIONS","ACTIONS2","INITIAL_STATE","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","process","env","NODE_ENV","console","info","splice","reducer","action","type","PortalStateContext","PortalDispatchContext","PortalProviderActiveContext","usePortalState","Error","usePortal","arguments","length","dispatch","registerHost2","deregisterHost2","addUpdatePortal2","addPortal","updatePortal","PortalProviderComponent","param","rootHostName","shouldAddRootHost","children","isAlreadyInProvider","warn","transitionDispatch","next","value","portalState","content","Provider","PortalHost","PortalProvider","displayName","defaultRenderer","PortalHost2","props","PortalHostNonNative","forwardProps","render","map","restForwardProps","Children","child","isValidElement","cloneElement","key"],"sources":["GorhomPortal.native.js"],"sourcesContent":["import { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { NativePortalHost, NativePortalProvider, getPortal } from \"@tamagui/native\";\nimport { startTransition } from \"@tamagui/start-transition\";\nimport React, { createContext, memo, useCallback, useContext, useMemo, useReducer } from \"react\";\n\nvar ACTIONS = /* @__PURE__ */ (function(ACTIONS2) {\n\tACTIONS2[ACTIONS2[\"REGISTER_HOST\"] = 0] = \"REGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"DEREGISTER_HOST\"] = 1] = \"DEREGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"ADD_UPDATE_PORTAL\"] = 2] = \"ADD_UPDATE_PORTAL\";\n\tACTIONS2[ACTIONS2[\"REMOVE_PORTAL\"] = 3] = \"REMOVE_PORTAL\";\n\treturn ACTIONS2;\n})(ACTIONS || {});\nvar INITIAL_STATE = {};\nvar registerHost = function(state, hostName) {\n\tif (!(hostName in state)) state[hostName] = [];\n\treturn state;\n};\nvar deregisterHost = function(state, hostName) {\n\tdelete state[hostName];\n\treturn state;\n};\nvar addUpdatePortal = function(state, hostName, portalName, node) {\n\tif (!(hostName in state)) state = registerHost(state, hostName);\n\tvar index = state[hostName].findIndex(function(item) {\n\t\treturn item.name === portalName;\n\t});\n\tif (index !== -1) state[hostName][index].node = node;\n\telse state[hostName].push({\n\t\tname: portalName,\n\t\tnode\n\t});\n\treturn state;\n};\nvar removePortal = function(state, hostName, portalName) {\n\tif (!(hostName in state)) {\n\t\tif (process.env.NODE_ENV === \"development\") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);\n\t\treturn state;\n\t}\n\tvar index = state[hostName].findIndex(function(item) {\n\t\treturn item.name === portalName;\n\t});\n\tif (index !== -1) state[hostName].splice(index, 1);\n\treturn state;\n};\nvar reducer = function(state, action) {\n\tvar { type } = action;\n\tswitch (type) {\n\t\tcase 0: return registerHost({ ...state }, action.hostName);\n\t\tcase 1: return deregisterHost({ ...state }, action.hostName);\n\t\tcase 2: return addUpdatePortal({ ...state }, action.hostName, action.portalName, action.node);\n\t\tcase 3: return removePortal({ ...state }, action.hostName, action.portalName);\n\t\tdefault: return state;\n\t}\n};\nvar PortalStateContext = /* @__PURE__ */ createContext(null);\nvar PortalDispatchContext = /* @__PURE__ */ createContext(null);\nvar PortalProviderActiveContext = /* @__PURE__ */ createContext(false);\nvar usePortalState = function(hostName) {\n\tvar state = useContext(PortalStateContext);\n\tif (state === null) throw new Error(\"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.\");\n\treturn state[hostName] || [];\n};\nvar usePortal = function() {\n\tvar hostName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"root\";\n\tvar dispatch = useContext(PortalDispatchContext);\n\tif (dispatch === null) throw new Error(\"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.\");\n\tvar registerHost2 = useCallback(function() {\n\t\tdispatch({\n\t\t\ttype: 0,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tvar deregisterHost2 = useCallback(function() {\n\t\tdispatch({\n\t\t\ttype: 1,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tvar addUpdatePortal2 = useCallback(function(name, node) {\n\t\tdispatch({\n\t\t\ttype: 2,\n\t\t\thostName,\n\t\t\tportalName: name,\n\t\t\tnode\n\t\t});\n\t}, []);\n\treturn {\n\t\tregisterHost: registerHost2,\n\t\tderegisterHost: deregisterHost2,\n\t\taddPortal: addUpdatePortal2,\n\t\tupdatePortal: addUpdatePortal2,\n\t\tremovePortal: useCallback(function(name) {\n\t\t\tdispatch({\n\t\t\t\ttype: 3,\n\t\t\t\thostName,\n\t\t\t\tportalName: name\n\t\t\t});\n\t\t}, [])\n\t};\n};\nvar PortalProviderComponent = function(param) {\n\tvar { rootHostName = \"root\", shouldAddRootHost = true, children } = param;\n\tvar isAlreadyInProvider = useContext(PortalProviderActiveContext);\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (isAlreadyInProvider && shouldAddRootHost) console.warn(`[tamagui] Nested PortalProvider with shouldAddRootHost detected. This causes hydration mismatches. TamaguiProvider from 'tamagui' already includes PortalProvider - remove the explicit PortalProvider wrapper or set shouldAddRootHost={false}.`);\n\t}\n\tvar [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n\tvar transitionDispatch = useMemo(function() {\n\t\tvar next = function(value) {\n\t\t\tstartTransition(function() {\n\t\t\t\tdispatch(value);\n\t\t\t});\n\t\t};\n\t\treturn next;\n\t}, [dispatch]);\n\tvar portalState = getPortal().state;\n\tvar content = /* @__PURE__ */ jsx(PortalProviderActiveContext.Provider, {\n\t\tvalue: true,\n\t\tchildren: /* @__PURE__ */ jsx(PortalDispatchContext.Provider, {\n\t\t\tvalue: transitionDispatch,\n\t\t\tchildren: /* @__PURE__ */ jsxs(PortalStateContext.Provider, {\n\t\t\t\tvalue: state,\n\t\t\t\tchildren: [children, shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })]\n\t\t\t})\n\t\t})\n\t});\n\tif (portalState.type === \"teleport\") return /* @__PURE__ */ jsx(NativePortalProvider, { children: content });\n\treturn content;\n};\nvar PortalProvider = /* @__PURE__ */ memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\nvar defaultRenderer = function(children) {\n\treturn /* @__PURE__ */ jsx(Fragment, { children });\n};\nvar PortalHost = /* @__PURE__ */ memo(function PortalHost2(props) {\n\tif (getPortal().state.type === \"teleport\") return /* @__PURE__ */ jsx(NativePortalHost, { name: props.name });\n\treturn /* @__PURE__ */ jsx(PortalHostNonNative, { ...props });\n});\nfunction PortalHostNonNative(props) {\n\tvar { name, forwardProps, render = defaultRenderer } = props;\n\tvar state = usePortalState(name);\n\tvar { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);\n\tuseIsomorphicLayoutEffect(function() {\n\t\tregisterHost2();\n\t\treturn function() {\n\t\t\tderegisterHost2();\n\t\t};\n\t}, []);\n\tif (forwardProps) return render(state.map(function(item) {\n\t\tvar next = item.node;\n\t\tvar { children, ...restForwardProps } = forwardProps;\n\t\tif (forwardProps) return React.Children.map(next, function(child) {\n\t\t\treturn /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ React.cloneElement(child, {\n\t\t\t\tkey: child.key,\n\t\t\t\t...restForwardProps\n\t\t\t}) : child;\n\t\t});\n\t\treturn next;\n\t}));\n\treturn render(state.map(function(item) {\n\t\treturn /* @__PURE__ */ jsx(React.Fragment, { children: item.node }, item.name);\n\t}));\n}\n\nexport { ACTIONS, INITIAL_STATE, PortalHost, PortalProvider, usePortal };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GorhomPortal.native.js","names":[],"sources":["esm/GorhomPortal.native.js"],"sourcesContent":["import { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { NativePortalHost, NativePortalProvider, getPortal } from \"@tamagui/native\";\nimport { startTransition } from \"@tamagui/start-transition\";\nimport React, { createContext, memo, useCallback, useContext, useMemo, useReducer } from \"react\";\n\nvar ACTIONS = /* @__PURE__ */ (function(ACTIONS2) {\n\tACTIONS2[ACTIONS2[\"REGISTER_HOST\"] = 0] = \"REGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"DEREGISTER_HOST\"] = 1] = \"DEREGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"ADD_UPDATE_PORTAL\"] = 2] = \"ADD_UPDATE_PORTAL\";\n\tACTIONS2[ACTIONS2[\"REMOVE_PORTAL\"] = 3] = \"REMOVE_PORTAL\";\n\treturn ACTIONS2;\n})(ACTIONS || {});\nvar INITIAL_STATE = {};\nvar registerHost = function(state, hostName) {\n\tif (!(hostName in state)) state[hostName] = [];\n\treturn state;\n};\nvar deregisterHost = function(state, hostName) {\n\tdelete state[hostName];\n\treturn state;\n};\nvar addUpdatePortal = function(state, hostName, portalName, node) {\n\tif (!(hostName in state)) state = registerHost(state, hostName);\n\tvar index = state[hostName].findIndex(function(item) {\n\t\treturn item.name === portalName;\n\t});\n\tif (index !== -1) state[hostName][index].node = node;\n\telse state[hostName].push({\n\t\tname: portalName,\n\t\tnode\n\t});\n\treturn state;\n};\nvar removePortal = function(state, hostName, portalName) {\n\tif (!(hostName in state)) {\n\t\tif (process.env.NODE_ENV === \"development\") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);\n\t\treturn state;\n\t}\n\tvar index = state[hostName].findIndex(function(item) {\n\t\treturn item.name === portalName;\n\t});\n\tif (index !== -1) state[hostName].splice(index, 1);\n\treturn state;\n};\nvar reducer = function(state, action) {\n\tvar { type } = action;\n\tswitch (type) {\n\t\tcase 0: return registerHost({ ...state }, action.hostName);\n\t\tcase 1: return deregisterHost({ ...state }, action.hostName);\n\t\tcase 2: return addUpdatePortal({ ...state }, action.hostName, action.portalName, action.node);\n\t\tcase 3: return removePortal({ ...state }, action.hostName, action.portalName);\n\t\tdefault: return state;\n\t}\n};\nvar PortalStateContext = /* @__PURE__ */ createContext(null);\nvar PortalDispatchContext = /* @__PURE__ */ createContext(null);\nvar PortalProviderActiveContext = /* @__PURE__ */ createContext(false);\nvar usePortalState = function(hostName) {\n\tvar state = useContext(PortalStateContext);\n\tif (state === null) throw new Error(\"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.\");\n\treturn state[hostName] || [];\n};\nvar usePortal = function() {\n\tvar hostName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"root\";\n\tvar dispatch = useContext(PortalDispatchContext);\n\tif (dispatch === null) throw new Error(\"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.\");\n\tvar registerHost2 = useCallback(function() {\n\t\tdispatch({\n\t\t\ttype: 0,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tvar deregisterHost2 = useCallback(function() {\n\t\tdispatch({\n\t\t\ttype: 1,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tvar addUpdatePortal2 = useCallback(function(name, node) {\n\t\tdispatch({\n\t\t\ttype: 2,\n\t\t\thostName,\n\t\t\tportalName: name,\n\t\t\tnode\n\t\t});\n\t}, []);\n\treturn {\n\t\tregisterHost: registerHost2,\n\t\tderegisterHost: deregisterHost2,\n\t\taddPortal: addUpdatePortal2,\n\t\tupdatePortal: addUpdatePortal2,\n\t\tremovePortal: useCallback(function(name) {\n\t\t\tdispatch({\n\t\t\t\ttype: 3,\n\t\t\t\thostName,\n\t\t\t\tportalName: name\n\t\t\t});\n\t\t}, [])\n\t};\n};\nvar PortalProviderComponent = function(param) {\n\tvar { rootHostName = \"root\", shouldAddRootHost = true, children } = param;\n\tvar isAlreadyInProvider = useContext(PortalProviderActiveContext);\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (isAlreadyInProvider && shouldAddRootHost) console.warn(`[tamagui] Nested PortalProvider with shouldAddRootHost detected. This causes hydration mismatches. TamaguiProvider from 'tamagui' already includes PortalProvider - remove the explicit PortalProvider wrapper or set shouldAddRootHost={false}.`);\n\t}\n\tvar [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n\tvar transitionDispatch = useMemo(function() {\n\t\tvar next = function(value) {\n\t\t\tstartTransition(function() {\n\t\t\t\tdispatch(value);\n\t\t\t});\n\t\t};\n\t\treturn next;\n\t}, [dispatch]);\n\tvar portalState = getPortal().state;\n\tvar content = /* @__PURE__ */ jsx(PortalProviderActiveContext.Provider, {\n\t\tvalue: true,\n\t\tchildren: /* @__PURE__ */ jsx(PortalDispatchContext.Provider, {\n\t\t\tvalue: transitionDispatch,\n\t\t\tchildren: /* @__PURE__ */ jsxs(PortalStateContext.Provider, {\n\t\t\t\tvalue: state,\n\t\t\t\tchildren: [children, shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })]\n\t\t\t})\n\t\t})\n\t});\n\tif (portalState.type === \"teleport\") return /* @__PURE__ */ jsx(NativePortalProvider, { children: content });\n\treturn content;\n};\nvar PortalProvider = /* @__PURE__ */ memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\nvar defaultRenderer = function(children) {\n\treturn /* @__PURE__ */ jsx(Fragment, { children });\n};\nvar PortalHost = /* @__PURE__ */ memo(function PortalHost2(props) {\n\tif (getPortal().state.type === \"teleport\") return /* @__PURE__ */ jsx(NativePortalHost, { name: props.name });\n\treturn /* @__PURE__ */ jsx(PortalHostNonNative, { ...props });\n});\nfunction PortalHostNonNative(props) {\n\tvar { name, forwardProps, render = defaultRenderer } = props;\n\tvar state = usePortalState(name);\n\tvar { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);\n\tuseIsomorphicLayoutEffect(function() {\n\t\tregisterHost2();\n\t\treturn function() {\n\t\t\tderegisterHost2();\n\t\t};\n\t}, []);\n\tif (forwardProps) return render(state.map(function(item) {\n\t\tvar next = item.node;\n\t\tvar { children, ...restForwardProps } = forwardProps;\n\t\tif (forwardProps) return React.Children.map(next, function(child) {\n\t\t\treturn /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ React.cloneElement(child, {\n\t\t\t\tkey: child.key,\n\t\t\t\t...restForwardProps\n\t\t\t}) : child;\n\t\t});\n\t\treturn next;\n\t}));\n\treturn render(state.map(function(item) {\n\t\treturn /* @__PURE__ */ jsx(React.Fragment, { children: item.node }, item.name);\n\t}));\n}\n\nexport { ACTIONS, INITIAL_STATE, PortalHost, PortalProvider, usePortal };"],"mappings":"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"}
@@ -1,49 +1,54 @@
1
1
  import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { TamaguiRoot, useThemeName } from "@tamagui/web";
2
+ import { TamaguiRoot, formatDiagnostic, useThemeName } from "@tamagui/web";
3
3
  import { useState } from "react";
4
4
  import { createPortal } from "react-dom";
5
5
  import { allPortalHosts, portalListeners } from "./constants.mjs";
6
6
  import { jsx } from "react/jsx-runtime";
7
- const GorhomPortalItem = props => {
8
- const theme = useThemeName();
9
- if (process.env.NODE_ENV === "development") {
10
- if (!props.hostName && !props.passThrough) {
11
- console.warn(`No hostName`);
12
- }
13
- }
14
- const cur = allPortalHosts.get(props.hostName || "");
15
- const [node, setNode] = useState(cur);
16
- useIsomorphicLayoutEffect(() => {
17
- if (!props.hostName) return;
18
- const listener = newNode => {
19
- setNode(newNode);
20
- };
21
- portalListeners[props.hostName] ||= /* @__PURE__ */new Set();
22
- portalListeners[props.hostName].add(listener);
23
- const existingHost = allPortalHosts.get(props.hostName);
24
- if (existingHost && existingHost !== node) {
25
- setNode(existingHost);
26
- }
27
- return () => {
28
- portalListeners[props.hostName]?.delete(listener);
29
- };
30
- }, [props.hostName]);
31
- useIsomorphicLayoutEffect(() => {
32
- if (cur && cur !== node) {
33
- setNode(cur);
34
- }
35
- }, [cur, node]);
36
- if (props.passThrough) {
37
- return props.children;
38
- }
39
- const actualNode = node?.isConnected ? node : null;
40
- if (!actualNode) {
41
- return null;
42
- }
43
- return createPortal(/* @__PURE__ */jsx(TamaguiRoot, {
44
- theme,
45
- children: props.children
46
- }), actualNode);
7
+
8
+ const GorhomPortalItem = (props) => {
9
+ const theme = useThemeName();
10
+ if (process.env.NODE_ENV === "development") {
11
+ if (!props.hostName && !props.passThrough) {
12
+ console.warn(formatDiagnostic("TAMAGUI_PORTAL_HOST", "GorhomPortalItem", "hostName is required when passThrough is false", "Set hostName or enable passThrough", "hostName,passThrough", {
13
+ hostName: props.hostName,
14
+ passThrough: props.passThrough
15
+ }));
16
+ }
17
+ }
18
+ const cur = allPortalHosts.get(props.hostName || "");
19
+ const [node, setNode] = useState(cur);
20
+ useIsomorphicLayoutEffect(() => {
21
+ if (!props.hostName) return;
22
+ const listener = (newNode) => {
23
+ setNode(newNode);
24
+ };
25
+ portalListeners[props.hostName] ||= /* @__PURE__ */ new Set();
26
+ portalListeners[props.hostName].add(listener);
27
+ const existingHost = allPortalHosts.get(props.hostName);
28
+ if (existingHost && existingHost !== node) {
29
+ setNode(existingHost);
30
+ }
31
+ return () => {
32
+ portalListeners[props.hostName]?.delete(listener);
33
+ };
34
+ }, [props.hostName]);
35
+ useIsomorphicLayoutEffect(() => {
36
+ if (cur && cur !== node) {
37
+ setNode(cur);
38
+ }
39
+ }, [cur, node]);
40
+ if (props.passThrough) {
41
+ return props.children;
42
+ }
43
+ const actualNode = node?.isConnected ? node : null;
44
+ if (!actualNode) {
45
+ return null;
46
+ }
47
+ return createPortal(/* @__PURE__ */ jsx(TamaguiRoot, {
48
+ theme,
49
+ children: props.children
50
+ }), actualNode);
47
51
  };
52
+
48
53
  export { GorhomPortalItem };
49
54
  //# sourceMappingURL=GorhomPortalItem.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","TamaguiRoot","useThemeName","useState","createPortal","allPortalHosts","portalListeners","jsx","GorhomPortalItem","props","theme","process","env","NODE_ENV","hostName","passThrough","console","warn","cur","get","node","setNode","listener","newNode","Set","add","existingHost","delete","children","actualNode","isConnected"],"sources":["../../src/GorhomPortalItem.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,WAAA,EAAaC,YAAA,QAAoB;AAC1C,SAASC,QAAA,QAAgB;AACzB,SAASC,YAAA,QAAoB;AAC7B,SAASC,cAAA,EAAgBC,eAAA,QAAuB;AAyD5C,SAAAC,GAAA;AAtDG,MAAMC,gBAAA,GAAoBC,KAAA,IAA2B;EAC1D,MAAMC,KAAA,GAAQR,YAAA,CAAa;EAE3B,IAAIS,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;IAC1C,IAAI,CAACJ,KAAA,CAAMK,QAAA,IAAY,CAACL,KAAA,CAAMM,WAAA,EAAa;MACzCC,OAAA,CAAQC,IAAA,CAAK,aAAa;IAC5B;EACF;EAEA,MAAMC,GAAA,GAAMb,cAAA,CAAec,GAAA,CAAIV,KAAA,CAAMK,QAAA,IAAY,EAAE;EACnD,MAAM,CAACM,IAAA,EAAMC,OAAO,IAAIlB,QAAA,CAAyCe,GAAG;EAGpElB,yBAAA,CAA0B,MAAM;IAC9B,IAAI,CAACS,KAAA,CAAMK,QAAA,EAAU;IAErB,MAAMQ,QAAA,GAAYC,OAAA,IAAgC;MAChDF,OAAA,CAAQE,OAAO;IACjB;IAEAjB,eAAA,CAAgBG,KAAA,CAAMK,QAAQ,MAAM,mBAAIU,GAAA,CAAI;IAC5ClB,eAAA,CAAgBG,KAAA,CAAMK,QAAQ,EAAEW,GAAA,CAAIH,QAAQ;IAI5C,MAAMI,YAAA,GAAerB,cAAA,CAAec,GAAA,CAAIV,KAAA,CAAMK,QAAQ;IACtD,IAAIY,YAAA,IAAgBA,YAAA,KAAiBN,IAAA,EAAM;MACzCC,OAAA,CAAQK,YAAY;IACtB;IAEA,OAAO,MAAM;MACXpB,eAAA,CAAgBG,KAAA,CAAMK,QAAS,GAAGa,MAAA,CAAOL,QAAQ;IACnD;EACF,GAAG,CAACb,KAAA,CAAMK,QAAQ,CAAC;EAGnBd,yBAAA,CAA0B,MAAM;IAC9B,IAAIkB,GAAA,IAAOA,GAAA,KAAQE,IAAA,EAAM;MACvBC,OAAA,CAAQH,GAAG;IACb;EACF,GAAG,CAACA,GAAA,EAAKE,IAAI,CAAC;EAEd,IAAIX,KAAA,CAAMM,WAAA,EAAa;IACrB,OAAON,KAAA,CAAMmB,QAAA;EACf;EAGA,MAAMC,UAAA,GAAaT,IAAA,EAAMU,WAAA,GAAcV,IAAA,GAAO;EAE9C,IAAI,CAACS,UAAA,EAAY;IACf,OAAO;EACT;EAEA,OAAOzB,YAAA,CACL,eAAAG,GAAA,CAACN,WAAA;IAAYS,KAAA;IAAekB,QAAA,EAAAnB,KAAA,CAAMmB;EAAA,CAAS,GAC3CC,UACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"GorhomPortalItem.js","names":[],"sources":["esm/GorhomPortalItem.js"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { formatDiagnostic, TamaguiRoot, useThemeName } from \"@tamagui/web\";\nimport { useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { allPortalHosts, portalListeners } from \"./constants\";\nimport { jsx } from \"react/jsx-runtime\";\nconst GorhomPortalItem = (props) => {\n const theme = useThemeName();\n if (process.env.NODE_ENV === \"development\") {\n if (!props.hostName && !props.passThrough) {\n console.warn(\n formatDiagnostic(\n \"TAMAGUI_PORTAL_HOST\",\n \"GorhomPortalItem\",\n \"hostName is required when passThrough is false\",\n \"Set hostName or enable passThrough\",\n \"hostName,passThrough\",\n { hostName: props.hostName, passThrough: props.passThrough }\n )\n );\n }\n }\n const cur = allPortalHosts.get(props.hostName || \"\");\n const [node, setNode] = useState(cur);\n useIsomorphicLayoutEffect(() => {\n if (!props.hostName) return;\n const listener = (newNode) => {\n setNode(newNode);\n };\n portalListeners[props.hostName] ||= /* @__PURE__ */ new Set();\n portalListeners[props.hostName].add(listener);\n const existingHost = allPortalHosts.get(props.hostName);\n if (existingHost && existingHost !== node) {\n setNode(existingHost);\n }\n return () => {\n portalListeners[props.hostName]?.delete(listener);\n };\n }, [props.hostName]);\n useIsomorphicLayoutEffect(() => {\n if (cur && cur !== node) {\n setNode(cur);\n }\n }, [cur, node]);\n if (props.passThrough) {\n return props.children;\n }\n const actualNode = node?.isConnected ? node : null;\n if (!actualNode) {\n return null;\n }\n return createPortal(\n /* @__PURE__ */ jsx(TamaguiRoot, { theme, children: props.children }),\n actualNode\n );\n};\nexport {\n GorhomPortalItem\n};\n//# sourceMappingURL=GorhomPortalItem.js.map\n"],"mappings":";;;;;;;;AAMA,MAAM,oBAAoB,UAAU;CAClC,MAAM,QAAQ,aAAa;CAC3B,IAAI,QAAQ,IAAI,aAAa,eAAe;EAC1C,IAAI,CAAC,MAAM,YAAY,CAAC,MAAM,aAAa;GACzC,QAAQ,KACN,iBACE,uBACA,oBACA,kDACA,sCACA,wBACA;IAAE,UAAU,MAAM;IAAU,aAAa,MAAM;GAAY,CAC7D,CACF;EACF;CACF;CACA,MAAM,MAAM,eAAe,IAAI,MAAM,YAAY,EAAE;CACnD,MAAM,CAAC,MAAM,WAAW,SAAS,GAAG;CACpC,gCAAgC;EAC9B,IAAI,CAAC,MAAM,UAAU;EACrB,MAAM,YAAY,YAAY;GAC5B,QAAQ,OAAO;EACjB;EACA,gBAAgB,MAAM,8BAA8B,IAAI,IAAI;EAC5D,gBAAgB,MAAM,UAAU,IAAI,QAAQ;EAC5C,MAAM,eAAe,eAAe,IAAI,MAAM,QAAQ;EACtD,IAAI,gBAAgB,iBAAiB,MAAM;GACzC,QAAQ,YAAY;EACtB;EACA,aAAa;GACX,gBAAgB,MAAM,WAAW,OAAO,QAAQ;EAClD;CACF,GAAG,CAAC,MAAM,QAAQ,CAAC;CACnB,gCAAgC;EAC9B,IAAI,OAAO,QAAQ,MAAM;GACvB,QAAQ,GAAG;EACb;CACF,GAAG,CAAC,KAAK,IAAI,CAAC;CACd,IAAI,MAAM,aAAa;EACrB,OAAO,MAAM;CACf;CACA,MAAM,aAAa,MAAM,cAAc,OAAO;CAC9C,IAAI,CAAC,YAAY;EACf,OAAO;CACT;CACA,OAAO,aACW,oBAAI,aAAa;EAAE;EAAO,UAAU,MAAM;CAAS,CAAC,GACpE,UACF;AACF"}