@tamagui/dismissable 2.0.0-rc.9 → 2.0.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 (47) hide show
  1. package/dist/cjs/Dismissable.cjs +331 -158
  2. package/dist/cjs/Dismissable.native.js +46 -28
  3. package/dist/cjs/Dismissable.native.js.map +1 -1
  4. package/dist/cjs/DismissableProps.cjs +7 -5
  5. package/dist/cjs/DismissableProps.native.js +7 -5
  6. package/dist/cjs/DismissableProps.native.js.map +1 -1
  7. package/dist/cjs/index.cjs +7 -5
  8. package/dist/cjs/index.native.js +7 -5
  9. package/dist/cjs/index.native.js.map +1 -1
  10. package/dist/esm/Dismissable.mjs +295 -129
  11. package/dist/esm/Dismissable.mjs.map +1 -1
  12. package/dist/esm/Dismissable.native.js +18 -6
  13. package/dist/esm/Dismissable.native.js.map +1 -1
  14. package/dist/esm/index.js +1 -1
  15. package/dist/esm/index.js.map +1 -6
  16. package/dist/jsx/Dismissable.mjs +295 -129
  17. package/dist/jsx/Dismissable.mjs.map +1 -1
  18. package/dist/jsx/Dismissable.native.js +46 -28
  19. package/dist/jsx/Dismissable.native.js.map +1 -1
  20. package/dist/jsx/DismissableProps.native.js +7 -5
  21. package/dist/jsx/index.js +1 -1
  22. package/dist/jsx/index.js.map +1 -6
  23. package/dist/jsx/index.native.js +7 -5
  24. package/package.json +9 -8
  25. package/src/Dismissable.native.tsx +21 -1
  26. package/src/Dismissable.tsx +187 -33
  27. package/src/DismissableProps.tsx +10 -0
  28. package/types/Dismissable.d.ts +28 -2
  29. package/types/Dismissable.d.ts.map +1 -1
  30. package/types/Dismissable.native.d.ts +4 -0
  31. package/types/Dismissable.native.d.ts.map +1 -1
  32. package/types/DismissableProps.d.ts +10 -0
  33. package/types/DismissableProps.d.ts.map +1 -1
  34. package/dist/cjs/Dismissable.js +0 -179
  35. package/dist/cjs/Dismissable.js.map +0 -6
  36. package/dist/cjs/DismissableProps.js +0 -14
  37. package/dist/cjs/DismissableProps.js.map +0 -6
  38. package/dist/cjs/index.js +0 -15
  39. package/dist/cjs/index.js.map +0 -6
  40. package/dist/esm/Dismissable.js +0 -161
  41. package/dist/esm/Dismissable.js.map +0 -6
  42. package/dist/esm/DismissableProps.js +0 -1
  43. package/dist/esm/DismissableProps.js.map +0 -6
  44. package/dist/jsx/Dismissable.js +0 -161
  45. package/dist/jsx/Dismissable.js.map +0 -6
  46. package/dist/jsx/DismissableProps.js +0 -1
  47. package/dist/jsx/DismissableProps.js.map +0 -6
@@ -1,10 +1,22 @@
1
1
  import React from "react";
2
2
  function dispatchDiscreteCustomEvent(_target, _event) {}
