@tamagui/dismissable 1.142.0 → 2.0.0-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,7 +37,7 @@ __export(Dismissable_exports, {
37
37
  });
38
38
  module.exports = __toCommonJS(Dismissable_exports);
39
39
  var import_compose_refs = require("@tamagui/compose-refs"),
40
- import_helpers = require("@tamagui/helpers"),
40
+ import_core = require("@tamagui/core"),
41
41
  import_use_escape_keydown = require("@tamagui/use-escape-keydown"),
42
42
  import_use_event = require("@tamagui/use-event"),
43
43
  React = __toESM(require("react"), 1),
@@ -65,8 +65,11 @@ const DismissableContext = React.createContext({
65
65
  onFocusOutside,
66
66
  onInteractOutside,
67
67
  onDismiss,
68
+ asChild,
69
+ children,
68
70
  ...layerProps
69
71
  } = props,
72
+ Comp = asChild ? import_core.Slot : import_core.Stack,
70
73
  context = React.useContext(DismissableContext),
71
74
  [node, setNode] = React.useState(null),
72
75
  [, force] = React.useState({}),
@@ -101,18 +104,15 @@ const DismissableContext = React.createContext({
101
104
  force({});
102
105
  };
103
106
  return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
104
- }, []), /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
107
+ }, []), /* @__PURE__ */(0, import_jsx_runtime.jsx)(Comp, {
105
108
  ...layerProps,
106
109
  ref: composedRefs,
107
- style: {
108
- display: "contents",
109
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
110
- // @ts-ignore
111
- ...props.style
112
- },
113
- onFocusCapture: (0, import_helpers.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),
114
- onBlurCapture: (0, import_helpers.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),
115
- onPointerDownCapture: (0, import_helpers.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
110
+ display: "contents",
111
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
112
+ onFocusCapture: (0, import_core.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),
113
+ onBlurCapture: (0, import_core.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),
114
+ onPointerDownCapture: (0, import_core.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture),
115
+ children
116
116
  });
117
117
  });
118
118
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
@@ -27,7 +27,7 @@ __export(Dismissable_exports, {
27
27
  dispatchDiscreteCustomEvent: () => dispatchDiscreteCustomEvent
28
28
  });
29
29
  module.exports = __toCommonJS(Dismissable_exports);
30
- var import_compose_refs = require("@tamagui/compose-refs"), import_helpers = require("@tamagui/helpers"), import_use_escape_keydown = require("@tamagui/use-escape-keydown"), import_use_event = require("@tamagui/use-event"), React = __toESM(require("react"), 1), ReactDOM = __toESM(require("react-dom"), 1), import_jsx_runtime = require("react/jsx-runtime");
30
+ var import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_use_escape_keydown = require("@tamagui/use-escape-keydown"), import_use_event = require("@tamagui/use-event"), React = __toESM(require("react"), 1), ReactDOM = __toESM(require("react-dom"), 1), import_jsx_runtime = require("react/jsx-runtime");
31
31
  function dispatchDiscreteCustomEvent(target, event) {
32
32
  target && ReactDOM.flushSync(() => target.dispatchEvent(event));
33
33
  }
