@expo/ui 58.0.5 → 58.0.7

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.
Files changed (103) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/ExpoUIModule.kt +9 -0
  4. package/android/src/main/java/expo/modules/ui/LazyColumnView.kt +6 -1
  5. package/android/src/main/java/expo/modules/ui/LazyItemsView.kt +313 -0
  6. package/android/src/main/java/expo/modules/ui/LazyRowView.kt +6 -1
  7. package/android/src/main/java/expo/modules/ui/RNHostView.kt +18 -4
  8. package/build/jetpack-compose/LazyColumn/index.d.ts +6 -0
  9. package/build/jetpack-compose/LazyColumn/index.js +2 -0
  10. package/build/jetpack-compose/LazyColumn/index.js.map +1 -1
  11. package/build/jetpack-compose/LazyItems/index.d.ts +54 -0
  12. package/build/jetpack-compose/LazyItems/index.js +63 -0
  13. package/build/jetpack-compose/LazyItems/index.js.map +1 -0
  14. package/build/jetpack-compose/LazyRow/index.d.ts +6 -0
  15. package/build/jetpack-compose/LazyRow/index.js +2 -0
  16. package/build/jetpack-compose/LazyRow/index.js.map +1 -1
  17. package/build/jetpack-compose/index.d.ts +1 -0
  18. package/build/jetpack-compose/index.js.map +1 -1
  19. package/build/recycling/useRecycledRows.d.ts +52 -0
  20. package/build/recycling/useRecycledRows.js +121 -0
  21. package/build/recycling/useRecycledRows.js.map +1 -0
  22. package/build/recycling/window.d.ts +5 -0
  23. package/build/recycling/window.js +28 -0
  24. package/build/recycling/window.js.map +1 -0
  25. package/build/swift-ui/List/DataListForEach.d.ts +52 -0
  26. package/build/swift-ui/List/DataListForEach.js +46 -0
  27. package/build/swift-ui/List/DataListForEach.js.map +1 -0
  28. package/build/swift-ui/List/ListForEach.d.ts +15 -4
  29. package/build/swift-ui/List/ListForEach.js +41 -3
  30. package/build/swift-ui/List/ListForEach.js.map +1 -1
  31. package/build/swift-ui/List/index.d.ts +1 -1
  32. package/build/swift-ui/List/index.js.map +1 -1
  33. package/build/swift-ui/modifiers/index.d.ts +16 -7
  34. package/build/swift-ui/modifiers/index.js +10 -5
  35. package/build/swift-ui/modifiers/index.js.map +1 -1
  36. package/build/swift-ui/modifiers/presentationModifiers.d.ts +8 -0
  37. package/build/swift-ui/modifiers/presentationModifiers.js +9 -0
  38. package/build/swift-ui/modifiers/presentationModifiers.js.map +1 -1
  39. package/build/universal/transformStyle.ios.js +4 -3
  40. package/build/universal/transformStyle.ios.js.map +1 -1
  41. package/expo-module.config.json +1 -1
  42. package/ios/DataListForEachView.swift +255 -0
  43. package/ios/ExpoUIModule.swift +3 -0
  44. package/ios/ListForEachView.swift +12 -3
  45. package/ios/Modifiers/PresentationModifiers.swift +10 -0
  46. package/ios/Modifiers/ViewModifierRegistry.swift +4 -0
  47. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.5/expo.modules.ui-58.0.5-sources.jar → 58.0.7/expo.modules.ui-58.0.7-sources.jar} +0 -0
  48. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.md5 +1 -0
  49. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.sha1 +1 -0
  50. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.sha256 +1 -0
  51. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.sha512 +1 -0
  52. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar +0 -0
  53. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.md5 +1 -0
  54. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.sha1 +1 -0
  55. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.sha256 +1 -0
  56. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.sha512 +1 -0
  57. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.5/expo.modules.ui-58.0.5.module → 58.0.7/expo.modules.ui-58.0.7.module} +23 -23
  58. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.md5 +1 -0
  59. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.sha1 +1 -0
  60. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.sha256 +1 -0
  61. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.sha512 +1 -0
  62. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.5/expo.modules.ui-58.0.5.pom → 58.0.7/expo.modules.ui-58.0.7.pom} +2 -2
  63. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.md5 +1 -0
  64. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.sha1 +1 -0
  65. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.sha256 +1 -0
  66. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.sha512 +1 -0
  67. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  68. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  69. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  70. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  71. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  72. package/package.json +4 -4
  73. package/prebuilds/output/debug/xcframeworks/ExpoUI.tar.gz +0 -0
  74. package/prebuilds/output/release/xcframeworks/ExpoUI.tar.gz +0 -0
  75. package/src/jetpack-compose/LazyColumn/index.tsx +3 -0
  76. package/src/jetpack-compose/LazyItems/index.tsx +121 -0
  77. package/src/jetpack-compose/LazyRow/index.tsx +3 -0
  78. package/src/jetpack-compose/index.ts +1 -0
  79. package/src/recycling/useRecycledRows.tsx +200 -0
  80. package/src/recycling/window.ts +28 -0
  81. package/src/swift-ui/List/DataListForEach.tsx +128 -0
  82. package/src/swift-ui/List/ListForEach.tsx +57 -6
  83. package/src/swift-ui/List/index.tsx +1 -1
  84. package/src/swift-ui/modifiers/index.ts +50 -14
  85. package/src/swift-ui/modifiers/presentationModifiers.ts +10 -0
  86. package/src/universal/transformStyle.ios.ts +5 -2
  87. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5-sources.jar.md5 +0 -1
  88. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5-sources.jar.sha1 +0 -1
  89. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5-sources.jar.sha256 +0 -1
  90. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5-sources.jar.sha512 +0 -1
  91. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.aar +0 -0
  92. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.aar.md5 +0 -1
  93. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.aar.sha1 +0 -1
  94. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.aar.sha256 +0 -1
  95. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.aar.sha512 +0 -1
  96. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.module.md5 +0 -1
  97. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.module.sha1 +0 -1
  98. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.module.sha256 +0 -1
  99. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.module.sha512 +0 -1
  100. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.pom.md5 +0 -1
  101. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.pom.sha1 +0 -1
  102. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.pom.sha256 +0 -1
  103. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.5/expo.modules.ui-58.0.5.pom.sha512 +0 -1
