@expo/ui 0.2.0-beta.2 → 0.2.0-beta.3

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 (76) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/ChipView.kt +5 -2
  4. package/android/src/main/java/expo/modules/ui/button/Button.kt +19 -8
  5. package/android/src/main/java/expo/modules/ui/menu/ContextMenu.kt +26 -4
  6. package/android/src/main/java/expo/modules/ui/menu/ContextMenuRecords.kt +2 -0
  7. package/build/jetpack-compose/Button/index.d.ts +14 -2
  8. package/build/jetpack-compose/Button/index.d.ts.map +1 -1
  9. package/build/jetpack-compose/Button/types.d.ts +1 -1
  10. package/build/jetpack-compose/Button/types.d.ts.map +1 -1
  11. package/build/jetpack-compose/ContextMenu/Submenu.d.ts +17 -0
  12. package/build/jetpack-compose/ContextMenu/Submenu.d.ts.map +1 -0
  13. package/build/jetpack-compose/ContextMenu/index.d.ts +3 -15
  14. package/build/jetpack-compose/ContextMenu/index.d.ts.map +1 -1
  15. package/build/jetpack-compose/ContextMenu/utils.d.ts.map +1 -1
  16. package/build/swift-ui/LabeledContent/index.d.ts +16 -0
  17. package/build/swift-ui/LabeledContent/index.d.ts.map +1 -0
  18. package/build/swift-ui/index.d.ts +1 -0
  19. package/build/swift-ui/index.d.ts.map +1 -1
  20. package/build/swift-ui/modifiers/index.d.ts +11 -8
  21. package/build/swift-ui/modifiers/index.d.ts.map +1 -1
  22. package/expo-module.config.json +1 -1
  23. package/ios/Button/Button.swift +7 -2
  24. package/ios/ExpoUIModule.swift +1 -0
  25. package/ios/LabeledContentView.swift +27 -0
  26. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2-sources.jar → 0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3-sources.jar} +0 -0
  27. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3-sources.jar.md5 +1 -0
  28. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3-sources.jar.sha1 +1 -0
  29. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3-sources.jar.sha256 +1 -0
  30. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3-sources.jar.sha512 +1 -0
  31. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.aar +0 -0
  32. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.aar.md5 +1 -0
  33. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.aar.sha1 +1 -0
  34. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.aar.sha256 +1 -0
  35. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.aar.sha512 +1 -0
  36. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.module → 0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.module} +22 -22
  37. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.module.md5 +1 -0
  38. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.module.sha1 +1 -0
  39. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.module.sha256 +1 -0
  40. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.module.sha512 +1 -0
  41. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.pom → 0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.pom} +1 -1
  42. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.pom.md5 +1 -0
  43. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.pom.sha1 +1 -0
  44. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.pom.sha256 +1 -0
  45. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.3/expo.modules.ui-0.2.0-beta.3.pom.sha512 +1 -0
  46. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  47. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  48. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  49. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  50. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  51. package/package.json +2 -2
  52. package/src/jetpack-compose/Button/index.tsx +21 -4
  53. package/src/jetpack-compose/Button/types.ts +3 -0
  54. package/src/jetpack-compose/ContextMenu/Submenu.tsx +21 -0
  55. package/src/jetpack-compose/ContextMenu/index.tsx +3 -19
  56. package/src/jetpack-compose/ContextMenu/utils.ts +3 -2
  57. package/src/swift-ui/LabeledContent/index.tsx +34 -0
  58. package/src/swift-ui/index.tsx +1 -0
  59. package/src/swift-ui/modifiers/index.ts +32 -8
  60. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2-sources.jar.md5 +0 -1
  61. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2-sources.jar.sha1 +0 -1
  62. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2-sources.jar.sha256 +0 -1
  63. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2-sources.jar.sha512 +0 -1
  64. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.aar +0 -0
  65. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.aar.md5 +0 -1
  66. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.aar.sha1 +0 -1
  67. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.aar.sha256 +0 -1
  68. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.aar.sha512 +0 -1
  69. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.module.md5 +0 -1
  70. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.module.sha1 +0 -1
  71. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.module.sha256 +0 -1
  72. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.module.sha512 +0 -1
  73. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.pom.md5 +0 -1
  74. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.pom.sha1 +0 -1
  75. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.pom.sha256 +0 -1
  76. package/local-maven-repo/expo/modules/ui/expo.modules.ui/0.2.0-beta.2/expo.modules.ui-0.2.0-beta.2.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,20 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 0.2.0-beta.3 — 2025-09-16
