@expo/ui 58.0.7 → 58.0.9

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 (135) hide show
  1. package/CHANGELOG.md +12 -5
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/AnimatedVisibilityView.kt +40 -8
  4. package/android/src/main/java/expo/modules/ui/ComposeViews.kt +21 -3
  5. package/android/src/main/java/expo/modules/ui/DatePickerView.kt +12 -4
  6. package/android/src/main/java/expo/modules/ui/ExpoUIModule.kt +5 -1
  7. package/android/src/main/java/expo/modules/ui/HorizontalPagerView.kt +3 -1
  8. package/android/src/main/java/expo/modules/ui/HostView.kt +64 -12
  9. package/android/src/main/java/expo/modules/ui/LazyItemsView.kt +14 -2
  10. package/android/src/main/java/expo/modules/ui/ModalBottomSheetView.kt +5 -1
  11. package/android/src/main/java/expo/modules/ui/ModifierRegistry.kt +40 -7
  12. package/android/src/main/java/expo/modules/ui/RNHostView.kt +3 -1
  13. package/android/src/main/java/expo/modules/ui/SemanticsModifier.kt +2 -1
  14. package/android/src/main/java/expo/modules/ui/ShapeView.kt +3 -1
  15. package/android/src/main/java/expo/modules/ui/SlotView.kt +3 -1
  16. package/android/src/main/java/expo/modules/ui/SnackbarView.kt +5 -1
  17. package/android/src/main/java/expo/modules/ui/TextView.kt +3 -1
  18. package/android/src/main/java/expo/modules/ui/Utils.kt +3 -1
  19. package/android/src/main/java/expo/modules/ui/colors/MaterialColors.kt +5 -1
  20. package/android/src/main/java/expo/modules/ui/convertibles/AnimationSpecParams.kt +3 -1
  21. package/android/src/main/java/expo/modules/ui/graphics/ImageLoader.kt +6 -2
  22. package/android/src/main/java/expo/modules/ui/icon/IconView.kt +5 -1
  23. package/android/src/main/java/expo/modules/ui/state/ObservableState.kt +3 -1
  24. package/android/src/main/java/expo/modules/ui/textfield/BasicTextField.kt +10 -2
  25. package/android/src/main/java/expo/modules/ui/textfield/TextField.kt +20 -4
  26. package/android/src/main/java/expo/modules/ui/textfield/TextFieldShared.kt +3 -1
  27. package/build/jetpack-compose/LazyColumn/index.d.ts +2 -1
  28. package/build/jetpack-compose/LazyColumn/index.js +1 -0
  29. package/build/jetpack-compose/LazyColumn/index.js.map +1 -1
  30. package/build/jetpack-compose/LazyItems/index.d.ts +19 -18
  31. package/build/jetpack-compose/LazyItems/index.js +1 -2
  32. package/build/jetpack-compose/LazyItems/index.js.map +1 -1
  33. package/build/jetpack-compose/LazyRow/index.d.ts +2 -1
  34. package/build/jetpack-compose/LazyRow/index.js +1 -0
  35. package/build/jetpack-compose/LazyRow/index.js.map +1 -1
  36. package/build/jetpack-compose/index.d.ts +0 -1
  37. package/build/jetpack-compose/index.js.map +1 -1
  38. package/build/jetpack-compose/modifiers/index.d.ts +33 -6
  39. package/build/jetpack-compose/modifiers/index.js +15 -2
  40. package/build/jetpack-compose/modifiers/index.js.map +1 -1
  41. package/build/swift-ui/LazyHStack/index.d.ts +45 -0
  42. package/build/swift-ui/LazyHStack/index.js +9 -0
  43. package/build/swift-ui/LazyHStack/index.js.map +1 -1
  44. package/build/swift-ui/LazyStackForEach/index.d.ts +44 -0
  45. package/build/swift-ui/LazyStackForEach/index.js +54 -0
  46. package/build/swift-ui/LazyStackForEach/index.js.map +1 -0
  47. package/build/swift-ui/LazyVStack/index.d.ts +45 -0
  48. package/build/swift-ui/LazyVStack/index.js +9 -0
  49. package/build/swift-ui/LazyVStack/index.js.map +1 -1
  50. package/build/swift-ui/List/DataListForEach.d.ts +6 -7
  51. package/build/swift-ui/List/DataListForEach.js.map +1 -1
  52. package/build/swift-ui/List/ListForEach.d.ts +7 -1
  53. package/build/swift-ui/List/ListForEach.js +1 -5
  54. package/build/swift-ui/List/ListForEach.js.map +1 -1
  55. package/build/swift-ui/index.d.ts +1 -0
  56. package/build/swift-ui/index.js.map +1 -1
  57. package/build/swift-ui/modifiers/index.d.ts +5 -1
  58. package/build/swift-ui/modifiers/index.js.map +1 -1
  59. package/build/universal/State.android.d.ts +1 -3
  60. package/build/universal/State.d.ts +2 -3
  61. package/build/universal/State.ios.d.ts +1 -3
  62. package/build/universal/State.js +10 -4
  63. package/build/universal/State.js.map +1 -1
  64. package/build/universal/Switch/index.android.js +5 -1
  65. package/build/universal/Switch/index.android.js.map +1 -1
  66. package/build/universal/types.d.ts +24 -0
  67. package/build/universal/types.js +8 -2
  68. package/build/universal/types.js.map +1 -1
  69. package/expo-module.config.json +0 -1
  70. package/ios/DataListForEachView.swift +65 -28
  71. package/ios/LazyHStackView.swift +3 -0
  72. package/ios/LazyVStackView.swift +3 -0
  73. package/ios/ListView.swift +8 -0
  74. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.7/expo.modules.ui-58.0.7-sources.jar → 58.0.9/expo.modules.ui-58.0.9-sources.jar} +0 -0
  75. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9-sources.jar.md5 +1 -0
  76. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9-sources.jar.sha1 +1 -0
  77. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9-sources.jar.sha256 +1 -0
  78. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9-sources.jar.sha512 +1 -0
  79. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.aar +0 -0
  80. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.aar.md5 +1 -0
  81. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.aar.sha1 +1 -0
  82. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.aar.sha256 +1 -0
  83. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.aar.sha512 +1 -0
  84. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.7/expo.modules.ui-58.0.7.module → 58.0.9/expo.modules.ui-58.0.9.module} +23 -23
  85. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.module.md5 +1 -0
  86. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.module.sha1 +1 -0
  87. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.module.sha256 +1 -0
  88. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.module.sha512 +1 -0
  89. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.7/expo.modules.ui-58.0.7.pom → 58.0.9/expo.modules.ui-58.0.9.pom} +2 -2
  90. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.pom.md5 +1 -0
  91. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.pom.sha1 +1 -0
  92. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.pom.sha256 +1 -0
  93. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.9/expo.modules.ui-58.0.9.pom.sha512 +1 -0
  94. package/package.json +3 -3
  95. package/prebuilds/output/debug/xcframeworks/ExpoUI.tar.gz +0 -0
  96. package/prebuilds/output/release/xcframeworks/ExpoUI.tar.gz +0 -0
  97. package/src/jetpack-compose/LazyColumn/index.tsx +2 -0
  98. package/src/jetpack-compose/LazyItems/index.tsx +18 -21
  99. package/src/jetpack-compose/LazyRow/index.tsx +2 -0
  100. package/src/jetpack-compose/index.ts +0 -1
  101. package/src/jetpack-compose/modifiers/index.ts +32 -4
  102. package/src/swift-ui/LazyHStack/index.tsx +45 -0
  103. package/src/swift-ui/LazyStackForEach/index.tsx +110 -0
  104. package/src/swift-ui/LazyVStack/index.tsx +45 -0
  105. package/src/swift-ui/List/DataListForEach.tsx +7 -8
  106. package/src/swift-ui/List/ListForEach.tsx +10 -3
  107. package/src/swift-ui/index.tsx +1 -0
  108. package/src/swift-ui/modifiers/index.ts +5 -1
  109. package/src/universal/State.android.ts +1 -1
  110. package/src/universal/State.ios.ts +1 -1
  111. package/src/universal/State.ts +12 -4
  112. package/src/universal/Switch/index.android.tsx +11 -2
  113. package/src/universal/types.ts +27 -0
  114. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.md5 +0 -1
  115. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.sha1 +0 -1
  116. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.sha256 +0 -1
  117. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7-sources.jar.sha512 +0 -1
  118. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar +0 -0
  119. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.md5 +0 -1
  120. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.sha1 +0 -1
  121. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.sha256 +0 -1
  122. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.aar.sha512 +0 -1
  123. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.md5 +0 -1
  124. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.sha1 +0 -1
  125. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.sha256 +0 -1
  126. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.module.sha512 +0 -1
  127. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.md5 +0 -1
  128. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.sha1 +0 -1
  129. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.sha256 +0 -1
  130. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.7/expo.modules.ui-58.0.7.pom.sha512 +0 -1
  131. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +0 -13
  132. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +0 -1
  133. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +0 -1
  134. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +0 -1
  135. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +0 -1