3
+ function getDismissableLayerCount() {
4
+ return 0;
5
+ }
6
+ function useHasDismissableLayers() {
7
+ return false;
8
+ }
9
+ function useIsInsideDismissable(_ref) {
10
+ return false;
11
+ }
12
+ function useDismissableLayersAbove(_ref) {
13
+ return 0;
14
+ }
3
15
  var Dismissable = /* @__PURE__ */React.forwardRef(function (props, _ref) {
4
- return props.children;
5
- }),
6
- DismissableBranch = /* @__PURE__ */React.forwardRef(function (props, _ref) {
7
- return props.children;
8
- });
9
- export { Dismissable, DismissableBranch, dispatchDiscreteCustomEvent };
16
+ return props.children;
17
+ });
18
+ var DismissableBranch = /* @__PURE__ */React.forwardRef(function (props, _ref) {
19
+ return props.children;
20
+ });
21
+ export { Dismissable, DismissableBranch, dispatchDiscreteCustomEvent, getDismissableLayerCount, useDismissableLayersAbove, useHasDismissableLayers, useIsInsideDismissable };
10
22
  //# sourceMappingURL=Dismissable.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","dispatchDiscreteCustomEvent","_target","_event","Dismissable","forwardRef","props","_ref","children","DismissableBranch"],"sources":["../../src/Dismissable.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAEX,SAASC,4BAA4BC,OAAA,EAASC,MAAA,EAAQ,CAAC;AACvD,IAAIC,WAAA,GAA4B,eAAAJ,KAAA,CAAMK,UAAA,CAAW,UAASC,KAAA,EAAOC,IAAA,EAAM;IAC1E,OAAOD,KAAA,CAAME,QAAA;EACjB,CAAC;EACUC,iBAAA,GAAkC,eAAAT,KAAA,CAAMK,UAAA,CAAW,UAASC,KAAA,EAAOC,IAAA,EAAM;IAChF,OAAOD,KAAA,CAAME,QAAA;EACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","dispatchDiscreteCustomEvent","_target","_event","getDismissableLayerCount","useHasDismissableLayers","useIsInsideDismissable","_ref","useDismissableLayersAbove","Dismissable","forwardRef","props","children","DismissableBranch"],"sources":["../../src/Dismissable.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAEX,SAASC,4BAA4BC,OAAA,EAASC,MAAA,EAAQ,CAAC;AACvD,SAASC,yBAAA,EAA2B;EACvC,OAAO;AACX;AACO,SAASC,wBAAA,EAA0B;EACtC,OAAO;AACX;AACO,SAASC,uBAAuBC,IAAA,EAAM;EACzC,OAAO;AACX;AACO,SAASC,0BAA0BD,IAAA,EAAM;EAC5C,OAAO;AACX;AACO,IAAIE,WAAA,GAA4B,eAAAT,KAAA,CAAMU,UAAA,CAAW,UAASC,KAAA,EAAOJ,IAAA,EAAM;EAC1E,OAAOI,KAAA,CAAMC,QAAA;AACjB,CAAC;AACM,IAAIC,iBAAA,GAAkC,eAAAb,KAAA,CAAMU,UAAA,CAAW,UAASC,KAAA,EAAOJ,IAAA,EAAM;EAChF,OAAOI,KAAA,CAAMC,QAAA;AACjB,CAAC","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./Dismissable";
1
+ export * from "./Dismissable.mjs";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -6,150 +6,311 @@ import * as React from "react";
6
6
  import * as ReactDOM from "react-dom";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  function dispatchDiscreteCustomEvent(target, event) {
9
- target && ReactDOM.flushSync(() => target.dispatchEvent(event));
9
+ if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));
10
10
  }
11
- const DISMISSABLE_LAYER_NAME = "Dismissable",
12
- CONTEXT_UPDATE = "dismissable.update",
13
- POINTER_DOWN_OUTSIDE = "dismissable.pointerDownOutside",
14
- FOCUS_OUTSIDE = "dismissable.focusOutside";
11
+ const DISMISSABLE_LAYER_NAME = "Dismissable";
12
+ const CONTEXT_UPDATE = "dismissable.update";
13
+ const POINTER_DOWN_OUTSIDE = "dismissable.pointerDownOutside";
14
+ const FOCUS_OUTSIDE = "dismissable.focusOutside";
15
15
  let originalBodyPointerEvents;
