@expo/ui 57.0.13 → 57.0.15

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 (160) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/ExpoUIModule.kt +17 -3
  4. package/android/src/main/java/expo/modules/ui/ProgressView.kt +31 -0
  5. package/android/src/main/java/expo/modules/ui/RNHostView.kt +161 -11
  6. package/build/PresentedContentContext.d.ts +18 -0
  7. package/build/PresentedContentContext.d.ts.map +1 -0
  8. package/build/community/pager-view/PagerView.android.d.ts.map +1 -1
  9. package/build/jetpack-compose/AlertDialog/index.d.ts.map +1 -1
  10. package/build/jetpack-compose/BasicAlertDialog/index.d.ts.map +1 -1
  11. package/build/jetpack-compose/DropdownMenu/index.d.ts.map +1 -1
  12. package/build/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.d.ts.map +1 -1
  13. package/build/jetpack-compose/Host/index.d.ts +3 -0
  14. package/build/jetpack-compose/Host/index.d.ts.map +1 -1
  15. package/build/jetpack-compose/ModalBottomSheet/index.d.ts.map +1 -1
  16. package/build/jetpack-compose/Progress/index.d.ts +25 -2
  17. package/build/jetpack-compose/Progress/index.d.ts.map +1 -1
  18. package/build/jetpack-compose/RNHostView/index.d.ts +6 -6
  19. package/build/jetpack-compose/RNHostView/index.d.ts.map +1 -1
  20. package/build/jetpack-compose/TextField/shared.d.ts +2 -1
  21. package/build/jetpack-compose/TextField/shared.d.ts.map +1 -1
  22. package/build/jetpack-compose/Tooltip/index.d.ts.map +1 -1
  23. package/build/keyboard/index.d.ts +43 -0
  24. package/build/keyboard/index.d.ts.map +1 -0
  25. package/build/keyboard/interop.d.ts +16 -0
  26. package/build/keyboard/interop.d.ts.map +1 -0
  27. package/build/keyboard/textInputState.d.ts +2 -0
  28. package/build/keyboard/textInputState.d.ts.map +1 -0
  29. package/build/keyboard/textInputState.web.d.ts +11 -0
  30. package/build/keyboard/textInputState.web.d.ts.map +1 -0
  31. package/build/swift-ui/Background/index.d.ts +18 -0
  32. package/build/swift-ui/Background/index.d.ts.map +1 -0
  33. package/build/swift-ui/BottomSheet/index.d.ts.map +1 -1
  34. package/build/swift-ui/Host/index.d.ts +3 -0
  35. package/build/swift-ui/Host/index.d.ts.map +1 -1
  36. package/build/swift-ui/Popover/index.d.ts.map +1 -1
  37. package/build/swift-ui/RNHostView.d.ts +4 -1
  38. package/build/swift-ui/RNHostView.d.ts.map +1 -1
  39. package/build/swift-ui/SecureField/index.d.ts.map +1 -1
  40. package/build/swift-ui/TextField/index.d.ts.map +1 -1
  41. package/build/swift-ui/index.d.ts +1 -0
  42. package/build/swift-ui/index.d.ts.map +1 -1
  43. package/build/swift-ui/modifiers/index.d.ts +9 -34
  44. package/build/swift-ui/modifiers/index.d.ts.map +1 -1
  45. package/build/swift-ui/modifiers/presentationModifiers.d.ts +3 -2
  46. package/build/swift-ui/modifiers/presentationModifiers.d.ts.map +1 -1
  47. package/build/swift-ui/modifiers/shapeStyle.d.ts +54 -0
  48. package/build/swift-ui/modifiers/shapeStyle.d.ts.map +1 -0
  49. package/build/universal/BottomSheet/index.android.d.ts +1 -1
  50. package/build/universal/BottomSheet/index.android.d.ts.map +1 -1
  51. package/build/universal/BottomSheet/index.d.ts +1 -1
  52. package/build/universal/BottomSheet/index.d.ts.map +1 -1
  53. package/build/universal/BottomSheet/index.ios.d.ts +1 -1
  54. package/build/universal/BottomSheet/index.ios.d.ts.map +1 -1
  55. package/build/universal/BottomSheet/types.d.ts +20 -0
  56. package/build/universal/BottomSheet/types.d.ts.map +1 -1
  57. package/build/universal/ListItem/ListItem.android.d.ts.map +1 -1
  58. package/build/universal/ListItem/types.d.ts +19 -0
  59. package/build/universal/ListItem/types.d.ts.map +1 -1
  60. package/build/universal/RNHostView/index.android.d.ts +1 -1
  61. package/build/universal/RNHostView/index.android.d.ts.map +1 -1
  62. package/build/universal/RNHostView/index.d.ts +1 -1
  63. package/build/universal/RNHostView/index.d.ts.map +1 -1
  64. package/build/universal/RNHostView/index.ios.d.ts +1 -1
  65. package/build/universal/RNHostView/index.ios.d.ts.map +1 -1
  66. package/build/universal/RNHostView/types.d.ts +2 -0
  67. package/build/universal/RNHostView/types.d.ts.map +1 -1
  68. package/build/utils/useMergeRefs.d.ts +12 -0
  69. package/build/utils/useMergeRefs.d.ts.map +1 -0
  70. package/expo-module.config.json +1 -1
  71. package/ios/BackgroundView.swift +34 -0
  72. package/ios/ColorPickerView.swift +1 -1
  73. package/ios/Convertibles/ShapeStyleValue.swift +129 -0
  74. package/ios/ExpoUIModule.swift +4 -0
  75. package/ios/HostView.swift +7 -0
  76. package/ios/Modifiers/ForegroundStyleModifier.swift +12 -105
  77. package/ios/Modifiers/ViewModifierRegistry.swift +29 -5
  78. package/ios/RNHostView.swift +64 -4
  79. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.13/expo.modules.ui-57.0.13-sources.jar → 57.0.15/expo.modules.ui-57.0.15-sources.jar} +0 -0
  80. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15-sources.jar.md5 +1 -0
  81. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15-sources.jar.sha1 +1 -0
  82. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15-sources.jar.sha256 +1 -0
  83. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15-sources.jar.sha512 +1 -0
  84. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.aar +0 -0
  85. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.aar.md5 +1 -0
  86. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.aar.sha1 +1 -0
  87. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.aar.sha256 +1 -0
  88. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.aar.sha512 +1 -0
  89. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.13/expo.modules.ui-57.0.13.module → 57.0.15/expo.modules.ui-57.0.15.module} +22 -22
  90. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.module.md5 +1 -0
  91. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.module.sha1 +1 -0
  92. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.module.sha256 +1 -0
  93. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.module.sha512 +1 -0
  94. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.13/expo.modules.ui-57.0.13.pom → 57.0.15/expo.modules.ui-57.0.15.pom} +1 -1
  95. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.pom.md5 +1 -0
  96. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.pom.sha1 +1 -0
  97. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.pom.sha256 +1 -0
  98. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.15/expo.modules.ui-57.0.15.pom.sha512 +1 -0
  99. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  100. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  101. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  102. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  103. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  104. package/package.json +4 -4
  105. package/src/PresentedContentContext.tsx +22 -0
  106. package/src/community/pager-view/PagerView.android.tsx +1 -7
  107. package/src/jetpack-compose/AlertDialog/index.tsx +6 -1
  108. package/src/jetpack-compose/BasicAlertDialog/index.tsx +7 -1
  109. package/src/jetpack-compose/DropdownMenu/index.tsx +7 -1
  110. package/src/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.tsx +3 -1
  111. package/src/jetpack-compose/Host/index.tsx +28 -17
  112. package/src/jetpack-compose/ModalBottomSheet/index.tsx +8 -1
  113. package/src/jetpack-compose/Progress/index.tsx +32 -2
  114. package/src/jetpack-compose/RNHostView/index.tsx +28 -13
  115. package/src/jetpack-compose/TextField/shared.ts +7 -1
  116. package/src/jetpack-compose/Tooltip/index.tsx +2 -1
  117. package/src/keyboard/index.tsx +243 -0
  118. package/src/keyboard/interop.ts +99 -0
  119. package/src/keyboard/textInputState.ts +2 -0
  120. package/src/keyboard/textInputState.web.ts +16 -0
  121. package/src/swift-ui/Background/index.tsx +38 -0
  122. package/src/swift-ui/BottomSheet/index.tsx +4 -1
  123. package/src/swift-ui/Host/index.tsx +33 -18
  124. package/src/swift-ui/Popover/index.tsx +7 -1
  125. package/src/swift-ui/RNHostView.tsx +20 -3
  126. package/src/swift-ui/SecureField/index.tsx +8 -2
  127. package/src/swift-ui/TextField/index.tsx +8 -1
  128. package/src/swift-ui/index.tsx +1 -0
  129. package/src/swift-ui/modifiers/index.ts +10 -39
  130. package/src/swift-ui/modifiers/presentationModifiers.ts +3 -2
  131. package/src/swift-ui/modifiers/shapeStyle.ts +55 -0
  132. package/src/ts-declarations/react-native-text-input-state.d.ts +26 -0
  133. package/src/universal/BottomSheet/index.android.tsx +4 -0
  134. package/src/universal/BottomSheet/index.ios.tsx +5 -0
  135. package/src/universal/BottomSheet/index.tsx +4 -0
  136. package/src/universal/BottomSheet/types.ts +22 -0
  137. package/src/universal/ListItem/ListItem.android.tsx +2 -1
  138. package/src/universal/ListItem/types.ts +21 -0
  139. package/src/universal/RNHostView/index.android.tsx +2 -1
  140. package/src/universal/RNHostView/index.ios.tsx +6 -2
  141. package/src/universal/RNHostView/index.tsx +2 -0
  142. package/src/universal/RNHostView/types.ts +3 -0
  143. package/src/utils/useMergeRefs.ts +47 -0
  144. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13-sources.jar.md5 +0 -1
  145. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13-sources.jar.sha1 +0 -1
  146. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13-sources.jar.sha256 +0 -1
  147. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13-sources.jar.sha512 +0 -1
  148. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.aar +0 -0
  149. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.aar.md5 +0 -1
  150. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.aar.sha1 +0 -1
  151. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.aar.sha256 +0 -1
  152. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.aar.sha512 +0 -1
  153. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.module.md5 +0 -1
  154. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.module.sha1 +0 -1
  155. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.module.sha256 +0 -1
  156. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.module.sha512 +0 -1
  157. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.pom.md5 +0 -1
  158. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.pom.sha1 +0 -1
  159. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.pom.sha256 +0 -1
  160. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.13/expo.modules.ui-57.0.13.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,40 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 57.0.15 — 2026-09-01
