@oxyhq/bloom 0.69.1 → 0.71.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 (56) hide show
  1. package/lib/commonjs/context-menu/index.web.js +51 -3
  2. package/lib/commonjs/context-menu/index.web.js.map +1 -1
  3. package/lib/commonjs/dialog/SheetShell.js +7 -1
  4. package/lib/commonjs/dialog/SheetShell.js.map +1 -1
  5. package/lib/commonjs/menu/index.web.js +47 -10
  6. package/lib/commonjs/menu/index.web.js.map +1 -1
  7. package/lib/commonjs/overlay/dropdown-placement.js +62 -0
  8. package/lib/commonjs/overlay/dropdown-placement.js.map +1 -0
  9. package/lib/commonjs/select/index.web.js +82 -5
  10. package/lib/commonjs/select/index.web.js.map +1 -1
  11. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js +32 -18
  12. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  13. package/lib/module/context-menu/index.web.js +52 -4
  14. package/lib/module/context-menu/index.web.js.map +1 -1
  15. package/lib/module/dialog/SheetShell.js +7 -1
  16. package/lib/module/dialog/SheetShell.js.map +1 -1
  17. package/lib/module/menu/index.web.js +47 -10
  18. package/lib/module/menu/index.web.js.map +1 -1
  19. package/lib/module/overlay/dropdown-placement.js +58 -0
  20. package/lib/module/overlay/dropdown-placement.js.map +1 -0
  21. package/lib/module/select/index.web.js +83 -6
  22. package/lib/module/select/index.web.js.map +1 -1
  23. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js +33 -19
  24. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  25. package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/dialog/SheetShell.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/menu/index.web.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/overlay/dropdown-placement.d.ts +55 -0
  29. package/lib/typescript/commonjs/overlay/dropdown-placement.d.ts.map +1 -0
  30. package/lib/typescript/commonjs/select/index.web.d.ts +1 -1
  31. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/select/types.d.ts +6 -0
  33. package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  35. package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
  36. package/lib/typescript/module/dialog/SheetShell.d.ts.map +1 -1
  37. package/lib/typescript/module/menu/index.web.d.ts.map +1 -1
  38. package/lib/typescript/module/overlay/dropdown-placement.d.ts +55 -0
  39. package/lib/typescript/module/overlay/dropdown-placement.d.ts.map +1 -0
  40. package/lib/typescript/module/select/index.web.d.ts +1 -1
  41. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  42. package/lib/typescript/module/select/types.d.ts +6 -0
  43. package/lib/typescript/module/select/types.d.ts.map +1 -1
  44. package/lib/typescript/module/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/__tests__/SelectItemLabel.test.tsx +46 -0
  47. package/src/__tests__/SheetShell.test.tsx +82 -0
  48. package/src/__tests__/dropdown-placement.test.ts +90 -0
  49. package/src/__tests__/optional-peer-imports.test.ts +31 -12
  50. package/src/context-menu/index.web.tsx +47 -3
  51. package/src/dialog/SheetShell.tsx +5 -0
  52. package/src/menu/index.web.tsx +45 -16
  53. package/src/overlay/dropdown-placement.ts +88 -0
  54. package/src/select/index.web.tsx +92 -5
  55. package/src/select/types.ts +6 -0
  56. package/src/zoomable-image-gallery/ZoomableImageGallery.tsx +29 -16
@@ -20,6 +20,7 @@ var _indexWeb = require("../portal/index.web.js");
20
20
  var _useInteractionState = require("../hooks/useInteractionState.js");
21
21
  var _zIndex = require("../styles/z-index.js");
22
22
  var _webViewStyle = require("../styles/web-view-style.js");
23
+ var _dropdownPlacement = require("../overlay/dropdown-placement.js");
23
24
  var _shadows = require("../design-tokens/shadows");
24
25
  var _context = require("./context.js");
25
26
  var _jsxRuntime = require("react/jsx-runtime");
@@ -32,6 +33,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
32
33
  */
33
34
 
34
35
  const contextMenuZIndex = (0, _zIndex.createOverlayZIndex)();
36
+ const VIEWPORT_GUTTER = 8;
35
37
 
36
38
  // ---------------------------------------------------------------------------
37
39
  // Web-specific context (extends base with position)