16
+ const globalLayers = /* @__PURE__ */new Set();
17
+ const layerChangeListeners = /* @__PURE__ */new Set();
18
+ let layersWithPointerEventsDisabledCount = 0;
19
+ function notifyLayerChange() {
20
+ for (const listener of layerChangeListeners) {
21
+ listener();
22
+ }
23
+ }
24
+ function getDismissableLayerCount() {
25
+ return globalLayers.size;
26
+ }
27
+ function debugDismissableLayers() {
28
+ const layers = Array.from(globalLayers);
29
+ console.log("[Dismissable] Active layers:", layers.length, layers);
30
+ return layers;
31
+ }
32
+ function useHasDismissableLayers() {
33
+ const [count, setCount] = React.useState(() => globalLayers.size);
34
+ React.useEffect(() => {
35
+ setCount(globalLayers.size);
36
+ const update = () => setCount(globalLayers.size);
37
+ layerChangeListeners.add(update);
38
+ return () => {
39
+ layerChangeListeners.delete(update);
40
+ };
41
+ }, []);
42
+ return count > 0;
43
+ }
16
44
  const DismissableContext = React.createContext({
17
- layers: /* @__PURE__ */new Set(),
18
- layersWithOutsidePointerEventsDisabled: /* @__PURE__ */new Set(),
19
- branches: /* @__PURE__ */new Set()
20
- }),
21
- Dismissable = React.forwardRef((props, forwardedRef) => {
22
- const {
23
- disableOutsidePointerEvents = !1,
24
- forceUnmount,
25
- onEscapeKeyDown,
26
- onPointerDownOutside,
27
- onFocusOutside,
28
- onInteractOutside,
29
- onDismiss,
30
- asChild,
31
- children,
32
- ...layerProps
33
- } = props,
34
- Comp = asChild ? Slot : View,
35
- context = React.useContext(DismissableContext),
36
- [node, setNode] = React.useState(null),
37
- [, force] = React.useState({}),
38
- composedRefs = useComposedRefs(forwardedRef, node2 => setNode(node2)),
39
- layers = Array.from(context.layers),
40
- [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1),
41
- highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled),
42
- index = node ? layers.indexOf(node) : -1,
43
- isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0,
44
- isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex,
45
- pointerDownOutside = usePointerDownOutside(event => {
46
- const target = event.target,
47
- isPointerDownOnBranch = [...context.branches].some(branch => branch.contains(target));
48
- !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
49
- }),
50
- focusOutside = useFocusOutside(event => {
51
- const target = event.target;
52
- [...context.branches].some(branch => branch.contains(target)) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
53
- });
54
- return useEscapeKeydown(event => {
55
- const currentLayers = Array.from(context.layers);
56
- (node ? currentLayers.indexOf(node) : -1) === currentLayers.length - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
57
- }), React.useEffect(() => {
58
- if (node) return disableOutsidePointerEvents && (context.layersWithOutsidePointerEventsDisabled.size === 0 && (originalBodyPointerEvents = document.body.style.pointerEvents, document.body.style.pointerEvents = "none"), context.layersWithOutsidePointerEventsDisabled.add(node)), context.layers.add(node), dispatchUpdate(), () => {
59
- disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
60
- };
61
- }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
62
- if (!forceUnmount) return () => {
63
- node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
64
- };
65
- }, [node, context, forceUnmount]), React.useEffect(() => {
66
- const handleUpdate = () => {
45
+ layers: /* @__PURE__ */new Set(),
46
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */new Set(),
47
+ branches: /* @__PURE__ */new Set()
48
+ });
49
+ function useIsInsideDismissable(ref) {
50
+ const context = React.useContext(DismissableContext);
51
+ const [isInside, setIsInside] = React.useState(false);
52
+ React.useEffect(() => {
53
+ const check = () => {
54
+ const el = ref.current;
55
+ if (!el) {
56
+ setIsInside(false);
57
+ return;
58
+ }
59
+ for (const layer of context.layers) {
60
+ if (layer.contains(el)) {
61
+ setIsInside(true);
62
+ return;
63
+ }
64
+ }
65
+ setIsInside(false);
66
+ };
67
+ check();
68
+ document.addEventListener(CONTEXT_UPDATE, check);
69
+ return () => document.removeEventListener(CONTEXT_UPDATE, check);
70
+ }, [context.layers, ref]);
71
+ return isInside;
72
+ }
73
+ function useDismissableLayersAbove(ref) {
74
+ const context = React.useContext(DismissableContext);
75
+ const [count, setCount] = React.useState(0);
76
+ React.useEffect(() => {
77
+ const check = () => {
78
+ const el = ref.current;
79
+ if (!el) {
80
+ setCount(0);
81
+ return;
82
+ }
83
+ let above = 0;
84
+ for (const layer of context.layers) {
85
+ if (layer.contains(el)) {
86
+ above++;
87
+ }
88
+ }
89
+ setCount(above);
90
+ };
91
+ check();
92
+ document.addEventListener(CONTEXT_UPDATE, check);
93
+ return () => document.removeEventListener(CONTEXT_UPDATE, check);
94
+ }, [context.layers, ref]);
95
+ return count;
96
+ }
97
+ const Dismissable = React.forwardRef((props, forwardedRef) => {
98
+ const {
99
+ disableOutsidePointerEvents = false,
100
+ forceUnmount,
101
+ onEscapeKeyDown,
102
+ onPointerDownOutside,
103
+ onFocusOutside,
104
+ onInteractOutside,
105
+ onDismiss,
106
+ asChild,
107
+ children,
108
+ branches: branchesProp,
109
+ ...layerProps
110
+ } = props;
111
+ const Comp = asChild ? Slot : View;
112
+ const context = React.useContext(DismissableContext);
113
+ const [node, setNode] = React.useState(null);
114
+ const [, force] = React.useState({});
115
+ const composedRefs = useComposedRefs(forwardedRef, node2 => setNode(node2));
116
+ const layers = Array.from(context.layers);
117
+ const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
118
+ const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
119
+ const index = node ? layers.indexOf(node) : -1;
120
+ const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
121
+ const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
122
+ const pointerDownOutside = usePointerDownOutside(event => {
123
+ const target = event.target;
124
+ const branches = branchesProp || context.branches;
125
+ const isPointerDownOnBranch = [...branches].some(branch => branch.contains(target));
126
+ if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
127
+ onPointerDownOutside?.(event);
128
+ onInteractOutside?.(event);
129
+ if (!event.defaultPrevented) onDismiss?.();
130
+ });
131
+ const focusOutside = useFocusOutside(event => {
132
+ const target = event.target;
133
+ const branches = branchesProp || context.branches;
134
+ const isFocusInBranch = [...branches].some(branch => branch.contains(target));
135
+ if (isFocusInBranch) return;
136
+ onFocusOutside?.(event);
137
+ onInteractOutside?.(event);
138
+ if (!event.defaultPrevented) onDismiss?.();
139
+ });
140
+ const forceUnmountRef = React.useRef(forceUnmount);
141
+ React.useEffect(() => {
142
+ forceUnmountRef.current = forceUnmount;
143
+ }, [forceUnmount]);
144
+ useEscapeKeydown(event => {
145
+ if (forceUnmountRef.current) return;
146
+ const currentLayers = Array.from(context.layers);
147
+ const currentIndex = node ? currentLayers.indexOf(node) : -1;
148
+ const isHighestLayer = currentIndex === currentLayers.length - 1;
149
+ if (!isHighestLayer) return;
150
+ onEscapeKeyDown?.(event);
151
+ if (!event.defaultPrevented && onDismiss) {
152
+ event.preventDefault();
153
+ onDismiss();
154
+ }
155
+ });
156
+ React.useEffect(() => {
157
+ if (!node) return;
158
+ if (forceUnmount) return;
159
+ if (disableOutsidePointerEvents) {
160
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
161
+ originalBodyPointerEvents = document.body.style.pointerEvents;
162
+ document.body.style.pointerEvents = "none";
163
+ }
164
+ context.layersWithOutsidePointerEventsDisabled.add(node);
165
+ layersWithPointerEventsDisabledCount++;
166
+ }
167
+ context.layers.add(node);
168
+ globalLayers.add(node);
169
+ if (disableOutsidePointerEvents || layersWithPointerEventsDisabledCount > 0) {
170
+ dispatchUpdate();
171
+ }
172
+ notifyLayerChange();
173
+ return () => {
174
+ if (disableOutsidePointerEvents) {
175
+ if (context.layersWithOutsidePointerEventsDisabled.size === 1) {
176
+ document.body.style.pointerEvents = originalBodyPointerEvents;
177
+ }
178
+ }
179
+ };
180
+ }, [node, disableOutsidePointerEvents, forceUnmount, context]);
181
+ React.useEffect(() => {
182
+ if (forceUnmount) return;
183
+ return () => {
184
+ if (!node) return;
185
+ const hadPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.has(node);
186
+ context.layers.delete(node);
187
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
188
+ globalLayers.delete(node);
189
+ if (layersWithPointerEventsDisabledCount > 0) {
190
+ dispatchUpdate();
191
+ }
192
+ notifyLayerChange();
193
+ if (hadPointerEventsDisabled) {
194
+ layersWithPointerEventsDisabledCount--;
195
+ }
196
+ };
197
+ }, [node, context, forceUnmount]);
198
+ React.useEffect(() => {
199
+ const handleUpdate = () => {
200
+ if (layersWithPointerEventsDisabledCount > 0) {
67
201
  force({});
68
- };
69
- return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
70
- }, []), /* @__PURE__ */jsx(Comp, {
71
- ...layerProps,
72
- ref: composedRefs,
73
- display: "contents",
74
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
75
- onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
76
- onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
77
- onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture),
78
- children
79
- });
202
+ }
203
+ };
204
+ document.addEventListener(CONTEXT_UPDATE, handleUpdate);
205
+ return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
206
+ }, []);
207
+ return /* @__PURE__ */jsx(Comp, {
208
+ ...layerProps,
209
+ ref: composedRefs,
210
+ ...(!asChild && {
211
+ display: "contents"
212
+ }),
213
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
214
+ onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
215
+ onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
216
+ onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture),
217
+ children
80
218
  });