@@ -37,76 +37,73 @@ const DismissableContext = React.createContext({
37
37
  layers: /* @__PURE__ */ new Set(),
38
38
  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
39
39
  branches: /* @__PURE__ */ new Set()
40
- }), Dismissable = React.forwardRef(
41
- (props, forwardedRef) => {
42
- const {
43
- disableOutsidePointerEvents = !1,
44
- forceUnmount,
45
- onEscapeKeyDown,
46
- onPointerDownOutside,
47
- onFocusOutside,
48
- onInteractOutside,
49
- onDismiss,
50
- ...layerProps
51
- } = props, context = React.useContext(DismissableContext), [node, setNode] = React.useState(null), [, force] = React.useState({}), composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [
52
- ...context.layersWithOutsidePointerEventsDisabled
53
- ].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
54
- highestLayerWithOutsidePointerEventsDisabled
55
- ), index = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
56
- const target = event.target, isPointerDownOnBranch = [...context.branches].some(
57
- (branch) => branch.contains(target)
58
- );
59
- !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
60
- }), focusOutside = useFocusOutside((event) => {
61
- const target = event.target;
62
- [...context.branches].some(
63
- (branch) => branch.contains(target)
64
- ) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
65
- });
66
- return (0, import_use_escape_keydown.useEscapeKeydown)((event) => {
67
- index === context.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
68
- }), React.useEffect(() => {
69
- if (node)
70
- 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(), () => {
71
- disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
72
- };
73
- }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
74
- if (!forceUnmount)
75
- return () => {
76
- node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
77
- };
78
- }, [node, context, forceUnmount]), React.useEffect(() => {
79
- const handleUpdate = () => {
80
- force({});
81
- };
82
- return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
83
- }, []), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
- "div",
85
- {
86
- ...layerProps,
87
- ref: composedRefs,
88
- style: {
89
- display: "contents",
90
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
91
- // @ts-ignore
92
- ...props.style
93
- },
94
- onFocusCapture: (0, import_helpers.composeEventHandlers)(
95
- props.onFocusCapture,
96
- focusOutside.onFocusCapture
97
- ),
98
- onBlurCapture: (0, import_helpers.composeEventHandlers)(
99
- props.onBlurCapture,
100
- focusOutside.onBlurCapture
101
- ),
102
- onPointerDownCapture: (0, import_helpers.composeEventHandlers)(
103
- props.onPointerDownCapture,
104
- pointerDownOutside.onPointerDownCapture
105
- )
106
- }
40
+ }), Dismissable = React.forwardRef((props, forwardedRef) => {
41
+ const {
42
+ disableOutsidePointerEvents = !1,
43
+ forceUnmount,
44
+ onEscapeKeyDown,
45
+ onPointerDownOutside,
46
+ onFocusOutside,
47
+ onInteractOutside,
48
+ onDismiss,
49
+ asChild,
50
+ children,
51
+ ...layerProps
52
+ } = props, Comp = asChild ? import_core.Slot : import_core.Stack, context = React.useContext(DismissableContext), [node, setNode] = React.useState(null), [, force] = React.useState({}), composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [
53
+ ...context.layersWithOutsidePointerEventsDisabled
54
+ ].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
55
+ highestLayerWithOutsidePointerEventsDisabled
56
+ ), index = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
57
+ const target = event.target, isPointerDownOnBranch = [...context.branches].some(
58
+ (branch) => branch.contains(target)
107
59
  );
108
- }
109
- );
60
+ !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
61
+ }), focusOutside = useFocusOutside((event) => {
62
+ const target = event.target;
63
+ [...context.branches].some(
64
+ (branch) => branch.contains(target)
65
+ ) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
66
+ });
67
+ return (0, import_use_escape_keydown.useEscapeKeydown)((event) => {
68
+ index === context.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
69
+ }), React.useEffect(() => {
70
+ if (node)
71
+ 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(), () => {
72
+ disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
73
+ };
74
+ }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
75
+ if (!forceUnmount)
76
+ return () => {
77
+ node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
78
+ };
79
+ }, [node, context, forceUnmount]), React.useEffect(() => {
80
+ const handleUpdate = () => {
81
+ force({});
82
+ };
83
+ return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
84
+ }, []), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ Comp,
86
+ {
87
+ ...layerProps,
88
+ ref: composedRefs,
89
+ display: "contents",
90
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
91
+ onFocusCapture: (0, import_core.composeEventHandlers)(
92
+ props.onFocusCapture,
93
+ focusOutside.onFocusCapture
94
+ ),
95
+ onBlurCapture: (0, import_core.composeEventHandlers)(
96
+ props.onBlurCapture,
97
+ focusOutside.onBlurCapture
98
+ ),
99
+ onPointerDownCapture: (0, import_core.composeEventHandlers)(
100
+ props.onPointerDownCapture,
101
+ pointerDownOutside.onPointerDownCapture
102
+ ),
103
+ children
104
+ }
105
+ );
106
+ });
110
107
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
111
108
  const BRANCH_NAME = "DismissableBranch", DismissableBranch = React.forwardRef(
112
109
  (props, forwardedRef) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Dismissable.tsx"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAgC,kCAChC,cAAkD,0BAClD,4BAAiC,wCACjC,mBAAyB,+BACzB,QAAuB,8BACvB,WAA0B,kCA8ItB;AA1IG,SAAS,4BACd,QACA,OACA;AACA,EAAI,UAAQ,SAAS,UAAU,MAAM,OAAO,cAAc,KAAK,CAAC;AAClE;AAMA,MAAM,yBAAyB,eACzB,iBAAiB,sBACjB,uBAAuB,kCACvB,gBAAgB;AAEtB,IAAI;AAEJ,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC7C,QAAQ,oBAAI,IAAoB;AAAA,EAChC,wCAAwC,oBAAI,IAAoB;AAAA,EAChE,UAAU,oBAAI,IAAoB;AACpC,CAAC,GAEK,cAAc,MAAM,WAGxB,CAAC,OAAO,iBAAiB;AACzB,QAAM;AAAA,IACJ,8BAA8B;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,OAAQ,UAAU,mBAAO,mBACzB,UAAU,MAAM,WAAW,kBAAkB,GAC7C,CAAC,MAAM,OAAO,IAAI,MAAM,SAAgC,IAAI,GAC5D,CAAC,EAAE,KAAK,IAAI,MAAM,SAAS,CAAC,CAAC,GAC7B,mBAAe,qCAAgB,cAAc,CAACA,UAAS,QAAQA,KAAI,CAAC,GACpE,SAAS,MAAM,KAAK,QAAQ,MAAM,GAElC,CAAC,4CAA4C,IAAI;AAAA,IACrD,GAAG,QAAQ;AAAA,EACb,EAAE,MAAM,EAAE,GACJ,oDAAoD,OAAO;AAAA,IAC/D;AAAA,EACF,GAEM,QAAQ,OAAO,OAAO,QAAQ,IAAI,IAAI,IACtC,8BACJ,QAAQ,uCAAuC,OAAO,GAClD,yBACJ,SAAS,mDAEL,qBAAqB,sBAAsB,CAAC,UAAU;AAC1D,UAAM,SAAS,MAAM,QACf,wBAAwB,CAAC,GAAG,QAAQ,QAAQ,EAAE;AAAA,MAAK,CAAC,WACxD,OAAO,SAAS,MAAM;AAAA,IACxB;AACA,IAAI,CAAC,0BAA0B,0BAC/B,uBAAuB,KAAK,GAC5B,oBAAoB,KAAK,GACpB,MAAM,oBAAkB,YAAY;AAAA,EAC3C,CAAC,GAEK,eAAe,gBAAgB,CAAC,UAAU;AAC9C,UAAM,SAAS,MAAM;AAIrB,IAHwB,CAAC,GAAG,QAAQ,QAAQ,EAAE;AAAA,MAAK,CAAC,WAClD,OAAO,SAAS,MAAM;AAAA,IACxB,MAEA,iBAAiB,KAAK,GACtB,oBAAoB,KAAK,GACpB,MAAM,oBAAkB,YAAY;AAAA,EAC3C,CAAC;AAED,yDAAiB,CAAC,UAAU;AAE1B,IADuB,UAAU,QAAQ,OAAO,OAAO,MAEvD,kBAAkB,KAAK,GACnB,CAAC,MAAM,oBAAoB,cAC7B,MAAM,eAAe,GACrB,UAAU;AAAA,EAEd,CAAC,GAED,MAAM,UAAU,MAAM;AACpB,QAAK;AACL,aAAI,gCACE,QAAQ,uCAAuC,SAAS,MAC1D,4BAA4B,SAAS,KAAK,MAAM,eAChD,SAAS,KAAK,MAAM,gBAAgB,SAEtC,QAAQ,uCAAuC,IAAI,IAAI,IAEzD,QAAQ,OAAO,IAAI,IAAI,GACvB,eAAe,GACR,MAAM;AACX,QACE,+BACA,QAAQ,uCAAuC,SAAS,MAExD,SAAS,KAAK,MAAM,gBAAgB;AAAA,MAExC;AAAA,EACF,GAAG,CAAC,MAAM,6BAA6B,OAAO,CAAC,GAQ/C,MAAM,UAAU,MAAM;AACpB,QAAI;AACJ,aAAO,MAAM;AACX,QAAK,SACL,QAAQ,OAAO,OAAO,IAAI,GAC1B,QAAQ,uCAAuC,OAAO,IAAI,GAC1D,eAAe;AAAA,MACjB;AAAA,EACF,GAAG,CAAC,MAAM,SAAS,YAAY,CAAC,GAEhC,MAAM,UAAU,MAAM;AACpB,UAAM,eAAe,MAAM;AACzB,YAAM,CAAC,CAAC;AAAA,IACV;AACA,oBAAS,iBAAiB,gBAAgB,YAAY,GAC/C,MAAM,SAAS,oBAAoB,gBAAgB,YAAY;AAAA,EACxE,GAAG,CAAC,CAAC,GAGH;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MAEJ,KAAK;AAAA,MACL,SAAQ;AAAA,MACR,eACE,8BACI,yBACE,SACA,SACF;AAAA,MAEN,oBAAgB;AAAA,QACd,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,mBAAe;AAAA,QACb,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,0BAAsB;AAAA,QACpB,MAAM;AAAA,QACN,mBAAmB;AAAA,MACrB;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ,CAAC;AAED,YAAY,cAAc;AAM1B,MAAM,cAAc,qBAEd,oBAAoB,MAAM;AAAA,EAC9B,CAAC,OAAO,iBAAiB;AACvB,UAAM,UAAU,MAAM,WAAW,kBAAkB,GAC7C,MAAM,MAAM,OAAuB,IAAI,GACvC,mBAAe,qCAAgB,cAAc,GAAG;AAEtD,iBAAM,UAAU,MAAM;AACpB,YAAM,OAAO,IAAI;AACjB,UAAI;AACF,uBAAQ,SAAS,IAAI,IAAI,GAClB,MAAM;AACX,kBAAQ,SAAS,OAAO,IAAI;AAAA,QAC9B;AAAA,IAEJ,GAAG,CAAC,QAAQ,QAAQ,CAAC,GAEd,4CAAC,SAAI,OAAO,EAAE,SAAS,WAAW,GAAI,GAAG,OAAO,KAAK,cAAc;AAAA,EAC5E;AACF;AAEA,kBAAkB,cAAc;AAYhC,SAAS,sBACP,sBACA;AACA,QAAM,+BAA2B,2BAAS,oBAAoB,GACxD,8BAA8B,MAAM,OAAO,EAAK,GAChD,iBAAiB,MAAM,OAAO,MAAM;AAAA,EAAC,CAAC;AAE5C,eAAM,UAAU,MAAM;AACpB,UAAM,oBAAoB,CAAC,UAAwB;AACjD,UAAI,MAAM,UAAU,CAAC,4BAA4B,SAAS;AAGxD,YAAS,2CAAT,WAAoD;AAClD;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA,EAAE,UAAU,GAAK;AAAA,UACnB;AAAA,QACF;AATA,cAAM,cAAc,EAAE,eAAe,MAAM;AAuB3C,QAAI,MAAM,gBAAgB,WACxB,SAAS,oBAAoB,SAAS,eAAe,OAAO,GAC5D,eAAe,UAAU,0CACzB,SAAS,iBAAiB,SAAS,eAAe,SAAS,EAAE,MAAM,GAAK,CAAC,KAEzE,yCAAyC;AAAA,MAE7C;AACA,kCAA4B,UAAU;AAAA,IACxC,GAcM,UAAU,WAAW,MAAM;AAC/B,eAAS,iBAAiB,eAAe,iBAAiB;AAAA,IAC5D,GAAG,CAAC;AACJ,WAAO,MAAM;AACX,aAAO,aAAa,OAAO,GAC3B,SAAS,oBAAoB,eAAe,iBAAiB,GAC7D,SAAS,oBAAoB,SAAS,eAAe,OAAO;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC,wBAAwB,CAAC,GAEtB;AAAA;AAAA,IAEL,sBAAsB,MAAM;AAC1B,kCAA4B,UAAU;AAAA,IACxC;AAAA,EACF;AACF;AAMA,SAAS,gBAAgB,gBAAqD;AAC5E,QAAM,yBAAqB,2BAAS,cAAc,GAC5C,4BAA4B,MAAM,OAAO,EAAK;AAEpD,eAAM,UAAU,MAAM;AACpB,UAAM,cAAc,CAAC,UAAsB;AACzC,MAAI,MAAM,UAAU,CAAC,0BAA0B,WAE7C,6BAA6B,eAAe,oBADxB,EAAE,eAAe,MAAM,GACkC;AAAA,QAC3E,UAAU;AAAA,MACZ,CAAC;AAAA,IAEL;AACA,oBAAS,iBAAiB,WAAW,WAAW,GACzC,MAAM,SAAS,oBAAoB,WAAW,WAAW;AAAA,EAClE,GAAG,CAAC,kBAAkB,CAAC,GAEhB;AAAA,IACL,gBAAgB,MAAM;AACpB,gCAA0B,UAAU;AAAA,IACtC;AAAA,IACA,eAAe,MAAM;AACnB,gCAA0B,UAAU;AAAA,IACtC;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB;AACxB,QAAM,QAAQ,IAAI,YAAY,cAAc;AAC5C,WAAS,cAAc,KAAK;AAC9B;AAEA,SAAS,6BACP,MACA,SACA,QACA,EAAE,SAAS,GACX;AACA,QAAM,SAAS,OAAO,cAAc,QAC9B,QAAQ,IAAI,YAAY,MAAM,EAAE,SAAS,IAAO,YAAY,IAAM,OAAO,CAAC;AAChF,EAAI,WAAS,OAAO,iBAAiB,MAAM,SAA0B,EAAE,MAAM,GAAK,CAAC,GAE/E,WACF,4BAA4B,QAAQ,KAAK,IAEzC,OAAO,cAAc,KAAK;AAE9B;",
5
5
  "names": ["node"]
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { composeEventHandlers } from "@tamagui/helpers";
2
+ import { Slot, Stack, composeEventHandlers } from "@tamagui/core";
3
3
  import { useEscapeKeydown } from "@tamagui/use-escape-keydown";
4
4
  import { useEvent } from "@tamagui/use-event";
5
5
  import * as React from "react";
@@ -14,76 +14,73 @@ const DismissableContext = React.createContext({
14
14
  layers: /* @__PURE__ */ new Set(),
15
15
  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
16
16
  branches: /* @__PURE__ */ new Set()
17
- }), Dismissable = React.forwardRef(
18
- (props, forwardedRef) => {
19
- const {
20
- disableOutsidePointerEvents = !1,
21
- forceUnmount,
22
- onEscapeKeyDown,
23
- onPointerDownOutside,
24
- onFocusOutside,
25
- onInteractOutside,
26
- onDismiss,
27
- ...layerProps
28
- } = props, context = React.useContext(DismissableContext), [node, setNode] = React.useState(null), [, force] = React.useState({}), composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [
29
- ...context.layersWithOutsidePointerEventsDisabled
30
- ].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
31
- highestLayerWithOutsidePointerEventsDisabled
32
- ), index = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
33
- const target = event.target, isPointerDownOnBranch = [...context.branches].some(
34
- (branch) => branch.contains(target)
35
- );
36
- !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
37
- }), focusOutside = useFocusOutside((event) => {
38
- const target = event.target;
39
- [...context.branches].some(
40
- (branch) => branch.contains(target)
41
- ) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
42
- });
43
- return useEscapeKeydown((event) => {
44
- index === context.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
45
- }), React.useEffect(() => {
46
- if (node)
47
- 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(), () => {
48
- disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
49
- };
50
- }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
51
- if (!forceUnmount)
52
- return () => {
53
- node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
54
- };
55
- }, [node, context, forceUnmount]), React.useEffect(() => {
56
- const handleUpdate = () => {
57
- force({});
58
- };
59
- return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
60
- }, []), /* @__PURE__ */ jsx(
61
- "div",
62
- {
63
- ...layerProps,
64
- ref: composedRefs,
65
- style: {
66
- display: "contents",
67
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
68
- // @ts-ignore
69
- ...props.style
70
- },
71
- onFocusCapture: composeEventHandlers(
72
- props.onFocusCapture,
73
- focusOutside.onFocusCapture
74
- ),
75
- onBlurCapture: composeEventHandlers(
76
- props.onBlurCapture,
77
- focusOutside.onBlurCapture
78
- ),
79
- onPointerDownCapture: composeEventHandlers(
80
- props.onPointerDownCapture,
81
- pointerDownOutside.onPointerDownCapture
82
- )
83
- }
17
+ }), Dismissable = React.forwardRef((props, forwardedRef) => {
18
+ const {
19
+ disableOutsidePointerEvents = !1,
20
+ forceUnmount,
21
+ onEscapeKeyDown,
22
+ onPointerDownOutside,
23
+ onFocusOutside,
24
+ onInteractOutside,
25
+ onDismiss,
26
+ asChild,
27
+ children,
28
+ ...layerProps
29
+ } = props, Comp = asChild ? Slot : Stack, context = React.useContext(DismissableContext), [node, setNode] = React.useState(null), [, force] = React.useState({}), composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [
30
+ ...context.layersWithOutsidePointerEventsDisabled
31
+ ].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
32
+ highestLayerWithOutsidePointerEventsDisabled
33
+ ), index = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
34
+ const target = event.target, isPointerDownOnBranch = [...context.branches].some(
35
+ (branch) => branch.contains(target)
84
36
  );
85
- }
86
- );
37
+ !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
38
+ }), focusOutside = useFocusOutside((event) => {
39
+ const target = event.target;
40
+ [...context.branches].some(
41
+ (branch) => branch.contains(target)
42
+ ) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
43
+ });
44
+ return useEscapeKeydown((event) => {
45
+ index === context.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
46
+ }), React.useEffect(() => {
47
+ if (node)
48
+ 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(), () => {
49
+ disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
50
+ };
51
+ }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
52
+ if (!forceUnmount)
53
+ return () => {
54
+ node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
55
+ };
56
+ }, [node, context, forceUnmount]), React.useEffect(() => {
57
+ const handleUpdate = () => {
58
+ force({});
59
+ };
60
+ return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
61
+ }, []), /* @__PURE__ */ jsx(
62
+ Comp,
63
+ {
64
+ ...layerProps,
65
+ ref: composedRefs,
66
+ display: "contents",
67
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
68
+ onFocusCapture: composeEventHandlers(
69
+ props.onFocusCapture,
70
+ focusOutside.onFocusCapture
71
+ ),
72
+ onBlurCapture: composeEventHandlers(
73
+ props.onBlurCapture,
74
+ focusOutside.onBlurCapture
75
+ ),
76
+ onPointerDownCapture: composeEventHandlers(
77
+ props.onPointerDownCapture,
78
+ pointerDownOutside.onPointerDownCapture
79
+ ),
80
+ children
81
+ }
82
+ );
83
+ });
87
84
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
88
85
  const BRANCH_NAME = "DismissableBranch", DismissableBranch = React.forwardRef(
89
86
  (props, forwardedRef) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Dismissable.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["node"]
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { composeEventHandlers } from "@tamagui/helpers";
2
+ import { Slot, Stack, composeEventHandlers } from "@tamagui/core";
3
3
  import { useEscapeKeydown } from "@tamagui/use-escape-keydown";
4
4
  import { useEvent } from "@tamagui/use-event";
5
5
  import * as React from "react";
@@ -27,8 +27,11 @@ const DismissableContext = React.createContext({
27
27
  onFocusOutside,
28
28
  onInteractOutside,
29
29
  onDismiss,
30
+ asChild,
31
+ children,
30
32
  ...layerProps
31
33
  } = props,
34
+ Comp = asChild ? Slot : Stack,
32
35
  context = React.useContext(DismissableContext),
33
36
  [node, setNode] = React.useState(null),
34
37
  [, force] = React.useState({}),
@@ -63,18 +66,15 @@ const DismissableContext = React.createContext({
63
66
  force({});
64
67
  };
65
68
  return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
66
- }, []), /* @__PURE__ */jsx("div", {
69
+ }, []), /* @__PURE__ */jsx(Comp, {
67
70
  ...layerProps,
68
71
  ref: composedRefs,
69
- style: {
70
- display: "contents",
71
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
72
- // @ts-ignore
73
- ...props.style
74
- },
72
+ display: "contents",
73
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
75
74
  onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
76
75
  onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
77
- onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
76
+ onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture),
77
+ children
78
78
  });
