@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
@@ -31,6 +31,15 @@ import { resolveShapeStyle } from './shapeStyle';
31
31
  */ export const presentationDragIndicator = (visibility)=>createModifier('presentationDragIndicator', {
32
32
  visibility
33
33
  });
34
+ /**
35
+ * Sets the corner radius of a sheet presentation.
36
+ * @param cornerRadius - The corner radius in points, or `null` to use the system default.
37
+ * @platform ios 16.4+
38
+ * @platform tvos 16.4+
39
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/presentationcornerradius(_:)).
40
+ */ export const presentationCornerRadius = (cornerRadius)=>createModifier('presentationCornerRadius', {
41
+ cornerRadius
42
+ });
34
43
  /**
35
44
  * Controls interaction with the content behind a sheet.
36
45
  * @param interaction - The background interaction behavior.
@@ -1 +1 @@
1
- {"version":3,"sources":["swift-ui/modifiers/presentationModifiers.ts"],"sourcesContent":[null],"names":["createModifier","createModifierWithEventListener","resolveShapeStyle","presentationDetents","detents","options","params","selection","onSelectionChange","args","detent","presentationDragIndicator","visibility","presentationBackgroundInteraction","interaction","interactionType","presentationBackground","style","interactiveDismissDisabled","isDisabled","presentationSizing","sizing"],"mappings":"AAAA,SACEA,cAAc,EACdC,+BAA+B,QAE1B,mBAAmB;AAC1B,SAASC,iBAAiB,QAAyB,eAAe;AAWlE;;;;;;;;;CASC,GACD,OAAO,MAAMC,sBAAsB,CACjCC,SACAC;IAKA,MAAMC,SAAS;QAAEF;QAASG,WAAWF,SAASE;IAAU;IAExD,MAAM,EAAEC,iBAAiB,EAAE,GAAGH,WAAW,CAAC;IAC1C,IAAIG,mBAAmB;QACrB,OAAOP,gCACL,uBACA,CAACQ;YACCD,kBAAkBC,KAAKC,MAAM;QAC/B,GACAJ;IAEJ;IAEA,OAAON,eAAe,uBAAuBM;AAC/C,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAMK,4BAA4B,CAACC,aACxCZ,eAAe,6BAA6B;QAAEY;IAAW,GAAG;AAW9D;;;;;;CAMC,GACD,OAAO,MAAMC,oCAAoC,CAC/CC;IAEA,IAAI,OAAOA,gBAAgB,UAAU;QACnC,OAAOd,eAAe,qCAAqC;YAAEe,iBAAiBD;QAAY;IAC5F;IACA,OAAOd,eAAe,qCAAqC;QACzDe,iBAAiB;QACjBL,QAAQI,YAAYJ,MAAM;IAC5B;AACF,EAAE;AAEF;;;;;;;;;;;CAWC,GACD,OAAO,MAAMM,yBAAyB,CAACC,QACrCjB,eAAe,0BAA0B;QAAEiB,OAAOf,kBAAkBe;IAAO,GAAG;AAEhF;;;;CAIC,GACD,OAAO,MAAMC,6BAA6B,CAACC,aAAsB,IAAI,GACnEnB,eAAe,8BAA8B;QAAEmB;IAAW,GAAG;AAc/D;;;;;;CAMC,GACD,OAAO,MAAMC,qBAAqB,CAACC,SACjCrB,eAAe,sBAAsB;QAAEqB;IAAO,GAAG"}
1
+ {"version":3,"sources":["swift-ui/modifiers/presentationModifiers.ts"],"sourcesContent":[null],"names":["createModifier","createModifierWithEventListener","resolveShapeStyle","presentationDetents","detents","options","params","selection","onSelectionChange","args","detent","presentationDragIndicator","visibility","presentationCornerRadius","cornerRadius","presentationBackgroundInteraction","interaction","interactionType","presentationBackground","style","interactiveDismissDisabled","isDisabled","presentationSizing","sizing"],"mappings":"AAAA,SACEA,cAAc,EACdC,+BAA+B,QAE1B,mBAAmB;AAC1B,SAASC,iBAAiB,QAAyB,eAAe;AAWlE;;;;;;;;;CASC,GACD,OAAO,MAAMC,sBAAsB,CACjCC,SACAC;IAKA,MAAMC,SAAS;QAAEF;QAASG,WAAWF,SAASE;IAAU;IAExD,MAAM,EAAEC,iBAAiB,EAAE,GAAGH,WAAW,CAAC;IAC1C,IAAIG,mBAAmB;QACrB,OAAOP,gCACL,uBACA,CAACQ;YACCD,kBAAkBC,KAAKC,MAAM;QAC/B,GACAJ;IAEJ;IAEA,OAAON,eAAe,uBAAuBM;AAC/C,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAMK,4BAA4B,CAACC,aACxCZ,eAAe,6BAA6B;QAAEY;IAAW,GAAG;AAE9D;;;;;;CAMC,GACD,OAAO,MAAMC,2BAA2B,CAACC,eACvCd,eAAe,4BAA4B;QAAEc;IAAa,GAAG;AAW/D;;;;;;CAMC,GACD,OAAO,MAAMC,oCAAoC,CAC/CC;IAEA,IAAI,OAAOA,gBAAgB,UAAU;QACnC,OAAOhB,eAAe,qCAAqC;YAAEiB,iBAAiBD;QAAY;IAC5F;IACA,OAAOhB,eAAe,qCAAqC;QACzDiB,iBAAiB;QACjBP,QAAQM,YAAYN,MAAM;IAC5B;AACF,EAAE;AAEF;;;;;;;;;;;CAWC,GACD,OAAO,MAAMQ,yBAAyB,CAACC,QACrCnB,eAAe,0BAA0B;QAAEmB,OAAOjB,kBAAkBiB;IAAO,GAAG;AAEhF;;;;CAIC,GACD,OAAO,MAAMC,6BAA6B,CAACC,aAAsB,IAAI,GACnErB,eAAe,8BAA8B;QAAEqB;IAAW,GAAG;AAc/D;;;;;;CAMC,GACD,OAAO,MAAMC,qBAAqB,CAACC,SACjCvB,eAAe,sBAAsB;QAAEuB;IAAO,GAAG"}
@@ -1,4 +1,4 @@
1
- import { background, border, clipShape, disabled as disabledMod, font, foregroundStyle, frame, hidden as hiddenMod, kerning, lineSpacing, multilineTextAlignment, onAppear, onDisappear, onTapGesture, opacity, padding } from '@expo/ui/swift-ui/modifiers';
1
+ import { background, border, clipShape, contentShape, disabled as disabledMod, font, foregroundStyle, frame, hidden as hiddenMod, kerning, lineSpacing, multilineTextAlignment, onAppear, onDisappear, onTapGesture, opacity, padding, shapes } from '@expo/ui/swift-ui/modifiers';
2
2
  import { omitUserOverridden } from './modifierUtils';
3
3
  const FONT_WEIGHT_MAP = {
4
4
  '100': 'ultraLight',
@@ -93,8 +93,9 @@ const FONT_WEIGHT_MAP = {
93
93
  // A user-supplied modifier replaces any style-derived modifier of the same
94
94
  // type. The event, lifecycle, and behavior modifiers below are never dropped.
95
95
  mods = omitUserOverridden(mods, extraModifiers);
96
- // Events
97
- if (props.onPress) mods.push(onTapGesture(props.onPress));
96
+ // Events. SwiftUI only hit-tests drawn content, so the `contentShape` lets
97
+ // taps on empty space (for example a `Spacer` in a `Row`) reach `onPress`.
98
+ if (props.onPress) mods.push(contentShape(shapes.rectangle()), onTapGesture(props.onPress));
98
99
  // Lifecycle
99
100
  if (props.onAppear) mods.push(onAppear(props.onAppear));
100
101
  if (props.onDisappear) mods.push(onDisappear(props.onDisappear));
@@ -1 +1 @@
1
- {"version":3,"sources":["universal/transformStyle.ios.ts"],"sourcesContent":[null],"names":["background","border","clipShape","disabled","disabledMod","font","foregroundStyle","frame","hidden","hiddenMod","kerning","lineSpacing","multilineTextAlignment","onAppear","onDisappear","onTapGesture","opacity","padding","omitUserOverridden","FONT_WEIGHT_MAP","normal","bold","transformToModifiers","style","props","extraModifiers","options","mods","textStyle","fontFamily","fontSize","fontWeight","push","family","size","weight","undefined","color","letterSpacing","lineHeight","baseFontSize","Math","max","textAlign","hasPadding","paddingHorizontal","paddingVertical","paddingTop","paddingBottom","paddingLeft","paddingRight","all","horizontal","vertical","top","bottom","leading","trailing","width","height","alignment","frameAlignment","backgroundColor","borderWidth","borderColor","content","borderRadius","onPress"],"mappings":"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"}
1
+ {"version":3,"sources":["universal/transformStyle.ios.ts"],"sourcesContent":[null],"names":["background","border","clipShape","contentShape","disabled","disabledMod","font","foregroundStyle","frame","hidden","hiddenMod","kerning","lineSpacing","multilineTextAlignment","onAppear","onDisappear","onTapGesture","opacity","padding","shapes","omitUserOverridden","FONT_WEIGHT_MAP","normal","bold","transformToModifiers","style","props","extraModifiers","options","mods","textStyle","fontFamily","fontSize","fontWeight","push","family","size","weight","undefined","color","letterSpacing","lineHeight","baseFontSize","Math","max","textAlign","hasPadding","paddingHorizontal","paddingVertical","paddingTop","paddingBottom","paddingLeft","paddingRight","all","horizontal","vertical","top","bottom","leading","trailing","width","height","alignment","frameAlignment","backgroundColor","borderWidth","borderColor","content","borderRadius","onPress","rectangle"],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  "publication": {
11
11
  "groupId": "expo.modules.ui",
12
12
  "artifactId": "expo.modules.ui",
13
- "version": "58.0.5",
13
+ "version": "58.0.7",
14
14
  "repository": "local-maven-repo"
15
15
  }
16
16
  }
@@ -0,0 +1,255 @@
1
+ // Copyright 2026-present 650 Industries. All rights reserved.
2
+
3
+ import ExpoModulesCore
4
+ import SwiftUI
5
+
6
+ final class DataListForEachProps: UIBaseViewProps {
7
+ @Field var itemKeys: [String] = []
8
+ @Field var revision: Int = 0
9
+ @Field var estimatedItemSize: Double = 64
10
+ @Field var deleteEnabled: Bool = false
11
+ @Field var moveEnabled: Bool = false
12
+ var onDelete = EventDispatcher()
13
+ var onMove = EventDispatcher()
14
+ var onWindowChange = EventDispatcher()
15
+ }
16
+
17
+ final class DataListForEachItemProps: ExpoSwiftUI.ViewProps {
18
+ @Field var itemKey: String = ""
19
+ @Field var index: Int = 0
20
+ @Field var revision: Int = 0
21
+ }
22
+
23
+ struct DataListForEachItemView: ExpoSwiftUI.View {
24
+ @ObservedObject var props: DataListForEachItemProps
25
+
26
+ init(props: DataListForEachItemProps) {
27
+ self.props = props
28
+ }
29
+
30
+ var body: some View {
31
+ Children()
32
+ }
33
+ }
34
+
35
+ final class DataListForEachPoolProps: ExpoSwiftUI.ViewProps {}
36
+
37
+ // Holds the recycled slots, so mounting a slot never republishes the list's own props.
38
+ struct DataListForEachPoolView: ExpoSwiftUI.View {
39
+ @ObservedObject var props: DataListForEachPoolProps
40
+
41
+ init(props: DataListForEachPoolProps) {
42
+ self.props = props
43
+ }
44
+
45
+ var body: some View {
46
+ EmptyView()
47
+ }
48
+ }
49
+
50
+ struct DataListForEachView: ExpoSwiftUI.View {
51
+ @ObservedObject var props: DataListForEachProps
52
+ @StateObject private var window = DataListForEachWindow()
53
+
54
+ init(props: DataListForEachProps) {
55
+ self.props = props
56
+ }
57
+
58
+ var body: some View {
59
+ let revision = props.revision
60
+ let pool = (props.children ?? []).lazy.compactMap { ($0.childView as? DataListForEachPoolView)?.props }.first
61
+ if let pool {
62
+ ForEach(Array(props.itemKeys.enumerated()), id: \.element) { index, key in
63
+ DataListForEachRow(itemKey: key, index: index, listProps: props, poolProps: pool, window: window)
64
+ .tag(AnyHashable(key))
65
+ }
66
+ .onDelete(perform: props.deleteEnabled ? { offsets in
67
+ props.onDelete(["indices": Array(offsets), "revision": revision])
68
+ } : nil)
69
+ .onMove(perform: props.moveEnabled ? { sources, destination in
70
+ props.onMove(["sourceIndices": Array(sources), "destination": destination, "revision": revision])
71
+ } : nil)
72
+ }
73
+ }
74
+ }
75
+
76
+ private struct DataListForEachRow: View {
77
+ let itemKey: String
78
+ let index: Int
79
+ @ObservedObject var listProps: DataListForEachProps
80
+ @ObservedObject var poolProps: DataListForEachPoolProps
81
+ let window: DataListForEachWindow
82
+ @State private var appeared = false
83
+ @State private var visibilityID = UUID()
84
+
85
+ // Slots are the pool's children; JS assigns item `index` to slot `index % count`.
86
+ // Reading them here, not in the parent, keeps the row current when the slot count changes.
87
+ private var slot: DataListForEachItemView? {
88
+ guard let slots = poolProps.children, !slots.isEmpty else {
89
+ return nil
90
+ }
91
+ return slots[index % slots.count].childView as? DataListForEachItemView
92
+ }
93
+
94
+ var body: some View {
95
+ VStack(alignment: .leading, spacing: 0) {
96
+ if let slot {
97
+ DataListForEachSlotContent(
98
+ props: slot.props,
99
+ itemKey: itemKey,
100
+ index: index,
101
+ revision: listProps.revision,
102
+ estimatedHeight: CGFloat(listProps.estimatedItemSize),
103
+ window: window
104
+ )
105
+ } else {
106
+ Color.clear
107
+ .frame(height: window.height(for: itemKey, fallback: listProps.estimatedItemSize))
108
+ .accessibilityHidden(true)
109
+ }
110
+ }
111
+ .frame(maxWidth: .infinity, alignment: .leading)
112
+ .onAppear {
113
+ appeared = true
114
+ window.appear(itemKey, index: index, token: visibilityID, props: listProps)
115
+ }
116
+ .onChange(of: listProps.revision) { _ in
117
+ window.reset(listProps)
118
+ if appeared { window.appear(itemKey, index: index, token: visibilityID, props: listProps) }
119
+ }
120
+ .onGeometryChange(for: CGFloat.self, of: { $0.size.width }, action: { width in
121
+ window.updateWidth(width)
122
+ })
123
+ .onDisappear {
124
+ appeared = false
125
+ window.disappear(itemKey, token: visibilityID)
126
+ }
127
+ }
128
+ }
129
+
130
+ private struct DataListForEachSlotContent: View {
131
+ @ObservedObject var props: DataListForEachItemProps
132
+ let itemKey: String
133
+ let index: Int
134
+ let revision: Int
135
+ let estimatedHeight: CGFloat
136
+ let window: DataListForEachWindow
137
+ // we use this state so swiftui re-layouts when the slot is reused for a different item
138
+ @State private var showsContent = false
139
+
140
+ private var matches: Bool {
141
+ props.itemKey == itemKey && props.index == index && props.revision == revision
142
+ }
143
+
144
+ var body: some View {
145
+ Group {
146
+ if showsContent {
147
+ DataListForEachItemView(props: props)
148
+ .id(itemKey)
149
+ .onGeometryChange(for: CGFloat.self, of: { $0.size.height }, action: { height in
150
+ window.measure(height, for: itemKey, revision: revision)
151
+ })
152
+ } else {
153
+ // Hide the previous item while JS updates this slot.
154
+ Color.clear
155
+ .frame(height: window.height(for: itemKey, fallback: Double(estimatedHeight)))
156
+ .accessibilityHidden(true)
157
+ }
158
+ }
159
+ .onAppear { showsContent = matches }
160
+ .onChange(of: matches) { showsContent = $0 }
161
+ }
162
+ }
163
+
164
+ // Tracks rows without triggering view updates and batches window requests to JS.
165
+ private final class DataListForEachWindow: ObservableObject {
166
+ private weak var props: DataListForEachProps?
167
+ private var appeared: [String: Int] = [:]
168
+ private var visibilityTokens: [String: UUID] = [:]
169
+ private var heights: [String: CGFloat] = [:]
170
+ private var width: CGFloat = 0
171
+ private var revision = -1
172
+ private var pending: DispatchWorkItem?
173
+ private var lastSent: [Int] = []
174
+
175
+ deinit {
176
+ pending?.cancel()
177
+ }
178
+
179
+ func reset(_ props: DataListForEachProps) {
180
+ self.props = props
181
+ guard revision != props.revision else {
182
+ return
183
+ }
184
+ revision = props.revision
185
+ heights.removeAll()
186
+ let positions = Dictionary(uniqueKeysWithValues: props.itemKeys.enumerated().map { ($0.element, $0.offset) })
187
+ appeared = positions.filter { appeared[$0.key] != nil }
188
+ visibilityTokens = visibilityTokens.filter { positions[$0.key] != nil }
189
+ lastSent = []
190
+ schedule()
191
+ }
192
+
193
+ func updateWidth(_ newWidth: CGFloat) {
194
+ if width != newWidth {
195
+ if width > 0 {
196
+ heights.removeAll()
197
+ }
198
+ width = newWidth
199
+ }
200
+ }
201
+
202
+ func appear(_ key: String, index: Int, token: UUID, props: DataListForEachProps) {
203
+ reset(props)
204
+ guard props.itemKeys.indices.contains(index), props.itemKeys[index] == key else {
205
+ return
206
+ }
207
+ appeared[key] = index
208
+ visibilityTokens[key] = token
209
+ schedule()
210
+ }
211
+
212
+ func disappear(_ key: String, token: UUID) {
213
+ // Ignore callbacks from a row that has been replaced.
214
+ guard visibilityTokens[key] == token else {
215
+ return
216
+ }
217
+ appeared.removeValue(forKey: key)
218
+ visibilityTokens.removeValue(forKey: key)
219
+ if appeared.isEmpty { lastSent = [] }
220
+ schedule()
221
+ }
222
+
223
+ func height(for key: String, fallback: Double) -> CGFloat {
224
+ heights[key] ?? CGFloat(fallback)
225
+ }
226
+
227
+ func measure(_ height: CGFloat, for key: String, revision: Int) {
228
+ guard revision == self.revision, height.isFinite, height > 0 else {
229
+ return
230
+ }
231
+ heights[key] = height
232
+ }
233
+
234
+ private func schedule() {
235
+ guard pending == nil else {
236
+ return
237
+ }
238
+ let work = DispatchWorkItem { [weak self] in
239
+ guard let self else { return }
240
+ self.pending = nil
241
+ guard let props = self.props,
242
+ let first = self.appeared.values.min(), let last = self.appeared.values.max() else {
243
+ return
244
+ }
245
+ let event = [first, last, self.revision]
246
+ guard event != self.lastSent else {
247
+ return
248
+ }
249
+ self.lastSent = event
250
+ props.onWindowChange(["first": first, "last": last, "revision": self.revision])
251
+ }
252
+ pending = work
253
+ DispatchQueue.main.async(execute: work)
254
+ }
255
+ }
@@ -170,6 +170,9 @@ public final class ExpoUIModule: Module {
170
170
  ExpoUIView(ImageView.self)
171
171
  ExpoUIView(LabelView.self)
172
172
  ExpoUIView(ListView.self)
173
+ ExpoUIView(DataListForEachView.self)
174
+ View(DataListForEachItemView.self)
175
+ View(DataListForEachPoolView.self)
173
176
  ExpoUIView(ListForEachView.self)
174
177
 
175
178
  ExpoUIView(PickerView.self)
@@ -4,6 +4,8 @@ import ExpoModulesCore
4
4
  import SwiftUI
5
5
 
6
6
  final class ListForEachProps: UIBaseViewProps {
7
+ @Field var deleteEnabled: Bool = false
8
+ @Field var moveEnabled: Bool = false
7
9
  var onDelete = EventDispatcher()
8
10
  var onMove = EventDispatcher()
9
11
  }
@@ -16,9 +18,16 @@ struct ListForEachView: ExpoSwiftUI.View {
16
18
  }
17
19
 
18
20
  var body: some View {
19
- Children()
20
- .onDelete(perform: handleDelete)
21
- .onMove(perform: handleMove)
21
+ ForEach(props.children ?? [], id: \.childIdentity) { child in
22
+ if let item = child.childView as? DataListForEachItemView {
23
+ item.tag(AnyHashable(item.props.itemKey))
24
+ } else {
25
+ let view: any View = child.childView
26
+ AnyView(view)
27
+ }
28
+ }
29
+ .onDelete(perform: props.deleteEnabled ? handleDelete : nil)
30
+ .onMove(perform: props.moveEnabled ? handleMove : nil)
22
31
  }
23
32
 
24
33
  func handleDelete(at offsets: IndexSet) {
@@ -160,6 +160,16 @@ internal struct PresentationDragIndicatorModifier: ViewModifier, Record {
160
160
  }
161
161
  }
162
162
 
163
+ // MARK: - Presentation Corner Radius
164
+
165
+ internal struct PresentationCornerRadiusModifier: ViewModifier, Record {
166
+ @Field var cornerRadius: Double?
167
+
168
+ func body(content: Content) -> some View {
169
+ content.presentationCornerRadius(cornerRadius.map { CGFloat($0) })
170
+ }
171
+ }
172
+
163
173
  // MARK: - Presentation Background Interaction
164
174
 
165
175
  internal enum PresentationBackgroundInteractionTypeModifier: String, Enumerable {
@@ -2353,6 +2353,10 @@ extension ViewModifierRegistry {
2353
2353
  return try PresentationDragIndicatorModifier(from: params, appContext: appContext)
2354
2354
  }
2355
2355
 
2356
+ register("presentationCornerRadius") { params, appContext, _ in
2357
+ return try PresentationCornerRadiusModifier(from: params, appContext: appContext)
2358
+ }
2359
+
2356
2360
  register("presentationBackgroundInteraction") { params, appContext, _ in
2357
2361
  return try PresentationBackgroundInteractionModifier(from: params, appContext: appContext)
2358
2362
  }
@@ -0,0 +1 @@
1
+ 21cb93383a49b039772df3cbd1a14c3cd821886c
@@ -0,0 +1 @@
1
+ 5645728c21cb9bd3183045c4208434114a1372ed0a367dadc545a2555294748b
@@ -0,0 +1 @@
1
+ c1f94d22a03f47ec553960cf5a44936e26992755aebc5f3583484c41ee224f9637620571022ae95f0687e5701632d93a1752f817dca5923b07aa10a2697c4776
@@ -0,0 +1 @@
1
+ 955cc1dcde621dc0ad9d70588bff46adfedc1129
@@ -0,0 +1 @@
1
+ db4b84c7879a230cb83fb791d8f9a8f86a282f5c93751bc267dd8a648ed141af
@@ -0,0 +1 @@
1
+ 58f2fa2376432db80f54bf406250ceb0c07fd16f2dd693dcb9aa784c078a18e5044bd224896e2112237b52f6169eeda86f3cfa4edae36be61fec24ffaa6ea1ac
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.ui",
5
5
  "module": "expo.modules.ui",
6
- "version": "58.0.5",
6
+ "version": "58.0.7",
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-58.0.5.aar",
28
- "url": "expo.modules.ui-58.0.5.aar",
29
- "size": 1792968,
30
- "sha512": "ddcedbdcc0e95db83f0657a68090572e6d7c7fb9233e796ea875d86e9782c619560ef0e98316cdf6642abbed4b42eb43b5e8264be55130f47e473adbc0f77c11",
31
- "sha256": "9b228fbd60d559e9dfebe894e1846a8c7ce3c72e5c91936b4382c97295e9b072",
32
- "sha1": "643965a7c8a6f46ba589dcd348cbf5e112834194",
33
- "md5": "61e999a9915231a3196a7fc2864c479e"
27
+ "name": "expo.modules.ui-58.0.7.aar",
28
+ "url": "expo.modules.ui-58.0.7.aar",
29
+ "size": 1835156,
30
+ "sha512": "58f2fa2376432db80f54bf406250ceb0c07fd16f2dd693dcb9aa784c078a18e5044bd224896e2112237b52f6169eeda86f3cfa4edae36be61fec24ffaa6ea1ac",
31
+ "sha256": "db4b84c7879a230cb83fb791d8f9a8f86a282f5c93751bc267dd8a648ed141af",
32
+ "sha1": "955cc1dcde621dc0ad9d70588bff46adfedc1129",
33
+ "md5": "b4a6d6acd9603febf32c95c833b1405f"
34
34
  }
35
35
  ]
36
36
  },
@@ -135,19 +135,19 @@
135
135
  "group": "io.github.expo.pika",
136
136
  "module": "pika-api",
137
137
  "version": {
138
- "requires": "1.0.0"
138
+ "requires": "1.1.0"
139
139
  }
140
140
  }
141
141
  ],
142
142
  "files": [
143
143
  {
144
- "name": "expo.modules.ui-58.0.5.aar",
145
- "url": "expo.modules.ui-58.0.5.aar",
146
- "size": 1792968,
147
- "sha512": "ddcedbdcc0e95db83f0657a68090572e6d7c7fb9233e796ea875d86e9782c619560ef0e98316cdf6642abbed4b42eb43b5e8264be55130f47e473adbc0f77c11",
148
- "sha256": "9b228fbd60d559e9dfebe894e1846a8c7ce3c72e5c91936b4382c97295e9b072",
149
- "sha1": "643965a7c8a6f46ba589dcd348cbf5e112834194",
150
- "md5": "61e999a9915231a3196a7fc2864c479e"
144
+ "name": "expo.modules.ui-58.0.7.aar",
145
+ "url": "expo.modules.ui-58.0.7.aar",
146
+ "size": 1835156,
147
+ "sha512": "58f2fa2376432db80f54bf406250ceb0c07fd16f2dd693dcb9aa784c078a18e5044bd224896e2112237b52f6169eeda86f3cfa4edae36be61fec24ffaa6ea1ac",
148
+ "sha256": "db4b84c7879a230cb83fb791d8f9a8f86a282f5c93751bc267dd8a648ed141af",
149
+ "sha1": "955cc1dcde621dc0ad9d70588bff46adfedc1129",
150
+ "md5": "b4a6d6acd9603febf32c95c833b1405f"
151
151
  }
152
152
  ]
153
153
  },
@@ -161,13 +161,13 @@
161
161
  },
162
162
  "files": [
163
163
  {
164
- "name": "expo.modules.ui-58.0.5-sources.jar",
165
- "url": "expo.modules.ui-58.0.5-sources.jar",
166
- "size": 106293,
167
- "sha512": "5a6dc466f00aa1d74a9e1df2c4a06f3bf9c00b9eebe03e54e1ae68db446806f3f47f98e4a1d04bd90db6683459dd11785d22499d9cef48dd979293f8a88104d3",
168
- "sha256": "d4e08c526d892c05d1ab6e42bd451df874e4da5cc58c18080ad730fc0ae59dfa",
169
- "sha1": "ccc4bc2b5f6f1713a4f7c85ae9be4a6247690fc5",
170
- "md5": "a2c50d54e658f6c03ab37ce21bc712ed"
164
+ "name": "expo.modules.ui-58.0.7-sources.jar",
165
+ "url": "expo.modules.ui-58.0.7-sources.jar",
166
+ "size": 109722,
167
+ "sha512": "c1f94d22a03f47ec553960cf5a44936e26992755aebc5f3583484c41ee224f9637620571022ae95f0687e5701632d93a1752f817dca5923b07aa10a2697c4776",
168
+ "sha256": "5645728c21cb9bd3183045c4208434114a1372ed0a367dadc545a2555294748b",
169
+ "sha1": "21cb93383a49b039772df3cbd1a14c3cd821886c",
170
+ "md5": "bbdad22fa84c26c5a5b649ed116f1fcb"
171
171
  }
172
172
  ]
173
173
  }
@@ -0,0 +1 @@
1
+ 9dd32ee8f56b957697d2292dce6935a9a6c113f7
@@ -0,0 +1 @@
1
+ 4461d437dc9b9973416bb69437c013180a65b2a0d3cb5cb9a87566d1d388bad9
@@ -0,0 +1 @@
1
+ 62141bdabeb89bd61f79ba40fe8a39c31d7ff0f04eb060a7872dd83eb1e72899ee8d1befaeebdfb4251174b0dc53e4d9ac9e6cac357364d905ddd1df91754ed6
@@ -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>58.0.5</version>
12
+ <version>58.0.7</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.ui</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -117,7 +117,7 @@
117
117
  <dependency>
118
118
  <groupId>io.github.expo.pika</groupId>
119
119
  <artifactId>pika-api</artifactId>
120
- <version>1.0.0</version>
120
+ <version>1.1.0</version>
121
121
  <scope>runtime</scope>
122
122
  </dependency>
123
123
  </dependencies>
@@ -0,0 +1 @@
1
+ 582b5b30bd24edc8b923d34cce63fcd644fa12d6
@@ -0,0 +1 @@
1
+ 5365fa5ce4427865eebebb3fa8fb502842f890b4bd2d79c2b6be0225fb07a2fc
@@ -0,0 +1 @@
1
+ 5fcaae8cc43b51d719769cbebd906e1333dd120c6d14212a2006aa0ee966143bb32a04edc35ed68a7f8cdb1cee1ae442c3cf98f6f0a39b0cbc2a05ae0287c4fd
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.ui</groupId>
4
4
  <artifactId>expo.modules.ui</artifactId>
5
5
  <versioning>
6
- <latest>58.0.5</latest>
7
- <release>58.0.5</release>
6
+ <latest>58.0.7</latest>
7
+ <release>58.0.7</release>
8
8
  <versions>
9
- <version>58.0.5</version>
9
+ <version>58.0.7</version>
10
10
  </versions>
11
- <lastUpdated>20260922160135</lastUpdated>
11
+ <lastUpdated>20260925081306</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- c4131ab7d3611c2ad7222519c1ac6dbc
1
+ 3b013569e130377748855287121192d4
@@ -1 +1 @@
1
- 40d27ef259a3a4594d9eb687a6acf1489c4d23a9
1
+ c66fce1b7df0c1281b2cabcf550be469af735aee
@@ -1 +1 @@
1
- be1b14600c8809450004a609ef15392fa45790d99c199668b2fdbeeb38072cdf
1
+ 4531b51612843804ca4cd240ad0c2e8ca8c576a8459e0a5311a68a9859ab7251
@@ -1 +1 @@
1
- aa2b01073faddd2b62d7984ff6ff1637f53cdc23fb83803f432a6fc824ad2a88349638c7ab718dd0961d11ff3e7e0a7ee92ceea63c880257947348b3501c39fa
1
+ a2250c863289705ac41b43de2372d4232e10cda70f7fb7e2cc2f1fc32ea8005ad51acbcf9f24f7be1295e4cfe50fed4ee6ed6950bc87557253faa1a1d22f54f3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/ui",
3
- "version": "58.0.5",
3
+ "version": "58.0.7",
4
4
  "description": "A collection of UI components",
5
5
  "keywords": [
6
6
  "Jetpack Compose",
@@ -149,8 +149,8 @@
149
149
  "@types/node": "^22.14.0",
150
150
  "@types/react": "~19.3.0",
151
151
  "expo-module-scripts": "56.0.3",
152
- "react-native-reanimated": "4.6.0",
153
- "react-native-worklets": "0.12.2"
152
+ "react-native-reanimated": "4.7.0",
153
+ "react-native-worklets": "0.13.0"
154
154
  },
155
155
  "peerDependencies": {
156
156
  "@babel/core": "*",
@@ -171,7 +171,7 @@
171
171
  "optional": true
172
172
  }
173
173
  },
174
- "gitHead": "add8cbf49f477cfd2283ae05af35b4713a773c55",
174
+ "gitHead": "ad41d067bd3df6dd12f1788acc6b54a68e7a650d",
175
175
  "scripts": {
176
176
  "precompile-ios": "et prebuild-package-for-publish",
177
177
  "build": "pnpm run build:lib && pnpm run build:plugin",
@@ -1,6 +1,7 @@
1
1
  import { requireNativeView } from 'expo';
2
2
 
3
3
  import type { ExpoModifier } from '../../types';
4
+ import { LazyItems } from '../LazyItems';
4
5
  import { createViewModifierEventListener } from '../modifiers/utils';
5
6
 
6
7
  /**
@@ -77,3 +78,5 @@ function transformProps(props: LazyColumnProps): NativeLazyColumnProps {
77
78
  export function LazyColumn(props: LazyColumnProps) {
78
79
  return <LazyColumnNativeView {...transformProps(props)} />;
79
80
  }
81
+
82
+ LazyColumn.Items = LazyItems;