219
+ });
81
220
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
82
- const BRANCH_NAME = "DismissableBranch",
83
- DismissableBranch = React.forwardRef((props, forwardedRef) => {
84
- const context = React.useContext(DismissableContext),
85
- ref = React.useRef(null),
86
- composedRefs = useComposedRefs(forwardedRef, ref);
87
- return React.useEffect(() => {
88
- const node = ref.current;
89
- if (node) return context.branches.add(node), () => {
90
- context.branches.delete(node);
221
+ const BRANCH_NAME = "DismissableBranch";
222
+ const DismissableBranch = React.forwardRef((props, forwardedRef) => {
223
+ const {
224
+ branches: branchesProp,
225
+ ...rest
226
+ } = props;
227
+ const context = React.useContext(DismissableContext);
228
+ const ref = React.useRef(null);
229
+ const composedRefs = useComposedRefs(forwardedRef, ref);
230
+ React.useEffect(() => {
231
+ const node = ref.current;
232
+ if (!(node instanceof HTMLElement)) return;
233
+ const branches = branchesProp || context.branches;
234
+ if (node && branches) {
235
+ branches.add(node);
236
+ return () => {
237
+ branches.delete(node);
91
238
  };
92
- }, [context.branches]), /* @__PURE__ */jsx("div", {
93
- style: {
94
- display: "contents"
95
- },
96
- ...props,
97
- ref: composedRefs
98
- });
239
+ }
240
+ }, [branchesProp, context.branches]);
241
+ return /* @__PURE__ */jsx(View, {
242
+ asChild: "except-style",
243
+ ...rest,
244
+ ref: composedRefs
99
245
  });
246
+ });
100
247
  DismissableBranch.displayName = BRANCH_NAME;
101
248
  function usePointerDownOutside(onPointerDownOutside) {
102
- const handlePointerDownOutside = useEvent(onPointerDownOutside),
103
- isPointerInsideReactTreeRef = React.useRef(!1),
104
- handleClickRef = React.useRef(() => {});
105
- return React.useEffect(() => {
249
+ const handlePointerDownOutside = useEvent(onPointerDownOutside);
250
+ const isPointerInsideReactTreeRef = React.useRef(false);
251
+ const handleClickRef = React.useRef(() => {});
252
+ React.useEffect(() => {
106
253
  const handlePointerDown = event => {
107
- if (event.target && !isPointerInsideReactTreeRef.current) {
108
- let handleAndDispatchPointerDownOutsideEvent = function () {
109
- handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
110
- discrete: !0
111
- });
112
- };
113
- const eventDetail = {
114
- originalEvent: event
115
- };
116
- event.pointerType === "touch" ? (document.removeEventListener("click", handleClickRef.current), handleClickRef.current = handleAndDispatchPointerDownOutsideEvent, document.addEventListener("click", handleClickRef.current, {
117
- once: !0
118
- })) : handleAndDispatchPointerDownOutsideEvent();
254
+ if (event.target && !isPointerInsideReactTreeRef.current) {
255
+ let handleAndDispatchPointerDownOutsideEvent = function () {
256
+ handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
257
+ discrete: true
258
+ });
259
+ };
260
+ const eventDetail = {
261
+ originalEvent: event
262
+ };
263
+ if (event.pointerType === "touch") {
264
+ document.removeEventListener("click", handleClickRef.current);
265
+ handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;
266
+ document.addEventListener("click", handleClickRef.current, {
267
+ once: true
268
+ });
269
+ } else {
270
+ handleAndDispatchPointerDownOutsideEvent();
119
271
  }
120
- isPointerInsideReactTreeRef.current = !1;
121
- },
122
- timerId = setTimeout(() => {
123
- document.addEventListener("pointerdown", handlePointerDown);
124
- }, 0);
272
+ }
273
+ isPointerInsideReactTreeRef.current = false;
274
+ };
275
+ const timerId = setTimeout(() => {
276
+ document.addEventListener("pointerdown", handlePointerDown);
277
+ }, 0);
125
278
  return () => {
126
- window.clearTimeout(timerId), document.removeEventListener("pointerdown", handlePointerDown), document.removeEventListener("click", handleClickRef.current);
279
+ window.clearTimeout(timerId);
280
+ document.removeEventListener("pointerdown", handlePointerDown);
281
+ document.removeEventListener("click", handleClickRef.current);
127
282
  };
128
- }, [handlePointerDownOutside]), {
283
+ }, [handlePointerDownOutside]);
284
+ return {
129
285
  // ensures we check React component tree (not just DOM tree)
130
286
  onPointerDownCapture: () => {
131
- isPointerInsideReactTreeRef.current = !0;
287
+ isPointerInsideReactTreeRef.current = true;
132
288
  }
133
289
  };
134
290
  }