14
+
15
+ ### 🎉 New features
16
+
17
+ - [iOS] Add `LabeledContent` view ([#39463](https://github.com/expo/expo/pull/39617) by [@betomoedano](https://github.com/betomoedano))
18
+
19
+ ### 🐛 Bug fixes
20
+
21
+ - [ios] tvOS 26 compile fix and card button. ([#39639](https://github.com/expo/expo/pull/39639) by [@douglowder](https://github.com/douglowder))
22
+
23
+ ### 💡 Others
24
+
25
+ - [Android] **Button**: Deprecate `systemImage` prop in favor of `leadingIcon` and `trailingIcon` for more flexible icon placement. The `systemImage` prop will continue to work as `leadingIcon` for backward compatibility. ([#39095](https://github.com/expo/expo/pull/39095) by [@benjaminkomen](https://github.com/benjaminkomen))
26
+
13
27
  ## 0.2.0-beta.2 — 2025-09-12
14
28
 
15
29
  _This version does not introduce any user-facing changes._
@@ -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 = '0.2.0-beta.2'
15
+ version = '0.2.0-beta.3'
16
16
 
17
17
  android {
18
18
  namespace "expo.modules.ui"
19
19
  defaultConfig {
20
20
  versionCode 1
21
- versionName "0.2.0-beta.2"
21
+ versionName "0.2.0-beta.3"
22
22
  }
23
23
  buildFeatures {
24
24
  compose true
@@ -85,7 +85,9 @@ class ChipView(context: Context, appContext: AppContext) :
85
85
  {
86
86
  ChipIcon(iconName = "filled.Done", iconSize = iconSize)
87
87
  }
88
- } else null,
88
+ } else {
89
+ null
90
+ },
89
91
  trailingIcon = {
90
92
  trailingIcon?.let {
91
93
  ChipIcon(iconName = it, iconSize = iconSize)
@@ -166,6 +168,7 @@ private fun ChipText(label: String, textStyle: String = "labelSmall") {
166
168
  )
167
169
  }
168
170
  }
171
+
169
172
  @Composable
170
173
  private fun ChipIcon(
171
174
  iconName: String,
@@ -183,4 +186,4 @@ private fun ChipIcon(
183
186
  .padding(end = 4.dp)
184
187
  )
185
188
  }
186
- }
189
+ }
@@ -60,7 +60,8 @@ data class ButtonProps(
60
60
  val text: MutableState<String> = mutableStateOf(""),
61
61
  val variant: MutableState<ButtonVariant?> = mutableStateOf(ButtonVariant.DEFAULT),
62
62
  val elementColors: MutableState<ButtonColors> = mutableStateOf(ButtonColors()),
63
- val systemImage: MutableState<String?> = mutableStateOf(null),
63
+ val leadingIcon: MutableState<String?> = mutableStateOf(null),
64
+ val trailingIcon: MutableState<String?> = mutableStateOf(null),
64
65
  val disabled: MutableState<Boolean> = mutableStateOf(false),
65
66
  val modifiers: MutableState<List<ExpoModifier>> = mutableStateOf(emptyList())
66
67
  ) : ComposeProps
@@ -150,7 +151,8 @@ class Button(context: Context, appContext: AppContext) :
150
151
  val (variant) = props.variant
151
152
  val (text) = props.text
152
153
  val (colors) = props.elementColors
153
- val (systemImage) = props.systemImage
154
+ val (leadingIcon) = props.leadingIcon
155
+ val (trailingIcon) = props.trailingIcon
154
156
  val (disabled) = props.disabled
155
157
  DynamicTheme {
156
158
  StyledButton(
@@ -160,19 +162,28 @@ class Button(context: Context, appContext: AppContext) :
160
162
  onPress = { onButtonPressed.invoke(ButtonPressedEvent()) },
161
163
  modifier = Modifier.fromExpoModifiers(props.modifiers.value)
162
164
  ) {
163
- if (systemImage != null) {
164
- Row(verticalAlignment = Alignment.CenterVertically) {
165
- getImageVector(systemImage)?.let {
165
+ Row(verticalAlignment = Alignment.CenterVertically) {
166
+ leadingIcon?.let { iconName ->
167
+ getImageVector(iconName)?.let {
166
168
  Icon(
167
169
  it,
168
- contentDescription = systemImage,
170
+ contentDescription = iconName,
169
171
  modifier = Modifier.padding(end = 8.dp)
170
172
  )
171
173
  }
172
- Text(text)
173
174
  }
174
- } else {
175
+
175
176
  Text(text)
177
+
178
+ trailingIcon?.let { iconName ->
179
+ getImageVector(iconName)?.let {
180
+ Icon(
181
+ it,
182
+ contentDescription = iconName,
183
+ modifier = Modifier.padding(start = 8.dp)
184
+ )
185
+ }
186
+ }
176
187
  }
177
188
  }
178
189
  }
@@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.wrapContentSize
13
13
  import androidx.compose.material3.DropdownMenu
14
14
  import androidx.compose.material3.DropdownMenuItem
15
15
  import androidx.compose.material3.HorizontalDivider
16
+ import androidx.compose.material3.Icon
16
17
  import androidx.compose.material3.MaterialTheme
17
18
  import androidx.compose.material3.MenuDefaults
18
19
  import androidx.compose.material3.MenuItemColors
@@ -34,6 +35,7 @@ import expo.modules.ui.DynamicTheme
34
35
  import expo.modules.ui.ThemedHybridSwitch
35
36
  import expo.modules.ui.compose
36
37
  import expo.modules.ui.composeOrNull
38
+ import expo.modules.ui.getImageVector
37
39
 
38
40
  @Composable
39
41
  private fun SectionTitle(text: String) {
@@ -58,15 +60,35 @@ fun FlatMenu(elements: Array<ContextMenuElement>, sectionTitle: String?, dispatc
58
60
  DropdownMenuItem(
59
61
  colors = MenuItemColors(
60
62
  textColor = it.elementColors.contentColor.compose,
61
- leadingIconColor = null.compose,
62
- trailingIconColor = null.compose,
63
+ leadingIconColor = it.elementColors.contentColor.compose,
64
+ trailingIconColor = it.elementColors.contentColor.compose,
63
65
  disabledTextColor = it.elementColors.disabledContentColor.compose,
64
- disabledLeadingIconColor = null.compose,
65
- disabledTrailingIconColor = null.compose
66
+ disabledLeadingIconColor = it.elementColors.disabledContentColor.compose,
67
+ disabledTrailingIconColor = it.elementColors.disabledContentColor.compose
66
68
  ),
67
69
  enabled = !it.disabled,
68
70
  modifier = Modifier.background(it.elementColors.containerColor.compose),
69
71
  text = { Text(it.text) },
72
+ leadingIcon = it.leadingIcon?.let { iconName ->
73
+ {
74
+ getImageVector(iconName)?.let { imageVector ->
75
+ Icon(
76
+ imageVector = imageVector,
77
+ contentDescription = iconName
78
+ )
79
+ }
80
+ }
81
+ },
82
+ trailingIcon = it.trailingIcon?.let { iconName ->
83
+ {
84
+ getImageVector(iconName)?.let { imageVector ->
85
+ Icon(
86
+ imageVector = imageVector,
87
+ contentDescription = iconName
88
+ )
89
+ }
90
+ }
91
+ },
70
92
  onClick = {
71
93
  dispatchers.buttonPressed(ContextMenuButtonPressedEvent(id))
72
94
  expanded.value = false
@@ -42,6 +42,8 @@ class ContextMenuButtonProps(
42
42
  @Field val text: String = "",
43
43
  @Field val variant: ButtonVariant? = ButtonVariant.DEFAULT,
44
44
  @Field val elementColors: ButtonColors = ButtonColors(),
45
+ @Field val leadingIcon: String? = null,
46
+ @Field val trailingIcon: String? = null,
45
47
  @Field val disabled: Boolean = false
46
48
  ) : Record, Serializable
47
49
 
@@ -21,9 +21,20 @@ export type ButtonProps = {
21
21
  * A callback that is called when the button is pressed.
22
22
  */
23
23
  onPress?: () => void;
24
+ /**
25
+ * A string describing the leading icon to display in the button.
26
+ * Uses Material Icons on Android.
27
+ */
28
+ leadingIcon?: MaterialIcon;
29
+ /**
30
+ * A string describing the trailing icon to display in the button.
31
+ * Uses Material Icons on Android.
32
+ */
33
+ trailingIcon?: MaterialIcon;
24
34
  /**
25
35
  * A string describing the system image to display in the button.
26
36
  * Uses Material Icons on Android.
37
+ * @deprecated Use `leadingIcon` instead.
27
38
  */
28
39
  systemImage?: MaterialIcon;
29
40
  /**
@@ -57,9 +68,10 @@ export type ButtonProps = {
57
68
  /**
58
69
  * @hidden
59
70
  */
60
- export type NativeButtonProps = Omit<ButtonProps, 'role' | 'onPress' | 'children' | 'systemImage'> & {
71
+ export type NativeButtonProps = Omit<ButtonProps, 'role' | 'onPress' | 'children' | 'leadingIcon' | 'trailingIcon' | 'systemImage'> & {
61
72
  text: string;
62
- systemImage?: string;
73
+ leadingIcon?: string;
74
+ trailingIcon?: string;
63
75
  } & ViewEvent<'onButtonPressed', void>;
64
76
  /**
65
77
  * @hidden
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Button/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5F;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,WAAW,EACX,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAChD,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAQvC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAiB1E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BAQxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Button/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5F;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,WAAW,EACX,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,CACjF,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAQvC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAsB1E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BAQxC"}
@@ -1,5 +1,5 @@
1
1
  type Variant = 'rounded' | 'twotone' | 'outlined' | 'filled' | 'sharp';
2
- type Icon = 'AccountBox' | 'AccountCircle' | 'Add' | 'AddCircle' | 'ArrowBack' | 'ArrowDropDown' | 'ArrowForward' | 'Build' | 'Call' | 'Check' | 'CheckCircle' | 'Clear' | 'Close' | 'Create' | 'DateRange' | 'Delete' | 'Done' | 'Edit' | 'Email' | 'ExitToApp' | 'Face' | 'Favorite' | 'FavoriteBorder' | 'Home' | 'Info' | 'KeyboardArrowDown' | 'KeyboardArrowLeft' | 'KeyboardArrowRight' | 'KeyboardArrowUp' | 'List' | 'LocationOn' | 'Lock' | 'MailOutline' | 'Menu' | 'MoreVert' | 'Notifications' | 'Person' | 'Phone' | 'Place' | 'PlayArrow' | 'Refresh' | 'Search' | 'Send' | 'Settings' | 'Share' | 'ShoppingCart' | 'Star' | 'ThumbUp' | 'Warning';
2
+ type Icon = 'AccountBox' | 'AccountCircle' | 'Add' | 'AddCircle' | 'ArrowBack' | 'ArrowDropDown' | 'ArrowForward' | 'Build' | 'Call' | 'Check' | 'CheckCircle' | 'Clear' | 'Close' | 'Contrast' | 'Create' | 'DarkMode' | 'DateRange' | 'Delete' | 'Done' | 'Edit' | 'Email' | 'ExitToApp' | 'Face' | 'Favorite' | 'FavoriteBorder' | 'Home' | 'Info' | 'KeyboardArrowDown' | 'KeyboardArrowLeft' | 'KeyboardArrowRight' | 'KeyboardArrowUp' | 'LightMode' | 'List' | 'LocationOn' | 'Lock' | 'MailOutline' | 'Menu' | 'MoreVert' | 'Notifications' | 'Person' | 'Phone' | 'Place' | 'PlayArrow' | 'Refresh' | 'Search' | 'Send' | 'Settings' | 'Share' | 'ShoppingCart' | 'Star' | 'ThumbUp' | 'Warning';
3
3
  export type MaterialIcon = `${Variant}.${Icon}`;
4
4
  export {};
5
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Button/types.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,KAAK,IAAI,GACL,YAAY,GACZ,eAAe,GACf,KAAK,GACL,WAAW,GACX,WAAW,GACX,eAAe,GACf,cAAc,GACd,OAAO,GACP,MAAM,GACN,OAAO,GACP,aAAa,GACb,OAAO,GACP,OAAO,GACP,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,MAAM,GACN,YAAY,GACZ,MAAM,GACN,aAAa,GACb,MAAM,GACN,UAAU,GACV,eAAe,GACf,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,cAAc,GACd,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Button/types.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,KAAK,IAAI,GACL,YAAY,GACZ,eAAe,GACf,KAAK,GACL,WAAW,GACX,WAAW,GACX,eAAe,GACf,cAAc,GACd,OAAO,GACP,MAAM,GACN,OAAO,GACP,aAAa,GACb,OAAO,GACP,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,WAAW,GACX,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,WAAW,GACX,MAAM,GACN,YAAY,GACZ,MAAM,GACN,aAAa,GACb,MAAM,GACN,UAAU,GACV,eAAe,GACf,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,cAAc,GACd,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { ButtonProps } from '../Button';
3
+ /**
4
+ * Props of the `Submenu` component.
5
+ */
6
+ export type SubmenuProps = {
7
+ /**
8
+ * The button that will be used to expand the submenu. On Android the `text` prop of the `Button` will be used as a section title.
9
+ */
10
+ button: ReactElement<ButtonProps>;
11
+ /**
12
+ * Children of the submenu. Only `Button`, `Switch`, `Picker` and `Submenu` elements should be used.
13
+ */
14
+ children: ReactNode;
15
+ };
16
+ export declare function Submenu(props: SubmenuProps): import("react").JSX.Element;
17
+ //# sourceMappingURL=Submenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Submenu.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ContextMenu/Submenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAClC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAE1C"}
@@ -1,5 +1,6 @@
1
1
  import { ReactElement, ReactNode } from 'react';
2
2
  import { NativeSyntheticEvent, StyleProp, ViewStyle } from 'react-native';
3
+ import { SubmenuProps } from './Submenu';
3
4
  import { ExpoModifier } from '../../types';
4
5
  import { ButtonProps } from '../Button';
5
6
  import { PickerProps } from '../Picker';
@@ -52,21 +53,7 @@ export type ContextMenuProps = {
52
53
  /** Modifiers for the component */
53
54
  modifiers?: ExpoModifier[];
54
55
  };
55
- /**
56
- * Props of the `Submenu` component.
57
- */
58
- export type SubmenuProps = {
59
- /**
60
- * The button that will be used to expand the submenu. On Android the `text` prop of the `Button` will be used as a section title.
61
- */
62
- button: ReactElement<ButtonProps>;
63
- /**
64
- * Children of the submenu. Only `Button`, `Switch`, `Picker` and `Submenu` elements should be used.
65
- */
66
- children: ReactNode;
67
- };
68
- export declare function Submenu(): import("react").JSX.Element;
69
- export declare function Items(): import("react").JSX.Element;
56
+ export declare function Items(props: ContextMenuContentProps): import("react").JSX.Element;
70
57
  export declare namespace Items {
71
58
  var tag: string;
72
59
  }
@@ -86,4 +73,5 @@ declare namespace ContextMenu {
86
73
  var Items: typeof import(".").Items;
87
74
  }
88
75
  export { ContextMenu };
76
+ export { Submenu } from './Submenu';
89
77
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ContextMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,YAAY,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC,KAAK,cAAc,GACf,YAAY,CAAC,WAAW,CAAC,GACzB,YAAY,CAAC,WAAW,CAAC,GACzB,YAAY,CAAC,WAAW,CAAC,GACzB,YAAY,CAAC,YAAY,CAAC,CAAC;AAE/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;CAC7C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAChC,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IAAE,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B,kCAAkC;IAClC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAClC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAyBF,wBAAgB,OAAO,gCAEtB;AAED,wBAAgB,KAAK,gCAEpB;yBAFe,KAAK;;;AAKrB,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,+BAE3D;yBAFe,OAAO;;;AAKvB,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,+BAE3D;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAqC3C;kBArCQ,WAAW;;;;;AA2CpB,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ContextMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,YAAY,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC,KAAK,cAAc,GACf,YAAY,CAAC,WAAW,CAAC,GACzB,YAAY,CAAC,WAAW,CAAC,GACzB,YAAY,CAAC,WAAW,CAAC,GACzB,YAAY,CAAC,YAAY,CAAC,CAAC;AAE/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;CAC7C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAChC,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IAAE,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B,kCAAkC;IAClC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAyBF,wBAAgB,KAAK,CAAC,KAAK,EAAE,uBAAuB,+BAEnD;yBAFe,KAAK;;;AAKrB,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,+BAE3D;yBAFe,OAAO;;;AAKvB,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,+BAE3D;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAqC3C;kBArCQ,WAAW;;;;;AA2CpB,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ContextMenu/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1E,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAyB,MAAM,SAAS,CAAC;AACvF,OAAO,EAAuB,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AACzF,OAAO,EAAU,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAU,WAAW,EAAE,MAAM,WAAW,CAAC;AAGhD,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,GAAG,sBAAsB,CAAC;AAE3B,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,sBAAsB,CAAC;AAE3B,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,sBAAsB,CAAC;AAE3B,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE;QACP,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,MAAM,EAAE,iBAAiB,CAAC;KAC3B,CAAC;CACH,GAAG,sBAAsB,CAAC;AAE3B,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,CAAC;AAInB,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,aAAa,GAC9B,WAAW,EAAE,CAIf"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/ContextMenu/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,SAAS,EAAE,MAAM,OAAO,CAAC;AAI1E,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAuB,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AACzF,OAAO,EAAU,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAU,WAAW,EAAE,MAAM,WAAW,CAAC;AAGhD,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,GAAG,sBAAsB,CAAC;AAE3B,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,sBAAsB,CAAC;AAE3B,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,sBAAsB,CAAC;AAE3B,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE;QACP,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,MAAM,EAAE,iBAAiB,CAAC;KAC3B,CAAC;CACH,GAAG,sBAAsB,CAAC;AAE3B,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,CAAC;AAInB,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,aAAa,GAC9B,WAAW,EAAE,CAIf"}
@@ -0,0 +1,16 @@
1
+ import { type CommonViewModifierProps } from '../types';
2
+ export type LabeledContentProps = {
3
+ /**
4
+ * The label to be displayed in the labeled content.
5
+ */
6
+ label?: string;
7
+ children: React.ReactNode;
8
+ } & CommonViewModifierProps;
9
+ /**
10
+ * LabeledContent component uses the native [LabeledContent](https://developer.apple.com/documentation/swiftui/labeledcontent) component.
11
+ * A container for attaching a label to a value-bearing view.
12
+ * Available from iOS 16.0.
13
+ * @platform ios
14
+ */
15
+ export declare function LabeledContent(props: LabeledContentProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/swift-ui/LabeledContent/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,uBAAuB,CAAC;AAO5B;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BASxD"}
@@ -11,6 +11,7 @@ export * from './Gauge';
11
11
  export * from './Host';
12
12
  export * from './Image';
13
13
  export * from './Label';
14
+ export * from './LabeledContent';
14
15
  export * from './Layout';
15
16
  export * from './List';
16
17
  export * from './Picker';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swift-ui/index.tsx"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swift-ui/index.tsx"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
@@ -2,13 +2,16 @@
2
2
  * Core modifier factory and type definitions for SwiftUI view modifiers.
3
3
  * This system allows both built-in and 3rd party modifiers to use the same API.
4
4
  */
5
+ import { ColorValue } from 'react-native';
5
6
  import { animation } from './animation/index';
6
7
  import { createModifier, ModifierConfig } from './createModifier';
8
+ type NamedColor = 'primary' | 'secondary' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple' | 'pink' | 'white' | 'gray' | 'black' | 'clear' | 'mint' | 'teal' | 'cyan' | 'indigo' | 'brown';
9
+ type Color = string | ColorValue | NamedColor;
7
10
  /**
8
11
  * Sets the background of a view.
9
12
  * @param color - The background color (hex string, e.g., '#FF0000')
10
13
  */
11
- export declare const background: (color: string) => ModifierConfig;
14
+ export declare const background: (color: Color) => ModifierConfig;
12
15
  /**
13
16
  * Applies corner radius to a view.
14
17
  * @param radius - The corner radius value
@@ -21,7 +24,7 @@ export declare const shadow: (params: {
21
24
  radius: number;
22
25
  x?: number;
23
26
  y?: number;
24
- color?: string;
27
+ color?: Color;
25
28
  }) => ModifierConfig;
26
29
  /**
27
30
  * Adds a matched geometry effect to a view.
@@ -85,7 +88,7 @@ export declare const clipShape: (shape: "rectangle" | "circle" | "roundedRectang
85
88
  * Adds a border to a view.
86
89
  */
87
90
  export declare const border: (params: {
88
- color: string;
91
+ color: Color;
89
92
  width?: number;
90
93
  }) => ModifierConfig;
91
94
  /**
@@ -110,7 +113,7 @@ export declare const offset: (params: {
110
113
  * @param color - The foreground color (hex string)
111
114
  * @deprecated Use foregroundStyle instead
112
115
  */
113
- export declare const foregroundColor: (color: string) => ModifierConfig;
116
+ export declare const foregroundColor: (color: Color) => ModifierConfig;
114
117
  /**
115
118
  * Sets the foreground style of a view with comprehensive styling options.
116
119
  *
@@ -231,7 +234,7 @@ export declare const foregroundStyle: (style: string | {
231
234
  * Sets the tint color of a view.
232
235
  * @param color - The tint color (hex string)
233
236
  */
234
- export declare const tint: (color: string) => ModifierConfig;
237
+ export declare const tint: (color: Color) => ModifierConfig;
235
238
  /**
236
239
  * Hides or shows a view.
237
240
  * @param hidden - Whether the view should be hidden
@@ -309,7 +312,7 @@ export declare const mask: (shape: "rectangle" | "circle" | "roundedRectangle",
309
312
  * @param alignment - Overlay alignment
310
313
  */
311
314
  export declare const overlay: (params: {
312
- color?: string;
315
+ color?: Color;
313
316
  alignment?: "center" | "top" | "bottom" | "leading" | "trailing";
314
317
  }) => ModifierConfig;
315
318
  /**
@@ -318,7 +321,7 @@ export declare const overlay: (params: {
318
321
  * @param alignment - Background alignment
319
322
  */
320
323
  export declare const backgroundOverlay: (params: {
321
- color?: string;
324
+ color?: Color;
322
325
  alignment?: "center" | "top" | "bottom" | "leading" | "trailing";
323
326
  }) => ModifierConfig;
324
327
  /**
@@ -342,7 +345,7 @@ export declare const glassEffect: (params?: {
342
345
  glass?: {
343
346
  variant: "regular" | "clear" | "identity";
344
347
  interactive?: boolean;
345
- tint?: string;
348
+ tint?: Color;
346
349
  };
347
350
  shape?: "circle" | "capsule" | "rectangle" | "ellipse";
348
351
  }) => ModifierConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/swift-ui/modifiers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/swift-ui/modifiers/index.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  "publication": {
10
10
  "groupId": "expo.modules.ui",
11
11
  "artifactId": "expo.modules.ui",
12
- "version": "0.2.0-beta.2",
12
+ "version": "0.2.0-beta.3",
13
13
  "repository": "local-maven-repo"
14
14
  }
15
15
  }
@@ -39,7 +39,12 @@ struct Button: ExpoSwiftUI.View {
39
39
  .if(props.variant == .borderedProminent, {
40
40
  $0.buttonStyle(.borderedProminent)
41
41
  })
42
- #if !os(tvOS)
42
+
43
+ #if os(tvOS)
44
+ .if(props.variant == .card, {
45
+ $0.buttonStyle(.card)
46
+ })
47
+ #else
43
48
  .if(props.variant == .borderless, {
44
49
  $0.buttonStyle(.borderless)
45
50
  })
@@ -60,7 +65,7 @@ struct Button: ExpoSwiftUI.View {
60
65
  })
61
66
  #endif
62
67
 
63
- if #available(iOS 26.0, *) {
68
+ if #available(iOS 26.0, tvOS 26.0, *) {
64
69
  #if compiler(>=6.2) // Xcode 26
65
70
  switch props.variant {
66
71
  case .glass:
@@ -52,5 +52,6 @@ public final class ExpoUIModule: Module {
52
52
  View(ZStackView.self)
53
53
  View(NamespaceView.self)
54
54
  View(GlassEffectContainerView.self)
55
+ View(LabeledContentView.self)
55
56
  }
56
57
  }
@@ -0,0 +1,27 @@
1
+ // Copyright 2025-present 650 Industries. All rights reserved.
2
+
3
+ import SwiftUI
4
+ import ExpoModulesCore
5
+
6
+ final class LabeledContentProps: ExpoSwiftUI.ViewProps, CommonViewModifierProps {
7
+ @Field var fixedSize: Bool?
8
+ @Field var frame: FrameOptions?
9
+ @Field var padding: PaddingOptions?
10
+ @Field var testID: String?
11
+ @Field var modifiers: ModifierArray?
12
+
13
+ @Field var label: String?
14
+ }
15
+
16
+ internal struct LabeledContentView: ExpoSwiftUI.View {
17
+ @ObservedObject var props: LabeledContentProps
18
+
19
+ var body: some View {
20
+ if #available(iOS 16.0, tvOS 16.0, *) {
21
+ LabeledContent(props.label ?? "") {
22
+ Children()
23
+ }
24
+ .modifier(CommonViewModifiers(props: props))
25
+ }
26
+ }
27
+ }
@@ -0,0 +1 @@
1
+ 5a7003c3bb4ab5e12e1ab0d8b4636b32adb0e10076efcacb3d888dcfa6a50f7c
@@ -0,0 +1 @@
1
+ 744a477ab9a27f351ecdf6fbd8bd23f228f862a9872ddc6686f7fb9f6d9eabd023efd87529ccb8e840585bd7318107614dcbb480d1c514c25d39a0323821b7ca
@@ -0,0 +1 @@
1
+ c24c39ff67c2dc961cfbf42f7a49e9c386d89a72d92a3f7071a20bea43d6fb3f
@@ -0,0 +1 @@
1
+ 8f9c2a604403327edcec234ede7183d7d241371fcf4c6e1939964130b3a10a13942a069c552120e2a8e1c8ae5a8b20e29aee6ea5de22be089f9744982cbefe53
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.ui",
5
5
  "module": "expo.modules.ui",
6
- "version": "0.2.0-beta.2",
6
+ "version": "0.2.0-beta.3",
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-0.2.0-beta.2.aar",
28
- "url": "expo.modules.ui-0.2.0-beta.2.aar",
29
- "size": 324202,
30
- "sha512": "04d36cf0b0c9f7014ce6d036652d34ef3761bb62ba8170fdbfa780d131a47fecb223b4286916dc2275ce3ac6eb3481c4500550ae9239f8d1dd68c084ea128d1e",
31
- "sha256": "7000d36858d8ab31a4505a0c19f9266e4e7e98b7a2fb17b5de6eff8d2a9556bc",
32
- "sha1": "22688f17e9f523d3382da309e7d7c5360c28cb6b",
33
- "md5": "511552fcc9064c335d40f2724d42ca5e"
27
+ "name": "expo.modules.ui-0.2.0-beta.3.aar",
28
+ "url": "expo.modules.ui-0.2.0-beta.3.aar",
29
+ "size": 328026,
30
+ "sha512": "8f9c2a604403327edcec234ede7183d7d241371fcf4c6e1939964130b3a10a13942a069c552120e2a8e1c8ae5a8b20e29aee6ea5de22be089f9744982cbefe53",
31
+ "sha256": "c24c39ff67c2dc961cfbf42f7a49e9c386d89a72d92a3f7071a20bea43d6fb3f",
32
+ "sha1": "391652a853a9044af4e700734c688833baeafa16",
33
+ "md5": "b114213555a449ebd989621a6004d7c4"
34
34
  }
35
35
  ]
36
36
  },
@@ -102,13 +102,13 @@
102
102
  ],
103
103
  "files": [
104
104
  {
105
- "name": "expo.modules.ui-0.2.0-beta.2.aar",
106
- "url": "expo.modules.ui-0.2.0-beta.2.aar",
107
- "size": 324202,
108
- "sha512": "04d36cf0b0c9f7014ce6d036652d34ef3761bb62ba8170fdbfa780d131a47fecb223b4286916dc2275ce3ac6eb3481c4500550ae9239f8d1dd68c084ea128d1e",
109
- "sha256": "7000d36858d8ab31a4505a0c19f9266e4e7e98b7a2fb17b5de6eff8d2a9556bc",
110
- "sha1": "22688f17e9f523d3382da309e7d7c5360c28cb6b",
111
- "md5": "511552fcc9064c335d40f2724d42ca5e"
105
+ "name": "expo.modules.ui-0.2.0-beta.3.aar",
106
+ "url": "expo.modules.ui-0.2.0-beta.3.aar",
107
+ "size": 328026,
108
+ "sha512": "8f9c2a604403327edcec234ede7183d7d241371fcf4c6e1939964130b3a10a13942a069c552120e2a8e1c8ae5a8b20e29aee6ea5de22be089f9744982cbefe53",
109
+ "sha256": "c24c39ff67c2dc961cfbf42f7a49e9c386d89a72d92a3f7071a20bea43d6fb3f",
110
+ "sha1": "391652a853a9044af4e700734c688833baeafa16",
111
+ "md5": "b114213555a449ebd989621a6004d7c4"
112
112
  }
113
113
  ]
114
114
  },
@@ -122,13 +122,13 @@
122
122
  },
123
123
  "files": [
124
124
  {
125
- "name": "expo.modules.ui-0.2.0-beta.2-sources.jar",
126
- "url": "expo.modules.ui-0.2.0-beta.2-sources.jar",
127
- "size": 20394,
128
- "sha512": "7e22d3be8ddd94a0c7a34138f5a59434434110c209a1c67c7875b22adacaeae116e0fcd0713ed8c9a85a11626c2bd585aacb09037377946ce5a48f4e3304a9fa",
129
- "sha256": "52f56d8ce78bb4f30f6249844a2c3093b054ef1b2f5ea6ea7d5a12b454f5526b",
130
- "sha1": "24aa4b775d293e67addeb4ca62506468ec2d04f8",
131
- "md5": "85f85abe12b0ab2ecef0554a122d9400"
125
+ "name": "expo.modules.ui-0.2.0-beta.3-sources.jar",
126
+ "url": "expo.modules.ui-0.2.0-beta.3-sources.jar",
127
+ "size": 20539,
128
+ "sha512": "744a477ab9a27f351ecdf6fbd8bd23f228f862a9872ddc6686f7fb9f6d9eabd023efd87529ccb8e840585bd7318107614dcbb480d1c514c25d39a0323821b7ca",
129
+ "sha256": "5a7003c3bb4ab5e12e1ab0d8b4636b32adb0e10076efcacb3d888dcfa6a50f7c",
130
+ "sha1": "507a9e87f447d5e57d9d22bf172c741076a7ffd7",
131
+ "md5": "9598e67cb2835e28696a00926f62371e"
132
132
  }
133
133
  ]
134
134
  }
@@ -0,0 +1 @@
1
+ 5eecce8fc16f17d8908670cd3a91f212f0642abefe06c2ea8212cdee14062e39
@@ -0,0 +1 @@
1
+ 1f5d9fa5495cff8ab72e2db296881947ff5bd30d582fa2f7f8ce2d27f6163c7de6ec67182f6e9993ac23e4d897256ff217bad68b97629ce016fbf8d6fbf11038
@@ -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>0.2.0-beta.2</version>
12
+ <version>0.2.0-beta.3</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.ui</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ a8911770b4628b6dc89ceb7cbd7d1ebd768a74ba54c9b0648c7056ecf0de368a
@@ -0,0 +1 @@
1
+ 9bda63e9dd99f0525149db3e4f06550d2adc73966d74f21feff2447f93c991448bc6f9a22d70e0f5e7bee48ecb01f866276f4f01ee96ed98487ce08f55b0ad7b
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.ui</groupId>
4
4
  <artifactId>expo.modules.ui</artifactId>
5
5
  <versioning>
6
- <latest>0.2.0-beta.2</latest>
7
- <release>0.2.0-beta.2</release>
6
+ <latest>0.2.0-beta.3</latest>
7
+ <release>0.2.0-beta.3</release>
8
8
  <versions>
9
- <version>0.2.0-beta.2</version>
9
+ <version>0.2.0-beta.3</version>
10
10
  </versions>
11
- <lastUpdated>20250912154226</lastUpdated>
11
+ <lastUpdated>20250916015522</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 6a21e746c6c56a1cef3435ba7596affb
1
+ 5fb31e38966326325ef375b60ae3cc8e
@@ -1 +1 @@
1
- 83341d9931696e20604c02f7f8bc2ff8919b51cc
1
+ 9e49e5bb7babe2b698d643686cf4ed39836af0c5
@@ -1 +1 @@
1
- 52ff813bf5c181d9617584d12d0b35f6f7812c0c080b06688b0dfc3fe4780ee4
1
+ d6f4c8bbd6942ee1d6399d2fce28b5a2e90f54d6a39e3abca035574073640f15
@@ -1 +1 @@
1
- 9026fb57dcf2fb748700bc260f54a011e44c1d9dea1cb48898f408c3ee9256c9789cfdfb1005af55b9eb5968ad92f9344e21a3bbc24d5ec01ee2e2fba2aaf997
1
+ 6af49888c3a8c222ed8e8dd8d196b4e0bbf9ff32fc4c747d819c26ca760d00947e4b5a099da19e9d99b2b3a1670e9c78ab8ce3cd316992ec8d73090653157b1f
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/ui",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.3",
4
4
  "description": "A collection of UI components",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -56,5 +56,5 @@
56
56
  "react": "*",
57
57
  "react-native": "*"
58
58
  },
59
- "gitHead": "33f49d0f802b101fd61ac0eedcb1ce35b0adde51"
59
+ "gitHead": "dd09d302146a73aab3f852d288a9a4e3fc83a75e"
60
60
  }
@@ -26,9 +26,20 @@ export type ButtonProps = {
26
26
  * A callback that is called when the button is pressed.
27
27
  */
28
28
  onPress?: () => void;
29
+ /**
30
+ * A string describing the leading icon to display in the button.
31
+ * Uses Material Icons on Android.
32
+ */
33
+ leadingIcon?: MaterialIcon;
34
+ /**
35
+ * A string describing the trailing icon to display in the button.
36
+ * Uses Material Icons on Android.
37
+ */
38
+ trailingIcon?: MaterialIcon;
29
39
  /**
30
40
  * A string describing the system image to display in the button.
31
41
  * Uses Material Icons on Android.
42
+ * @deprecated Use `leadingIcon` instead.
32
43
  */
33
44
  systemImage?: MaterialIcon;
34
45
  /**
@@ -66,10 +77,11 @@ export type ButtonProps = {
66
77
  */
67
78
  export type NativeButtonProps = Omit<
68
79
  ButtonProps,
69
- 'role' | 'onPress' | 'children' | 'systemImage'
80
+ 'role' | 'onPress' | 'children' | 'leadingIcon' | 'trailingIcon' | 'systemImage'
70
81
  > & {
71
82
  text: string;
72
- systemImage?: string;
83
+ leadingIcon?: string;
84
+ trailingIcon?: string;
73
85
  } & ViewEvent<'onButtonPressed', void>;
74
86
 
75
87
  // We have to work around the `role` and `onPress` props being reserved by React Native.
@@ -82,11 +94,16 @@ const ButtonNativeView: React.ComponentType<NativeButtonProps> = requireNativeVi
82
94
  * @hidden
83
95
  */
84
96
  export function transformButtonProps(props: ButtonProps): NativeButtonProps {
85
- const { children, onPress, systemImage, ...restProps } = props;
97
+ const { children, onPress, leadingIcon, trailingIcon, systemImage, ...restProps } = props;
98
+
99
+ // Handle backward compatibility: systemImage maps to leadingIcon
100
+ const finalLeadingIcon = leadingIcon ?? systemImage;
101
+
86
102
  return {
87
103
  ...restProps,
88
104
  text: children ?? '',
89
- systemImage,
105
+ leadingIcon: finalLeadingIcon,
106
+ trailingIcon,
90
107
  onButtonPressed: onPress,
91
108
  // @ts-expect-error
92
109
  modifiers: props.modifiers?.map((m) => m.__expo_shared_object_id__),
@@ -14,7 +14,9 @@ type Icon =
14
14
  | 'CheckCircle'
15
15
  | 'Clear'
16
16
  | 'Close'
17
+ | 'Contrast'
17
18
  | 'Create'
19
+ | 'DarkMode'
18
20
  | 'DateRange'
19
21
  | 'Delete'
20
22
  | 'Done'
@@ -30,6 +32,7 @@ type Icon =
30
32
  | 'KeyboardArrowLeft'
31
33
  | 'KeyboardArrowRight'
32
34
  | 'KeyboardArrowUp'
35
+ | 'LightMode'
33
36
  | 'List'
34
37
  | 'LocationOn'
35
38
  | 'Lock'
@@ -0,0 +1,21 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+
3
+ import { ButtonProps } from '../Button';
4
+
5
+ /**
6
+ * Props of the `Submenu` component.
7
+ */
8
+ export type SubmenuProps = {
9
+ /**
10
+ * The button that will be used to expand the submenu. On Android the `text` prop of the `Button` will be used as a section title.
11
+ */
12
+ button: ReactElement<ButtonProps>;
13
+ /**
14
+ * Children of the submenu. Only `Button`, `Switch`, `Picker` and `Submenu` elements should be used.
15
+ */
16
+ children: ReactNode;
17
+ };
18
+
19
+ export function Submenu(props: SubmenuProps) {
20
+ return <></>;
21
+ }
@@ -2,6 +2,7 @@ import { requireNativeView } from 'expo';
2
2
  import { Children, ReactElement, ReactNode, useMemo } from 'react';
3
3
  import { NativeSyntheticEvent, StyleProp, ViewStyle } from 'react-native';
4
4
 
5
+ import { SubmenuProps } from './Submenu';
5
6
  import { MenuElement, transformChildrenToElementArray } from './utils';
6
7
  import { ExpoModifier } from '../../types';
7
8
  import { ButtonProps } from '../Button';
@@ -76,20 +77,6 @@ export type ContextMenuProps = {
76
77
  modifiers?: ExpoModifier[];
77
78
  };
78
79
 
79
- /**
80
- * Props of the `Submenu` component.
81
- */
82
- export type SubmenuProps = {
83
- /**
84
- * The button that will be used to expand the submenu. On Android the `text` prop of the `Button` will be used as a section title.
85
- */
86
- button: ReactElement<ButtonProps>;
87
- /**
88
- * Children of the submenu. Only `Button`, `Switch`, `Picker` and `Submenu` elements should be used.
89
- */
90
- children: ReactNode;
91
- };
92
-
93
80
  /**
94
81
  * @hidden
95
82
  */
@@ -113,11 +100,7 @@ type NativeMenuProps = ContextMenuProps & {
113
100
  ) => void;
114
101
  };
115
102
 
116
- export function Submenu() {
117
- return <></>;
118
- }
119
-
120
- export function Items() {
103
+ export function Items(props: ContextMenuContentProps) {
121
104
  return <></>;
122
105
  }
123
106
  Items.tag = 'Items';
@@ -175,3 +158,4 @@ ContextMenu.Preview = Preview;
175
158
  ContextMenu.Items = Items;
176
159
 
177
160
  export { ContextMenu };
161
+ export { Submenu } from './Submenu';
@@ -1,7 +1,8 @@
1
1
  import { Children, isValidElement, ReactElement, ReactNode } from 'react';
2
2
  import { NativeSyntheticEvent } from 'react-native';
3
3
 
4
- import { ContextMenuElementBase, EventHandlers, Submenu, SubmenuProps } from './index';
4
+ import { Submenu, SubmenuProps } from './Submenu';
5
+ import { ContextMenuElementBase, EventHandlers } from './index';
5
6
  import { Button, ButtonProps, NativeButtonProps, transformButtonProps } from '../Button';
6
7
  import { Picker, PickerProps } from '../Picker';
7
8
  import { Switch, SwitchProps } from '../Switch';
@@ -139,5 +140,5 @@ function createSubmenuElement(
139
140
  }
140
141
 
141
142
  function isSubmenuComponent(child: ReactElement): boolean {
142
- return child.type.toString() === Submenu.toString();
143
+ return child.type === Submenu;
143
144
  }
@@ -0,0 +1,34 @@
1
+ import { requireNativeView } from 'expo';
2
+
3
+ import { createViewModifierEventListener } from '../modifiers/utils';
4
+ import { type CommonViewModifierProps } from '../types';
5
+
6
+ export type LabeledContentProps = {
7
+ /**
8
+ * The label to be displayed in the labeled content.
9
+ */
10
+ label?: string;
11
+ children: React.ReactNode;
12
+ } & CommonViewModifierProps;
13
+
14
+ const LabeledContentNativeView: React.ComponentType<LabeledContentProps> = requireNativeView(
15
+ 'ExpoUI',
16
+ 'LabeledContentView'
17
+ );
18
+
19
+ /**
20
+ * LabeledContent component uses the native [LabeledContent](https://developer.apple.com/documentation/swiftui/labeledcontent) component.
21
+ * A container for attaching a label to a value-bearing view.
22
+ * Available from iOS 16.0.
23
+ * @platform ios
24
+ */
25
+ export function LabeledContent(props: LabeledContentProps) {
26
+ const { modifiers, ...restProps } = props;
27
+ return (
28
+ <LabeledContentNativeView
29
+ modifiers={modifiers}
30
+ {...(modifiers ? createViewModifierEventListener(modifiers) : undefined)}
31
+ {...restProps}
32
+ />
33
+ );
34
+ }
@@ -11,6 +11,7 @@ export * from './Gauge';
11
11
  export * from './Host';
12
12
  export * from './Image';
13
13
  export * from './Label';
14
+ export * from './LabeledContent';
14
15
  export * from './Layout';
15
16
  export * from './List';
16
17
  export * from './Picker';
@@ -3,6 +3,8 @@
3
3
  * This system allows both built-in and 3rd party modifiers to use the same API.
4
4
  */
5
5
 
6
+ import { ColorValue } from 'react-native';
7
+
6
8
  import { animation } from './animation/index';
7
9
  import { createModifier, ModifierConfig } from './createModifier';
8
10
 
@@ -17,6 +19,28 @@ function createModifierWithEventListener(
17
19
  return { $type: type, ...params, eventListener };
18
20
  }
19
21
 
22
+ type NamedColor =
23
+ | 'primary'
24
+ | 'secondary'
25
+ | 'red'
26
+ | 'orange'
27
+ | 'yellow'
28
+ | 'green'
29
+ | 'blue'
30
+ | 'purple'
31
+ | 'pink'
32
+ | 'white'
33
+ | 'gray'
34
+ | 'black'
35
+ | 'clear'
36
+ | 'mint'
37
+ | 'teal'
38
+ | 'cyan'
39
+ | 'indigo'
40
+ | 'brown';
41
+
42
+ type Color = string | ColorValue | NamedColor;
43
+
20
44
  // =============================================================================
21
45
  // Built-in Modifier Functions
22
46
  // =============================================================================
@@ -25,7 +49,7 @@ function createModifierWithEventListener(
25
49
  * Sets the background of a view.
26
50
  * @param color - The background color (hex string, e.g., '#FF0000')
27
51
  */
28
- export const background = (color: string) => createModifier('background', { color });
52
+ export const background = (color: Color) => createModifier('background', { color });
29
53
 
30
54
  /**
31
55
  * Applies corner radius to a view.
@@ -36,7 +60,7 @@ export const cornerRadius = (radius: number) => createModifier('cornerRadius', {
36
60
  /**
37
61
  * Adds a shadow to a view.
38
62
  */
39
- export const shadow = (params: { radius: number; x?: number; y?: number; color?: string }) =>
63
+ export const shadow = (params: { radius: number; x?: number; y?: number; color?: Color }) =>
40
64
  createModifier('shadow', params);
41
65
 
42
66
  /**
@@ -128,7 +152,7 @@ export const clipShape = (
128
152
  /**
129
153
  * Adds a border to a view.
130
154
  */
131
- export const border = (params: { color: string; width?: number }) =>
155
+ export const border = (params: { color: Color; width?: number }) =>
132
156
  createModifier('border', params);
133
157
 
134
158
  /**
@@ -153,7 +177,7 @@ export const offset = (params: { x?: number; y?: number }) => createModifier('of
153
177
  * @param color - The foreground color (hex string)
154
178
  * @deprecated Use foregroundStyle instead
155
179
  */
156
- export const foregroundColor = (color: string) => createModifier('foregroundColor', { color });
180
+ export const foregroundColor = (color: Color) => createModifier('foregroundColor', { color });
157
181
 
158
182
  /**
159
183
  * Sets the foreground style of a view with comprehensive styling options.
@@ -274,7 +298,7 @@ export const foregroundStyle = (
274
298
  * Sets the tint color of a view.
275
299
  * @param color - The tint color (hex string)
276
300
  */
277
- export const tint = (color: string) => createModifier('tint', { color });
301
+ export const tint = (color: Color) => createModifier('tint', { color });
278
302
 
279
303
  /**
280
304
  * Hides or shows a view.
@@ -371,7 +395,7 @@ export const mask = (shape: 'rectangle' | 'circle' | 'roundedRectangle', cornerR
371
395
  * @param alignment - Overlay alignment
372
396
  */
373
397
  export const overlay = (params: {
374
- color?: string;
398
+ color?: Color;
375
399
  alignment?: 'center' | 'top' | 'bottom' | 'leading' | 'trailing';
376
400
  }) => createModifier('overlay', params);
377
401
 
@@ -381,7 +405,7 @@ export const overlay = (params: {
381
405
  * @param alignment - Background alignment
382
406
  */
383
407
  export const backgroundOverlay = (params: {
384
- color?: string;
408
+ color?: Color;
385
409
  alignment?: 'center' | 'top' | 'bottom' | 'leading' | 'trailing';
386
410
  }) => createModifier('backgroundOverlay', params);
387
411
 
@@ -406,7 +430,7 @@ export const glassEffect = (params?: {
406
430
  glass?: {
407
431
  variant: 'regular' | 'clear' | 'identity';
408
432
  interactive?: boolean;
409
- tint?: string;
433
+ tint?: Color;
410
434
  };
411
435
  shape?: 'circle' | 'capsule' | 'rectangle' | 'ellipse';
412
436
  }) => createModifier('glassEffect', params);
@@ -1 +0,0 @@
1
- 52f56d8ce78bb4f30f6249844a2c3093b054ef1b2f5ea6ea7d5a12b454f5526b
@@ -1 +0,0 @@
1
- 7e22d3be8ddd94a0c7a34138f5a59434434110c209a1c67c7875b22adacaeae116e0fcd0713ed8c9a85a11626c2bd585aacb09037377946ce5a48f4e3304a9fa
@@ -1 +0,0 @@
1
- 7000d36858d8ab31a4505a0c19f9266e4e7e98b7a2fb17b5de6eff8d2a9556bc
@@ -1 +0,0 @@
1
- 04d36cf0b0c9f7014ce6d036652d34ef3761bb62ba8170fdbfa780d131a47fecb223b4286916dc2275ce3ac6eb3481c4500550ae9239f8d1dd68c084ea128d1e
@@ -1 +0,0 @@
1
- a7c73b3e239dda977c76920f6f0533321d90b03e013a5015b941f2c19fef1a71
@@ -1 +0,0 @@
1
- 597270376cb075bac137d73242675a4718e169a11f5b20e81cab5fa83148af188bd1fae0c2954b1a8b4157a311377b7449c4ac9171b518d4349917efc96934dd
@@ -1 +0,0 @@
1
- b54a134b9359a65090dd503b1502593be242e39c4edad9addfba2ba10fdf22f4
@@ -1 +0,0 @@
1
- 9503271bae88dd7a4d6a5efdb86f788a01682b315787a5a8036d04954917ea8383ba8e6267fb8c482707c0394ef79cd91a2b32ceadc065ecb13b5641426ccb5a