@cdx-ui/primitives 0.3.11 → 0.3.13

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.
@@ -9,11 +9,18 @@ var _react = require("react");
9
9
  var _reactNative = require("react-native");
10
10
  function focusDomNode(node) {
11
11
  if (_reactNative.Platform.OS !== 'web') {
12
- return;
12
+ return undefined;
13
13
  }
14
- requestAnimationFrame(() => {
14
+ const focusedAtSchedule = document.activeElement;
15
+ const frame = requestAnimationFrame(() => {
16
+ // Focus moved elsewhere (e.g. to an outside element that dismisses the menu)
17
+ // before this frame; taking it back would strand focus on a closing menu.
18
+ if (document.activeElement !== focusedAtSchedule) {
19
+ return;
20
+ }
15
21
  node?.focus?.();
16
22
  });
23
+ return () => cancelAnimationFrame(frame);
17
24
  }
18
25
 
19
26
  /**
@@ -35,15 +42,14 @@ function useMenuOverlayOpenFocus({
35
42
  const enabled = getItems().filter(([, entry]) => !entry.disabled);
36
43
  if (intent === 'menu' || enabled.length === 0) {
37
44
  setFocusedItemId(undefined);
38
- focusDomNode(overlay.contentRef.current);
39
- return;
45
+ return focusDomNode(overlay.contentRef.current);
40
46
  }
41
47
  const target = intent === 'last' ? enabled.at(-1) : enabled[0];
42
48
  if (!target) {
43
49
  return;
44
50
  }
45
51
  setFocusedItemId(target[0]);
46
- focusDomNode(target[1].node);
52
+ return focusDomNode(target[1].node);
47
53
  }, [open, getItems, overlay, setFocusedItemId]);
48
54
  }
49
55
  function useMenuOverlayCloseFocus(overlay) {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","focusDomNode","node","Platform","OS","requestAnimationFrame","focus","useMenuOverlayOpenFocus","overlay","getItems","setFocusedItemId","open","useEffect","intent","focusOnOpenRef","current","enabled","filter","entry","disabled","length","undefined","contentRef","target","at","useMenuOverlayCloseFocus","closeReasonRef","triggerRef","prevOpenRef","useRef","shouldRestoreFocus"],"sourceRoot":"../../../src","sources":["menu/useMenuOverlayLifecycle.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,SAASE,YAAYA,CAACC,IAA+C,EAAE;EACrE,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB;EACF;EACAC,qBAAqB,CAAC,MAAM;IAC1BH,IAAI,EAAEI,KAAK,GAAG,CAAC;EACjB,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,uBAAuBA,CAAC;EACtCC,OAAO;EACPC,QAAQ;EACRC;AAC8B,CAAC,EAAE;EACjC,MAAMC,IAAI,GAAGH,OAAO,EAAEG,IAAI,IAAI,KAAK;EAEnC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACJ,OAAO,IAAI,CAACG,IAAI,EAAE;MACrB;IACF;IAEA,MAAME,MAAM,GAAGL,OAAO,CAACM,cAAc,CAACC,OAAO;IAC7C,MAAMC,OAAO,GAAGP,QAAQ,CAAC,CAAC,CAACQ,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAK,CAACA,KAAK,CAACC,QAAQ,CAAC;IAEjE,IAAIN,MAAM,KAAK,MAAM,IAAIG,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;MAC7CV,gBAAgB,CAACW,SAAS,CAAC;MAC3BpB,YAAY,CAACO,OAAO,CAACc,UAAU,CAACP,OAAwC,CAAC;MACzE;IACF;IAEA,MAAMQ,MAAM,GAAGV,MAAM,KAAK,MAAM,GAAGG,OAAO,CAACQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAGR,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAACO,MAAM,EAAE;MACX;IACF;IAEAb,gBAAgB,CAACa,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3BtB,YAAY,CAACsB,MAAM,CAAC,CAAC,CAAC,CAACrB,IAAI,CAAC;EAC9B,CAAC,EAAE,CAACS,IAAI,EAAEF,QAAQ,EAAED,OAAO,EAAEE,gBAAgB,CAAC,CAAC;AACjD;AAEO,SAASe,wBAAwBA,CAACjB,OAAgC,EAAE;EACzE,MAAM;IAAEkB,cAAc;IAAEf,IAAI;IAAEgB;EAAW,CAAC,GAAGnB,OAAO;EACpD,MAAMoB,WAAW,GAAG,IAAAC,aAAM,EAAClB,IAAI,CAAC;EAEhC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAID,IAAI,EAAE;MACRe,cAAc,CAACX,OAAO,GAAG,cAAc;IACzC,CAAC,MAAM,IAAIa,WAAW,CAACb,OAAO,IAAIZ,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACvD,MAAM0B,kBAAkB,GACtBJ,cAAc,CAACX,OAAO,KAAK,QAAQ,IACnCW,cAAc,CAACX,OAAO,KAAK,cAAc,IACzCW,cAAc,CAACX,OAAO,KAAK,QAAQ;MAErC,IAAIe,kBAAkB,EAAE;QACrBH,UAAU,CAACZ,OAAO,EAAoCT,KAAK,GAAG,CAAC;MAClE;IACF;IAEAsB,WAAW,CAACb,OAAO,GAAGJ,IAAI;EAC5B,CAAC,EAAE,CAACe,cAAc,EAAEf,IAAI,EAAEgB,UAAU,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","focusDomNode","node","Platform","OS","undefined","focusedAtSchedule","document","activeElement","frame","requestAnimationFrame","focus","cancelAnimationFrame","useMenuOverlayOpenFocus","overlay","getItems","setFocusedItemId","open","useEffect","intent","focusOnOpenRef","current","enabled","filter","entry","disabled","length","contentRef","target","at","useMenuOverlayCloseFocus","closeReasonRef","triggerRef","prevOpenRef","useRef","shouldRestoreFocus"],"sourceRoot":"../../../src","sources":["menu/useMenuOverlayLifecycle.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,SAASE,YAAYA,CAACC,IAA+C,EAAE;EACrE,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,SAAS;EAClB;EACA,MAAMC,iBAAiB,GAAGC,QAAQ,CAACC,aAAa;EAChD,MAAMC,KAAK,GAAGC,qBAAqB,CAAC,MAAM;IACxC;IACA;IACA,IAAIH,QAAQ,CAACC,aAAa,KAAKF,iBAAiB,EAAE;MAChD;IACF;IACAJ,IAAI,EAAES,KAAK,GAAG,CAAC;EACjB,CAAC,CAAC;EACF,OAAO,MAAMC,oBAAoB,CAACH,KAAK,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASI,uBAAuBA,CAAC;EACtCC,OAAO;EACPC,QAAQ;EACRC;AAC8B,CAAC,EAAE;EACjC,MAAMC,IAAI,GAAGH,OAAO,EAAEG,IAAI,IAAI,KAAK;EAEnC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACJ,OAAO,IAAI,CAACG,IAAI,EAAE;MACrB;IACF;IAEA,MAAME,MAAM,GAAGL,OAAO,CAACM,cAAc,CAACC,OAAO;IAC7C,MAAMC,OAAO,GAAGP,QAAQ,CAAC,CAAC,CAACQ,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAK,CAACA,KAAK,CAACC,QAAQ,CAAC;IAEjE,IAAIN,MAAM,KAAK,MAAM,IAAIG,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;MAC7CV,gBAAgB,CAACX,SAAS,CAAC;MAC3B,OAAOJ,YAAY,CAACa,OAAO,CAACa,UAAU,CAACN,OAAwC,CAAC;IAClF;IAEA,MAAMO,MAAM,GAAGT,MAAM,KAAK,MAAM,GAAGG,OAAO,CAACO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAGP,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAACM,MAAM,EAAE;MACX;IACF;IAEAZ,gBAAgB,CAACY,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO3B,YAAY,CAAC2B,MAAM,CAAC,CAAC,CAAC,CAAC1B,IAAI,CAAC;EACrC,CAAC,EAAE,CAACe,IAAI,EAAEF,QAAQ,EAAED,OAAO,EAAEE,gBAAgB,CAAC,CAAC;AACjD;AAEO,SAASc,wBAAwBA,CAAChB,OAAgC,EAAE;EACzE,MAAM;IAAEiB,cAAc;IAAEd,IAAI;IAAEe;EAAW,CAAC,GAAGlB,OAAO;EACpD,MAAMmB,WAAW,GAAG,IAAAC,aAAM,EAACjB,IAAI,CAAC;EAEhC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAID,IAAI,EAAE;MACRc,cAAc,CAACV,OAAO,GAAG,cAAc;IACzC,CAAC,MAAM,IAAIY,WAAW,CAACZ,OAAO,IAAIlB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACvD,MAAM+B,kBAAkB,GACtBJ,cAAc,CAACV,OAAO,KAAK,QAAQ,IACnCU,cAAc,CAACV,OAAO,KAAK,cAAc,IACzCU,cAAc,CAACV,OAAO,KAAK,QAAQ;MAErC,IAAIc,kBAAkB,EAAE;QACrBH,UAAU,CAACX,OAAO,EAAoCV,KAAK,GAAG,CAAC;MAClE;IACF;IAEAsB,WAAW,CAACZ,OAAO,GAAGJ,IAAI;EAC5B,CAAC,EAAE,CAACc,cAAc,EAAEd,IAAI,EAAEe,UAAU,CAAC,CAAC;AACxC","ignoreList":[]}
@@ -125,7 +125,7 @@ function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, options =
125
125
  };
126
126
  const parsed = parsePlacement(placement);
127
127
  const measuredFloating = {
128
- width: options.width === 'anchor' ? anchor.width : floatingLayout.width,
128
+ width: Math.max(options.width === 'anchor' ? anchor.width : floatingLayout.width, options.minWidth ?? 0),
129
129
  height: floatingLayout.height
130
130
  };
131
131
  let side = parsed.side === 'auto' ? resolveAutoSide(anchor, measuredFloating, boundary, offset) : parsed.side;
@@ -177,7 +177,7 @@ function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, options =
177
177
  style: {
178
178
  left,
179
179
  top,
180
- width: options.width === 'anchor' ? anchor.width : undefined,
180
+ width: options.width === 'anchor' ? measuredFloating.width : undefined,
181
181
  minWidth: positionedFloating.width,
182
182
  minHeight: positionedFloating.height,
183
183
  maxWidth: availableWidth,
@@ -1 +1 @@
1
- {"version":3,"names":["OVERLAY_PLACEMENTS","exports","DEFAULT_COLLISION_PADDING","DEFAULT_OFFSET","toInsets","value","top","right","bottom","left","parsePlacement","placement","side","align","split","stringifyPlacement","oppositeSide","availableMainAxis","anchor","boundary","offset","y","x","width","height","mainAxisSize","floating","resolveAutoSide","sides","reduce","best","available","bestAvailable","fits","bestFits","alignCoordinate","anchorStart","anchorSize","floatingSize","reverseLogicalAlignment","resolvedAlign","clamp","min","max","Math","getTransformOrigin","arrow","String","getAnchoredOverlayPosition","floatingLayout","viewport","options","crossOffset","collisionBehavior","collisionPadding","insets","parsed","measuredFloating","opposite","oppositeAvailable","required","availableWidth","availableHeight","positionedFloating","isRTL","arrowBoundaryOffset","anchorCenterX","anchorCenterY","resolvedPlacement","style","undefined","minWidth","minHeight","maxWidth","maxHeight","transformOrigin"],"sourceRoot":"../../../src","sources":["overlay/getAnchoredOverlayPosition.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OVERLAY_PLACEMENTS","exports","DEFAULT_COLLISION_PADDING","DEFAULT_OFFSET","toInsets","value","top","right","bottom","left","parsePlacement","placement","side","align","split","stringifyPlacement","oppositeSide","availableMainAxis","anchor","boundary","offset","y","x","width","height","mainAxisSize","floating","resolveAutoSide","sides","reduce","best","available","bestAvailable","fits","bestFits","alignCoordinate","anchorStart","anchorSize","floatingSize","reverseLogicalAlignment","resolvedAlign","clamp","min","max","Math","getTransformOrigin","arrow","String","getAnchoredOverlayPosition","floatingLayout","viewport","options","crossOffset","collisionBehavior","collisionPadding","insets","parsed","measuredFloating","minWidth","opposite","oppositeAvailable","required","availableWidth","availableHeight","positionedFloating","isRTL","arrowBoundaryOffset","anchorCenterX","anchorCenterY","resolvedPlacement","style","undefined","minHeight","maxWidth","maxHeight","transformOrigin"],"sourceRoot":"../../../src","sources":["overlay/getAnchoredOverlayPosition.ts"],"mappings":"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","ignoreList":[]}
@@ -46,16 +46,30 @@ function useDismissOverlay(open, contentRef, excludeRefs, onDismiss, options = {
46
46
  }
47
47
  return false;
48
48
  };
49
- const dismissIfOutside = e => {
50
- if (isTopmost('outside') && !isInsideOverlay(e.target)) {
49
+ let subscribed = true;
50
+ const dismissIfOutside = target => {
51
+ if (subscribed && isTopmost('outside') && !isInsideOverlay(target)) {
51
52
  onDismissRef.current();
52
53
  }
53
54
  };
54
- document.addEventListener('pointerdown', dismissIfOutside);
55
- document.addEventListener('focusin', dismissIfOutside);
55
+ const handlePointerDown = e => {
56
+ dismissIfOutside(e.target);
57
+ };
58
+ // A nested overlay can move focus into its portaled content from an effect in the same commit
59
+ // that mounts it, before its own effect registers it as topmost. Re-check after that commit's
60
+ // effects have flushed so the nested overlay owns the outside interaction.
61
+ const handleFocusIn = e => {
62
+ const target = e.target;
63
+ queueMicrotask(() => {
64
+ dismissIfOutside(target);
65
+ });
66
+ };
67
+ document.addEventListener('pointerdown', handlePointerDown);
68
+ document.addEventListener('focusin', handleFocusIn);
56
69
  return () => {
57
- document.removeEventListener('pointerdown', dismissIfOutside);
58
- document.removeEventListener('focusin', dismissIfOutside);
70
+ subscribed = false;
71
+ document.removeEventListener('pointerdown', handlePointerDown);
72
+ document.removeEventListener('focusin', handleFocusIn);
59
73
  };
60
74
  }, [open, contentRef, isTopmost]);
61
75
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OverlayStack","refContainsNode","ref","target","current","contains","useDismissOverlay","open","contentRef","excludeRefs","onDismiss","options","onDismissRef","useRef","excludeRefsRef","isTopmost","useOverlayStackRegistration","active","capabilities","useEffect","isInsideOverlay","dismissIfOutside","e","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useDismissOverlay.web.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,SAASE,eAAeA,CAACC,GAAuB,EAAEC,MAAY,EAAW;EACvE,MAAMC,OAAO,GAAGF,GAAG,CAACE,OAAwD;EAC5E,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,CAACC,QAAQ,KAAK,UAAU,EAAE;IACtD,OAAO,KAAK;EACd;EACA,OAAOD,OAAO,CAACC,QAAQ,CAACF,MAAM,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAC/BC,IAAa,EACbC,UAA0B,EAC1BC,WAA6B,EAC7BC,SAAqB,EACrBC,OAA6B,GAAG,CAAC,CAAC,EAClC;EACA,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAACH,SAAS,CAAC;EACtCE,YAAY,CAACR,OAAO,GAAGM,SAAS;EAEhC,MAAMI,cAAc,GAAG,IAAAD,aAAM,EAACJ,WAAW,CAAC;EAC1CK,cAAc,CAACV,OAAO,GAAGK,WAAW;EACpC,MAAM;IAAEM;EAAU,CAAC,GAAG,IAAAC,yCAA2B,EAAC;IAChDC,MAAM,EAAEV,IAAI;IACZW,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,GAAGP;EACL,CAAC,CAAC;EAEF,IAAAQ,gBAAS,EAAC,MAAM;IACd,IAAI,CAACZ,IAAI,EAAE;MACT;IACF;IAEA,MAAMa,eAAe,GAAIjB,MAAY,IAAK;MACxC,IAAIF,eAAe,CAACO,UAAU,EAAEL,MAAM,CAAC,EAAE;QACvC,OAAO,IAAI;MACb;MACA,KAAK,MAAMD,GAAG,IAAIY,cAAc,CAACV,OAAO,EAAE;QACxC,IAAIH,eAAe,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE;UAChC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,MAAMkB,gBAAgB,GAAIC,CAAQ,IAAK;MACrC,IAAIP,SAAS,CAAC,SAAS,CAAC,IAAI,CAACK,eAAe,CAACE,CAAC,CAACnB,MAAc,CAAC,EAAE;QAC9DS,YAAY,CAACR,OAAO,CAAC,CAAC;MACxB;IACF,CAAC;IAEDmB,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEH,gBAAgB,CAAC;IAC1DE,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,gBAAgB,CAAC;IACtD,OAAO,MAAM;MACXE,QAAQ,CAACE,mBAAmB,CAAC,aAAa,EAAEJ,gBAAgB,CAAC;MAC7DE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,gBAAgB,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,CAACd,IAAI,EAAEC,UAAU,EAAEO,SAAS,CAAC,CAAC;AACnC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_OverlayStack","refContainsNode","ref","target","current","contains","useDismissOverlay","open","contentRef","excludeRefs","onDismiss","options","onDismissRef","useRef","excludeRefsRef","isTopmost","useOverlayStackRegistration","active","capabilities","useEffect","isInsideOverlay","subscribed","dismissIfOutside","handlePointerDown","e","handleFocusIn","queueMicrotask","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useDismissOverlay.web.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,SAASE,eAAeA,CAACC,GAAuB,EAAEC,MAAY,EAAW;EACvE,MAAMC,OAAO,GAAGF,GAAG,CAACE,OAAwD;EAC5E,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,CAACC,QAAQ,KAAK,UAAU,EAAE;IACtD,OAAO,KAAK;EACd;EACA,OAAOD,OAAO,CAACC,QAAQ,CAACF,MAAM,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAC/BC,IAAa,EACbC,UAA0B,EAC1BC,WAA6B,EAC7BC,SAAqB,EACrBC,OAA6B,GAAG,CAAC,CAAC,EAClC;EACA,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAACH,SAAS,CAAC;EACtCE,YAAY,CAACR,OAAO,GAAGM,SAAS;EAEhC,MAAMI,cAAc,GAAG,IAAAD,aAAM,EAACJ,WAAW,CAAC;EAC1CK,cAAc,CAACV,OAAO,GAAGK,WAAW;EACpC,MAAM;IAAEM;EAAU,CAAC,GAAG,IAAAC,yCAA2B,EAAC;IAChDC,MAAM,EAAEV,IAAI;IACZW,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,GAAGP;EACL,CAAC,CAAC;EAEF,IAAAQ,gBAAS,EAAC,MAAM;IACd,IAAI,CAACZ,IAAI,EAAE;MACT;IACF;IAEA,MAAMa,eAAe,GAAIjB,MAAY,IAAK;MACxC,IAAIF,eAAe,CAACO,UAAU,EAAEL,MAAM,CAAC,EAAE;QACvC,OAAO,IAAI;MACb;MACA,KAAK,MAAMD,GAAG,IAAIY,cAAc,CAACV,OAAO,EAAE;QACxC,IAAIH,eAAe,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE;UAChC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,IAAIkB,UAAU,GAAG,IAAI;IACrB,MAAMC,gBAAgB,GAAInB,MAAY,IAAK;MACzC,IAAIkB,UAAU,IAAIN,SAAS,CAAC,SAAS,CAAC,IAAI,CAACK,eAAe,CAACjB,MAAM,CAAC,EAAE;QAClES,YAAY,CAACR,OAAO,CAAC,CAAC;MACxB;IACF,CAAC;IAED,MAAMmB,iBAAiB,GAAIC,CAAQ,IAAK;MACtCF,gBAAgB,CAACE,CAAC,CAACrB,MAAc,CAAC;IACpC,CAAC;IACD;IACA;IACA;IACA,MAAMsB,aAAa,GAAID,CAAQ,IAAK;MAClC,MAAMrB,MAAM,GAAGqB,CAAC,CAACrB,MAAc;MAC/BuB,cAAc,CAAC,MAAM;QACnBJ,gBAAgB,CAACnB,MAAM,CAAC;MAC1B,CAAC,CAAC;IACJ,CAAC;IAEDwB,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEL,iBAAiB,CAAC;IAC3DI,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;IACnD,OAAO,MAAM;MACXJ,UAAU,GAAG,KAAK;MAClBM,QAAQ,CAACE,mBAAmB,CAAC,aAAa,EAAEN,iBAAiB,CAAC;MAC9DI,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAAClB,IAAI,EAAEC,UAAU,EAAEO,SAAS,CAAC,CAAC;AACnC","ignoreList":[]}
@@ -19,7 +19,7 @@ var _dataAttributes = require("../utils/dataAttributes");
19
19
  * platform-aware `dataAttrs` object so the styled layer can emit interaction-state
20
20
  * `data-*` attributes (Standard 1) without re-implementing the toggle machinery.
21
21
  *
22
- * Standards mapping (per `.cursor/plans/primitive_design_standards_0d0ca4b1.plan.md`):
22
+ * Standards mapping:
23
23
  * - Standard 3 #1 — controlled state via `useToggleState`.
24
24
  * - Standard 3 #2 — `role="switch"` semantics (consumer wires to host).
25
25
  *
@@ -4,11 +4,18 @@ import { useEffect, useRef } from 'react';
4
4
  import { Platform } from 'react-native';
5
5
  function focusDomNode(node) {
6
6
  if (Platform.OS !== 'web') {
7
- return;
7
+ return undefined;
8
8
  }
9
- requestAnimationFrame(() => {
9
+ const focusedAtSchedule = document.activeElement;
10
+ const frame = requestAnimationFrame(() => {
11
+ // Focus moved elsewhere (e.g. to an outside element that dismisses the menu)
12
+ // before this frame; taking it back would strand focus on a closing menu.
13
+ if (document.activeElement !== focusedAtSchedule) {
14
+ return;
15
+ }
10
16
  node?.focus?.();
11
17
  });
18
+ return () => cancelAnimationFrame(frame);
12
19
  }
13
20
 
14
21
  /**
@@ -30,15 +37,14 @@ export function useMenuOverlayOpenFocus({
30
37
  const enabled = getItems().filter(([, entry]) => !entry.disabled);
31
38
  if (intent === 'menu' || enabled.length === 0) {
32
39
  setFocusedItemId(undefined);
33
- focusDomNode(overlay.contentRef.current);
34
- return;
40
+ return focusDomNode(overlay.contentRef.current);
35
41
  }
36
42
  const target = intent === 'last' ? enabled.at(-1) : enabled[0];
37
43
  if (!target) {
38
44
  return;
39
45
  }
40
46
  setFocusedItemId(target[0]);
41
- focusDomNode(target[1].node);
47
+ return focusDomNode(target[1].node);
42
48
  }, [open, getItems, overlay, setFocusedItemId]);
43
49
  }
44
50
  export function useMenuOverlayCloseFocus(overlay) {
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","Platform","focusDomNode","node","OS","requestAnimationFrame","focus","useMenuOverlayOpenFocus","overlay","getItems","setFocusedItemId","open","intent","focusOnOpenRef","current","enabled","filter","entry","disabled","length","undefined","contentRef","target","at","useMenuOverlayCloseFocus","closeReasonRef","triggerRef","prevOpenRef","shouldRestoreFocus"],"sourceRoot":"../../../src","sources":["menu/useMenuOverlayLifecycle.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAQ,cAAc;AAUvC,SAASC,YAAYA,CAACC,IAA+C,EAAE;EACrE,IAAIF,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;IACzB;EACF;EACAC,qBAAqB,CAAC,MAAM;IAC1BF,IAAI,EAAEG,KAAK,GAAG,CAAC;EACjB,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAAC;EACtCC,OAAO;EACPC,QAAQ;EACRC;AAC8B,CAAC,EAAE;EACjC,MAAMC,IAAI,GAAGH,OAAO,EAAEG,IAAI,IAAI,KAAK;EAEnCZ,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,OAAO,IAAI,CAACG,IAAI,EAAE;MACrB;IACF;IAEA,MAAMC,MAAM,GAAGJ,OAAO,CAACK,cAAc,CAACC,OAAO;IAC7C,MAAMC,OAAO,GAAGN,QAAQ,CAAC,CAAC,CAACO,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAK,CAACA,KAAK,CAACC,QAAQ,CAAC;IAEjE,IAAIN,MAAM,KAAK,MAAM,IAAIG,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;MAC7CT,gBAAgB,CAACU,SAAS,CAAC;MAC3BlB,YAAY,CAACM,OAAO,CAACa,UAAU,CAACP,OAAwC,CAAC;MACzE;IACF;IAEA,MAAMQ,MAAM,GAAGV,MAAM,KAAK,MAAM,GAAGG,OAAO,CAACQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAGR,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAACO,MAAM,EAAE;MACX;IACF;IAEAZ,gBAAgB,CAACY,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3BpB,YAAY,CAACoB,MAAM,CAAC,CAAC,CAAC,CAACnB,IAAI,CAAC;EAC9B,CAAC,EAAE,CAACQ,IAAI,EAAEF,QAAQ,EAAED,OAAO,EAAEE,gBAAgB,CAAC,CAAC;AACjD;AAEA,OAAO,SAASc,wBAAwBA,CAAChB,OAAgC,EAAE;EACzE,MAAM;IAAEiB,cAAc;IAAEd,IAAI;IAAEe;EAAW,CAAC,GAAGlB,OAAO;EACpD,MAAMmB,WAAW,GAAG3B,MAAM,CAACW,IAAI,CAAC;EAEhCZ,SAAS,CAAC,MAAM;IACd,IAAIY,IAAI,EAAE;MACRc,cAAc,CAACX,OAAO,GAAG,cAAc;IACzC,CAAC,MAAM,IAAIa,WAAW,CAACb,OAAO,IAAIb,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;MACvD,MAAMwB,kBAAkB,GACtBH,cAAc,CAACX,OAAO,KAAK,QAAQ,IACnCW,cAAc,CAACX,OAAO,KAAK,cAAc,IACzCW,cAAc,CAACX,OAAO,KAAK,QAAQ;MAErC,IAAIc,kBAAkB,EAAE;QACrBF,UAAU,CAACZ,OAAO,EAAoCR,KAAK,GAAG,CAAC;MAClE;IACF;IAEAqB,WAAW,CAACb,OAAO,GAAGH,IAAI;EAC5B,CAAC,EAAE,CAACc,cAAc,EAAEd,IAAI,EAAEe,UAAU,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","Platform","focusDomNode","node","OS","undefined","focusedAtSchedule","document","activeElement","frame","requestAnimationFrame","focus","cancelAnimationFrame","useMenuOverlayOpenFocus","overlay","getItems","setFocusedItemId","open","intent","focusOnOpenRef","current","enabled","filter","entry","disabled","length","contentRef","target","at","useMenuOverlayCloseFocus","closeReasonRef","triggerRef","prevOpenRef","shouldRestoreFocus"],"sourceRoot":"../../../src","sources":["menu/useMenuOverlayLifecycle.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAQ,cAAc;AAUvC,SAASC,YAAYA,CAACC,IAA+C,EAAE;EACrE,IAAIF,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,SAAS;EAClB;EACA,MAAMC,iBAAiB,GAAGC,QAAQ,CAACC,aAAa;EAChD,MAAMC,KAAK,GAAGC,qBAAqB,CAAC,MAAM;IACxC;IACA;IACA,IAAIH,QAAQ,CAACC,aAAa,KAAKF,iBAAiB,EAAE;MAChD;IACF;IACAH,IAAI,EAAEQ,KAAK,GAAG,CAAC;EACjB,CAAC,CAAC;EACF,OAAO,MAAMC,oBAAoB,CAACH,KAAK,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,uBAAuBA,CAAC;EACtCC,OAAO;EACPC,QAAQ;EACRC;AAC8B,CAAC,EAAE;EACjC,MAAMC,IAAI,GAAGH,OAAO,EAAEG,IAAI,IAAI,KAAK;EAEnClB,SAAS,CAAC,MAAM;IACd,IAAI,CAACe,OAAO,IAAI,CAACG,IAAI,EAAE;MACrB;IACF;IAEA,MAAMC,MAAM,GAAGJ,OAAO,CAACK,cAAc,CAACC,OAAO;IAC7C,MAAMC,OAAO,GAAGN,QAAQ,CAAC,CAAC,CAACO,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAK,CAACA,KAAK,CAACC,QAAQ,CAAC;IAEjE,IAAIN,MAAM,KAAK,MAAM,IAAIG,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;MAC7CT,gBAAgB,CAACX,SAAS,CAAC;MAC3B,OAAOH,YAAY,CAACY,OAAO,CAACY,UAAU,CAACN,OAAwC,CAAC;IAClF;IAEA,MAAMO,MAAM,GAAGT,MAAM,KAAK,MAAM,GAAGG,OAAO,CAACO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAGP,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAACM,MAAM,EAAE;MACX;IACF;IAEAX,gBAAgB,CAACW,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAOzB,YAAY,CAACyB,MAAM,CAAC,CAAC,CAAC,CAACxB,IAAI,CAAC;EACrC,CAAC,EAAE,CAACc,IAAI,EAAEF,QAAQ,EAAED,OAAO,EAAEE,gBAAgB,CAAC,CAAC;AACjD;AAEA,OAAO,SAASa,wBAAwBA,CAACf,OAAgC,EAAE;EACzE,MAAM;IAAEgB,cAAc;IAAEb,IAAI;IAAEc;EAAW,CAAC,GAAGjB,OAAO;EACpD,MAAMkB,WAAW,GAAGhC,MAAM,CAACiB,IAAI,CAAC;EAEhClB,SAAS,CAAC,MAAM;IACd,IAAIkB,IAAI,EAAE;MACRa,cAAc,CAACV,OAAO,GAAG,cAAc;IACzC,CAAC,MAAM,IAAIY,WAAW,CAACZ,OAAO,IAAInB,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;MACvD,MAAM6B,kBAAkB,GACtBH,cAAc,CAACV,OAAO,KAAK,QAAQ,IACnCU,cAAc,CAACV,OAAO,KAAK,cAAc,IACzCU,cAAc,CAACV,OAAO,KAAK,QAAQ;MAErC,IAAIa,kBAAkB,EAAE;QACrBF,UAAU,CAACX,OAAO,EAAoCT,KAAK,GAAG,CAAC;MAClE;IACF;IAEAqB,WAAW,CAACZ,OAAO,GAAGH,IAAI;EAC5B,CAAC,EAAE,CAACa,cAAc,EAAEb,IAAI,EAAEc,UAAU,CAAC,CAAC;AACxC","ignoreList":[]}
@@ -120,7 +120,7 @@ export function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, opt
120
120
  };
121
121
  const parsed = parsePlacement(placement);
122
122
  const measuredFloating = {
123
- width: options.width === 'anchor' ? anchor.width : floatingLayout.width,
123
+ width: Math.max(options.width === 'anchor' ? anchor.width : floatingLayout.width, options.minWidth ?? 0),
124
124
  height: floatingLayout.height
125
125
  };
126
126
  let side = parsed.side === 'auto' ? resolveAutoSide(anchor, measuredFloating, boundary, offset) : parsed.side;
@@ -172,7 +172,7 @@ export function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, opt
172
172
  style: {
173
173
  left,
174
174
  top,
175
- width: options.width === 'anchor' ? anchor.width : undefined,
175
+ width: options.width === 'anchor' ? measuredFloating.width : undefined,
176
176
  minWidth: positionedFloating.width,
177
177
  minHeight: positionedFloating.height,
178
178
  maxWidth: availableWidth,
@@ -1 +1 @@
1
- {"version":3,"names":["OVERLAY_PLACEMENTS","DEFAULT_COLLISION_PADDING","DEFAULT_OFFSET","toInsets","value","top","right","bottom","left","parsePlacement","placement","side","align","split","stringifyPlacement","oppositeSide","availableMainAxis","anchor","boundary","offset","y","x","width","height","mainAxisSize","floating","resolveAutoSide","sides","reduce","best","available","bestAvailable","fits","bestFits","alignCoordinate","anchorStart","anchorSize","floatingSize","reverseLogicalAlignment","resolvedAlign","clamp","min","max","Math","getTransformOrigin","arrow","String","getAnchoredOverlayPosition","floatingLayout","viewport","options","crossOffset","collisionBehavior","collisionPadding","insets","parsed","measuredFloating","opposite","oppositeAvailable","required","availableWidth","availableHeight","positionedFloating","isRTL","arrowBoundaryOffset","anchorCenterX","anchorCenterY","resolvedPlacement","style","undefined","minWidth","minHeight","maxWidth","maxHeight","transformOrigin"],"sourceRoot":"../../../src","sources":["overlay/getAnchoredOverlayPosition.ts"],"mappings":";;AAIA,OAAO,MAAMA,kBAAkB,GAAG,CAChC,MAAM,EACN,YAAY,EACZ,UAAU,EACV,KAAK,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,aAAa,EACb,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,UAAU,CACF;AA+CV,MAAMC,yBAAyB,GAAG,CAAC;AACnC,MAAMC,cAAc,GAAG,CAAC;AAExB,SAASC,QAAQA,CAACC,KAA+C,EAAc;EAC7E,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAO;MAAEC,GAAG,EAAED,KAAK;MAAEE,KAAK,EAAEF,KAAK;MAAEG,MAAM,EAAEH,KAAK;MAAEI,IAAI,EAAEJ;IAAM,CAAC;EACjE;EAEA,OAAO;IACLC,GAAG,EAAED,KAAK,EAAEC,GAAG,IAAIJ,yBAAyB;IAC5CK,KAAK,EAAEF,KAAK,EAAEE,KAAK,IAAIL,yBAAyB;IAChDM,MAAM,EAAEH,KAAK,EAAEG,MAAM,IAAIN,yBAAyB;IAClDO,IAAI,EAAEJ,KAAK,EAAEI,IAAI,IAAIP;EACvB,CAAC;AACH;AAEA,SAASQ,cAAcA,CACrBC,SAA2B,EACuC;EAClE,MAAM,CAACC,IAAI,EAAEC,KAAK,GAAG,QAAQ,CAAC,GAAGF,SAAS,CAACG,KAAK,CAAC,GAAG,CAGnD;EACD,OAAO;IAAEF,IAAI;IAAEC;EAAM,CAAC;AACxB;AAEA,SAASE,kBAAkBA,CAAC;EAC1BH,IAAI;EACJC;AACwB,CAAC,EAAwC;EACjE,OAAQA,KAAK,KAAK,QAAQ,GAAGD,IAAI,GAAG,GAAGA,IAAI,IAAIC,KAAK,EAAE;AACxD;AAEA,SAASG,YAAYA,CAACJ,IAAiB,EAAe;EACpD,QAAQA,IAAI;IACV,KAAK,KAAK;MACR,OAAO,QAAQ;IACjB,KAAK,OAAO;MACV,OAAO,MAAM;IACf,KAAK,QAAQ;MACX,OAAO,KAAK;IACd,KAAK,MAAM;MACT,OAAO,OAAO;EAClB;AACF;AAEA,SAASK,iBAAiBA,CACxBL,IAAiB,EACjBM,MAAoB,EACpBC,QAAkB,EAClBC,MAAc,EACN;EACR,QAAQR,IAAI;IACV,KAAK,KAAK;MACR,OAAOM,MAAM,CAACG,CAAC,GAAGD,MAAM,GAAGD,QAAQ,CAACb,GAAG;IACzC,KAAK,OAAO;MACV,OAAOa,QAAQ,CAACZ,KAAK,IAAIW,MAAM,CAACI,CAAC,GAAGJ,MAAM,CAACK,KAAK,GAAGH,MAAM,CAAC;IAC5D,KAAK,QAAQ;MACX,OAAOD,QAAQ,CAACX,MAAM,IAAIU,MAAM,CAACG,CAAC,GAAGH,MAAM,CAACM,MAAM,GAAGJ,MAAM,CAAC;IAC9D,KAAK,MAAM;MACT,OAAOF,MAAM,CAACI,CAAC,GAAGF,MAAM,GAAGD,QAAQ,CAACV,IAAI;EAC5C;AACF;AAEA,SAASgB,YAAYA,CAACb,IAAiB,EAAEc,QAAwB,EAAU;EACzE,OAAOd,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,QAAQ,GAAGc,QAAQ,CAACF,MAAM,GAAGE,QAAQ,CAACH,KAAK;AAC/E;AAEA,SAASI,eAAeA,CACtBT,MAAoB,EACpBQ,QAAwB,EACxBP,QAAkB,EAClBC,MAAc,EACD;EACb,MAAMQ,KAAoB,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;EAC/D,OAAOA,KAAK,CAACC,MAAM,CAAC,CAACC,IAAI,EAAElB,IAAI,KAAK;IAClC,MAAMmB,SAAS,GAAGd,iBAAiB,CAACL,IAAI,EAAEM,MAAM,EAAEC,QAAQ,EAAEC,MAAM,CAAC;IACnE,MAAMY,aAAa,GAAGf,iBAAiB,CAACa,IAAI,EAAEZ,MAAM,EAAEC,QAAQ,EAAEC,MAAM,CAAC;IACvE,MAAMa,IAAI,GAAGF,SAAS,IAAIN,YAAY,CAACb,IAAI,EAAEc,QAAQ,CAAC;IACtD,MAAMQ,QAAQ,GAAGF,aAAa,IAAIP,YAAY,CAACK,IAAI,EAAEJ,QAAQ,CAAC;IAE9D,IAAIO,IAAI,KAAKC,QAAQ,EAAE;MACrB,OAAOD,IAAI,GAAGrB,IAAI,GAAGkB,IAAI;IAC3B;IAEA,OAAOC,SAAS,GAAGC,aAAa,GAAGpB,IAAI,GAAGkB,IAAI;EAChD,CAAC,CAAC;AACJ;AAEA,SAASK,eAAeA,CACtBC,WAAmB,EACnBC,UAAkB,EAClBC,YAAoB,EACpBzB,KAAmB,EACnB0B,uBAAgC,EACxB;EACR,MAAMC,aAAa,GACjBD,uBAAuB,IAAI1B,KAAK,KAAK,QAAQ,GAAIA,KAAK,KAAK,OAAO,GAAG,KAAK,GAAG,OAAO,GAAIA,KAAK;EAE/F,IAAI2B,aAAa,KAAK,OAAO,EAAE;IAC7B,OAAOJ,WAAW;EACpB;EAEA,IAAII,aAAa,KAAK,KAAK,EAAE;IAC3B,OAAOJ,WAAW,GAAGC,UAAU,GAAGC,YAAY;EAChD;EAEA,OAAOF,WAAW,GAAG,CAACC,UAAU,GAAGC,YAAY,IAAI,CAAC;AACtD;AAEA,SAASG,KAAKA,CAACpC,KAAa,EAAEqC,GAAW,EAAEC,GAAW,EAAU;EAC9D,IAAIA,GAAG,GAAGD,GAAG,EAAE,OAAOA,GAAG;EACzB,OAAOE,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACtC,KAAK,EAAEqC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC5C;AAEA,SAASE,kBAAkBA,CACzBjC,IAAiB,EACjBkC,KAAuC,EACvCpB,QAAwB,EAChB;EACR,MAAMJ,CAAC,GAAGwB,KAAK,CAACxB,CAAC,IAAII,QAAQ,CAACH,KAAK,GAAG,CAAC;EACvC,MAAMF,CAAC,GAAGyB,KAAK,CAACzB,CAAC,IAAIK,QAAQ,CAACF,MAAM,GAAG,CAAC;EAExC,QAAQZ,IAAI;IACV,KAAK,KAAK;MACR,OAAO,GAAGmC,MAAM,CAACzB,CAAC,CAAC,SAAS;IAC9B,KAAK,OAAO;MACV,OAAO,MAAMyB,MAAM,CAAC1B,CAAC,CAAC,IAAI;IAC5B,KAAK,QAAQ;MACX,OAAO,GAAG0B,MAAM,CAACzB,CAAC,CAAC,OAAO;IAC5B,KAAK,MAAM;MACT,OAAO,QAAQyB,MAAM,CAAC1B,CAAC,CAAC,IAAI;EAChC;AACF;AAEA,OAAO,SAAS2B,0BAA0BA,CACxC9B,MAAoB,EACpB+B,cAA8B,EAC9BC,QAA2C,EAC3CC,OAAuC,GAAG,CAAC,CAAC,EACnB;EACzB,MAAMxC,SAAS,GAAGwC,OAAO,CAACxC,SAAS,IAAI,cAAc;EACrD,MAAMS,MAAM,GAAG+B,OAAO,CAAC/B,MAAM,IAAIjB,cAAc;EAC/C,MAAMiD,WAAW,GAAGD,OAAO,CAACC,WAAW,IAAI,CAAC;EAC5C,MAAMC,iBAAiB,GAAGF,OAAO,CAACE,iBAAiB,IAAI,YAAY;EACnE,MAAMC,gBAAgB,GAAGlD,QAAQ,CAAC+C,OAAO,CAACG,gBAAgB,CAAC;EAC3D,MAAMC,MAAkB,GAAG;IACzBjD,GAAG,EAAE6C,OAAO,CAACI,MAAM,EAAEjD,GAAG,IAAI,CAAC;IAC7BC,KAAK,EAAE4C,OAAO,CAACI,MAAM,EAAEhD,KAAK,IAAI,CAAC;IACjCC,MAAM,EAAE2C,OAAO,CAACI,MAAM,EAAE/C,MAAM,IAAI,CAAC;IACnCC,IAAI,EAAE0C,OAAO,CAACI,MAAM,EAAE9C,IAAI,IAAI;EAChC,CAAC;EACD,MAAMU,QAAkB,GAAG;IACzBb,GAAG,EAAEiD,MAAM,CAACjD,GAAG,GAAGgD,gBAAgB,CAAChD,GAAG;IACtCC,KAAK,EAAE2C,QAAQ,CAAC3B,KAAK,GAAGgC,MAAM,CAAChD,KAAK,GAAG+C,gBAAgB,CAAC/C,KAAK;IAC7DC,MAAM,EAAE0C,QAAQ,CAAC1B,MAAM,GAAG+B,MAAM,CAAC/C,MAAM,GAAG8C,gBAAgB,CAAC9C,MAAM;IACjEC,IAAI,EAAE8C,MAAM,CAAC9C,IAAI,GAAG6C,gBAAgB,CAAC7C;EACvC,CAAC;EACD,MAAM+C,MAAM,GAAG9C,cAAc,CAACC,SAAS,CAAC;EACxC,MAAM8C,gBAAgC,GAAG;IACvClC,KAAK,EAAE4B,OAAO,CAAC5B,KAAK,KAAK,QAAQ,GAAGL,MAAM,CAACK,KAAK,GAAG0B,cAAc,CAAC1B,KAAK;IACvEC,MAAM,EAAEyB,cAAc,CAACzB;EACzB,CAAC;EAED,IAAIZ,IAAI,GACN4C,MAAM,CAAC5C,IAAI,KAAK,MAAM,GAClBe,eAAe,CAACT,MAAM,EAAEuC,gBAAgB,EAAEtC,QAAQ,EAAEC,MAAM,CAAC,GAC3DoC,MAAM,CAAC5C,IAAI;EACjB,MAAMC,KAAK,GAAG2C,MAAM,CAAC3C,KAAK;EAE1B,IAAI2C,MAAM,CAAC5C,IAAI,KAAK,MAAM,IAAIyC,iBAAiB,KAAK,MAAM,EAAE;IAC1D,MAAMK,QAAQ,GAAG1C,YAAY,CAACJ,IAAI,CAAC;IACnC,MAAMmB,SAAS,GAAGd,iBAAiB,CAACL,IAAI,EAAEM,MAAM,EAAEC,QAAQ,EAAEC,MAAM,CAAC;IACnE,MAAMuC,iBAAiB,GAAG1C,iBAAiB,CAACyC,QAAQ,EAAExC,MAAM,EAAEC,QAAQ,EAAEC,MAAM,CAAC;IAC/E,MAAMwC,QAAQ,GAAGnC,YAAY,CAACb,IAAI,EAAE6C,gBAAgB,CAAC;IAErD,IAAI1B,SAAS,GAAG6B,QAAQ,IAAID,iBAAiB,GAAG5B,SAAS,EAAE;MACzDnB,IAAI,GAAG8C,QAAQ;IACjB;EACF;EAEA,MAAMG,cAAc,GAClBjD,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,OAAO,GAC/BgC,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE1B,iBAAiB,CAACL,IAAI,EAAEM,MAAM,EAAEC,QAAQ,EAAEC,MAAM,CAAC,CAAC,GAC9DwB,IAAI,CAACD,GAAG,CAAC,CAAC,EAAExB,QAAQ,CAACZ,KAAK,GAAGY,QAAQ,CAACV,IAAI,CAAC;EACjD,MAAMqD,eAAe,GACnBlD,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,QAAQ,GAC/BgC,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE1B,iBAAiB,CAACL,IAAI,EAAEM,MAAM,EAAEC,QAAQ,EAAEC,MAAM,CAAC,CAAC,GAC9DwB,IAAI,CAACD,GAAG,CAAC,CAAC,EAAExB,QAAQ,CAACX,MAAM,GAAGW,QAAQ,CAACb,GAAG,CAAC;EACjD,MAAMyD,kBAAkC,GAAG;IACzCxC,KAAK,EAAEqB,IAAI,CAACF,GAAG,CAACe,gBAAgB,CAAClC,KAAK,EAAEsC,cAAc,CAAC;IACvDrC,MAAM,EAAEoB,IAAI,CAACF,GAAG,CAACe,gBAAgB,CAACjC,MAAM,EAAEsC,eAAe;EAC3D,CAAC;EAED,IAAIrD,IAAY;EAChB,IAAIH,GAAW;EAEf,IAAIM,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,QAAQ,EAAE;IACvCH,IAAI,GACF0B,eAAe,CACbjB,MAAM,CAACI,CAAC,EACRJ,MAAM,CAACK,KAAK,EACZwC,kBAAkB,CAACxC,KAAK,EACxBV,KAAK,EACLsC,OAAO,CAACa,KAAK,IAAI,KACnB,CAAC,GAAGZ,WAAW;IACjB9C,GAAG,GACDM,IAAI,KAAK,KAAK,GACVM,MAAM,CAACG,CAAC,GAAGD,MAAM,GAAG2C,kBAAkB,CAACvC,MAAM,GAC7CN,MAAM,CAACG,CAAC,GAAGH,MAAM,CAACM,MAAM,GAAGJ,MAAM;EACzC,CAAC,MAAM;IACLX,IAAI,GACFG,IAAI,KAAK,MAAM,GACXM,MAAM,CAACI,CAAC,GAAGF,MAAM,GAAG2C,kBAAkB,CAACxC,KAAK,GAC5CL,MAAM,CAACI,CAAC,GAAGJ,MAAM,CAACK,KAAK,GAAGH,MAAM;IACtCd,GAAG,GACD6B,eAAe,CAACjB,MAAM,CAACG,CAAC,EAAEH,MAAM,CAACM,MAAM,EAAEuC,kBAAkB,CAACvC,MAAM,EAAEX,KAAK,EAAE,KAAK,CAAC,GACjFuC,WAAW;EACf;EAEA,IAAIC,iBAAiB,KAAK,YAAY,EAAE;IACtC,IAAIzC,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,QAAQ,EAAE;MACvCH,IAAI,GAAGgC,KAAK,CAAChC,IAAI,EAAEU,QAAQ,CAACV,IAAI,EAAEU,QAAQ,CAACZ,KAAK,GAAGwD,kBAAkB,CAACxC,KAAK,CAAC;IAC9E,CAAC,MAAM;MACLjB,GAAG,GAAGmC,KAAK,CAACnC,GAAG,EAAEa,QAAQ,CAACb,GAAG,EAAEa,QAAQ,CAACX,MAAM,GAAGuD,kBAAkB,CAACvC,MAAM,CAAC;IAC7E;EACF;EAEA,MAAMyC,mBAAmB,GAAGd,OAAO,CAACc,mBAAmB,IAAI,CAAC;EAC5D,MAAMC,aAAa,GAAGhD,MAAM,CAACI,CAAC,GAAGJ,MAAM,CAACK,KAAK,GAAG,CAAC;EACjD,MAAM4C,aAAa,GAAGjD,MAAM,CAACG,CAAC,GAAGH,MAAM,CAACM,MAAM,GAAG,CAAC;EAClD,MAAMsB,KAAK,GACTlC,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,QAAQ,GAC/B;IACEU,CAAC,EAAEmB,KAAK,CACNyB,aAAa,GAAGzD,IAAI,EACpBwD,mBAAmB,EACnBF,kBAAkB,CAACxC,KAAK,GAAG0C,mBAC7B;EACF,CAAC,GACD;IACE5C,CAAC,EAAEoB,KAAK,CACN0B,aAAa,GAAG7D,GAAG,EACnB2D,mBAAmB,EACnBF,kBAAkB,CAACvC,MAAM,GAAGyC,mBAC9B;EACF,CAAC;EACP,MAAMG,iBAAiB,GAAG;IAAExD,IAAI;IAAEC;EAAM,CAAC;EAEzC,OAAO;IACLwD,KAAK,EAAE;MACL5D,IAAI;MACJH,GAAG;MACHiB,KAAK,EAAE4B,OAAO,CAAC5B,KAAK,KAAK,QAAQ,GAAGL,MAAM,CAACK,KAAK,GAAG+C,SAAS;MAC5DC,QAAQ,EAAER,kBAAkB,CAACxC,KAAK;MAClCiD,SAAS,EAAET,kBAAkB,CAACvC,MAAM;MACpCiD,QAAQ,EAAEZ,cAAc;MACxBa,SAAS,EAAEZ;IACb,CAAC;IACDM,iBAAiB;IACjBzD,SAAS,EAAEI,kBAAkB,CAACqD,iBAAiB,CAAC;IAChDP,cAAc;IACdC,eAAe;IACfhB,KAAK;IACL6B,eAAe,EAAE9B,kBAAkB,CAACjC,IAAI,EAAEkC,KAAK,EAAEiB,kBAAkB;EACrE,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["OVERLAY_PLACEMENTS","DEFAULT_COLLISION_PADDING","DEFAULT_OFFSET","toInsets","value","top","right","bottom","left","parsePlacement","placement","side","align","split","stringifyPlacement","oppositeSide","availableMainAxis","anchor","boundary","offset","y","x","width","height","mainAxisSize","floating","resolveAutoSide","sides","reduce","best","available","bestAvailable","fits","bestFits","alignCoordinate","anchorStart","anchorSize","floatingSize","reverseLogicalAlignment","resolvedAlign","clamp","min","max","Math","getTransformOrigin","arrow","String","getAnchoredOverlayPosition","floatingLayout","viewport","options","crossOffset","collisionBehavior","collisionPadding","insets","parsed","measuredFloating","minWidth","opposite","oppositeAvailable","required","availableWidth","availableHeight","positionedFloating","isRTL","arrowBoundaryOffset","anchorCenterX","anchorCenterY","resolvedPlacement","style","undefined","minHeight","maxWidth","maxHeight","transformOrigin"],"sourceRoot":"../../../src","sources":["overlay/getAnchoredOverlayPosition.ts"],"mappings":"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","ignoreList":[]}
@@ -42,16 +42,30 @@ export function useDismissOverlay(open, contentRef, excludeRefs, onDismiss, opti
42
42
  }
43
43
  return false;
44
44
  };
45
- const dismissIfOutside = e => {
46
- if (isTopmost('outside') && !isInsideOverlay(e.target)) {
45
+ let subscribed = true;
46
+ const dismissIfOutside = target => {
47
+ if (subscribed && isTopmost('outside') && !isInsideOverlay(target)) {
47
48
  onDismissRef.current();
48
49
  }
49
50
  };
50
- document.addEventListener('pointerdown', dismissIfOutside);
51
- document.addEventListener('focusin', dismissIfOutside);
51
+ const handlePointerDown = e => {
52
+ dismissIfOutside(e.target);
53
+ };
54
+ // A nested overlay can move focus into its portaled content from an effect in the same commit
55
+ // that mounts it, before its own effect registers it as topmost. Re-check after that commit's
56
+ // effects have flushed so the nested overlay owns the outside interaction.
57
+ const handleFocusIn = e => {
58
+ const target = e.target;
59
+ queueMicrotask(() => {
60
+ dismissIfOutside(target);
61
+ });
62
+ };
63
+ document.addEventListener('pointerdown', handlePointerDown);
64
+ document.addEventListener('focusin', handleFocusIn);
52
65
  return () => {
53
- document.removeEventListener('pointerdown', dismissIfOutside);
54
- document.removeEventListener('focusin', dismissIfOutside);
66
+ subscribed = false;
67
+ document.removeEventListener('pointerdown', handlePointerDown);
68
+ document.removeEventListener('focusin', handleFocusIn);
55
69
  };
56
70
  }, [open, contentRef, isTopmost]);
57
71
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useOverlayStackRegistration","refContainsNode","ref","target","current","contains","useDismissOverlay","open","contentRef","excludeRefs","onDismiss","options","onDismissRef","excludeRefsRef","isTopmost","active","capabilities","isInsideOverlay","dismissIfOutside","e","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useDismissOverlay.web.ts"],"mappings":";;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,2BAA2B,QAAmC,gBAAgB;AAEvF,SAASC,eAAeA,CAACC,GAAuB,EAAEC,MAAY,EAAW;EACvE,MAAMC,OAAO,GAAGF,GAAG,CAACE,OAAwD;EAC5E,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,CAACC,QAAQ,KAAK,UAAU,EAAE;IACtD,OAAO,KAAK;EACd;EACA,OAAOD,OAAO,CAACC,QAAQ,CAACF,MAAM,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,iBAAiBA,CAC/BC,IAAa,EACbC,UAA0B,EAC1BC,WAA6B,EAC7BC,SAAqB,EACrBC,OAA6B,GAAG,CAAC,CAAC,EAClC;EACA,MAAMC,YAAY,GAAGb,MAAM,CAACW,SAAS,CAAC;EACtCE,YAAY,CAACR,OAAO,GAAGM,SAAS;EAEhC,MAAMG,cAAc,GAAGd,MAAM,CAACU,WAAW,CAAC;EAC1CI,cAAc,CAACT,OAAO,GAAGK,WAAW;EACpC,MAAM;IAAEK;EAAU,CAAC,GAAGd,2BAA2B,CAAC;IAChDe,MAAM,EAAER,IAAI;IACZS,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,GAAGL;EACL,CAAC,CAAC;EAEFb,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,IAAI,EAAE;MACT;IACF;IAEA,MAAMU,eAAe,GAAId,MAAY,IAAK;MACxC,IAAIF,eAAe,CAACO,UAAU,EAAEL,MAAM,CAAC,EAAE;QACvC,OAAO,IAAI;MACb;MACA,KAAK,MAAMD,GAAG,IAAIW,cAAc,CAACT,OAAO,EAAE;QACxC,IAAIH,eAAe,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE;UAChC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,MAAMe,gBAAgB,GAAIC,CAAQ,IAAK;MACrC,IAAIL,SAAS,CAAC,SAAS,CAAC,IAAI,CAACG,eAAe,CAACE,CAAC,CAAChB,MAAc,CAAC,EAAE;QAC9DS,YAAY,CAACR,OAAO,CAAC,CAAC;MACxB;IACF,CAAC;IAEDgB,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEH,gBAAgB,CAAC;IAC1DE,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,gBAAgB,CAAC;IACtD,OAAO,MAAM;MACXE,QAAQ,CAACE,mBAAmB,CAAC,aAAa,EAAEJ,gBAAgB,CAAC;MAC7DE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,gBAAgB,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,CAACX,IAAI,EAAEC,UAAU,EAAEM,SAAS,CAAC,CAAC;AACnC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useOverlayStackRegistration","refContainsNode","ref","target","current","contains","useDismissOverlay","open","contentRef","excludeRefs","onDismiss","options","onDismissRef","excludeRefsRef","isTopmost","active","capabilities","isInsideOverlay","subscribed","dismissIfOutside","handlePointerDown","e","handleFocusIn","queueMicrotask","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useDismissOverlay.web.ts"],"mappings":";;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,2BAA2B,QAAmC,gBAAgB;AAEvF,SAASC,eAAeA,CAACC,GAAuB,EAAEC,MAAY,EAAW;EACvE,MAAMC,OAAO,GAAGF,GAAG,CAACE,OAAwD;EAC5E,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,CAACC,QAAQ,KAAK,UAAU,EAAE;IACtD,OAAO,KAAK;EACd;EACA,OAAOD,OAAO,CAACC,QAAQ,CAACF,MAAM,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,iBAAiBA,CAC/BC,IAAa,EACbC,UAA0B,EAC1BC,WAA6B,EAC7BC,SAAqB,EACrBC,OAA6B,GAAG,CAAC,CAAC,EAClC;EACA,MAAMC,YAAY,GAAGb,MAAM,CAACW,SAAS,CAAC;EACtCE,YAAY,CAACR,OAAO,GAAGM,SAAS;EAEhC,MAAMG,cAAc,GAAGd,MAAM,CAACU,WAAW,CAAC;EAC1CI,cAAc,CAACT,OAAO,GAAGK,WAAW;EACpC,MAAM;IAAEK;EAAU,CAAC,GAAGd,2BAA2B,CAAC;IAChDe,MAAM,EAAER,IAAI;IACZS,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,GAAGL;EACL,CAAC,CAAC;EAEFb,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,IAAI,EAAE;MACT;IACF;IAEA,MAAMU,eAAe,GAAId,MAAY,IAAK;MACxC,IAAIF,eAAe,CAACO,UAAU,EAAEL,MAAM,CAAC,EAAE;QACvC,OAAO,IAAI;MACb;MACA,KAAK,MAAMD,GAAG,IAAIW,cAAc,CAACT,OAAO,EAAE;QACxC,IAAIH,eAAe,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE;UAChC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,IAAIe,UAAU,GAAG,IAAI;IACrB,MAAMC,gBAAgB,GAAIhB,MAAY,IAAK;MACzC,IAAIe,UAAU,IAAIJ,SAAS,CAAC,SAAS,CAAC,IAAI,CAACG,eAAe,CAACd,MAAM,CAAC,EAAE;QAClES,YAAY,CAACR,OAAO,CAAC,CAAC;MACxB;IACF,CAAC;IAED,MAAMgB,iBAAiB,GAAIC,CAAQ,IAAK;MACtCF,gBAAgB,CAACE,CAAC,CAAClB,MAAc,CAAC;IACpC,CAAC;IACD;IACA;IACA;IACA,MAAMmB,aAAa,GAAID,CAAQ,IAAK;MAClC,MAAMlB,MAAM,GAAGkB,CAAC,CAAClB,MAAc;MAC/BoB,cAAc,CAAC,MAAM;QACnBJ,gBAAgB,CAAChB,MAAM,CAAC;MAC1B,CAAC,CAAC;IACJ,CAAC;IAEDqB,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEL,iBAAiB,CAAC;IAC3DI,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;IACnD,OAAO,MAAM;MACXJ,UAAU,GAAG,KAAK;MAClBM,QAAQ,CAACE,mBAAmB,CAAC,aAAa,EAAEN,iBAAiB,CAAC;MAC9DI,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACf,IAAI,EAAEC,UAAU,EAAEM,SAAS,CAAC,CAAC;AACnC","ignoreList":[]}
@@ -15,7 +15,7 @@ import { dataAttributes } from '../utils/dataAttributes';
15
15
  * platform-aware `dataAttrs` object so the styled layer can emit interaction-state
16
16
  * `data-*` attributes (Standard 1) without re-implementing the toggle machinery.
17
17
  *
18
- * Standards mapping (per `.cursor/plans/primitive_design_standards_0d0ca4b1.plan.md`):
18
+ * Standards mapping:
19
19
  * - Standard 3 #1 — controlled state via `useToggleState`.
20
20
  * - Standard 3 #2 — `role="switch"` semantics (consumer wires to host).
21
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuOverlayLifecycle.d.ts","sourceRoot":"","sources":["../../../src/menu/useMenuOverlayLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;IAC/C,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACxD;AAWD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,QAAQ,EACR,gBAAgB,GACjB,EAAE,8BAA8B,QAyBhC;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,QAoBxE"}
1
+ {"version":3,"file":"useMenuOverlayLifecycle.d.ts","sourceRoot":"","sources":["../../../src/menu/useMenuOverlayLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;IAC/C,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACxD;AAkBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,QAAQ,EACR,gBAAgB,GACjB,EAAE,8BAA8B,QAwBhC;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,QAoBxE"}
@@ -23,6 +23,8 @@ export interface AnchoredOverlayPositionOptions {
23
23
  collisionPadding?: number | Partial<EdgeInsets>;
24
24
  insets?: Partial<EdgeInsets>;
25
25
  width?: OverlayWidthPolicy;
26
+ /** Floor for the floating width under either width policy; `maxWidth` still clamps it. */
27
+ minWidth?: number;
26
28
  isRTL?: boolean;
27
29
  arrowBoundaryOffset?: number;
28
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getAnchoredOverlayPosition.d.ts","sourceRoot":"","sources":["../../../src/overlay/getAnchoredOverlayPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,kBAAkB,2LAgBrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AAgJD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB,CA8HzB"}
1
+ {"version":3,"file":"getAnchoredOverlayPosition.d.ts","sourceRoot":"","sources":["../../../src/overlay/getAnchoredOverlayPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,kBAAkB,2LAgBrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AAgJD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB,CAiIzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDismissOverlay.web.d.ts","sourceRoot":"","sources":["../../../src/overlay/useDismissOverlay.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAUxF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,EAC1B,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAC7B,SAAS,EAAE,MAAM,IAAI,EACrB,OAAO,GAAE,oBAAyB,QA2CnC"}
1
+ {"version":3,"file":"useDismissOverlay.web.d.ts","sourceRoot":"","sources":["../../../src/overlay/useDismissOverlay.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAUxF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,EAC1B,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAC7B,SAAS,EAAE,MAAM,IAAI,EACrB,OAAO,GAAE,oBAAyB,QA0DnC"}
@@ -8,7 +8,7 @@ import type { ISwitchProps, IUseSwitchReturn } from './types';
8
8
  * platform-aware `dataAttrs` object so the styled layer can emit interaction-state
9
9
  * `data-*` attributes (Standard 1) without re-implementing the toggle machinery.
10
10
  *
11
- * Standards mapping (per `.cursor/plans/primitive_design_standards_0d0ca4b1.plan.md`):
11
+ * Standards mapping:
12
12
  * - Standard 3 #1 — controlled state via `useToggleState`.
13
13
  * - Standard 3 #2 — `role="switch"` semantics (consumer wires to host).
14
14
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/primitives",
3
- "version": "0.3.11",
3
+ "version": "0.3.13",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -69,8 +69,8 @@
69
69
  "@react-stately/disclosure": "3.1.1",
70
70
  "@react-stately/radio": "3.12.0",
71
71
  "@react-stately/toggle": "3.9.4",
72
- "@cdx-ui/utils": "0.3.11",
73
- "@cdx-ui/formatters": "0.3.11"
72
+ "@cdx-ui/formatters": "0.3.13",
73
+ "@cdx-ui/utils": "0.3.13"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/react": "19.2.14",
@@ -11,11 +11,18 @@ export interface UseMenuOverlayOpenFocusOptions {
11
11
 
12
12
  function focusDomNode(node: { focus?: () => void } | null | undefined) {
13
13
  if (Platform.OS !== 'web') {
14
- return;
14
+ return undefined;
15
15
  }
16
- requestAnimationFrame(() => {
16
+ const focusedAtSchedule = document.activeElement;
17
+ const frame = requestAnimationFrame(() => {
18
+ // Focus moved elsewhere (e.g. to an outside element that dismisses the menu)
19
+ // before this frame; taking it back would strand focus on a closing menu.
20
+ if (document.activeElement !== focusedAtSchedule) {
21
+ return;
22
+ }
17
23
  node?.focus?.();
18
24
  });
25
+ return () => cancelAnimationFrame(frame);
19
26
  }
20
27
 
21
28
  /**
@@ -40,8 +47,7 @@ export function useMenuOverlayOpenFocus({
40
47
 
41
48
  if (intent === 'menu' || enabled.length === 0) {
42
49
  setFocusedItemId(undefined);
43
- focusDomNode(overlay.contentRef.current as { focus?: () => void } | null);
44
- return;
50
+ return focusDomNode(overlay.contentRef.current as { focus?: () => void } | null);
45
51
  }
46
52
 
47
53
  const target = intent === 'last' ? enabled.at(-1) : enabled[0];
@@ -50,7 +56,7 @@ export function useMenuOverlayOpenFocus({
50
56
  }
51
57
 
52
58
  setFocusedItemId(target[0]);
53
- focusDomNode(target[1].node);
59
+ return focusDomNode(target[1].node);
54
60
  }, [open, getItems, overlay, setFocusedItemId]);
55
61
  }
56
62
 
@@ -44,6 +44,8 @@ export interface AnchoredOverlayPositionOptions {
44
44
  collisionPadding?: number | Partial<EdgeInsets>;
45
45
  insets?: Partial<EdgeInsets>;
46
46
  width?: OverlayWidthPolicy;
47
+ /** Floor for the floating width under either width policy; `maxWidth` still clamps it. */
48
+ minWidth?: number;
47
49
  isRTL?: boolean;
48
50
  arrowBoundaryOffset?: number;
49
51
  }
@@ -225,7 +227,10 @@ export function getAnchoredOverlayPosition(
225
227
  };
226
228
  const parsed = parsePlacement(placement);
227
229
  const measuredFloating: FloatingLayout = {
228
- width: options.width === 'anchor' ? anchor.width : floatingLayout.width,
230
+ width: Math.max(
231
+ options.width === 'anchor' ? anchor.width : floatingLayout.width,
232
+ options.minWidth ?? 0,
233
+ ),
229
234
  height: floatingLayout.height,
230
235
  };
231
236
 
@@ -318,7 +323,7 @@ export function getAnchoredOverlayPosition(
318
323
  style: {
319
324
  left,
320
325
  top,
321
- width: options.width === 'anchor' ? anchor.width : undefined,
326
+ width: options.width === 'anchor' ? measuredFloating.width : undefined,
322
327
  minWidth: positionedFloating.width,
323
328
  minHeight: positionedFloating.height,
324
329
  maxWidth: availableWidth,
@@ -50,17 +50,32 @@ export function useDismissOverlay(
50
50
  return false;
51
51
  };
52
52
 
53
- const dismissIfOutside = (e: Event) => {
54
- if (isTopmost('outside') && !isInsideOverlay(e.target as Node)) {
53
+ let subscribed = true;
54
+ const dismissIfOutside = (target: Node) => {
55
+ if (subscribed && isTopmost('outside') && !isInsideOverlay(target)) {
55
56
  onDismissRef.current();
56
57
  }
57
58
  };
58
59
 
59
- document.addEventListener('pointerdown', dismissIfOutside);
60
- document.addEventListener('focusin', dismissIfOutside);
60
+ const handlePointerDown = (e: Event) => {
61
+ dismissIfOutside(e.target as Node);
62
+ };
63
+ // A nested overlay can move focus into its portaled content from an effect in the same commit
64
+ // that mounts it, before its own effect registers it as topmost. Re-check after that commit's
65
+ // effects have flushed so the nested overlay owns the outside interaction.
66
+ const handleFocusIn = (e: Event) => {
67
+ const target = e.target as Node;
68
+ queueMicrotask(() => {
69
+ dismissIfOutside(target);
70
+ });
71
+ };
72
+
73
+ document.addEventListener('pointerdown', handlePointerDown);
74
+ document.addEventListener('focusin', handleFocusIn);
61
75
  return () => {
62
- document.removeEventListener('pointerdown', dismissIfOutside);
63
- document.removeEventListener('focusin', dismissIfOutside);
76
+ subscribed = false;
77
+ document.removeEventListener('pointerdown', handlePointerDown);
78
+ document.removeEventListener('focusin', handleFocusIn);
64
79
  };
65
80
  }, [open, contentRef, isTopmost]);
66
81
  }
@@ -15,7 +15,7 @@ import type { ISwitchProps, IUseSwitchReturn } from './types';
15
15
  * platform-aware `dataAttrs` object so the styled layer can emit interaction-state
16
16
  * `data-*` attributes (Standard 1) without re-implementing the toggle machinery.
17
17
  *
18
- * Standards mapping (per `.cursor/plans/primitive_design_standards_0d0ca4b1.plan.md`):
18
+ * Standards mapping:
19
19
  * - Standard 3 #1 — controlled state via `useToggleState`.
20
20
  * - Standard 3 #2 — `role="switch"` semantics (consumer wires to host).
21
21
  *