79
79
  });
80
80
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","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","layerProps","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","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":"AAGA,SAASA,eAAA,QAAuB;AAChC,SAASC,oBAAA,QAA4B;AACrC,SAASC,gBAAA,QAAwB;AACjC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AACvB,YAAYC,QAAA,MAAc;AAyIpB,SAAAC,GAAA;AArIC,SAASC,4BACdC,MAAA,EACAC,KAAA,EACA;EACID,MAAA,IAAQH,QAAA,CAASK,SAAA,CAAU,MAAMF,MAAA,CAAOG,aAAA,CAAcF,KAAK,CAAC;AAClE;AAMA,MAAMG,sBAAA,GAAyB;EACzBC,cAAA,GAAiB;EACjBC,oBAAA,GAAuB;EACvBC,aAAA,GAAgB;AAEtB,IAAIC,yBAAA;AAEJ,MAAMC,kBAAA,GAAqBb,KAAA,CAAMc,aAAA,CAAc;IAC7CC,MAAA,EAAQ,mBAAIC,GAAA,CAAoB;IAChCC,sCAAA,EAAwC,mBAAID,GAAA,CAAoB;IAChEE,QAAA,EAAU,mBAAIF,GAAA,CAAoB;EACpC,CAAC;EAEKG,WAAA,GAAcnB,KAAA,CAAMoB,UAAA,CACxB,CAACC,KAAA,EAAOC,YAAA,KAAiB;IACvB,MAAM;QACJC,2BAAA,GAA8B;QAC9BC,YAAA;QACAC,eAAA;QACAC,oBAAA;QACAC,cAAA;QACAC,iBAAA;QACAC,SAAA;QACA,GAAGC;MACL,IAAIT,KAAA;MACEU,OAAA,GAAU/B,KAAA,CAAMgC,UAAA,CAAWnB,kBAAkB;MAC7C,CAACoB,IAAA,EAAMC,OAAO,IAAIlC,KAAA,CAAMmC,QAAA,CAAgC,IAAI;MAC5D,GAAGC,KAAK,IAAIpC,KAAA,CAAMmC,QAAA,CAAS,CAAC,CAAC;MAC7BE,YAAA,GAAezC,eAAA,CAAgB0B,YAAA,EAAegB,KAAA,IAASJ,OAAA,CAAQI,KAAI,CAAC;MACpEvB,MAAA,GAASwB,KAAA,CAAMC,IAAA,CAAKT,OAAA,CAAQhB,MAAM;MAElC,CAAC0B,4CAA4C,IAAI,CACrD,GAAGV,OAAA,CAAQd,sCAAA,CACb,CAAEyB,KAAA,CAAM,EAAE;MACJC,iDAAA,GAAoD5B,MAAA,CAAO6B,OAAA,CAC/DH,4CACF;MAEMI,KAAA,GAAQZ,IAAA,GAAOlB,MAAA,CAAO6B,OAAA,CAAQX,IAAI,IAAI;MACtCa,2BAAA,GACJf,OAAA,CAAQd,sCAAA,CAAuC8B,IAAA,GAAO;MAClDC,sBAAA,GACJH,KAAA,IAASF,iDAAA;MAELM,kBAAA,GAAqBC,qBAAA,CAAuB7C,KAAA,IAAU;QAC1D,MAAMD,MAAA,GAASC,KAAA,CAAMD,MAAA;UACf+C,qBAAA,GAAwB,CAAC,GAAGpB,OAAA,CAAQb,QAAQ,EAAEkC,IAAA,CAAMC,MAAA,IACxDA,MAAA,CAAOC,QAAA,CAASlD,MAAM,CACxB;QACI,CAAC4C,sBAAA,IAA0BG,qBAAA,KAC/BzB,oBAAA,GAAuBrB,KAAK,GAC5BuB,iBAAA,GAAoBvB,KAAK,GACpBA,KAAA,CAAMkD,gBAAA,IAAkB1B,SAAA,GAAY;MAC3C,CAAC;MAEK2B,YAAA,GAAeC,eAAA,CAAiBpD,KAAA,IAAU;QAC9C,MAAMD,MAAA,GAASC,KAAA,CAAMD,MAAA;QACG,CAAC,GAAG2B,OAAA,CAAQb,QAAQ,EAAEkC,IAAA,CAAMC,MAAA,IAClDA,MAAA,CAAOC,QAAA,CAASlD,MAAM,CACxB,MAEAuB,cAAA,GAAiBtB,KAAK,GACtBuB,iBAAA,GAAoBvB,KAAK,GACpBA,KAAA,CAAMkD,gBAAA,IAAkB1B,SAAA,GAAY;MAC3C,CAAC;IAED,OAAA/B,gBAAA,CAAkBO,KAAA,IAAU;MACHwC,KAAA,KAAUd,OAAA,CAAQhB,MAAA,CAAOgC,IAAA,GAAO,MAEvDtB,eAAA,GAAkBpB,KAAK,GACnB,CAACA,KAAA,CAAMkD,gBAAA,IAAoB1B,SAAA,KAC7BxB,KAAA,CAAMqD,cAAA,CAAe,GACrB7B,SAAA,CAAU;IAEd,CAAC,GAED7B,KAAA,CAAM2D,SAAA,CAAU,MAAM;MACpB,IAAK1B,IAAA,EACL,OAAIV,2BAAA,KACEQ,OAAA,CAAQd,sCAAA,CAAuC8B,IAAA,KAAS,MAC1DnC,yBAAA,GAA4BgD,QAAA,CAASC,IAAA,CAAKC,KAAA,CAAMC,aAAA,EAChDH,QAAA,CAASC,IAAA,CAAKC,KAAA,CAAMC,aAAA,GAAgB,SAEtChC,OAAA,CAAQd,sCAAA,CAAuC+C,GAAA,CAAI/B,IAAI,IAEzDF,OAAA,CAAQhB,MAAA,CAAOiD,GAAA,CAAI/B,IAAI,GACvBgC,cAAA,CAAe,GACR,MAAM;QAET1C,2BAAA,IACAQ,OAAA,CAAQd,sCAAA,CAAuC8B,IAAA,KAAS,MAExDa,QAAA,CAASC,IAAA,CAAKC,KAAA,CAAMC,aAAA,GAAgBnD,yBAAA;MAExC;IACF,GAAG,CAACqB,IAAA,EAAMV,2BAAA,EAA6BQ,OAAO,CAAC,GAQ/C/B,KAAA,CAAM2D,SAAA,CAAU,MAAM;MACpB,IAAI,CAAAnC,YAAA,EACJ,OAAO,MAAM;QACNS,IAAA,KACLF,OAAA,CAAQhB,MAAA,CAAOmD,MAAA,CAAOjC,IAAI,GAC1BF,OAAA,CAAQd,sCAAA,CAAuCiD,MAAA,CAAOjC,IAAI,GAC1DgC,cAAA,CAAe;MACjB;IACF,GAAG,CAAChC,IAAA,EAAMF,OAAA,EAASP,YAAY,CAAC,GAEhCxB,KAAA,CAAM2D,SAAA,CAAU,MAAM;MACpB,MAAMQ,YAAA,GAAeA,CAAA,KAAM;QACzB/B,KAAA,CAAM,CAAC,CAAC;MACV;MACA,OAAAwB,QAAA,CAASQ,gBAAA,CAAiB3D,cAAA,EAAgB0D,YAAY,GAC/C,MAAMP,QAAA,CAASS,mBAAA,CAAoB5D,cAAA,EAAgB0D,YAAY;IACxE,GAAG,EAAE,GAGH,eAAAjE,GAAA,CAAC;MACE,GAAG4B,UAAA;MAEJwC,GAAA,EAAKjC,YAAA;MACLyB,KAAA,EAAO;QACLS,OAAA,EAAS;QACTR,aAAA,EAAejB,2BAAA,GACXE,sBAAA,GACE,SACA,SACF;QAAA;QAEJ,GAAG3B,KAAA,CAAMyC;MACX;MACAU,cAAA,EAAgB3E,oBAAA,CACdwB,KAAA,CAAMmD,cAAA,EACNhB,YAAA,CAAagB,cACf;MACAC,aAAA,EAAe5E,oBAAA,CACbwB,KAAA,CAAMoD,aAAA,EACNjB,YAAA,CAAaiB,aACf;MACAC,oBAAA,EAAsB7E,oBAAA,CACpBwB,KAAA,CAAMqD,oBAAA,EACNzB,kBAAA,CAAmByB,oBACrB;IAAA,CACF;EAEJ,CACF;AAEAvD,WAAA,CAAYwD,WAAA,GAAcnE,sBAAA;AAM1B,MAAMoE,WAAA,GAAc;EAEdC,iBAAA,GAAoB7E,KAAA,CAAMoB,UAAA,CAC9B,CAACC,KAAA,EAAOC,YAAA,KAAiB;IACvB,MAAMS,OAAA,GAAU/B,KAAA,CAAMgC,UAAA,CAAWnB,kBAAkB;MAC7CyD,GAAA,GAAMtE,KAAA,CAAM8E,MAAA,CAAuB,IAAI;MACvCzC,YAAA,GAAezC,eAAA,CAAgB0B,YAAA,EAAcgD,GAAG;IAEtD,OAAAtE,KAAA,CAAM2D,SAAA,CAAU,MAAM;MACpB,MAAM1B,IAAA,GAAOqC,GAAA,CAAIS,OAAA;MACjB,IAAI9C,IAAA,EACF,OAAAF,OAAA,CAAQb,QAAA,CAAS8C,GAAA,CAAI/B,IAAI,GAClB,MAAM;QACXF,OAAA,CAAQb,QAAA,CAASgD,MAAA,CAAOjC,IAAI;MAC9B;IAEJ,GAAG,CAACF,OAAA,CAAQb,QAAQ,CAAC,GAEd,eAAAhB,GAAA,CAAC;MAAI4D,KAAA,EAAO;QAAES,OAAA,EAAS;MAAW;MAAI,GAAGlD,KAAA;MAAOiD,GAAA,EAAKjC;IAAA,CAAc;EAC5E,CACF;AAEAwC,iBAAA,CAAkBF,WAAA,GAAcC,WAAA;AAYhC,SAAS1B,sBACPxB,oBAAA,EACA;EACA,MAAMsD,wBAAA,GAA2BjF,QAAA,CAAS2B,oBAAoB;IACxDuD,2BAAA,GAA8BjF,KAAA,CAAM8E,MAAA,CAAO,EAAK;IAChDI,cAAA,GAAiBlF,KAAA,CAAM8E,MAAA,CAAO,MAAM,CAAC,CAAC;EAE5C,OAAA9E,KAAA,CAAM2D,SAAA,CAAU,MAAM;IACpB,MAAMwB,iBAAA,GAAqB9E,KAAA,IAAwB;QACjD,IAAIA,KAAA,CAAMD,MAAA,IAAU,CAAC6E,2BAAA,CAA4BF,OAAA,EAAS;UAGxD,IAASK,wCAAA,GAAT,SAAAA,CAAA,EAAoD;YAClDC,4BAAA,CACE3E,oBAAA,EACAsE,wBAAA,EACAM,WAAA,EACA;cAAEC,QAAA,EAAU;YAAK,CACnB;UACF;UATA,MAAMD,WAAA,GAAc;YAAEE,aAAA,EAAenF;UAAM;UAuBvCA,KAAA,CAAMoF,WAAA,KAAgB,WACxB7B,QAAA,CAASS,mBAAA,CAAoB,SAASa,cAAA,CAAeH,OAAO,GAC5DG,cAAA,CAAeH,OAAA,GAAUK,wCAAA,EACzBxB,QAAA,CAASQ,gBAAA,CAAiB,SAASc,cAAA,CAAeH,OAAA,EAAS;YAAEW,IAAA,EAAM;UAAK,CAAC,KAEzEN,wCAAA,CAAyC;QAE7C;QACAH,2BAAA,CAA4BF,OAAA,GAAU;MACxC;MAcMY,OAAA,GAAUC,UAAA,CAAW,MAAM;QAC/BhC,QAAA,CAASQ,gBAAA,CAAiB,eAAee,iBAAiB;MAC5D,GAAG,CAAC;IACJ,OAAO,MAAM;MACXU,MAAA,CAAOC,YAAA,CAAaH,OAAO,GAC3B/B,QAAA,CAASS,mBAAA,CAAoB,eAAec,iBAAiB,GAC7DvB,QAAA,CAASS,mBAAA,CAAoB,SAASa,cAAA,CAAeH,OAAO;IAC9D;EACF,GAAG,CAACC,wBAAwB,CAAC,GAEtB;IAAA;IAELN,oBAAA,EAAsBA,CAAA,KAAM;MAC1BO,2BAAA,CAA4BF,OAAA,GAAU;IACxC;EACF;AACF;AAMA,SAAStB,gBAAgB9B,cAAA,EAAqD;EAC5E,MAAMoE,kBAAA,GAAqBhG,QAAA,CAAS4B,cAAc;IAC5CqE,yBAAA,GAA4BhG,KAAA,CAAM8E,MAAA,CAAO,EAAK;EAEpD,OAAA9E,KAAA,CAAM2D,SAAA,CAAU,MAAM;IACpB,MAAMsC,WAAA,GAAe5F,KAAA,IAAsB;MACrCA,KAAA,CAAMD,MAAA,IAAU,CAAC4F,yBAAA,CAA0BjB,OAAA,IAE7CM,4BAAA,CAA6B1E,aAAA,EAAeoF,kBAAA,EADxB;QAAEP,aAAA,EAAenF;MAAM,GACkC;QAC3EkF,QAAA,EAAU;MACZ,CAAC;IAEL;IACA,OAAA3B,QAAA,CAASQ,gBAAA,CAAiB,WAAW6B,WAAW,GACzC,MAAMrC,QAAA,CAASS,mBAAA,CAAoB,WAAW4B,WAAW;EAClE,GAAG,CAACF,kBAAkB,CAAC,GAEhB;IACLvB,cAAA,EAAgBA,CAAA,KAAM;MACpBwB,yBAAA,CAA0BjB,OAAA,GAAU;IACtC;IACAN,aAAA,EAAeA,CAAA,KAAM;MACnBuB,yBAAA,CAA0BjB,OAAA,GAAU;IACtC;EACF;AACF;AAEA,SAASd,eAAA,EAAiB;EACxB,MAAM5D,KAAA,GAAQ,IAAI6F,WAAA,CAAYzF,cAAc;EAC5CmD,QAAA,CAASrD,aAAA,CAAcF,KAAK;AAC9B;AAEA,SAASgF,6BACPc,IAAA,EACAC,OAAA,EACAC,MAAA,EACA;EAAEd;AAAS,GACX;EACA,MAAMnF,MAAA,GAASiG,MAAA,CAAOb,aAAA,CAAcpF,MAAA;IAC9BC,KAAA,GAAQ,IAAI6F,WAAA,CAAYC,IAAA,EAAM;MAAEG,OAAA,EAAS;MAAOC,UAAA,EAAY;MAAMF;IAAO,CAAC;EAC5ED,OAAA,IAAShG,MAAA,CAAOgE,gBAAA,CAAiB+B,IAAA,EAAMC,OAAA,EAA0B;IAAEV,IAAA,EAAM;EAAK,CAAC,GAE/EH,QAAA,GACFpF,2BAAA,CAA4BC,MAAA,EAAQC,KAAK,IAEzCD,MAAA,CAAOG,aAAA,CAAcF,KAAK;AAE9B","ignoreList":[]}
1
+ {"version":3,"names":["useComposedRefs","Slot","Stack","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","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,5 +1,5 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { composeEventHandlers } from "@tamagui/helpers";
2
+ import { Slot, Stack, composeEventHandlers } from "@tamagui/core";
3
3
  import { useEscapeKeydown } from "@tamagui/use-escape-keydown";
4
4
  import { useEvent } from "@tamagui/use-event";
5
5
  import * as React from "react";
@@ -14,76 +14,73 @@ const DismissableContext = React.createContext({
14
14
  layers: /* @__PURE__ */ new Set(),
15
15
  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
16
16
  branches: /* @__PURE__ */ new Set()
17
- }), Dismissable = React.forwardRef(
18
- (props, forwardedRef) => {
19
- const {
20
- disableOutsidePointerEvents = !1,
21
- forceUnmount,
22
- onEscapeKeyDown,
23
- onPointerDownOutside,
24
- onFocusOutside,
25
- onInteractOutside,
26
- onDismiss,
27
- ...layerProps
28
- } = props, context = React.useContext(DismissableContext), [node, setNode] = React.useState(null), [, force] = React.useState({}), composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [
29
- ...context.layersWithOutsidePointerEventsDisabled
30
- ].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
31
- highestLayerWithOutsidePointerEventsDisabled
32
- ), index = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
33
- const target = event.target, isPointerDownOnBranch = [...context.branches].some(
34
- (branch) => branch.contains(target)
35
- );
36
- !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
37
- }), focusOutside = useFocusOutside((event) => {
38
- const target = event.target;
39
- [...context.branches].some(
40
- (branch) => branch.contains(target)
41
- ) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
42
- });
43
- return useEscapeKeydown((event) => {
44
- index === context.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
45
- }), React.useEffect(() => {
46
- if (node)
47
- 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(), () => {
48
- disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
49
- };
50
- }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
51
- if (!forceUnmount)
52
- return () => {
53
- node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
54
- };
55
- }, [node, context, forceUnmount]), React.useEffect(() => {
56
- const handleUpdate = () => {
57
- force({});
58
- };
59
- return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
60
- }, []), /* @__PURE__ */ jsx(
61
- "div",
62
- {
63
- ...layerProps,
64
- ref: composedRefs,
65
- style: {
66
- display: "contents",
67
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
68
- // @ts-ignore
69
- ...props.style
70
- },
71
- onFocusCapture: composeEventHandlers(
72
- props.onFocusCapture,
73
- focusOutside.onFocusCapture
74
- ),
75
- onBlurCapture: composeEventHandlers(
76
- props.onBlurCapture,
77
- focusOutside.onBlurCapture
78
- ),
79
- onPointerDownCapture: composeEventHandlers(
80
- props.onPointerDownCapture,
81
- pointerDownOutside.onPointerDownCapture
82
- )
83
- }
17
+ }), Dismissable = React.forwardRef((props, forwardedRef) => {
18
+ const {
19
+ disableOutsidePointerEvents = !1,
20
+ forceUnmount,
21
+ onEscapeKeyDown,
22
+ onPointerDownOutside,
23
+ onFocusOutside,
24
+ onInteractOutside,
25
+ onDismiss,
26
+ asChild,
27
+ children,
28
+ ...layerProps
29
+ } = props, Comp = asChild ? Slot : Stack, context = React.useContext(DismissableContext), [node, setNode] = React.useState(null), [, force] = React.useState({}), composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [
30
+ ...context.layersWithOutsidePointerEventsDisabled
31
+ ].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
32
+ highestLayerWithOutsidePointerEventsDisabled
33
+ ), index = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
34
+ const target = event.target, isPointerDownOnBranch = [...context.branches].some(
35
+ (branch) => branch.contains(target)
84
36
  );
85
- }
86
- );
37
+ !isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
38
+ }), focusOutside = useFocusOutside((event) => {
39
+ const target = event.target;
40
+ [...context.branches].some(
41
+ (branch) => branch.contains(target)
42
+ ) || (onFocusOutside?.(event), onInteractOutside?.(event), event.defaultPrevented || onDismiss?.());
43
+ });
44
+ return useEscapeKeydown((event) => {
45
+ index === context.layers.size - 1 && (onEscapeKeyDown?.(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
46
+ }), React.useEffect(() => {
47
+ if (node)
48
+ 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(), () => {
49
+ disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
50
+ };
51
+ }, [node, disableOutsidePointerEvents, context]), React.useEffect(() => {
52
+ if (!forceUnmount)
53
+ return () => {
54
+ node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
55
+ };
56
+ }, [node, context, forceUnmount]), React.useEffect(() => {
57
+ const handleUpdate = () => {
58
+ force({});
59
+ };
60
+ return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
61
+ }, []), /* @__PURE__ */ jsx(
62
+ Comp,
63
+ {
64
+ ...layerProps,
65
+ ref: composedRefs,
66
+ display: "contents",
67
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
68
+ onFocusCapture: composeEventHandlers(
69
+ props.onFocusCapture,
70
+ focusOutside.onFocusCapture
71
+ ),
72
+ onBlurCapture: composeEventHandlers(
73
+ props.onBlurCapture,
74
+ focusOutside.onBlurCapture
75
+ ),
76
+ onPointerDownCapture: composeEventHandlers(
77
+ props.onPointerDownCapture,
78
+ pointerDownOutside.onPointerDownCapture
79
+ ),
80
+ children
81
+ }
82
+ );
83
+ });
87
84
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
88
85
  const BRANCH_NAME = "DismissableBranch", DismissableBranch = React.forwardRef(
89
86
  (props, forwardedRef) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Dismissable.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["node"]
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { composeEventHandlers } from "@tamagui/helpers";
2
+ import { Slot, Stack, composeEventHandlers } from "@tamagui/core";
3
3
  import { useEscapeKeydown } from "@tamagui/use-escape-keydown";
4
4
  import { useEvent } from "@tamagui/use-event";
5
5
  import * as React from "react";
@@ -27,8 +27,11 @@ const DismissableContext = React.createContext({
27
27
  onFocusOutside,
28
28
  onInteractOutside,
29
29
  onDismiss,
30
+ asChild,
31
+ children,
30
32
  ...layerProps
31
33
  } = props,
34
+ Comp = asChild ? Slot : Stack,
32
35
  context = React.useContext(DismissableContext),
33
36
  [node, setNode] = React.useState(null),
34
37
  [, force] = React.useState({}),
@@ -63,18 +66,15 @@ const DismissableContext = React.createContext({
63
66
  force({});
64
67
  };
65
68
  return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
66
- }, []), /* @__PURE__ */jsx("div", {
69
+ }, []), /* @__PURE__ */jsx(Comp, {
67
70
  ...layerProps,
68
71
  ref: composedRefs,
69
- style: {
70
- display: "contents",
71
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
72
- // @ts-ignore
73
- ...props.style
74
- },
72
+ display: "contents",
73
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
75
74
  onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
76
75
  onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
77
- onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
76
+ onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture),
77
+ children
78
78
  });
