@oxyhq/bloom 0.65.0 → 0.66.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.
@@ -25,8 +25,12 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
25
25
  * universal: `ToastHost` supplies a viewport-sized containing block on web, so
26
26
  * there is no `.web` fork and no `position: 'fixed'` here (W7).
27
27
  *
28
- * `pointerEvents` goes in `style`, never as a prop — the prop form is deprecated
29
- * in react-native-web and logs on every render.
28
+ * `pointerEvents` goes on the PROP, never in `style`: react-native-web resolves
29
+ * the RN-only `box-none` value only from the prop path, so as a style entry it
30
+ * is silently dropped and this full-host container inherits `auto` — a
31
+ * transparent sheet over the whole app that swallows every tap for as long as a
32
+ * toast is up. RNW logs a deprecation notice for the prop once per session;
33
+ * that is the cheaper of the two.
30
34
  */
31
35
 
32
36
  /**
@@ -99,15 +103,14 @@ const Positioner = ({
99
103
  style: [(0, _positionerUtils.getContainerStyle)(), androidElevationStyle,
100
104
  // Overrides ONE edge of the four `getContainerStyle` pins, so the box
101
105
  // keeps a real height and the rows inside it stay in bounds.
102
- insetValues,
106
+ insetValues, style]
103
107
  // This container spans the whole host, so it must never swallow a touch.
104
108
  // `box-none` passes presses through to the app while still reaching the
105
109
  // rows; an EMPTY one on Android drops to `none` outright, because the
106
110
  // outlet's configured position always renders a container even with no
107
111
  // rows in it (see `Toaster`'s grouping).
108
- {
109
- pointerEvents: _reactNative.Platform.OS === 'android' && !hasChildren ? 'none' : 'box-none'
110
- }, style],
112
+ ,
113
+ pointerEvents: _reactNative.Platform.OS === 'android' && !hasChildren ? 'none' : 'box-none',
111
114
  children: children
112
115
  })]
113
116
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_context","_positionerUtils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FALLBACK_INSETS","initialWindowMetrics","insets","top","bottom","left","right","ANDROID_ELEVATION","androidElevationStyle","Platform","OS","elevation","Positioner","children","position","style","offset","gap","visibleToasts","useToastContext","isExpanded","collapse","toastHeights","useDynamicToastContext","useContext","SafeAreaInsetsContext","resolvedPosition","insetValues","getInsetValues","safeAreaInsets","handleOutsidePress","useCallback","shouldAllowCollapse","hasChildren","Children","count","jsxs","Fragment","jsx","Pressable","calculateOutsidePressableArea","onPress","View","getContainerStyle","pointerEvents","exports","displayName"],"sourceRoot":"../../../src","sources":["toast/Positioner.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_context","_positionerUtils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FALLBACK_INSETS","initialWindowMetrics","insets","top","bottom","left","right","ANDROID_ELEVATION","androidElevationStyle","Platform","OS","elevation","Positioner","children","position","style","offset","gap","visibleToasts","useToastContext","isExpanded","collapse","toastHeights","useDynamicToastContext","useContext","SafeAreaInsetsContext","resolvedPosition","insetValues","getInsetValues","safeAreaInsets","handleOutsidePress","useCallback","shouldAllowCollapse","hasChildren","Children","count","jsxs","Fragment","jsx","Pressable","calculateOutsidePressableArea","onPress","View","getContainerStyle","pointerEvents","exports","displayName"],"sourceRoot":"../../../src","sources":["toast/Positioner.tsx"],"mappings":"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","ignoreList":[]}
@@ -50,6 +50,7 @@ function ToastHost({
50
50
  (0, _jsxRuntime.jsx)(_index.OverlayRoot, {
51
51
  style: styles.host,
52
52
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
53
+ pointerEvents: "box-none",
53
54
  style: _reactNative.StyleSheet.absoluteFill,
54
55
  children: children
55
56
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_index","_indexWeb","_webViewStyle","_zIndex","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ToastHost","children","ToasterOverlayWrapper","content","jsx","OverlayRoot","style","styles","host","GestureHandlerRootView","StyleSheet","absoluteFill","Portal","displayName","create","position","WEB_POSITION_FIXED","top","left","right","bottom","zIndex","Z_INDEX","toast"],"sourceRoot":"../../../src","sources":["toast/ToastHost.tsx"],"mappings":";;;;;;AAwBA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAA4C,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA/B5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWO,SAASkB,SAASA,CAAC;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAAE;EAC7E,MAAMC,OAAO;EAAA;EACX;EACA;EACA;EACA,IAAAvB,WAAA,CAAAwB,GAAA,EAAC5B,MAAA,CAAA6B,WAAW;IAACC,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAP,QAAA,eAC9B,IAAArB,WAAA,CAAAwB,GAAA,EAAC7B,0BAAA,CAAAkC,sBAAsB;MAACH,KAAK,EAAEI,uBAAU,CAACC,YAAa;MAAAV,QAAA,EACpDA;IAAQ,CACa;EAAC,CACd,CACd;EAED,oBACE,IAAArB,WAAA,CAAAwB,GAAA,EAAC3B,SAAA,CAAAmC,MAAM;IAAAX,QAAA,EACJC,qBAAqB,gBACpB,IAAAtB,WAAA,CAAAwB,GAAA,EAACF,qBAAqB;MAAAD,QAAA,EAAEE;IAAO,CAAwB,CAAC,GAExDA;EACD,CACK,CAAC;AAEb;AAEAH,SAAS,CAACa,WAAW,GAAG,WAAW;AAEnC,MAAMN,MAAM,GAAGG,uBAAU,CAACI,MAAM,CAAC;EAC/BN,IAAI,EAAE;IACJ;IACAO,QAAQ,EAAEC,gCAAkB;IAC5BC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACT;IACA;IACAC,MAAM,EAAEC,eAAO,CAACC;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_index","_indexWeb","_webViewStyle","_zIndex","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ToastHost","children","ToasterOverlayWrapper","content","jsx","OverlayRoot","style","styles","host","GestureHandlerRootView","pointerEvents","StyleSheet","absoluteFill","Portal","displayName","create","position","WEB_POSITION_FIXED","top","left","right","bottom","zIndex","Z_INDEX","toast"],"sourceRoot":"../../../src","sources":["toast/ToastHost.tsx"],"mappings":";;;;;;AAwBA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAA4C,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA/B5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWO,SAASkB,SAASA,CAAC;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAAE;EAC7E,MAAMC,OAAO;EAAA;EACX;EACA;EACA;EACA,IAAAvB,WAAA,CAAAwB,GAAA,EAAC5B,MAAA,CAAA6B,WAAW;IAACC,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAP,QAAA,eAI9B,IAAArB,WAAA,CAAAwB,GAAA,EAAC7B,0BAAA,CAAAkC,sBAAsB;MAACC,aAAa,EAAC,UAAU;MAACJ,KAAK,EAAEK,uBAAU,CAACC,YAAa;MAAAX,QAAA,EAC7EA;IAAQ,CACa;EAAC,CACd,CACd;EAED,oBACE,IAAArB,WAAA,CAAAwB,GAAA,EAAC3B,SAAA,CAAAoC,MAAM;IAAAZ,QAAA,EACJC,qBAAqB,gBACpB,IAAAtB,WAAA,CAAAwB,GAAA,EAACF,qBAAqB;MAAAD,QAAA,EAAEE;IAAO,CAAwB,CAAC,GAExDA;EACD,CACK,CAAC;AAEb;AAEAH,SAAS,CAACc,WAAW,GAAG,WAAW;AAEnC,MAAMP,MAAM,GAAGI,uBAAU,CAACI,MAAM,CAAC;EAC/BP,IAAI,EAAE;IACJ;IACAQ,QAAQ,EAAEC,gCAAkB;IAC5BC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACT;IACA;IACAC,MAAM,EAAEC,eAAO,CAACC;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -14,8 +14,12 @@
14
14
  * universal: `ToastHost` supplies a viewport-sized containing block on web, so
15
15
  * there is no `.web` fork and no `position: 'fixed'` here (W7).
16
16
  *
17
- * `pointerEvents` goes in `style`, never as a prop — the prop form is deprecated
18
- * in react-native-web and logs on every render.
17
+ * `pointerEvents` goes on the PROP, never in `style`: react-native-web resolves
18
+ * the RN-only `box-none` value only from the prop path, so as a style entry it
19
+ * is silently dropped and this full-host container inherits `auto` — a
20
+ * transparent sheet over the whole app that swallows every tap for as long as a
21
+ * toast is up. RNW logs a deprecation notice for the prop once per session;
22
+ * that is the cheaper of the two.
19
23
  */