135
291
  function useFocusOutside(onFocusOutside) {
136
- const handleFocusOutside = useEvent(onFocusOutside),
137
- isFocusInsideReactTreeRef = React.useRef(!1);
138
- return React.useEffect(() => {
292
+ const handleFocusOutside = useEvent(onFocusOutside);
293
+ const isFocusInsideReactTreeRef = React.useRef(false);
294
+ React.useEffect(() => {
139
295
  const handleFocus = event => {
140
- event.target && !isFocusInsideReactTreeRef.current && handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, {
141
- originalEvent: event
142
- }, {
143
- discrete: !1
144
- });
296
+ if (event.target && !isFocusInsideReactTreeRef.current) {
297
+ const eventDetail = {
298
+ originalEvent: event
299
+ };
300
+ handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
301
+ discrete: false
302
+ });
303
+ }
145
304
  };
146
- return document.addEventListener("focusin", handleFocus), () => document.removeEventListener("focusin", handleFocus);
147
- }, [handleFocusOutside]), {
305
+ document.addEventListener("focusin", handleFocus);
306
+ return () => document.removeEventListener("focusin", handleFocus);
307
+ }, [handleFocusOutside]);
308
+ return {
148
309
  onFocusCapture: () => {
149
- isFocusInsideReactTreeRef.current = !0;
310
+ isFocusInsideReactTreeRef.current = true;
150
311
  },
151
312
  onBlurCapture: () => {
152
- isFocusInsideReactTreeRef.current = !1;
313
+ isFocusInsideReactTreeRef.current = false;
153
314
  }
154
315
  };