14
+
15
+ ### 🎉 New features
16
+
17
+ - [universal] Added `containerColor` and `contentColor` props to `BottomSheet`, and a `colors` prop to `ListItem`, so a sheet's chrome and its rows can be recolored to match an app's own theme instead of always using each platform's opaque default. Forwards to capabilities the `jetpack-compose` and `swift-ui` layers already expose (`ModalBottomSheet.containerColor`/`contentColor`, `presentationBackground`, `ListItem.colors`) without changing default behavior when omitted. ([#49575](https://github.com/expo/expo/pull/49575) by [@timheilman](https://github.com/timheilman))
18
+ - [iOS] Added the `ShapeStyle` type, shared by the modifiers that paint an area, and taught `foregroundStyle` to accept materials (`ultraThin`, `thin`, `regular`, `thick`, `ultraThick` and `bar`). ([#48905](https://github.com/expo/expo/pull/48905) by [@Den1Marshall](https://github.com/Den1Marshall))
19
+
20
+ ### 🐛 Bug fixes
21
+
22
+ - [iOS][Android] Fixed a `matchContents` `RNHostView` inside a `matchContents` `Host` growing the layout on every pass. ([#49483](https://github.com/expo/expo/pull/49483) by [@intergalacticspacehighway](https://github.com/intergalacticspacehighway))
23
+ - [iOS] Fix modifier application rebuilding a fresh `AnyViewModifier` every body evaluation, which defeated AttributeGraph subtree pruning during scroll. ([#48426](https://github.com/expo/expo/pull/48426) by [@wielski](https://github.com/wielski))
24
+ - [Android] Fix a drag that starts on a hosted `TextInput` not scrolling the `ScrollView` around it. React Native's text input asks its ancestors not to intercept the gesture, then releases them one move later, and Jetpack Compose read that release as "Compose claimed the gesture" and cancelled the hosted subtree. `RNHostView` no longer passes such a release on to Compose. ([#49510](https://github.com/expo/expo/issues/49510) by [@kilarsky](https://github.com/kilarsky)) ([#49520](https://github.com/expo/expo/pull/49520) by [@expo-tuft[bot]](https://github.com/apps/expo-tuft))
25
+
26
+ ## 57.0.14 — 2026-08-26
27
+
28
+ ### 🛠 Breaking changes
29
+
30
+ - [Android] Removed the `style` prop from `RNHostView`. It set a React Native style on a view that Jetpack Compose positions and sizes; use `modifiers` instead. Hosted views are now measured where Compose drew them, so a style is no longer needed to keep `measure()` and the drawn position in agreement. ([#48970](https://github.com/expo/expo/pull/48970) by [@nishan](https://github.com/intergalacticspacehighway))
31
+
32
+ ### 🎉 New features
33
+
34
+ - [iOS] Added the `Background` component, which draws any view behind another view with an optional `alignment`, matching SwiftUI's `background(alignment:content:)`. ([#48904](https://github.com/expo/expo/pull/48904) by [@Den1Marshall](https://github.com/Den1Marshall))
35
+ - [android] Added the `amplitude`, `wavelength` and `waveSpeed` props to `LinearWavyProgressIndicator` and `CircularWavyProgressIndicator`, so the Material 3 wave can be configured instead of always using the Compose defaults. ([#49265](https://github.com/expo/expo/pull/49265) by [@felipe-software](https://github.com/felipe-software))
36
+
37
+ ### 🐛 Bug fixes
38
+
39
+ - [iOS] Fixed a crash when a focused `TextField` or `SecureField` is unmounted inside a list row that is being removed, for example closing a modal with the keyboard up on a field nested in `SwipeActions`. Hosted text inputs now blur before React removes their native views. ([#49348](https://github.com/expo/expo/issues/49348) by [@nishan](https://github.com/intergalacticspacehighway)) ([#49357](https://github.com/expo/expo/pull/49357) by [@expo-tuft[bot]](https://github.com/apps/expo-tuft))
40
+ - Fixed the keyboard staying open when tapping outside a text field hosted by `<Host>`. A parent `ScrollView`'s tap-to-dismiss, its `keyboardShouldPersistTaps` setting, and `Keyboard.dismiss()` now reach hosted text fields. React Native treats the whole `<Host>` as the input, so a tap on other content inside the same host still keeps the keyboard open. ([#48788](https://github.com/expo/expo/pull/48788) by [@intergalacticspacehighway](https://github.com/intergalacticspacehighway))
41
+ - [iOS] Fix a hosted `Pressable` dropping its press when the finger moves, by measuring hosted React Native views where SwiftUI placed them. ([#48969](https://github.com/expo/expo/pull/48969) by [@nishan](https://github.com/intergalacticspacehighway))
42
+ - [iOS] Fix hosted React Native views receiving no touches inside a `BottomSheet` or `Popover`. ([#48969](https://github.com/expo/expo/pull/48969) by [@nishan](https://github.com/intergalacticspacehighway))
43
+ - [Android] Fix touch handling for hosted React Native views: a `Pressable` dropped its press when the finger moved, hosted content stole gestures from enclosing scrollables, a back gesture was reported as a long press, a press fired after a Jetpack Compose pager or scrollable had already claimed the gesture, and content inside `AlertDialog`, `DropdownMenu`, `ExposedDropdownMenu` and `TooltipBox` received no touches at all. Hosted views are now measured where Jetpack Compose placed them, and dispatch their own touches only when presented in their own window. ([#48970](https://github.com/expo/expo/pull/48970) by [@nishan](https://github.com/intergalacticspacehighway))
44
+ - [Android] Fix a hosted `Pressable` in a `PagerView` ignoring presses on pages after the first, where a re-parented host kept the bounds of the holder it left and answered for a screen area it no longer occupied. ([#46386](https://github.com/expo/expo/issues/46386) by [@TomCorvus](https://github.com/TomCorvus)) ([#48970](https://github.com/expo/expo/pull/48970) by [@nishan](https://github.com/intergalacticspacehighway))
45
+ - [iOS] Fix `ColorPicker` reporting every color one value too low, because `colorToHex` truncated instead of rounding. Apps feed the reported value back into `selection`, so the error compounded and each interaction moved all three channels down by one. ([#49356](https://github.com/expo/expo/pull/49356) by [@batuhandemir98](https://github.com/batuhandemir98))
46
+
13
47
  ## 57.0.13 — 2026-08-24
14
48
 
15
49
  ### 🎉 New features
@@ -12,13 +12,13 @@ apply plugin: 'expo-module-gradle-plugin'
12
12
  apply plugin: 'org.jetbrains.kotlin.plugin.compose'
13
13
 
14
14
  group = 'expo.modules.ui'
15
- version = '57.0.13'
15
+ version = '57.0.15'
16
16
 
17
17
  android {
18
18
  namespace "expo.modules.ui"
19
19
  defaultConfig {
20
20
  versionCode 1
21
- versionName "57.0.13"
21
+ versionName "57.0.15"
22
22
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
23
23
  }
24
24
  buildFeatures {
@@ -35,6 +35,7 @@ import expo.modules.ui.menu.DropdownMenuContent
35
35
  import expo.modules.ui.menu.DropdownMenuProps
36
36
  import expo.modules.ui.menu.DropdownMenuItemContent
37
37
  import expo.modules.ui.menu.DropdownMenuItemProps
38
+ import expo.modules.kotlin.jni.fabric.NativeStatePropsGetter
38
39
  import expo.modules.kotlin.jni.worklets.Worklet
39
40
  import expo.modules.ui.state.ObservableState
40
41
  import expo.modules.ui.state.WorkletCallback
@@ -72,6 +73,11 @@ class ExpoUIModule : Module() {
72
73
  }
73
74
 
74
75
  OnDestroy {
76
+ // `RNHostView` publishes its content origin into a process-global registry keyed by view tag.
77
+ // Tags restart in the next app context, so an entry whose view was never torn down would be
78
+ // read by an unrelated view after a reload.
79
+ NativeStatePropsGetter().clearAllContentOrigins()
80
+
75
81
  imageLoader?.close()
76
82
  imageLoader = null
77
83
  okHttpClient?.dispatcher?.executorService?.shutdown()
@@ -173,9 +179,17 @@ class ExpoUIModule : Module() {
173
179
  }
174
180
 
175
181
  View(RNHostView::class) {
176
- // Consumed by `ExpoViewShadowNode` in C++, which marks the shadow node with the
177
- // `RootNodeKind` trait. Declared here only so React Native forwards the prop to native
178
- Prop("layoutRoot") { _, _: Boolean -> }
182
+ // Also consumed by `ExpoViewShadowNode` in C++, which marks the shadow node with the
183
+ // `RootNodeKind` trait so `measure()` reports positions relative to this view. Kotlin reads
184
+ // the same prop to decide whether this view dispatches its subtree's touches, so the
185
+ // position in `measure()` and the dispatcher can never disagree.
186
+ Prop("layoutRoot") { view: RNHostView, layoutRoot: Boolean ->
187
+ view.setLayoutRoot(layoutRoot)
188
+ }
189
+
190
+ OnViewDestroys { view: RNHostView ->
191
+ view.clearPublishedContentOrigin()
192
+ }
179
193
  }
180
194
 
181
195
  View(SlotView::class) {
@@ -150,6 +150,9 @@ data class LinearWavyProgressIndicatorProps(
150
150
  val color: Color? = null,
151
151
  val trackColor: Color? = null,
152
152
  val stopSize: Float? = null,
153
+ val amplitude: Float? = null,
154
+ val wavelength: Float? = null,
155
+ val waveSpeed: Float? = null,
153
156
  val modifiers: ModifierList = emptyList()
154
157
  ) : ComposeProps
155
158
 
@@ -161,17 +164,27 @@ fun FunctionalComposableScope.LinearWavyProgressIndicatorContent(props: LinearWa
161
164
  val stopSize = props.stopSize?.dp ?: WavyProgressIndicatorDefaults.LinearTrackStopIndicatorSize
162
165
 
163
166
  if (props.progress != null) {
167
+ val wavelength = props.wavelength?.dp ?: WavyProgressIndicatorDefaults.LinearDeterminateWavelength
168
+
164
169
  LinearWavyProgressIndicator(
165
170
  progress = { props.progress },
166
171
  color = color,
167
172
  trackColor = trackColor,
168
173
  stopSize = stopSize,
174
+ amplitude = props.amplitude.toAmplitude(),
175
+ wavelength = wavelength,
176
+ waveSpeed = props.waveSpeed?.dp ?: wavelength,
169
177
  modifier = modifier
170
178
  )
171
179
  } else {
180
+ val wavelength = props.wavelength?.dp ?: WavyProgressIndicatorDefaults.LinearIndeterminateWavelength
181
+
172
182
  LinearWavyProgressIndicator(
173
183
  color = color,
174
184
  trackColor = trackColor,
185
+ amplitude = props.amplitude ?: IndeterminateAmplitude,
186
+ wavelength = wavelength,
187
+ waveSpeed = props.waveSpeed?.dp ?: wavelength,
175
188
  modifier = modifier
176
189
  )
177
190
  }
@@ -186,6 +199,9 @@ data class CircularWavyProgressIndicatorProps(
186
199
  val progress: Float? = null,
187
200
  val color: Color? = null,
188
201
  val trackColor: Color? = null,
202
+ val amplitude: Float? = null,
203
+ val wavelength: Float? = null,
204
+ val waveSpeed: Float? = null,
189
205
  val modifiers: ModifierList = emptyList()
190
206
  ) : ComposeProps
191
207
 
@@ -193,6 +209,8 @@ data class CircularWavyProgressIndicatorProps(
193
209
  fun FunctionalComposableScope.CircularWavyProgressIndicatorContent(props: CircularWavyProgressIndicatorProps) {
194
210
  val modifier = ModifierRegistry.applyModifiers(props.modifiers, appContext, composableScope, globalEventDispatcher)
195
211
  val color = props.color.composeOrNull ?: ProgressIndicatorDefaults.circularColor
212
+ val wavelength = props.wavelength?.dp ?: WavyProgressIndicatorDefaults.CircularWavelength
213
+ val waveSpeed = props.waveSpeed?.dp ?: wavelength
196
214
 
197
215
  if (props.progress != null) {
198
216
  val trackColor = props.trackColor.composeOrNull ?: ProgressIndicatorDefaults.circularDeterminateTrackColor
@@ -201,6 +219,9 @@ fun FunctionalComposableScope.CircularWavyProgressIndicatorContent(props: Circul
201
219
  progress = { props.progress },
202
220
  color = color,
203
221
  trackColor = trackColor,
222
+ amplitude = props.amplitude.toAmplitude(),
223
+ wavelength = wavelength,
224
+ waveSpeed = waveSpeed,
204
225
  modifier = modifier
205
226
  )
206
227
  } else {
@@ -209,6 +230,9 @@ fun FunctionalComposableScope.CircularWavyProgressIndicatorContent(props: Circul
209
230
  CircularWavyProgressIndicator(
210
231
  color = color,
211
232
  trackColor = trackColor,
233
+ amplitude = props.amplitude ?: IndeterminateAmplitude,
234
+ wavelength = wavelength,
235
+ waveSpeed = waveSpeed,
212
236
  modifier = modifier
213
237
  )
214
238
  }
@@ -218,6 +242,13 @@ fun FunctionalComposableScope.CircularWavyProgressIndicatorContent(props: Circul
218
242
 
219
243
  // Utility
220
244
 
245
+ private const val IndeterminateAmplitude = 1f
246
+
247
+ private fun Float?.toAmplitude(): (Float) -> Float {
248
+ val amplitude = this ?: return WavyProgressIndicatorDefaults.indicatorAmplitude
249
+ return { amplitude }
250
+ }
251
+
221
252
  private fun String?.toStrokeCap(): StrokeCap? {
222
253
  return when (this?.lowercase()) {
223
254
  "round" -> StrokeCap.Round
@@ -14,7 +14,9 @@ import androidx.compose.runtime.Composable
14
14
  import androidx.compose.runtime.MutableState
15
15
  import androidx.compose.runtime.mutableStateOf
16
16
  import androidx.compose.ui.Modifier
17
+ import androidx.compose.ui.layout.onGloballyPositioned
17
18
  import androidx.compose.ui.layout.onSizeChanged
19
+ import androidx.compose.ui.layout.positionInRoot
18
20
  import androidx.compose.ui.platform.LocalDensity
19
21
  import androidx.compose.ui.unit.IntSize
20
22
  import androidx.compose.ui.viewinterop.AndroidView
@@ -39,6 +41,8 @@ import expo.modules.kotlin.views.OptimizedComposeProps
39
41
  @OptimizedComposeProps
40
42
  internal data class RNHostViewProps(
41
43
  val matchContents: MutableState<Boolean?> = mutableStateOf(null),
44
+ // Adds LeafNode and MeasurableYogaNode trait in Shadow node
45
+ val expoInternalSizeFromChildren: MutableState<Boolean?> = mutableStateOf(null),
42
46
  val modifiers: ModifierList = emptyList()
43
47
  ) : ComposeProps
44
48
 
@@ -54,6 +58,31 @@ internal class RNHostView(context: Context, appContext: AppContext) :
54
58
  private val childViewState = mutableStateOf<View?>(null)
55
59
  private val wrapperState = mutableStateOf<TouchDispatchingRootViewGroup?>(null)
56
60
 
61
+ /**
62
+ * Whether this view owns its subtree's touches. False everywhere except content presented in its
63
+ * own window, where no React root sits above us to dispatch.
64
+ *
65
+ * Snapshot state because `publishContentOriginModifier` reads it during composition, and the prop
66
+ * can arrive after the first composition. A plain field would leave that composition publishing an
67
+ * origin from a coordinate space this view no longer measures from.
68
+ */
69
+ private val layoutRootState = mutableStateOf(false)
70
+ private val layoutRoot: Boolean
71
+ get() = layoutRootState.value
72
+
73
+ private var lastContentOriginX = Double.NaN
74
+ private var lastContentOriginY = Double.NaN
75
+
76
+ internal fun setLayoutRoot(value: Boolean) {
77
+ val changed = layoutRootState.value != value
78
+ layoutRootState.value = value
79
+ wrapperState.value?.dispatchesTouchesToJS = value
80
+ if (changed && value) {
81
+ // As a layout root this view stops publishing an origin, so drop the one it already published.
82
+ clearPublishedContentOrigin()
83
+ }
84
+ }
85
+
57
86
  private val childSizeState = mutableStateOf(IntSize.Zero)
58
87
  private val childLayoutListener = View.OnLayoutChangeListener { _, l, t, r, b, _, _, _, _ ->
59
88
  childSizeState.value = IntSize(r - l, b - t)
@@ -68,6 +97,7 @@ internal class RNHostView(context: Context, appContext: AppContext) :
68
97
  }
69
98
  child.addOnLayoutChangeListener(childLayoutListener)
70
99
  val wrapper = TouchDispatchingRootViewGroup(child.context).apply {
100
+ dispatchesTouchesToJS = layoutRoot
71
101
  val reactContext = child.context as? ReactContext
72
102
  if (reactContext != null) {
73
103
  eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, child.id)
@@ -83,6 +113,7 @@ internal class RNHostView(context: Context, appContext: AppContext) :
83
113
  if (view == childViewState.value) {
84
114
  view.removeOnLayoutChangeListener(childLayoutListener)
85
115
  wrapperState.value?.removeView(view)
116
+ clearPublishedContentOrigin()
86
117
  childViewState.value = null
87
118
  wrapperState.value = null
88
119
  } else {
@@ -95,10 +126,22 @@ internal class RNHostView(context: Context, appContext: AppContext) :
95
126
  child.removeOnLayoutChangeListener(childLayoutListener)
96
127
  wrapperState.value?.removeView(child)
97
128
  }
129
+ clearPublishedContentOrigin()
98
130
  childViewState.value = null
99
131
  wrapperState.value = null
100
132
  }
101
133
 
134
+ /**
135
+ * The removal paths above do not run when React unmounts this view with its child still attached,
136
+ * so the module also calls this when the view is destroyed in OnViewDestroys. Without it the entry would stay in the
137
+ * process-global registry
138
+ */
139
+ internal fun clearPublishedContentOrigin() {
140
+ lastContentOriginX = Double.NaN
141
+ lastContentOriginY = Double.NaN
142
+ shadowNodeProxy.clearContentOrigin()
143
+ }
144
+
102
145
  @Composable
103
146
  override fun ComposableScope.Content() {
104
147
  val matchContents = props.matchContents.value ?: false
@@ -113,12 +156,15 @@ internal class RNHostView(context: Context, appContext: AppContext) :
113
156
  .fillMaxSize()
114
157
  .then(reportSizeToYogaNodeModifier())
115
158
  }
159
+ // Origin last: a chain applies outside-in, so a caller `padding` or `offset` has to shift the
160
+ // content before it is read.
116
161
  val modifiers = sizingModifier
117
162
  .then(ModifierRegistry.applyModifiers(props.modifiers, appContext, scope, globalEventDispatcher))
163
+ .then(publishContentOriginModifier())
118
164
 
119
165
  AndroidView(
120
166
  factory = {
121
- (wrapper.parent as? ViewGroup)?.removeView(wrapper)
167
+ detachForReuse(wrapper)
122
168
  wrapper
123
169
  },
124
170
  modifier = modifiers
@@ -144,6 +190,32 @@ internal class RNHostView(context: Context, appContext: AppContext) :
144
190
  }
145
191
  }
146
192
 
193
+ /**
194
+ * Publishes where Compose placed this view inside its `Host`, which Yoga has no way to know:
195
+ * Yoga puts the box at the `Host`'s origin while Compose may draw it anywhere inside. Without
196
+ * this, `measure()` reports the Yoga box, this makes Pressable cancel its press when the finger moves.
197
+ */
198
+ @Composable
199
+ private fun publishContentOriginModifier(): Modifier {
200
+ // When layoutRoot is true, we don't set content origin because view acts like root and measure uses the view's origin as the origin.
201
+ if (layoutRoot) {
202
+ return Modifier
203
+ }
204
+ val density = LocalDensity.current
205
+ return Modifier.onGloballyPositioned { coordinates ->
206
+ val position = coordinates.positionInRoot()
207
+ with(density) {
208
+ val x = position.x.toDp().value.toDouble()
209
+ val y = position.y.toDp().value.toDouble()
210
+ if (x != lastContentOriginX || y != lastContentOriginY) {
211
+ lastContentOriginX = x
212
+ lastContentOriginY = y
213
+ shadowNodeProxy.setContentOrigin(x, y)
214
+ }
215
+ }
216
+ }
217
+ }
218
+
147
219
  // Sets Yoga node size from Compose view size
148
220
  // Listens Compose view size changes and updates the Yoga node size
149
221
  @Composable
@@ -160,6 +232,21 @@ internal class RNHostView(context: Context, appContext: AppContext) :
160
232
  }
161
233
  }
162
234
 
235
+ /**
236
+ * Removes [wrapper] from the view that currently contains it, and clears its bounds.
237
+ *
238
+ * `AndroidView` hands back this same wrapper every time Compose rebuilds it, but Compose puts it
239
+ * inside a brand new container each time, so it has to leave the old one first. A removed view keeps
240
+ * the bounds that container gave it, and React Native finds touch targets by bounds — so until
241
+ * Compose lays the wrapper out again it would claim a screen area it no longer occupies and swallow
242
+ * presses meant for whatever is really there. Clearing the bounds keeps it out of the way.
243
+ * This causes https://github.com/expo/expo/issues/46386
244
+ */
245
+ internal fun detachForReuse(wrapper: View) {
246
+ (wrapper.parent as? ViewGroup)?.removeView(wrapper)
247
+ wrapper.layout(0, 0, 0, 0)
248
+ }
249
+
163
250
  /**
164
251
  * A thin FrameLayout that intercepts touch events and dispatches them to JS via
165
252
  * JSTouchDispatcher/JSPointerDispatcher, replicating the pattern from React Native's
@@ -185,11 +272,26 @@ private class TouchDispatchingRootViewGroup(
185
272
  // True if the sheet consumed scroll on the most recent drag frame; drives the settle decision.
186
273
  private var sheetMovingOnLastDragFrame = false
187
274
 
275
+ // True once a descendant asked us to stop ancestors from intercepting this gesture, so a later
276
+ // release from a different descendant doesn't reach Compose. See requestDisallowInterceptTouchEvent.
277
+ private var forwardedDisallowIntercept = false
278
+
188
279
  // True once a fling was dispatched this gesture, so the gentle-release settle doesn't double-fire.
189
280
  private var flingHandledThisGesture = false
190
281
 
191
282
  var eventDispatcher: EventDispatcher? = null
192
283
 
284
+ /**
285
+ * Whether this view streams its subtree's touches to JavaScript.
286
+ *
287
+ * When false, an ancestor React root is already streaming them, and dispatching a second time
288
+ * would produce two streams in two coordinate spaces — the ancestor's moves land outside the
289
+ * host-relative responder region and `Pressable` drops the press on the first movement. The
290
+ * nested-scroll cooperation below stays active either way; only the JavaScript dispatch and the
291
+ * ancestor suppression are conditional.
292
+ */
293
+ var dispatchesTouchesToJS: Boolean = false
294
+
193
295
  private val reactContext: ThemedReactContext
194
296
  get() = context as ThemedReactContext
195
297
 
@@ -215,17 +317,32 @@ private class TouchDispatchingRootViewGroup(
215
317
  }
216
318
 
217
319
  override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
320
+ if (ev.actionMasked == MotionEvent.ACTION_CANCEL && !dispatchesTouchesToJS) {
321
+ // Compose cancels this subtree when a gesture detector above it claims the gesture. The
322
+ // ancestor root, which dispatches this subtree's touches, keeps streaming moves, so a
323
+ // `Pressable` still fires on release. Tell it a native child took over.
324
+ //
325
+ // No child: the gesture is gone from here, so no end call follows, and naming one would leave
326
+ // the root's pointer dispatcher armed for good. Its pointer stream stays live as a result.
327
+ notifyAncestorRootViews { it.onChildStartedNativeGesture(null, ev) }
328
+ }
218
329
  if (ev.actionMasked == MotionEvent.ACTION_DOWN) {
219
330
  // Ancestor React roots (the surface root, outer hosts) also see this gesture and dispatch a
220
331
  // duplicate JS touch stream in their own coordinate space. Their moves land outside the
221
332
  // host-relative responder region and break `Pressable`. Tell them a native child owns the
222
333
  // gesture, before dispatching our own start, so their stream ends ahead of it.
223
- notifyAncestorRootViews { it.onChildStartedNativeGesture(this, ev) }
334
+ //
335
+ // Only when we are the one dispatching. Otherwise their stream is the only one there is, and
336
+ // suppressing it would leave this subtree with no touches at all.
337
+ if (dispatchesTouchesToJS) {
338
+ notifyAncestorRootViews { it.onChildStartedNativeGesture(this, ev) }
339
+ }
224
340
  // dispatchTouchEvent is the true start of every gesture, so reset all per-gesture state here.
225
341
  getLocationInWindow(gestureStartLocation)
226
342
  trackingGestureOffset = true
227
343
  sheetMovingOnLastDragFrame = false
228
344
  flingHandledThisGesture = false
345
+ forwardedDisallowIntercept = false
229
346
  }
230
347
 
231
348
  // While a nested scroll is in flight the sheet may be sliding this whole view up/down. Re-express
@@ -247,7 +364,9 @@ private class TouchDispatchingRootViewGroup(
247
364
 
248
365
  if (ev.actionMasked == MotionEvent.ACTION_UP || ev.actionMasked == MotionEvent.ACTION_CANCEL) {
249
366
  trackingGestureOffset = false
250
- notifyAncestorRootViews { it.onChildEndedNativeGesture(this, ev) }
367
+ if (dispatchesTouchesToJS) {
368
+ notifyAncestorRootViews { it.onChildEndedNativeGesture(this, ev) }
369
+ }
251
370
  }
252
371
  return handled
253
372
  }
@@ -261,35 +380,49 @@ private class TouchDispatchingRootViewGroup(
261
380
  }
262
381
 
263
382
  override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
264
- eventDispatcher?.let { dispatcher ->
265
- jsTouchDispatcher.handleTouchEvent(event, dispatcher, reactContext)
266
- jsPointerDispatcher?.handleMotionEvent(event, dispatcher, true)
383
+ if (dispatchesTouchesToJS) {
384
+ eventDispatcher?.let { dispatcher ->
385
+ jsTouchDispatcher.handleTouchEvent(event, dispatcher, reactContext)
386
+ jsPointerDispatcher?.handleMotionEvent(event, dispatcher, true)
387
+ }
267
388
  }
268
389
  return super.onInterceptTouchEvent(event)
269
390
  }
270
391
 
271
392
  @SuppressLint("ClickableViewAccessibility")
272
393
  override fun onTouchEvent(event: MotionEvent): Boolean {
273
- eventDispatcher?.let { dispatcher ->
274
- jsTouchDispatcher.handleTouchEvent(event, dispatcher, reactContext)
275
- jsPointerDispatcher?.handleMotionEvent(event, dispatcher, false)
394
+ if (dispatchesTouchesToJS) {
395
+ eventDispatcher?.let { dispatcher ->
396
+ jsTouchDispatcher.handleTouchEvent(event, dispatcher, reactContext)
397
+ jsPointerDispatcher?.handleMotionEvent(event, dispatcher, false)
398
+ }
276
399
  }
277
400
  super.onTouchEvent(event)
278
401
  return true
279
402
  }
280
403
 
281
404
  override fun onInterceptHoverEvent(event: MotionEvent): Boolean {
282
- eventDispatcher?.let { jsPointerDispatcher?.handleMotionEvent(event, it, true) }
405
+ if (dispatchesTouchesToJS) {
406
+ eventDispatcher?.let { jsPointerDispatcher?.handleMotionEvent(event, it, true) }
407
+ }
283
408
  return super.onInterceptHoverEvent(event)
284
409
  }
285
410
 
286
411
  override fun onHoverEvent(event: MotionEvent): Boolean {
287
- eventDispatcher?.let { jsPointerDispatcher?.handleMotionEvent(event, it, false) }
412
+ if (dispatchesTouchesToJS) {
413
+ eventDispatcher?.let { jsPointerDispatcher?.handleMotionEvent(event, it, false) }
414
+ }
288
415
  return super.onHoverEvent(event)
289
416
  }
290
417
 
291
418
  @OptIn(UnstableReactNativeAPI::class)
292
419
  override fun onChildStartedNativeGesture(childView: View?, ev: MotionEvent) {
420
+ if (!dispatchesTouchesToJS) {
421
+ // React Native notifies only the first RootView above the child, which is us. Relay it to the
422
+ // root that actually dispatches, or a Pressable inside a hosted scrollable fires after a scroll.
423
+ notifyAncestorRootViews { it.onChildStartedNativeGesture(childView, ev) }
424
+ return
425
+ }
293
426
  eventDispatcher?.let { dispatcher ->
294
427
  jsTouchDispatcher.onChildStartedNativeGesture(ev, dispatcher, reactContext)
295
428
  jsPointerDispatcher?.onChildStartedNativeGesture(childView, ev, dispatcher)
@@ -297,6 +430,10 @@ private class TouchDispatchingRootViewGroup(
297
430
  }
298
431
 
299
432
  override fun onChildEndedNativeGesture(childView: View, ev: MotionEvent) {
433
+ if (!dispatchesTouchesToJS) {
434
+ notifyAncestorRootViews { it.onChildEndedNativeGesture(childView, ev) }
435
+ return
436
+ }
300
437
  eventDispatcher?.let { jsTouchDispatcher.onChildEndedNativeGesture(ev, it) }
301
438
  jsPointerDispatcher?.onChildEndedNativeGesture()
302
439
  }
@@ -310,6 +447,19 @@ private class TouchDispatchingRootViewGroup(
310
447
  // yields. But don't call super: setting our own FLAG_DISALLOW_INTERCEPT would skip
311
448
  // onInterceptTouchEvent, which must keep firing to dispatch touches to JS (the reason #43716
312
449
  // added this override).
450
+ //
451
+ // Never forward a release after a claim in the same gesture. Compose's `AndroidView` interop
452
+ // cancels this subtree when the flag goes true then false inside one move event: it dispatches
453
+ // the move and consumes it on the initial pass, then reads that same consumption on the final
454
+ // pass as "Compose claimed the gesture" and sends ACTION_CANCEL down here. `ReactEditText` makes
455
+ // exactly that flip — it claims on ACTION_DOWN and releases on the first ACTION_MOVE — so a drag
456
+ // that starts on a TextInput killed the hosted ScrollView. The release is meant for the React
457
+ // Native ancestors inside this wrapper, which still get it; Compose clears its own flag when the
458
+ // gesture ends.
459
+ if (!disallowIntercept && forwardedDisallowIntercept) {
460
+ return
461
+ }
462
+ forwardedDisallowIntercept = disallowIntercept
313
463
  parent?.requestDisallowInterceptTouchEvent(disallowIntercept)
314
464
  }
315
465
 
@@ -0,0 +1,18 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare const PresentedContentContext: import("react").Context<boolean>;
3
+ /**
4
+ * Whether the surrounding content is presented in its own view controller — a sheet, a popover
5
+ * — rather than in the React Native surface.
6
+ *
7
+ * `RNHostView` needs this because nothing above such content dispatches React Native touches: the
8
+ * surface root is not one of its ancestors. A hosted view there has to dispatch its own touches and
9
+ * be the origin its content is measured from, and both of those come from a single `layoutRoot`
10
+ * prop.
11
+ *
12
+ * Defaults to `false`, so content that is not wrapped keeps deferring to the surface root.
13
+ */
14
+ export declare function useIsPresentedInOwnWindow(): boolean;
15
+ export declare function PresentedContent({ children }: {
16
+ children: ReactNode;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=PresentedContentContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresentedContentContext.d.ts","sourceRoot":"","sources":["../src/PresentedContentContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,eAAO,MAAM,uBAAuB,kCAAuB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAErE"}
@@ -1 +1 @@
1
- {"version":3,"file":"PagerView.android.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.android.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAO/D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CA8H9C"}
1
+ {"version":3,"file":"PagerView.android.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.android.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAO/D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAwH9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/AlertDialog/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGzF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA2BD;;GAEG;AACH,iBAAS,gBAAgB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAE7D;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAE5D;AAED;;GAEG;AACH,iBAAS,wBAAwB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAErE;AAED;;GAEG;AACH,iBAAS,wBAAwB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAErE;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAE5D;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,2CAGpD;kBAHQ,oBAAoB;;;;;;;AAW7B,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,CAAC;AAG/C,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/AlertDialog/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGzF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA2BD;;GAEG;AACH,iBAAS,gBAAgB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAE7D;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAE5D;AAED;;GAEG;AACH,iBAAS,wBAAwB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAErE;AAED;;GAEG;AACH,iBAAS,wBAAwB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAErE;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAE5D;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,2CAOpD;kBAPQ,oBAAoB;;;;;;;AAe7B,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,CAAC;AAG/C,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/BasicAlertDialog/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGzF,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAyBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAE5D;AAGD,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/BasicAlertDialog/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGzF,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAyBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAO5D;AAGD,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/DropdownMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAclD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAWD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAEnD;yBAFe,KAAK;;;AAKrB;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAErD;yBAFe,OAAO;;;AAKvB;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAErD;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAW7C;kBAXQ,YAAY;;;;;AAiBrB,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/DropdownMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAclD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAWD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAOnD;yBAPe,KAAK;;;AAUrB;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAErD;yBAFe,OAAO;;;AAKvB;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAErD;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAW7C;kBAXQ,YAAY;;;;;AAiBrB,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExposedDropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CAUlE"}
1
+ {"version":3,"file":"ExposedDropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CAWlE"}
@@ -1,3 +1,4 @@
1
+ import { type Ref } from 'react';
1
2
  import { type ColorSchemeName, type ColorValue, type StyleProp, type ViewStyle } from 'react-native';
2
3
  import { type PrimitiveBaseProps } from '../layout';
3
4
  export interface HostProps extends PrimitiveBaseProps {
@@ -54,6 +55,8 @@ export interface HostProps extends PrimitiveBaseProps {
54
55
  children: React.ReactNode;
55
56
  style?: StyleProp<ViewStyle>;
56
57
  pointerEvents?: 'box-none' | 'none' | 'box-only' | 'auto';
58
+ /** @hidden */
59
+ ref?: Ref<any>;
57
60
  }
58
61
  export declare function Host(props: HostProps): import("react/jsx-runtime").JSX.Element;
59
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Host/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAEvE;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAEtF;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;IAEhD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CAC3D;AAcD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,2CAuCpC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Host/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAEvE;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAEtF;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;IAEhD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAC1D,cAAc;IACd,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;CAChB;AAeD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,2CA6CpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ModalBottomSheet/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B;;;OAGG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAmCD;;GAEG;AACH,iBAAS,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,2CAE9D;kBAFQ,yBAAyB;4BAPP;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE;;AAalD,eAAO,MAAM,gBAAgB,kCAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ModalBottomSheet/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B;;;OAGG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAmCD;;GAEG;AACH,iBAAS,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,2CAQ9D;kBARQ,yBAAyB;4BAPP;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE;;AAmBlD,eAAO,MAAM,gBAAgB,kCAA4B,CAAC"}
@@ -85,7 +85,30 @@ export interface CircularProgressIndicatorProps extends ProgressCommonConfig {
85
85
  * Matches the Jetpack Compose `CircularProgressIndicator`.
86
86
  */
87
87
  export declare const CircularProgressIndicator: import("react").ComponentType<CircularProgressIndicatorProps>;
88
- export interface LinearWavyProgressIndicatorProps extends ProgressCommonConfig {
88
+ /**
89
+ * Wave configuration shared by the wavy progress indicator variants.
90
+ */
91
+ export type WavyProgressCommonConfig = {
92
+ /**
93
+ * Height of the wave, where `0` draws a flat line and `1` draws the full wave height.
94
+ * When set, the amplitude stays the same across the whole track.
95
+ * When omitted, a determinate indicator uses the Material 3 default, which flattens the wave as
96
+ * progress approaches `0` and `1`.
97
+ * An indeterminate indicator defaults to the full wave height.
98
+ */
99
+ amplitude?: number;
100
+ /**
101
+ * Length of a single wave in dp. `CircularWavyProgressIndicator` rounds this to fit a whole
102
+ * number of waves around the ring, so the wave it draws can be slightly shorter or longer.
103
+ */
104
+ wavelength?: number;
105
+ /**
106
+ * Speed of the wave in dp per second. Defaults to `wavelength`, which advances the wave by one
107
+ * wavelength per second. Set it to `0` to stop the wave from moving.
108
+ */
109
+ waveSpeed?: number;
110
+ };
111
+ export interface LinearWavyProgressIndicatorProps extends ProgressCommonConfig, WavyProgressCommonConfig {
89
112
  /**
90
113
  * Size of the stop indicator in dp at the end of the determinate progress track.
91
114
  */
@@ -97,7 +120,7 @@ export interface LinearWavyProgressIndicatorProps extends ProgressCommonConfig {
97
120
  * Matches the Jetpack Compose `LinearWavyProgressIndicator`.
98
121
  */
99
122
  export declare const LinearWavyProgressIndicator: import("react").ComponentType<LinearWavyProgressIndicatorProps>;
100
- export interface CircularWavyProgressIndicatorProps extends ProgressCommonConfig {
123
+ export interface CircularWavyProgressIndicatorProps extends ProgressCommonConfig, WavyProgressCommonConfig {
101
124
  }
102
125
  /**
103
126
  * A circular progress indicator with wavy animation style.