@expo/ui 58.0.2 → 58.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/ui/RNHostView.kt +2 -2
- package/build/PresentedContentContext.d.ts +1 -1
- package/build/community/bottom-sheet/BottomSheet.android.d.ts +1 -1
- package/build/community/bottom-sheet/BottomSheet.d.ts +1 -1
- package/build/community/bottom-sheet/BottomSheet.ios.d.ts +1 -1
- package/build/community/bottom-sheet/index.d.ts +3 -3
- package/build/community/bottom-sheet/scrollContextReset.d.ts +1 -1
- package/build/community/datetime-picker/DateTimePicker.android.d.ts +1 -1
- package/build/community/datetime-picker/DateTimePicker.d.ts +1 -1
- package/build/community/masked-view/MaskedView.android.d.ts +1 -1
- package/build/community/masked-view/MaskedView.d.ts +1 -1
- package/build/community/masked-view/MaskedView.ios.d.ts +1 -1
- package/build/community/menu/MenuView.android.d.ts +1 -1
- package/build/community/menu/MenuView.d.ts +1 -1
- package/build/community/menu/MenuView.ios.d.ts +1 -1
- package/build/community/pager-view/PagerView.android.d.ts +1 -1
- package/build/community/pager-view/PagerView.ios.d.ts +1 -1
- package/build/community/picker/Picker.android.d.ts +1 -1
- package/build/community/picker/Picker.d.ts +1 -1
- package/build/community/picker/Picker.ios.d.ts +1 -1
- package/build/community/segmented-control/SegmentedControl.android.d.ts +1 -1
- package/build/community/segmented-control/SegmentedControl.ios.d.ts +1 -1
- package/build/community/segmented-control/vendor/SegmentedControl.d.ts +2 -1
- package/build/community/segmented-control/vendor/SegmentedControlTab.d.ts +1 -1
- package/build/community/segmented-control/vendor/SegmentsSeparators.d.ts +1 -1
- package/build/community/slider/Slider.android.d.ts +1 -1
- package/build/community/slider/Slider.d.ts +2 -1
- package/build/community/slider/Slider.ios.d.ts +1 -1
- package/build/jetpack-compose/AlertDialog/index.d.ts +6 -6
- package/build/jetpack-compose/AnimatedVisibility/index.d.ts +1 -1
- package/build/jetpack-compose/Badge/index.d.ts +1 -1
- package/build/jetpack-compose/BadgedBox/index.d.ts +2 -2
- package/build/jetpack-compose/BasicAlertDialog/index.d.ts +1 -1
- package/build/jetpack-compose/Box/index.d.ts +1 -1
- package/build/jetpack-compose/Button/index.d.ts +5 -5
- package/build/jetpack-compose/Checkbox/index.d.ts +2 -2
- package/build/jetpack-compose/Chip/index.d.ts +15 -15
- package/build/jetpack-compose/Column/index.d.ts +1 -1
- package/build/jetpack-compose/DatePicker/index.d.ts +5 -5
- package/build/jetpack-compose/DockedSearchBar/index.d.ts +3 -3
- package/build/jetpack-compose/DropdownMenu/DropdownMenuItem.d.ts +4 -4
- package/build/jetpack-compose/DropdownMenu/index.d.ts +4 -4
- package/build/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.d.ts +1 -1
- package/build/jetpack-compose/ExposedDropdownMenuBox/index.d.ts +1 -1
- package/build/jetpack-compose/FloatingActionButton/index.d.ts +6 -6
- package/build/jetpack-compose/FlowRow/index.d.ts +1 -1
- package/build/jetpack-compose/HorizontalFloatingToolbar/index.d.ts +2 -2
- package/build/jetpack-compose/HorizontalPager/index.d.ts +1 -1
- package/build/jetpack-compose/Host/index.d.ts +1 -1
- package/build/jetpack-compose/Icon/index.d.ts +1 -1
- package/build/jetpack-compose/IconButton/index.d.ts +4 -4
- package/build/jetpack-compose/Image/index.d.ts +1 -1
- package/build/jetpack-compose/LazyColumn/index.d.ts +1 -1
- package/build/jetpack-compose/LazyRow/index.d.ts +1 -1
- package/build/jetpack-compose/ListItem/index.d.ts +6 -6
- package/build/jetpack-compose/ModalBottomSheet/index.d.ts +2 -2
- package/build/jetpack-compose/MultiChoiceSegmentedButtonRow/index.d.ts +1 -1
- package/build/jetpack-compose/NavigationBar/index.d.ts +5 -5
- package/build/jetpack-compose/PullToRefreshBox/index.d.ts +1 -1
- package/build/jetpack-compose/RNHostView/index.d.ts +1 -1
- package/build/jetpack-compose/RadioButton/index.d.ts +1 -1
- package/build/jetpack-compose/Row/index.d.ts +1 -1
- package/build/jetpack-compose/SearchBar/index.d.ts +3 -3
- package/build/jetpack-compose/SegmentedButton/index.d.ts +2 -2
- package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts +1 -1
- package/build/jetpack-compose/Slider/index.d.ts +6 -6
- package/build/jetpack-compose/SlotView.d.ts +1 -1
- package/build/jetpack-compose/Snackbar/index.d.ts +2 -2
- package/build/jetpack-compose/Spacer/index.d.ts +1 -1
- package/build/jetpack-compose/Surface/index.d.ts +1 -1
- package/build/jetpack-compose/Switch/index.d.ts +2 -2
- package/build/jetpack-compose/SyncSwitch/index.d.ts +1 -1
- package/build/jetpack-compose/Text/index.d.ts +1 -1
- package/build/jetpack-compose/TextField/BasicTextField.d.ts +4 -4
- package/build/jetpack-compose/TextField/TextField.d.ts +16 -16
- package/build/jetpack-compose/ToggleButton/index.d.ts +4 -4
- package/build/jetpack-compose/Tooltip/index.d.ts +6 -6
- package/build/keyboard/index.d.ts +1 -1
- package/build/swift-ui/AccessoryWidgetBackground/index.d.ts +1 -1
- package/build/swift-ui/Alert/index.d.ts +4 -4
- package/build/swift-ui/Background/index.d.ts +2 -2
- package/build/swift-ui/BottomSheet/index.d.ts +1 -1
- package/build/swift-ui/Button/index.d.ts +1 -1
- package/build/swift-ui/Chart/index.d.ts +1 -1
- package/build/swift-ui/ColorPicker/index.d.ts +1 -1
- package/build/swift-ui/ConfirmationDialog/index.d.ts +4 -4
- package/build/swift-ui/ContentUnavailableView/index.d.ts +1 -1
- package/build/swift-ui/ContextMenu/index.d.ts +4 -4
- package/build/swift-ui/ControlGroup/index.d.ts +1 -1
- package/build/swift-ui/DatePicker/index.d.ts +1 -1
- package/build/swift-ui/DisclosureGroup/index.d.ts +2 -2
- package/build/swift-ui/Divider/index.d.ts +1 -1
- package/build/swift-ui/Form/index.d.ts +1 -1
- package/build/swift-ui/Gauge/index.d.ts +1 -1
- package/build/swift-ui/GlassEffectContainer/index.d.ts +1 -1
- package/build/swift-ui/Grid/index.d.ts +1 -1
- package/build/swift-ui/Group/index.d.ts +1 -1
- package/build/swift-ui/HStack/index.d.ts +1 -1
- package/build/swift-ui/Host/index.d.ts +1 -1
- package/build/swift-ui/Image/index.d.ts +1 -1
- package/build/swift-ui/Label/index.d.ts +1 -1
- package/build/swift-ui/LabeledContent/index.d.ts +1 -1
- package/build/swift-ui/LazyHStack/index.d.ts +1 -1
- package/build/swift-ui/LazyVStack/index.d.ts +1 -1
- package/build/swift-ui/Link/index.d.ts +1 -1
- package/build/swift-ui/List/ListForEach.d.ts +1 -1
- package/build/swift-ui/List/index.d.ts +1 -1
- package/build/swift-ui/Mask/index.d.ts +2 -2
- package/build/swift-ui/Menu/index.d.ts +1 -1
- package/build/swift-ui/Namespace.d.ts +1 -1
- package/build/swift-ui/NavigationDestination/index.d.ts +1 -1
- package/build/swift-ui/NavigationLink/index.d.ts +1 -1
- package/build/swift-ui/NavigationSplitView/index.d.ts +75 -0
- package/build/swift-ui/NavigationSplitView/index.js +59 -0
- package/build/swift-ui/NavigationSplitView/index.js.map +1 -0
- package/build/swift-ui/NavigationStack/index.d.ts +1 -1
- package/build/swift-ui/Overlay/index.d.ts +2 -2
- package/build/swift-ui/Picker/index.d.ts +1 -1
- package/build/swift-ui/Popover/index.d.ts +3 -3
- package/build/swift-ui/ProgressView/index.d.ts +1 -1
- package/build/swift-ui/RNHostView.d.ts +1 -1
- package/build/swift-ui/ScrollView/index.d.ts +1 -1
- package/build/swift-ui/Section/index.d.ts +1 -1
- package/build/swift-ui/SecureField/index.d.ts +2 -2
- package/build/swift-ui/Shapes/ConcentricRectangle.d.ts +1 -1
- package/build/swift-ui/Shapes/index.d.ts +6 -6
- package/build/swift-ui/ShareLink/index.d.ts +1 -1
- package/build/swift-ui/Slider/index.d.ts +1 -1
- package/build/swift-ui/SlotView.d.ts +1 -1
- package/build/swift-ui/Spacer/index.d.ts +1 -1
- package/build/swift-ui/Stepper/index.d.ts +1 -1
- package/build/swift-ui/SwipeActions/index.d.ts +2 -2
- package/build/swift-ui/SyncToggle/index.d.ts +1 -1
- package/build/swift-ui/TabView/Tab.d.ts +1 -1
- package/build/swift-ui/TabView/index.d.ts +1 -1
- package/build/swift-ui/Text/index.d.ts +1 -1
- package/build/swift-ui/TextField/index.d.ts +2 -2
- package/build/swift-ui/Toggle/index.d.ts +1 -1
- package/build/swift-ui/Toolbar/index.d.ts +52 -2
- package/build/swift-ui/Toolbar/index.js +27 -0
- package/build/swift-ui/Toolbar/index.js.map +1 -1
- package/build/swift-ui/VStack/index.d.ts +1 -1
- package/build/swift-ui/ZStack/index.d.ts +1 -1
- package/build/swift-ui/index.d.ts +1 -0
- package/build/swift-ui/index.js +1 -0
- package/build/swift-ui/index.js.map +1 -1
- package/build/swift-ui/modifiers/index.d.ts +16 -1
- package/build/swift-ui/modifiers/index.js +17 -0
- package/build/swift-ui/modifiers/index.js.map +1 -1
- package/build/swift-ui/modifiers/navigationModifiers.d.ts +27 -0
- package/build/swift-ui/modifiers/navigationModifiers.js +15 -0
- package/build/swift-ui/modifiers/navigationModifiers.js.map +1 -0
- package/build/universal/BottomSheet/index.android.d.ts +1 -1
- package/build/universal/BottomSheet/index.d.ts +1 -1
- package/build/universal/BottomSheet/index.ios.d.ts +1 -1
- package/build/universal/Button/index.android.d.ts +1 -1
- package/build/universal/Button/index.d.ts +1 -1
- package/build/universal/Button/index.ios.d.ts +1 -1
- package/build/universal/Checkbox/index.android.d.ts +1 -1
- package/build/universal/Checkbox/index.d.ts +1 -1
- package/build/universal/Checkbox/index.ios.d.ts +1 -1
- package/build/universal/Collapsible/index.android.d.ts +1 -1
- package/build/universal/Collapsible/index.d.ts +1 -1
- package/build/universal/Collapsible/index.ios.d.ts +1 -1
- package/build/universal/Column/index.android.d.ts +1 -1
- package/build/universal/Column/index.d.ts +1 -1
- package/build/universal/Column/index.ios.d.ts +1 -1
- package/build/universal/FieldGroup/FieldGroup.android.d.ts +1 -1
- package/build/universal/FieldGroup/FieldGroup.d.ts +1 -1
- package/build/universal/FieldGroup/FieldGroup.ios.d.ts +1 -1
- package/build/universal/FieldGroup/FieldSection.android.d.ts +1 -1
- package/build/universal/FieldGroup/FieldSection.d.ts +1 -1
- package/build/universal/FieldGroup/FieldSection.ios.d.ts +1 -1
- package/build/universal/FieldGroup/FieldSectionSlots.d.ts +2 -2
- package/build/universal/Host/index.d.ts +1 -1
- package/build/universal/Icon/index.android.d.ts +1 -1
- package/build/universal/Icon/index.ios.d.ts +1 -1
- package/build/universal/List/index.android.d.ts +1 -1
- package/build/universal/List/index.d.ts +1 -1
- package/build/universal/List/index.ios.d.ts +1 -1
- package/build/universal/ListItem/ListItem.android.d.ts +1 -1
- package/build/universal/ListItem/ListItem.d.ts +1 -1
- package/build/universal/ListItem/ListItem.ios.d.ts +1 -1
- package/build/universal/Picker/Picker.android.d.ts +1 -1
- package/build/universal/Picker/Picker.d.ts +1 -1
- package/build/universal/Picker/Picker.ios.d.ts +1 -1
- package/build/universal/RNHostView/index.android.d.ts +1 -1
- package/build/universal/RNHostView/index.d.ts +1 -1
- package/build/universal/RNHostView/index.ios.d.ts +1 -1
- package/build/universal/Row/index.android.d.ts +1 -1
- package/build/universal/Row/index.d.ts +1 -1
- package/build/universal/Row/index.ios.d.ts +1 -1
- package/build/universal/ScrollView/index.android.d.ts +1 -1
- package/build/universal/ScrollView/index.d.ts +1 -1
- package/build/universal/ScrollView/index.ios.d.ts +1 -1
- package/build/universal/Slider/index.android.d.ts +1 -1
- package/build/universal/Slider/index.d.ts +1 -1
- package/build/universal/Slider/index.ios.d.ts +1 -1
- package/build/universal/Spacer/index.android.d.ts +1 -1
- package/build/universal/Spacer/index.d.ts +1 -1
- package/build/universal/Spacer/index.ios.d.ts +1 -1
- package/build/universal/Switch/index.android.d.ts +1 -1
- package/build/universal/Switch/index.d.ts +1 -1
- package/build/universal/Switch/index.ios.d.ts +1 -1
- package/build/universal/Text/index.android.d.ts +1 -1
- package/build/universal/Text/index.d.ts +1 -1
- package/build/universal/Text/index.ios.d.ts +1 -1
- package/build/universal/TextInput/index.android.d.ts +1 -1
- package/build/universal/TextInput/index.d.ts +1 -1
- package/build/universal/TextInput/index.ios.d.ts +1 -1
- package/build/web/BottomSheetDialog.d.ts +1 -1
- package/expo-module.config.json +1 -1
- package/ios/Convertibles/ToolbarItemPlacementOptions.swift +110 -0
- package/ios/Convertibles/ToolbarItemVisibilityPriorityOptions.swift +35 -0
- package/ios/ExpoUIModule.swift +1 -0
- package/ios/HostView.swift +7 -7
- package/ios/Modifiers/NavigationModifiers.swift +44 -0
- package/ios/Modifiers/ScrollEdgeEffectStyleModifier.swift +34 -0
- package/ios/Modifiers/ViewModifierRegistry.swift +12 -0
- package/ios/NavigationSplitViewView.swift +180 -0
- package/ios/ToolbarView.swift +88 -4
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.2/expo.modules.ui-58.0.2-sources.jar → 58.0.4/expo.modules.ui-58.0.4-sources.jar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.2/expo.modules.ui-58.0.2.aar → 58.0.4/expo.modules.ui-58.0.4.aar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.2/expo.modules.ui-58.0.2.module → 58.0.4/expo.modules.ui-58.0.4.module} +22 -22
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.2/expo.modules.ui-58.0.2.pom → 58.0.4/expo.modules.ui-58.0.4.pom} +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
- package/package.json +3 -3
- package/prebuilds/output/debug/xcframeworks/ExpoUI.tar.gz +0 -0
- package/prebuilds/output/release/xcframeworks/ExpoUI.tar.gz +0 -0
- package/src/swift-ui/NavigationSplitView/index.tsx +122 -0
- package/src/swift-ui/Toolbar/index.tsx +79 -0
- package/src/swift-ui/index.tsx +1 -0
- package/src/swift-ui/modifiers/index.ts +20 -0
- package/src/swift-ui/modifiers/navigationModifiers.ts +42 -0
- package/.gitignore +0 -2
- package/.npmignore +0 -27
- package/.tsbuildinfo +0 -1
- package/android/.gitignore +0 -261
- package/jest.config.js +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.module.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.2/expo.modules.ui-58.0.2.pom.sha512 +0 -1
- package/plugin/.tsbuildinfo +0 -1
- package/plugin/jest.config.js +0 -1
- package/plugin/tsconfig.json +0 -10
- package/plugin/tsconfig.tsbuildinfo +0 -1
- package/tsconfig.all.json +0 -11
- package/tsconfig.json +0 -11
|
@@ -1993,6 +1993,14 @@ extension ViewModifierRegistry {
|
|
|
1993
1993
|
return try NavigationTitleModifier(from: params, appContext: appContext)
|
|
1994
1994
|
}
|
|
1995
1995
|
|
|
1996
|
+
register("navigationSplitViewStyle") { params, appContext, _ in
|
|
1997
|
+
return try NavigationSplitViewStyleModifier(from: params, appContext: appContext)
|
|
1998
|
+
}
|
|
1999
|
+
|
|
2000
|
+
register("navigationSplitViewColumnWidth") { params, appContext, _ in
|
|
2001
|
+
return try NavigationSplitViewColumnWidthModifier(from: params, appContext: appContext)
|
|
2002
|
+
}
|
|
2003
|
+
|
|
1996
2004
|
register("accessibilityLabel") { params, appContext, _ in
|
|
1997
2005
|
return try AccessibilityLabelModifier(from: params, appContext: appContext)
|
|
1998
2006
|
}
|
|
@@ -2309,6 +2317,10 @@ extension ViewModifierRegistry {
|
|
|
2309
2317
|
return try ScrollIndicatorsModifier(from: params, appContext: appContext)
|
|
2310
2318
|
}
|
|
2311
2319
|
|
|
2320
|
+
register("scrollEdgeEffectStyle") { params, appContext, _ in
|
|
2321
|
+
return try ScrollEdgeEffectStyleModifier(from: params, appContext: appContext)
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2312
2324
|
register("tabViewStyle") { params, appContext, _ in
|
|
2313
2325
|
return try TabViewStyleModifier(from: params, appContext: appContext)
|
|
2314
2326
|
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// Copyright 2025-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
import ExpoModulesCore
|
|
4
|
+
import SwiftUI
|
|
5
|
+
|
|
6
|
+
internal enum NavigationSplitViewVisibilityOptions: String, Enumerable {
|
|
7
|
+
case automatic
|
|
8
|
+
case all
|
|
9
|
+
case doubleColumn
|
|
10
|
+
case detailOnly
|
|
11
|
+
|
|
12
|
+
func toVisibility() -> NavigationSplitViewVisibility {
|
|
13
|
+
switch self {
|
|
14
|
+
case .automatic:
|
|
15
|
+
return .automatic
|
|
16
|
+
case .all:
|
|
17
|
+
return .all
|
|
18
|
+
case .doubleColumn:
|
|
19
|
+
return .doubleColumn
|
|
20
|
+
case .detailOnly:
|
|
21
|
+
return .detailOnly
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static func from(_ visibility: NavigationSplitViewVisibility) -> NavigationSplitViewVisibilityOptions {
|
|
26
|
+
switch visibility {
|
|
27
|
+
case .all:
|
|
28
|
+
return .all
|
|
29
|
+
case .doubleColumn:
|
|
30
|
+
return .doubleColumn
|
|
31
|
+
case .detailOnly:
|
|
32
|
+
return .detailOnly
|
|
33
|
+
default:
|
|
34
|
+
return .automatic
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
internal enum NavigationSplitViewColumnOptions: String, Enumerable {
|
|
40
|
+
case sidebar
|
|
41
|
+
case content
|
|
42
|
+
case detail
|
|
43
|
+
|
|
44
|
+
@available(iOS 17.0, tvOS 17.0, *)
|
|
45
|
+
func toColumn() -> NavigationSplitViewColumn {
|
|
46
|
+
switch self {
|
|
47
|
+
case .sidebar:
|
|
48
|
+
return .sidebar
|
|
49
|
+
case .content:
|
|
50
|
+
return .content
|
|
51
|
+
case .detail:
|
|
52
|
+
return .detail
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@available(iOS 17.0, tvOS 17.0, *)
|
|
57
|
+
static func from(_ column: NavigationSplitViewColumn) -> NavigationSplitViewColumnOptions {
|
|
58
|
+
switch column {
|
|
59
|
+
case .content:
|
|
60
|
+
return .content
|
|
61
|
+
case .detail:
|
|
62
|
+
return .detail
|
|
63
|
+
default:
|
|
64
|
+
return .sidebar
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
internal final class NavigationSplitViewProps: UIBaseViewProps {
|
|
70
|
+
@Field var columnVisibility: NavigationSplitViewVisibilityOptions?
|
|
71
|
+
@Field var preferredCompactColumn: NavigationSplitViewColumnOptions?
|
|
72
|
+
var onColumnVisibilityChange = EventDispatcher()
|
|
73
|
+
var onPreferredCompactColumnChange = EventDispatcher()
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
internal struct NavigationSplitViewView: ExpoSwiftUI.View {
|
|
77
|
+
@ObservedObject var props: NavigationSplitViewProps
|
|
78
|
+
|
|
79
|
+
// Only used while the matching prop is unset. While it is set, JS is the sole source
|
|
80
|
+
// of truth, so it stays in control of the columns and can refuse a change the user
|
|
81
|
+
// made by dragging.
|
|
82
|
+
@State private var uncontrolledVisibility: NavigationSplitViewVisibilityOptions = .automatic
|
|
83
|
+
@State private var uncontrolledCompactColumn: NavigationSplitViewColumnOptions = .sidebar
|
|
84
|
+
|
|
85
|
+
init(props: NavigationSplitViewProps) {
|
|
86
|
+
self.props = props
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private var columnVisibilityBinding: Binding<NavigationSplitViewVisibility> {
|
|
90
|
+
let props = props
|
|
91
|
+
let uncontrolled = $uncontrolledVisibility
|
|
92
|
+
return Binding(
|
|
93
|
+
get: { (props.columnVisibility ?? uncontrolled.wrappedValue).toVisibility() },
|
|
94
|
+
set: { newValue in
|
|
95
|
+
let resolved = NavigationSplitViewVisibilityOptions.from(newValue)
|
|
96
|
+
guard (props.columnVisibility ?? uncontrolled.wrappedValue) != resolved else {
|
|
97
|
+
return
|
|
98
|
+
}
|
|
99
|
+
if props.columnVisibility == nil {
|
|
100
|
+
uncontrolled.wrappedValue = resolved
|
|
101
|
+
}
|
|
102
|
+
props.onColumnVisibilityChange(["visibility": resolved.rawValue])
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@available(iOS 17.0, tvOS 17.0, *)
|
|
108
|
+
private var compactColumnBinding: Binding<NavigationSplitViewColumn> {
|
|
109
|
+
let props = props
|
|
110
|
+
let uncontrolled = $uncontrolledCompactColumn
|
|
111
|
+
return Binding(
|
|
112
|
+
get: { (props.preferredCompactColumn ?? uncontrolled.wrappedValue).toColumn() },
|
|
113
|
+
set: { newValue in
|
|
114
|
+
let resolved = NavigationSplitViewColumnOptions.from(newValue)
|
|
115
|
+
guard (props.preferredCompactColumn ?? uncontrolled.wrappedValue) != resolved else {
|
|
116
|
+
return
|
|
117
|
+
}
|
|
118
|
+
if props.preferredCompactColumn == nil {
|
|
119
|
+
uncontrolled.wrappedValue = resolved
|
|
120
|
+
}
|
|
121
|
+
props.onPreferredCompactColumnChange(["column": resolved.rawValue])
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@ViewBuilder
|
|
127
|
+
var body: some View {
|
|
128
|
+
if #available(iOS 17.0, tvOS 17.0, *) {
|
|
129
|
+
if let contentColumn {
|
|
130
|
+
NavigationSplitView(
|
|
131
|
+
columnVisibility: columnVisibilityBinding,
|
|
132
|
+
preferredCompactColumn: compactColumnBinding
|
|
133
|
+
) {
|
|
134
|
+
sidebarColumn
|
|
135
|
+
} content: {
|
|
136
|
+
contentColumn
|
|
137
|
+
} detail: {
|
|
138
|
+
detailColumn
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
NavigationSplitView(
|
|
142
|
+
columnVisibility: columnVisibilityBinding,
|
|
143
|
+
preferredCompactColumn: compactColumnBinding
|
|
144
|
+
) {
|
|
145
|
+
sidebarColumn
|
|
146
|
+
} detail: {
|
|
147
|
+
detailColumn
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
if let contentColumn {
|
|
152
|
+
NavigationSplitView(columnVisibility: columnVisibilityBinding) {
|
|
153
|
+
sidebarColumn
|
|
154
|
+
} content: {
|
|
155
|
+
contentColumn
|
|
156
|
+
} detail: {
|
|
157
|
+
detailColumn
|
|
158
|
+
}
|
|
159
|
+
} else {
|
|
160
|
+
NavigationSplitView(columnVisibility: columnVisibilityBinding) {
|
|
161
|
+
sidebarColumn
|
|
162
|
+
} detail: {
|
|
163
|
+
detailColumn
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
private var sidebarColumn: SlotView? {
|
|
170
|
+
props.children?.slot("sidebar")
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
private var contentColumn: SlotView? {
|
|
174
|
+
props.children?.slot("content")
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
private var detailColumn: SlotView? {
|
|
178
|
+
props.children?.slot("detail")
|
|
179
|
+
}
|
|
180
|
+
}
|
package/ios/ToolbarView.swift
CHANGED
|
@@ -5,6 +5,42 @@ import ExpoModulesCore
|
|
|
5
5
|
|
|
6
6
|
internal final class ToolbarViewProps: UIBaseViewProps {}
|
|
7
7
|
|
|
8
|
+
private struct ToolbarContentView: View {
|
|
9
|
+
@ObservedObject var props: SlotViewProps
|
|
10
|
+
let content: SlotView
|
|
11
|
+
let base: AnyView
|
|
12
|
+
|
|
13
|
+
@ViewBuilder
|
|
14
|
+
var body: some View {
|
|
15
|
+
let children = props.children ?? []
|
|
16
|
+
|
|
17
|
+
if children.contains(where: isItem) {
|
|
18
|
+
children.reduce(base) { view, child in
|
|
19
|
+
let childView: any View = child.childView
|
|
20
|
+
|
|
21
|
+
guard let slot = child.childView as? SlotView, slot.props.name == "item" else {
|
|
22
|
+
return AnyView(placed(AnyView(childView), on: view, placement: .automatic, visibilityPriority: nil))
|
|
23
|
+
}
|
|
24
|
+
return AnyView(ToolbarItemLayer(props: slot.props, base: view, content: AnyView(childView)))
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
base.toolbar {
|
|
28
|
+
content
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
private struct ToolbarItemLayer: View {
|
|
35
|
+
@ObservedObject var props: SlotViewProps
|
|
36
|
+
let base: AnyView
|
|
37
|
+
let content: AnyView
|
|
38
|
+
|
|
39
|
+
var body: some View {
|
|
40
|
+
placed(content, on: base, placement: placement(from: props), visibilityPriority: visibilityPriority(from: props))
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
8
44
|
internal struct ToolbarView: ExpoSwiftUI.View {
|
|
9
45
|
@ObservedObject var props: ToolbarViewProps
|
|
10
46
|
|
|
@@ -14,10 +50,7 @@ internal struct ToolbarView: ExpoSwiftUI.View {
|
|
|
14
50
|
|
|
15
51
|
var body: some View {
|
|
16
52
|
if let content = props.children?.slot("content") {
|
|
17
|
-
baseContent
|
|
18
|
-
.toolbar {
|
|
19
|
-
content
|
|
20
|
-
}
|
|
53
|
+
ToolbarContentView(props: content.props, content: content, base: AnyView(baseContent))
|
|
21
54
|
} else {
|
|
22
55
|
baseContent
|
|
23
56
|
}
|
|
@@ -31,3 +64,54 @@ internal struct ToolbarView: ExpoSwiftUI.View {
|
|
|
31
64
|
}
|
|
32
65
|
}
|
|
33
66
|
}
|
|
67
|
+
|
|
68
|
+
@ViewBuilder
|
|
69
|
+
private func placed(
|
|
70
|
+
_ content: AnyView,
|
|
71
|
+
on base: AnyView,
|
|
72
|
+
placement: ToolbarItemPlacement,
|
|
73
|
+
visibilityPriority: ToolbarItemVisibilityPriorityOptions?
|
|
74
|
+
) -> some View {
|
|
75
|
+
#if compiler(>=6.4) // Xcode 27
|
|
76
|
+
if #available(iOS 27.0, macOS 26.1, tvOS 27.0, visionOS 27.0, *),
|
|
77
|
+
let visibilityPriority {
|
|
78
|
+
base.toolbar {
|
|
79
|
+
ToolbarItem(placement: placement) {
|
|
80
|
+
content
|
|
81
|
+
}
|
|
82
|
+
.visibilityPriority(visibilityPriority.toPriority())
|
|
83
|
+
}
|
|
84
|
+
} else {
|
|
85
|
+
base.toolbar {
|
|
86
|
+
ToolbarItem(placement: placement) {
|
|
87
|
+
content
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
#else
|
|
92
|
+
base.toolbar {
|
|
93
|
+
ToolbarItem(placement: placement) {
|
|
94
|
+
content
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
#endif
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
private func isItem(_ child: any ExpoSwiftUI.AnyChild) -> Bool {
|
|
101
|
+
return (child.childView as? SlotView)?.props.name == "item"
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
private func placement(from props: SlotViewProps) -> ToolbarItemPlacement {
|
|
105
|
+
guard let rawPlacement = props.extraProps?["placement"] as? String,
|
|
106
|
+
let placement = ToolbarItemPlacementOptions(rawValue: rawPlacement) else {
|
|
107
|
+
return .automatic
|
|
108
|
+
}
|
|
109
|
+
return placement.toPlacement()
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
private func visibilityPriority(from props: SlotViewProps) -> ToolbarItemVisibilityPriorityOptions? {
|
|
113
|
+
guard let rawPriority = props.extraProps?["visibilityPriority"] as? String else {
|
|
114
|
+
return nil
|
|
115
|
+
}
|
|
116
|
+
return ToolbarItemVisibilityPriorityOptions(rawValue: rawPriority)
|
|
117
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
feafc8819618513e9a38001814fc14e2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
749807825339b7f72362b37e830ea704ec60f72d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c42bba76435f8b36b4fc0ed86a8290f9e1ccaa3a0ebe4cb6e77d029a4be92be6
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d105c1535934d743de599730ba9b0501a424eece52f1a4190b3764b4e7e280be42e3c9b880e4f80bef8ab6299938a0da275c00d342c593fd54375574d0ecd3ae
|
|
Binary file
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
317b952ccecb056bea4a1e5b20b7b5bf
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
77a2cb3cfd3195ad299b84c7d844dcb10d52fbe9
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7576f0fb76c81d2a1925ffa93e4175b8ab41c4c47a7c4c375b73707812438133
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.aar.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
408cceb3d6f97d29c6e734ab578c86c5c2c3f65fba19170bf1edc1f30648e6906b3a0e2284f1721543450bb579ddf37e54b00a51d21f9e5d77ad82e0857fef02
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "expo.modules.ui",
|
|
5
5
|
"module": "expo.modules.ui",
|
|
6
|
-
"version": "58.0.
|
|
6
|
+
"version": "58.0.4",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
|
-
"name": "expo.modules.ui-58.0.
|
|
28
|
-
"url": "expo.modules.ui-58.0.
|
|
29
|
-
"size":
|
|
30
|
-
"sha512": "
|
|
31
|
-
"sha256": "
|
|
32
|
-
"sha1": "
|
|
33
|
-
"md5": "
|
|
27
|
+
"name": "expo.modules.ui-58.0.4.aar",
|
|
28
|
+
"url": "expo.modules.ui-58.0.4.aar",
|
|
29
|
+
"size": 1789426,
|
|
30
|
+
"sha512": "408cceb3d6f97d29c6e734ab578c86c5c2c3f65fba19170bf1edc1f30648e6906b3a0e2284f1721543450bb579ddf37e54b00a51d21f9e5d77ad82e0857fef02",
|
|
31
|
+
"sha256": "7576f0fb76c81d2a1925ffa93e4175b8ab41c4c47a7c4c375b73707812438133",
|
|
32
|
+
"sha1": "77a2cb3cfd3195ad299b84c7d844dcb10d52fbe9",
|
|
33
|
+
"md5": "317b952ccecb056bea4a1e5b20b7b5bf"
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -141,13 +141,13 @@
|
|
|
141
141
|
],
|
|
142
142
|
"files": [
|
|
143
143
|
{
|
|
144
|
-
"name": "expo.modules.ui-58.0.
|
|
145
|
-
"url": "expo.modules.ui-58.0.
|
|
146
|
-
"size":
|
|
147
|
-
"sha512": "
|
|
148
|
-
"sha256": "
|
|
149
|
-
"sha1": "
|
|
150
|
-
"md5": "
|
|
144
|
+
"name": "expo.modules.ui-58.0.4.aar",
|
|
145
|
+
"url": "expo.modules.ui-58.0.4.aar",
|
|
146
|
+
"size": 1789426,
|
|
147
|
+
"sha512": "408cceb3d6f97d29c6e734ab578c86c5c2c3f65fba19170bf1edc1f30648e6906b3a0e2284f1721543450bb579ddf37e54b00a51d21f9e5d77ad82e0857fef02",
|
|
148
|
+
"sha256": "7576f0fb76c81d2a1925ffa93e4175b8ab41c4c47a7c4c375b73707812438133",
|
|
149
|
+
"sha1": "77a2cb3cfd3195ad299b84c7d844dcb10d52fbe9",
|
|
150
|
+
"md5": "317b952ccecb056bea4a1e5b20b7b5bf"
|
|
151
151
|
}
|
|
152
152
|
]
|
|
153
153
|
},
|
|
@@ -161,13 +161,13 @@
|
|
|
161
161
|
},
|
|
162
162
|
"files": [
|
|
163
163
|
{
|
|
164
|
-
"name": "expo.modules.ui-58.0.
|
|
165
|
-
"url": "expo.modules.ui-58.0.
|
|
166
|
-
"size":
|
|
167
|
-
"sha512": "
|
|
168
|
-
"sha256": "
|
|
169
|
-
"sha1": "
|
|
170
|
-
"md5": "
|
|
164
|
+
"name": "expo.modules.ui-58.0.4-sources.jar",
|
|
165
|
+
"url": "expo.modules.ui-58.0.4-sources.jar",
|
|
166
|
+
"size": 106170,
|
|
167
|
+
"sha512": "d105c1535934d743de599730ba9b0501a424eece52f1a4190b3764b4e7e280be42e3c9b880e4f80bef8ab6299938a0da275c00d342c593fd54375574d0ecd3ae",
|
|
168
|
+
"sha256": "c42bba76435f8b36b4fc0ed86a8290f9e1ccaa3a0ebe4cb6e77d029a4be92be6",
|
|
169
|
+
"sha1": "749807825339b7f72362b37e830ea704ec60f72d",
|
|
170
|
+
"md5": "feafc8819618513e9a38001814fc14e2"
|
|
171
171
|
}
|
|
172
172
|
]
|
|
173
173
|
}
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6f395b4604efe8cb782c2d07ed0a034f
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a5735cfc927a4a919d056a8d002778b3b03a9571
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6ac59cdec02bfaab3cc9a0201b3f3efc2472ebdae06731eb1754f50be6adeb56
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.module.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
dd59787b0055dc18c4dae85147258bdbce099df415a74de7bd47a403b17d9138fdffbf7351e383761e9bea7c3c7aa72ed062784da242edfa312a4d8a4703e4dd
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>expo.modules.ui</groupId>
|
|
11
11
|
<artifactId>expo.modules.ui</artifactId>
|
|
12
|
-
<version>58.0.
|
|
12
|
+
<version>58.0.4</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>expo.modules.ui</name>
|
|
15
15
|
<url>https://github.com/expo/expo</url>
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7d3bc2e18bfdc6ff7dde3b9952e57b0d
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
686f495f389f5d58061c48dd2be09c59dff6d282
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ed17ef29d2de582e5dd219506d2f5c6a83ae6b9499877a208b82c4642389afab
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.4/expo.modules.ui-58.0.4.pom.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ec8c0d91c6f8c40ced69d655e02868faa9945e2417cd82852b5455e3ddec9a1a23b14093fbb0e07093570af8823812af20ad0a61d84c035ae88fb093d0aee7fd
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>expo.modules.ui</groupId>
|
|
4
4
|
<artifactId>expo.modules.ui</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>58.0.
|
|
7
|
-
<release>58.0.
|
|
6
|
+
<latest>58.0.4</latest>
|
|
7
|
+
<release>58.0.4</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>58.0.
|
|
9
|
+
<version>58.0.4</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20260921105157</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
aeb3687fda3babb900b2707c7eccdb58
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
dd275fe2064eb6646022d5d7a7267798f746ae78
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
bf551fbc49828d971a3be529217cfc4eabd7be7be59392253769cf5e900a2f80
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
be2b24ecf8748c7315ba41f174f8b07f3150d103136753794b87a2793af26ee5ae9c7bc4d0620dd6d6af95e0bd56bc8895b6c9ab35e1929a19e3c8fe3bda6d27
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/ui",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.4",
|
|
4
4
|
"description": "A collection of UI components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Jetpack Compose",
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"@types/babel__core": "^7.20.5",
|
|
148
148
|
"@types/jest": "^29.2.1",
|
|
149
149
|
"@types/node": "^22.14.0",
|
|
150
|
-
"@types/react": "~19.
|
|
150
|
+
"@types/react": "~19.3.0",
|
|
151
151
|
"expo-module-scripts": "56.0.3",
|
|
152
152
|
"react-native-reanimated": "4.6.0",
|
|
153
153
|
"react-native-worklets": "0.12.2"
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"optional": true
|
|
172
172
|
}
|
|
173
173
|
},
|
|
174
|
-
"gitHead": "
|
|
174
|
+
"gitHead": "ebb1fd7569c9c9e172cb9abd73dfede027c1d674",
|
|
175
175
|
"scripts": {
|
|
176
176
|
"precompile-ios": "et prebuild-package-for-publish",
|
|
177
177
|
"build": "pnpm run build:lib && pnpm run build:plugin",
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { requireNativeView } from 'expo';
|
|
2
|
+
|
|
3
|
+
import { Slot } from '../SlotView';
|
|
4
|
+
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
5
|
+
import { type CommonViewModifierProps } from '../types';
|
|
6
|
+
|
|
7
|
+
export type NavigationSplitViewVisibility = 'automatic' | 'all' | 'doubleColumn' | 'detailOnly';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The column shown when the split view collapses into a single column.
|
|
11
|
+
*/
|
|
12
|
+
export type NavigationSplitViewColumn = 'sidebar' | 'content' | 'detail';
|
|
13
|
+
|
|
14
|
+
export interface NavigationSplitViewProps extends CommonViewModifierProps {
|
|
15
|
+
/**
|
|
16
|
+
* The columns of the split view. Provide `NavigationSplitView.Sidebar` and
|
|
17
|
+
* `NavigationSplitView.Detail`, and add `NavigationSplitView.Content` for a
|
|
18
|
+
* three-column layout.
|
|
19
|
+
*/
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* The columns to show. Setting it makes the value controlled: pass the value from
|
|
23
|
+
* `onColumnVisibilityChange` back in, otherwise dragging the divider has no effect.
|
|
24
|
+
* Leave it unset to let the split view manage its own columns.
|
|
25
|
+
* @default 'automatic'
|
|
26
|
+
*/
|
|
27
|
+
columnVisibility?: NavigationSplitViewVisibility;
|
|
28
|
+
/**
|
|
29
|
+
* Called when the visible columns change, including when the user drags the sidebar.
|
|
30
|
+
*/
|
|
31
|
+
onColumnVisibilityChange?: (visibility: NavigationSplitViewVisibility) => void;
|
|
32
|
+
/**
|
|
33
|
+
* The column to show when the split view collapses to a single column, for example
|
|
34
|
+
* in a narrow window. Setting it makes the value controlled in the same way as
|
|
35
|
+
* `columnVisibility`.
|
|
36
|
+
* @default 'sidebar'
|
|
37
|
+
* @platform ios 17.0+
|
|
38
|
+
*/
|
|
39
|
+
preferredCompactColumn?: NavigationSplitViewColumn;
|
|
40
|
+
/**
|
|
41
|
+
* Called when the collapsed column changes.
|
|
42
|
+
* @platform ios 17.0+
|
|
43
|
+
*/
|
|
44
|
+
onPreferredCompactColumnChange?: (column: NavigationSplitViewColumn) => void;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
type NativeNavigationSplitViewProps = Omit<
|
|
48
|
+
NavigationSplitViewProps,
|
|
49
|
+
'onColumnVisibilityChange' | 'onPreferredCompactColumnChange'
|
|
50
|
+
> & {
|
|
51
|
+
onColumnVisibilityChange?: (event: {
|
|
52
|
+
nativeEvent: { visibility: NavigationSplitViewVisibility };
|
|
53
|
+
}) => void;
|
|
54
|
+
onPreferredCompactColumnChange?: (event: {
|
|
55
|
+
nativeEvent: { column: NavigationSplitViewColumn };
|
|
56
|
+
}) => void;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const NavigationSplitViewNativeView: React.ComponentType<NativeNavigationSplitViewProps> =
|
|
60
|
+
requireNativeView('ExpoUI', 'NavigationSplitViewView');
|
|
61
|
+
|
|
62
|
+
function NavigationSplitViewSidebar(props: { children: React.ReactNode }) {
|
|
63
|
+
return <Slot name="sidebar">{props.children}</Slot>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function NavigationSplitViewContent(props: { children: React.ReactNode }) {
|
|
67
|
+
return <Slot name="content">{props.children}</Slot>;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function NavigationSplitViewDetail(props: { children: React.ReactNode }) {
|
|
71
|
+
return <Slot name="detail">{props.children}</Slot>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
NavigationSplitView.Sidebar = NavigationSplitViewSidebar;
|
|
75
|
+
NavigationSplitView.Content = NavigationSplitViewContent;
|
|
76
|
+
NavigationSplitView.Detail = NavigationSplitViewDetail;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* NavigationSplitView uses the native [NavigationSplitView](https://developer.apple.com/documentation/swiftui/navigationsplitview) view.
|
|
80
|
+
*
|
|
81
|
+
* It presents a collection, a selection and a detail in one hierarchy: side by side
|
|
82
|
+
* when there is room, and stacked when there is not.
|
|
83
|
+
* @example
|
|
84
|
+
* ```tsx
|
|
85
|
+
* <Host style={{ flex: 1 }}>
|
|
86
|
+
* <NavigationSplitView>
|
|
87
|
+
* <NavigationSplitView.Sidebar>
|
|
88
|
+
* <List>{items}</List>
|
|
89
|
+
* </NavigationSplitView.Sidebar>
|
|
90
|
+
* <NavigationSplitView.Detail>
|
|
91
|
+
* <ItemDetail item={selectedItem} />
|
|
92
|
+
* </NavigationSplitView.Detail>
|
|
93
|
+
* </NavigationSplitView>
|
|
94
|
+
* </Host>
|
|
95
|
+
* ```
|
|
96
|
+
* @platform ios 16.0+
|
|
97
|
+
* @platform tvos 16.0+
|
|
98
|
+
*/
|
|
99
|
+
export function NavigationSplitView(props: NavigationSplitViewProps) {
|
|
100
|
+
const {
|
|
101
|
+
modifiers,
|
|
102
|
+
children,
|
|
103
|
+
onColumnVisibilityChange,
|
|
104
|
+
onPreferredCompactColumnChange,
|
|
105
|
+
...restProps
|
|
106
|
+
} = props;
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
<NavigationSplitViewNativeView
|
|
110
|
+
modifiers={modifiers}
|
|
111
|
+
{...(modifiers ? createViewModifierEventListener(modifiers) : undefined)}
|
|
112
|
+
onColumnVisibilityChange={({ nativeEvent: { visibility } }) =>
|
|
113
|
+
onColumnVisibilityChange?.(visibility)
|
|
114
|
+
}
|
|
115
|
+
onPreferredCompactColumnChange={({ nativeEvent: { column } }) =>
|
|
116
|
+
onPreferredCompactColumnChange?.(column)
|
|
117
|
+
}
|
|
118
|
+
{...restProps}>
|
|
119
|
+
{children}
|
|
120
|
+
</NavigationSplitViewNativeView>
|
|
121
|
+
);
|
|
122
|
+
}
|