79
79
  });
80
80
  Dismissable.displayName = DISMISSABLE_LAYER_NAME;
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","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","layerProps","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","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","Stack","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","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/dismissable",
3
- "version": "1.142.0",
3
+ "version": "2.0.0-001",
4
4
  "type": "module",
5
5
  "sideEffects": true,
6
6
  "source": "src/index.ts",
@@ -37,14 +37,14 @@
37
37
  }
38
38
  },
39
39
  "dependencies": {
40
- "@tamagui/compose-refs": "1.142.0",
41
- "@tamagui/core": "1.142.0",
42
- "@tamagui/helpers": "1.142.0",
43
- "@tamagui/use-escape-keydown": "1.142.0",
44
- "@tamagui/use-event": "1.142.0"
40
+ "@tamagui/compose-refs": "2.0.0-001",
41
+ "@tamagui/core": "2.0.0-001",
42
+ "@tamagui/helpers": "2.0.0-001",
43
+ "@tamagui/use-escape-keydown": "2.0.0-001",
44
+ "@tamagui/use-event": "2.0.0-001"
45
45
  },
46
46
  "devDependencies": {
47
- "@tamagui/build": "1.142.0",
47
+ "@tamagui/build": "2.0.0-001",
48
48
  "react": "*",
49
49
  "react-dom": "*"
50
50
  },
