@oxyhq/bloom 0.72.1 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/lib/commonjs/avatar-group/AvatarGroup.web.js +22 -21
  2. package/lib/commonjs/avatar-group/AvatarGroup.web.js.map +1 -1
  3. package/lib/commonjs/bottom-sheet/index.web.js +11 -6
  4. package/lib/commonjs/bottom-sheet/index.web.js.map +1 -1
  5. package/lib/commonjs/context-menu/index.web.js +20 -22
  6. package/lib/commonjs/context-menu/index.web.js.map +1 -1
  7. package/lib/commonjs/dialog/Dialog.js +66 -70
  8. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  9. package/lib/commonjs/dialog/Dialog.web.js +49 -51
  10. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  11. package/lib/commonjs/fonts/font-data.web.js +22 -0
  12. package/lib/commonjs/fonts/font-data.web.js.map +1 -0
  13. package/lib/commonjs/menu/index.web.js +15 -11
  14. package/lib/commonjs/menu/index.web.js.map +1 -1
  15. package/lib/commonjs/overlay/index.js +186 -39
  16. package/lib/commonjs/overlay/index.js.map +1 -1
  17. package/lib/commonjs/overlay/stack.js +170 -0
  18. package/lib/commonjs/overlay/stack.js.map +1 -0
  19. package/lib/commonjs/overlay/use-overlay-layer.js +37 -0
  20. package/lib/commonjs/overlay/use-overlay-layer.js.map +1 -0
  21. package/lib/commonjs/popover/index.web.js +31 -34
  22. package/lib/commonjs/popover/index.web.js.map +1 -1
  23. package/lib/commonjs/prompt-input/PromptInput.js +33 -29
  24. package/lib/commonjs/prompt-input/PromptInput.js.map +1 -1
  25. package/lib/commonjs/select/index.web.js +20 -22
  26. package/lib/commonjs/select/index.web.js.map +1 -1
  27. package/lib/commonjs/styles/z-index.js +33 -34
  28. package/lib/commonjs/styles/z-index.js.map +1 -1
  29. package/lib/commonjs/surfaces/SurfaceHost.js +3 -6
  30. package/lib/commonjs/surfaces/SurfaceHost.js.map +1 -1
  31. package/lib/commonjs/toast/ToastHost.js +9 -5
  32. package/lib/commonjs/toast/ToastHost.js.map +1 -1
  33. package/lib/commonjs/tooltip/index.js +9 -6
  34. package/lib/commonjs/tooltip/index.js.map +1 -1
  35. package/lib/commonjs/tooltip/index.web.js +8 -2
  36. package/lib/commonjs/tooltip/index.web.js.map +1 -1
  37. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js +5 -5
  38. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  39. package/lib/module/avatar-group/AvatarGroup.web.js +21 -20
  40. package/lib/module/avatar-group/AvatarGroup.web.js.map +1 -1
  41. package/lib/module/bottom-sheet/index.web.js +11 -6
  42. package/lib/module/bottom-sheet/index.web.js.map +1 -1
  43. package/lib/module/context-menu/index.web.js +21 -23
  44. package/lib/module/context-menu/index.web.js.map +1 -1
  45. package/lib/module/dialog/Dialog.js +67 -71
  46. package/lib/module/dialog/Dialog.js.map +1 -1
  47. package/lib/module/dialog/Dialog.web.js +50 -52
  48. package/lib/module/dialog/Dialog.web.js.map +1 -1
  49. package/lib/module/fonts/font-data.web.js +18 -0
  50. package/lib/module/fonts/font-data.web.js.map +1 -0
  51. package/lib/module/menu/index.web.js +16 -12
  52. package/lib/module/menu/index.web.js.map +1 -1
  53. package/lib/module/overlay/index.js +152 -40
  54. package/lib/module/overlay/index.js.map +1 -1
  55. package/lib/module/overlay/stack.js +161 -0
  56. package/lib/module/overlay/stack.js.map +1 -0
  57. package/lib/module/overlay/use-overlay-layer.js +33 -0
  58. package/lib/module/overlay/use-overlay-layer.js.map +1 -0
  59. package/lib/module/popover/index.web.js +32 -34
  60. package/lib/module/popover/index.web.js.map +1 -1
  61. package/lib/module/prompt-input/PromptInput.js +33 -29
  62. package/lib/module/prompt-input/PromptInput.js.map +1 -1
  63. package/lib/module/select/index.web.js +21 -23
  64. package/lib/module/select/index.web.js.map +1 -1
  65. package/lib/module/styles/z-index.js +32 -30
  66. package/lib/module/styles/z-index.js.map +1 -1
  67. package/lib/module/surfaces/SurfaceHost.js +3 -6
  68. package/lib/module/surfaces/SurfaceHost.js.map +1 -1
  69. package/lib/module/toast/ToastHost.js +10 -6
  70. package/lib/module/toast/ToastHost.js.map +1 -1
  71. package/lib/module/tooltip/index.js +9 -6
  72. package/lib/module/tooltip/index.js.map +1 -1
  73. package/lib/module/tooltip/index.web.js +8 -2
  74. package/lib/module/tooltip/index.web.js.map +1 -1
  75. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js +5 -5
  76. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  77. package/lib/typescript/commonjs/avatar-group/AvatarGroup.web.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/bottom-sheet/index.web.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/dialog/types.d.ts +0 -10
  83. package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/fonts/font-data.web.d.ts +5 -0
  85. package/lib/typescript/commonjs/fonts/font-data.web.d.ts.map +1 -0
  86. package/lib/typescript/commonjs/menu/index.web.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/overlay/index.d.ts +47 -10
  88. package/lib/typescript/commonjs/overlay/index.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/overlay/stack.d.ts +122 -0
  90. package/lib/typescript/commonjs/overlay/stack.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/overlay/use-overlay-layer.d.ts +7 -0
  92. package/lib/typescript/commonjs/overlay/use-overlay-layer.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/prompt-input/PromptInput.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/styles/z-index.d.ts +42 -29
  97. package/lib/typescript/commonjs/styles/z-index.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/surfaces/SurfaceHost.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/toast/ToastHost.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/tooltip/index.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  102. package/lib/typescript/module/avatar-group/AvatarGroup.web.d.ts.map +1 -1
  103. package/lib/typescript/module/bottom-sheet/index.web.d.ts.map +1 -1
  104. package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
  105. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  106. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  107. package/lib/typescript/module/dialog/types.d.ts +0 -10
  108. package/lib/typescript/module/dialog/types.d.ts.map +1 -1
  109. package/lib/typescript/module/fonts/font-data.web.d.ts +5 -0
  110. package/lib/typescript/module/fonts/font-data.web.d.ts.map +1 -0
  111. package/lib/typescript/module/menu/index.web.d.ts.map +1 -1
  112. package/lib/typescript/module/overlay/index.d.ts +47 -10
  113. package/lib/typescript/module/overlay/index.d.ts.map +1 -1
  114. package/lib/typescript/module/overlay/stack.d.ts +122 -0
  115. package/lib/typescript/module/overlay/stack.d.ts.map +1 -0
  116. package/lib/typescript/module/overlay/use-overlay-layer.d.ts +7 -0
  117. package/lib/typescript/module/overlay/use-overlay-layer.d.ts.map +1 -0
  118. package/lib/typescript/module/popover/index.web.d.ts.map +1 -1
  119. package/lib/typescript/module/prompt-input/PromptInput.d.ts.map +1 -1
  120. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  121. package/lib/typescript/module/styles/z-index.d.ts +42 -29
  122. package/lib/typescript/module/styles/z-index.d.ts.map +1 -1
  123. package/lib/typescript/module/surfaces/SurfaceHost.d.ts.map +1 -1
  124. package/lib/typescript/module/toast/ToastHost.d.ts.map +1 -1
  125. package/lib/typescript/module/tooltip/index.d.ts.map +1 -1
  126. package/lib/typescript/module/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  127. package/package.json +2 -1
  128. package/src/__tests__/ToastHostWebFork.test.ts +11 -3
  129. package/src/__tests__/backdrop-nesting.test.tsx +95 -0
  130. package/src/__tests__/overlay-stack-order.test.tsx +270 -0
  131. package/src/avatar-group/AvatarGroup.web.tsx +35 -31
  132. package/src/bottom-sheet/index.web.tsx +10 -5
  133. package/src/context-menu/index.web.tsx +33 -30
  134. package/src/dialog/Dialog.tsx +9 -18
  135. package/src/dialog/Dialog.web.tsx +62 -60
  136. package/src/dialog/types.ts +0 -10
  137. package/src/fonts/font-data.web.ts +15 -0
  138. package/src/menu/index.web.tsx +33 -22
  139. package/src/overlay/OverlayStacking.stories.tsx +207 -0
  140. package/src/overlay/index.tsx +161 -40
  141. package/src/overlay/stack.ts +166 -0
  142. package/src/overlay/use-overlay-layer.ts +39 -0
  143. package/src/popover/index.web.tsx +47 -44
  144. package/src/prompt-input/PromptInput.tsx +36 -29
  145. package/src/select/index.web.tsx +35 -32
  146. package/src/styles/z-index.ts +32 -34
  147. package/src/surfaces/SurfaceHost.tsx +3 -10
  148. package/src/toast/ToastHost.tsx +9 -6
  149. package/src/tooltip/index.tsx +14 -7
  150. package/src/tooltip/index.web.tsx +8 -2
  151. package/src/zoomable-image-gallery/ZoomableImageGallery.tsx +4 -4