@@ -147,6 +149,46 @@ function ContextMenuContent({
147
149
  close,
148
150
  position
149
151
  } = ctx;
152
+ // The mounted menu node, as STATE rather than a bare ref: placement has to
153
+ // measure it, and `Portal` renders null on its first pass (it resolves its
154
+ // host in its own layout effect), so the node lands one render after the
155
+ // menu opens. An effect keyed only on `position` would measure nothing.
156
+ const [menuNode, setMenuNode] = (0, _react.useState)(null);
157
+ const [placement, setPlacement] = (0, _react.useState)(null);
158
+ const attachMenu = (0, _react.useCallback)(node => {
159
+ setMenuNode(node);
160
+ }, []);
161
+
162
+ // The right-click point is a zero-area anchor, so the surface sits below-right
163
+ // of the cursor when it fits, flips above when it doesn't, and clamps into the
164
+ // viewport when neither fits. Without this a menu opened near an edge hung off
165
+ // the fold with its rows unreachable.
166
+ (0, _react.useLayoutEffect)(() => {
167
+ if (!position || !menuNode || typeof window === 'undefined') {
168
+ setPlacement(null);
169
+ return;
170
+ }
171
+ const surface = menuNode.getBoundingClientRect();
172
+ setPlacement((0, _dropdownPlacement.resolveDropdownPlacement)({
173
+ anchor: {
174
+ top: position.y,
175
+ bottom: position.y,
176
+ left: position.x,
177
+ right: position.x
178
+ },
179
+ size: {
180
+ width: surface.width,
181
+ height: surface.height
182
+ },
183
+ viewport: {
184
+ width: window.innerWidth,
185
+ height: window.innerHeight
186
+ },
187
+ offset: 0,
188
+ gutter: VIEWPORT_GUTTER,
189
+ align: 'start'
190
+ }));
191
+ }, [position, menuNode]);
150
192
  (0, _react.useEffect)(() => {
151
193
  if (!isOpen || typeof document === 'undefined') return;
152
194
  const handleKeyDown = e => {
@@ -164,9 +206,12 @@ function ContextMenuContent({
164
206
  onPress: close,
165
207
  accessibilityLabel: "Close context menu"
166
208
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
209
+ ref: attachMenu,
167
210
  style: [styles.dropdown, {
168
- top: position.y,
169
- left: position.x,
211
+ // The raw click point is the pre-measurement anchor; the layout
212
+ // effect above replaces it before the browser paints.
213
+ top: placement?.top ?? position.y,
214
+ left: placement?.left ?? position.x,
170
215
  backgroundColor: theme.isDark ? theme.colors.backgroundSecondary : theme.colors.background,
171
216
  borderColor: theme.colors.borderLight,
172
217
  ...(0, _shadows.bloomShadowStyle)('m')
@@ -328,7 +373,10 @@ const styles = _reactNative.StyleSheet.create({
328
373
  borderRadius: 6,
329
374
  overflow: 'hidden',
330
375
  paddingHorizontal: 10,
331
- minHeight: 32
376
+ // Matches the native sheet row (`index.tsx`). Bloom's web build is what
377
+ // renders on touch tablets, where this dropdown — not the sheet — is the
378
+ // menu, so the row carries the same 44dp target on both platforms.
379
+ minHeight: 44
332
380
  },
333
381
  itemText: {
334
382
  flex: 1,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_index2","_indexWeb","_useInteractionState","_zIndex","_webViewStyle","_shadows","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","contextMenuZIndex","createOverlayZIndex","WebContextMenuContext","createContext","displayName","useWebContextMenuContext","ctx","useContext","Error","ContextMenu","children","position","setPosition","useState","isOpen","useMemo","open","close","jsx","Provider","value","SetPositionContext","ContextMenuTrigger","label","hint","style","triggerRef","useRef","handleContextMenu","useCallback","preventDefault","x","clientX","y","clientY","useEffect","node","current","element","addEventListener","removeEventListener","View","ref","state","hovered","focused","pressed","props","onPress","onLongPress","onFocus","onBlur","accessibilityLabel","accessibilityHint","ContextMenuContent","theme","useTheme","document","handleKeyDown","key","jsxs","Portal","Backdrop","styles","backdrop","dropdown","top","left","backgroundColor","isDark","colors","backgroundSecondary","background","borderColor","borderLight","bloomShadowStyle","ContextMenuItem","disabled","onIn","onMouseEnter","onOut","onMouseLeave","useInteractionState","isHighlighted","handlePress","itemCtx","Pressable","item","contrast50","ItemCtx","ContextMenuItemText","useItemContext","Text","numberOfLines","ellipsizeMode","itemText","color","textTertiary","text","ContextMenuItemIcon","icon","Comp","size","fill","textSecondary","ContextMenuGroup","Fragment","ContextMenuDivider","divider","StyleSheet","create","WEB_POSITION_FIXED","right","bottom","zIndex","pointerEvents","surface","borderRadius","padding","borderWidth","overflow","minWidth","maxWidth","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","minHeight","flex","fontWeight","height","marginVertical"],"sourceRoot":"../../../src","sources":["context-menu/index.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_index2","_indexWeb","_useInteractionState","_zIndex","_webViewStyle","_dropdownPlacement","_shadows","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","contextMenuZIndex","createOverlayZIndex","VIEWPORT_GUTTER","WebContextMenuContext","createContext","displayName","useWebContextMenuContext","ctx","useContext","Error","ContextMenu","children","position","setPosition","useState","isOpen","useMemo","open","close","jsx","Provider","value","SetPositionContext","ContextMenuTrigger","label","hint","style","triggerRef","useRef","handleContextMenu","useCallback","preventDefault","x","clientX","y","clientY","useEffect","node","current","element","addEventListener","removeEventListener","View","ref","state","hovered","focused","pressed","props","onPress","onLongPress","onFocus","onBlur","accessibilityLabel","accessibilityHint","ContextMenuContent","theme","useTheme","menuNode","setMenuNode","placement","setPlacement","attachMenu","useLayoutEffect","window","surface","getBoundingClientRect","resolveDropdownPlacement","anchor","top","bottom","left","right","size","width","height","viewport","innerWidth","innerHeight","offset","gutter","align","document","handleKeyDown","key","jsxs","Portal","Backdrop","styles","backdrop","dropdown","backgroundColor","isDark","colors","backgroundSecondary","background","borderColor","borderLight","bloomShadowStyle","ContextMenuItem","disabled","onIn","onMouseEnter","onOut","onMouseLeave","useInteractionState","isHighlighted","handlePress","itemCtx","Pressable","item","contrast50","ItemCtx","ContextMenuItemText","useItemContext","Text","numberOfLines","ellipsizeMode","itemText","color","textTertiary","text","ContextMenuItemIcon","icon","Comp","fill","textSecondary","ContextMenuGroup","Fragment","ContextMenuDivider","divider","StyleSheet","create","WEB_POSITION_FIXED","zIndex","pointerEvents","borderRadius","padding","borderWidth","overflow","minWidth","maxWidth","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","minHeight","flex","fontWeight","marginVertical"],"sourceRoot":"../../../src","sources":["context-menu/index.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -86,7 +86,13 @@ function SheetShell({
86
86
  enablePanDownToClose: true,
87
87
  detached: true,
88
88
  backdropOpacity: 0.7,
89
- style: sheetStyle,
89
+ style: sheetStyle
90
+ // `SheetShell` draws its own PRESSABLE handle below (tap to dismiss);
91
+ // `BottomSheet`'s built-in one is decorative and defaults to on, so
92
+ // leaving it enabled painted two pills 2dp apart in every Bloom sheet
93
+ // menu, select, popover and context menu.
94
+ ,
95
+ showHandle: false,
90
96
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_context.Context.Provider, {
91
97
  value: context,
92
98
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SheetHandle, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bottomSheet","_zIndex","_useTheme","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SheetShell","control","label","header","onClose","contentStyle","children","theme","useTheme","ref","useRef","closeCallbacks","callQueuedCallbacks","useCallback","queued","current","cb","console","error","open","present","close","push","dismiss","handleDismiss","useImperativeHandle","context","useMemo","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","jsx","BottomSheet","onDismiss","enablePanDownToClose","detached","backdropOpacity","style","jsxs","Context","Provider","value","SheetHandle","onPress","View","accessibilityLabel","styles","body","handleContainer","Pressable","accessibilityHint","hitSlop","top","bottom","left","right","handleBar","text","StyleSheet","create","position","width","alignItems","zIndex","Z_INDEX","floating","height","alignSelf","opacity","paddingTop","paddingHorizontal","paddingBottom"],"sourceRoot":"../../../src","sources":["dialog/SheetShell.tsx"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAAoC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,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;AAlBpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;AACA;AACO,SAASkB,UAAUA,CAAC;EACzBC,OAAO;EACPC,KAAK;EACLC,MAAM;EACNC,OAAO;EACPC,YAAY;EACZC;AACe,CAAC,EAAE;EAClB,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACxC,MAAMC,cAAc,GAAG,IAAAD,aAAM,EAAiB,EAAE,CAAC;EAEjD,MAAME,mBAAmB,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC5C,MAAMC,MAAM,GAAGH,cAAc,CAACI,OAAO;IACrCJ,cAAc,CAACI,OAAO,GAAG,EAAE;IAC3B,KAAK,MAAMC,EAAE,IAAIF,MAAM,EAAE;MACvB,IAAI;QACFE,EAAE,CAAC,CAAC;MACN,CAAC,CAAC,OAAOnC,CAAC,EAAE;QACV,IAAI,OAAOoC,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACC,KAAK,EAAE;UACnDD,OAAO,CAACC,KAAK,CAAC,kCAAkC,EAAErC,CAAC,CAAC;QACtD;MACF;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsC,IAAI,GAAG,IAAAN,kBAAW,EAAC,MAAM;IAC7BJ,GAAG,CAACM,OAAO,EAAEK,OAAO,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,KAAK,GAAG,IAAAR,kBAAW,EAA+BG,EAAE,IAAK;IAC7D,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;MAC5BL,cAAc,CAACI,OAAO,CAACO,IAAI,CAACN,EAAE,CAAC;IACjC;IACAP,GAAG,CAACM,OAAO,EAAEQ,OAAO,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,aAAa,GAAG,IAAAX,kBAAW,EAAC,MAAM;IACtCD,mBAAmB,CAAC,CAAC;IACrBR,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACQ,mBAAmB,EAAER,OAAO,CAAC,CAAC;EAElC,IAAAqB,0BAAmB,EAACxB,OAAO,CAACQ,GAAG,EAAE,OAAO;IAAEU,IAAI;IAAEE;EAAM,CAAC,CAAC,EAAE,CAACF,IAAI,EAAEE,KAAK,CAAC,CAAC;EAExE,MAAMK,OAAO,GAAG,IAAAC,cAAO,EACrB,OAAO;IAAEN,KAAK;IAAEO,cAAc,EAAE;EAAK,CAAC,CAAC,EACvC,CAACP,KAAK,CACR,CAAC;EAED,MAAMQ,UAAU,GAAG,IAAAF,cAAO,EACxB,OAAO;IACLG,QAAQ,EAAE,GAAG;IACbC,eAAe,EAAExB,KAAK,CAACyB,MAAM,CAACC,UAAU;IACxCC,YAAY,EAAE;EAChB,CAAC,CAAC,EACF,CAAC3B,KAAK,CAACyB,MAAM,CAACC,UAAU,CAC1B,CAAC;EAED,oBACE,IAAArD,WAAA,CAAAuD,GAAA,EAAC3D,YAAA,CAAA4D,WAAW;IACV3B,GAAG,EAAEA,GAAI;IACT4B,SAAS,EAAEb,aAAc;IACzBc,oBAAoB;IACpBC,QAAQ;IACRC,eAAe,EAAE,GAAI;IACrBC,KAAK,EAAEZ,UAAW;IAAAvB,QAAA,eAElB,IAAA1B,WAAA,CAAA8D,IAAA,EAAC/D,QAAA,CAAAgE,OAAO,CAACC,QAAQ;MAACC,KAAK,EAAEnB,OAAQ;MAAApB,QAAA,gBAC/B,IAAA1B,WAAA,CAAAuD,GAAA,EAACW,WAAW;QAACC,OAAO,EAAEA,CAAA,KAAM1B,KAAK,CAAC;MAAE,CAAE,CAAC,EACtClB,MAAM,eACP,IAAAvB,WAAA,CAAAuD,GAAA,EAAC5D,YAAA,CAAAyE,IAAI;QACHC,kBAAkB,EAAE/C,KAAM;QAC1BuC,KAAK,EAAE,CAACS,MAAM,CAACC,IAAI,EAAE;UAAEpB,eAAe,EAAExB,KAAK,CAACyB,MAAM,CAACC;QAAW,CAAC,EAAE5B,YAAY,CAAE;QAAAC,QAAA,EAEhFA;MAAQ,CACL,CAAC;IAAA,CACS;EAAC,CACR,CAAC;AAElB;AAEA,SAASwC,WAAWA,CAAC;EAAEC;AAAiC,CAAC,EAAE;EACzD,MAAMxC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,oBACE,IAAA5B,WAAA,CAAAuD,GAAA,EAAC5D,YAAA,CAAAyE,IAAI;IAACP,KAAK,EAAES,MAAM,CAACE,eAAgB;IAAA9C,QAAA,eAClC,IAAA1B,WAAA,CAAAuD,GAAA,EAAC5D,YAAA,CAAA8E,SAAS;MACRN,OAAO,EAAEA,OAAQ;MACjBE,kBAAkB,EAAC,SAAS;MAC5BK,iBAAiB,EAAC,cAAc;MAChCC,OAAO,EAAE;QAAEC,GAAG,EAAE,EAAE;QAAEC,MAAM,EAAE,EAAE;QAAEC,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG,CAAE;MAAArD,QAAA,eAEtD,IAAA1B,WAAA,CAAAuD,GAAA,EAAC5D,YAAA,CAAAyE,IAAI;QAACP,KAAK,EAAE,CAACS,MAAM,CAACU,SAAS,EAAE;UAAE7B,eAAe,EAAExB,KAAK,CAACyB,MAAM,CAAC6B;QAAK,CAAC;MAAE,CAAE;IAAC,CAClE;EAAC,CACR,CAAC;AAEX;AAEA,MAAMX,MAAM,GAAGY,uBAAU,CAACC,MAAM,CAAC;EAC/BX,eAAe,EAAE;IACfY,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,MAAM;IACbC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAEC,eAAO,CAACC,QAAQ;IACxBC,MAAM,EAAE;EACV,CAAC;EACDV,SAAS,EAAE;IACTJ,GAAG,EAAE,CAAC;IACNS,KAAK,EAAE,EAAE;IACTK,MAAM,EAAE,CAAC;IACTpC,YAAY,EAAE,CAAC;IACfqC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE;EACX,CAAC;EACDrB,IAAI,EAAE;IACJsB,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,EAAE;IACrBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bottomSheet","_zIndex","_useTheme","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SheetShell","control","label","header","onClose","contentStyle","children","theme","useTheme","ref","useRef","closeCallbacks","callQueuedCallbacks","useCallback","queued","current","cb","console","error","open","present","close","push","dismiss","handleDismiss","useImperativeHandle","context","useMemo","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","jsx","BottomSheet","onDismiss","enablePanDownToClose","detached","backdropOpacity","style","showHandle","jsxs","Context","Provider","value","SheetHandle","onPress","View","accessibilityLabel","styles","body","handleContainer","Pressable","accessibilityHint","hitSlop","top","bottom","left","right","handleBar","text","StyleSheet","create","position","width","alignItems","zIndex","Z_INDEX","floating","height","alignSelf","opacity","paddingTop","paddingHorizontal","paddingBottom"],"sourceRoot":"../../../src","sources":["dialog/SheetShell.tsx"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,7 @@ var _index = require("../typography/index.js");
25
25
  var _indexWeb = require("../portal/index.web.js");
26
26
  var _zIndex = require("../styles/z-index.js");
27
27
  var _webViewStyle = require("../styles/web-view-style.js");
28
+ var _dropdownPlacement = require("../overlay/dropdown-placement.js");
28
29
  var _shadows = require("../design-tokens/shadows");
29
30
  var _context = require("./context.js");
30
31
  var _jsxRuntime = require("react/jsx-runtime");
@@ -158,24 +159,49 @@ function MenuContent({
158
159
  const theme = (0, _useTheme.useTheme)();
159
160
  const context = (0, _context.useMenuContext)();
160
161
  const [position, setPosition] = (0, _react.useState)(null);
162
+ // The mounted dropdown node, as STATE rather than a bare ref: positioning has
163
+ // to measure it, and `Portal` renders null on its first pass (it resolves its
164
+ // host in its own layout effect), so the node lands one render after
165
+ // `isOpen` flips. An effect keyed only on `isOpen` would measure nothing.
166
+ const [dropdownNode, setDropdownNode] = (0, _react.useState)(null);
167
+ const attachDropdown = (0, _react.useCallback)(node => {
168
+ // The shared ref stays in sync — `Menu`'s outside-pointerdown check reads it.
169
+ if (context.dropdownRef) {
170
+ context.dropdownRef.current = node;
171
+ }
172
+ setDropdownNode(node);
173
+ }, [context.dropdownRef]);
161
174
  (0, _react.useLayoutEffect)(() => {
162
175
  if (!context.isOpen || typeof window === 'undefined') {
163
176
  return;
164
177
  }
165
178
  const triggerNode = context.triggerRef?.current;
166
- if (!triggerNode?.getBoundingClientRect) {
179
+ if (!triggerNode?.getBoundingClientRect || !dropdownNode) {
167
180
  return;
168
181
  }
169
182
  const updatePosition = () => {
170
183
  const rect = triggerNode.getBoundingClientRect();
171
- const width = Math.max(180, rect.width);
172
- const availableRight = window.innerWidth - VIEWPORT_GUTTER;
173
- const left = Math.min(Math.max(VIEWPORT_GUTTER, rect.right - width), Math.max(VIEWPORT_GUTTER, availableRight - width));
174
- const top = Math.min(rect.bottom + MENU_OFFSET, Math.max(VIEWPORT_GUTTER, window.innerHeight - VIEWPORT_GUTTER));
184
+ // Measured BEFORE `minWidth` is applied, so the final surface can only be
185
+ // wider than this and a wider surface wraps less, so the measured height
186
+ // is an upper bound. Erring that way flips early in a tie, never late.
187
+ const surface = dropdownNode.getBoundingClientRect();
188
+ const width = Math.max(surface.width, rect.width);
175
189
  setPosition({
176
190
  position: _webViewStyle.WEB_POSITION_FIXED,
177
- top,
178
- left,
191
+ ...(0, _dropdownPlacement.resolveDropdownPlacement)({
192
+ anchor: rect,
193
+ size: {
194
+ width,
195
+ height: surface.height
196
+ },
197
+ viewport: {
198
+ width: window.innerWidth,
199
+ height: window.innerHeight
200
+ },
201
+ offset: MENU_OFFSET,
202
+ gutter: VIEWPORT_GUTTER,
203
+ align: 'end'
204
+ }),
179
205
  right: undefined,
180
206
  bottom: undefined,
181
207
  minWidth: width
@@ -188,13 +214,13 @@ function MenuContent({
188
214
  window.removeEventListener('resize', updatePosition);
189
215
  window.removeEventListener('scroll', updatePosition, true);
190
216
  };
191
- }, [context.isOpen, context.triggerRef]);
217
+ }, [context.isOpen, context.triggerRef, dropdownNode]);
192
218
  if (!context.isOpen) {
193
219
  return null;
194
220
  }
195
221
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_indexWeb.Portal, {
196
222
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
197
- ref: context.dropdownRef,
223
+ ref: attachDropdown,
198
224
  style: [styles.dropdown, {
199
225
  backgroundColor: theme.isDark ? theme.colors.backgroundSecondary : theme.colors.background,
200
226
  borderColor: theme.colors.borderLight,
@@ -303,6 +329,14 @@ const styles = _reactNative.StyleSheet.create({
303
329
  zIndex: menuZIndex.root
304
330
  },
305
331
  dropdown: {
332
+ // Fixed from the outset, not only once positioned: the `Portal` root is a
333
+ // block container, so a static child would stretch to the full viewport
334
+ // width and the pre-position measurement would under-read the height (less
335
+ // wrapping at a width the surface never actually has). A fixed box
336
+ // shrink-wraps to the same width it ends up with.
337
+ position: _webViewStyle.WEB_POSITION_FIXED,
338
+ top: 0,
339
+ left: 0,
306
340
  borderRadius: 8,
307
341
  padding: 4,
308
342
  borderWidth: 1,
@@ -322,7 +356,10 @@ const styles = _reactNative.StyleSheet.create({
322
356
  borderRadius: 6,
323
357
  overflow: 'hidden',
324
358
  paddingHorizontal: 10,
325
- minHeight: 32
359
+ // Matches the native sheet row (`index.tsx`). Bloom's web build is what
360
+ // renders on touch tablets, where this dropdown — not the sheet — is the
361
+ // menu, so the row carries the same 44dp target on both platforms.
362
+ minHeight: 44
326
363
  },
327
364
  webItemText: {
328
365
  flex: 1,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_indexWeb","_zIndex","_webViewStyle","_shadows","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","menuZIndex","createDropdownZIndex","VIEWPORT_GUTTER","MENU_OFFSET","useMenuControl","id","useId","isOpen","setIsOpen","useState","useMemo","open","close","useMenuControlAsDialogControl","menuControl","ref","useRef","dialogControl","cb","Menu","children","control","defaultControl","activeControl","rootRef","triggerRef","dropdownRef","context","useEffect","document","undefined","handlePointerDown","event","rootNode","current","dropdownNode","eventTarget","target","contains","handleKeyDown","key","addEventListener","removeEventListener","jsx","MenuContext","Provider","value","View","style","styles","root","openRoot","MenuTrigger","label","role","hint","useMenuContext","hovered","setHovered","focused","setFocused","state","pressed","props","onPress","onFocus","onBlur","accessibilityHint","accessibilityLabel","accessibilityRole","MenuContent","theme","useTheme","position","setPosition","useLayoutEffect","window","triggerNode","getBoundingClientRect","updatePosition","rect","width","Math","max","availableRight","innerWidth","left","min","right","top","bottom","innerHeight","WEB_POSITION_FIXED","minWidth","Portal","dropdown","backgroundColor","isDark","colors","backgroundSecondary","background","borderColor","borderLight","bloomShadowStyle","portaledDropdown","MenuItem","rest","handlePress","useCallback","defaultPrevented","isDisabled","Boolean","disabled","isHighlighted","itemContextValue","Pressable","onMouseEnter","onMouseLeave","webItem","contrast50","ItemContext","MenuItemText","useMenuItemContext","Text","webItemText","color","textTertiary","text","MenuItemIcon","icon","Comp","fill","iconLeft","iconRight","size","textSecondary","MenuGroup","Fragment","MenuDivider","divider","StyleSheet","create","zIndex","borderRadius","padding","borderWidth","overflow","surface","pointerEvents","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","minHeight","flex","fontWeight","marginLeft","marginRight","height","marginVertical"],"sourceRoot":"../../../src","sources":["menu/index.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_indexWeb","_zIndex","_webViewStyle","_dropdownPlacement","_shadows","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","menuZIndex","createDropdownZIndex","VIEWPORT_GUTTER","MENU_OFFSET","useMenuControl","id","useId","isOpen","setIsOpen","useState","useMemo","open","close","useMenuControlAsDialogControl","menuControl","ref","useRef","dialogControl","cb","Menu","children","control","defaultControl","activeControl","rootRef","triggerRef","dropdownRef","context","useEffect","document","undefined","handlePointerDown","event","rootNode","current","dropdownNode","eventTarget","target","contains","handleKeyDown","key","addEventListener","removeEventListener","jsx","MenuContext","Provider","value","View","style","styles","root","openRoot","MenuTrigger","label","role","hint","useMenuContext","hovered","setHovered","focused","setFocused","state","pressed","props","onPress","onFocus","onBlur","accessibilityHint","accessibilityLabel","accessibilityRole","MenuContent","theme","useTheme","position","setPosition","setDropdownNode","attachDropdown","useCallback","node","useLayoutEffect","window","triggerNode","getBoundingClientRect","updatePosition","rect","surface","width","Math","max","WEB_POSITION_FIXED","resolveDropdownPlacement","anchor","size","height","viewport","innerWidth","innerHeight","offset","gutter","align","right","bottom","minWidth","Portal","dropdown","backgroundColor","isDark","colors","backgroundSecondary","background","borderColor","borderLight","bloomShadowStyle","portaledDropdown","MenuItem","rest","handlePress","defaultPrevented","isDisabled","Boolean","disabled","isHighlighted","itemContextValue","Pressable","onMouseEnter","onMouseLeave","webItem","contrast50","ItemContext","MenuItemText","useMenuItemContext","Text","webItemText","color","textTertiary","text","MenuItemIcon","icon","Comp","fill","iconLeft","iconRight","textSecondary","MenuGroup","Fragment","MenuDivider","divider","StyleSheet","create","zIndex","top","left","borderRadius","padding","borderWidth","overflow","pointerEvents","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","minHeight","flex","fontWeight","marginLeft","marginRight","marginVertical"],"sourceRoot":"../../../src","sources":["menu/index.web.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAYA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AAKmB,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,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;AAYnB,MAAMkB,UAAU,GAAG,IAAAC,4BAAoB,EAAC,CAAC;AACzC,MAAMC,eAAe,GAAG,CAAC;AACzB,MAAMC,WAAW,GAAG,CAAC;AASd,SAASC,cAAcA,CAAA,EAAqB;EACjD,MAAMC,EAAE,GAAG,IAAAC,YAAK,EAAC,CAAC;EAClB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAE3C,OAAO,IAAAC,cAAO,EACZ,OAAO;IACLL,EAAE;IACFE,MAAM;IACNI,IAAIA,CAAA,EAAG;MACLH,SAAS,CAAC,IAAI,CAAC;IACjB,CAAC;IACDI,KAAKA,CAAA,EAAG;MACNJ,SAAS,CAAC,KAAK,CAAC;IAClB;EACF,CAAC,CAAC,EACF,CAACH,EAAE,EAAEE,MAAM,CACb,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASM,6BAA6BA,CACpCC,WAA6B,EACT;EACpB,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAgE,IAAI,CAAC;EAEvF,OAAO,IAAAN,cAAO,EAAqB,MAAM;IACvC,MAAMO,aAAiC,GAAG;MACxCZ,EAAE,EAAES,WAAW,CAACT,EAAE;MAClBU,GAAG;MACHJ,IAAIA,CAAA,EAAG;QACLG,WAAW,CAACH,IAAI,CAAC,CAAC;MACpB,CAAC;MACDC,KAAKA,CAACM,EAAe,EAAE;QACrBJ,WAAW,CAACF,KAAK,CAAC,CAAC;QACnB,IAAI,OAAOM,EAAE,KAAK,UAAU,EAAE;UAC5BA,EAAE,CAAC,CAAC;QACN;MACF;IACF,CAAC;IACD,OAAOD,aAAa;EACtB,CAAC,EAAE,CAACH,WAAW,CAAC,CAAC;AACnB;AAEO,SAASK,IAAIA,CAAC;EACnBC,QAAQ;EACRC;AAGD,CAAC,EAAE;EACF,MAAMC,cAAc,GAAGlB,cAAc,CAAC,CAAC;EACvC,MAAMmB,aAAa,GAAGF,OAAO,IAAIC,cAAc;EAC/C,MAAML,aAAa,GAAGJ,6BAA6B,CAACU,aAAa,CAAC;EAClE,MAAMC,OAAO,GAAG,IAAAR,aAAM,EAAO,IAAI,CAAC;EAClC,MAAMS,UAAU,GAAG,IAAAT,aAAM,EAAU,IAAI,CAAC;EACxC,MAAMU,WAAW,GAAG,IAAAV,aAAM,EAAU,IAAI,CAAC;EAEzC,MAAMW,OAAO,GAAG,IAAAjB,cAAO,EACrB,OAAO;IACLW,OAAO,EAAEJ,aAAa;IACtBV,MAAM,EAAEgB,aAAa,CAAChB,MAAM;IAC5BkB,UAAU;IACVC;EACF,CAAC,CAAC,EACF,CAACH,aAAa,CAAChB,MAAM,EAAEU,aAAa,CACtC,CAAC;EAED,IAAAW,gBAAS,EAAC,MAAM;IACd,IAAI,CAACL,aAAa,CAAChB,MAAM,IAAI,OAAOsB,QAAQ,KAAK,WAAW,EAAE;MAC5D,OAAOC,SAAS;IAClB;IAEA,MAAMC,iBAAiB,GAAIC,KAAmB,IAAK;MACjD,MAAMC,QAAQ,GAAGT,OAAO,CAACU,OAAwC;MACjE,MAAMC,YAAY,GAAGT,WAAW,CAACQ,OAA6B;MAC9D,MAAME,WAAW,GAAGJ,KAAK,CAACK,MAAc;MACxC,IAAIJ,QAAQ,EAAEK,QAAQ,CAACF,WAAW,CAAC,IAAID,YAAY,EAAEG,QAAQ,CAACF,WAAW,CAAC,EAAE;QAC1E;MACF;MACAb,aAAa,CAACX,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM2B,aAAa,GAAIP,KAAoB,IAAK;MAC9C,IAAIA,KAAK,CAACQ,GAAG,KAAK,QAAQ,EAAE;QAC1BjB,aAAa,CAACX,KAAK,CAAC,CAAC;MACvB;IACF,CAAC;IAEDiB,QAAQ,CAACY,gBAAgB,CAAC,aAAa,EAAEV,iBAAiB,EAAE,IAAI,CAAC;IACjEF,QAAQ,CAACY,gBAAgB,CAAC,SAAS,EAAEF,aAAa,CAAC;IAEnD,OAAO,MAAM;MACXV,QAAQ,CAACa,mBAAmB,CAAC,aAAa,EAAEX,iBAAiB,EAAE,IAAI,CAAC;MACpEF,QAAQ,CAACa,mBAAmB,CAAC,SAAS,EAAEH,aAAa,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAAChB,aAAa,CAAC,CAAC;EAEnB,oBACE,IAAA3C,WAAA,CAAA+D,GAAA,EAAChE,QAAA,CAAAiE,WAAW,CAACC,QAAQ;IAACC,KAAK,EAAEnB,OAAQ;IAAAP,QAAA,eACnC,IAAAxC,WAAA,CAAA+D,GAAA,EAACxE,YAAA,CAAA4E,IAAI;MACHhC,GAAG,EAAES,OAAQ;MACbwB,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE3B,aAAa,CAAChB,MAAM,IAAI0C,MAAM,CAACE,QAAQ,CAAE;MAAA/B,QAAA,EAE7DA;IAAQ,CACL;EAAC,CACa,CAAC;AAE3B;AAEO,SAASgC,WAAWA,CAAC;EAC1BhC,QAAQ;EACRiC,KAAK;EACLC,IAAI,GAAG,QAAQ;EACfC;AACgB,CAAC,EAAE;EACnB,MAAM;IAAElC,OAAO;IAAEI;EAAW,CAAC,GAAG,IAAA+B,uBAAc,EAAC,CAAC;EAChD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAjD,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM,CAACkD,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAnD,eAAQ,EAAC,KAAK,CAAC;EAE7C,OAAOW,QAAQ,CAAC;IACdC,OAAO;IACPwC,KAAK,EAAE;MACLJ,OAAO;MACPE,OAAO;MACPG,OAAO,EAAE;IACX,CAAC;IACDC,KAAK,EAAE;MACLhD,GAAG,EAAEU,UAAU;MACfuC,OAAO,EAAEA,CAAA,KAAM3C,OAAO,CAACV,IAAI,CAAC,CAAC;MAC7BsD,OAAO,EAAEA,CAAA,KAAML,UAAU,CAAC,IAAI,CAAC;MAC/BM,MAAM,EAAEA,CAAA,KAAMN,UAAU,CAAC,KAAK,CAAC;MAC/BO,iBAAiB,EAAEZ,IAAI;MACvBa,kBAAkB,EAAEf,KAAK;MACzBgB,iBAAiB,EAAEf;IACrB;EACF,CAAC,CAAC;AACJ;AAEO,SAASgB,WAAWA,CAAC;EAC1BlD,QAAQ;EACR4B;AAID,CAAC,EAAE;EACF,MAAMuB,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAM7C,OAAO,GAAG,IAAA6B,uBAAc,EAAC,CAAC;EAChC,MAAM,CAACiB,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAjE,eAAQ,EAAmB,IAAI,CAAC;EAChE;EACA;EACA;EACA;EACA,MAAM,CAAC0B,YAAY,EAAEwC,eAAe,CAAC,GAAG,IAAAlE,eAAQ,EAAqB,IAAI,CAAC;EAE1E,MAAMmE,cAAc,GAAG,IAAAC,kBAAW,EAC/BC,IAAiB,IAAK;IACrB;IACA,IAAInD,OAAO,CAACD,WAAW,EAAE;MACvBC,OAAO,CAACD,WAAW,CAACQ,OAAO,GAAG4C,IAAI;IACpC;IACAH,eAAe,CAACG,IAAqC,CAAC;EACxD,CAAC,EACD,CAACnD,OAAO,CAACD,WAAW,CACtB,CAAC;EAED,IAAAqD,sBAAe,EAAC,MAAM;IACpB,IAAI,CAACpD,OAAO,CAACpB,MAAM,IAAI,OAAOyE,MAAM,KAAK,WAAW,EAAE;MACpD;IACF;IAEA,MAAMC,WAAW,GAAGtD,OAAO,CAACF,UAAU,EAAES,OAA6B;IACrE,IAAI,CAAC+C,WAAW,EAAEC,qBAAqB,IAAI,CAAC/C,YAAY,EAAE;MACxD;IACF;IAEA,MAAMgD,cAAc,GAAGA,CAAA,KAAM;MAC3B,MAAMC,IAAI,GAAGH,WAAW,CAACC,qBAAqB,CAAC,CAAC;MAChD;MACA;MACA;MACA,MAAMG,OAAO,GAAGlD,YAAY,CAAC+C,qBAAqB,CAAC,CAAC;MACpD,MAAMI,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACH,OAAO,CAACC,KAAK,EAAEF,IAAI,CAACE,KAAK,CAAC;MAEjDZ,WAAW,CAAC;QACVD,QAAQ,EAAEgB,gCAAkB;QAC5B,GAAG,IAAAC,2CAAwB,EAAC;UAC1BC,MAAM,EAAEP,IAAI;UACZQ,IAAI,EAAE;YAAEN,KAAK;YAAEO,MAAM,EAAER,OAAO,CAACQ;UAAO,CAAC;UACvCC,QAAQ,EAAE;YAAER,KAAK,EAAEN,MAAM,CAACe,UAAU;YAAEF,MAAM,EAAEb,MAAM,CAACgB;UAAY,CAAC;UAClEC,MAAM,EAAE9F,WAAW;UACnB+F,MAAM,EAAEhG,eAAe;UACvBiG,KAAK,EAAE;QACT,CAAC,CAAC;QACFC,KAAK,EAAEtE,SAAS;QAChBuE,MAAM,EAAEvE,SAAS;QACjBwE,QAAQ,EAAEhB;MACZ,CAAC,CAAC;IACJ,CAAC;IAEDH,cAAc,CAAC,CAAC;IAChBH,MAAM,CAACvC,gBAAgB,CAAC,QAAQ,EAAE0C,cAAc,CAAC;IACjDH,MAAM,CAACvC,gBAAgB,CAAC,QAAQ,EAAE0C,cAAc,EAAE,IAAI,CAAC;IAEvD,OAAO,MAAM;MACXH,MAAM,CAACtC,mBAAmB,CAAC,QAAQ,EAAEyC,cAAc,CAAC;MACpDH,MAAM,CAACtC,mBAAmB,CAAC,QAAQ,EAAEyC,cAAc,EAAE,IAAI,CAAC;IAC5D,CAAC;EACH,CAAC,EAAE,CAACxD,OAAO,CAACpB,MAAM,EAAEoB,OAAO,CAACF,UAAU,EAAEU,YAAY,CAAC,CAAC;EAEtD,IAAI,CAACR,OAAO,CAACpB,MAAM,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,oBACE,IAAA3B,WAAA,CAAA+D,GAAA,EAACrE,SAAA,CAAAiI,MAAM;IAAAnF,QAAA,eACL,IAAAxC,WAAA,CAAA+D,GAAA,EAACxE,YAAA,CAAA4E,IAAI;MACHhC,GAAG,EAAE6D,cAAe;MACpB5B,KAAK,EAAE,CACLC,MAAM,CAACuD,QAAQ,EACf;QACEC,eAAe,EAAElC,KAAK,CAACmC,MAAM,GACzBnC,KAAK,CAACoC,MAAM,CAACC,mBAAmB,GAChCrC,KAAK,CAACoC,MAAM,CAACE,UAAU;QAC3BC,WAAW,EAAEvC,KAAK,CAACoC,MAAM,CAACI,WAAW;QACrC,GAAG,IAAAC,yBAAgB,EAAC,GAAG;MACzB,CAAC,EACDhE,KAAK,EACLC,MAAM,CAACgE,gBAAgB,EACvBxC,QAAQ,CACR;MAAArD,QAAA,EAEDA;IAAQ,CACL;EAAC,CACD,CAAC;AAEb;AAEO,SAAS8F,QAAQA,CAAC;EAAE9F,QAAQ;EAAEiC,KAAK;EAAEW,OAAO;EAAEhB,KAAK;EAAE,GAAGmE;AAAoB,CAAC,EAAE;EACpF,MAAM5C,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAM;IAAEnD;EAAQ,CAAC,GAAG,IAAAmC,uBAAc,EAAC,CAAC;EACpC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAjD,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM,CAACkD,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAnD,eAAQ,EAAC,KAAK,CAAC;EAE7C,MAAM2G,WAAW,GAAG,IAAAvC,kBAAW,EAC5BhG,CAA+C,IAAK;IACnDmF,OAAO,CAACnF,CAAC,CAAC;IACV,IAAI,CAACA,CAAC,CAACwI,gBAAgB,EAAE;MACvBhG,OAAO,CAACT,KAAK,CAAC,CAAC;IACjB;EACF,CAAC,EACD,CAACS,OAAO,EAAE2C,OAAO,CACnB,CAAC;EAED,MAAMsD,UAAU,GAAGC,OAAO,CAACJ,IAAI,CAACK,QAAQ,CAAC;EACzC,MAAMC,aAAa,GAAG,CAAChE,OAAO,IAAIE,OAAO,KAAK,CAAC2D,UAAU;EAEzD,MAAMI,gBAAgB,GAAG,IAAAhH,cAAO,EAC9B,OAAO;IAAE8G,QAAQ,EAAEF;EAAW,CAAC,CAAC,EAChC,CAACA,UAAU,CACb,CAAC;EAED,oBACE,IAAA1I,WAAA,CAAA+D,GAAA,EAACxE,YAAA,CAAAwJ,SAAS;IAAA,GACJR,IAAI;IACRhD,iBAAiB,EAAC,EAAE;IACpBC,kBAAkB,EAAEf,KAAM;IAC1BW,OAAO,EAAEoD,WAAY;IACrBnD,OAAO,EAAEA,CAAA,KAAML,UAAU,CAAC,IAAI,CAAE;IAChCM,MAAM,EAAEA,CAAA,KAAMN,UAAU,CAAC,KAAK,CAAE;IAE9BgE,YAAY,EAAEA,CAAA,KAAMlE,UAAU,CAAC,IAAI,CAAC;IACpCmE,YAAY,EAAEA,CAAA,KAAMnE,UAAU,CAAC,KAAK,CAAC;IAEvCV,KAAK,EAAE,CACLC,MAAM,CAAC6E,OAAO,EACdL,aAAa,IAAI;MACfhB,eAAe,EAAElC,KAAK,CAACmC,MAAM,GACzBnC,KAAK,CAACoC,MAAM,CAACoB,UAAU,GACvBxD,KAAK,CAACoC,MAAM,CAACC;IACnB,CAAC,EACD5D,KAAK,CACL;IAAA5B,QAAA,eAEF,IAAAxC,WAAA,CAAA+D,GAAA,EAAChE,QAAA,CAAAqJ,WAAW,CAACnF,QAAQ;MAACC,KAAK,EAAE4E,gBAAiB;MAAAtG,QAAA,EAC3CA;IAAQ,CACW;EAAC,CACd,CAAC;AAEhB;AAEO,SAAS6G,YAAYA,CAAC;EAAE7G,QAAQ;EAAE4B;AAAyB,CAAC,EAAE;EACnE,MAAMuB,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAM;IAAEgD;EAAS,CAAC,GAAG,IAAAU,2BAAkB,EAAC,CAAC;EAEzC,oBACE,IAAAtJ,WAAA,CAAA+D,GAAA,EAACtE,MAAA,CAAA8J,IAAI;IACHnF,KAAK,EAAE,CACLC,MAAM,CAACmF,WAAW,EAClB;MAAEC,KAAK,EAAEb,QAAQ,GAAGjD,KAAK,CAACoC,MAAM,CAAC2B,YAAY,GAAG/D,KAAK,CAACoC,MAAM,CAAC4B;IAAK,CAAC,EACnE,IAAIvF,KAAK,GAAG,CAACA,KAAK,CAAC,GAAG,EAAE,CAAC,CACzB;IAAA5B,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX;AAEO,SAASoH,YAAYA,CAAC;EAAEC,IAAI,EAAEC,IAAI;EAAEjE,QAAQ,GAAG,MAAM;EAAEkE;AAAwB,CAAC,EAAE;EACvF,MAAMpE,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAM;IAAEgD;EAAS,CAAC,GAAG,IAAAU,2BAAkB,EAAC,CAAC;EAEzC,oBACE,IAAAtJ,WAAA,CAAA+D,GAAA,EAACxE,YAAA,CAAA4E,IAAI;IACHC,KAAK,EAAE,CACLyB,QAAQ,KAAK,MAAM,IAAIxB,MAAM,CAAC2F,QAAQ,EACtCnE,QAAQ,KAAK,OAAO,IAAIxB,MAAM,CAAC4F,SAAS,CACxC;IAAAzH,QAAA,eAEF,IAAAxC,WAAA,CAAA+D,GAAA,EAAC+F,IAAI;MACH9C,IAAI,EAAC,IAAI;MACT+C,IAAI,EACFA,IAAI,GACAA,IAAI,CAAC;QAAEnB;MAAS,CAAC,CAAC,GAClBA,QAAQ,GACNjD,KAAK,CAACoC,MAAM,CAAC2B,YAAY,GACzB/D,KAAK,CAACoC,MAAM,CAACmC;IACpB,CACF;EAAC,CACE,CAAC;AAEX;AAEO,SAASC,SAASA,CAAC;EAAE3H;AAAyB,CAAC,EAAE;EACtD,oBAAO,IAAAxC,WAAA,CAAA+D,GAAA,EAAA/D,WAAA,CAAAoK,QAAA;IAAA5H,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB;AAEO,SAAS6H,WAAWA,CAAA,EAAG;EAC5B,MAAM1E,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EAExB,oBACE,IAAA5F,WAAA,CAAA+D,GAAA,EAACxE,YAAA,CAAA4E,IAAI;IACHC,KAAK,EAAE,CACLC,MAAM,CAACiG,OAAO,EACd;MAAEzC,eAAe,EAAElC,KAAK,CAACoC,MAAM,CAACI;IAAY,CAAC;EAC7C,CACH,CAAC;AAEN;AAEA,MAAM9D,MAAM,GAAGkG,uBAAU,CAACC,MAAM,CAAC;EAC/BlG,IAAI,EAAE;IACJuB,QAAQ,EAAE;EACZ,CAAC;EACDtB,QAAQ,EAAE;IACRkG,MAAM,EAAErJ,UAAU,CAACkD;EACrB,CAAC;EACDsD,QAAQ,EAAE;IACR;IACA;IACA;IACA;IACA;IACA/B,QAAQ,EAAEgB,gCAAkB;IAC5B6D,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,YAAY,EAAE,CAAC;IACfC,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,CAAC;IACdC,QAAQ,EAAE,QAAQ;IAClBN,MAAM,EAAErJ,UAAU,CAACqF,OAAO;IAC1B;IACAiB,QAAQ,EAAE;EACZ,CAAC;EACDW,gBAAgB,EAAE;IAChB2C,aAAa,EAAE;EACjB,CAAC;EACD9B,OAAO,EAAE;IACP+B,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,EAAE;IACPC,eAAe,EAAE,CAAC;IAClBR,YAAY,EAAE,CAAC;IACfG,QAAQ,EAAE,QAAQ;IAClBM,iBAAiB,EAAE,EAAE;IACrB;IACA;IACA;IACAC,SAAS,EAAE;EACb,CAAC;EACD9B,WAAW,EAAE;IACX+B,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd,CAAC;EACDxB,QAAQ,EAAE;IACRyB,UAAU,EAAE,CAAC;EACf,CAAC;EACDxB,SAAS,EAAE;IACTyB,WAAW,EAAE,CAAC,CAAC;IACfD,UAAU,EAAE;EACd,CAAC;EACDnB,OAAO,EAAE;IACPrD,MAAM,EAAE,CAAC;IACT0E,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveDropdownPlacement = resolveDropdownPlacement;
7
+ /**
8
+ * Placement arithmetic for a portaled dropdown surface — shared by the web
9
+ * `Menu` and `ContextMenu` forks, which anchor differently (a trigger's rect
10
+ * vs. a right-click point) but need the same fit / flip / clamp decision.
11
+ *
12
+ * Internal: deliberately NOT re-exported from `overlay/index.ts`. The web forks
13
+ * import it directly, the same way `dialog/SheetShell` is shared without
14
+ * becoming public API.
15
+ *
16
+ * Kept as a pure function so the arithmetic is unit-testable on its own — the
17
+ * DOM half (measuring the surface before positioning it) is the call site's
18
+ * job and is verified in a browser.
19
+ */
20
+
21
+ /** Viewport-relative box the surface is positioned against. A right-click point is a zero-area anchor. */
22
+
23
+ /**
24
+ * Clamp into `[min, max]`, resolving an inverted range to `min`.
25
+ *
26
+ * The range inverts exactly when the surface is larger than the viewport minus
27
+ * its gutters. Preferring `min` then pins the surface to the top/left gutter and
28
+ * lets it overflow the far edge, so its FIRST rows stay reachable — the opposite
29
+ * choice would push its start off-screen and strand every row.
30
+ */
31
+ function clamp(value, min, max) {
32
+ return Math.max(min, Math.min(value, max));
33
+ }
34
+
35
+ /**
36
+ * Resolve the viewport-relative `top`/`left` for a dropdown surface.
37
+ *
38
+ * Vertical: sit below the anchor when it fits, else flip above it, else clamp
39
+ * into the viewport. Horizontal: align per `align`, then clamp into the
40
+ * viewport.
41
+ */
42
+ function resolveDropdownPlacement({
43
+ anchor,
44
+ size,
45
+ viewport,
46
+ offset,
47
+ gutter,
48
+ align
49
+ }) {
50
+ const below = anchor.bottom + offset;
51
+ const above = anchor.top - offset - size.height;
52
+ const fitsBelow = below + size.height <= viewport.height - gutter;
53
+ const fitsAbove = above >= gutter;
54
+ const top = fitsBelow ? below : fitsAbove ? above : clamp(below, gutter, viewport.height - gutter - size.height);
55
+ const preferredLeft = align === 'end' ? anchor.right - size.width : anchor.left;
56
+ const left = clamp(preferredLeft, gutter, viewport.width - gutter - size.width);
57
+ return {
58
+ top,
59
+ left
60
+ };
61
+ }
62
+ //# sourceMappingURL=dropdown-placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clamp","value","min","max","Math","resolveDropdownPlacement","anchor","size","viewport","offset","gutter","align","below","bottom","above","top","height","fitsBelow","fitsAbove","preferredLeft","right","width","left"],"sourceRoot":"../../../src","sources":["overlay/dropdown-placement.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AA8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,KAAKA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,EAAU;EAC9D,OAAOC,IAAI,CAACD,GAAG,CAACD,GAAG,EAAEE,IAAI,CAACF,GAAG,CAACD,KAAK,EAAEE,GAAG,CAAC,CAAC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAAC;EACvCC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC,MAAM;EACNC;AACsB,CAAC,EAAqB;EAC5C,MAAMC,KAAK,GAAGN,MAAM,CAACO,MAAM,GAAGJ,MAAM;EACpC,MAAMK,KAAK,GAAGR,MAAM,CAACS,GAAG,GAAGN,MAAM,GAAGF,IAAI,CAACS,MAAM;EAE/C,MAAMC,SAAS,GAAGL,KAAK,GAAGL,IAAI,CAACS,MAAM,IAAIR,QAAQ,CAACQ,MAAM,GAAGN,MAAM;EACjE,MAAMQ,SAAS,GAAGJ,KAAK,IAAIJ,MAAM;EAEjC,MAAMK,GAAG,GAAGE,SAAS,GACjBL,KAAK,GACLM,SAAS,GACPJ,KAAK,GACLd,KAAK,CAACY,KAAK,EAAEF,MAAM,EAAEF,QAAQ,CAACQ,MAAM,GAAGN,MAAM,GAAGH,IAAI,CAACS,MAAM,CAAC;EAElE,MAAMG,aAAa,GAAGR,KAAK,KAAK,KAAK,GAAGL,MAAM,CAACc,KAAK,GAAGb,IAAI,CAACc,KAAK,GAAGf,MAAM,CAACgB,IAAI;EAC/E,MAAMA,IAAI,GAAGtB,KAAK,CAACmB,aAAa,EAAET,MAAM,EAAEF,QAAQ,CAACa,KAAK,GAAGX,MAAM,GAAGH,IAAI,CAACc,KAAK,CAAC;EAE/E,OAAO;IAAEN,GAAG;IAAEO;EAAK,CAAC;AACtB","ignoreList":[]}
@@ -26,6 +26,7 @@ var _index2 = require("../overlay/index.js");
26
26
  var _indexWeb = require("../portal/index.web.js");
27
27
  var _zIndex = require("../styles/z-index.js");
28
28
  var _webViewStyle = require("../styles/web-view-style.js");
29
+ var _dropdownPlacement = require("../overlay/dropdown-placement.js");
29
30
  var _shadows = require("../design-tokens/shadows");
30
31
  var _useInteractionState = require("../hooks/useInteractionState.js");
31
32
  var _Chevron = require("../icons/Chevron.js");
@@ -34,6 +35,8 @@ var _common = require("./common.js");
34
35
  var _jsxRuntime = require("react/jsx-runtime");
35
36
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
36
37
  const selectZIndex = (0, _zIndex.createOverlayZIndex)();
38
+ const VIEWPORT_GUTTER = 8;
39
+ const SELECT_OFFSET = 6;
37
40
 
38
41
  // ---------------------------------------------------------------------------
39
42
  // Context
@@ -60,13 +63,15 @@ function Select({
60
63
  disabled
61
64
  }) {
62
65
  const [isOpen, setIsOpen] = (0, _react.useState)(false);
66
+ const triggerRef = (0, _react.useRef)(null);
63
67
  const ctx = (0, _react.useMemo)(() => ({
64
68
  value,
65
69
  onValueChange,
66
70
  disabled,
67
71
  isOpen,
68
72
  open: () => setIsOpen(true),
69
- close: () => setIsOpen(false)
73
+ close: () => setIsOpen(false),
74
+ triggerRef
70
75
  }), [value, onValueChange, disabled, isOpen]);
71
76
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectContext.Provider, {
72
77
  value: ctx,
@@ -111,6 +116,7 @@ function SelectTrigger({
111
116
  pressed: false
112
117
  },
113
118
  props: {
119
+ ref: ctx.triggerRef,
114
120
  onPress: ctx.open,
115
121
  onFocus,
116
122
  onBlur,
@@ -119,6 +125,7 @@ function SelectTrigger({
119
125
  });
120
126
  }
121
127
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
128
+ ref: ctx.triggerRef,
122
129
  onPress: ctx.open,
123
130
  onFocus: onFocus,
124
131
  onBlur: onBlur,
@@ -184,6 +191,58 @@ function SelectContent({
184
191
  }) {
185
192
  const ctx = useSelectContext();
186
193
  const theme = (0, _useTheme.useTheme)();
194
+ const [position, setPosition] = (0, _react.useState)(null);
195
+ // The mounted dropdown node, as STATE rather than a bare ref: positioning has
196
+ // to measure it, and `Portal` renders null on its first pass (it resolves its
197
+ // host in its own layout effect), so the node lands one render after `isOpen`
198
+ // flips. An effect keyed only on `isOpen` would measure nothing.
199
+ const [dropdownNode, setDropdownNode] = (0, _react.useState)(null);
200
+ const attachDropdown = (0, _react.useCallback)(node => {
201
+ setDropdownNode(node);
202
+ }, []);
203
+
204
+ // Anchored to the trigger, left edges aligned, and never off-screen: sit below
205
+ // when it fits, flip above when it doesn't, clamp when neither. Before this the
206
+ // dropdown had no `top`/`left` at all, so it rendered at the `Portal` root's
207
+ // origin — the viewport's top-left corner — however far from its trigger.
208
+ (0, _react.useLayoutEffect)(() => {
209
+ if (!ctx.isOpen || typeof window === 'undefined') return;
210
+ const triggerNode = ctx.triggerRef.current;
211
+ if (!triggerNode?.getBoundingClientRect || !dropdownNode) return;
212
+ const updatePosition = () => {
213
+ const rect = triggerNode.getBoundingClientRect();
214
+ // Measured BEFORE `minWidth` is applied, so the final surface can only be
215
+ // wider than this — and a wider surface wraps less, so the measured height
216
+ // is an upper bound. Erring that way flips early in a tie, never late.
217
+ const surface = dropdownNode.getBoundingClientRect();
218
+ const width = Math.max(surface.width, rect.width);
219
+ setPosition({
220
+ position: _webViewStyle.WEB_POSITION_FIXED,
221
+ ...(0, _dropdownPlacement.resolveDropdownPlacement)({
222
+ anchor: rect,
223
+ size: {
224
+ width,
225
+ height: surface.height
226
+ },
227
+ viewport: {
228
+ width: window.innerWidth,
229
+ height: window.innerHeight
230
+ },
231
+ offset: SELECT_OFFSET,
232
+ gutter: VIEWPORT_GUTTER,
233
+ align: 'start'
234
+ }),
235
+ minWidth: width
236
+ });
237
+ };
238
+ updatePosition();
239
+ window.addEventListener('resize', updatePosition);
240
+ window.addEventListener('scroll', updatePosition, true);
241
+ return () => {
242
+ window.removeEventListener('resize', updatePosition);
243
+ window.removeEventListener('scroll', updatePosition, true);
244
+ };
245
+ }, [ctx.isOpen, ctx.triggerRef, dropdownNode]);
187
246
  if (!ctx.isOpen) return null;
188
247
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_indexWeb.Portal, {
189
248
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Backdrop, {
@@ -191,13 +250,14 @@ function SelectContent({
191
250
  onPress: ctx.close,
192
251
  accessibilityLabel: "Close selection"
193
252
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
253
+ ref: attachDropdown,
194
254
  accessibilityRole: "list",
195
255
  accessibilityLabel: label,
196
256
  style: [styles.dropdown, {
197
257
  backgroundColor: theme.isDark ? theme.colors.backgroundSecondary : theme.colors.background,
198
258
  borderColor: theme.colors.borderLight,
199
259
  ...(0, _shadows.bloomShadowStyle)('m')
200
- }],
260
+ }, position],
201
261
  children: items.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
202
262
  children: renderItem(item, index, ctx.value)
203
263
  }, valueExtractor(item)))
@@ -212,6 +272,7 @@ function SelectContent({
212
272
  function SelectItem({
213
273
  ref,
214
274
  value,
275
+ label,
215
276
  children,
216
277
  style
217
278
  }) {
@@ -236,7 +297,12 @@ function SelectItem({
236
297
  }), [isSelected, hovered, focused]);
237
298
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
238
299
  ref: ref,
239
- accessibilityRole: "radio",
300
+ accessibilityRole: "radio"
301
+ // The native fork has always applied this; web declared `label` and then
302
+ // dropped it, leaving every option a `role="radio"` with no accessible
303
+ // name for a screen reader to announce.
304
+ ,
305
+ accessibilityLabel: label,
240
306
  accessibilityState: {
241
307
  checked: isSelected
242
308
  },
@@ -340,7 +406,14 @@ const styles = _reactNative.StyleSheet.create({
340
406
  pointerEvents: 'auto'
341
407
  },
342
408
  dropdown: {
343
- position: 'absolute',
409
+ // Fixed from the outset, not only once positioned: the `Portal` root is a
410
+ // block container, so a static child would stretch to the full viewport
411
+ // width and the pre-position measurement would under-read the height (less
412
+ // wrapping at a width the surface never actually has). A fixed box
413
+ // shrink-wraps to the same width it ends up with.
414
+ position: _webViewStyle.WEB_POSITION_FIXED,
415
+ top: 0,
416
+ left: 0,
344
417
  zIndex: selectZIndex.surface,
345
418
  borderRadius: 8,
346
419
  borderWidth: 1,
@@ -354,7 +427,11 @@ const styles = _reactNative.StyleSheet.create({
354
427
  item: {
355
428
  position: 'relative',
356
429
  flexDirection: 'row',
357
- minHeight: 25,
430
+ // Matches the native sheet row (`index.tsx`) and the web `Menu` row. Bloom's
431
+ // web build is what renders on touch tablets, where this dropdown — not the
432
+ // sheet — is the select, so the row carries the same 44dp target on both
433
+ // platforms.
434
+ minHeight: 44,
358
435
  paddingLeft: 30,
359
436
  paddingRight: 8,
360
437
  alignItems: 'center',