@@ -2,7 +2,7 @@
2
2
  // https://github.com/radix-ui/primitives/blob/cfd8dcba5fa6a0e751486af418d05a7b88a7f541/packages/react/dismissable-layer/src/DismissableLayer.tsx#L324
3
3
 
4
4
  import { useComposedRefs } from '@tamagui/compose-refs'
5
- import { composeEventHandlers } from '@tamagui/helpers'
5
+ import { Slot, Stack, composeEventHandlers } from '@tamagui/core'
6
6
  import { useEscapeKeydown } from '@tamagui/use-escape-keydown'
7
7
  import { useEvent } from '@tamagui/use-event'
8
8
  import * as React from 'react'
@@ -34,145 +34,149 @@ const DismissableContext = React.createContext({
34
34
  branches: new Set<HTMLDivElement>(),
35
35
  })
36
36
 
37
- const Dismissable = React.forwardRef<HTMLDivElement, DismissableProps>(
38
- (props, forwardedRef) => {
39
- const {
40
- disableOutsidePointerEvents = false,
41
- forceUnmount,
42
- onEscapeKeyDown,
43
- onPointerDownOutside,
44
- onFocusOutside,
45
- onInteractOutside,
46
- onDismiss,
47
- ...layerProps
48
- } = props
49
- const context = React.useContext(DismissableContext)
50
- const [node, setNode] = React.useState<HTMLDivElement | null>(null)
51
- const [, force] = React.useState({})
52
- const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node))
53
- const layers = Array.from(context.layers)
54
-
55
- const [highestLayerWithOutsidePointerEventsDisabled] = [
56
- ...context.layersWithOutsidePointerEventsDisabled,
57
- ].slice(-1)
58
- const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
59
- highestLayerWithOutsidePointerEventsDisabled
37
+ const Dismissable = React.forwardRef<
38
+ HTMLDivElement,
39
+ DismissableProps & { asChild?: boolean }
40
+ >((props, forwardedRef) => {
41
+ const {
42
+ disableOutsidePointerEvents = false,
43
+ forceUnmount,
44
+ onEscapeKeyDown,
45
+ onPointerDownOutside,
46
+ onFocusOutside,
47
+ onInteractOutside,
48
+ onDismiss,
49
+ asChild,
50
+ children,
51
+ ...layerProps
52
+ } = props
53
+ const Comp = (asChild ? Slot : Stack) as any
54
+ const context = React.useContext(DismissableContext)
55
+ const [node, setNode] = React.useState<HTMLDivElement | null>(null)
56
+ const [, force] = React.useState({})
57
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node))
58
+ const layers = Array.from(context.layers)
59
+
60
+ const [highestLayerWithOutsidePointerEventsDisabled] = [
61
+ ...context.layersWithOutsidePointerEventsDisabled,
62
+ ].slice(-1)
63
+ const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(
64
+ highestLayerWithOutsidePointerEventsDisabled
65
+ )
66
+
67
+ const index = node ? layers.indexOf(node) : -1
68
+ const isBodyPointerEventsDisabled =
69
+ context.layersWithOutsidePointerEventsDisabled.size > 0
70
+ const isPointerEventsEnabled =
71
+ index >= highestLayerWithOutsidePointerEventsDisabledIndex
72
+
73
+ const pointerDownOutside = usePointerDownOutside((event) => {
74
+ const target = event.target as HTMLDivElement
75
+ const isPointerDownOnBranch = [...context.branches].some((branch) =>
76
+ branch.contains(target)
60
77
  )
78
+ if (!isPointerEventsEnabled || isPointerDownOnBranch) return
79
+ onPointerDownOutside?.(event)
80
+ onInteractOutside?.(event)
81
+ if (!event.defaultPrevented) onDismiss?.()
82
+ })
83
+
84
+ const focusOutside = useFocusOutside((event) => {
85
+ const target = event.target as HTMLDivElement
86
+ const isFocusInBranch = [...context.branches].some((branch) =>
87
+ branch.contains(target)
88
+ )
89
+ if (isFocusInBranch) return
90
+ onFocusOutside?.(event)
91
+ onInteractOutside?.(event)
92
+ if (!event.defaultPrevented) onDismiss?.()
93
+ })
94
+
95
+ useEscapeKeydown((event) => {
96
+ const isHighestLayer = index === context.layers.size - 1
97
+ if (!isHighestLayer) return
98
+ onEscapeKeyDown?.(event)
99
+ if (!event.defaultPrevented && onDismiss) {
100
+ event.preventDefault()
101
+ onDismiss()
102
+ }
103
+ })
61
104
 
