@cdx-ui/primitives 0.0.1-beta.166 → 0.0.1-beta.167
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 +17 -11
- package/lib/commonjs/overlay/getAnchoredOverlayPosition.js.map +1 -1
- package/lib/commonjs/overlay/useAnchoredOverlay.js +4 -10
- package/lib/commonjs/overlay/useAnchoredOverlay.js.map +1 -1
- package/lib/commonjs/select/SelectContent.js +6 -2
- package/lib/commonjs/select/SelectContent.js.map +1 -1
- package/lib/module/overlay/getAnchoredOverlayPosition.js +17 -11
- package/lib/module/overlay/getAnchoredOverlayPosition.js.map +1 -1
- package/lib/module/overlay/useAnchoredOverlay.js +4 -10
- package/lib/module/overlay/useAnchoredOverlay.js.map +1 -1
- package/lib/module/select/SelectContent.js +6 -2
- package/lib/module/select/SelectContent.js.map +1 -1
- package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts.map +1 -1
- package/lib/typescript/overlay/useAnchoredOverlay.d.ts.map +1 -1
- package/lib/typescript/select/SelectContent.d.ts.map +1 -1
- package/lib/typescript/select/types.d.ts +7 -0
- package/lib/typescript/select/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/overlay/getAnchoredOverlayPosition.ts +25 -17
- package/src/overlay/useAnchoredOverlay.ts +5 -8
- package/src/select/SelectContent.tsx +18 -3
- package/src/select/types.ts +7 -0
|
@@ -139,31 +139,35 @@ function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, options =
|
|
|
139
139
|
side = opposite;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
+
const availableWidth = side === 'left' || side === 'right' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.right - boundary.left);
|
|
143
|
+
const availableHeight = side === 'top' || side === 'bottom' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.bottom - boundary.top);
|
|
144
|
+
const positionedFloating = {
|
|
145
|
+
width: Math.min(measuredFloating.width, availableWidth),
|
|
146
|
+
height: Math.min(measuredFloating.height, availableHeight)
|
|
147
|
+
};
|
|
142
148
|
let left;
|
|
143
149
|
let top;
|
|
144
150
|
if (side === 'top' || side === 'bottom') {
|
|
145
|
-
left = alignCoordinate(anchor.x, anchor.width,
|
|
146
|
-
top = side === 'top' ? anchor.y - offset -
|
|
151
|
+
left = alignCoordinate(anchor.x, anchor.width, positionedFloating.width, align, options.isRTL ?? false) + crossOffset;
|
|
152
|
+
top = side === 'top' ? anchor.y - offset - positionedFloating.height : anchor.y + anchor.height + offset;
|
|
147
153
|
} else {
|
|
148
|
-
left = side === 'left' ? anchor.x - offset -
|
|
149
|
-
top = alignCoordinate(anchor.y, anchor.height,
|
|
154
|
+
left = side === 'left' ? anchor.x - offset - positionedFloating.width : anchor.x + anchor.width + offset;
|
|
155
|
+
top = alignCoordinate(anchor.y, anchor.height, positionedFloating.height, align, false) + crossOffset;
|
|
150
156
|
}
|
|
151
157
|
if (collisionBehavior === 'flip-shift') {
|
|
152
158
|
if (side === 'top' || side === 'bottom') {
|
|
153
|
-
left = clamp(left, boundary.left, boundary.right -
|
|
159
|
+
left = clamp(left, boundary.left, boundary.right - positionedFloating.width);
|
|
154
160
|
} else {
|
|
155
|
-
top = clamp(top, boundary.top, boundary.bottom -
|
|
161
|
+
top = clamp(top, boundary.top, boundary.bottom - positionedFloating.height);
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
|
-
const availableWidth = side === 'left' || side === 'right' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.right - boundary.left);
|
|
159
|
-
const availableHeight = side === 'top' || side === 'bottom' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.bottom - boundary.top);
|
|
160
164
|
const arrowBoundaryOffset = options.arrowBoundaryOffset ?? 8;
|
|
161
165
|
const anchorCenterX = anchor.x + anchor.width / 2;
|
|
162
166
|
const anchorCenterY = anchor.y + anchor.height / 2;
|
|
163
167
|
const arrow = side === 'top' || side === 'bottom' ? {
|
|
164
|
-
x: clamp(anchorCenterX - left, arrowBoundaryOffset,
|
|
168
|
+
x: clamp(anchorCenterX - left, arrowBoundaryOffset, positionedFloating.width - arrowBoundaryOffset)
|
|
165
169
|
} : {
|
|
166
|
-
y: clamp(anchorCenterY - top, arrowBoundaryOffset,
|
|
170
|
+
y: clamp(anchorCenterY - top, arrowBoundaryOffset, positionedFloating.height - arrowBoundaryOffset)
|
|
167
171
|
};
|
|
168
172
|
const resolvedPlacement = {
|
|
169
173
|
side,
|
|
@@ -174,6 +178,8 @@ function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, options =
|
|
|
174
178
|
left,
|
|
175
179
|
top,
|
|
176
180
|
width: options.width === 'anchor' ? anchor.width : undefined,
|
|
181
|
+
minWidth: positionedFloating.width,
|
|
182
|
+
minHeight: positionedFloating.height,
|
|
177
183
|
maxWidth: availableWidth,
|
|
178
184
|
maxHeight: availableHeight
|
|
179
185
|
},
|
|
@@ -182,7 +188,7 @@ function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, options =
|
|
|
182
188
|
availableWidth,
|
|
183
189
|
availableHeight,
|
|
184
190
|
arrow,
|
|
185
|
-
transformOrigin: getTransformOrigin(side, arrow,
|
|
191
|
+
transformOrigin: getTransformOrigin(side, arrow, positionedFloating)
|
|
186
192
|
};
|
|
187
193
|
}
|
|
188
194
|
//# sourceMappingURL=getAnchoredOverlayPosition.js.map
|
|
@@ -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","
|
|
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":[]}
|
|
@@ -44,23 +44,17 @@ function useAnchoredOverlay(anchorRef, open, options = {}) {
|
|
|
44
44
|
const viewport = (0, _reactNative.useWindowDimensions)();
|
|
45
45
|
const insets = (0, _react.useContext)(_useOverlayPosition.OverlayInsetsContext);
|
|
46
46
|
const measureFloating = (0, _react.useCallback)(() => {
|
|
47
|
+
// Native measure callbacks can resolve after onLayout and replace the rendered size
|
|
48
|
+
// with stale staging geometry. Native layout changes are already reported by onLayout.
|
|
49
|
+
if (_reactNative.Platform.OS !== 'web') return;
|
|
47
50
|
const floating = floatingRef.current;
|
|
48
51
|
if (!floating) return;
|
|
49
|
-
if (
|
|
52
|
+
if (typeof floating.getBoundingClientRect === 'function') {
|
|
50
53
|
const rect = floating.getBoundingClientRect();
|
|
51
54
|
setLayoutIfChanged(setFloatingLayout, {
|
|
52
55
|
width: rect.width,
|
|
53
56
|
height: rect.height
|
|
54
57
|
});
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if (typeof floating.measure === 'function') {
|
|
58
|
-
floating.measure((_x, _y, width, height) => {
|
|
59
|
-
setLayoutIfChanged(setFloatingLayout, {
|
|
60
|
-
width,
|
|
61
|
-
height
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
58
|
}
|
|
65
59
|
}, []);
|
|
66
60
|
const onFloatingLayout = (0, _react.useCallback)(event => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_getAnchoredOverlayPosition","_useAnchorPosition","_useOverlayPosition","STAGING_STYLE","left","opacity","pointerEvents","position","top","setLayoutIfChanged","setLayout","next","previous","width","height","useAnchoredOverlay","anchorRef","open","options","remeasureKey","externalRemeasureKey","trackWhileOpen","positionOptions","revision","update","useReducer","value","useMemo","anchorLayout","useAnchorPosition","floatingRef","useRef","floatingLayout","setFloatingLayout","useState","viewport","useWindowDimensions","insets","useContext","OverlayInsetsContext","measureFloating","useCallback","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_getAnchoredOverlayPosition","_useAnchorPosition","_useOverlayPosition","STAGING_STYLE","left","opacity","pointerEvents","position","top","setLayoutIfChanged","setLayout","next","previous","width","height","useAnchoredOverlay","anchorRef","open","options","remeasureKey","externalRemeasureKey","trackWhileOpen","positionOptions","revision","update","useReducer","value","useMemo","anchorLayout","useAnchorPosition","floatingRef","useRef","floatingLayout","setFloatingLayout","useState","viewport","useWindowDimensions","insets","useContext","OverlayInsetsContext","measureFloating","useCallback","Platform","OS","floating","current","getBoundingClientRect","rect","onFloatingLayout","event","nativeEvent","layout","requestUpdate","useEffect","anchor","resizeObserver","ResizeObserver","observe","visualViewport","window","addEventListener","disconnect","removeEventListener","getAnchoredOverlayPosition","isRTL","I18nManager","ready","positionStyle","style"],"sourceRoot":"../../../src","sources":["overlay/useAnchoredOverlay.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,9 @@ const SelectContent = exports.SelectContent = /*#__PURE__*/(0, _react.forwardRef
|
|
|
23
23
|
exitingAnimation,
|
|
24
24
|
onLayout,
|
|
25
25
|
style,
|
|
26
|
+
placement = 'bottom-start',
|
|
27
|
+
offset = 4,
|
|
28
|
+
crossOffset = 0,
|
|
26
29
|
...props
|
|
27
30
|
}, ref) => {
|
|
28
31
|
const {
|
|
@@ -57,8 +60,9 @@ const SelectContent = exports.SelectContent = /*#__PURE__*/(0, _react.forwardRef
|
|
|
57
60
|
style: overlayStyle,
|
|
58
61
|
position
|
|
59
62
|
} = (0, _overlay.useAnchoredOverlay)(triggerRef, overlayOpen, {
|
|
60
|
-
placement
|
|
61
|
-
offset
|
|
63
|
+
placement,
|
|
64
|
+
offset,
|
|
65
|
+
crossOffset,
|
|
62
66
|
collisionBehavior: 'flip-shift',
|
|
63
67
|
width: 'anchor'
|
|
64
68
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_utils","_overlay","_slot","_dataAttributes","_context","_useContentFocus","_useListboxNavigation","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SelectContent","exports","forwardRef","asChild","children","enteringAnimation","exitingAnimation","onLayout","style","props","ref","open","setOpen","contentId","triggerId","activeValue","setActiveValue","value","onValueChange","native","triggerRef","items","useSelectContext","contentRef","useRef","focusOnMount","useCallback","node","current","Platform","OS","requestAnimationFrame","setTimeout","focus","dismiss","overlayOpen","floatingRef","onFloatingLayout","overlayStyle","position","useAnchoredOverlay","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_utils","_overlay","_slot","_dataAttributes","_context","_useContentFocus","_useListboxNavigation","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SelectContent","exports","forwardRef","asChild","children","enteringAnimation","exitingAnimation","onLayout","style","placement","offset","crossOffset","props","ref","open","setOpen","contentId","triggerId","activeValue","setActiveValue","value","onValueChange","native","triggerRef","items","useSelectContext","contentRef","useRef","focusOnMount","useCallback","node","current","Platform","OS","requestAnimationFrame","setTimeout","focus","dismiss","overlayOpen","floatingRef","onFloatingLayout","overlayStyle","position","useAnchoredOverlay","collisionBehavior","width","mergedRef","mergeRefs","useDismissOverlay","handleKeyDown","useListboxNavigation","onSelect","val","onDismiss","useContentFocus","webProps","onKeyDown","composeEventHandlers","tabIndex","Comp","Slot","View","jsx","OverlayContainer","entering","FadeIn","duration","exiting","FadeOut","role","id","mergeDataAttributes","dataAttributes","state","side","resolvedPlacement","align","displayName"],"sourceRoot":"../../../src","sources":["select/SelectContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -134,31 +134,35 @@ export function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, opt
|
|
|
134
134
|
side = opposite;
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
+
const availableWidth = side === 'left' || side === 'right' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.right - boundary.left);
|
|
138
|
+
const availableHeight = side === 'top' || side === 'bottom' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.bottom - boundary.top);
|
|
139
|
+
const positionedFloating = {
|
|
140
|
+
width: Math.min(measuredFloating.width, availableWidth),
|
|
141
|
+
height: Math.min(measuredFloating.height, availableHeight)
|
|
142
|
+
};
|
|
137
143
|
let left;
|
|
138
144
|
let top;
|
|
139
145
|
if (side === 'top' || side === 'bottom') {
|
|
140
|
-
left = alignCoordinate(anchor.x, anchor.width,
|
|
141
|
-
top = side === 'top' ? anchor.y - offset -
|
|
146
|
+
left = alignCoordinate(anchor.x, anchor.width, positionedFloating.width, align, options.isRTL ?? false) + crossOffset;
|
|
147
|
+
top = side === 'top' ? anchor.y - offset - positionedFloating.height : anchor.y + anchor.height + offset;
|
|
142
148
|
} else {
|
|
143
|
-
left = side === 'left' ? anchor.x - offset -
|
|
144
|
-
top = alignCoordinate(anchor.y, anchor.height,
|
|
149
|
+
left = side === 'left' ? anchor.x - offset - positionedFloating.width : anchor.x + anchor.width + offset;
|
|
150
|
+
top = alignCoordinate(anchor.y, anchor.height, positionedFloating.height, align, false) + crossOffset;
|
|
145
151
|
}
|
|
146
152
|
if (collisionBehavior === 'flip-shift') {
|
|
147
153
|
if (side === 'top' || side === 'bottom') {
|
|
148
|
-
left = clamp(left, boundary.left, boundary.right -
|
|
154
|
+
left = clamp(left, boundary.left, boundary.right - positionedFloating.width);
|
|
149
155
|
} else {
|
|
150
|
-
top = clamp(top, boundary.top, boundary.bottom -
|
|
156
|
+
top = clamp(top, boundary.top, boundary.bottom - positionedFloating.height);
|
|
151
157
|
}
|
|
152
158
|
}
|
|
153
|
-
const availableWidth = side === 'left' || side === 'right' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.right - boundary.left);
|
|
154
|
-
const availableHeight = side === 'top' || side === 'bottom' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.bottom - boundary.top);
|
|
155
159
|
const arrowBoundaryOffset = options.arrowBoundaryOffset ?? 8;
|
|
156
160
|
const anchorCenterX = anchor.x + anchor.width / 2;
|
|
157
161
|
const anchorCenterY = anchor.y + anchor.height / 2;
|
|
158
162
|
const arrow = side === 'top' || side === 'bottom' ? {
|
|
159
|
-
x: clamp(anchorCenterX - left, arrowBoundaryOffset,
|
|
163
|
+
x: clamp(anchorCenterX - left, arrowBoundaryOffset, positionedFloating.width - arrowBoundaryOffset)
|
|
160
164
|
} : {
|
|
161
|
-
y: clamp(anchorCenterY - top, arrowBoundaryOffset,
|
|
165
|
+
y: clamp(anchorCenterY - top, arrowBoundaryOffset, positionedFloating.height - arrowBoundaryOffset)
|
|
162
166
|
};
|
|
163
167
|
const resolvedPlacement = {
|
|
164
168
|
side,
|
|
@@ -169,6 +173,8 @@ export function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, opt
|
|
|
169
173
|
left,
|
|
170
174
|
top,
|
|
171
175
|
width: options.width === 'anchor' ? anchor.width : undefined,
|
|
176
|
+
minWidth: positionedFloating.width,
|
|
177
|
+
minHeight: positionedFloating.height,
|
|
172
178
|
maxWidth: availableWidth,
|
|
173
179
|
maxHeight: availableHeight
|
|
174
180
|
},
|
|
@@ -177,7 +183,7 @@ export function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, opt
|
|
|
177
183
|
availableWidth,
|
|
178
184
|
availableHeight,
|
|
179
185
|
arrow,
|
|
180
|
-
transformOrigin: getTransformOrigin(side, arrow,
|
|
186
|
+
transformOrigin: getTransformOrigin(side, arrow, positionedFloating)
|
|
181
187
|
};
|
|
182
188
|
}
|
|
183
189
|
//# sourceMappingURL=getAnchoredOverlayPosition.js.map
|
|
@@ -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","
|
|
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":"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","ignoreList":[]}
|
|
@@ -40,23 +40,17 @@ export function useAnchoredOverlay(anchorRef, open, options = {}) {
|
|
|
40
40
|
const viewport = useWindowDimensions();
|
|
41
41
|
const insets = useContext(OverlayInsetsContext);
|
|
42
42
|
const measureFloating = useCallback(() => {
|
|
43
|
+
// Native measure callbacks can resolve after onLayout and replace the rendered size
|
|
44
|
+
// with stale staging geometry. Native layout changes are already reported by onLayout.
|
|
45
|
+
if (Platform.OS !== 'web') return;
|
|
43
46
|
const floating = floatingRef.current;
|
|
44
47
|
if (!floating) return;
|
|
45
|
-
if (
|
|
48
|
+
if (typeof floating.getBoundingClientRect === 'function') {
|
|
46
49
|
const rect = floating.getBoundingClientRect();
|
|
47
50
|
setLayoutIfChanged(setFloatingLayout, {
|
|
48
51
|
width: rect.width,
|
|
49
52
|
height: rect.height
|
|
50
53
|
});
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (typeof floating.measure === 'function') {
|
|
54
|
-
floating.measure((_x, _y, width, height) => {
|
|
55
|
-
setLayoutIfChanged(setFloatingLayout, {
|
|
56
|
-
width,
|
|
57
|
-
height
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
54
|
}
|
|
61
55
|
}, []);
|
|
62
56
|
const onFloatingLayout = useCallback(event => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useContext","useEffect","useMemo","useReducer","useRef","useState","I18nManager","Platform","useWindowDimensions","getAnchoredOverlayPosition","useAnchorPosition","OverlayInsetsContext","STAGING_STYLE","left","opacity","pointerEvents","position","top","setLayoutIfChanged","setLayout","next","previous","width","height","useAnchoredOverlay","anchorRef","open","options","remeasureKey","externalRemeasureKey","trackWhileOpen","positionOptions","revision","update","value","anchorLayout","floatingRef","floatingLayout","setFloatingLayout","viewport","insets","measureFloating","
|
|
1
|
+
{"version":3,"names":["useCallback","useContext","useEffect","useMemo","useReducer","useRef","useState","I18nManager","Platform","useWindowDimensions","getAnchoredOverlayPosition","useAnchorPosition","OverlayInsetsContext","STAGING_STYLE","left","opacity","pointerEvents","position","top","setLayoutIfChanged","setLayout","next","previous","width","height","useAnchoredOverlay","anchorRef","open","options","remeasureKey","externalRemeasureKey","trackWhileOpen","positionOptions","revision","update","value","anchorLayout","floatingRef","floatingLayout","setFloatingLayout","viewport","insets","measureFloating","OS","floating","current","getBoundingClientRect","rect","onFloatingLayout","event","nativeEvent","layout","requestUpdate","anchor","resizeObserver","ResizeObserver","observe","visualViewport","window","addEventListener","disconnect","removeEventListener","isRTL","ready","positionStyle","style"],"sourceRoot":"../../../src","sources":["overlay/useAnchoredOverlay.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,9 @@ export const SelectContent = /*#__PURE__*/forwardRef(({
|
|
|
18
18
|
exitingAnimation,
|
|
19
19
|
onLayout,
|
|
20
20
|
style,
|
|
21
|
+
placement = 'bottom-start',
|
|
22
|
+
offset = 4,
|
|
23
|
+
crossOffset = 0,
|
|
21
24
|
...props
|
|
22
25
|
}, ref) => {
|
|
23
26
|
const {
|
|
@@ -52,8 +55,9 @@ export const SelectContent = /*#__PURE__*/forwardRef(({
|
|
|
52
55
|
style: overlayStyle,
|
|
53
56
|
position
|
|
54
57
|
} = useAnchoredOverlay(triggerRef, overlayOpen, {
|
|
55
|
-
placement
|
|
56
|
-
offset
|
|
58
|
+
placement,
|
|
59
|
+
offset,
|
|
60
|
+
crossOffset,
|
|
57
61
|
collisionBehavior: 'flip-shift',
|
|
58
62
|
width: 'anchor'
|
|
59
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useCallback","useRef","Platform","View","FadeIn","FadeOut","composeEventHandlers","mergeRefs","OverlayContainer","useAnchoredOverlay","useDismissOverlay","Slot","dataAttributes","mergeDataAttributes","useSelectContext","useContentFocus","useListboxNavigation","jsx","_jsx","SelectContent","asChild","children","enteringAnimation","exitingAnimation","onLayout","style","props","ref","open","setOpen","contentId","triggerId","activeValue","setActiveValue","value","onValueChange","native","triggerRef","items","contentRef","focusOnMount","node","current","OS","requestAnimationFrame","setTimeout","focus","dismiss","overlayOpen","floatingRef","onFloatingLayout","overlayStyle","position","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useCallback","useRef","Platform","View","FadeIn","FadeOut","composeEventHandlers","mergeRefs","OverlayContainer","useAnchoredOverlay","useDismissOverlay","Slot","dataAttributes","mergeDataAttributes","useSelectContext","useContentFocus","useListboxNavigation","jsx","_jsx","SelectContent","asChild","children","enteringAnimation","exitingAnimation","onLayout","style","placement","offset","crossOffset","props","ref","open","setOpen","contentId","triggerId","activeValue","setActiveValue","value","onValueChange","native","triggerRef","items","contentRef","focusOnMount","node","current","OS","requestAnimationFrame","setTimeout","focus","dismiss","overlayOpen","floatingRef","onFloatingLayout","overlayStyle","position","collisionBehavior","width","mergedRef","handleKeyDown","onSelect","val","onDismiss","webProps","onKeyDown","tabIndex","Comp","entering","duration","exiting","role","id","state","side","resolvedPlacement","align","displayName"],"sourceRoot":"../../../src","sources":["select/SelectContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -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,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnchoredOverlay.d.ts","sourceRoot":"","sources":["../../../src/overlay/useAnchoredOverlay.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EAEpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAGvF,MAAM,WAAW,yBACf,SAAQ,8BAA8B,EAAE,wBAAwB;CAAG;AAErE,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,gBAAgB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAsBD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAC/B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"useAnchoredOverlay.d.ts","sourceRoot":"","sources":["../../../src/overlay/useAnchoredOverlay.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EAEpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAGvF,MAAM,WAAW,yBACf,SAAQ,8BAA8B,EAAE,wBAAwB;CAAG;AAErE,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,gBAAgB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAsBD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAC/B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAgG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectContent.d.ts","sourceRoot":"","sources":["../../../src/select/SelectContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6D,MAAM,OAAO,CAAC;AAClF,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAC;AAO9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAInD,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"SelectContent.d.ts","sourceRoot":"","sources":["../../../src/select/SelectContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6D,MAAM,OAAO,CAAC;AAClF,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAC;AAO9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAInD,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,iFA+HzB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode, RefObject } from 'react';
|
|
2
2
|
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
3
|
import type { EntryOrExitLayoutType } from 'react-native-reanimated';
|
|
4
|
+
import type { OverlayPlacement } from '../overlay';
|
|
4
5
|
import type { InteractionState } from '../types';
|
|
5
6
|
export interface SelectItemInteractionState extends InteractionState {
|
|
6
7
|
highlighted: boolean;
|
|
@@ -42,6 +43,12 @@ export interface ISelectValueProps {
|
|
|
42
43
|
children?: ReactNode;
|
|
43
44
|
}
|
|
44
45
|
export interface ISelectContentProps extends ViewProps {
|
|
46
|
+
/** Preferred dropdown placement relative to the trigger. Defaults to `bottom-start`. */
|
|
47
|
+
placement?: OverlayPlacement;
|
|
48
|
+
/** Distance between the trigger and dropdown in pixels. Defaults to 4. */
|
|
49
|
+
offset?: number;
|
|
50
|
+
/** Cross-axis adjustment from the aligned dropdown position in pixels. Defaults to 0. */
|
|
51
|
+
crossOffset?: number;
|
|
45
52
|
/** Enter animation for the dropdown. Defaults to a 150ms fade. */
|
|
46
53
|
enteringAnimation?: EntryOrExitLayoutType;
|
|
47
54
|
/** Exit animation for the dropdown. Defaults to a 100ms fade. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/select/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/select/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdx-ui/primitives",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.167",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
"@react-stately/checkbox": "3.7.4",
|
|
68
68
|
"@react-stately/radio": "3.12.0",
|
|
69
69
|
"@react-stately/toggle": "3.9.4",
|
|
70
|
-
"@cdx-ui/
|
|
71
|
-
"@cdx-ui/
|
|
70
|
+
"@cdx-ui/utils": "0.0.1-beta.167",
|
|
71
|
+
"@cdx-ui/formatters": "0.0.1-beta.167"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@types/react": "19.1.17",
|
|
@@ -246,6 +246,19 @@ export function getAnchoredOverlayPosition(
|
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
+
const availableWidth =
|
|
250
|
+
side === 'left' || side === 'right'
|
|
251
|
+
? Math.max(0, availableMainAxis(side, anchor, boundary, offset))
|
|
252
|
+
: Math.max(0, boundary.right - boundary.left);
|
|
253
|
+
const availableHeight =
|
|
254
|
+
side === 'top' || side === 'bottom'
|
|
255
|
+
? Math.max(0, availableMainAxis(side, anchor, boundary, offset))
|
|
256
|
+
: Math.max(0, boundary.bottom - boundary.top);
|
|
257
|
+
const positionedFloating: FloatingLayout = {
|
|
258
|
+
width: Math.min(measuredFloating.width, availableWidth),
|
|
259
|
+
height: Math.min(measuredFloating.height, availableHeight),
|
|
260
|
+
};
|
|
261
|
+
|
|
249
262
|
let left: number;
|
|
250
263
|
let top: number;
|
|
251
264
|
|
|
@@ -254,39 +267,32 @@ export function getAnchoredOverlayPosition(
|
|
|
254
267
|
alignCoordinate(
|
|
255
268
|
anchor.x,
|
|
256
269
|
anchor.width,
|
|
257
|
-
|
|
270
|
+
positionedFloating.width,
|
|
258
271
|
align,
|
|
259
272
|
options.isRTL ?? false,
|
|
260
273
|
) + crossOffset;
|
|
261
274
|
top =
|
|
262
275
|
side === 'top'
|
|
263
|
-
? anchor.y - offset -
|
|
276
|
+
? anchor.y - offset - positionedFloating.height
|
|
264
277
|
: anchor.y + anchor.height + offset;
|
|
265
278
|
} else {
|
|
266
279
|
left =
|
|
267
280
|
side === 'left'
|
|
268
|
-
? anchor.x - offset -
|
|
281
|
+
? anchor.x - offset - positionedFloating.width
|
|
269
282
|
: anchor.x + anchor.width + offset;
|
|
270
283
|
top =
|
|
271
|
-
alignCoordinate(anchor.y, anchor.height,
|
|
284
|
+
alignCoordinate(anchor.y, anchor.height, positionedFloating.height, align, false) +
|
|
285
|
+
crossOffset;
|
|
272
286
|
}
|
|
273
287
|
|
|
274
288
|
if (collisionBehavior === 'flip-shift') {
|
|
275
289
|
if (side === 'top' || side === 'bottom') {
|
|
276
|
-
left = clamp(left, boundary.left, boundary.right -
|
|
290
|
+
left = clamp(left, boundary.left, boundary.right - positionedFloating.width);
|
|
277
291
|
} else {
|
|
278
|
-
top = clamp(top, boundary.top, boundary.bottom -
|
|
292
|
+
top = clamp(top, boundary.top, boundary.bottom - positionedFloating.height);
|
|
279
293
|
}
|
|
280
294
|
}
|
|
281
295
|
|
|
282
|
-
const availableWidth =
|
|
283
|
-
side === 'left' || side === 'right'
|
|
284
|
-
? Math.max(0, availableMainAxis(side, anchor, boundary, offset))
|
|
285
|
-
: Math.max(0, boundary.right - boundary.left);
|
|
286
|
-
const availableHeight =
|
|
287
|
-
side === 'top' || side === 'bottom'
|
|
288
|
-
? Math.max(0, availableMainAxis(side, anchor, boundary, offset))
|
|
289
|
-
: Math.max(0, boundary.bottom - boundary.top);
|
|
290
296
|
const arrowBoundaryOffset = options.arrowBoundaryOffset ?? 8;
|
|
291
297
|
const anchorCenterX = anchor.x + anchor.width / 2;
|
|
292
298
|
const anchorCenterY = anchor.y + anchor.height / 2;
|
|
@@ -296,14 +302,14 @@ export function getAnchoredOverlayPosition(
|
|
|
296
302
|
x: clamp(
|
|
297
303
|
anchorCenterX - left,
|
|
298
304
|
arrowBoundaryOffset,
|
|
299
|
-
|
|
305
|
+
positionedFloating.width - arrowBoundaryOffset,
|
|
300
306
|
),
|
|
301
307
|
}
|
|
302
308
|
: {
|
|
303
309
|
y: clamp(
|
|
304
310
|
anchorCenterY - top,
|
|
305
311
|
arrowBoundaryOffset,
|
|
306
|
-
|
|
312
|
+
positionedFloating.height - arrowBoundaryOffset,
|
|
307
313
|
),
|
|
308
314
|
};
|
|
309
315
|
const resolvedPlacement = { side, align };
|
|
@@ -313,6 +319,8 @@ export function getAnchoredOverlayPosition(
|
|
|
313
319
|
left,
|
|
314
320
|
top,
|
|
315
321
|
width: options.width === 'anchor' ? anchor.width : undefined,
|
|
322
|
+
minWidth: positionedFloating.width,
|
|
323
|
+
minHeight: positionedFloating.height,
|
|
316
324
|
maxWidth: availableWidth,
|
|
317
325
|
maxHeight: availableHeight,
|
|
318
326
|
},
|
|
@@ -321,6 +329,6 @@ export function getAnchoredOverlayPosition(
|
|
|
321
329
|
availableWidth,
|
|
322
330
|
availableHeight,
|
|
323
331
|
arrow,
|
|
324
|
-
transformOrigin: getTransformOrigin(side, arrow,
|
|
332
|
+
transformOrigin: getTransformOrigin(side, arrow, positionedFloating),
|
|
325
333
|
};
|
|
326
334
|
}
|
|
@@ -68,19 +68,16 @@ export function useAnchoredOverlay(
|
|
|
68
68
|
const insets = useContext(OverlayInsetsContext);
|
|
69
69
|
|
|
70
70
|
const measureFloating = useCallback(() => {
|
|
71
|
+
// Native measure callbacks can resolve after onLayout and replace the rendered size
|
|
72
|
+
// with stale staging geometry. Native layout changes are already reported by onLayout.
|
|
73
|
+
if (Platform.OS !== 'web') return;
|
|
74
|
+
|
|
71
75
|
const floating = floatingRef.current;
|
|
72
76
|
if (!floating) return;
|
|
73
77
|
|
|
74
|
-
if (
|
|
78
|
+
if (typeof floating.getBoundingClientRect === 'function') {
|
|
75
79
|
const rect = floating.getBoundingClientRect();
|
|
76
80
|
setLayoutIfChanged(setFloatingLayout, { width: rect.width, height: rect.height });
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (typeof floating.measure === 'function') {
|
|
81
|
-
floating.measure((_x: number, _y: number, width: number, height: number) => {
|
|
82
|
-
setLayoutIfChanged(setFloatingLayout, { width, height });
|
|
83
|
-
});
|
|
84
81
|
}
|
|
85
82
|
}, []);
|
|
86
83
|
|
|
@@ -16,7 +16,21 @@ export interface SelectContentProps extends ISelectContentProps {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export const SelectContent = forwardRef<ComponentRef<typeof View>, SelectContentProps>(
|
|
19
|
-
(
|
|
19
|
+
(
|
|
20
|
+
{
|
|
21
|
+
asChild,
|
|
22
|
+
children,
|
|
23
|
+
enteringAnimation,
|
|
24
|
+
exitingAnimation,
|
|
25
|
+
onLayout,
|
|
26
|
+
style,
|
|
27
|
+
placement = 'bottom-start',
|
|
28
|
+
offset = 4,
|
|
29
|
+
crossOffset = 0,
|
|
30
|
+
...props
|
|
31
|
+
},
|
|
32
|
+
ref,
|
|
33
|
+
) => {
|
|
20
34
|
const {
|
|
21
35
|
open,
|
|
22
36
|
setOpen,
|
|
@@ -53,8 +67,9 @@ export const SelectContent = forwardRef<ComponentRef<typeof View>, SelectContent
|
|
|
53
67
|
style: overlayStyle,
|
|
54
68
|
position,
|
|
55
69
|
} = useAnchoredOverlay(triggerRef, overlayOpen, {
|
|
56
|
-
placement
|
|
57
|
-
offset
|
|
70
|
+
placement,
|
|
71
|
+
offset,
|
|
72
|
+
crossOffset,
|
|
58
73
|
collisionBehavior: 'flip-shift',
|
|
59
74
|
width: 'anchor',
|
|
60
75
|
});
|
package/src/select/types.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode, RefObject } from 'react';
|
|
2
2
|
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
3
|
import type { EntryOrExitLayoutType } from 'react-native-reanimated';
|
|
4
|
+
import type { OverlayPlacement } from '../overlay';
|
|
4
5
|
import type { InteractionState } from '../types';
|
|
5
6
|
|
|
6
7
|
export interface SelectItemInteractionState extends InteractionState {
|
|
@@ -47,6 +48,12 @@ export interface ISelectValueProps {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export interface ISelectContentProps extends ViewProps {
|
|
51
|
+
/** Preferred dropdown placement relative to the trigger. Defaults to `bottom-start`. */
|
|
52
|
+
placement?: OverlayPlacement;
|
|
53
|
+
/** Distance between the trigger and dropdown in pixels. Defaults to 4. */
|
|
54
|
+
offset?: number;
|
|
55
|
+
/** Cross-axis adjustment from the aligned dropdown position in pixels. Defaults to 0. */
|
|
56
|
+
crossOffset?: number;
|
|
50
57
|
/** Enter animation for the dropdown. Defaults to a 150ms fade. */
|
|
51
58
|
enteringAnimation?: EntryOrExitLayoutType;
|
|
52
59
|
/** Exit animation for the dropdown. Defaults to a 100ms fade. */
|