@@ -1,4 +1,5 @@
1
1
  import { requireNativeView } from 'expo';
2
+ import { type ReactElement } from 'react';
2
3
 
3
4
  import { useItemKeys } from '../../recycling/useRecycledRows';
4
5
  import { type ViewEvent } from '../../types';
@@ -56,7 +57,13 @@ let warnedElements = false;
56
57
  * Pass `data` with `keyExtractor`, and render each row from a `children` function.
57
58
  * Recycles rows unless `recycling` is `false`.
58
59
  */
59
- export function ListForEach<ItemT>(props: ListForEachProps<ItemT> | ListForEachElementsProps) {
60
+ export function ListForEach<T>(props: ListForEachProps<T>): ReactElement;
61
+ /**
62
+ * @hidden
63
+ * @deprecated Pass `data` and `keyExtractor`, and render each row from a `children` function.
64
+ */
65
+ export function ListForEach(props: ListForEachElementsProps): ReactElement;
66
+ export function ListForEach<T>(props: ListForEachProps<T> | ListForEachElementsProps) {
60
67
  if (props.data === undefined) {
61
68
  if (__DEV__ && !warnedElements) {
62
69
  warnedElements = true;
@@ -87,14 +94,14 @@ function ChildrenListForEach({ children, onDelete, onMove, ...props }: ListForEa
87
94
  );
88
95
  }
89
96
 
90
- function StaticListForEach<ItemT>({
97
+ function StaticListForEach<T>({
91
98
  data,
92
99
  keyExtractor,
93
100
  children: renderItem,
94
101
  overscanCount: _overscanCount,
95
102
  estimatedItemSize: _estimatedItemSize,
96
103
  ...props
97
- }: Omit<ListForEachProps<ItemT>, 'recycling'>) {
104
+ }: Omit<ListForEachProps<T>, 'recycling'>) {
98
105
  const itemKeys = useItemKeys('List.ForEach', data, keyExtractor);
99
106
  return (
100
107
  <ChildrenListForEach {...props}>
@@ -20,6 +20,7 @@ export * from './LabeledContent';
20
20
  export * from './HStack';
21
21
  export * from './LazyHStack';
22
22
  export * from './LazyVStack';
23
+ export { type LazyStackForEachProps } from './LazyStackForEach';
23
24
  export * from './VStack';
24
25
  export * from './ZStack';
25
26
  export * from './Group';
@@ -106,7 +106,11 @@ export const matchedGeometryEffect = (
106
106
  */
107
107
  export const geometryGroup = () => createModifier('geometryGroup', {});
108
108
 
109
- type FrameAlignment =
109
+ /**
110
+ * The alignment of a view inside the frame that `frame()` creates.
111
+ * Most values have no visible effect when the frame is the same size as the view.
112
+ */
113
+ export type FrameAlignment =
110
114
  | 'center'
111
115
  | 'leading'
112
116
  | 'trailing'
@@ -1,3 +1,3 @@
1
1
  export { useNativeState } from '@expo/ui/jetpack-compose';
2
2
 
3
- export type ObservableState<T> = { value: T };
3
+ export type { ObservableState } from './types';
@@ -1,3 +1,3 @@
1
1
  export { useNativeState } from '@expo/ui/swift-ui';
2
2
 
3
- export type ObservableState<T> = { value: T };
3
+ export type { ObservableState } from './types';
@@ -1,6 +1,8 @@
1
1
  import { useRef, useState } from 'react';
2
2
 
3
- export type ObservableState<T> = { value: T };
3
+ import type { ObservableState } from './types';
4
+
5
+ export type { ObservableState };
4
6
 
5
7
  /**
6
8
  * Web polyfill for the native `useNativeState` hook.
@@ -13,14 +15,20 @@ export function useNativeState<T>(initialValue: T): ObservableState<T> {
13
15
 
14
16
  const stateRef = useRef<ObservableState<T> | null>(null);
15
17
  if (stateRef.current === null) {
18
+ const get = () => valRef.current;
19
+ const set = (v: T) => {
20
+ valRef.current = v;
21
+ setVal(v);
22
+ };
16
23
  stateRef.current = {
17
24
  get value() {
18
- return valRef.current;
25
+ return get();
19
26
  },
20
27
  set value(v: T) {
21
- valRef.current = v;
22
- setVal(v);
28
+ set(v);
23
29
  },
30
+ get,
31
+ set,
24
32
  };
25
33
  }
26
34
  return stateRef.current;
@@ -1,5 +1,11 @@
1
1
  import { Row, Switch as ComposeSwitch, Text } from '@expo/ui/jetpack-compose';
2
- import { testID as testIDModifier, weight } from '@expo/ui/jetpack-compose/modifiers';
2
+ import {
3
+ fillMaxWidth,
4
+ IntrinsicSize,
5
+ testID as testIDModifier,
6
+ weight,
7
+ width,
8
+ } from '@expo/ui/jetpack-compose/modifiers';
3
9
 
4
10
  import type { SwitchProps } from './types';
5
11
 
@@ -16,7 +22,10 @@ export function Switch({ value, onValueChange, label, disabled, testID, modifier
16
22
  if (label == null) return toggle;
17
23
 
18
24
  return (
19
- <Row verticalAlignment="center" horizontalArrangement={{ spacedBy: 8 }}>
25
+ <Row
26
+ verticalAlignment="center"
27
+ horizontalArrangement={{ spacedBy: 8 }}
28
+ modifiers={[fillMaxWidth(), width(IntrinsicSize.Max)]}>
20
29
  <Text modifiers={[weight(1)]}>{label}</Text>
21
30
  {toggle}
22
31
  </Row>
@@ -111,3 +111,30 @@ export interface UniversalBaseProps {
111
111
  * @docsInline
112
112
  */
113
113
  export type UniversalAlignment = 'start' | 'center' | 'end';
114
+
115
+ /**
116
+ * Observable state created with `useNativeState`.
117
+ *
118
+ * On Android and iOS, the value is shared with native views. A write from the JavaScript thread
119
+ * is applied on the UI thread asynchronously, so a read right after it may still return the
120
+ * previous value. Writes don't re-render the component that created the state.
121
+ *
122
+ * On web, the value is backed by React state. A write is readable immediately and re-renders the
123
+ * component that created the state.
124
+ */
125
+ export type ObservableState<T> = {
126
+ /**
127
+ * The current value.
128
+ */
129
+ value: T;
130
+
131
+ /**
132
+ * Reads the current value. A React Compiler-compliant alternative to reading `.value`.
133
+ */
134
+ get(): T;
135
+
136
+ /**
137
+ * Writes a new value. A React Compiler-compliant alternative to assigning `.value`.
138
+ */
139
+ set(value: T): void;
140
+ };
@@ -1 +0,0 @@
1
- 21cb93383a49b039772df3cbd1a14c3cd821886c
@@ -1 +0,0 @@
1
- 5645728c21cb9bd3183045c4208434114a1372ed0a367dadc545a2555294748b
@@ -1 +0,0 @@
1
- c1f94d22a03f47ec553960cf5a44936e26992755aebc5f3583484c41ee224f9637620571022ae95f0687e5701632d93a1752f817dca5923b07aa10a2697c4776
@@ -1 +0,0 @@
1
- b4a6d6acd9603febf32c95c833b1405f
@@ -1 +0,0 @@
1
- 955cc1dcde621dc0ad9d70588bff46adfedc1129
@@ -1 +0,0 @@
1
- db4b84c7879a230cb83fb791d8f9a8f86a282f5c93751bc267dd8a648ed141af
@@ -1 +0,0 @@
1
- 58f2fa2376432db80f54bf406250ceb0c07fd16f2dd693dcb9aa784c078a18e5044bd224896e2112237b52f6169eeda86f3cfa4edae36be61fec24ffaa6ea1ac
@@ -1 +0,0 @@
1
- 9dd32ee8f56b957697d2292dce6935a9a6c113f7
@@ -1 +0,0 @@
1
- 4461d437dc9b9973416bb69437c013180a65b2a0d3cb5cb9a87566d1d388bad9
@@ -1 +0,0 @@
1
- 62141bdabeb89bd61f79ba40fe8a39c31d7ff0f04eb060a7872dd83eb1e72899ee8d1befaeebdfb4251174b0dc53e4d9ac9e6cac357364d905ddd1df91754ed6
@@ -1 +0,0 @@
1
- ea27c56a290e1fc992da3e12320a93e8
@@ -1 +0,0 @@
1
- 582b5b30bd24edc8b923d34cce63fcd644fa12d6
@@ -1 +0,0 @@
1
- 5365fa5ce4427865eebebb3fa8fb502842f890b4bd2d79c2b6be0225fb07a2fc
@@ -1 +0,0 @@
1
- 5fcaae8cc43b51d719769cbebd906e1333dd120c6d14212a2006aa0ee966143bb32a04edc35ed68a7f8cdb1cee1ae442c3cf98f6f0a39b0cbc2a05ae0287c4fd
@@ -1,13 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <metadata>
3
- <groupId>expo.modules.ui</groupId>
4
- <artifactId>expo.modules.ui</artifactId>
5
- <versioning>
6
- <latest>58.0.7</latest>
7
- <release>58.0.7</release>
8
- <versions>
9
- <version>58.0.7</version>
10
- </versions>
11
- <lastUpdated>20260925081306</lastUpdated>
12
- </versioning>
13
- </metadata>
@@ -1 +0,0 @@
1
- 3b013569e130377748855287121192d4
@@ -1 +0,0 @@
1
- c66fce1b7df0c1281b2cabcf550be469af735aee
@@ -1 +0,0 @@
1
- 4531b51612843804ca4cd240ad0c2e8ca8c576a8459e0a5311a68a9859ab7251
@@ -1 +0,0 @@
1
- a2250c863289705ac41b43de2372d4232e10cda70f7fb7e2cc2f1fc32ea8005ad51acbcf9f24f7be1295e4cfe50fed4ee6ed6950bc87557253faa1a1d22f54f3