62
- const index = node ? layers.indexOf(node) : -1
63
- const isBodyPointerEventsDisabled =
64
- context.layersWithOutsidePointerEventsDisabled.size > 0
65
- const isPointerEventsEnabled =
66
- index >= highestLayerWithOutsidePointerEventsDisabledIndex
67
-
68
- const pointerDownOutside = usePointerDownOutside((event) => {
69
- const target = event.target as HTMLDivElement
70
- const isPointerDownOnBranch = [...context.branches].some((branch) =>
71
- branch.contains(target)
72
- )
73
- if (!isPointerEventsEnabled || isPointerDownOnBranch) return
74
- onPointerDownOutside?.(event)
75
- onInteractOutside?.(event)
76
- if (!event.defaultPrevented) onDismiss?.()
77
- })
78
-
79
- const focusOutside = useFocusOutside((event) => {
80
- const target = event.target as HTMLDivElement
81
- const isFocusInBranch = [...context.branches].some((branch) =>
82
- branch.contains(target)
83
- )
84
- if (isFocusInBranch) return
85
- onFocusOutside?.(event)
86
- onInteractOutside?.(event)
87
- if (!event.defaultPrevented) onDismiss?.()
88
- })
89
-
90
- useEscapeKeydown((event) => {
91
- const isHighestLayer = index === context.layers.size - 1
92
- if (!isHighestLayer) return
93
- onEscapeKeyDown?.(event)
94
- if (!event.defaultPrevented && onDismiss) {
95
- event.preventDefault()
96
- onDismiss()
105
+ React.useEffect(() => {
106
+ if (!node) return
107
+ if (disableOutsidePointerEvents) {
108
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
109
+ originalBodyPointerEvents = document.body.style.pointerEvents
110
+ document.body.style.pointerEvents = 'none'
97
111
  }
98
- })
99
-
100
- React.useEffect(() => {
101
- if (!node) return
102
- if (disableOutsidePointerEvents) {
103
- if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
104
- originalBodyPointerEvents = document.body.style.pointerEvents
105
- document.body.style.pointerEvents = 'none'
106
- }
107
- context.layersWithOutsidePointerEventsDisabled.add(node)
112
+ context.layersWithOutsidePointerEventsDisabled.add(node)
113
+ }
114
+ context.layers.add(node)
115
+ dispatchUpdate()
116
+ return () => {
117
+ if (
118
+ disableOutsidePointerEvents &&
119
+ context.layersWithOutsidePointerEventsDisabled.size === 1
120
+ ) {
121
+ document.body.style.pointerEvents = originalBodyPointerEvents
108
122
  }
109
- context.layers.add(node)
123
+ }
124
+ }, [node, disableOutsidePointerEvents, context])
125
+
126
+ /**
127
+ * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect
128
+ * because a change to `disableOutsidePointerEvents` would remove this layer from the stack
129
+ * and add it to the end again so the layering order wouldn't be _creation order_.
130
+ * We only want them to be removed from context stacks when unmounted.
131
+ */
132
+ React.useEffect(() => {
133
+ if (forceUnmount) return
134
+ return () => {
135
+ if (!node) return
136
+ context.layers.delete(node)
137
+ context.layersWithOutsidePointerEventsDisabled.delete(node)
110
138
  dispatchUpdate()
111
- return () => {
112
- if (
113
- disableOutsidePointerEvents &&
114
- context.layersWithOutsidePointerEventsDisabled.size === 1
115
- ) {
116
- document.body.style.pointerEvents = originalBodyPointerEvents
117
- }
118
- }
119
- }, [node, disableOutsidePointerEvents, context])
120
-
121
- /**
122
- * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect
123
- * because a change to `disableOutsidePointerEvents` would remove this layer from the stack
124
- * and add it to the end again so the layering order wouldn't be _creation order_.
125
- * We only want them to be removed from context stacks when unmounted.
126
- */
127
- React.useEffect(() => {
128
- if (forceUnmount) return
129
- return () => {
130
- if (!node) return
131
- context.layers.delete(node)
132
- context.layersWithOutsidePointerEventsDisabled.delete(node)
133
- dispatchUpdate()
134
- }
135
- }, [node, context, forceUnmount])
139
+ }
140
+ }, [node, context, forceUnmount])
136
141
 
