diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/bottomsheet.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/bottomsheet.mdx index b47dee34517b96..d2ef15ad5675d7 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/bottomsheet.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/bottomsheet.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI BottomSheet matches the official SwiftUI [sheet API]() and presents content from the bottom of the screen. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/button.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/button.mdx index ace80418e1bb92..878fcff14d066c 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/button.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/button.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Button matches the official SwiftUI [Button API](https://developer.apple.com/documentation/swiftui/button) and supports styling via the [`buttonStyle`](modifiers/#buttonstylestyle), [`controlSize`](modifiers/#controlsizesize), and other modifiers. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/colorpicker.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/colorpicker.mdx index 6f691f5c921bd8..0b37d631ebd10b 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/colorpicker.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/colorpicker.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ColorPicker matches the official SwiftUI [ColorPicker API](https://developer.apple.com/documentation/swiftui/colorpicker) and allows app users to select colors from a palette. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx index 90661e27d3249a..b9183e69fd4065 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ConfirmationDialog matches the official SwiftUI [confirmationDialog API]() and presents an action sheet-style dialog with a title, actions, and an optional message. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/contextmenu.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/contextmenu.mdx index 956308b09dcf56..29eb930b36ce84 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/contextmenu.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/contextmenu.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ContextMenu matches the official SwiftUI [contextMenu API]() and displays a menu when long-pressed. For single-tap menu interactions, use [`Menu`](menu) instead. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/controlgroup.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/controlgroup.mdx index f9ff07aeac520e..a485ee7bd311b0 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/controlgroup.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/controlgroup.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ControlGroup matches the official SwiftUI [ControlGroup API](https://developer.apple.com/documentation/swiftui/controlgroup). When placed inside a [`Menu`](menu), the children are rendered as a compact horizontal row of buttons. -
- -
+ > **Note:** On tvOS, `ControlGroup` requires tvOS 17.0 or later. diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/datepicker.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/datepicker.mdx index 31cb0df51f34c4..d7c53184abdc25 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/datepicker.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/datepicker.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI DatePicker matches the official SwiftUI [DatePicker API](https://developer.apple.com/documentation/swiftui/datepicker) and supports styling via the [`datePickerStyle`](modifiers/#datepickerstylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/disclosuregroup.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/disclosuregroup.mdx index bcecc4b324b838..190ee629212ffa 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/disclosuregroup.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/disclosuregroup.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI DisclosureGroup matches the official SwiftUI [DisclosureGroup API](https://developer.apple.com/documentation/swiftui/disclosuregroup) and displays a disclosure indicator that reveals or hides content. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/divider.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/divider.mdx index d511375821a28e..b9da647dc2ac8a 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/divider.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/divider.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Divider matches the official SwiftUI [Divider API](https://developer.apple.com/documentation/swiftui/divider) and creates a visual separator between content. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/form.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/form.mdx index 818c413fb2e5ad..cacbbf879d6c4a 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/form.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/form.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Form matches the official SwiftUI [Form API](https://developer.apple.com/documentation/swiftui/form). It provides a container for grouping controls used for data entry, such as in settings or inspection panes. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/gauge.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/gauge.mdx index c677a9ac1a08c4..cd7da2fa683d2e 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/gauge.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/gauge.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Gauge matches the official SwiftUI [Gauge API](https://developer.apple.com/documentation/swiftui/gauge) and supports styling via the [`gaugeStyle`](modifiers/#gaugestylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/group.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/group.mdx index ce33d4c26b2a17..6cd4050aadc0a7 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/group.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/group.mdx @@ -8,19 +8,9 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; Expo UI Group matches the official SwiftUI [Group API](https://developer.apple.com/documentation/swiftui/group) and groups views together without introducing additional layout structure. -
- -
- ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/hstack.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/hstack.mdx index bcb48a8e107cac..0f16ad27747ce8 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/hstack.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/hstack.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI HStack matches the official SwiftUI [HStack API](https://developer.apple.com/documentation/swiftui/hstack) and arranges its children horizontally. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/image.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/image.mdx index fd0fb44feb8f92..4279dbee9a7d4b 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/image.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/image.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Image displays SF Symbols using the SwiftUI [Image API](https://developer.apple.com/documentation/swiftui/image). SF Symbols are a library of configurable symbols provided by Apple. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/label.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/label.mdx index 824b7834c5f2a7..2096b4e29a7ff3 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/label.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/label.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Label matches the official SwiftUI [Label API](https://developer.apple.com/documentation/swiftui/label) and displays a title alongside an icon. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/link.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/link.mdx index 7855d2b712f371..6bc52c93720f33 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/link.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/link.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Link matches the official SwiftUI [Link API](https://developer.apple.com/documentation/swiftui/link). -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/list.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/list.mdx index 11bee532346722..2af64a0eb66606 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/list.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/list.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI List matches the official SwiftUI [List API](https://developer.apple.com/documentation/swiftui/list) and supports styling via the [`listStyle`](modifiers/#liststylestyle) modifier, various row/section modifiers, as well as selection, reordering, and editing capabilities. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/menu.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/menu.mdx index 10b59def5254ba..2da22237d5725c 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/menu.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/menu.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Menu matches the official SwiftUI [Menu API](https://developer.apple.com/documentation/swiftui/menu) and supports styling via the [`buttonStyle`](modifiers/#buttonstylestyle) modifier. Menu opens on a single tap. For long-press interactions, use [`ContextMenu`](contextmenu) instead. -
- -
+ > **Note:** On tvOS, Menu requires tvOS 17.0 or later. diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/overlay.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/overlay.mdx index 81bd323851a1b7..f870f46a8f5809 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/overlay.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/overlay.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvOS', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Overlay matches the official SwiftUI [overlay]() modifier and provides a way to layer secondary content on top of a view, positioned with a specified alignment. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/picker.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/picker.mdx index 41060ebb438968..d9179d99a41552 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/picker.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/picker.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Picker matches the official SwiftUI [Picker API](https://developer.apple.com/documentation/swiftui/picker) and supports all picker styles via the [`pickerStyle`](modifiers/#pickerstylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/popover.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/popover.mdx index 6e24c8b3d2ff8a..fc829acc352b84 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/popover.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/popover.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Popover matches the official SwiftUI [Popover API]() and provides a way to present content in a floating overlay anchored to a trigger element. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/progressview.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/progressview.mdx index 1b7817d78a0ba8..cbe18d1e59b9b9 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/progressview.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/progressview.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ProgressView matches the official SwiftUI [ProgressView API](https://developer.apple.com/documentation/swiftui/progressview) and supports styling via the [`progressViewStyle`](modifiers/#progressviewstylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/scrollview.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/scrollview.mdx index bba87442a39cd8..860396b0316851 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/scrollview.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/scrollview.mdx @@ -8,19 +8,9 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; Expo UI ScrollView matches the official SwiftUI [ScrollView API](https://developer.apple.com/documentation/swiftui/scrollview) and provides a scrollable container for its children. -
- -
- ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/section.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/section.mdx index 3b59105c76cc76..2303a0cc71d391 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/section.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/section.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Section matches the official SwiftUI [Section API](https://developer.apple.com/documentation/swiftui/section) and is used to group related content within [`List`](list), [`Form`](form) or [`Picker`](picker) components. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/securefield.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/securefield.mdx index b2ffab241e288c..daf576aeedb631 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/securefield.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/securefield.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI SecureField matches the official SwiftUI [SecureField API](https://developer.apple.com/documentation/swiftui/securefield) and provides a text field that masks user input for passwords and other sensitive text. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/slider.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/slider.mdx index b096864bdf9076..f48508d368155f 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/slider.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/slider.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Slider matches the official SwiftUI [Slider API](https://developer.apple.com/documentation/swiftui/slider) and allows selecting values from a bounded range. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/spacer.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/spacer.mdx index 448b895a224532..ab0df47a53155c 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/spacer.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/spacer.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Spacer matches the official SwiftUI [Spacer API](https://developer.apple.com/documentation/swiftui/spacer) and expands to fill available space in a stack. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/tabview.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/tabview.mdx index 062ede0d9ef456..f6717dcb65520c 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/tabview.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/tabview.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI TabView matches the official SwiftUI [TabView API](https://developer.apple.com/documentation/swiftui/tabview) and switches between styles via the [`tabViewStyle`](modifiers/#tabviewstyleconfig) modifier. -
- -
+ > **Note:** For routed bottom-tab navigation across full-screen routes, use [expo-router/unstable-native-tabs`](/router/advanced/native-tabs/) instead. diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/text.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/text.mdx index 9ba0fd860f7988..10871590ba157c 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/text.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/text.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Text matches the official SwiftUI [Text API](https://developer.apple.com/documentation/swiftui/text). -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/textfield.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/textfield.mdx index e87c5e5bf25107..7dd6e92b4721fb 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/textfield.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/textfield.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI TextField matches the official SwiftUI [TextField API](https://developer.apple.com/documentation/swiftui/textfield) and supports single-line and multiline input, keyboard configuration, submit handling, and an imperative `ref` for programmatic control. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/toggle.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/toggle.mdx index 330905081bd2ad..af104af2faf538 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/toggle.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/toggle.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Toggle matches the official SwiftUI [Toggle API](https://developer.apple.com/documentation/swiftui/toggle) and supports styling via the [`toggleStyle`](modifiers/#togglestylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/vstack.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/vstack.mdx index 2a9bb3bc1cd58a..3d22caf8380095 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/vstack.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/vstack.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI VStack matches the official SwiftUI [VStack API](https://developer.apple.com/documentation/swiftui/vstack) and arranges its children vertically. -
- -
+ ## Installation diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/zstack.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/zstack.mdx index fd570748f029fd..698de635252589 100644 --- a/docs/pages/versions/unversioned/sdk/ui/swift-ui/zstack.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/zstack.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ZStack matches the official SwiftUI [ZStack API](https://developer.apple.com/documentation/swiftui/zstack) and overlays its children on top of each other. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/bottomsheet.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/bottomsheet.mdx index 1209871f4911f4..224f4b1d94f66d 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/bottomsheet.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/bottomsheet.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI BottomSheet matches the official SwiftUI [sheet API]() and presents content from the bottom of the screen. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/button.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/button.mdx index dccab2cc435c1b..d2d195844abb0e 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/button.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/button.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Button matches the official SwiftUI [Button API](https://developer.apple.com/documentation/swiftui/button) and supports styling via the [`buttonStyle`](modifiers/#buttonstylestyle), [`controlSize`](modifiers/#controlsizesize), and other modifiers. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/colorpicker.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/colorpicker.mdx index 4afa687bbd82d5..74dd9c0019c643 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/colorpicker.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/colorpicker.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ColorPicker matches the official SwiftUI [ColorPicker API](https://developer.apple.com/documentation/swiftui/colorpicker) and allows app users to select colors from a palette. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/confirmationdialog.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/confirmationdialog.mdx index cc05d58a8edfdf..389e57bf122490 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/confirmationdialog.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/confirmationdialog.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ConfirmationDialog matches the official SwiftUI [confirmationDialog API]() and presents an action sheet-style dialog with a title, actions, and an optional message. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/contextmenu.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/contextmenu.mdx index a7fdddb2d33233..774345db45e30c 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/contextmenu.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/contextmenu.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ContextMenu matches the official SwiftUI [contextMenu API]() and displays a menu when long-pressed. For single-tap menu interactions, use [`Menu`](menu) instead. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/controlgroup.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/controlgroup.mdx index 22fdd7325dcf88..f79e17cb533f23 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/controlgroup.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/controlgroup.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ControlGroup matches the official SwiftUI [ControlGroup API](https://developer.apple.com/documentation/swiftui/controlgroup). When placed inside a [`Menu`](menu), the children are rendered as a compact horizontal row of buttons. -
- -
+ > **Note:** On tvOS, `ControlGroup` requires tvOS 17.0 or later. diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/datepicker.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/datepicker.mdx index ec42b408b5c7cb..663d1ff86d840c 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/datepicker.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/datepicker.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI DatePicker matches the official SwiftUI [DatePicker API](https://developer.apple.com/documentation/swiftui/datepicker) and supports styling via the [`datePickerStyle`](modifiers/#datepickerstylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/disclosuregroup.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/disclosuregroup.mdx index 50401ddeef0d72..13645e08ae0a75 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/disclosuregroup.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/disclosuregroup.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI DisclosureGroup matches the official SwiftUI [DisclosureGroup API](https://developer.apple.com/documentation/swiftui/disclosuregroup) and displays a disclosure indicator that reveals or hides content. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/divider.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/divider.mdx index 9eb4c2c331f11a..d7e5cffd6f2d39 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/divider.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/divider.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Divider matches the official SwiftUI [Divider API](https://developer.apple.com/documentation/swiftui/divider) and creates a visual separator between content. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/form.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/form.mdx index c3c7a501ba9ca7..2a2e4e22cf6807 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/form.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/form.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Form matches the official SwiftUI [Form API](https://developer.apple.com/documentation/swiftui/form). It provides a container for grouping controls used for data entry, such as in settings or inspection panes. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/gauge.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/gauge.mdx index 28b8b11206d7fb..415bf3d2a7a807 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/gauge.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/gauge.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Gauge matches the official SwiftUI [Gauge API](https://developer.apple.com/documentation/swiftui/gauge) and supports styling via the [`gaugeStyle`](modifiers/#gaugestylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/group.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/group.mdx index 5a24f8aaf6b7c3..a330aa6fb8989c 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/group.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/group.mdx @@ -8,19 +8,9 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; Expo UI Group matches the official SwiftUI [Group API](https://developer.apple.com/documentation/swiftui/group) and groups views together without introducing additional layout structure. -
- -
- ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/hstack.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/hstack.mdx index ab30d279c4bb0e..7dac89e22406aa 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/hstack.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/hstack.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI HStack matches the official SwiftUI [HStack API](https://developer.apple.com/documentation/swiftui/hstack) and arranges its children horizontally. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/image.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/image.mdx index df9a93c8650f9d..9783f4106f4b1a 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/image.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/image.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Image displays SF Symbols using the SwiftUI [Image API](https://developer.apple.com/documentation/swiftui/image). SF Symbols are a library of configurable symbols provided by Apple. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/label.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/label.mdx index b425c5a9c130cb..c4e65e48f16ea0 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/label.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/label.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Label matches the official SwiftUI [Label API](https://developer.apple.com/documentation/swiftui/label) and displays a title alongside an icon. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/link.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/link.mdx index 782ea74032ef4a..f9aea454be9e8b 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/link.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/link.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Link matches the official SwiftUI [Link API](https://developer.apple.com/documentation/swiftui/link). -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/list.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/list.mdx index 630841bde7a69e..55f5e0f2cd4c01 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/list.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/list.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI List matches the official SwiftUI [List API](https://developer.apple.com/documentation/swiftui/list) and supports styling via the [`listStyle`](modifiers/#liststylestyle) modifier, various row/section modifiers, as well as selection, reordering, and editing capabilities. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/menu.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/menu.mdx index 14c83e61d2172d..e679d234f09a91 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/menu.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/menu.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Menu matches the official SwiftUI [Menu API](https://developer.apple.com/documentation/swiftui/menu) and supports styling via the [`buttonStyle`](modifiers/#buttonstylestyle) modifier. Menu opens on a single tap. For long-press interactions, use [`ContextMenu`](contextmenu) instead. -
- -
+ > **Note:** On tvOS, Menu requires tvOS 17.0 or later. diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/overlay.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/overlay.mdx index f85820d26d61dc..4d7449e0406fe0 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/overlay.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/overlay.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvOS', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Overlay matches the official SwiftUI [overlay]() modifier and provides a way to layer secondary content on top of a view, positioned with a specified alignment. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/picker.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/picker.mdx index 946fcd019d0c33..8f0c7230d71e79 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/picker.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/picker.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Picker matches the official SwiftUI [Picker API](https://developer.apple.com/documentation/swiftui/picker) and supports all picker styles via the [`pickerStyle`](modifiers/#pickerstylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/popover.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/popover.mdx index 8d3d07e90e171a..6794c27acc7942 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/popover.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/popover.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Popover matches the official SwiftUI [Popover API]() and provides a way to present content in a floating overlay anchored to a trigger element. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/progressview.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/progressview.mdx index 8a8615624f1fe6..9c254584b3a5de 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/progressview.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/progressview.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ProgressView matches the official SwiftUI [ProgressView API](https://developer.apple.com/documentation/swiftui/progressview) and supports styling via the [`progressViewStyle`](modifiers/#progressviewstylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/scrollview.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/scrollview.mdx index b69b27b2c85b01..2aae9c114c6957 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/scrollview.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/scrollview.mdx @@ -8,19 +8,9 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; Expo UI ScrollView matches the official SwiftUI [ScrollView API](https://developer.apple.com/documentation/swiftui/scrollview) and provides a scrollable container for its children. -
- -
- ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/section.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/section.mdx index 7d51e726658698..d01b2e8dbb2fa1 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/section.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/section.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Section matches the official SwiftUI [Section API](https://developer.apple.com/documentation/swiftui/section) and is used to group related content within [`List`](list), [`Form`](form) or [`Picker`](picker) components. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/securefield.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/securefield.mdx index 300025663d8409..01a96f877ba8b9 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/securefield.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/securefield.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI SecureField matches the official SwiftUI [SecureField API](https://developer.apple.com/documentation/swiftui/securefield) and provides a text field that masks user input for passwords and other sensitive text. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/slider.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/slider.mdx index a7986c87cf7eae..2864d491ce71ab 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/slider.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/slider.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Slider matches the official SwiftUI [Slider API](https://developer.apple.com/documentation/swiftui/slider) and allows selecting values from a bounded range. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/spacer.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/spacer.mdx index 090f38d5c10ca9..f19c1a50a12f17 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/spacer.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/spacer.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Spacer matches the official SwiftUI [Spacer API](https://developer.apple.com/documentation/swiftui/spacer) and expands to fill available space in a stack. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/tabview.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/tabview.mdx index d85fb16ce06192..b6c56aef1599c1 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/tabview.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/tabview.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI TabView matches the official SwiftUI [TabView API](https://developer.apple.com/documentation/swiftui/tabview) and switches between styles via the [`tabViewStyle`](modifiers/#tabviewstyleconfig) modifier. -
- -
+ > **Note:** For routed bottom-tab navigation across full-screen routes, use [expo-router/unstable-native-tabs`](/router/advanced/native-tabs/) instead. diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/text.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/text.mdx index 8df56627049732..dbe96c8c50675f 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/text.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/text.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Text matches the official SwiftUI [Text API](https://developer.apple.com/documentation/swiftui/text). -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/textfield.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/textfield.mdx index 90d9de3fc256c6..bb3ccfe2f4be58 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/textfield.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/textfield.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI TextField matches the official SwiftUI [TextField API](https://developer.apple.com/documentation/swiftui/textfield) and supports single-line and multiline input, keyboard configuration, submit handling, and an imperative `ref` for programmatic control. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/toggle.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/toggle.mdx index ac5d04a7cbfd13..bd0335dca32516 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/toggle.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/toggle.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI Toggle matches the official SwiftUI [Toggle API](https://developer.apple.com/documentation/swiftui/toggle) and supports styling via the [`toggleStyle`](modifiers/#togglestylestyle) modifier. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/vstack.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/vstack.mdx index 002f8709030e83..7e14dd6d80a6c5 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/vstack.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/vstack.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI VStack matches the official SwiftUI [VStack API](https://developer.apple.com/documentation/swiftui/vstack) and arranges its children vertically. -
- -
+ ## Installation diff --git a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/zstack.mdx b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/zstack.mdx index 9d14202aee3f3a..10b217be90bbf0 100644 --- a/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/zstack.mdx +++ b/docs/pages/versions/v56.0.0/sdk/ui/swift-ui/zstack.mdx @@ -8,18 +8,16 @@ platforms: ['ios', 'tvos', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { Diagram } from '~/ui/components/Diagram'; +import { ComponentDiagram } from '~/ui/components/Diagram'; Expo UI ZStack matches the official SwiftUI [ZStack API](https://developer.apple.com/documentation/swiftui/zstack) and overlays its children on top of each other. -
- -
+ ## Installation diff --git a/docs/public/static/images/expo-ui/bottomsheet/ios-dark.webp b/docs/public/static/images/expo-ui/bottomsheet/ios-dark.webp index 0d3c7b30a9799e..bf28465e042bce 100644 Binary files a/docs/public/static/images/expo-ui/bottomsheet/ios-dark.webp and b/docs/public/static/images/expo-ui/bottomsheet/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/bottomsheet/ios-light.webp b/docs/public/static/images/expo-ui/bottomsheet/ios-light.webp index 323407ac710bb7..1560c9668095b2 100644 Binary files a/docs/public/static/images/expo-ui/bottomsheet/ios-light.webp and b/docs/public/static/images/expo-ui/bottomsheet/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/button/ios-dark.webp b/docs/public/static/images/expo-ui/button/ios-dark.webp index c5c6c93006899f..149c70c985ad9c 100644 Binary files a/docs/public/static/images/expo-ui/button/ios-dark.webp and b/docs/public/static/images/expo-ui/button/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/button/ios-light.webp b/docs/public/static/images/expo-ui/button/ios-light.webp index 51e1644c6f2355..90692a9b5604f9 100644 Binary files a/docs/public/static/images/expo-ui/button/ios-light.webp and b/docs/public/static/images/expo-ui/button/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/colorpicker/ios-dark.webp b/docs/public/static/images/expo-ui/colorpicker/ios-dark.webp index 498213ef6b0f95..778dc366962574 100644 Binary files a/docs/public/static/images/expo-ui/colorpicker/ios-dark.webp and b/docs/public/static/images/expo-ui/colorpicker/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/colorpicker/ios-light.webp b/docs/public/static/images/expo-ui/colorpicker/ios-light.webp index a78306f4d9df1b..50800910058933 100644 Binary files a/docs/public/static/images/expo-ui/colorpicker/ios-light.webp and b/docs/public/static/images/expo-ui/colorpicker/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/confirmationdialog/ios-dark.webp b/docs/public/static/images/expo-ui/confirmationdialog/ios-dark.webp index d5348af987db17..3565413b0a6a6d 100644 Binary files a/docs/public/static/images/expo-ui/confirmationdialog/ios-dark.webp and b/docs/public/static/images/expo-ui/confirmationdialog/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/confirmationdialog/ios-light.webp b/docs/public/static/images/expo-ui/confirmationdialog/ios-light.webp index 8355e4ea6cf19a..af067fd430a815 100644 Binary files a/docs/public/static/images/expo-ui/confirmationdialog/ios-light.webp and b/docs/public/static/images/expo-ui/confirmationdialog/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/contextmenu/ios-dark.webp b/docs/public/static/images/expo-ui/contextmenu/ios-dark.webp index ae5b927dac3d8b..1f59ec3fe47e50 100644 Binary files a/docs/public/static/images/expo-ui/contextmenu/ios-dark.webp and b/docs/public/static/images/expo-ui/contextmenu/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/contextmenu/ios-light.webp b/docs/public/static/images/expo-ui/contextmenu/ios-light.webp index e068ee3b0cbf5b..0a914451e7e9ce 100644 Binary files a/docs/public/static/images/expo-ui/contextmenu/ios-light.webp and b/docs/public/static/images/expo-ui/contextmenu/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/controlgroup/ios-dark.webp b/docs/public/static/images/expo-ui/controlgroup/ios-dark.webp index e9f5dce472a96f..49d7498ffc0b47 100644 Binary files a/docs/public/static/images/expo-ui/controlgroup/ios-dark.webp and b/docs/public/static/images/expo-ui/controlgroup/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/controlgroup/ios-light.webp b/docs/public/static/images/expo-ui/controlgroup/ios-light.webp index 9cf18eebe0806d..d6373316acbada 100644 Binary files a/docs/public/static/images/expo-ui/controlgroup/ios-light.webp and b/docs/public/static/images/expo-ui/controlgroup/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/datepicker/ios-dark.webp b/docs/public/static/images/expo-ui/datepicker/ios-dark.webp index 66e94013cb59c9..42843eaf3d760a 100644 Binary files a/docs/public/static/images/expo-ui/datepicker/ios-dark.webp and b/docs/public/static/images/expo-ui/datepicker/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/datepicker/ios-light.webp b/docs/public/static/images/expo-ui/datepicker/ios-light.webp index c126d5c3152974..0f91014d743f66 100644 Binary files a/docs/public/static/images/expo-ui/datepicker/ios-light.webp and b/docs/public/static/images/expo-ui/datepicker/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/disclosuregroup/ios-dark.webp b/docs/public/static/images/expo-ui/disclosuregroup/ios-dark.webp index 6ac252c7e14e54..9179131cf4cc9b 100644 Binary files a/docs/public/static/images/expo-ui/disclosuregroup/ios-dark.webp and b/docs/public/static/images/expo-ui/disclosuregroup/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/disclosuregroup/ios-light.webp b/docs/public/static/images/expo-ui/disclosuregroup/ios-light.webp index 06d85bf3e3c1ef..01cc2d80476bed 100644 Binary files a/docs/public/static/images/expo-ui/disclosuregroup/ios-light.webp and b/docs/public/static/images/expo-ui/disclosuregroup/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/divider/ios-dark.webp b/docs/public/static/images/expo-ui/divider/ios-dark.webp index d7df206c779e42..aac5e5661a0cf0 100644 Binary files a/docs/public/static/images/expo-ui/divider/ios-dark.webp and b/docs/public/static/images/expo-ui/divider/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/divider/ios-light.webp b/docs/public/static/images/expo-ui/divider/ios-light.webp index c88fa607cecf16..00b83f7895759c 100644 Binary files a/docs/public/static/images/expo-ui/divider/ios-light.webp and b/docs/public/static/images/expo-ui/divider/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/form/ios-dark.webp b/docs/public/static/images/expo-ui/form/ios-dark.webp index d34a311207b31f..08f5b15bce5c91 100644 Binary files a/docs/public/static/images/expo-ui/form/ios-dark.webp and b/docs/public/static/images/expo-ui/form/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/form/ios-light.webp b/docs/public/static/images/expo-ui/form/ios-light.webp index 2114d7cfea5662..1d3c039a53ad7f 100644 Binary files a/docs/public/static/images/expo-ui/form/ios-light.webp and b/docs/public/static/images/expo-ui/form/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/gauge/ios-dark.webp b/docs/public/static/images/expo-ui/gauge/ios-dark.webp index f36546f74e5ee8..475d5843bcdecc 100644 Binary files a/docs/public/static/images/expo-ui/gauge/ios-dark.webp and b/docs/public/static/images/expo-ui/gauge/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/gauge/ios-light.webp b/docs/public/static/images/expo-ui/gauge/ios-light.webp index 9de07c29960c0f..1b5f86c0644693 100644 Binary files a/docs/public/static/images/expo-ui/gauge/ios-light.webp and b/docs/public/static/images/expo-ui/gauge/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/group/ios-dark.webp b/docs/public/static/images/expo-ui/group/ios-dark.webp deleted file mode 100644 index 685dbfcf048675..00000000000000 Binary files a/docs/public/static/images/expo-ui/group/ios-dark.webp and /dev/null differ diff --git a/docs/public/static/images/expo-ui/group/ios-light.webp b/docs/public/static/images/expo-ui/group/ios-light.webp deleted file mode 100644 index d7b2c521394e68..00000000000000 Binary files a/docs/public/static/images/expo-ui/group/ios-light.webp and /dev/null differ diff --git a/docs/public/static/images/expo-ui/hstack/ios-dark.webp b/docs/public/static/images/expo-ui/hstack/ios-dark.webp index 4cb4cb48a4483d..ba94a3494fd513 100644 Binary files a/docs/public/static/images/expo-ui/hstack/ios-dark.webp and b/docs/public/static/images/expo-ui/hstack/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/hstack/ios-light.webp b/docs/public/static/images/expo-ui/hstack/ios-light.webp index 9085637670e685..2d9db97adb31a8 100644 Binary files a/docs/public/static/images/expo-ui/hstack/ios-light.webp and b/docs/public/static/images/expo-ui/hstack/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/image/ios-dark.webp b/docs/public/static/images/expo-ui/image/ios-dark.webp index 870042b9fce5d2..9323562835c985 100644 Binary files a/docs/public/static/images/expo-ui/image/ios-dark.webp and b/docs/public/static/images/expo-ui/image/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/image/ios-light.webp b/docs/public/static/images/expo-ui/image/ios-light.webp index 5e598e94c97247..30971034e64b58 100644 Binary files a/docs/public/static/images/expo-ui/image/ios-light.webp and b/docs/public/static/images/expo-ui/image/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/label/ios-dark.webp b/docs/public/static/images/expo-ui/label/ios-dark.webp index e062dbaaf67d60..d7092d02f0a7e5 100644 Binary files a/docs/public/static/images/expo-ui/label/ios-dark.webp and b/docs/public/static/images/expo-ui/label/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/label/ios-light.webp b/docs/public/static/images/expo-ui/label/ios-light.webp index 2b6979dd7620e3..87b3c755e9a694 100644 Binary files a/docs/public/static/images/expo-ui/label/ios-light.webp and b/docs/public/static/images/expo-ui/label/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/link/ios-dark.webp b/docs/public/static/images/expo-ui/link/ios-dark.webp index b94ac0dba3ba15..7389ab1c11b1e2 100644 Binary files a/docs/public/static/images/expo-ui/link/ios-dark.webp and b/docs/public/static/images/expo-ui/link/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/link/ios-light.webp b/docs/public/static/images/expo-ui/link/ios-light.webp index c549ecd6becc73..ff64f856f6952d 100644 Binary files a/docs/public/static/images/expo-ui/link/ios-light.webp and b/docs/public/static/images/expo-ui/link/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/list/ios-dark.webp b/docs/public/static/images/expo-ui/list/ios-dark.webp index 62a46e4480d71e..ae9b6a66e084c6 100644 Binary files a/docs/public/static/images/expo-ui/list/ios-dark.webp and b/docs/public/static/images/expo-ui/list/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/list/ios-light.webp b/docs/public/static/images/expo-ui/list/ios-light.webp index 98d7da7d5155d7..a7b482870d69aa 100644 Binary files a/docs/public/static/images/expo-ui/list/ios-light.webp and b/docs/public/static/images/expo-ui/list/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/menu/ios-dark.webp b/docs/public/static/images/expo-ui/menu/ios-dark.webp index d6049a0f2ed46c..0aed9bab4f7317 100644 Binary files a/docs/public/static/images/expo-ui/menu/ios-dark.webp and b/docs/public/static/images/expo-ui/menu/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/menu/ios-light.webp b/docs/public/static/images/expo-ui/menu/ios-light.webp index d00df5253931f2..5951e629f0340b 100644 Binary files a/docs/public/static/images/expo-ui/menu/ios-light.webp and b/docs/public/static/images/expo-ui/menu/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/overlay/ios-dark.webp b/docs/public/static/images/expo-ui/overlay/ios-dark.webp index 32df7c1df288ac..df92f53b8cf2e4 100644 Binary files a/docs/public/static/images/expo-ui/overlay/ios-dark.webp and b/docs/public/static/images/expo-ui/overlay/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/overlay/ios-light.webp b/docs/public/static/images/expo-ui/overlay/ios-light.webp index 9608291934dabf..ca91438ddc42c5 100644 Binary files a/docs/public/static/images/expo-ui/overlay/ios-light.webp and b/docs/public/static/images/expo-ui/overlay/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/picker/ios-dark.webp b/docs/public/static/images/expo-ui/picker/ios-dark.webp index e2f7ceb4578eac..1949b4fcd73639 100644 Binary files a/docs/public/static/images/expo-ui/picker/ios-dark.webp and b/docs/public/static/images/expo-ui/picker/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/picker/ios-light.webp b/docs/public/static/images/expo-ui/picker/ios-light.webp index f7347febab767d..71ba3afb1e0314 100644 Binary files a/docs/public/static/images/expo-ui/picker/ios-light.webp and b/docs/public/static/images/expo-ui/picker/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/popover/ios-dark.webp b/docs/public/static/images/expo-ui/popover/ios-dark.webp index 3e5369abed9154..0f5d7cb7f3175d 100644 Binary files a/docs/public/static/images/expo-ui/popover/ios-dark.webp and b/docs/public/static/images/expo-ui/popover/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/popover/ios-light.webp b/docs/public/static/images/expo-ui/popover/ios-light.webp index f1de4f1b52428b..d902ff01dc5900 100644 Binary files a/docs/public/static/images/expo-ui/popover/ios-light.webp and b/docs/public/static/images/expo-ui/popover/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/progressview/ios-dark.webp b/docs/public/static/images/expo-ui/progressview/ios-dark.webp index 77bb5b3d483ea9..b64bfff1a93c25 100644 Binary files a/docs/public/static/images/expo-ui/progressview/ios-dark.webp and b/docs/public/static/images/expo-ui/progressview/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/progressview/ios-light.webp b/docs/public/static/images/expo-ui/progressview/ios-light.webp index d3988f9e70fea8..2624dc14003d5c 100644 Binary files a/docs/public/static/images/expo-ui/progressview/ios-light.webp and b/docs/public/static/images/expo-ui/progressview/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/scrollview/ios-dark.webp b/docs/public/static/images/expo-ui/scrollview/ios-dark.webp index 39a253f3abd2fb..85ce6de00b51de 100644 Binary files a/docs/public/static/images/expo-ui/scrollview/ios-dark.webp and b/docs/public/static/images/expo-ui/scrollview/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/scrollview/ios-light.webp b/docs/public/static/images/expo-ui/scrollview/ios-light.webp index 2bf507fe58e7ab..826ac1af4e69d8 100644 Binary files a/docs/public/static/images/expo-ui/scrollview/ios-light.webp and b/docs/public/static/images/expo-ui/scrollview/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/section/ios-dark.webp b/docs/public/static/images/expo-ui/section/ios-dark.webp index 5e6ec1efcf662c..9e6f73b5c8ddf8 100644 Binary files a/docs/public/static/images/expo-ui/section/ios-dark.webp and b/docs/public/static/images/expo-ui/section/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/section/ios-light.webp b/docs/public/static/images/expo-ui/section/ios-light.webp index 3f066623a24934..2193c1c97ca8b1 100644 Binary files a/docs/public/static/images/expo-ui/section/ios-light.webp and b/docs/public/static/images/expo-ui/section/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/securefield/ios-dark.webp b/docs/public/static/images/expo-ui/securefield/ios-dark.webp index 854a67f2883ab0..3bfd043c11871a 100644 Binary files a/docs/public/static/images/expo-ui/securefield/ios-dark.webp and b/docs/public/static/images/expo-ui/securefield/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/securefield/ios-light.webp b/docs/public/static/images/expo-ui/securefield/ios-light.webp index 2f3cff2948c9d0..0a69f2805eee13 100644 Binary files a/docs/public/static/images/expo-ui/securefield/ios-light.webp and b/docs/public/static/images/expo-ui/securefield/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/slider/ios-dark.webp b/docs/public/static/images/expo-ui/slider/ios-dark.webp index 4a83fb6665d5c0..b36bf9ef49a521 100644 Binary files a/docs/public/static/images/expo-ui/slider/ios-dark.webp and b/docs/public/static/images/expo-ui/slider/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/slider/ios-light.webp b/docs/public/static/images/expo-ui/slider/ios-light.webp index 0bd07abd981483..b90e9c7a770e71 100644 Binary files a/docs/public/static/images/expo-ui/slider/ios-light.webp and b/docs/public/static/images/expo-ui/slider/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/spacer/ios-dark.webp b/docs/public/static/images/expo-ui/spacer/ios-dark.webp index a9de7050c079e7..27287036b6f185 100644 Binary files a/docs/public/static/images/expo-ui/spacer/ios-dark.webp and b/docs/public/static/images/expo-ui/spacer/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/spacer/ios-light.webp b/docs/public/static/images/expo-ui/spacer/ios-light.webp index 033bad73a49bb3..943cba53ea5da3 100644 Binary files a/docs/public/static/images/expo-ui/spacer/ios-light.webp and b/docs/public/static/images/expo-ui/spacer/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/tabview/ios-dark.webp b/docs/public/static/images/expo-ui/tabview/ios-dark.webp index a619e1006277e4..63c242cc414ced 100644 Binary files a/docs/public/static/images/expo-ui/tabview/ios-dark.webp and b/docs/public/static/images/expo-ui/tabview/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/tabview/ios-light.webp b/docs/public/static/images/expo-ui/tabview/ios-light.webp index 11fa6154aceb76..574a0eddded546 100644 Binary files a/docs/public/static/images/expo-ui/tabview/ios-light.webp and b/docs/public/static/images/expo-ui/tabview/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/text/ios-dark.webp b/docs/public/static/images/expo-ui/text/ios-dark.webp index 10d601a9efa615..257df16b3e793b 100644 Binary files a/docs/public/static/images/expo-ui/text/ios-dark.webp and b/docs/public/static/images/expo-ui/text/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/text/ios-light.webp b/docs/public/static/images/expo-ui/text/ios-light.webp index 62863ec170fb43..ac803ca18c7797 100644 Binary files a/docs/public/static/images/expo-ui/text/ios-light.webp and b/docs/public/static/images/expo-ui/text/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/textfield/ios-dark.webp b/docs/public/static/images/expo-ui/textfield/ios-dark.webp index 4eff7c678fdd2a..64561d351c6f55 100644 Binary files a/docs/public/static/images/expo-ui/textfield/ios-dark.webp and b/docs/public/static/images/expo-ui/textfield/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/textfield/ios-light.webp b/docs/public/static/images/expo-ui/textfield/ios-light.webp index 90996faa40e4e0..60409142186fc7 100644 Binary files a/docs/public/static/images/expo-ui/textfield/ios-light.webp and b/docs/public/static/images/expo-ui/textfield/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/toggle/ios-dark.webp b/docs/public/static/images/expo-ui/toggle/ios-dark.webp index 96482eeb819859..042f730c0bbbb5 100644 Binary files a/docs/public/static/images/expo-ui/toggle/ios-dark.webp and b/docs/public/static/images/expo-ui/toggle/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/toggle/ios-light.webp b/docs/public/static/images/expo-ui/toggle/ios-light.webp index b9504ef0198abc..c43823ece80e1b 100644 Binary files a/docs/public/static/images/expo-ui/toggle/ios-light.webp and b/docs/public/static/images/expo-ui/toggle/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/vstack/ios-dark.webp b/docs/public/static/images/expo-ui/vstack/ios-dark.webp index feda3c6c93b783..055c83b2f8a267 100644 Binary files a/docs/public/static/images/expo-ui/vstack/ios-dark.webp and b/docs/public/static/images/expo-ui/vstack/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/vstack/ios-light.webp b/docs/public/static/images/expo-ui/vstack/ios-light.webp index 13f4e12aaced5f..9302c3c9c03525 100644 Binary files a/docs/public/static/images/expo-ui/vstack/ios-light.webp and b/docs/public/static/images/expo-ui/vstack/ios-light.webp differ diff --git a/docs/public/static/images/expo-ui/zstack/ios-dark.webp b/docs/public/static/images/expo-ui/zstack/ios-dark.webp index 1a5316f1c06757..4ced0993812618 100644 Binary files a/docs/public/static/images/expo-ui/zstack/ios-dark.webp and b/docs/public/static/images/expo-ui/zstack/ios-dark.webp differ diff --git a/docs/public/static/images/expo-ui/zstack/ios-light.webp b/docs/public/static/images/expo-ui/zstack/ios-light.webp index dcfac35b8f9254..3e3fcd2f8e42a6 100644 Binary files a/docs/public/static/images/expo-ui/zstack/ios-light.webp and b/docs/public/static/images/expo-ui/zstack/ios-light.webp differ diff --git a/docs/ui/components/Diagram/ComponentDiagram.tsx b/docs/ui/components/Diagram/ComponentDiagram.tsx new file mode 100644 index 00000000000000..d431921683e52f --- /dev/null +++ b/docs/ui/components/Diagram/ComponentDiagram.tsx @@ -0,0 +1,42 @@ +import { useTheme } from '@expo/styleguide'; +import { useEffect, useState } from 'react'; + +import { prefersDarkTheme } from '~/common/window'; + +import { DotGrid } from './DotGrid'; + +type Props = { + source: string; + alt: string; + darkSource?: string; + mode: 'landscape' | 'portrait'; +}; + +const ASPECT_CLASS = { + landscape: 'aspect-[3/2] w-[540px]', + portrait: 'aspect-[9/16] w-[220px]', +} as const; + +export const ComponentDiagram = ({ source, darkSource, alt, mode }: Props) => { + const { themeName } = useTheme(); + const [isDark, setDark] = useState(themeName === 'dark'); + + useEffect(() => { + if (themeName === 'auto') { + setDark(prefersDarkTheme()); + } else { + setDark(themeName === 'dark'); + } + }, [themeName]); + + return ( +
+ + + {isDark && darkSource && } + {alt} + +
+ ); +}; diff --git a/docs/ui/components/Diagram/index.ts b/docs/ui/components/Diagram/index.ts index cb4e27b1baacf7..202ed0caee4bff 100644 --- a/docs/ui/components/Diagram/index.ts +++ b/docs/ui/components/Diagram/index.ts @@ -1 +1,2 @@ export { Diagram } from './Diagram'; +export { ComponentDiagram } from './ComponentDiagram'; diff --git a/package.json b/package.json index 1cbd454ab76659..26f3c404062461 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ }, "devDependencies": { "@types/jest": "^29.5.12", + "@types/node": "^22.14.0", "@vercel/ncc": "^0.38.4", "expo-module-scripts": "workspace:*", "expotools": "workspace:*", diff --git a/packages/expo-modules-jsi/CHANGELOG.md b/packages/expo-modules-jsi/CHANGELOG.md index 8756bc2afd5d94..d257b229d0638a 100644 --- a/packages/expo-modules-jsi/CHANGELOG.md +++ b/packages/expo-modules-jsi/CHANGELOG.md @@ -8,6 +8,8 @@ ### 🐛 Bug fixes +- [iOS] Fixed `ExpoModulesJSI.xcframework` build failing under `useFrameworks: "static"` + `buildReactNativeFromSource: true` due to missing header search paths. ([#45508](https://github.com/expo/expo/pull/45508) by [@chrfalch](https://github.com/chrfalch)) + ### 💡 Others ## 56.0.1 — 2026-05-06 diff --git a/packages/expo-modules-jsi/apple/Package.swift b/packages/expo-modules-jsi/apple/Package.swift index 951bed943a0632..d816d5df3081fa 100644 --- a/packages/expo-modules-jsi/apple/Package.swift +++ b/packages/expo-modules-jsi/apple/Package.swift @@ -7,15 +7,16 @@ import Foundation let packageDir = URL(fileURLWithPath: #filePath).deletingLastPathComponent().path let podsRoot = resolvePodsRoot() -// Header roots needed by ExpoModulesJSI and ExpoModulesJSI-Cxx. The same paths -// exist in both prebuilt and source-built React Native layouts, so we don't -// need to detect the mode. +// Header roots for ExpoModulesJSI and ExpoModulesJSI-Cxx. The +// Pods/Headers/Public paths cover no-frameworks and prebuilt-RN; the trailing +// entries fall back to canonical sources for the static + source-built RN +// combo, where each React-X / third-party-deps pod compiles as a static +// framework and its headers don't get mirrored to Pods/Headers/Public. Clang +// ignores missing `-I` paths, so they're no-ops elsewhere. `RN_ROOT` is +// forwarded from build-xcframework.sh (Node-resolved for hoisted monorepos). let publicHeaders = "\(podsRoot)/Headers/Public" -// In source-built RN, third-party deps (folly, boost, etc.) live under -// per-pod dirs like RCT-Folly/folly/. In prebuilt RN they're bundled into -// ReactNativeDependencies. Some pods nest their headers (e.g. RCT-Folly/folly/), -// others place them directly (e.g. boost/preprocessor/), so we include both -// the Headers/Public root and the per-pod dirs for the nested ones. +let reactNative = ProcessInfo.processInfo.environment["RN_ROOT"] + ?? "\(podsRoot)/../../node_modules/react-native" let headerSearchPaths = [ publicHeaders, "\(publicHeaders)/React-jsi", @@ -33,6 +34,14 @@ let headerSearchPaths = [ "\(publicHeaders)/DoubleConversion", "\(publicHeaders)/fmt", "\(publicHeaders)/fast_float", + "\(reactNative)/ReactCommon", + "\(reactNative)/ReactCommon/jsi", + "\(reactNative)/ReactCommon/runtimeexecutor", + "\(reactNative)/ReactCommon/callinvoker", + "\(podsRoot)/RCT-Folly", + "\(podsRoot)/fmt/include", + "\(podsRoot)/glog/src", + "\(podsRoot)/DoubleConversion", ] // Path to the generated module map for the `jsi` Clang module. The diff --git a/packages/expo-modules-jsi/apple/scripts/build-xcframework.sh b/packages/expo-modules-jsi/apple/scripts/build-xcframework.sh index e31caf336ff226..f4808e0de2ca94 100755 --- a/packages/expo-modules-jsi/apple/scripts/build-xcframework.sh +++ b/packages/expo-modules-jsi/apple/scripts/build-xcframework.sh @@ -124,10 +124,10 @@ build_slice() { # Use env -i to clear inherited Xcode environment variables from the parent build. # Without this, the nested xcodebuild inherits SDKROOT, PLATFORM_NAME, etc. - # which causes SDK/platform mismatches. PODS_ROOT is forwarded explicitly - # because Package.swift reads it to resolve header search paths. + # which causes SDK/platform mismatches. PODS_ROOT and RN_ROOT are forwarded + # explicitly because Package.swift reads them to resolve header search paths. # Run from PACKAGE_DIR so xcodebuild finds the SPM package, not the Pods project. - (cd "$PACKAGE_DIR" && env -i PATH="$PATH" HOME="$HOME" PODS_ROOT="$PODS_ROOT" \ + (cd "$PACKAGE_DIR" && env -i PATH="$PATH" HOME="$HOME" PODS_ROOT="$PODS_ROOT" RN_ROOT="$RN_ROOT" \ xcodebuild \ build \ -scheme "$PACKAGE_NAME" \ @@ -233,6 +233,18 @@ fi # whether PODS_ROOT was passed as relative or absolute. PODS_ROOT="$(cd "$PODS_ROOT" && pwd)" +# Resolve react-native via Node so the build works in any node_modules layout +# (hoisted monorepos, yarn/pnpm workspaces). Falls back to the relative path +# when `node` is unavailable. Forwarded to Package.swift and the modulemap +# generator below. +RN_ROOT="$(node -p 'require("path").dirname(require.resolve("react-native/package.json"))' 2>/dev/null \ + || echo "${PODS_ROOT}/../../node_modules/react-native")" + +# log detected configuration to verify the fallback path triggers. +mode="$( [[ -d "${PODS_ROOT}/React-Core-prebuilt/React.xcframework" ]] && echo "prebuilt RN" || echo "source-built RN")" +[[ -f "${PODS_ROOT}/Target Support Files/React-jsi/React-jsi-umbrella.h" ]] && mode="${mode}, static frameworks" +log "Detected: ${mode} (RN_ROOT=${RN_ROOT})" + # React Native version — forces a rebuild after an RN upgrade. The local # podspec is regenerated by `pod install` and only changes when the underlying # RN version changes. @@ -241,7 +253,7 @@ if [[ -f "${PODS_ROOT}/Local Podspecs/React-Core.podspec.json" ]]; then fi # Generate the module map for the `jsi` Clang module. -env PODS_ROOT="$PODS_ROOT" "${PACKAGE_DIR}/scripts/generate-modulemap.sh" +env PODS_ROOT="$PODS_ROOT" RN_ROOT="$RN_ROOT" "${PACKAGE_DIR}/scripts/generate-modulemap.sh" GENERATED_MODULE_MAP="${PACKAGE_DIR}/.generated/module.modulemap" SOURCE_FILES+=("$GENERATED_MODULE_MAP") diff --git a/packages/expo-modules-jsi/apple/scripts/generate-modulemap.sh b/packages/expo-modules-jsi/apple/scripts/generate-modulemap.sh index f1b8115bdf7f29..71b23f73b78e91 100755 --- a/packages/expo-modules-jsi/apple/scripts/generate-modulemap.sh +++ b/packages/expo-modules-jsi/apple/scripts/generate-modulemap.sh @@ -3,11 +3,13 @@ # Writes `.generated/module.modulemap` for the `jsi` Clang module. # # The umbrella header is referenced by absolute path so the modulemap works -# regardless of where Pods lives. The same Pods/Headers/Public/React-jsi/jsi/jsi.h -# path exists in both prebuilt and source-built React Native layouts. Stored -# outside `.build/` so SwiftPM state can be wiped without losing this file. +# regardless of where Pods lives. The `Pods/Headers/Public` path exists in +# non-frameworks and prebuilt-RN layouts; under static frameworks + +# source-built RN it doesn't, so we fall back to the canonical RN source. +# Stored outside `.build/` so SwiftPM state can be wiped without losing this +# file. # -# Idempotent: re-running with the same PODS_ROOT rewrites identical content. +# Idempotent: re-running with the same inputs rewrites identical content. # Switching PODS_ROOT updates the umbrella header path. # # Used by build-xcframework.sh and test.sh; can also be run manually before @@ -34,10 +36,17 @@ GENERATED_DIR="${PACKAGE_DIR}/.generated" GENERATED_MODULE_MAP="${GENERATED_DIR}/module.modulemap" mkdir -p "$GENERATED_DIR" +JSI_UMBRELLA="${PODS_ROOT}/Headers/Public/React-jsi/jsi/jsi.h" +if [[ ! -f "$JSI_UMBRELLA" ]]; then + RN="${RN_ROOT:-$(node -p 'require("path").dirname(require.resolve("react-native/package.json"))' 2>/dev/null || echo "${PODS_ROOT}/../../node_modules/react-native")}" + JSI_UMBRELLA="${RN}/ReactCommon/jsi/jsi/jsi.h" +fi +[[ -f "$JSI_UMBRELLA" ]] || { echo "error: cannot locate jsi.h" >&2; exit 1; } + # Avoid touching the file when contents would be identical, so the xcframework -# hash cache and Xcode don't see a spurious change when PODS_ROOT is unchanged. +# hash cache and Xcode don't see a spurious change when inputs are unchanged. NEW_CONTENT="module jsi { - umbrella header \"${PODS_ROOT}/Headers/Public/React-jsi/jsi/jsi.h\" + umbrella header \"${JSI_UMBRELLA}\" export * module * { export * } diff --git a/packages/expo-ui/CHANGELOG.md b/packages/expo-ui/CHANGELOG.md index 972153d75ec1e9..fc82a28edcbb32 100644 --- a/packages/expo-ui/CHANGELOG.md +++ b/packages/expo-ui/CHANGELOG.md @@ -10,6 +10,8 @@ ### 💡 Others +- [universal] Refactored web components to use `StyleSheet.create` instead of inline styles, added `react-native-web` type declarations, and tightened prop handling. ([#45485](https://github.com/expo/expo/pull/45485) by [@zoontek](https://github.com/zoontek)) + ## 56.0.3 — 2026-05-07 _This version does not introduce any user-facing changes._ diff --git a/packages/expo-ui/build/universal/Button/index.d.ts.map b/packages/expo-ui/build/universal/Button/index.d.ts.map index 848a5a38a6210e..7874d9f766f0c4 100644 --- a/packages/expo-ui/build/universal/Button/index.d.ts.map +++ b/packages/expo-ui/build/universal/Button/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Button/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AA2C1D;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,OAAkB,EAClB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,GACP,EAAE,WAAW,2CAyBb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AAoC1D;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,OAAkB,EAClB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAgB,EAChB,MAAc,EACd,MAAM,GACP,EAAE,WAAW,2CAoBb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Checkbox/index.d.ts.map b/packages/expo-ui/build/universal/Checkbox/index.d.ts.map index 00d63f9bc342c1..f11718c256ea15 100644 --- a/packages/expo-ui/build/universal/Checkbox/index.d.ts.map +++ b/packages/expo-ui/build/universal/Checkbox/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,2CAaxF;AAcD,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Checkbox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAwB7C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAgB,EAAE,MAAM,EAAE,EAAE,aAAa,2CAahG;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Column/index.d.ts.map b/packages/expo-ui/build/universal/Column/index.d.ts.map index 383c24ef9da075..ef880b00afaf87 100644 --- a/packages/expo-ui/build/universal/Column/index.d.ts.map +++ b/packages/expo-ui/build/universal/Column/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Column/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAU3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,SAAmB,EACnB,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,GACP,EAAE,WAAW,2CAmBb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Column/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAmB3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,SAAmB,EACnB,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAgB,EAChB,MAAc,EACd,MAAM,GACP,EAAE,WAAW,2CAqBb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/FieldGroup/FieldGroup.d.ts.map b/packages/expo-ui/build/universal/FieldGroup/FieldGroup.d.ts.map index 0e941a46fe3f23..fa452c904d212f 100644 --- a/packages/expo-ui/build/universal/FieldGroup/FieldGroup.d.ts.map +++ b/packages/expo-ui/build/universal/FieldGroup/FieldGroup.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"FieldGroup.d.ts","sourceRoot":"","sources":["../../../src/universal/FieldGroup/FieldGroup.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,GACP,EAAE,eAAe,2CAkBjB"} \ No newline at end of file +{"version":3,"file":"FieldGroup.d.ts","sourceRoot":"","sources":["../../../src/universal/FieldGroup/FieldGroup.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqB/C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAc,EACd,MAAM,GACP,EAAE,eAAe,2CAkBjB"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/FieldGroup/FieldSection.d.ts.map b/packages/expo-ui/build/universal/FieldGroup/FieldSection.d.ts.map index 15995754f5a1d4..7d8f5b6b14d504 100644 --- a/packages/expo-ui/build/universal/FieldGroup/FieldSection.d.ts.map +++ b/packages/expo-ui/build/universal/FieldGroup/FieldSection.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"FieldSection.d.ts","sourceRoot":"","sources":["../../../src/universal/FieldGroup/FieldSection.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,EACN,cAAsB,GACvB,EAAE,iBAAiB,2CA2CnB"} \ No newline at end of file +{"version":3,"file":"FieldSection.d.ts","sourceRoot":"","sources":["../../../src/universal/FieldGroup/FieldSection.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAuDjD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,EACN,cAAsB,GACvB,EAAE,iBAAiB,2CAsCnB"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Row/index.d.ts.map b/packages/expo-ui/build/universal/Row/index.d.ts.map index 894d2d9fb09da4..e88687baa652a6 100644 --- a/packages/expo-ui/build/universal/Row/index.d.ts.map +++ b/packages/expo-ui/build/universal/Row/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Row/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUxC;;GAEG;AACH,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,SAAmB,EACnB,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,GACP,EAAE,QAAQ,2CAyBV;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Row/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA2BxC;;GAEG;AACH,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,SAAmB,EACnB,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAgB,EAChB,MAAc,EACd,MAAM,GACP,EAAE,QAAQ,2CAqBV;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/ScrollView/index.d.ts.map b/packages/expo-ui/build/universal/ScrollView/index.d.ts.map index 07152e1eecf690..c66ee7df22c4f7 100644 --- a/packages/expo-ui/build/universal/ScrollView/index.d.ts.map +++ b/packages/expo-ui/build/universal/ScrollView/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/ScrollView/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C;;GAEG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,SAAsB,EACtB,eAAsB,EACtB,KAAK,EAGL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,GACP,EAAE,eAAe,2CA+BjB;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/ScrollView/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB/C;;GAEG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,SAAsB,EACtB,eAAsB,EACtB,KAAK,EAGL,QAAQ,EACR,WAAW,EACX,QAAgB,EAChB,MAAc,EACd,MAAM,GACP,EAAE,eAAe,2CA2BjB;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Slider/index.d.ts.map b/packages/expo-ui/build/universal/Slider/index.d.ts.map index bd13b9b090ca8c..74a04904dea1ca 100644 --- a/packages/expo-ui/build/universal/Slider/index.d.ts.map +++ b/packages/expo-ui/build/universal/Slider/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Slider/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,aAAa,EACb,GAAO,EACP,GAAO,EACP,IAAI,EACJ,QAAQ,EACR,MAAM,GACP,EAAE,WAAW,2CAgBb;AAYD,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Slider/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAiB3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,aAAa,EACb,GAAO,EACP,GAAO,EACP,IAAI,EACJ,QAAgB,EAChB,MAAM,GACP,EAAE,WAAW,2CAeb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Spacer/index.d.ts.map b/packages/expo-ui/build/universal/Spacer/index.d.ts.map index e86326560873d4..357e6f1b5b3acb 100644 --- a/packages/expo-ui/build/universal/Spacer/index.d.ts.map +++ b/packages/expo-ui/build/universal/Spacer/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Spacer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;GAGG;AACH,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,GACP,EAAE,WAAW,2CAWb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Spacer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQ3C;;;GAGG;AACH,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAc,EACd,MAAM,GACP,EAAE,WAAW,2CAcb;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Switch/index.d.ts.map b/packages/expo-ui/build/universal/Switch/index.d.ts.map index 4c207088e3ec74..9e23ce828cc517 100644 --- a/packages/expo-ui/build/universal/Switch/index.d.ts.map +++ b/packages/expo-ui/build/universal/Switch/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Switch/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,2CAoBpF;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Switch/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAc3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAgB,EAAE,MAAM,EAAE,EAAE,WAAW,2CAa5F;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/universal/Text/index.d.ts.map b/packages/expo-ui/build/universal/Text/index.d.ts.map index 7ea8050a03e1a1..df0f5f7e428c51 100644 --- a/packages/expo-ui/build/universal/Text/index.d.ts.map +++ b/packages/expo-ui/build/universal/Text/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Text/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC;;GAEG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,GACP,EAAE,SAAS,2CA+BX;AAkBD,cAAc,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/Text/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAUzC;;GAEG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAgB,EAChB,MAAc,EACd,MAAM,GACP,EAAE,SAAS,2CAqBX;AAED,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/src/ts-declarations/react-native-web.d.ts b/packages/expo-ui/src/ts-declarations/react-native-web.d.ts new file mode 100644 index 00000000000000..10ce2ee2a701a1 --- /dev/null +++ b/packages/expo-ui/src/ts-declarations/react-native-web.d.ts @@ -0,0 +1,112 @@ +import * as ReactNative from 'react-native'; + +declare module 'react-native' { + export const unstable_createElement:

( + type: React.ElementType, + props?: P + ) => React.ReactElement

; + + type DisplayValue = ReactNative.FlexStyle['display'] | 'inline-flex'; + + type WebRole = + | ReactNative.Role + /** + * Accessibility roles mapped to components + * @see https://github.com/necolas/react-native-web/blob/0.19.1/packages/react-native-web/src/modules/AccessibilityUtil/propsToAccessibilityComponent.js + */ + | 'article' //

+ | 'banner' //
+ | 'blockquote' //
+ | 'button' //