155
316
  }
@@ -160,15 +321,20 @@ function dispatchUpdate() {
160
321
  function handleAndDispatchCustomEvent(name, handler, detail, {
161
322
  discrete
162
323
  }) {
163
- const target = detail.originalEvent.target,
164
- event = new CustomEvent(name, {
165
- bubbles: !1,
166
- cancelable: !0,
167
- detail
168
- });
169
- handler && target.addEventListener(name, handler, {
170
- once: !0
171
- }), discrete ? dispatchDiscreteCustomEvent(target, event) : target.dispatchEvent(event);
324
+ const target = detail.originalEvent.target;
325
+ const event = new CustomEvent(name, {
326
+ bubbles: false,
327
+ cancelable: true,
328
+ detail
329
+ });
330
+ if (handler) target.addEventListener(name, handler, {
331
+ once: true
332
+ });
333
+ if (discrete) {
334
+ dispatchDiscreteCustomEvent(target, event);
335
+ } else {
336
+ target.dispatchEvent(event);
337
+ }
172
338
  }
173
- export { Dismissable, DismissableBranch, dispatchDiscreteCustomEvent };
339
+ export { Dismissable, DismissableBranch, debugDismissableLayers, dispatchDiscreteCustomEvent, getDismissableLayerCount, useDismissableLayersAbove, useHasDismissableLayers, useIsInsideDismissable };
174
340
  //# sourceMappingURL=Dismissable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","Slot","View","composeEventHandlers","useEscapeKeydown","useEvent","React","ReactDOM","jsx","dispatchDiscreteCustomEvent","target","event","flushSync","dispatchEvent","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableContext","createContext","layers","Set","layersWithOutsidePointerEventsDisabled","branches","Dismissable","forwardRef","props","forwardedRef","disableOutsidePointerEvents","forceUnmount","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","asChild","children","layerProps","Comp","context","useContext","node","setNode","useState","force","composedRefs","node2","Array","from","highestLayerWithOutsidePointerEventsDisabled","slice","highestLayerWithOutsidePointerEventsDisabledIndex","indexOf","index","isBodyPointerEventsDisabled","size","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","some","branch","contains","defaultPrevented","focusOutside","useFocusOutside","currentLayers","length","preventDefault","useEffect","document","body","style","pointerEvents","add","dispatchUpdate","delete","handleUpdate","addEventListener","removeEventListener","ref","display","onFocusCapture","onBlurCapture","onPointerDownCapture","displayName","BRANCH_NAME","DismissableBranch","useRef","current","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent","handleAndDispatchCustomEvent","eventDetail","discrete","originalEvent","pointerType","once","timerId","setTimeout","window","clearTimeout","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","CustomEvent","name","handler","detail","bubbles","cancelable"],"sources":["../../src/Dismissable.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useComposedRefs","Slot","View","composeEventHandlers","useEscapeKeydown","useEvent","React","ReactDOM","jsx","dispatchDiscreteCustomEvent","target","event","flushSync","dispatchEvent","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","globalLayers","Set","layerChangeListeners","layersWithPointerEventsDisabledCount","notifyLayerChange","listener","getDismissableLayerCount","size","debugDismissableLayers","layers","Array","from","console","log","length","useHasDismissableLayers","count","setCount","useState","useEffect","update","add","delete","DismissableContext","createContext","layersWithOutsidePointerEventsDisabled","branches","useIsInsideDismissable","ref","context","useContext","isInside","setIsInside","check","el","current","layer","contains","document","addEventListener","removeEventListener","useDismissableLayersAbove","above","Dismissable","forwardRef","props","forwardedRef","disableOutsidePointerEvents","forceUnmount","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","asChild","children","branchesProp","layerProps","Comp","node","setNode","force","composedRefs","node2","highestLayerWithOutsidePointerEventsDisabled","slice","highestLayerWithOutsidePointerEventsDisabledIndex","indexOf","index","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","some","branch","defaultPrevented","focusOutside","useFocusOutside","isFocusInBranch","forceUnmountRef","useRef","currentLayers","currentIndex","isHighestLayer","preventDefault","body","style","pointerEvents","dispatchUpdate","hadPointerEventsDisabled","has","handleUpdate","display","onFocusCapture","onBlurCapture","onPointerDownCapture","displayName","BRANCH_NAME","DismissableBranch","rest","HTMLElement","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent","handleAndDispatchCustomEvent","eventDetail","discrete","originalEvent","pointerType","once","timerId","setTimeout","window","clearTimeout","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","CustomEvent","name","handler","detail","bubbles","cancelable"],"sources":["../../src/Dismissable.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}