@expo/ui 56.0.4 → 56.0.6
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 +22 -1
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/ui/SliderView.kt +10 -4
- package/build/State/useNativeState.d.ts +2 -1
- package/build/State/useNativeState.d.ts.map +1 -1
- package/build/community/slider/Slider.android.d.ts +7 -0
- package/build/community/slider/Slider.android.d.ts.map +1 -0
- package/build/community/slider/Slider.d.ts +8 -0
- package/build/community/slider/Slider.d.ts.map +1 -0
- package/build/community/slider/Slider.ios.d.ts +7 -0
- package/build/community/slider/Slider.ios.d.ts.map +1 -0
- package/build/community/slider/index.d.ts +5 -0
- package/build/community/slider/index.d.ts.map +1 -0
- package/build/community/slider/types.d.ts +75 -0
- package/build/community/slider/types.d.ts.map +1 -0
- package/build/jetpack-compose/Slider/index.d.ts +10 -0
- package/build/jetpack-compose/Slider/index.d.ts.map +1 -1
- package/build/swift-ui/ScrollView/index.d.ts +3 -2
- package/build/swift-ui/ScrollView/index.d.ts.map +1 -1
- package/build/swift-ui/Slider/index.d.ts +10 -0
- package/build/swift-ui/Slider/index.d.ts.map +1 -1
- package/build/swift-ui/modifiers/index.d.ts +15 -1
- package/build/swift-ui/modifiers/index.d.ts.map +1 -1
- package/build/universal/TextInput/index.d.ts +1 -0
- package/build/universal/TextInput/index.d.ts.map +1 -1
- package/build/universal/index.d.ts +1 -1
- package/build/universal/index.d.ts.map +1 -1
- package/expo-module.config.json +1 -1
- package/ios/ChartView.swift +8 -4
- package/ios/Convertibles/AxisOptions.swift +19 -0
- package/ios/Convertibles/ScrollIndicatorVisibilityOptions.swift +22 -0
- package/ios/Modifiers/ContainerRelativeFrameModifier.swift +1 -18
- package/ios/Modifiers/ScrollIndicatorsModifier.swift +13 -0
- package/ios/Modifiers/ViewModifierRegistry.swift +4 -17
- package/ios/SliderView.swift +21 -6
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.4/expo.modules.ui-56.0.4-sources.jar → 56.0.6/expo.modules.ui-56.0.6-sources.jar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.4/expo.modules.ui-56.0.4.aar → 56.0.6/expo.modules.ui-56.0.6.aar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.4/expo.modules.ui-56.0.4.module → 56.0.6/expo.modules.ui-56.0.6.module} +22 -22
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.4/expo.modules.ui-56.0.4.pom → 56.0.6/expo.modules.ui-56.0.6.pom} +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.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 +8 -4
- package/src/State/useNativeState.ts +6 -3
- package/src/community/slider/Slider.android.tsx +49 -0
- package/src/community/slider/Slider.ios.tsx +48 -0
- package/src/community/slider/Slider.tsx +45 -0
- package/src/community/slider/index.tsx +7 -0
- package/src/community/slider/types.tsx +75 -0
- package/src/jetpack-compose/Slider/index.tsx +10 -0
- package/src/swift-ui/ScrollView/index.tsx +3 -2
- package/src/swift-ui/Slider/index.tsx +10 -0
- package/src/swift-ui/modifiers/index.ts +19 -0
- package/src/universal/TextInput/index.tsx +1 -0
- package/src/universal/index.ts +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.module.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.4/expo.modules.ui-56.0.4.pom.sha512 +0 -1
|
@@ -1118,23 +1118,6 @@ internal struct ListSectionMargins: ViewModifier, Record {
|
|
|
1118
1118
|
}
|
|
1119
1119
|
}
|
|
1120
1120
|
|
|
1121
|
-
internal enum AxisOptions: String, Enumerable {
|
|
1122
|
-
case horizontal
|
|
1123
|
-
case vertical
|
|
1124
|
-
case both
|
|
1125
|
-
|
|
1126
|
-
func toAxis() -> Axis.Set {
|
|
1127
|
-
switch self {
|
|
1128
|
-
case .vertical:
|
|
1129
|
-
return .vertical
|
|
1130
|
-
case .horizontal:
|
|
1131
|
-
return .horizontal
|
|
1132
|
-
case .both:
|
|
1133
|
-
return [.vertical, .horizontal]
|
|
1134
|
-
}
|
|
1135
|
-
}
|
|
1136
|
-
}
|
|
1137
|
-
|
|
1138
1121
|
internal struct GridCellUnsizedAxes: ViewModifier, Record {
|
|
1139
1122
|
@Field var axes: AxisOptions?
|
|
1140
1123
|
|
|
@@ -1891,6 +1874,10 @@ extension ViewModifierRegistry {
|
|
|
1891
1874
|
return try ScrollDisabledModifier(from: params, appContext: appContext)
|
|
1892
1875
|
}
|
|
1893
1876
|
|
|
1877
|
+
register("scrollIndicators") { params, appContext, _ in
|
|
1878
|
+
return try ScrollIndicatorsModifier(from: params, appContext: appContext)
|
|
1879
|
+
}
|
|
1880
|
+
|
|
1894
1881
|
register("tabViewStyle") { params, appContext, _ in
|
|
1895
1882
|
return try TabViewStyleModifier(from: params, appContext: appContext)
|
|
1896
1883
|
}
|
package/ios/SliderView.swift
CHANGED
|
@@ -16,11 +16,11 @@ struct SliderView: ExpoSwiftUI.View {
|
|
|
16
16
|
#if !os(tvOS)
|
|
17
17
|
sliderContent
|
|
18
18
|
.onAppear {
|
|
19
|
-
value = props.value ?? 0.0
|
|
19
|
+
value = clamp(props.value ?? 0.0)
|
|
20
20
|
}
|
|
21
21
|
.onChange(of: props.value) { newValue in
|
|
22
22
|
guard !isEditing else { return }
|
|
23
|
-
value = newValue ?? 0.0
|
|
23
|
+
value = clamp(newValue ?? 0.0)
|
|
24
24
|
}
|
|
25
25
|
.onChange(of: value) { newValue in
|
|
26
26
|
if props.value != newValue {
|
|
@@ -35,6 +35,19 @@ struct SliderView: ExpoSwiftUI.View {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
#if !os(tvOS)
|
|
38
|
+
private func clamp(_ raw: Float) -> Float {
|
|
39
|
+
let lower = Swift.max(props.min ?? -.infinity, props.lowerLimit ?? -.infinity)
|
|
40
|
+
let upper = Swift.min(props.max ?? .infinity, props.upperLimit ?? .infinity)
|
|
41
|
+
return Swift.min(upper, Swift.max(lower, raw))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private var clampedBinding: Binding<Float> {
|
|
45
|
+
Binding(
|
|
46
|
+
get: { value },
|
|
47
|
+
set: { newValue in value = clamp(newValue) }
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
38
51
|
@ViewBuilder
|
|
39
52
|
private var sliderContent: some View {
|
|
40
53
|
let label = props.children?.slot("label")
|
|
@@ -43,7 +56,7 @@ struct SliderView: ExpoSwiftUI.View {
|
|
|
43
56
|
|
|
44
57
|
if let min = props.min, let max = props.max, let step = props.step {
|
|
45
58
|
Slider(
|
|
46
|
-
value:
|
|
59
|
+
value: clampedBinding,
|
|
47
60
|
in: min...max,
|
|
48
61
|
step: step,
|
|
49
62
|
label: { label },
|
|
@@ -55,7 +68,7 @@ struct SliderView: ExpoSwiftUI.View {
|
|
|
55
68
|
}
|
|
56
69
|
} else if let min = props.min, let max = props.max {
|
|
57
70
|
Slider(
|
|
58
|
-
value:
|
|
71
|
+
value: clampedBinding,
|
|
59
72
|
in: min...max,
|
|
60
73
|
label: { label },
|
|
61
74
|
minimumValueLabel: { minimumValueLabel },
|
|
@@ -66,7 +79,7 @@ struct SliderView: ExpoSwiftUI.View {
|
|
|
66
79
|
}
|
|
67
80
|
} else if let step = props.step {
|
|
68
81
|
Slider(
|
|
69
|
-
value:
|
|
82
|
+
value: clampedBinding,
|
|
70
83
|
in: 0...1,
|
|
71
84
|
step: step,
|
|
72
85
|
label: { label },
|
|
@@ -78,7 +91,7 @@ struct SliderView: ExpoSwiftUI.View {
|
|
|
78
91
|
}
|
|
79
92
|
} else {
|
|
80
93
|
Slider(
|
|
81
|
-
value:
|
|
94
|
+
value: clampedBinding,
|
|
82
95
|
label: { label },
|
|
83
96
|
minimumValueLabel: { minimumValueLabel },
|
|
84
97
|
maximumValueLabel: { maximumValueLabel }
|
|
@@ -96,6 +109,8 @@ final class SliderProps: UIBaseViewProps {
|
|
|
96
109
|
@Field var step: Float?
|
|
97
110
|
@Field var min: Float?
|
|
98
111
|
@Field var max: Float?
|
|
112
|
+
@Field var lowerLimit: Float?
|
|
113
|
+
@Field var upperLimit: Float?
|
|
99
114
|
var onValueChanged = EventDispatcher()
|
|
100
115
|
var onEditingChanged = EventDispatcher()
|
|
101
116
|
}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f6beb7095321eea7da6845fa478235b0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a534f795e8ea46629011b2f8939608619b954ff1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
213a1693673392a710d27fef37d99ef030c8a8783b4ccaa971ea914588dc5241
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
26e067865e2bbdd9f770d670f8212c2a309bee05009f722931b339ca9f76c235bbed2286a876d9c7a7b0ddb0e4b152617031f487c047ae78d0672ecc2649c6be
|
|
Binary file
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
69d6e33780c1406aa3d7dace9bdb5302
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
28dcb1963deda39da1d284330ae45e0c900c24bd
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
034e7b27268544deeae53969a3c6edb7dccaa9648517de96383f64de4735b61d
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.aar.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9153e9187cc172ce1793a149742c785d8a21bdb184999f83942f74a9eec67fac4526c6710563a45ce99d43773f1e2e2b2a7d11fedf03653a5d3125c66900c85e
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "expo.modules.ui",
|
|
5
5
|
"module": "expo.modules.ui",
|
|
6
|
-
"version": "56.0.
|
|
6
|
+
"version": "56.0.6",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
|
-
"name": "expo.modules.ui-56.0.
|
|
28
|
-
"url": "expo.modules.ui-56.0.
|
|
29
|
-
"size":
|
|
30
|
-
"sha512": "
|
|
31
|
-
"sha256": "
|
|
32
|
-
"sha1": "
|
|
33
|
-
"md5": "
|
|
27
|
+
"name": "expo.modules.ui-56.0.6.aar",
|
|
28
|
+
"url": "expo.modules.ui-56.0.6.aar",
|
|
29
|
+
"size": 1741087,
|
|
30
|
+
"sha512": "9153e9187cc172ce1793a149742c785d8a21bdb184999f83942f74a9eec67fac4526c6710563a45ce99d43773f1e2e2b2a7d11fedf03653a5d3125c66900c85e",
|
|
31
|
+
"sha256": "034e7b27268544deeae53969a3c6edb7dccaa9648517de96383f64de4735b61d",
|
|
32
|
+
"sha1": "28dcb1963deda39da1d284330ae45e0c900c24bd",
|
|
33
|
+
"md5": "69d6e33780c1406aa3d7dace9bdb5302"
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -141,13 +141,13 @@
|
|
|
141
141
|
],
|
|
142
142
|
"files": [
|
|
143
143
|
{
|
|
144
|
-
"name": "expo.modules.ui-56.0.
|
|
145
|
-
"url": "expo.modules.ui-56.0.
|
|
146
|
-
"size":
|
|
147
|
-
"sha512": "
|
|
148
|
-
"sha256": "
|
|
149
|
-
"sha1": "
|
|
150
|
-
"md5": "
|
|
144
|
+
"name": "expo.modules.ui-56.0.6.aar",
|
|
145
|
+
"url": "expo.modules.ui-56.0.6.aar",
|
|
146
|
+
"size": 1741087,
|
|
147
|
+
"sha512": "9153e9187cc172ce1793a149742c785d8a21bdb184999f83942f74a9eec67fac4526c6710563a45ce99d43773f1e2e2b2a7d11fedf03653a5d3125c66900c85e",
|
|
148
|
+
"sha256": "034e7b27268544deeae53969a3c6edb7dccaa9648517de96383f64de4735b61d",
|
|
149
|
+
"sha1": "28dcb1963deda39da1d284330ae45e0c900c24bd",
|
|
150
|
+
"md5": "69d6e33780c1406aa3d7dace9bdb5302"
|
|
151
151
|
}
|
|
152
152
|
]
|
|
153
153
|
},
|
|
@@ -161,13 +161,13 @@
|
|
|
161
161
|
},
|
|
162
162
|
"files": [
|
|
163
163
|
{
|
|
164
|
-
"name": "expo.modules.ui-56.0.
|
|
165
|
-
"url": "expo.modules.ui-56.0.
|
|
166
|
-
"size":
|
|
167
|
-
"sha512": "
|
|
168
|
-
"sha256": "
|
|
169
|
-
"sha1": "
|
|
170
|
-
"md5": "
|
|
164
|
+
"name": "expo.modules.ui-56.0.6-sources.jar",
|
|
165
|
+
"url": "expo.modules.ui-56.0.6-sources.jar",
|
|
166
|
+
"size": 82267,
|
|
167
|
+
"sha512": "26e067865e2bbdd9f770d670f8212c2a309bee05009f722931b339ca9f76c235bbed2286a876d9c7a7b0ddb0e4b152617031f487c047ae78d0672ecc2649c6be",
|
|
168
|
+
"sha256": "213a1693673392a710d27fef37d99ef030c8a8783b4ccaa971ea914588dc5241",
|
|
169
|
+
"sha1": "a534f795e8ea46629011b2f8939608619b954ff1",
|
|
170
|
+
"md5": "f6beb7095321eea7da6845fa478235b0"
|
|
171
171
|
}
|
|
172
172
|
]
|
|
173
173
|
}
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
51c74a9ca05aad2e3faa0ff2e0ea797f
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d7c80c16e1995920f696bf4f8676ee0208f51bea
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
22a0498924db370ce70a0f895ee07fc9c79669679c0ac257851ba1225330b990
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.module.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
88a8b97dd20a2c8cacfa8f5ca445d444fc60eccdd0ee5ba04083b0b5f509091ea976ae80c9ceacde4c0e267cb7873815707a07028efb94893ab60299724fb6dd
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>expo.modules.ui</groupId>
|
|
11
11
|
<artifactId>expo.modules.ui</artifactId>
|
|
12
|
-
<version>56.0.
|
|
12
|
+
<version>56.0.6</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>expo.modules.ui</name>
|
|
15
15
|
<url>https://github.com/expo/expo</url>
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1908319c0f950058cd7e4af54bde810e
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
656a2d7cce1be45517a43cf7c9010a47be716994
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
88522b12f07c121eb385f9e2bbfc235461ff9fa12a4311c0c3e8db3b9224e7d8
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.6/expo.modules.ui-56.0.6.pom.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
03523e913bb66754494f8af213caa9ce93d944050e1bff21dda5eb9c614fd384dbea15795217496be8791c4c61210d4629f22ce473811f20302790db638416a8
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>expo.modules.ui</groupId>
|
|
4
4
|
<artifactId>expo.modules.ui</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>56.0.
|
|
7
|
-
<release>56.0.
|
|
6
|
+
<latest>56.0.6</latest>
|
|
7
|
+
<release>56.0.6</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>56.0.
|
|
9
|
+
<version>56.0.6</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20260513103326</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
b3ca330a5f2396c76ef2a75c6a63a1b5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
056c42f73a3ce70484fd129941ba605b4b43b1a2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
51b027c8f2849c17546bf8aa17f35a8707289abfd20627996422c4cf2287115e
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
b7ac9cf92e7dbf7455874551e21d961c47e7df4031554f03584b4c67ad1e64e8510ad7a4a99f1ab39a4bd945a94f162f43153c49b16a851b398e6d42505cd8b1
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/ui",
|
|
3
|
-
"version": "56.0.
|
|
3
|
+
"version": "56.0.6",
|
|
4
4
|
"description": "A collection of UI components",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.fx.js"
|
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
"types": "./build/community/picker/index.d.ts",
|
|
44
44
|
"default": "./src/community/picker/index.tsx"
|
|
45
45
|
},
|
|
46
|
+
"./community/slider": {
|
|
47
|
+
"types": "./build/community/slider/index.d.ts",
|
|
48
|
+
"default": "./src/community/slider/index.tsx"
|
|
49
|
+
},
|
|
46
50
|
"./community/masked-view": {
|
|
47
51
|
"types": "./build/community/masked-view/index.d.ts",
|
|
48
52
|
"default": "./src/community/masked-view/index.tsx"
|
|
@@ -81,9 +85,9 @@
|
|
|
81
85
|
"@types/babel__core": "^7.20.5",
|
|
82
86
|
"@types/node": "^22.14.0",
|
|
83
87
|
"@types/react": "~19.2.0",
|
|
84
|
-
"react-native-reanimated": "4.3.
|
|
88
|
+
"react-native-reanimated": "4.3.1",
|
|
85
89
|
"react-native-worklets": "0.8.3",
|
|
86
|
-
"expo": "56.0.0-preview.
|
|
90
|
+
"expo": "56.0.0-preview.10",
|
|
87
91
|
"expo-module-scripts": "56.0.2"
|
|
88
92
|
},
|
|
89
93
|
"jest": {
|
|
@@ -112,7 +116,7 @@
|
|
|
112
116
|
"optional": true
|
|
113
117
|
}
|
|
114
118
|
},
|
|
115
|
-
"gitHead": "
|
|
119
|
+
"gitHead": "40f0a6f6711d93762e0506b37e6e077e4bd9a541",
|
|
116
120
|
"scripts": {
|
|
117
121
|
"build": "expo-module build",
|
|
118
122
|
"clean": "expo-module clean",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { requireNativeModule } from 'expo';
|
|
2
2
|
import { type SharedObject, useReleasingSharedObject } from 'expo-modules-core';
|
|
3
|
+
import { useRef } from 'react';
|
|
3
4
|
|
|
4
5
|
import { worklets } from './optionalWorklets';
|
|
5
6
|
|
|
@@ -19,14 +20,16 @@ export type ObservableState<T> = SharedObject & {
|
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
|
-
* Creates an observable native state that is automatically cleaned up when the
|
|
23
|
+
* Creates an observable native state that is automatically cleaned up when the
|
|
24
|
+
* component unmounts. `initialValue` is captured once on the first render
|
|
23
25
|
*/
|
|
24
26
|
export function useNativeState<T>(initialValue: T): ObservableState<T> {
|
|
27
|
+
const initialValueRef = useRef(initialValue);
|
|
25
28
|
return useReleasingSharedObject(() => {
|
|
26
|
-
const state = new ExpoUI.ObservableState({ value:
|
|
29
|
+
const state = new ExpoUI.ObservableState({ value: initialValueRef.current });
|
|
27
30
|
defineValueProperty(state);
|
|
28
31
|
return state;
|
|
29
|
-
}, [
|
|
32
|
+
}, []) as ObservableState<T>;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
type NativeObservableState = {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type SliderProps } from './types';
|
|
2
|
+
import { Host } from '../../jetpack-compose/Host';
|
|
3
|
+
import { Slider as ComposeSlider } from '../../jetpack-compose/Slider';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A drop-in replacement for `@react-native-community/slider` on Android.
|
|
7
|
+
* Renders a Material 3 `Slider` wrapped in a Host.
|
|
8
|
+
*/
|
|
9
|
+
export function Slider(props: SliderProps) {
|
|
10
|
+
const {
|
|
11
|
+
value,
|
|
12
|
+
minimumValue,
|
|
13
|
+
maximumValue,
|
|
14
|
+
lowerLimit,
|
|
15
|
+
upperLimit,
|
|
16
|
+
step,
|
|
17
|
+
disabled,
|
|
18
|
+
inverted,
|
|
19
|
+
minimumTrackTintColor,
|
|
20
|
+
maximumTrackTintColor,
|
|
21
|
+
thumbTintColor,
|
|
22
|
+
onValueChange,
|
|
23
|
+
style,
|
|
24
|
+
} = props;
|
|
25
|
+
const min = minimumValue ?? 0;
|
|
26
|
+
const max = maximumValue ?? 1;
|
|
27
|
+
const steps = step && step > 0 ? Math.max(0, Math.round((max - min) / step) - 1) : 0;
|
|
28
|
+
const hostStyle = inverted ? [style, { transform: [{ scaleX: -1 }] }] : style;
|
|
29
|
+
const colors = {
|
|
30
|
+
activeTrackColor: minimumTrackTintColor,
|
|
31
|
+
inactiveTrackColor: maximumTrackTintColor,
|
|
32
|
+
thumbColor: thumbTintColor,
|
|
33
|
+
};
|
|
34
|
+
return (
|
|
35
|
+
<Host matchContents={{ vertical: true }} style={hostStyle}>
|
|
36
|
+
<ComposeSlider
|
|
37
|
+
value={value}
|
|
38
|
+
min={minimumValue}
|
|
39
|
+
max={maximumValue}
|
|
40
|
+
lowerLimit={lowerLimit}
|
|
41
|
+
upperLimit={upperLimit}
|
|
42
|
+
steps={steps}
|
|
43
|
+
enabled={disabled === undefined ? undefined : !disabled}
|
|
44
|
+
colors={colors}
|
|
45
|
+
onValueChange={onValueChange}
|
|
46
|
+
/>
|
|
47
|
+
</Host>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type SliderProps } from './types';
|
|
2
|
+
import { Host } from '../../swift-ui/Host';
|
|
3
|
+
import { Slider as SwiftUISlider } from '../../swift-ui/Slider';
|
|
4
|
+
import { disabled as disabledModifier, tint as tintModifier } from '../../swift-ui/modifiers';
|
|
5
|
+
import type { ModifierConfig } from '../../types';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A drop-in replacement for `@react-native-community/slider` on iOS.
|
|
9
|
+
* Renders a SwiftUI `Slider` wrapped in a Host.
|
|
10
|
+
*/
|
|
11
|
+
export function Slider(props: SliderProps) {
|
|
12
|
+
const {
|
|
13
|
+
value,
|
|
14
|
+
minimumValue,
|
|
15
|
+
maximumValue,
|
|
16
|
+
lowerLimit,
|
|
17
|
+
upperLimit,
|
|
18
|
+
step,
|
|
19
|
+
disabled,
|
|
20
|
+
inverted,
|
|
21
|
+
minimumTrackTintColor,
|
|
22
|
+
onValueChange,
|
|
23
|
+
style,
|
|
24
|
+
} = props;
|
|
25
|
+
const hostStyle = inverted ? [style, { transform: [{ scaleX: -1 }] }] : style;
|
|
26
|
+
// SwiftUI's Slider only exposes `.tint(...)` for the minimum (active)
|
|
27
|
+
// track. `maximumTrackTintColor` and `thumbTintColor` are accepted at the
|
|
28
|
+
// type level but not visually applied on iOS
|
|
29
|
+
const modifiers: ModifierConfig[] = [];
|
|
30
|
+
if (disabled) modifiers.push(disabledModifier(true));
|
|
31
|
+
if (minimumTrackTintColor !== undefined) {
|
|
32
|
+
modifiers.push(tintModifier(minimumTrackTintColor as string));
|
|
33
|
+
}
|
|
34
|
+
return (
|
|
35
|
+
<Host matchContents={{ vertical: true }} style={hostStyle}>
|
|
36
|
+
<SwiftUISlider
|
|
37
|
+
value={value}
|
|
38
|
+
min={minimumValue}
|
|
39
|
+
max={maximumValue}
|
|
40
|
+
lowerLimit={lowerLimit}
|
|
41
|
+
upperLimit={upperLimit}
|
|
42
|
+
step={step && step > 0 ? step : undefined}
|
|
43
|
+
modifiers={modifiers.length > 0 ? modifiers : undefined}
|
|
44
|
+
onValueChange={onValueChange}
|
|
45
|
+
/>
|
|
46
|
+
</Host>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { StyleSheet } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { type SliderProps } from './types';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A drop-in replacement for `@react-native-community/slider`. Renders a
|
|
8
|
+
* SwiftUI `Slider` on iOS, a Material 3 `Slider` on Android, and a native
|
|
9
|
+
* HTML `<input type="range">` on web.
|
|
10
|
+
*/
|
|
11
|
+
export function Slider(props: SliderProps) {
|
|
12
|
+
const {
|
|
13
|
+
value,
|
|
14
|
+
minimumValue = 0,
|
|
15
|
+
maximumValue = 1,
|
|
16
|
+
lowerLimit,
|
|
17
|
+
upperLimit,
|
|
18
|
+
step,
|
|
19
|
+
disabled,
|
|
20
|
+
inverted,
|
|
21
|
+
minimumTrackTintColor,
|
|
22
|
+
onValueChange,
|
|
23
|
+
style,
|
|
24
|
+
} = props;
|
|
25
|
+
const clamp = (v: number) =>
|
|
26
|
+
Math.min(upperLimit ?? Infinity, Math.max(lowerLimit ?? -Infinity, v));
|
|
27
|
+
return (
|
|
28
|
+
<input
|
|
29
|
+
type="range"
|
|
30
|
+
min={minimumValue}
|
|
31
|
+
max={maximumValue}
|
|
32
|
+
step={step && step > 0 ? step : 'any'}
|
|
33
|
+
value={clamp(value ?? 0)}
|
|
34
|
+
disabled={disabled}
|
|
35
|
+
onChange={(e) => onValueChange?.(clamp(e.target.valueAsNumber))}
|
|
36
|
+
style={{
|
|
37
|
+
...(StyleSheet.flatten(style) as React.CSSProperties),
|
|
38
|
+
...(minimumTrackTintColor !== undefined && {
|
|
39
|
+
accentColor: minimumTrackTintColor as string,
|
|
40
|
+
}),
|
|
41
|
+
...(inverted && { transform: 'scaleX(-1)' }),
|
|
42
|
+
}}
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { ColorValue, StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props for the `Slider` community drop-in component.
|
|
5
|
+
* Compatible with `@react-native-community/slider`.
|
|
6
|
+
*/
|
|
7
|
+
export type SliderProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Initial / current value of the slider.
|
|
10
|
+
* Behaves like the community lib: passing a new value updates the thumb,
|
|
11
|
+
* but live drag emits via `onValueChange` without needing external state.
|
|
12
|
+
* @default 0
|
|
13
|
+
*/
|
|
14
|
+
value?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Initial minimum value of the slider.
|
|
17
|
+
* @default 0
|
|
18
|
+
*/
|
|
19
|
+
minimumValue?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Initial maximum value of the slider.
|
|
22
|
+
* @default 1
|
|
23
|
+
*/
|
|
24
|
+
maximumValue?: number;
|
|
25
|
+
/**
|
|
26
|
+
* The lower limit value of the slider. The user won't be able to slide
|
|
27
|
+
* below this limit.
|
|
28
|
+
*/
|
|
29
|
+
lowerLimit?: number;
|
|
30
|
+
/**
|
|
31
|
+
* The upper limit value of the slider. The user won't be able to slide
|
|
32
|
+
* above this limit.
|
|
33
|
+
*/
|
|
34
|
+
upperLimit?: number;
|
|
35
|
+
/**
|
|
36
|
+
* If true the user won't be able to move the slider.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Step value of the slider. The value should be between 0 and
|
|
42
|
+
* (maximumValue - minimumValue). A value of 0 means continuous (no
|
|
43
|
+
* snapping).
|
|
44
|
+
* @default 0
|
|
45
|
+
*/
|
|
46
|
+
step?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Reverses the direction of the slider so the maximum value is on the
|
|
49
|
+
* left and the minimum value is on the right.
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
inverted?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Color of the track to the left of the thumb.
|
|
55
|
+
*/
|
|
56
|
+
minimumTrackTintColor?: ColorValue;
|
|
57
|
+
/**
|
|
58
|
+
* Color of the track to the right of the thumb.
|
|
59
|
+
* @platform android
|
|
60
|
+
*/
|
|
61
|
+
maximumTrackTintColor?: ColorValue;
|
|
62
|
+
/**
|
|
63
|
+
* Color of the thumb.
|
|
64
|
+
* @platform android
|
|
65
|
+
*/
|
|
66
|
+
thumbTintColor?: ColorValue;
|
|
67
|
+
/**
|
|
68
|
+
* Callback continuously called while the user is dragging the slider.
|
|
69
|
+
*/
|
|
70
|
+
onValueChange?: (value: number) => void;
|
|
71
|
+
/**
|
|
72
|
+
* Used to style and layout the Slider.
|
|
73
|
+
*/
|
|
74
|
+
style?: StyleProp<ViewStyle>;
|
|
75
|
+
};
|
|
@@ -47,6 +47,16 @@ export type SliderProps = {
|
|
|
47
47
|
* @default 1
|
|
48
48
|
*/
|
|
49
49
|
max?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Lower limit the user can drag the thumb to. The visible track still
|
|
52
|
+
* spans `min..max`, but the thumb stops at `lowerLimit` during drag.
|
|
53
|
+
*/
|
|
54
|
+
lowerLimit?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Upper limit the user can drag the thumb to. The visible track still
|
|
57
|
+
* spans `min..max`, but the thumb stops at `upperLimit` during drag.
|
|
58
|
+
*/
|
|
59
|
+
upperLimit?: number;
|
|
50
60
|
/**
|
|
51
61
|
* Whether the slider is enabled for user interaction.
|
|
52
62
|
* @default true
|
|
@@ -6,12 +6,13 @@ import { type CommonViewModifierProps } from '../types';
|
|
|
6
6
|
export type ScrollViewProps = {
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
/**
|
|
9
|
-
* The scrollable axes.
|
|
9
|
+
* The scrollable axes. Pass `'both'` to enable 2D (horizontal + vertical) scrolling.
|
|
10
10
|
* @default 'vertical'
|
|
11
11
|
*/
|
|
12
12
|
axes?: 'vertical' | 'horizontal' | 'both';
|
|
13
13
|
/**
|
|
14
|
-
* Whether to show scroll indicators.
|
|
14
|
+
* Whether to show scroll indicators. For richer visibility control (e.g. `'never'`)
|
|
15
|
+
* or per-axis control, use the `scrollIndicators(...)` modifier instead.
|
|
15
16
|
* @default true
|
|
16
17
|
*/
|
|
17
18
|
showsIndicators?: boolean;
|
|
@@ -21,6 +21,16 @@ export type SliderProps = {
|
|
|
21
21
|
* The maximum value of the slider. Updating this value does not trigger callbacks if the current value is above `max`.
|
|
22
22
|
*/
|
|
23
23
|
max?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Lower limit the user can drag the thumb to. The visible track still
|
|
26
|
+
* spans `min..max`, but the thumb stops at `lowerLimit` during drag.
|
|
27
|
+
*/
|
|
28
|
+
lowerLimit?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Upper limit the user can drag the thumb to. The visible track still
|
|
31
|
+
* spans `min..max`, but the thumb stops at `upperLimit` during drag.
|
|
32
|
+
*/
|
|
33
|
+
upperLimit?: number;
|
|
24
34
|
/**
|
|
25
35
|
* A label describing the slider's purpose.
|
|
26
36
|
*/
|