137
- React.useEffect(() => {
138
- const handleUpdate = () => {
139
- force({})
142
+ React.useEffect(() => {
143
+ const handleUpdate = () => {
144
+ force({})
145
+ }
146
+ document.addEventListener(CONTEXT_UPDATE, handleUpdate)
147
+ return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate)
148
+ }, [])
149
+
150
+ return (
151
+ <Comp
152
+ {...layerProps}
153
+ // @ts-ignore
154
+ ref={composedRefs}
155
+ display="contents"
156
+ pointerEvents={
157
+ isBodyPointerEventsDisabled
158
+ ? isPointerEventsEnabled
159
+ ? 'auto'
160
+ : 'none'
161
+ : undefined
140
162
  }
141
- document.addEventListener(CONTEXT_UPDATE, handleUpdate)
142
- return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate)
143
- }, [])
144
-
145
- return (
146
- <div
147
- {...layerProps}
148
- // @ts-ignore
149
- ref={composedRefs}
150
- style={{
151
- display: 'contents',
152
- pointerEvents: isBodyPointerEventsDisabled
153
- ? isPointerEventsEnabled
154
- ? 'auto'
155
- : 'none'
156
- : undefined,
157
- // @ts-ignore
158
- ...props.style,
159
- }}
160
- onFocusCapture={composeEventHandlers(
161
- props.onFocusCapture,
162
- focusOutside.onFocusCapture
163
- )}
164
- onBlurCapture={composeEventHandlers(
165
- props.onBlurCapture,
166
- focusOutside.onBlurCapture
167
- )}
168
- onPointerDownCapture={composeEventHandlers(
169
- props.onPointerDownCapture,
170
- pointerDownOutside.onPointerDownCapture
171
- )}
172
- />
173
- )
174
- }
175
- )
163
+ onFocusCapture={composeEventHandlers(
164
+ props.onFocusCapture,
165
+ focusOutside.onFocusCapture
166
+ )}
167
+ onBlurCapture={composeEventHandlers(
168
+ props.onBlurCapture,
169
+ focusOutside.onBlurCapture
170
+ )}
171
+ onPointerDownCapture={composeEventHandlers(
172
+ props.onPointerDownCapture,
173
+ pointerDownOutside.onPointerDownCapture
174
+ )}
175
+ >
176
+ {children}
177
+ </Comp>
178
+ )
179
+ })
176
180
 
