@cdx-ui/primitives 0.3.11 → 0.3.12
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.
- package/lib/commonjs/overlay/getAnchoredOverlayPosition.js +2 -2
- package/lib/commonjs/overlay/getAnchoredOverlayPosition.js.map +1 -1
- package/lib/commonjs/overlay/useDismissOverlay.web.js +20 -6
- package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
- package/lib/module/overlay/getAnchoredOverlayPosition.js +2 -2
- package/lib/module/overlay/getAnchoredOverlayPosition.js.map +1 -1
- package/lib/module/overlay/useDismissOverlay.web.js +20 -6
- package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
- package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts +2 -0
- package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts.map +1 -1
- package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/overlay/getAnchoredOverlayPosition.ts +7 -2
- package/src/overlay/useDismissOverlay.web.ts +21 -6
|
@@ -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' ?
|
|
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","
|
|
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
|
-
|
|
50
|
-
|
|
49
|
+
let subscribed = true;
|
|
50
|
+
const dismissIfOutside = target => {
|
|
51
|
+
if (subscribed && isTopmost('outside') && !isInsideOverlay(target)) {
|
|
51
52
|
onDismissRef.current();
|
|
52
53
|
}
|
|
53
54
|
};
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
58
|
-
document.removeEventListener('
|
|
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,
|
|
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":[]}
|
|
@@ -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' ?
|
|
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","
|
|
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
|
-
|
|
46
|
-
|
|
45
|
+
let subscribed = true;
|
|
46
|
+
const dismissIfOutside = target => {
|
|
47
|
+
if (subscribed && isTopmost('outside') && !isInsideOverlay(target)) {
|
|
47
48
|
onDismissRef.current();
|
|
48
49
|
}
|
|
49
50
|
};
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
54
|
-
document.removeEventListener('
|
|
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,
|
|
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":[]}
|
|
@@ -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,
|
|
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,
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdx-ui/primitives",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.12",
|
|
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/
|
|
73
|
-
"@cdx-ui/
|
|
72
|
+
"@cdx-ui/formatters": "0.3.12",
|
|
73
|
+
"@cdx-ui/utils": "0.3.12"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/react": "19.2.14",
|
|
@@ -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:
|
|
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' ?
|
|
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
|
-
|
|
54
|
-
|
|
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
|
-
|
|
60
|
-
|
|
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
|
-
|
|
63
|
-
document.removeEventListener('
|
|
76
|
+
subscribed = false;
|
|
77
|
+
document.removeEventListener('pointerdown', handlePointerDown);
|
|
78
|
+
document.removeEventListener('focusin', handleFocusIn);
|
|
64
79
|
};
|
|
65
80
|
}, [open, contentRef, isTopmost]);
|
|
66
81
|
}
|