@yahoo/uds 3.116.1 → 3.116.3
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/dist/components/Scrim.cjs +0 -2
- package/dist/components/Scrim.js +0 -2
- package/dist/components/client/BottomSheet/BottomSheet.cjs +37 -8
- package/dist/components/client/BottomSheet/BottomSheet.js +38 -9
- package/dist/components/client/BottomSheet/BottomSheetContent.cjs +4 -2
- package/dist/components/client/BottomSheet/BottomSheetContent.js +4 -2
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.cjs +15 -0
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.d.cts +12 -0
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.d.ts +12 -0
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.js +12 -0
- package/dist/styles/styler.d.cts +85 -85
- package/dist/styles/styler.d.ts +85 -85
- package/dist/tailwind/dist/css/generate.cjs +6 -0
- package/dist/tailwind/dist/css/generate.helpers.cjs +5 -1
- package/dist/tailwind/dist/css/generate.helpers.js +5 -1
- package/dist/tailwind/dist/css/generate.js +6 -0
- package/dist/tailwind/dist/css/nodeUtils.cjs +2 -1
- package/dist/tailwind/dist/css/nodeUtils.js +2 -1
- package/dist/tailwind/dist/purger/optimized/ast/expressions.cjs +103 -1
- package/dist/tailwind/dist/purger/optimized/ast/expressions.js +102 -2
- package/dist/tailwind/dist/purger/optimized/ast/jsx.cjs +7 -1
- package/dist/tailwind/dist/purger/optimized/ast/jsx.js +7 -1
- package/dist/tailwind/dist/purger/optimized/purgeFromCode.cjs +18 -13
- package/dist/tailwind/dist/purger/optimized/purgeFromCode.js +18 -13
- package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.cjs +2 -1
- package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.js +2 -1
- package/dist/uds/generated/componentData.cjs +1124 -1105
- package/dist/uds/generated/componentData.js +1077 -1064
- package/dist/uds/generated/tailwindPurge.cjs +7 -7
- package/dist/uds/generated/tailwindPurge.js +7 -7
- package/generated/componentData.json +1610 -1595
- package/generated/tailwindPurge.ts +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
-
'use client';
|
|
3
|
-
|
|
4
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
3
|
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
6
4
|
const require_styles_styler = require('../styles/styler.cjs');
|
package/dist/components/Scrim.js
CHANGED
|
@@ -6,6 +6,7 @@ const require_styles_styler = require('../../../styles/styler.cjs');
|
|
|
6
6
|
const require_components_Box = require('../../Box.cjs');
|
|
7
7
|
const require_components_Scrim = require('../../Scrim.cjs');
|
|
8
8
|
const require_components_client_BottomSheet_BottomSheetHandle = require('./BottomSheetHandle.cjs');
|
|
9
|
+
const require_components_client_BottomSheet_BottomSheetInternalContext = require('./BottomSheetInternalContext.cjs');
|
|
9
10
|
const require_components_client_BottomSheet_UDSBottomSheetConfigProvider = require('./UDSBottomSheetConfigProvider.cjs');
|
|
10
11
|
const require_components_client_BottomSheet_useBottomSheetDrag = require('./useBottomSheetDrag.cjs');
|
|
11
12
|
const require_components_client_BottomSheet_useBottomSheetSnapModel = require('./useBottomSheetSnapModel.cjs');
|
|
@@ -44,7 +45,15 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
44
45
|
forceZeroMarginsRef.current = keyboardHeightPx > 0;
|
|
45
46
|
const sheetRef = (0, react.useRef)(null);
|
|
46
47
|
const maxSnapPxRef = (0, react.useRef)(0);
|
|
48
|
+
const sheetHeightRef = (0, react.useRef)(void 0);
|
|
49
|
+
const wasOpenRef = (0, react.useRef)(false);
|
|
50
|
+
if (isOpen && !wasOpenRef.current) sheetHeightRef.current = void 0;
|
|
51
|
+
wasOpenRef.current = isOpen;
|
|
47
52
|
const maxHeightPx = Math.max(viewportHeightPx - SHEET_MAX_HEIGHT_TOP_OFFSET_PX, 0);
|
|
53
|
+
const applySheetHeight = (0, react.useCallback)((el, h) => {
|
|
54
|
+
el.style.height = h;
|
|
55
|
+
sheetHeightRef.current = h;
|
|
56
|
+
}, []);
|
|
48
57
|
const rootVariantClass = require_styles_styler.getStyles({ bottomsheetVariantRoot: variant });
|
|
49
58
|
const { applyExpansionMargins, thresholdRef: expansionThresholdRef } = require_components_client_BottomSheet_useExpansionMargins.useExpansionMargins({
|
|
50
59
|
sheetRef,
|
|
@@ -62,9 +71,9 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
62
71
|
const setTranslateImmediate = (0, react.useCallback)((nextTranslatePx) => {
|
|
63
72
|
const el = sheetRef.current;
|
|
64
73
|
if (!el) return;
|
|
65
|
-
el
|
|
74
|
+
applySheetHeight(el, `${maxSnapPxRef.current - nextTranslatePx}px`);
|
|
66
75
|
applyExpansionMargins(el, nextTranslatePx);
|
|
67
|
-
}, [applyExpansionMargins]);
|
|
76
|
+
}, [applySheetHeight, applyExpansionMargins]);
|
|
68
77
|
const { resolvedSnapPoints, snapPointsPx, maxSnapPointPx, snapPointTranslatesPx, activeSnapIndex, restTranslatePx, emitSnapPointChange, openTimeRef, lastTimeDragPreventedRef, isEnteringRef } = require_components_client_BottomSheet_useBottomSheetSnapModel.useBottomSheetSnapModel({
|
|
69
78
|
isOpen,
|
|
70
79
|
snapPointsProp,
|
|
@@ -77,16 +86,16 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
77
86
|
setTranslateAnimated: (0, react.useCallback)((nextTranslatePx) => {
|
|
78
87
|
const el = sheetRef.current;
|
|
79
88
|
if (!el) return;
|
|
80
|
-
const
|
|
89
|
+
const h = `${maxSnapPxRef.current - nextTranslatePx}px`;
|
|
81
90
|
if (!el.style.height) {
|
|
82
|
-
el
|
|
91
|
+
applySheetHeight(el, h);
|
|
83
92
|
applyExpansionMargins(el, nextTranslatePx);
|
|
84
93
|
} else {
|
|
85
94
|
const easing = "cubic-bezier(0.32, 0.72, 0, 1)";
|
|
86
95
|
let transition = `height 500ms ${easing}`;
|
|
87
96
|
if (expansionThresholdRef.current != null) transition += `, margin-left 500ms ${easing}, margin-right 500ms ${easing}, margin-bottom 500ms ${easing}`;
|
|
88
97
|
el.style.transition = transition;
|
|
89
|
-
el
|
|
98
|
+
applySheetHeight(el, h);
|
|
90
99
|
applyExpansionMargins(el, nextTranslatePx);
|
|
91
100
|
const cleanup = () => {
|
|
92
101
|
el.style.removeProperty("transition");
|
|
@@ -94,7 +103,11 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
94
103
|
};
|
|
95
104
|
el.addEventListener("transitionend", cleanup);
|
|
96
105
|
}
|
|
97
|
-
}, [
|
|
106
|
+
}, [
|
|
107
|
+
applySheetHeight,
|
|
108
|
+
applyExpansionMargins,
|
|
109
|
+
expansionThresholdRef
|
|
110
|
+
]),
|
|
98
111
|
isDraggingRef
|
|
99
112
|
});
|
|
100
113
|
maxSnapPxRef.current = maxSnapPointPx;
|
|
@@ -103,6 +116,8 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
103
116
|
const resolvedDismissThresholdPx = (snapPointsPx[0] ?? maxSnapPointPx) * DRAG_DISMISS_THRESHOLD_RATIO;
|
|
104
117
|
const shouldShowHandleIndicator = showHandleIndicator && enableDrag;
|
|
105
118
|
const isAtMaxSnapPoint = activeSnapIndex === resolvedSnapPoints.length - 1;
|
|
119
|
+
const scrollLocked = !isAtMaxSnapPoint;
|
|
120
|
+
const internalContextValue = (0, react.useMemo)(() => ({ scrollLocked }), [scrollLocked]);
|
|
106
121
|
const shouldHideEdgeBordersAtMaxSnap = fullWidthAtMaxSnap && resolvedSnapPoints.length >= 2 && isAtMaxSnapPoint;
|
|
107
122
|
const handleHandleIndicatorKeyDown = (0, react.useCallback)((event) => {
|
|
108
123
|
if (!shouldShowHandleIndicator || resolvedSnapPoints.length <= 1) return;
|
|
@@ -153,6 +168,11 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
153
168
|
isOpen,
|
|
154
169
|
applyExpansionMargins
|
|
155
170
|
]);
|
|
171
|
+
(0, react.useLayoutEffect)(() => {
|
|
172
|
+
const el = sheetRef.current;
|
|
173
|
+
if (!el || !sheetHeightRef.current) return;
|
|
174
|
+
if (!el.style.height) el.style.height = sheetHeightRef.current;
|
|
175
|
+
});
|
|
156
176
|
const dialogBackdrop = modal ? backdrop ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Scrim.Scrim, {
|
|
157
177
|
className: slotProps?.scrim?.className,
|
|
158
178
|
animateOpacity: true
|
|
@@ -172,8 +192,9 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
172
192
|
portalElement,
|
|
173
193
|
preventBodyScroll: preventBodyScroll ?? (modal ? void 0 : false),
|
|
174
194
|
"data-testid": "bottom-sheet",
|
|
175
|
-
className: require_styles_styler.cx("fixed overflow-hidden inset-x-0 bottom-0 z-50", keyboardHeightPx > 0 ? void 0 : "bottom-0", "[will-change:transform] touch-none", "[transform:translate3d(0,var(--uds-bottomsheet-hidden-translate),0)]", "data-[enter]:[transform:translate3d(0,var(--uds-bottomsheet-visible-translate),0)]", "transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]", "motion-reduce:transition-none", sheetClassName, rootVariantClass),
|
|
195
|
+
className: require_styles_styler.cx("fixed overflow-hidden inset-x-0 bottom-0 z-50", keyboardHeightPx > 0 ? void 0 : "bottom-0", scrollLocked ? "[will-change:transform] touch-none" : "[will-change:transform]", "[transform:translate3d(0,var(--uds-bottomsheet-hidden-translate),0)]", "data-[enter]:[transform:translate3d(0,var(--uds-bottomsheet-visible-translate),0)]", "transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]", "motion-reduce:transition-none", sheetClassName, rootVariantClass),
|
|
176
196
|
style: {
|
|
197
|
+
height: sheetHeightRef.current,
|
|
177
198
|
maxHeight: maxHeightPx ? `${maxHeightPx}px` : void 0,
|
|
178
199
|
...shouldHideEdgeBordersAtMaxSnap ? {
|
|
179
200
|
borderBottomWidth: 0,
|
|
@@ -200,7 +221,15 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
200
221
|
ariaLabel: "Resize sheet",
|
|
201
222
|
className: slotProps?.handleIndicator?.className
|
|
202
223
|
})
|
|
203
|
-
}),
|
|
224
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_client_BottomSheet_BottomSheetInternalContext.BottomSheetInternalContext.Provider, {
|
|
225
|
+
value: internalContextValue,
|
|
226
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Box.Box, {
|
|
227
|
+
display: "flex",
|
|
228
|
+
flexDirection: "column",
|
|
229
|
+
className: "absolute inset-0 min-h-0 p-[inherit]",
|
|
230
|
+
children
|
|
231
|
+
})
|
|
232
|
+
})]
|
|
204
233
|
});
|
|
205
234
|
}
|
|
206
235
|
BottomSheet.displayName = "BottomSheet";
|
|
@@ -4,6 +4,7 @@ import { cx, getStyles } from "../../../styles/styler.js";
|
|
|
4
4
|
import { Box } from "../../Box.js";
|
|
5
5
|
import { Scrim } from "../../Scrim.js";
|
|
6
6
|
import { BottomSheetHandle } from "./BottomSheetHandle.js";
|
|
7
|
+
import { BottomSheetInternalContext } from "./BottomSheetInternalContext.js";
|
|
7
8
|
import { useBottomSheetConfig } from "./UDSBottomSheetConfigProvider.js";
|
|
8
9
|
import { useBottomSheetDrag } from "./useBottomSheetDrag.js";
|
|
9
10
|
import { useBottomSheetSnapModel } from "./useBottomSheetSnapModel.js";
|
|
@@ -11,7 +12,7 @@ import { getBottomSheetInternal } from "./useBottomSheetStore.js";
|
|
|
11
12
|
import { useExpansionMargins } from "./useExpansionMargins.js";
|
|
12
13
|
import { useViewportHeight } from "./useViewportHeight.js";
|
|
13
14
|
import { useVirtualKeyboard } from "./useVirtualKeyboard.js";
|
|
14
|
-
import { useCallback, useEffect, useRef } from "react";
|
|
15
|
+
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from "react";
|
|
15
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
17
|
import { Dialog, useDialogContext } from "@ariakit/react";
|
|
17
18
|
|
|
@@ -42,7 +43,15 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
42
43
|
forceZeroMarginsRef.current = keyboardHeightPx > 0;
|
|
43
44
|
const sheetRef = useRef(null);
|
|
44
45
|
const maxSnapPxRef = useRef(0);
|
|
46
|
+
const sheetHeightRef = useRef(void 0);
|
|
47
|
+
const wasOpenRef = useRef(false);
|
|
48
|
+
if (isOpen && !wasOpenRef.current) sheetHeightRef.current = void 0;
|
|
49
|
+
wasOpenRef.current = isOpen;
|
|
45
50
|
const maxHeightPx = Math.max(viewportHeightPx - SHEET_MAX_HEIGHT_TOP_OFFSET_PX, 0);
|
|
51
|
+
const applySheetHeight = useCallback((el, h) => {
|
|
52
|
+
el.style.height = h;
|
|
53
|
+
sheetHeightRef.current = h;
|
|
54
|
+
}, []);
|
|
46
55
|
const rootVariantClass = getStyles({ bottomsheetVariantRoot: variant });
|
|
47
56
|
const { applyExpansionMargins, thresholdRef: expansionThresholdRef } = useExpansionMargins({
|
|
48
57
|
sheetRef,
|
|
@@ -60,9 +69,9 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
60
69
|
const setTranslateImmediate = useCallback((nextTranslatePx) => {
|
|
61
70
|
const el = sheetRef.current;
|
|
62
71
|
if (!el) return;
|
|
63
|
-
el
|
|
72
|
+
applySheetHeight(el, `${maxSnapPxRef.current - nextTranslatePx}px`);
|
|
64
73
|
applyExpansionMargins(el, nextTranslatePx);
|
|
65
|
-
}, [applyExpansionMargins]);
|
|
74
|
+
}, [applySheetHeight, applyExpansionMargins]);
|
|
66
75
|
const { resolvedSnapPoints, snapPointsPx, maxSnapPointPx, snapPointTranslatesPx, activeSnapIndex, restTranslatePx, emitSnapPointChange, openTimeRef, lastTimeDragPreventedRef, isEnteringRef } = useBottomSheetSnapModel({
|
|
67
76
|
isOpen,
|
|
68
77
|
snapPointsProp,
|
|
@@ -75,16 +84,16 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
75
84
|
setTranslateAnimated: useCallback((nextTranslatePx) => {
|
|
76
85
|
const el = sheetRef.current;
|
|
77
86
|
if (!el) return;
|
|
78
|
-
const
|
|
87
|
+
const h = `${maxSnapPxRef.current - nextTranslatePx}px`;
|
|
79
88
|
if (!el.style.height) {
|
|
80
|
-
el
|
|
89
|
+
applySheetHeight(el, h);
|
|
81
90
|
applyExpansionMargins(el, nextTranslatePx);
|
|
82
91
|
} else {
|
|
83
92
|
const easing = "cubic-bezier(0.32, 0.72, 0, 1)";
|
|
84
93
|
let transition = `height 500ms ${easing}`;
|
|
85
94
|
if (expansionThresholdRef.current != null) transition += `, margin-left 500ms ${easing}, margin-right 500ms ${easing}, margin-bottom 500ms ${easing}`;
|
|
86
95
|
el.style.transition = transition;
|
|
87
|
-
el
|
|
96
|
+
applySheetHeight(el, h);
|
|
88
97
|
applyExpansionMargins(el, nextTranslatePx);
|
|
89
98
|
const cleanup = () => {
|
|
90
99
|
el.style.removeProperty("transition");
|
|
@@ -92,7 +101,11 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
92
101
|
};
|
|
93
102
|
el.addEventListener("transitionend", cleanup);
|
|
94
103
|
}
|
|
95
|
-
}, [
|
|
104
|
+
}, [
|
|
105
|
+
applySheetHeight,
|
|
106
|
+
applyExpansionMargins,
|
|
107
|
+
expansionThresholdRef
|
|
108
|
+
]),
|
|
96
109
|
isDraggingRef
|
|
97
110
|
});
|
|
98
111
|
maxSnapPxRef.current = maxSnapPointPx;
|
|
@@ -101,6 +114,8 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
101
114
|
const resolvedDismissThresholdPx = (snapPointsPx[0] ?? maxSnapPointPx) * DRAG_DISMISS_THRESHOLD_RATIO;
|
|
102
115
|
const shouldShowHandleIndicator = showHandleIndicator && enableDrag;
|
|
103
116
|
const isAtMaxSnapPoint = activeSnapIndex === resolvedSnapPoints.length - 1;
|
|
117
|
+
const scrollLocked = !isAtMaxSnapPoint;
|
|
118
|
+
const internalContextValue = useMemo(() => ({ scrollLocked }), [scrollLocked]);
|
|
104
119
|
const shouldHideEdgeBordersAtMaxSnap = fullWidthAtMaxSnap && resolvedSnapPoints.length >= 2 && isAtMaxSnapPoint;
|
|
105
120
|
const handleHandleIndicatorKeyDown = useCallback((event) => {
|
|
106
121
|
if (!shouldShowHandleIndicator || resolvedSnapPoints.length <= 1) return;
|
|
@@ -151,6 +166,11 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
151
166
|
isOpen,
|
|
152
167
|
applyExpansionMargins
|
|
153
168
|
]);
|
|
169
|
+
useLayoutEffect(() => {
|
|
170
|
+
const el = sheetRef.current;
|
|
171
|
+
if (!el || !sheetHeightRef.current) return;
|
|
172
|
+
if (!el.style.height) el.style.height = sheetHeightRef.current;
|
|
173
|
+
});
|
|
154
174
|
const dialogBackdrop = modal ? backdrop ?? /* @__PURE__ */ jsx(Scrim, {
|
|
155
175
|
className: slotProps?.scrim?.className,
|
|
156
176
|
animateOpacity: true
|
|
@@ -170,8 +190,9 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
170
190
|
portalElement,
|
|
171
191
|
preventBodyScroll: preventBodyScroll ?? (modal ? void 0 : false),
|
|
172
192
|
"data-testid": "bottom-sheet",
|
|
173
|
-
className: cx("fixed overflow-hidden inset-x-0 bottom-0 z-50", keyboardHeightPx > 0 ? void 0 : "bottom-0", "[will-change:transform] touch-none", "[transform:translate3d(0,var(--uds-bottomsheet-hidden-translate),0)]", "data-[enter]:[transform:translate3d(0,var(--uds-bottomsheet-visible-translate),0)]", "transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]", "motion-reduce:transition-none", sheetClassName, rootVariantClass),
|
|
193
|
+
className: cx("fixed overflow-hidden inset-x-0 bottom-0 z-50", keyboardHeightPx > 0 ? void 0 : "bottom-0", scrollLocked ? "[will-change:transform] touch-none" : "[will-change:transform]", "[transform:translate3d(0,var(--uds-bottomsheet-hidden-translate),0)]", "data-[enter]:[transform:translate3d(0,var(--uds-bottomsheet-visible-translate),0)]", "transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]", "motion-reduce:transition-none", sheetClassName, rootVariantClass),
|
|
174
194
|
style: {
|
|
195
|
+
height: sheetHeightRef.current,
|
|
175
196
|
maxHeight: maxHeightPx ? `${maxHeightPx}px` : void 0,
|
|
176
197
|
...shouldHideEdgeBordersAtMaxSnap ? {
|
|
177
198
|
borderBottomWidth: 0,
|
|
@@ -198,7 +219,15 @@ function BottomSheet({ children, className: sheetClassName, controller: controll
|
|
|
198
219
|
ariaLabel: "Resize sheet",
|
|
199
220
|
className: slotProps?.handleIndicator?.className
|
|
200
221
|
})
|
|
201
|
-
}),
|
|
222
|
+
}), /* @__PURE__ */ jsx(BottomSheetInternalContext.Provider, {
|
|
223
|
+
value: internalContextValue,
|
|
224
|
+
children: /* @__PURE__ */ jsx(Box, {
|
|
225
|
+
display: "flex",
|
|
226
|
+
flexDirection: "column",
|
|
227
|
+
className: "absolute inset-0 min-h-0 p-[inherit]",
|
|
228
|
+
children
|
|
229
|
+
})
|
|
230
|
+
})]
|
|
202
231
|
});
|
|
203
232
|
}
|
|
204
233
|
BottomSheet.displayName = "BottomSheet";
|
|
@@ -5,15 +5,17 @@ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
|
5
5
|
const require_styles_styler = require('../../../styles/styler.cjs');
|
|
6
6
|
const require_components_Box = require('../../Box.cjs');
|
|
7
7
|
const require_components_VStack = require('../../VStack.cjs');
|
|
8
|
+
const require_components_client_BottomSheet_BottomSheetInternalContext = require('./BottomSheetInternalContext.cjs');
|
|
8
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
10
|
|
|
10
11
|
//#region src/components/client/BottomSheet/BottomSheetContent.tsx
|
|
11
12
|
function BottomSheetContent({ children, className }) {
|
|
13
|
+
const scrollLocked = require_components_client_BottomSheet_BottomSheetInternalContext.useBottomSheetInternalContext()?.scrollLocked ?? false;
|
|
12
14
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Box.Box, {
|
|
13
15
|
display: "block",
|
|
14
|
-
overflowY: "auto",
|
|
16
|
+
overflowY: scrollLocked ? "hidden" : "auto",
|
|
15
17
|
flex: "1",
|
|
16
|
-
className: require_styles_styler.cx("min-h-0", "touch-pan-y", className),
|
|
18
|
+
className: require_styles_styler.cx("min-h-0", scrollLocked ? void 0 : "touch-pan-y", className),
|
|
17
19
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_VStack.VStack, {
|
|
18
20
|
className: "pb-[calc(env(safe-area-inset-bottom))]",
|
|
19
21
|
children
|
|
@@ -3,15 +3,17 @@
|
|
|
3
3
|
import { cx } from "../../../styles/styler.js";
|
|
4
4
|
import { Box } from "../../Box.js";
|
|
5
5
|
import { VStack } from "../../VStack.js";
|
|
6
|
+
import { useBottomSheetInternalContext } from "./BottomSheetInternalContext.js";
|
|
6
7
|
import { jsx } from "react/jsx-runtime";
|
|
7
8
|
|
|
8
9
|
//#region src/components/client/BottomSheet/BottomSheetContent.tsx
|
|
9
10
|
function BottomSheetContent({ children, className }) {
|
|
11
|
+
const scrollLocked = useBottomSheetInternalContext()?.scrollLocked ?? false;
|
|
10
12
|
return /* @__PURE__ */ jsx(Box, {
|
|
11
13
|
display: "block",
|
|
12
|
-
overflowY: "auto",
|
|
14
|
+
overflowY: scrollLocked ? "hidden" : "auto",
|
|
13
15
|
flex: "1",
|
|
14
|
-
className: cx("min-h-0", "touch-pan-y", className),
|
|
16
|
+
className: cx("min-h-0", scrollLocked ? void 0 : "touch-pan-y", className),
|
|
15
17
|
children: /* @__PURE__ */ jsx(VStack, {
|
|
16
18
|
className: "pb-[calc(env(safe-area-inset-bottom))]",
|
|
17
19
|
children
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
5
|
+
let react = require("react");
|
|
6
|
+
|
|
7
|
+
//#region src/components/client/BottomSheet/BottomSheetInternalContext.tsx
|
|
8
|
+
const BottomSheetInternalContext = (0, react.createContext)(null);
|
|
9
|
+
function useBottomSheetInternalContext() {
|
|
10
|
+
return (0, react.useContext)(BottomSheetInternalContext);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.BottomSheetInternalContext = BottomSheetInternalContext;
|
|
15
|
+
exports.useBottomSheetInternalContext = useBottomSheetInternalContext;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/client/BottomSheet/BottomSheetInternalContext.d.ts
|
|
5
|
+
interface BottomSheetInternalContextValue {
|
|
6
|
+
/** Whether content scrolling is locked (true at non-max snap points). */
|
|
7
|
+
scrollLocked: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const BottomSheetInternalContext: react.Context<BottomSheetInternalContextValue | null>;
|
|
10
|
+
declare function useBottomSheetInternalContext(): BottomSheetInternalContextValue | null;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { BottomSheetInternalContext, useBottomSheetInternalContext };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/client/BottomSheet/BottomSheetInternalContext.d.ts
|
|
5
|
+
interface BottomSheetInternalContextValue {
|
|
6
|
+
/** Whether content scrolling is locked (true at non-max snap points). */
|
|
7
|
+
scrollLocked: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const BottomSheetInternalContext: react.Context<BottomSheetInternalContextValue | null>;
|
|
10
|
+
declare function useBottomSheetInternalContext(): BottomSheetInternalContextValue | null;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { BottomSheetInternalContext, useBottomSheetInternalContext };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/client/BottomSheet/BottomSheetInternalContext.tsx
|
|
6
|
+
const BottomSheetInternalContext = createContext(null);
|
|
7
|
+
function useBottomSheetInternalContext() {
|
|
8
|
+
return useContext(BottomSheetInternalContext);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { BottomSheetInternalContext, useBottomSheetInternalContext };
|