20
24
  import * as React from 'react';
21
25
  import { Platform, Pressable, View } from 'react-native';
@@ -93,15 +97,14 @@ export const Positioner = ({
93
97
  style: [getContainerStyle(), androidElevationStyle,
94
98
  // Overrides ONE edge of the four `getContainerStyle` pins, so the box
95
99
  // keeps a real height and the rows inside it stay in bounds.
96
- insetValues,
100
+ insetValues, style]
97
101
  // This container spans the whole host, so it must never swallow a touch.
98
102
  // `box-none` passes presses through to the app while still reaching the
99
103
  // rows; an EMPTY one on Android drops to `none` outright, because the
100
104
  // outlet's configured position always renders a container even with no
101
105
  // rows in it (see `Toaster`'s grouping).
102
- {
103
- pointerEvents: Platform.OS === 'android' && !hasChildren ? 'none' : 'box-none'
104
- }, style],
106
+ ,
107
+ pointerEvents: Platform.OS === 'android' && !hasChildren ? 'none' : 'box-none',
105
108
  children: children
106
109
  })]
107
110
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","Pressable","View","SafeAreaInsetsContext","initialWindowMetrics","useDynamicToastContext","useToastContext","calculateOutsidePressableArea","getContainerStyle","getInsetValues","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","FALLBACK_INSETS","insets","top","bottom","left","right","ANDROID_ELEVATION","androidElevationStyle","OS","elevation","Positioner","children","position","style","offset","gap","visibleToasts","isExpanded","collapse","toastHeights","useContext","resolvedPosition","insetValues","safeAreaInsets","handleOutsidePress","useCallback","shouldAllowCollapse","hasChildren","Children","count","onPress","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["toast/Positioner.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","Pressable","View","SafeAreaInsetsContext","initialWindowMetrics","useDynamicToastContext","useToastContext","calculateOutsidePressableArea","getContainerStyle","getInsetValues","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","FALLBACK_INSETS","insets","top","bottom","left","right","ANDROID_ELEVATION","androidElevationStyle","OS","elevation","Positioner","children","position","style","offset","gap","visibleToasts","isExpanded","collapse","toastHeights","useContext","resolvedPosition","insetValues","safeAreaInsets","handleOutsidePress","useCallback","shouldAllowCollapse","hasChildren","Children","count","onPress","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["toast/Positioner.tsx"],"mappings":"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","ignoreList":[]}
@@ -44,6 +44,7 @@ export function ToastHost({
44
44
  _jsx(OverlayRoot, {
45
45
  style: styles.host,
46
46
  children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
47
+ pointerEvents: "box-none",
47
48
  style: StyleSheet.absoluteFill,
48
49
  children: children
49
50
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","GestureHandlerRootView","OverlayRoot","Portal","WEB_POSITION_FIXED","Z_INDEX","jsx","_jsx","ToastHost","children","ToasterOverlayWrapper","content","style","styles","host","absoluteFill","displayName","create","position","top","left","right","bottom","zIndex","toast"],"sourceRoot":"../../../src","sources":["toast/ToastHost.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,sBAAsB,QAAQ,8BAA8B;AAErE,SAASC,WAAW,QAAQ,qBAAY;AACxC,SAASC,MAAM,QAAQ,wBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,6BAA0B;AAC7D,SAASC,OAAO,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG5C,OAAO,SAASC,SAASA,CAAC;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAAE;EAC7E,MAAMC,OAAO;EAAA;EACX;EACA;EACA;EACAJ,IAAA,CAACL,WAAW;IAACU,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAL,QAAA,eAC9BF,IAAA,CAACN,sBAAsB;MAACW,KAAK,EAAEZ,UAAU,CAACe,YAAa;MAAAN,QAAA,EACpDA;IAAQ,CACa;EAAC,CACd,CACd;EAED,oBACEF,IAAA,CAACJ,MAAM;IAAAM,QAAA,EACJC,qBAAqB,gBACpBH,IAAA,CAACG,qBAAqB;MAAAD,QAAA,EAAEE;IAAO,CAAwB,CAAC,GAExDA;EACD,CACK,CAAC;AAEb;AAEAH,SAAS,CAACQ,WAAW,GAAG,WAAW;AAEnC,MAAMH,MAAM,GAAGb,UAAU,CAACiB,MAAM,CAAC;EAC/BH,IAAI,EAAE;IACJ;IACAI,QAAQ,EAAEd,kBAAkB;IAC5Be,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACT;IACA;IACAC,MAAM,EAAElB,OAAO,CAACmB;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","GestureHandlerRootView","OverlayRoot","Portal","WEB_POSITION_FIXED","Z_INDEX","jsx","_jsx","ToastHost","children","ToasterOverlayWrapper","content","style","styles","host","pointerEvents","absoluteFill","displayName","create","position","top","left","right","bottom","zIndex","toast"],"sourceRoot":"../../../src","sources":["toast/ToastHost.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,sBAAsB,QAAQ,8BAA8B;AAErE,SAASC,WAAW,QAAQ,qBAAY;AACxC,SAASC,MAAM,QAAQ,wBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,6BAA0B;AAC7D,SAASC,OAAO,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG5C,OAAO,SAASC,SAASA,CAAC;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAAE;EAC7E,MAAMC,OAAO;EAAA;EACX;EACA;EACA;EACAJ,IAAA,CAACL,WAAW;IAACU,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAL,QAAA,eAI9BF,IAAA,CAACN,sBAAsB;MAACc,aAAa,EAAC,UAAU;MAACH,KAAK,EAAEZ,UAAU,CAACgB,YAAa;MAAAP,QAAA,EAC7EA;IAAQ,CACa;EAAC,CACd,CACd;EAED,oBACEF,IAAA,CAACJ,MAAM;IAAAM,QAAA,EACJC,qBAAqB,gBACpBH,IAAA,CAACG,qBAAqB;MAAAD,QAAA,EAAEE;IAAO,CAAwB,CAAC,GAExDA;EACD,CACK,CAAC;AAEb;AAEAH,SAAS,CAACS,WAAW,GAAG,WAAW;AAEnC,MAAMJ,MAAM,GAAGb,UAAU,CAACkB,MAAM,CAAC;EAC/BJ,IAAI,EAAE;IACJ;IACAK,QAAQ,EAAEf,kBAAkB;IAC5BgB,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACT;IACA;IACAC,MAAM,EAAEnB,OAAO,CAACoB;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -12,8 +12,12 @@
12
12
  * universal: `ToastHost` supplies a viewport-sized containing block on web, so
13
13
  * there is no `.web` fork and no `position: 'fixed'` here (W7).
14
14
  *
15
- * `pointerEvents` goes in `style`, never as a prop — the prop form is deprecated
16
- * in react-native-web and logs on every render.
15
+ * `pointerEvents` goes on the PROP, never in `style`: react-native-web resolves
16
+ * the RN-only `box-none` value only from the prop path, so as a style entry it
17
+ * is silently dropped and this full-host container inherits `auto` — a
18
+ * transparent sheet over the whole app that swallows every tap for as long as a
19
+ * toast is up. RNW logs a deprecation notice for the prop once per session;
20
+ * that is the cheaper of the two.
17
21
  */
18
22
  import * as React from 'react';
19
23
  import type { ToasterProps } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"Positioner.d.ts","sourceRoot":"","sources":["../../../../src/toast/Positioner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAwB5C,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAC/B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CA+DlE,CAAC"}
1
+ {"version":3,"file":"Positioner.d.ts","sourceRoot":"","sources":["../../../../src/toast/Positioner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAwB5C,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAC/B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CA4DlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../../src/toast/ToastHost.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,cAAc,2CAqB5E;yBArBe,SAAS"}
1
+ {"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../../src/toast/ToastHost.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,cAAc,2CAwB5E;yBAxBe,SAAS"}
@@ -12,8 +12,12 @@
12
12
  * universal: `ToastHost` supplies a viewport-sized containing block on web, so
13
13
  * there is no `.web` fork and no `position: 'fixed'` here (W7).
14
14
  *
15
- * `pointerEvents` goes in `style`, never as a prop — the prop form is deprecated
16
- * in react-native-web and logs on every render.
15
+ * `pointerEvents` goes on the PROP, never in `style`: react-native-web resolves
16
+ * the RN-only `box-none` value only from the prop path, so as a style entry it
17
+ * is silently dropped and this full-host container inherits `auto` — a
18
+ * transparent sheet over the whole app that swallows every tap for as long as a
19
+ * toast is up. RNW logs a deprecation notice for the prop once per session;
20
+ * that is the cheaper of the two.
17
21
  */
18
22
  import * as React from 'react';
19
23
  import type { ToasterProps } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"Positioner.d.ts","sourceRoot":"","sources":["../../../../src/toast/Positioner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAwB5C,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAC/B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CA+DlE,CAAC"}
1
+ {"version":3,"file":"Positioner.d.ts","sourceRoot":"","sources":["../../../../src/toast/Positioner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAwB5C,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAC/B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CA4DlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../../src/toast/ToastHost.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,cAAc,2CAqB5E;yBArBe,SAAS"}
1
+ {"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../../src/toast/ToastHost.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,cAAc,2CAwB5E;yBAxBe,SAAS"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "0.65.0",
3
+ "version": "0.66.0",
4
4
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -116,10 +116,16 @@ describe('ToastHost platform split', () => {
116
116
  expect(driver).not.toMatch(/useDerivedValue/);
117
117
  });
118
118
 
119
- it('Positioner passes pointerEvents through style, not as a prop', () => {
119
+ // This assertion used to demand the exact opposite, and it is what kept the
120
+ // bug alive: `box-none` is an RN-only value that react-native-web resolves
121
+ // ONLY from the prop (`createDOMProps` maps it to a class pair). As a style
122
+ // entry it is dropped, so this full-host container inherited `auto` and sat
123
+ // over the whole app as an invisible click-eater for as long as a toast was
124
+ // up. The prop form logs an RNW deprecation notice once; that is the price.
125
+ it('Positioner passes the RN-only pointerEvents value as a PROP, not a style', () => {
120
126
  const positioner = code('toast/Positioner.tsx');
121
- expect(positioner).toMatch(/pointerEvents:/);
122
- expect(positioner).not.toMatch(/pointerEvents=\{/);
127
+ expect(positioner).toMatch(/pointerEvents=\{/);
128
+ expect(positioner).not.toMatch(/pointerEvents:\s*(?:[^,;\n]*\n?){0,6}?['"]box-none['"]/);
123
129
  });
124
130
 
125
131
  it('package.json exports ./toast WITHOUT a browser condition', () => {
@@ -23,7 +23,10 @@ import { createRoot, type Root } from 'react-dom/client';
23
23
  // emits a class and would make every assertion below vacuous.
24
24
  jest.mock('react-native', () => jest.requireActual('react-native-web'));
25
25
 
26
+ import { View } from 'react-native';
27
+
26
28
  import { Backdrop, OverlayRoot } from '../overlay';
29
+ import { ToastHost } from '../toast/ToastHost';
27
30
 
28
31
  (globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT =
29
32
  true;
@@ -175,6 +178,48 @@ describe('overlay pointer-events contract (web)', () => {
175
178
  container.remove();
176
179
  });
177
180
 
181
+ // The toast host is the widest surface Bloom mounts: a viewport-sized stack of
182
+ // containers that is present for as long as ANY toast is up. Every layer in it
183
+ // must be click-through, or a toast turns the whole app read-only — which is
184
+ // what shipped, because the positioner passed `box-none` as a style entry.
185
+ it('every layer of the toast host stays click-through', () => {
186
+ const { root } = render(
187
+ createElement(ToastHost, {
188
+ children: createElement(View, { testID: 'row' }),
189
+ }),
190
+ );
191
+
192
+ const row = document.querySelector('[data-testid="row"]') as HTMLElement | null;
193
+ expect(row).not.toBeNull();
194
+
195
+ const layers: HTMLElement[] = [];
196
+ for (let el = row?.parentElement; el && el !== document.body; el = el.parentElement) {
197
+ layers.push(el);
198
+ }
199
+ // Vacuity floor: the host view and the portal root. (The gesture root is
200
+ // the third layer in a browser; this suite's `react-native-gesture-handler`
201
+ // mock renders it away, so its own `box-none` is pinned by the source gate
202
+ // in `pointer-events-style-form.test.ts` instead.) A portal that failed to
203
+ // mount would leave an empty chain and pass silently.
204
+ expect(layers.length).toBeGreaterThanOrEqual(2);
205
+ expect(layers.some((el) => el.id === 'bloom-portal-root')).toBe(true);
206
+
207
+ for (const el of layers) {
208
+ const inline = el.style.pointerEvents;
209
+ const inert =
210
+ inline === 'none' ||
211
+ rulesFor(el.className).some(
212
+ (r) => /pointer-events:\s*none/.test(r) && !/>\s*\*/.test(r),
213
+ );
214
+ expect({ layer: el.className || el.id, inert }).toEqual({
215
+ layer: el.className || el.id,
216
+ inert: true,
217
+ });
218
+ }
219
+
220
+ act(() => root.unmount());
221
+ });
222
+
178
223
  it('a disabled Backdrop dims without dismissing', () => {
179
224
  const onPress = jest.fn();
180
225
  const { root, container } = render(
@@ -68,14 +68,26 @@ describe('pointerEvents style-object form', () => {
68
68
  });
69
69
 
70
70
  it('never uses the RN-only values as styles — pass them as the prop', () => {
71
- const offenders = files
72
- .flatMap((file) =>
73
- readFileSync(file, 'utf8')
74
- .split('\n')
75
- .map((line, i) => ({ file: file.slice(SRC.length + 1), line: i + 1, text: line.trim() }))
76
- .filter(({ text }) => BANNED.test(text) && !text.startsWith('*') && !text.startsWith('//')),
77
- )
78
- .map(({ file, line, text }) => `${file}:${line} ${text}`);
71
+ const offenders: string[] = [];
72
+
73
+ for (const file of files) {
74
+ const source = readFileSync(file, 'utf8');
75
+ // Scan the whole SOURCE, not line by line: the toast positioner hid one
76
+ // of these behind a multi-line ternary (`pointerEvents:\n cond ? 'none'
77
+ // : 'box-none'`) and a per-line regex sailed straight past it, which is
78
+ // how a full-screen layer went on swallowing every tap under a toast.
79
+ // Comments first: this file and several components DESCRIBE the banned
80
+ // form in prose, and a scanner that flags its own documentation is a
81
+ // scanner nobody keeps.
82
+ const code = source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/\/\/[^\n]*/g, '');
83
+ // The value may sit behind a ternary on the next line, so allow a bounded
84
+ // gap — but never one that crosses into a JSX prop (`pointerEvents=`) or
85
+ // the next element (`<`), which is what turns this into a false positive.
86
+ for (const match of code.matchAll(/pointerEvents:(?:(?!pointerEvents=|<)[\s\S]){0,160}?['"](box-none|box-only)['"]/g)) {
87
+ const line = code.slice(0, match.index).split('\n').length;
88
+ offenders.push(`${file.slice(SRC.length + 1)}:~${line} ${match[0].replace(/\s+/g, ' ')}`);
89
+ }
90
+ }
79
91
 
80
92
  expect(offenders).toEqual([]);
81
93
  });
@@ -12,8 +12,12 @@
12
12
  * universal: `ToastHost` supplies a viewport-sized containing block on web, so
13
13
  * there is no `.web` fork and no `position: 'fixed'` here (W7).
14
14
  *
15
- * `pointerEvents` goes in `style`, never as a prop — the prop form is deprecated
16
- * in react-native-web and logs on every render.
15
+ * `pointerEvents` goes on the PROP, never in `style`: react-native-web resolves
16
+ * the RN-only `box-none` value only from the prop path, so as a style entry it
17
+ * is silently dropped and this full-host container inherits `auto` — a
18
+ * transparent sheet over the whole app that swallows every tap for as long as a
19
+ * toast is up. RNW logs a deprecation notice for the prop once per session;
20
+ * that is the cheaper of the two.
17
21
  */
18
22
  import * as React from 'react';
19
23
  import { Platform, Pressable, View } from 'react-native';
@@ -100,17 +104,14 @@ export const Positioner: React.FC<
100
104
  // Overrides ONE edge of the four `getContainerStyle` pins, so the box
101
105
  // keeps a real height and the rows inside it stay in bounds.
102
106
  insetValues,
103
- // This container spans the whole host, so it must never swallow a touch.
104
- // `box-none` passes presses through to the app while still reaching the
105
- // rows; an EMPTY one on Android drops to `none` outright, because the
106
- // outlet's configured position always renders a container even with no
107
- // rows in it (see `Toaster`'s grouping).
108
- {
109
- pointerEvents:
110
- Platform.OS === 'android' && !hasChildren ? 'none' : 'box-none',
111
- },
112
107
  style,
113
108
  ]}
109
+ // This container spans the whole host, so it must never swallow a touch.
110
+ // `box-none` passes presses through to the app while still reaching the
111
+ // rows; an EMPTY one on Android drops to `none` outright, because the
112
+ // outlet's configured position always renders a container even with no
113
+ // rows in it (see `Toaster`'s grouping).
114
+ pointerEvents={Platform.OS === 'android' && !hasChildren ? 'none' : 'box-none'}
114
115
  >
115
116
  {children}
116
117
  </View>
@@ -38,7 +38,10 @@ export function ToastHost({ children, ToasterOverlayWrapper }: ToastHostProps) {
38
38
  // entry it never reached the DOM, so the rows inherited the portal root's
39
39
  // `pointer-events: none` and no toast could be pressed or swiped away.
40
40
  <OverlayRoot style={styles.host}>
41
- <GestureHandlerRootView style={StyleSheet.absoluteFill}>
41
+ {/* Also `box-none`: as the direct child of a box-none root it would
42
+ otherwise be handed `pointer-events: auto` and, spanning the whole
43
+ viewport, block the app underneath while a toast is up. */}
44
+ <GestureHandlerRootView pointerEvents="box-none" style={StyleSheet.absoluteFill}>
42
45
  {children}
43
46
  </GestureHandlerRootView>
44
47
  </OverlayRoot>