177
181
  Dismissable.displayName = DISMISSABLE_LAYER_NAME
178
182
 
@@ -13,7 +13,7 @@ export interface DismissableProps {
13
13
  * Event handler called when the escape key is down.
14
14
  * Can be prevented.
15
15
  */
16
- onEscapeKeyDown?: (event: KeyboardEvent) => void
16
+ onEscapeKeyDown?: React.KeyboardEventHandler
17
17
  /**
18
18
  * Event handler called when the a `pointerdown` event happens outside of the `Dismissable`.
19
19
  * Can be prevented.
@@ -1,7 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import type { DismissableBranchProps, DismissableProps } from './DismissableProps';
3
3
  export declare function dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E): void;
4
- declare const Dismissable: React.ForwardRefExoticComponent<DismissableProps & React.RefAttributes<HTMLDivElement>>;
4
+ declare const Dismissable: React.ForwardRefExoticComponent<DismissableProps & {
5
+ asChild?: boolean;
6
+ } & React.RefAttributes<HTMLDivElement>>;
5
7
  declare const DismissableBranch: React.ForwardRefExoticComponent<DismissableBranchProps & React.RefAttributes<HTMLDivElement>>;
6
8
  export type PointerDownOutsideEvent = CustomEvent<{
7
9
  originalEvent: PointerEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"Dismissable.d.ts","sourceRoot":"","sources":["../src/Dismissable.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAElF,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,WAAW,EAC/D,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EACnB,KAAK,EAAE,CAAC,QAGT;AAmBD,QAAA,MAAM,WAAW,yFA0IhB,CAAA;AAUD,QAAA,MAAM,iBAAiB,+FAkBtB,CAAA;AAMD,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC;IAAE,aAAa,EAAE,YAAY,CAAA;CAAE,CAAC,CAAA;AAClF,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,CAAC,CAAA;AAsI1E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;AAEzC,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"Dismissable.d.ts","sourceRoot":"","sources":["../src/Dismissable.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAElF,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,WAAW,EAC/D,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EACnB,KAAK,EAAE,CAAC,QAGT;AAmBD,QAAA,MAAM,WAAW;cAEgB,OAAO;wCA4ItC,CAAA;AAUF,QAAA,MAAM,iBAAiB,+FAkBtB,CAAA;AAMD,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC;IAAE,aAAa,EAAE,YAAY,CAAA;CAAE,CAAC,CAAA;AAClF,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,CAAC,CAAA;AAsI1E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;AAEzC,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
@@ -11,7 +11,7 @@ export interface DismissableProps {
11
11
  * Event handler called when the escape key is down.
12
12
  * Can be prevented.
13
13
  */
14
- onEscapeKeyDown?: (event: KeyboardEvent) => void;
14
+ onEscapeKeyDown?: React.KeyboardEventHandler;
15
15
  /**
16
16
  * Event handler called when the a `pointerdown` event happens outside of the `Dismissable`.
17
17
  * Can be prevented.
@@ -1 +1 @@
1
- {"version":3,"file":"DismissableProps.d.ts","sourceRoot":"","sources":["../src/DismissableProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC/D;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACnD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,KAAK,IAAI,CAAA;IAEhF;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAA;IACnB,cAAc,CAAC,EAAE,GAAG,CAAA;IAEpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B"}
1
+ {"version":3,"file":"DismissableProps.d.ts","sourceRoot":"","sources":["../src/DismissableProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAA;IAC5C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC/D;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACnD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,KAAK,IAAI,CAAA;IAEhF;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAA;IACnB,cAAc,CAAC,EAAE,GAAG,CAAA;IAEpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B"}