@@ -106,31 +106,67 @@ export const matchedGeometryEffect = (
106
106
  */
107
107
  export const geometryGroup = () => createModifier('geometryGroup', {});
108
108
 
109
+ type FrameAlignment =
110
+ | 'center'
111
+ | 'leading'
112
+ | 'trailing'
113
+ | 'top'
114
+ | 'bottom'
115
+ | 'topLeading'
116
+ | 'topTrailing'
117
+ | 'bottomLeading'
118
+ | 'bottomTrailing';
119
+
109
120
  /**
110
- * Sets the frame properties of a view.
111
- * @param params - The frame parameters. Width, height, minWidth, maxWidth, minHeight, maxHeight, idealWidth, idealHeight and alignment.
121
+ * Positions this view within an invisible frame with the specified size.
122
+ * @param params - The fixed frame parameters: `width`, `height` and `alignment`.
112
123
  * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/SwiftUI/View/frame(width:height:alignment:)).
113
124
  */
114
- export const frame = (params: {
125
+ export function frame(params: {
115
126
  width?: number;
116
127
  height?: number;
128
+ alignment?: FrameAlignment;
129
+ }): ModifierConfig;
130
+ /**
131
+ * Positions this view within an invisible frame having the specified size constraints.
132
+ * @param params - The flexible frame parameters: `minWidth`, `idealWidth`, `maxWidth`, `minHeight`, `idealHeight`, `maxHeight` and `alignment`.
133
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)).
134
+ */
135
+ export function frame(params: {
117
136
  minWidth?: number;
137
+ idealWidth?: number;
118
138
  maxWidth?: number;
119
139
  minHeight?: number;
140
+ idealHeight?: number;
120
141
  maxHeight?: number;
142
+ alignment?: FrameAlignment;
143
+ }): ModifierConfig;
144
+ export function frame(params: {
145
+ width?: number;
146
+ height?: number;
147
+ minWidth?: number;
121
148
  idealWidth?: number;
149
+ maxWidth?: number;
150
+ minHeight?: number;
122
151
  idealHeight?: number;
123
- alignment?:
124
- | 'center'
125
- | 'leading'
126
- | 'trailing'
127
- | 'top'
128
- | 'bottom'
129
- | 'topLeading'
130
- | 'topTrailing'
131
- | 'bottomLeading'
132
- | 'bottomTrailing';
133
- }) => createModifier('frame', params);
152
+ maxHeight?: number;
153
+ alignment?: FrameAlignment;
154
+ }): ModifierConfig {
155
+ if (__DEV__) {
156
+ const { width, height, alignment: _alignment, ...flexible } = params;
157
+ const ignored = Object.keys(flexible).filter(
158
+ (key) => flexible[key as keyof typeof flexible] !== undefined
159
+ );
160
+ if ((width !== undefined || height !== undefined) && ignored.length > 0) {
161
+ console.warn(
162
+ `frame() ignores ${ignored.join(', ')} because width or height is also set. ` +
163
+ 'SwiftUI applies fixed and flexible frames as separate modifiers. ' +
164
+ 'Split the values into two calls, for example [frame({ height: 50 }), frame({ maxWidth: Infinity })].'
165
+ );
166
+ }
167
+ }
168
+ return createModifier('frame', params);
169
+ }
134
170
 
135
171
  /**
136
172
  * Positions this view within an invisible frame with a size relative to the nearest container.
@@ -57,6 +57,16 @@ export const presentationDetents = (
57
57
  export const presentationDragIndicator = (visibility: 'automatic' | 'visible' | 'hidden') =>
58
58
  createModifier('presentationDragIndicator', { visibility });
59
59
 
60
+ /**
61
+ * Sets the corner radius of a sheet presentation.
62
+ * @param cornerRadius - The corner radius in points, or `null` to use the system default.
63
+ * @platform ios 16.4+
64
+ * @platform tvos 16.4+
65
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/presentationcornerradius(_:)).
66
+ */
67
+ export const presentationCornerRadius = (cornerRadius: number | null) =>
68
+ createModifier('presentationCornerRadius', { cornerRadius });
69
+
60
70
  /**
61
71
  * Presentation background interaction type.
62
72
  */
@@ -2,6 +2,7 @@ import {
2
2
  background,
3
3
  border,
4
4
  clipShape,
5
+ contentShape,
5
6
  disabled as disabledMod,
6
7
  font,
7
8
  foregroundStyle,
@@ -15,6 +16,7 @@ import {
15
16
  onTapGesture,
16
17
  opacity,
17
18
  padding,
19
+ shapes,
18
20
  type ModifierConfig,
19
21
  } from '@expo/ui/swift-ui/modifiers';
20
22
 
@@ -154,8 +156,9 @@ export function transformToModifiers(
154
156
  // type. The event, lifecycle, and behavior modifiers below are never dropped.
155
157
  mods = omitUserOverridden(mods, extraModifiers);
156
158
 
157
- // Events
158
- if (props.onPress) mods.push(onTapGesture(props.onPress));
159
+ // Events. SwiftUI only hit-tests drawn content, so the `contentShape` lets
160
+ // taps on empty space (for example a `Spacer` in a `Row`) reach `onPress`.
161
+ if (props.onPress) mods.push(contentShape(shapes.rectangle()), onTapGesture(props.onPress));
159
162
 
160
163
  // Lifecycle
161
164
  if (props.onAppear) mods.push(onAppear(props.onAppear));
@@ -1 +0,0 @@
1
- ccc4bc2b5f6f1713a4f7c85ae9be4a6247690fc5
@@ -1 +0,0 @@
1
- d4e08c526d892c05d1ab6e42bd451df874e4da5cc58c18080ad730fc0ae59dfa
@@ -1 +0,0 @@
1
- 5a6dc466f00aa1d74a9e1df2c4a06f3bf9c00b9eebe03e54e1ae68db446806f3f47f98e4a1d04bd90db6683459dd11785d22499d9cef48dd979293f8a88104d3
@@ -1 +0,0 @@
1
- 61e999a9915231a3196a7fc2864c479e
@@ -1 +0,0 @@
1
- 643965a7c8a6f46ba589dcd348cbf5e112834194
@@ -1 +0,0 @@
1
- 9b228fbd60d559e9dfebe894e1846a8c7ce3c72e5c91936b4382c97295e9b072
@@ -1 +0,0 @@
1
- ddcedbdcc0e95db83f0657a68090572e6d7c7fb9233e796ea875d86e9782c619560ef0e98316cdf6642abbed4b42eb43b5e8264be55130f47e473adbc0f77c11
@@ -1 +0,0 @@
1
- 842b6342d3ac040ed8069f06731423ce098d4c06
@@ -1 +0,0 @@
1
- 713717be0ec2dabfe766d7916d5c69df3434313c9cff38b1067c9efa8c46f9ab
@@ -1 +0,0 @@
1
- a0cbbe1a7eae1d80cd5d3284ab5fe64f36e357ed1b94685f469f7d71f7794e787fa6919d0d15df9eee791fe7142554344c0424ac4c9eb205dd2ce86b706b756e
@@ -1 +0,0 @@
1
- 990bdee8071627b4b6943b40dc1aec45
@@ -1 +0,0 @@
1
- be3b0d33e5b9fb949a42f962c343e0119fdaedc0
@@ -1 +0,0 @@
1
- b3ded768986b2232ffeff134fec3af26cf68977a970bd9db2c5f6f7994d99391
@@ -1 +0,0 @@
1
- fd0be2177afd1ca4fb68653adcd767e5f25e5c7fa99d787b79a7b63fc5ec234381d9374fb7c5233cc0fcc3bffce07bd9abbf30b43da1bc63777e3ea3f7b4c644