@@ -18,6 +18,7 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
18
18
 
19
19
  import { useTheme } from '../theme/use-theme';
20
20
  import { atoms as a } from '../styles';
21
+ import { OverlayRoot } from '../overlay';
21
22
  import { Portal } from '../portal';
22
23
  import {
23
24
  ARROW_HALF_SIZE,
@@ -173,13 +174,19 @@ export function TooltipContent({
173
174
 
174
175
  return (
175
176
  <Portal>
176
- <Bubble
177
- label={label}
178
- position={position}
179
- targetMeasurements={targetMeasurements}
180
- requestClose={requestClose}>
181
- {children}
182
- </Bubble>
177
+ {/* `OverlayRoot` takes the tooltip's place in the open-order overlay
178
+ stack, so a tooltip opened over another surface paints above it (see
179
+ `src/overlay/stack.ts`). It mounts past the `visible` guard, so the
180
+ rank tracks opening. */}
181
+ <OverlayRoot>
182
+ <Bubble
183
+ label={label}
184
+ position={position}
185
+ targetMeasurements={targetMeasurements}
186
+ requestClose={requestClose}>
187
+ {children}
188
+ </Bubble>
189
+ </OverlayRoot>
183
190
  </Portal>
184
191
  );
185
192
  }
@@ -3,8 +3,8 @@ import { Pressable, StyleSheet, View } from 'react-native';
3
3
 
4
4
  import { useTheme } from '../theme/use-theme';
5
5
  import { atoms as a, flatten } from '../styles';
6
- import { Z_INDEX } from '../styles/z-index';
7
6
  import { WEB_POSITION_FIXED } from '../styles/web-view-style';
7
+ import { Z_INDEX } from '../styles/z-index';
8
8
  import {
9
9
  ARROW_SIZE,
10
10
  BUBBLE_MAX_WIDTH,
@@ -156,6 +156,12 @@ const webStyles = StyleSheet.create({
156
156
  left: 0,
157
157
  right: 0,
158
158
  bottom: 0,
159
- zIndex: Z_INDEX.tooltip,
159
+ // In-flow depth, not an overlay-ordering one: the WEB tooltip is not
160
+ // portaled (unlike the native one) — the bubble is absolutely positioned
161
+ // against its trigger and renders inline. So this only lifts the
162
+ // outside-press catcher over adjacent content, and stays below the bubble's
163
+ // own `a.z_50`. Which SURFACE is on top is never decided here; see
164
+ // `src/overlay/stack.ts`.
165
+ zIndex: Z_INDEX.floating,
160
166
  },
161
167
  });
@@ -36,7 +36,6 @@ import {
36
36
  ArrowRight_Stroke2_Corner0_Rounded,
37
37
  ArrowOutOfBox_Stroke2_Corner0_Rounded,
38
38
  } from '../icons';
39
- import { Z_INDEX } from '../styles/z-index';
40
39
  import { WEB_POSITION_FIXED, type WebCssStyle } from '../styles/web-view-style';
41
40
  import {
42
41
  getAspectRatio,
@@ -1039,14 +1038,15 @@ const styles = StyleSheet.create({
1039
1038
  web: {
1040
1039
  // Full-screen fixed overlay (web), like Bloom's Portal and Dialog.web.
1041
1040
  // Only ever applied on web (this is the `web` arm of Platform.select),
1042
- // so `WEB_POSITION_FIXED` is honest here; the fullscreen z-index token
1043
- // keeps the viewer above the app chrome.
1041
+ // so `WEB_POSITION_FIXED` is honest here. The depth is NOT set here:
1042
+ // `OverlayRoot` above assigns it from the open-order overlay stack, so
1043
+ // a viewer opened over another surface paints above it and one opened
1044
+ // under a later surface goes behind (see `src/overlay/stack.ts`).
1044
1045
  position: WEB_POSITION_FIXED,
1045
1046
  top: 0,
1046
1047
  left: 0,
1047
1048
  right: 0,
1048
1049
  bottom: 0,
1049
- zIndex: Z_INDEX.fullscreen,
1050
1050
  },
1051
1051
  default: {
1052
1052
  // Mounted through the Bloom Portal `Outlet` (which renders its content