@expo/ui 57.0.10 → 57.0.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/CHANGELOG.md +28 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/ui/ExpoUIModule.kt +21 -1
- package/android/src/main/java/expo/modules/ui/graphics/DrawablePainter.kt +43 -0
- package/android/src/main/java/expo/modules/ui/{icon/VectorIconLoader.kt → graphics/ImageLoader.kt} +122 -87
- package/android/src/main/java/expo/modules/ui/graphics/ImageSource.kt +28 -0
- package/android/src/main/java/expo/modules/ui/{icon → graphics}/ResourceIdHelper.kt +1 -1
- package/android/src/main/java/expo/modules/ui/icon/IconView.kt +7 -78
- package/android/src/main/java/expo/modules/ui/image/ImageView.kt +136 -0
- package/build/State/useWorkletProp.d.ts.map +1 -1
- package/build/jetpack-compose/Image/index.d.ts +107 -0
- package/build/jetpack-compose/Image/index.d.ts.map +1 -0
- package/build/jetpack-compose/index.d.ts +1 -0
- package/build/jetpack-compose/index.d.ts.map +1 -1
- package/build/swift-ui/Alert/index.d.ts.map +1 -1
- package/build/swift-ui/ConfirmationDialog/index.d.ts.map +1 -1
- package/build/swift-ui/Overlay/index.d.ts.map +1 -1
- package/build/swift-ui/Popover/index.d.ts.map +1 -1
- package/build/swift-ui/Slider/index.d.ts.map +1 -1
- package/build/swift-ui/modifiers/index.d.ts +61 -9
- package/build/swift-ui/modifiers/index.d.ts.map +1 -1
- package/build/universal/BottomSheet/index.android.d.ts +1 -1
- package/build/universal/BottomSheet/index.android.d.ts.map +1 -1
- package/build/universal/BottomSheet/index.d.ts +1 -1
- package/build/universal/BottomSheet/index.d.ts.map +1 -1
- package/build/universal/BottomSheet/index.ios.d.ts +1 -1
- package/build/universal/BottomSheet/index.ios.d.ts.map +1 -1
- package/build/universal/BottomSheet/types.d.ts +28 -0
- package/build/universal/BottomSheet/types.d.ts.map +1 -1
- package/build/universal/BottomSheet/utils.d.ts +13 -0
- package/build/universal/BottomSheet/utils.d.ts.map +1 -0
- package/expo-module.config.json +1 -1
- package/ios/Convertibles/PaddingValue.swift +57 -0
- package/ios/Modifiers/MenuIndicatorModifier.swift +18 -0
- package/ios/Modifiers/MenuStyleModifier.swift +28 -0
- package/ios/Modifiers/ViewModifierRegistry.swift +105 -18
- package/ios/SliderView.swift +11 -5
- package/ios/State/WorkletCallbackClassDef.swift +7 -0
- package/ios/Toggle/ToggleView.swift +16 -18
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.10/expo.modules.ui-57.0.10-sources.jar → 57.0.12/expo.modules.ui-57.0.12-sources.jar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.aar +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.10/expo.modules.ui-57.0.10.module → 57.0.12/expo.modules.ui-57.0.12.module} +22 -22
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.module.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.10/expo.modules.ui-57.0.10.pom → 57.0.12/expo.modules.ui-57.0.12.pom} +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.12/expo.modules.ui-57.0.12.pom.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
- package/package.json +4 -4
- package/src/State/useWorkletProp.ts +31 -14
- package/src/jetpack-compose/Image/index.tsx +149 -0
- package/src/jetpack-compose/index.ts +1 -0
- package/src/swift-ui/Alert/index.tsx +1 -0
- package/src/swift-ui/ConfirmationDialog/index.tsx +1 -0
- package/src/swift-ui/Overlay/index.tsx +1 -0
- package/src/swift-ui/Popover/index.tsx +1 -0
- package/src/swift-ui/Slider/index.tsx +14 -8
- package/src/swift-ui/modifiers/index.ts +70 -8
- package/src/universal/BottomSheet/index.android.tsx +13 -2
- package/src/universal/BottomSheet/index.ios.tsx +9 -1
- package/src/universal/BottomSheet/index.tsx +17 -2
- package/src/universal/BottomSheet/types.ts +33 -0
- package/src/universal/BottomSheet/utils.ts +35 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.module.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.sha512 +0 -1
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from '@expo/ui/swift-ui/modifiers';
|
|
10
10
|
|
|
11
11
|
import type { BottomSheetProps, SnapPoint } from './types';
|
|
12
|
+
import { resolveContentPadding } from './utils';
|
|
12
13
|
|
|
13
14
|
function snapPointToDetent(snapPoint: SnapPoint): PresentationDetent {
|
|
14
15
|
if (snapPoint === 'half') return 'medium';
|
|
@@ -24,10 +25,17 @@ export function BottomSheet({
|
|
|
24
25
|
snapPoints,
|
|
25
26
|
testID,
|
|
26
27
|
modifiers,
|
|
28
|
+
contentPadding,
|
|
27
29
|
}: BottomSheetProps) {
|
|
30
|
+
const { top, bottom, left, right } = resolveContentPadding(contentPadding, {
|
|
31
|
+
top: 16,
|
|
32
|
+
bottom: 0,
|
|
33
|
+
left: 16,
|
|
34
|
+
right: 16,
|
|
35
|
+
});
|
|
28
36
|
const presentationModifiers: ModifierConfig[] = [
|
|
29
37
|
frame({ maxWidth: Infinity, alignment: 'topLeading' }),
|
|
30
|
-
padding({ top
|
|
38
|
+
padding({ top, bottom, leading: left, trailing: right }),
|
|
31
39
|
presentationDragIndicator(showDragIndicator ? 'visible' : 'hidden'),
|
|
32
40
|
];
|
|
33
41
|
if (snapPoints && snapPoints.length > 0) {
|
|
@@ -2,6 +2,7 @@ import { useColorScheme } from 'react-native';
|
|
|
2
2
|
import { Drawer } from 'vaul';
|
|
3
3
|
|
|
4
4
|
import type { BottomSheetProps, SnapPoint } from './types';
|
|
5
|
+
import { resolveContentPadding } from './utils';
|
|
5
6
|
|
|
6
7
|
// Visually-hidden style for the screen-reader-only Drawer.Title.
|
|
7
8
|
const visuallyHiddenStyle: React.CSSProperties = {
|
|
@@ -33,8 +34,15 @@ export function BottomSheet({
|
|
|
33
34
|
showDragIndicator = true,
|
|
34
35
|
snapPoints,
|
|
35
36
|
testID,
|
|
37
|
+
contentPadding,
|
|
36
38
|
}: BottomSheetProps) {
|
|
37
39
|
const isDark = useColorScheme() === 'dark';
|
|
40
|
+
const { top, bottom, left, right } = resolveContentPadding(contentPadding, {
|
|
41
|
+
top: 16,
|
|
42
|
+
bottom: 16,
|
|
43
|
+
left: 16,
|
|
44
|
+
right: 16,
|
|
45
|
+
});
|
|
38
46
|
const vaulSnapPoints = snapPoints?.length ? snapPoints.map(snapPointToVaul) : undefined;
|
|
39
47
|
const hasSnapPoints = vaulSnapPoints != null;
|
|
40
48
|
|
|
@@ -60,7 +68,15 @@ export function BottomSheet({
|
|
|
60
68
|
{/* Radix Dialog requires a title for a11y; render visually-hidden. */}
|
|
61
69
|
<Drawer.Title style={visuallyHiddenStyle}>Bottom sheet</Drawer.Title>
|
|
62
70
|
{showDragIndicator && <Drawer.Handle />}
|
|
63
|
-
<div
|
|
71
|
+
<div
|
|
72
|
+
style={{
|
|
73
|
+
...innerStyle,
|
|
74
|
+
paddingTop: top,
|
|
75
|
+
paddingBottom: bottom,
|
|
76
|
+
paddingLeft: left,
|
|
77
|
+
paddingRight: right,
|
|
78
|
+
}}
|
|
79
|
+
data-testid={testID}>
|
|
64
80
|
{children}
|
|
65
81
|
</div>
|
|
66
82
|
</Drawer.Content>
|
|
@@ -99,7 +115,6 @@ const noSnapPointContentStyle: React.CSSProperties = {
|
|
|
99
115
|
};
|
|
100
116
|
|
|
101
117
|
const innerStyle: React.CSSProperties = {
|
|
102
|
-
padding: 16,
|
|
103
118
|
overflow: 'auto',
|
|
104
119
|
};
|
|
105
120
|
|
|
@@ -15,6 +15,19 @@ import type { ModifierConfig } from '../../types';
|
|
|
15
15
|
*/
|
|
16
16
|
export type SnapPoint = 'half' | 'full' | { fraction: number } | { height: number };
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Padding between a [`BottomSheet`](#bottomsheet) and its content — a single value applied to every
|
|
20
|
+
* edge, or per-edge values where an edge that is left out is `0`.
|
|
21
|
+
*/
|
|
22
|
+
export type BottomSheetContentPadding =
|
|
23
|
+
| number
|
|
24
|
+
| {
|
|
25
|
+
top?: number;
|
|
26
|
+
bottom?: number;
|
|
27
|
+
left?: number;
|
|
28
|
+
right?: number;
|
|
29
|
+
};
|
|
30
|
+
|
|
18
31
|
/**
|
|
19
32
|
* Props for the [`BottomSheet`](#bottomsheet) component, a modal sheet that slides up from the bottom of the screen.
|
|
20
33
|
*/
|
|
@@ -50,11 +63,31 @@ export interface BottomSheetProps {
|
|
|
50
63
|
*/
|
|
51
64
|
snapPoints?: SnapPoint[];
|
|
52
65
|
|
|
66
|
+
/**
|
|
67
|
+
* Padding between the sheet and [`children`](#children), in dp on Android, points on iOS, and
|
|
68
|
+
* CSS pixels on web. Pass `0` for content that reaches the sheet's edges.
|
|
69
|
+
*
|
|
70
|
+
* When omitted, each platform keeps the inset it applies by default.
|
|
71
|
+
*
|
|
72
|
+
* @example `contentPadding={0}` — full-bleed content
|
|
73
|
+
* @example `contentPadding={{ top: 8, bottom: 24 }}` — no horizontal inset
|
|
74
|
+
*/
|
|
75
|
+
contentPadding?: BottomSheetContentPadding;
|
|
76
|
+
|
|
53
77
|
/**
|
|
54
78
|
* Identifier used to locate the component in end-to-end tests.
|
|
55
79
|
*/
|
|
56
80
|
testID?: string;
|
|
57
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Whether pressing the Android hardware back button (or back gesture) dismisses the bottom sheet.
|
|
84
|
+
* When `false`, the back press does not dismiss the sheet (note: the press still does not reach
|
|
85
|
+
* React Native's `BackHandler`).
|
|
86
|
+
* @default true
|
|
87
|
+
* @platform android
|
|
88
|
+
*/
|
|
89
|
+
shouldDismissOnBackPress?: boolean;
|
|
90
|
+
|
|
58
91
|
/**
|
|
59
92
|
* Platform-specific modifier escape hatch. Pass an array of modifier configs
|
|
60
93
|
* from `@expo/ui/swift-ui/modifiers` or `@expo/ui/jetpack-compose/modifiers`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { BottomSheetContentPadding } from './types';
|
|
2
|
+
|
|
3
|
+
export type ResolvedContentPadding = {
|
|
4
|
+
top: number;
|
|
5
|
+
bottom: number;
|
|
6
|
+
left: number;
|
|
7
|
+
right: number;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Resolves the `contentPadding` prop against the inset the platform applies when the prop is
|
|
12
|
+
* omitted. A number applies to every edge, and an edge left out of an object is `0`.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveContentPadding(
|
|
15
|
+
contentPadding: BottomSheetContentPadding | undefined,
|
|
16
|
+
platformDefault: ResolvedContentPadding
|
|
17
|
+
): ResolvedContentPadding {
|
|
18
|
+
if (contentPadding == null) {
|
|
19
|
+
return platformDefault;
|
|
20
|
+
}
|
|
21
|
+
if (typeof contentPadding === 'number') {
|
|
22
|
+
return {
|
|
23
|
+
top: contentPadding,
|
|
24
|
+
bottom: contentPadding,
|
|
25
|
+
left: contentPadding,
|
|
26
|
+
right: contentPadding,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
top: contentPadding.top ?? 0,
|
|
31
|
+
bottom: contentPadding.bottom ?? 0,
|
|
32
|
+
left: contentPadding.left ?? 0,
|
|
33
|
+
right: contentPadding.right ?? 0,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
861e2a9fc90c0f77fb3e0c4b1e733bda
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ab9529856e2d9014c4500bd026ef87271d46390e
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
daa8952f564fc49bf1e8248beaa2f2bc5f305c02f01f9ea9f9209323034d7cdf
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6773d96e9e4bc26584cb012c44b9e9f6afd9d4d099aa7c93eb35a2089a77b71155a671302db4a9f9d97267c310ad266476d2bbb04ce77cc4fa36f7b3e262e696
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar
DELETED
|
Binary file
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b64c5776b5d32cb3e45c463040737d7a
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
128612487df27ee99651882fde63af29121cec37
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
497fae34b972934a9eb0ae4b1343527eb1e5f872ad97c44de758d4e3095cf2d9
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.aar.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
65dd5f448fa7a5db1112becf801262b96f1ded388023a72616e1623ed9eb3fa1aaa25e479db58ee56aed07e97a1e5d72c3b66c4eecd6c8de39f67f92c1dbf993
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.module.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
055f1fdb95709fdc3b49eece5b5fbfeb
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.module.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
50ff217e440913da2e4012ea61dda7727808e484
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c79327c07e0ada70fa83a5b245fca76f7664aa45920bfd547c84008ad06464ab
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
50884390eba625182faf35c12c524d62b90eec6936e381f26b7ee7c50f3d85304ea0dc6922876cee54492283770714332c4cc4ede2cc9d605e5ff8698fd01197
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
935ffadd6cf043d40b19b964cb3ef39c
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2d91e78a3e97454791f366df9ddca9fcbae04387
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
17b90d969bfae0e720e475072158f0cd5f9ebf9c17a19628d4e89a71804f5d10
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.10/expo.modules.ui-57.0.10.pom.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9a5997ae6c7ac0870d23e87ac434f0ca01d3bb6fecd0cd6bcaa5fcf7afa8997314955813a41488c4c55724a8623996733256ea4189d08342c9f34945681e5a95
|