@expo/ui 56.0.18 → 56.0.20
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 +38 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/ui/DatePickerView.kt +33 -8
- package/build/community/bottom-sheet/BottomSheet.android.d.ts.map +1 -1
- package/build/community/bottom-sheet/BottomSheet.ios.d.ts.map +1 -1
- package/build/community/bottom-sheet/scrollContextReset.d.ts +5 -0
- package/build/community/bottom-sheet/scrollContextReset.d.ts.map +1 -0
- package/build/community/datetime-picker/DateTimePicker.d.ts.map +1 -1
- package/build/community/datetime-picker/types.d.ts +2 -2
- package/build/community/datetime-picker/types.d.ts.map +1 -1
- package/build/community/masked-view/MaskedView.android.d.ts.map +1 -1
- package/build/community/masked-view/MaskedView.ios.d.ts.map +1 -1
- package/build/community/menu/types.d.ts +2 -2
- package/build/community/menu/types.d.ts.map +1 -1
- package/build/community/pager-view/types.d.ts +2 -2
- package/build/community/pager-view/types.d.ts.map +1 -1
- package/build/community/segmented-control/types.d.ts +2 -2
- package/build/community/segmented-control/types.d.ts.map +1 -1
- package/build/community/slider/types.d.ts +2 -2
- package/build/community/slider/types.d.ts.map +1 -1
- package/build/jetpack-compose/AlertDialog/index.d.ts +2 -2
- package/build/jetpack-compose/AlertDialog/index.d.ts.map +1 -1
- package/build/jetpack-compose/AnimatedVisibility/index.d.ts +2 -2
- package/build/jetpack-compose/AnimatedVisibility/index.d.ts.map +1 -1
- package/build/jetpack-compose/Badge/index.d.ts +2 -2
- package/build/jetpack-compose/Badge/index.d.ts.map +1 -1
- package/build/jetpack-compose/BadgedBox/index.d.ts +2 -2
- package/build/jetpack-compose/BadgedBox/index.d.ts.map +1 -1
- package/build/jetpack-compose/BasicAlertDialog/index.d.ts +2 -2
- package/build/jetpack-compose/BasicAlertDialog/index.d.ts.map +1 -1
- package/build/jetpack-compose/Box/index.d.ts +2 -2
- package/build/jetpack-compose/Box/index.d.ts.map +1 -1
- package/build/jetpack-compose/Button/index.d.ts +2 -2
- package/build/jetpack-compose/Button/index.d.ts.map +1 -1
- package/build/jetpack-compose/Card/index.d.ts +6 -6
- package/build/jetpack-compose/Card/index.d.ts.map +1 -1
- package/build/jetpack-compose/Carousel/index.d.ts +6 -6
- package/build/jetpack-compose/Carousel/index.d.ts.map +1 -1
- package/build/jetpack-compose/Checkbox/index.d.ts +4 -4
- package/build/jetpack-compose/Checkbox/index.d.ts.map +1 -1
- package/build/jetpack-compose/Chip/index.d.ts +8 -8
- package/build/jetpack-compose/Chip/index.d.ts.map +1 -1
- package/build/jetpack-compose/Column/index.d.ts +2 -2
- package/build/jetpack-compose/Column/index.d.ts.map +1 -1
- package/build/jetpack-compose/DatePicker/index.d.ts +6 -6
- package/build/jetpack-compose/DatePicker/index.d.ts.map +1 -1
- package/build/jetpack-compose/DockedSearchBar/index.d.ts +2 -2
- package/build/jetpack-compose/DockedSearchBar/index.d.ts.map +1 -1
- package/build/jetpack-compose/DropdownMenu/DropdownMenuItem.d.ts +2 -2
- package/build/jetpack-compose/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/build/jetpack-compose/DropdownMenu/index.d.ts +2 -2
- package/build/jetpack-compose/DropdownMenu/index.d.ts.map +1 -1
- package/build/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.d.ts +2 -2
- package/build/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.d.ts.map +1 -1
- package/build/jetpack-compose/ExposedDropdownMenuBox/index.d.ts +2 -2
- package/build/jetpack-compose/ExposedDropdownMenuBox/index.d.ts.map +1 -1
- package/build/jetpack-compose/FloatingActionButton/index.d.ts +8 -6
- package/build/jetpack-compose/FloatingActionButton/index.d.ts.map +1 -1
- package/build/jetpack-compose/FlowRow/index.d.ts +2 -2
- package/build/jetpack-compose/FlowRow/index.d.ts.map +1 -1
- package/build/jetpack-compose/HorizontalFloatingToolbar/index.d.ts +4 -4
- package/build/jetpack-compose/HorizontalFloatingToolbar/index.d.ts.map +1 -1
- package/build/jetpack-compose/HorizontalPager/index.d.ts +2 -2
- package/build/jetpack-compose/HorizontalPager/index.d.ts.map +1 -1
- package/build/jetpack-compose/Host/index.d.ts +2 -2
- package/build/jetpack-compose/Host/index.d.ts.map +1 -1
- package/build/jetpack-compose/Icon/index.d.ts +2 -2
- package/build/jetpack-compose/Icon/index.d.ts.map +1 -1
- package/build/jetpack-compose/IconButton/index.d.ts +2 -2
- package/build/jetpack-compose/IconButton/index.d.ts.map +1 -1
- package/build/jetpack-compose/LazyColumn/index.d.ts +2 -2
- package/build/jetpack-compose/LazyColumn/index.d.ts.map +1 -1
- package/build/jetpack-compose/LazyRow/index.d.ts +2 -2
- package/build/jetpack-compose/LazyRow/index.d.ts.map +1 -1
- package/build/jetpack-compose/ListItem/index.d.ts +2 -2
- package/build/jetpack-compose/ListItem/index.d.ts.map +1 -1
- package/build/jetpack-compose/LoadingIndicator/index.d.ts +2 -2
- package/build/jetpack-compose/LoadingIndicator/index.d.ts.map +1 -1
- package/build/jetpack-compose/ModalBottomSheet/index.d.ts +2 -2
- package/build/jetpack-compose/ModalBottomSheet/index.d.ts.map +1 -1
- package/build/jetpack-compose/MultiChoiceSegmentedButtonRow/index.d.ts +2 -2
- package/build/jetpack-compose/MultiChoiceSegmentedButtonRow/index.d.ts.map +1 -1
- package/build/jetpack-compose/NavigationBar/index.d.ts +4 -4
- package/build/jetpack-compose/NavigationBar/index.d.ts.map +1 -1
- package/build/jetpack-compose/Progress/index.d.ts +9 -8
- package/build/jetpack-compose/Progress/index.d.ts.map +1 -1
- package/build/jetpack-compose/PullToRefreshBox/index.d.ts +4 -4
- package/build/jetpack-compose/PullToRefreshBox/index.d.ts.map +1 -1
- package/build/jetpack-compose/RadioButton/index.d.ts +2 -2
- package/build/jetpack-compose/RadioButton/index.d.ts.map +1 -1
- package/build/jetpack-compose/Row/index.d.ts +2 -2
- package/build/jetpack-compose/Row/index.d.ts.map +1 -1
- package/build/jetpack-compose/SearchBar/index.d.ts +2 -2
- package/build/jetpack-compose/SearchBar/index.d.ts.map +1 -1
- package/build/jetpack-compose/SegmentedButton/index.d.ts +2 -2
- package/build/jetpack-compose/SegmentedButton/index.d.ts.map +1 -1
- package/build/jetpack-compose/Shape/index.d.ts +2 -2
- package/build/jetpack-compose/Shape/index.d.ts.map +1 -1
- package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts +2 -2
- package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts.map +1 -1
- package/build/jetpack-compose/Slider/index.d.ts +2 -2
- package/build/jetpack-compose/Slider/index.d.ts.map +1 -1
- package/build/jetpack-compose/Snackbar/index.d.ts +4 -4
- package/build/jetpack-compose/Snackbar/index.d.ts.map +1 -1
- package/build/jetpack-compose/Spacer/index.d.ts +2 -2
- package/build/jetpack-compose/Spacer/index.d.ts.map +1 -1
- package/build/jetpack-compose/Surface/index.d.ts +2 -2
- package/build/jetpack-compose/Surface/index.d.ts.map +1 -1
- package/build/jetpack-compose/Switch/index.d.ts +2 -2
- package/build/jetpack-compose/Switch/index.d.ts.map +1 -1
- package/build/jetpack-compose/SyncSwitch/index.d.ts +2 -2
- package/build/jetpack-compose/SyncSwitch/index.d.ts.map +1 -1
- package/build/jetpack-compose/Text/index.d.ts +2 -2
- package/build/jetpack-compose/Text/index.d.ts.map +1 -1
- package/build/jetpack-compose/TextField/BasicTextField.d.ts +2 -2
- package/build/jetpack-compose/TextField/BasicTextField.d.ts.map +1 -1
- package/build/jetpack-compose/TextField/TextField.d.ts +4 -4
- package/build/jetpack-compose/TextField/TextField.d.ts.map +1 -1
- package/build/jetpack-compose/ToggleButton/index.d.ts +2 -2
- package/build/jetpack-compose/ToggleButton/index.d.ts.map +1 -1
- package/build/jetpack-compose/Tooltip/index.d.ts +6 -6
- package/build/jetpack-compose/Tooltip/index.d.ts.map +1 -1
- package/build/swift-ui/AccessoryWidgetBackground/index.d.ts +2 -1
- package/build/swift-ui/AccessoryWidgetBackground/index.d.ts.map +1 -1
- package/build/swift-ui/Alert/index.d.ts +2 -2
- package/build/swift-ui/Alert/index.d.ts.map +1 -1
- package/build/swift-ui/BottomSheet/index.d.ts +2 -2
- package/build/swift-ui/BottomSheet/index.d.ts.map +1 -1
- package/build/swift-ui/Button/index.d.ts +2 -2
- package/build/swift-ui/Button/index.d.ts.map +1 -1
- package/build/swift-ui/Chart/index.d.ts +2 -2
- package/build/swift-ui/Chart/index.d.ts.map +1 -1
- package/build/swift-ui/ColorPicker/index.d.ts +2 -2
- package/build/swift-ui/ColorPicker/index.d.ts.map +1 -1
- package/build/swift-ui/ConfirmationDialog/index.d.ts +2 -2
- package/build/swift-ui/ConfirmationDialog/index.d.ts.map +1 -1
- package/build/swift-ui/ContextMenu/types.d.ts +4 -4
- package/build/swift-ui/ContextMenu/types.d.ts.map +1 -1
- package/build/swift-ui/DatePicker/index.d.ts +2 -2
- package/build/swift-ui/DatePicker/index.d.ts.map +1 -1
- package/build/swift-ui/Divider/index.d.ts +2 -1
- package/build/swift-ui/Divider/index.d.ts.map +1 -1
- package/build/swift-ui/Gauge/index.d.ts +2 -2
- package/build/swift-ui/Gauge/index.d.ts.map +1 -1
- package/build/swift-ui/GlassEffectContainer/index.d.ts +2 -2
- package/build/swift-ui/GlassEffectContainer/index.d.ts.map +1 -1
- package/build/swift-ui/Grid/index.d.ts +2 -2
- package/build/swift-ui/Grid/index.d.ts.map +1 -1
- package/build/swift-ui/HStack/index.d.ts +2 -2
- package/build/swift-ui/HStack/index.d.ts.map +1 -1
- package/build/swift-ui/Host/index.d.ts +9 -3
- package/build/swift-ui/Host/index.d.ts.map +1 -1
- package/build/swift-ui/Label/index.d.ts +2 -2
- package/build/swift-ui/Label/index.d.ts.map +1 -1
- package/build/swift-ui/LabeledContent/index.d.ts +2 -2
- package/build/swift-ui/LabeledContent/index.d.ts.map +1 -1
- package/build/swift-ui/LazyHStack/index.d.ts +2 -2
- package/build/swift-ui/LazyHStack/index.d.ts.map +1 -1
- package/build/swift-ui/LazyVStack/index.d.ts +2 -2
- package/build/swift-ui/LazyVStack/index.d.ts.map +1 -1
- package/build/swift-ui/Link/index.d.ts +2 -2
- package/build/swift-ui/Link/index.d.ts.map +1 -1
- package/build/swift-ui/List/ListForEach.d.ts +2 -2
- package/build/swift-ui/List/ListForEach.d.ts.map +1 -1
- package/build/swift-ui/Mask/index.d.ts +2 -2
- package/build/swift-ui/Mask/index.d.ts.map +1 -1
- package/build/swift-ui/Menu/types.d.ts +2 -2
- package/build/swift-ui/Menu/types.d.ts.map +1 -1
- package/build/swift-ui/Namespace.d.ts +2 -2
- package/build/swift-ui/Namespace.d.ts.map +1 -1
- package/build/swift-ui/Overlay/index.d.ts +2 -2
- package/build/swift-ui/Overlay/index.d.ts.map +1 -1
- package/build/swift-ui/Popover/index.d.ts +2 -2
- package/build/swift-ui/Popover/index.d.ts.map +1 -1
- package/build/swift-ui/ProgressView/index.d.ts +2 -2
- package/build/swift-ui/ProgressView/index.d.ts.map +1 -1
- package/build/swift-ui/RNHostView.d.ts +2 -2
- package/build/swift-ui/RNHostView.d.ts.map +1 -1
- package/build/swift-ui/ScrollView/index.d.ts +2 -2
- package/build/swift-ui/ScrollView/index.d.ts.map +1 -1
- package/build/swift-ui/Section/index.d.ts +2 -2
- package/build/swift-ui/Section/index.d.ts.map +1 -1
- package/build/swift-ui/SecureField/index.d.ts +2 -2
- package/build/swift-ui/SecureField/index.d.ts.map +1 -1
- package/build/swift-ui/ShareLink/index.d.ts +2 -2
- package/build/swift-ui/ShareLink/index.d.ts.map +1 -1
- package/build/swift-ui/Slider/index.d.ts +2 -2
- package/build/swift-ui/Slider/index.d.ts.map +1 -1
- package/build/swift-ui/Stepper/index.d.ts +2 -2
- package/build/swift-ui/Stepper/index.d.ts.map +1 -1
- package/build/swift-ui/SwipeActions/index.d.ts +4 -4
- package/build/swift-ui/SwipeActions/index.d.ts.map +1 -1
- package/build/swift-ui/SyncToggle/index.d.ts +2 -2
- package/build/swift-ui/SyncToggle/index.d.ts.map +1 -1
- package/build/swift-ui/TabView/Tab.d.ts +2 -2
- package/build/swift-ui/TabView/Tab.d.ts.map +1 -1
- package/build/swift-ui/TabView/index.d.ts +2 -2
- package/build/swift-ui/TabView/index.d.ts.map +1 -1
- package/build/swift-ui/TextField/index.d.ts +2 -2
- package/build/swift-ui/TextField/index.d.ts.map +1 -1
- package/build/swift-ui/Toggle/index.d.ts +2 -2
- package/build/swift-ui/Toggle/index.d.ts.map +1 -1
- package/build/swift-ui/VStack/index.d.ts +2 -2
- package/build/swift-ui/VStack/index.d.ts.map +1 -1
- package/build/swift-ui/ZStack/index.d.ts +2 -2
- package/build/swift-ui/ZStack/index.d.ts.map +1 -1
- package/build/swift-ui/modifiers/index.d.ts +107 -1
- package/build/swift-ui/modifiers/index.d.ts.map +1 -1
- package/build/swift-ui/modifiers/presentationModifiers.d.ts +19 -0
- package/build/swift-ui/modifiers/presentationModifiers.d.ts.map +1 -1
- package/build/universal/Button/index.d.ts.map +1 -1
- package/build/universal/Checkbox/index.d.ts.map +1 -1
- package/build/universal/Collapsible/index.d.ts.map +1 -1
- package/build/universal/FieldGroup/FieldGroup.d.ts.map +1 -1
- package/build/universal/FieldGroup/FieldSection.d.ts.map +1 -1
- package/build/universal/Host/index.d.ts +1 -2
- package/build/universal/Host/index.d.ts.map +1 -1
- package/build/universal/Host/types.d.ts +16 -2
- package/build/universal/Host/types.d.ts.map +1 -1
- package/build/universal/ListItem/ListItem.android.d.ts.map +1 -1
- package/build/universal/ListItem/ListItem.ios.d.ts.map +1 -1
- package/build/universal/ListItem/types.d.ts +8 -0
- package/build/universal/ListItem/types.d.ts.map +1 -1
- package/build/universal/Picker/Picker.d.ts.map +1 -1
- package/build/universal/Slider/index.d.ts.map +1 -1
- package/build/universal/Switch/index.d.ts.map +1 -1
- package/build/universal/TextInput/index.d.ts.map +1 -1
- package/build/universal/hooks.d.ts +11 -0
- package/build/universal/hooks.d.ts.map +1 -1
- package/build/universal/keyboardEvent.fx.d.ts +2 -0
- package/build/universal/keyboardEvent.fx.d.ts.map +1 -0
- package/build/universal/webUtils.d.ts +66 -0
- package/build/universal/webUtils.d.ts.map +1 -0
- package/expo-module.config.json +1 -1
- package/ios/HostView.swift +15 -0
- package/ios/Modifiers/PresentationModifiers.swift +30 -0
- package/ios/Modifiers/ShapeTypes.swift +50 -0
- package/ios/Modifiers/ViewModifierRegistry.swift +259 -11
- package/ios/Modifiers/WidgetModifiers.swift +1 -1
- package/ios/RNHostView.swift +5 -0
- package/ios/TextFieldView.swift +29 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.18/expo.modules.ui-56.0.18-sources.jar → 56.0.20/expo.modules.ui-56.0.20-sources.jar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.18/expo.modules.ui-56.0.18.module → 56.0.20/expo.modules.ui-56.0.20.module} +22 -22
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.18/expo.modules.ui-56.0.18.pom → 56.0.20/expo.modules.ui-56.0.20.pom} +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.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 +5 -9
- package/plugin/tsconfig.tsbuildinfo +1 -0
- package/src/State/index.fx.ts +4 -5
- package/src/community/bottom-sheet/BottomSheet.android.tsx +6 -1
- package/src/community/bottom-sheet/BottomSheet.ios.tsx +8 -4
- package/src/community/bottom-sheet/scrollContextReset.tsx +24 -0
- package/src/community/datetime-picker/DateTimePicker.tsx +9 -1
- package/src/community/datetime-picker/types.tsx +2 -2
- package/src/community/masked-view/MaskedView.android.tsx +5 -2
- package/src/community/masked-view/MaskedView.ios.tsx +5 -2
- package/src/community/menu/types.tsx +2 -2
- package/src/community/pager-view/types.tsx +2 -2
- package/src/community/segmented-control/types.tsx +2 -2
- package/src/community/slider/types.tsx +2 -2
- package/src/jetpack-compose/AlertDialog/index.tsx +2 -2
- package/src/jetpack-compose/AnimatedVisibility/index.tsx +2 -2
- package/src/jetpack-compose/Badge/index.tsx +2 -2
- package/src/jetpack-compose/BadgedBox/index.tsx +2 -2
- package/src/jetpack-compose/BasicAlertDialog/index.tsx +2 -2
- package/src/jetpack-compose/Box/index.tsx +2 -2
- package/src/jetpack-compose/Button/index.tsx +2 -2
- package/src/jetpack-compose/Card/index.tsx +6 -6
- package/src/jetpack-compose/Carousel/index.tsx +6 -6
- package/src/jetpack-compose/Checkbox/index.tsx +4 -4
- package/src/jetpack-compose/Chip/index.tsx +8 -8
- package/src/jetpack-compose/Column/index.tsx +2 -2
- package/src/jetpack-compose/DatePicker/index.tsx +6 -6
- package/src/jetpack-compose/DockedSearchBar/index.tsx +2 -2
- package/src/jetpack-compose/DropdownMenu/DropdownMenuItem.tsx +2 -2
- package/src/jetpack-compose/DropdownMenu/index.tsx +2 -2
- package/src/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.tsx +2 -2
- package/src/jetpack-compose/ExposedDropdownMenuBox/index.tsx +2 -2
- package/src/jetpack-compose/FloatingActionButton/index.tsx +6 -6
- package/src/jetpack-compose/FlowRow/index.tsx +2 -2
- package/src/jetpack-compose/HorizontalFloatingToolbar/index.tsx +4 -4
- package/src/jetpack-compose/HorizontalPager/index.tsx +2 -2
- package/src/jetpack-compose/Host/index.tsx +2 -2
- package/src/jetpack-compose/Icon/index.tsx +2 -2
- package/src/jetpack-compose/IconButton/index.tsx +2 -2
- package/src/jetpack-compose/LazyColumn/index.tsx +2 -2
- package/src/jetpack-compose/LazyRow/index.tsx +2 -2
- package/src/jetpack-compose/ListItem/index.tsx +2 -2
- package/src/jetpack-compose/LoadingIndicator/index.tsx +2 -2
- package/src/jetpack-compose/ModalBottomSheet/index.tsx +2 -2
- package/src/jetpack-compose/MultiChoiceSegmentedButtonRow/index.tsx +2 -2
- package/src/jetpack-compose/NavigationBar/index.tsx +4 -4
- package/src/jetpack-compose/Progress/index.tsx +7 -7
- package/src/jetpack-compose/PullToRefreshBox/index.tsx +4 -4
- package/src/jetpack-compose/RadioButton/index.tsx +2 -2
- package/src/jetpack-compose/Row/index.tsx +2 -2
- package/src/jetpack-compose/SearchBar/index.tsx +2 -2
- package/src/jetpack-compose/SegmentedButton/index.tsx +2 -2
- package/src/jetpack-compose/Shape/index.tsx +2 -2
- package/src/jetpack-compose/SingleChoiceSegmentedButtonRow/index.tsx +2 -2
- package/src/jetpack-compose/Slider/index.tsx +2 -2
- package/src/jetpack-compose/Snackbar/index.tsx +4 -4
- package/src/jetpack-compose/Spacer/index.tsx +2 -2
- package/src/jetpack-compose/Surface/index.tsx +2 -2
- package/src/jetpack-compose/Switch/index.tsx +2 -2
- package/src/jetpack-compose/SyncSwitch/index.tsx +2 -2
- package/src/jetpack-compose/Text/index.tsx +2 -2
- package/src/jetpack-compose/TextField/BasicTextField.tsx +2 -2
- package/src/jetpack-compose/TextField/TextField.tsx +4 -4
- package/src/jetpack-compose/ToggleButton/index.tsx +2 -2
- package/src/jetpack-compose/Tooltip/index.tsx +6 -6
- package/src/swift-ui/AccessoryWidgetBackground/index.tsx +1 -1
- package/src/swift-ui/Alert/index.tsx +2 -2
- package/src/swift-ui/BottomSheet/index.tsx +2 -2
- package/src/swift-ui/Button/index.tsx +2 -2
- package/src/swift-ui/Chart/index.tsx +2 -2
- package/src/swift-ui/ColorPicker/index.tsx +2 -2
- package/src/swift-ui/ConfirmationDialog/index.tsx +2 -2
- package/src/swift-ui/ContextMenu/types.ts +4 -4
- package/src/swift-ui/DatePicker/index.tsx +2 -2
- package/src/swift-ui/Divider/index.tsx +1 -1
- package/src/swift-ui/Gauge/index.tsx +2 -2
- package/src/swift-ui/GlassEffectContainer/index.tsx +2 -2
- package/src/swift-ui/Grid/index.tsx +2 -2
- package/src/swift-ui/HStack/index.tsx +2 -2
- package/src/swift-ui/Host/index.tsx +12 -3
- package/src/swift-ui/Label/index.tsx +2 -2
- package/src/swift-ui/LabeledContent/index.tsx +2 -2
- package/src/swift-ui/LazyHStack/index.tsx +2 -2
- package/src/swift-ui/LazyVStack/index.tsx +2 -2
- package/src/swift-ui/Link/index.tsx +2 -2
- package/src/swift-ui/List/ListForEach.tsx +2 -2
- package/src/swift-ui/Mask/index.tsx +2 -2
- package/src/swift-ui/Menu/types.ts +2 -2
- package/src/swift-ui/Namespace.tsx +2 -2
- package/src/swift-ui/Overlay/index.tsx +2 -2
- package/src/swift-ui/Popover/index.tsx +2 -2
- package/src/swift-ui/ProgressView/index.tsx +2 -2
- package/src/swift-ui/RNHostView.tsx +2 -2
- package/src/swift-ui/ScrollView/index.tsx +2 -2
- package/src/swift-ui/Section/index.tsx +2 -2
- package/src/swift-ui/SecureField/index.tsx +2 -2
- package/src/swift-ui/ShareLink/index.tsx +2 -2
- package/src/swift-ui/Slider/index.tsx +2 -2
- package/src/swift-ui/Stepper/index.tsx +2 -2
- package/src/swift-ui/SwipeActions/index.tsx +4 -4
- package/src/swift-ui/SyncToggle/index.tsx +2 -2
- package/src/swift-ui/TabView/Tab.tsx +2 -2
- package/src/swift-ui/TabView/index.tsx +2 -2
- package/src/swift-ui/TextField/index.tsx +2 -2
- package/src/swift-ui/Toggle/index.tsx +2 -2
- package/src/swift-ui/VStack/index.tsx +2 -2
- package/src/swift-ui/ZStack/index.tsx +2 -2
- package/src/swift-ui/modifiers/index.ts +161 -0
- package/src/swift-ui/modifiers/presentationModifiers.ts +22 -0
- package/src/ts-declarations/react-native-web.d.ts +31 -3
- package/src/universal/Button/index.tsx +83 -35
- package/src/universal/Checkbox/index.tsx +85 -30
- package/src/universal/Collapsible/index.tsx +5 -17
- package/src/universal/FieldGroup/FieldGroup.tsx +5 -15
- package/src/universal/FieldGroup/FieldSection.tsx +14 -31
- package/src/universal/Host/index.tsx +44 -30
- package/src/universal/Host/types.ts +17 -2
- package/src/universal/ListItem/ListItem.android.tsx +10 -2
- package/src/universal/ListItem/ListItem.ios.tsx +23 -6
- package/src/universal/ListItem/types.ts +10 -0
- package/src/universal/Picker/Picker.tsx +74 -29
- package/src/universal/Slider/index.tsx +90 -9
- package/src/universal/Switch/index.android.tsx +2 -2
- package/src/universal/Switch/index.tsx +77 -18
- package/src/universal/TextInput/index.tsx +49 -13
- package/src/universal/hooks.ts +25 -1
- package/src/universal/keyboardEvent.fx.ts +28 -0
- package/src/universal/webUtils.ts +245 -0
- package/CLAUDE.md +0 -54
- package/CONTRIBUTING.md +0 -30
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.sha512 +0 -1
|
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
|
|
|
3
3
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
4
4
|
import { type CommonViewModifierProps } from '../types';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export interface LinkProps extends CommonViewModifierProps {
|
|
7
7
|
/**
|
|
8
8
|
* The text label for the Link. Use this for simple text links.
|
|
9
9
|
*/
|
|
@@ -17,7 +17,7 @@ export type LinkProps = {
|
|
|
17
17
|
* Only nested elements are supported, not plain strings.
|
|
18
18
|
*/
|
|
19
19
|
children?: React.ReactElement | React.ReactElement[];
|
|
20
|
-
}
|
|
20
|
+
}
|
|
21
21
|
|
|
22
22
|
const LinkNativeView: React.ComponentType<LinkProps> = requireNativeView('ExpoUI', 'LinkView');
|
|
23
23
|
|
|
@@ -16,7 +16,7 @@ type NativeListForEachProps = CommonViewModifierProps &
|
|
|
16
16
|
children: React.ReactNode;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
export
|
|
19
|
+
export interface ListForEachProps extends CommonViewModifierProps {
|
|
20
20
|
/**
|
|
21
21
|
* The children elements to be rendered inside the `List.ForEach`.
|
|
22
22
|
*/
|
|
@@ -35,7 +35,7 @@ export type ListForEachProps = {
|
|
|
35
35
|
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/dynamicviewcontent/onmove(perform:)).
|
|
36
36
|
*/
|
|
37
37
|
onMove?: (sourceIndices: number[], destination: number) => void;
|
|
38
|
-
}
|
|
38
|
+
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* A compound component of `List` that enables item deletion and reordering.
|
|
@@ -4,14 +4,14 @@ import { Slot } from '../SlotView';
|
|
|
4
4
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
5
5
|
import { type Alignment, type CommonViewModifierProps } from '../types';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export interface MaskProps extends CommonViewModifierProps {
|
|
8
8
|
children: React.ReactNode;
|
|
9
9
|
/**
|
|
10
10
|
* The alignment of the mask content relative to the base content.
|
|
11
11
|
* @default 'center'
|
|
12
12
|
*/
|
|
13
13
|
alignment?: Alignment;
|
|
14
|
-
}
|
|
14
|
+
}
|
|
15
15
|
|
|
16
16
|
const MaskNativeView: React.ComponentType<MaskProps> = requireNativeView('ExpoUI', 'MaskView');
|
|
17
17
|
|
|
@@ -5,7 +5,7 @@ import type { CommonViewModifierProps } from '../types';
|
|
|
5
5
|
/**
|
|
6
6
|
* Props for the `Menu` component.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export interface MenuProps extends CommonViewModifierProps {
|
|
9
9
|
/**
|
|
10
10
|
* The label for the menu trigger. Can be a string for simple text labels,
|
|
11
11
|
* or a ReactNode for custom label content.
|
|
@@ -27,4 +27,4 @@ export type MenuProps = {
|
|
|
27
27
|
* Can contain `Button`, `Toggle`, `Picker`, `Section`, `Divider` or nested `Menu` components.
|
|
28
28
|
*/
|
|
29
29
|
children: ReactNode;
|
|
30
|
-
}
|
|
30
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { requireNativeView } from 'expo';
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export interface NamespaceProps {
|
|
4
4
|
/**
|
|
5
5
|
* The ID of the namespace. You can generate one with the `useId` react hook.
|
|
6
6
|
*/
|
|
7
7
|
id: string;
|
|
8
8
|
|
|
9
9
|
children: React.ReactNode;
|
|
10
|
-
}
|
|
10
|
+
}
|
|
11
11
|
|
|
12
12
|
type NativeNamespaceProps = NamespaceProps;
|
|
13
13
|
|
|
@@ -4,14 +4,14 @@ import { Slot } from '../SlotView';
|
|
|
4
4
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
5
5
|
import { type Alignment, type CommonViewModifierProps } from '../types';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export interface OverlayProps extends CommonViewModifierProps {
|
|
8
8
|
children: React.ReactNode;
|
|
9
9
|
/**
|
|
10
10
|
* The alignment of the overlay content relative to the base content.
|
|
11
11
|
* @default 'center'
|
|
12
12
|
*/
|
|
13
13
|
alignment?: Alignment;
|
|
14
|
-
}
|
|
14
|
+
}
|
|
15
15
|
|
|
16
16
|
const OverlayNativeView: React.ComponentType<OverlayProps> = requireNativeView(
|
|
17
17
|
'ExpoUI',
|
|
@@ -5,7 +5,7 @@ import { Slot } from '../SlotView';
|
|
|
5
5
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
6
6
|
import type { CommonViewModifierProps } from '../types';
|
|
7
7
|
|
|
8
|
-
export
|
|
8
|
+
export interface PopoverViewProps extends CommonViewModifierProps {
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
/**
|
|
11
11
|
* Whether the popover is presented.
|
|
@@ -24,7 +24,7 @@ export type PopoverViewProps = {
|
|
|
24
24
|
* @default 'none'
|
|
25
25
|
*/
|
|
26
26
|
arrowEdge?: 'leading' | 'trailing' | 'top' | 'bottom' | 'none';
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
28
|
|
|
29
29
|
type NativePopoverViewProps = Omit<PopoverViewProps, 'onIsPresentedChange'> & {
|
|
30
30
|
onIsPresentedChange?: (event: NativeSyntheticEvent<{ isPresented: boolean }>) => void;
|
|
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
|
|
|
3
3
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
4
4
|
import { type ClosedRangeDate, type CommonViewModifierProps } from '../types';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export interface ProgressViewProps extends CommonViewModifierProps {
|
|
7
7
|
/**
|
|
8
8
|
* The current progress value. A value between `0` and `1`.
|
|
9
9
|
* When `undefined`, the progress view displays an indeterminate indicator.
|
|
@@ -26,7 +26,7 @@ export type ProgressViewProps = {
|
|
|
26
26
|
* A label describing the progress view's purpose.
|
|
27
27
|
*/
|
|
28
28
|
children?: React.ReactNode;
|
|
29
|
-
}
|
|
29
|
+
}
|
|
30
30
|
|
|
31
31
|
type NativeProgressViewProps = Omit<ProgressViewProps, 'timerInterval'> & {
|
|
32
32
|
timerInterval?: { lower: number; upper: number };
|
|
@@ -2,7 +2,7 @@ import { requireNativeView } from 'expo';
|
|
|
2
2
|
|
|
3
3
|
const RNHostNativeView: React.ComponentType<any> = requireNativeView('ExpoUI', 'RNHostView');
|
|
4
4
|
|
|
5
|
-
export
|
|
5
|
+
export interface RNHostViewProps {
|
|
6
6
|
/**
|
|
7
7
|
* When `true`, the RNHost will update its size in the React Native view tree to match the children's size.
|
|
8
8
|
* When `false`, the RNHost will use the size of the parent SwiftUI View.
|
|
@@ -14,7 +14,7 @@ export type RNHostViewProps = {
|
|
|
14
14
|
* The RN View to be hosted.
|
|
15
15
|
*/
|
|
16
16
|
children: React.ReactElement;
|
|
17
|
-
}
|
|
17
|
+
}
|
|
18
18
|
|
|
19
19
|
export function RNHostView(props: RNHostViewProps) {
|
|
20
20
|
return (
|
|
@@ -29,7 +29,7 @@ export type ScrollGeometry = {
|
|
|
29
29
|
contentHeight: number;
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
export
|
|
32
|
+
export interface ScrollViewProps extends CommonViewModifierProps {
|
|
33
33
|
children: React.ReactNode;
|
|
34
34
|
/**
|
|
35
35
|
* The scrollable axes. Pass `'both'` to enable 2D (horizontal + vertical) scrolling.
|
|
@@ -42,7 +42,7 @@ export type ScrollViewProps = {
|
|
|
42
42
|
* @default true
|
|
43
43
|
*/
|
|
44
44
|
showsIndicators?: boolean;
|
|
45
|
-
}
|
|
45
|
+
}
|
|
46
46
|
|
|
47
47
|
const ScrollViewNativeView: React.ComponentType<ScrollViewProps> = requireNativeView(
|
|
48
48
|
'ExpoUI',
|
|
@@ -4,7 +4,7 @@ import { Slot } from '../SlotView';
|
|
|
4
4
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
5
5
|
import { type CommonViewModifierProps } from '../types';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export interface SectionProps extends CommonViewModifierProps {
|
|
8
8
|
/**
|
|
9
9
|
* The title of the section.
|
|
10
10
|
*/
|
|
@@ -35,7 +35,7 @@ export type SectionProps = {
|
|
|
35
35
|
* @platform tvos 17.0+
|
|
36
36
|
*/
|
|
37
37
|
onIsExpandedChange?: (isExpanded: boolean) => void;
|
|
38
|
-
}
|
|
38
|
+
}
|
|
39
39
|
|
|
40
40
|
type SectionNativeProps = Omit<SectionProps, 'onIsExpandedChange'> & {
|
|
41
41
|
onIsExpandedChange?: (e: { nativeEvent: { isExpanded: boolean } }) => void;
|
|
@@ -18,7 +18,7 @@ export type SecureFieldRef = {
|
|
|
18
18
|
blur: () => Promise<void>;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export
|
|
21
|
+
export interface SecureFieldProps extends CommonViewModifierProps {
|
|
22
22
|
ref?: Ref<SecureFieldRef>;
|
|
23
23
|
/**
|
|
24
24
|
* An observable state that holds the current text.
|
|
@@ -49,7 +49,7 @@ export type SecureFieldProps = {
|
|
|
49
49
|
* Slot children - supports `<SecureField.Placeholder>` with a `<Text>` child
|
|
50
50
|
*/
|
|
51
51
|
children?: React.ReactNode;
|
|
52
|
-
}
|
|
52
|
+
}
|
|
53
53
|
|
|
54
54
|
export type NativeSecureFieldProps = Omit<
|
|
55
55
|
SecureFieldProps,
|
|
@@ -4,7 +4,7 @@ import { useCallback, useRef } from 'react';
|
|
|
4
4
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
5
5
|
import { type CommonViewModifierProps } from '../types';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export interface ShareLinkProps extends CommonViewModifierProps {
|
|
8
8
|
/**
|
|
9
9
|
* The URL or item to be shared.
|
|
10
10
|
* This can be a web URL, a file path, or any other shareable item.
|
|
@@ -35,7 +35,7 @@ export type ShareLinkProps = {
|
|
|
35
35
|
* Optional children to be rendered inside the share link.
|
|
36
36
|
*/
|
|
37
37
|
children?: React.ReactNode;
|
|
38
|
-
}
|
|
38
|
+
}
|
|
39
39
|
|
|
40
40
|
type ShareLinkNativeRef = {
|
|
41
41
|
setItem: (url: string | null) => Promise<void>;
|
|
@@ -4,7 +4,7 @@ import type { NativeSyntheticEvent } from 'react-native';
|
|
|
4
4
|
import { Slot } from '../SlotView';
|
|
5
5
|
import { type CommonViewModifierProps } from '../types';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export interface SliderProps extends CommonViewModifierProps {
|
|
8
8
|
/**
|
|
9
9
|
* The current value of the slider.
|
|
10
10
|
*/
|
|
@@ -51,7 +51,7 @@ export type SliderProps = {
|
|
|
51
51
|
* Callback triggered when the user starts or ends editing the slider.
|
|
52
52
|
*/
|
|
53
53
|
onEditingChanged?: (isEditing: boolean) => void;
|
|
54
|
-
}
|
|
54
|
+
}
|
|
55
55
|
|
|
56
56
|
type NativeSliderProps = Omit<
|
|
57
57
|
SliderProps,
|
|
@@ -4,7 +4,7 @@ import { type ViewEvent } from '../../types';
|
|
|
4
4
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
5
5
|
import { type CommonViewModifierProps } from '../types';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export interface StepperProps extends CommonViewModifierProps {
|
|
8
8
|
/**
|
|
9
9
|
* The label text displayed with the stepper.
|
|
10
10
|
*/
|
|
@@ -29,7 +29,7 @@ export type StepperProps = {
|
|
|
29
29
|
* Called when the stepper value changes.
|
|
30
30
|
*/
|
|
31
31
|
onValueChange: (value: number) => void;
|
|
32
|
-
}
|
|
32
|
+
}
|
|
33
33
|
|
|
34
34
|
type NativeStepperProps = Omit<StepperProps, 'onValueChange'> &
|
|
35
35
|
ViewEvent<'onValueChange', { value: number }>;
|
|
@@ -6,14 +6,14 @@ import { type CommonViewModifierProps } from '../types';
|
|
|
6
6
|
|
|
7
7
|
export type SwipeActionsEdge = 'leading' | 'trailing';
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export interface SwipeActionsProps extends CommonViewModifierProps {
|
|
10
10
|
/**
|
|
11
11
|
* The regular content and `SwipeActions.Actions` action groups.
|
|
12
12
|
*/
|
|
13
13
|
children: React.ReactNode;
|
|
14
|
-
}
|
|
14
|
+
}
|
|
15
15
|
|
|
16
|
-
export
|
|
16
|
+
export interface SwipeActionsGroupProps {
|
|
17
17
|
/**
|
|
18
18
|
* The edge where these swipe actions are revealed.
|
|
19
19
|
* @default 'trailing'
|
|
@@ -28,7 +28,7 @@ export type SwipeActionsGroupProps = {
|
|
|
28
28
|
* The buttons revealed when the user swipes from this edge.
|
|
29
29
|
*/
|
|
30
30
|
children: React.ReactNode;
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
32
|
|
|
33
33
|
type SwipeActionsNativeProps = SwipeActionsProps;
|
|
34
34
|
|
|
@@ -5,7 +5,7 @@ import { getStateId, type ObservableState, useWorkletProp } from '../../State';
|
|
|
5
5
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
6
6
|
import { type CommonViewModifierProps } from '../types';
|
|
7
7
|
|
|
8
|
-
export
|
|
8
|
+
export interface SyncToggleProps extends CommonViewModifierProps {
|
|
9
9
|
/**
|
|
10
10
|
* An observable state that drives the toggle.
|
|
11
11
|
* Create one with `useNativeState(false)`.
|
|
@@ -24,7 +24,7 @@ export type SyncToggleProps = {
|
|
|
24
24
|
* Must be marked with the `'worklet'` directive.
|
|
25
25
|
*/
|
|
26
26
|
onIsOnChangeSync?: (isOn: boolean) => void;
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
28
|
|
|
29
29
|
type NativeSyncToggleProps = Omit<SyncToggleProps, 'isOn' | 'onIsOnChangeSync'> & {
|
|
30
30
|
isOn?: number | null;
|
|
@@ -3,7 +3,7 @@ import { type SFSymbol } from 'sf-symbols-typescript';
|
|
|
3
3
|
|
|
4
4
|
import { type CommonViewModifierProps } from '../types';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export interface TabProps extends CommonViewModifierProps {
|
|
7
7
|
/**
|
|
8
8
|
* Identifies this tab. Matched against the parent `TabView`'s `selection`
|
|
9
9
|
* and `defaultSelection` props.
|
|
@@ -21,7 +21,7 @@ export type TabProps = {
|
|
|
21
21
|
* The tab's content — rendered when this tab is selected.
|
|
22
22
|
*/
|
|
23
23
|
children: React.ReactNode;
|
|
24
|
-
}
|
|
24
|
+
}
|
|
25
25
|
|
|
26
26
|
const TabNativeView: React.ComponentType<TabProps> = requireNativeView('ExpoUI', 'Tab');
|
|
27
27
|
|
|
@@ -5,7 +5,7 @@ import { type ViewEvent } from '../../types';
|
|
|
5
5
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
6
6
|
import { type CommonViewModifierProps } from '../types';
|
|
7
7
|
|
|
8
|
-
export
|
|
8
|
+
export interface TabViewProps extends CommonViewModifierProps {
|
|
9
9
|
/**
|
|
10
10
|
* The selected tab (controlled mode). Pair with `onSelectionChange`.
|
|
11
11
|
* Pass `defaultSelection` instead to let the native view manage state.
|
|
@@ -24,7 +24,7 @@ export type TabViewProps = {
|
|
|
24
24
|
* `<TabView.Tab>` elements defining the pages.
|
|
25
25
|
*/
|
|
26
26
|
children: React.ReactElement | React.ReactElement[];
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
28
|
|
|
29
29
|
type NativeTabViewProps = Omit<TabViewProps, 'onSelectionChange'> &
|
|
30
30
|
ViewEvent<'onSelectionChange', { selection: string }>;
|
|
@@ -28,7 +28,7 @@ export type TextFieldRef = {
|
|
|
28
28
|
*/
|
|
29
29
|
export type TextFieldSelection = { start: number; end: number };
|
|
30
30
|
|
|
31
|
-
export
|
|
31
|
+
export interface TextFieldProps extends CommonViewModifierProps {
|
|
32
32
|
ref?: Ref<TextFieldRef>;
|
|
33
33
|
/**
|
|
34
34
|
* An observable state that holds the current text.
|
|
@@ -80,7 +80,7 @@ export type TextFieldProps = {
|
|
|
80
80
|
* placeholder's styling).
|
|
81
81
|
*/
|
|
82
82
|
children?: React.ReactNode;
|
|
83
|
-
}
|
|
83
|
+
}
|
|
84
84
|
|
|
85
85
|
export type NativeTextFieldProps = Omit<
|
|
86
86
|
TextFieldProps,
|
|
@@ -5,7 +5,7 @@ import type { SFSymbol } from 'sf-symbols-typescript';
|
|
|
5
5
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
6
6
|
import { type CommonViewModifierProps } from '../types';
|
|
7
7
|
|
|
8
|
-
export
|
|
8
|
+
export interface ToggleProps extends CommonViewModifierProps {
|
|
9
9
|
/**
|
|
10
10
|
* A Boolean value that determines the on/off state of the toggle.
|
|
11
11
|
*/
|
|
@@ -28,7 +28,7 @@ export type ToggleProps = {
|
|
|
28
28
|
* the first represents the title and the second represents the subtitle.
|
|
29
29
|
*/
|
|
30
30
|
children?: React.ReactNode;
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
32
|
|
|
33
33
|
type NativeToggleProps = Omit<ToggleProps, 'onIsOnChange'> & {
|
|
34
34
|
onIsOnChange: (event: NativeSyntheticEvent<{ isOn: boolean }>) => void;
|
|
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
|
|
|
3
3
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
4
4
|
import { type CommonViewModifierProps } from '../types';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export interface VStackProps extends CommonViewModifierProps {
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
/**
|
|
9
9
|
* The horizontal alignment of children within the stack.
|
|
@@ -13,7 +13,7 @@ export type VStackProps = {
|
|
|
13
13
|
* The spacing between children.
|
|
14
14
|
*/
|
|
15
15
|
spacing?: number;
|
|
16
|
-
}
|
|
16
|
+
}
|
|
17
17
|
|
|
18
18
|
const VStackNativeView: React.ComponentType<VStackProps> = requireNativeView(
|
|
19
19
|
'ExpoUI',
|
|
@@ -3,13 +3,13 @@ import { requireNativeView } from 'expo';
|
|
|
3
3
|
import { createViewModifierEventListener } from '../modifiers/utils';
|
|
4
4
|
import { type Alignment, type CommonViewModifierProps } from '../types';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export interface ZStackProps extends CommonViewModifierProps {
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
/**
|
|
9
9
|
* The alignment of children within the stack.
|
|
10
10
|
*/
|
|
11
11
|
alignment?: Alignment;
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
13
|
|
|
14
14
|
const ZStackNativeView: React.ComponentType<ZStackProps> = requireNativeView(
|
|
15
15
|
'ExpoUI',
|
|
@@ -252,6 +252,44 @@ export const clipShape = (
|
|
|
252
252
|
export const border = (params: { color: Color; width?: number }) =>
|
|
253
253
|
createModifier('border', params);
|
|
254
254
|
|
|
255
|
+
/**
|
|
256
|
+
* The characteristics of a stroke that traces a path.
|
|
257
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/strokestyle).
|
|
258
|
+
*/
|
|
259
|
+
export type StrokeStyle = {
|
|
260
|
+
/** The width of the stroked line. @default 1 */
|
|
261
|
+
lineWidth?: number;
|
|
262
|
+
/** The endpoint style of a line segment. @default 'butt' */
|
|
263
|
+
lineCap?: 'butt' | 'round' | 'square';
|
|
264
|
+
/** The join type where line segments meet. @default 'miter' */
|
|
265
|
+
lineJoin?: 'miter' | 'round' | 'bevel';
|
|
266
|
+
/** The limit past which a miter join is replaced by a bevel. @default 10 */
|
|
267
|
+
miterLimit?: number;
|
|
268
|
+
/** The lengths of alternating painted and unpainted segments. An empty array draws a solid line. @default [] */
|
|
269
|
+
dash?: number[];
|
|
270
|
+
/** How far into the dash pattern the line starts. @default 0 */
|
|
271
|
+
dashPhase?: number;
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Strokes an inset border along the view's shape.
|
|
276
|
+
* @param params - The stroke parameters. Color (omit for the foreground style), style, antialiased, shape and cornerRadius.
|
|
277
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/insettableshape/strokeborder(_:style:antialiased:)).
|
|
278
|
+
*/
|
|
279
|
+
export const strokeBorder = (params: {
|
|
280
|
+
color?: Color;
|
|
281
|
+
style?: StrokeStyle;
|
|
282
|
+
antialiased?: boolean;
|
|
283
|
+
shape?:
|
|
284
|
+
| 'rectangle'
|
|
285
|
+
| 'circle'
|
|
286
|
+
| 'capsule'
|
|
287
|
+
| 'ellipse'
|
|
288
|
+
| 'roundedRectangle'
|
|
289
|
+
| 'containerRelativeShape';
|
|
290
|
+
cornerRadius?: number;
|
|
291
|
+
}) => createModifier('strokeBorder', params);
|
|
292
|
+
|
|
255
293
|
/**
|
|
256
294
|
* Applies scaling transformation.
|
|
257
295
|
* @param scale - Uniform scale factor (1.0 = normal size), or an object with separate `x` and `y` scale factors.
|
|
@@ -465,6 +503,65 @@ export const hidden = (hidden: boolean = true) => createModifier('hidden', { hid
|
|
|
465
503
|
*/
|
|
466
504
|
export const disabled = (disabled: boolean = true) => createModifier('disabled', { disabled });
|
|
467
505
|
|
|
506
|
+
/**
|
|
507
|
+
* Adds a redaction reason to this view hierarchy, replacing rendered content
|
|
508
|
+
* with placeholders. Useful for skeleton loading states. Maps to SwiftUI's
|
|
509
|
+
* `redacted(reason:)`.
|
|
510
|
+
*
|
|
511
|
+
* `placeholder` redacts the whole subtree; `privacy` and `invalidated` redact
|
|
512
|
+
* only descendants marked `privacySensitive()` or `invalidatableContent()`.
|
|
513
|
+
* Reasons are additive and can be combined in an array; use `unredacted()` to
|
|
514
|
+
* exempt a subtree. The `invalidated` reason requires iOS 17+.
|
|
515
|
+
*
|
|
516
|
+
* @param reasons - The redaction reason or reasons to apply (an empty array applies none). Defaults to `'placeholder'`.
|
|
517
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/redacted(reason:)).
|
|
518
|
+
*/
|
|
519
|
+
export const redacted = (
|
|
520
|
+
reasons:
|
|
521
|
+
| 'placeholder'
|
|
522
|
+
| 'privacy'
|
|
523
|
+
| 'invalidated'
|
|
524
|
+
| ('placeholder' | 'privacy' | 'invalidated')[] = 'placeholder'
|
|
525
|
+
) =>
|
|
526
|
+
createModifier('redacted', {
|
|
527
|
+
reasons: Array.isArray(reasons) ? reasons : [reasons],
|
|
528
|
+
});
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Removes any redaction reason inherited from an ancestor `redacted(...)` for
|
|
532
|
+
* this subtree. The counterpart to `redacted`; use it to exempt specific content
|
|
533
|
+
* from a redacted parent. Maps to SwiftUI's `unredacted()`.
|
|
534
|
+
*
|
|
535
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/unredacted()).
|
|
536
|
+
*/
|
|
537
|
+
export const unredacted = () => createModifier('unredacted', {});
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Marks the view as containing sensitive, private data, redacted only when the
|
|
541
|
+
* `privacy` redaction reason is applied to an ancestor (for example `redacted('privacy')`).
|
|
542
|
+
* It has no effect on its own and does not auto-redact screenshots. Maps to
|
|
543
|
+
* SwiftUI's `privacySensitive(_:)`.
|
|
544
|
+
*
|
|
545
|
+
* @param sensitive - Whether the view contains sensitive content. Defaults to `true`.
|
|
546
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/privacysensitive(_:)).
|
|
547
|
+
*/
|
|
548
|
+
export const privacySensitive = (sensitive: boolean = true) =>
|
|
549
|
+
createModifier('privacySensitive', { sensitive });
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Marks the view's content as invalidatable. It is restyled with the "pending
|
|
553
|
+
* update" appearance only when the `invalidated` redaction reason is applied to
|
|
554
|
+
* an ancestor (for example `redacted('invalidated')`). Maps to SwiftUI's
|
|
555
|
+
* `invalidatableContent(_:)`.
|
|
556
|
+
*
|
|
557
|
+
* @param invalidatable - Whether the content can be invalidated. Defaults to `true`.
|
|
558
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/invalidatablecontent(_:)).
|
|
559
|
+
* @platform ios 17.0+
|
|
560
|
+
* @platform tvos 17.0+
|
|
561
|
+
*/
|
|
562
|
+
export const invalidatableContent = (invalidatable: boolean = true) =>
|
|
563
|
+
createModifier('invalidatableContent', { invalidatable });
|
|
564
|
+
|
|
468
565
|
/**
|
|
469
566
|
* Sets the z-index (display order) of a view.
|
|
470
567
|
* @param index - The z-index value.
|
|
@@ -776,6 +873,62 @@ export const accessibilityIdentifier = (identifier: string) =>
|
|
|
776
873
|
export const accessibilityHidden = (hidden: boolean = true) =>
|
|
777
874
|
createModifier('accessibilityHidden', { hidden });
|
|
778
875
|
|
|
876
|
+
/**
|
|
877
|
+
* Controls how a view's child accessibility elements are exposed, mirroring SwiftUI's
|
|
878
|
+
* `accessibilityElement(children:)`. It creates a new accessibility element (or modifies
|
|
879
|
+
* the existing one) and applies the chosen behavior to the subtree.
|
|
880
|
+
*
|
|
881
|
+
* Complements `accessibilityHidden`, which hides a single leaf, by acting on the whole subtree.
|
|
882
|
+
*
|
|
883
|
+
* @param children - How the child accessibility elements are treated:
|
|
884
|
+
* - `ignore` - hide the children; the new element starts with no properties, so pair it with `accessibilityLabel` (default).
|
|
885
|
+
* - `combine` - merge the children's accessibility properties into the new element.
|
|
886
|
+
* - `contain` - keep the children as accessible elements, grouped in the new element as a container (navigated in order).
|
|
887
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityelement(children:)).
|
|
888
|
+
*/
|
|
889
|
+
export const accessibilityElement = (children: 'ignore' | 'combine' | 'contain' = 'ignore') =>
|
|
890
|
+
createModifier('accessibilityElement', { children });
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* The set of accessibility traits that can be added to or removed from a view
|
|
894
|
+
* with `accessibilityAddTraits` and `accessibilityRemoveTraits`.
|
|
895
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/accessibilitytraits).
|
|
896
|
+
*/
|
|
897
|
+
export type AccessibilityTrait =
|
|
898
|
+
| 'isButton'
|
|
899
|
+
| 'isHeader'
|
|
900
|
+
| 'isImage'
|
|
901
|
+
| 'isSelected'
|
|
902
|
+
| 'isLink'
|
|
903
|
+
| 'isModal'
|
|
904
|
+
| 'isSummaryElement'
|
|
905
|
+
| 'updatesFrequently'
|
|
906
|
+
| 'startsMediaSession'
|
|
907
|
+
| 'allowsDirectInteraction'
|
|
908
|
+
| 'causesPageTurn'
|
|
909
|
+
| 'isToggle'
|
|
910
|
+
| 'playsSound'
|
|
911
|
+
| 'isStaticText'
|
|
912
|
+
| 'isSearchField'
|
|
913
|
+
| 'isKeyboardKey'
|
|
914
|
+
| 'isTabBar';
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* Adds the given accessibility traits to the view.
|
|
918
|
+
* @param traits - The accessibility traits to add. `isToggle` and `isTabBar` require iOS 17+ and are ignored on older systems.
|
|
919
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityaddtraits(_:)).
|
|
920
|
+
*/
|
|
921
|
+
export const accessibilityAddTraits = (traits: AccessibilityTrait[]) =>
|
|
922
|
+
createModifier('accessibilityAddTraits', { traits });
|
|
923
|
+
|
|
924
|
+
/**
|
|
925
|
+
* Removes the given accessibility traits from the view.
|
|
926
|
+
* @param traits - The accessibility traits to remove. `isToggle` and `isTabBar` require iOS 17+ and are ignored on older systems.
|
|
927
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityremovetraits(_:)).
|
|
928
|
+
*/
|
|
929
|
+
export const accessibilityRemoveTraits = (traits: AccessibilityTrait[]) =>
|
|
930
|
+
createModifier('accessibilityRemoveTraits', { traits });
|
|
931
|
+
|
|
779
932
|
/**
|
|
780
933
|
* Sets layout priority for the view.
|
|
781
934
|
* @param priority - Layout priority value.
|
|
@@ -1439,6 +1592,7 @@ export type BuiltInModifier =
|
|
|
1439
1592
|
| ReturnType<typeof opacity>
|
|
1440
1593
|
| ReturnType<typeof clipShape>
|
|
1441
1594
|
| ReturnType<typeof border>
|
|
1595
|
+
| ReturnType<typeof strokeBorder>
|
|
1442
1596
|
| ReturnType<typeof scaleEffect>
|
|
1443
1597
|
| ReturnType<typeof rotationEffect>
|
|
1444
1598
|
| ReturnType<typeof rotation3DEffect>
|
|
@@ -1451,6 +1605,10 @@ export type BuiltInModifier =
|
|
|
1451
1605
|
| ReturnType<typeof tint>
|
|
1452
1606
|
| ReturnType<typeof hidden>
|
|
1453
1607
|
| ReturnType<typeof disabled>
|
|
1608
|
+
| ReturnType<typeof redacted>
|
|
1609
|
+
| ReturnType<typeof unredacted>
|
|
1610
|
+
| ReturnType<typeof privacySensitive>
|
|
1611
|
+
| ReturnType<typeof invalidatableContent>
|
|
1454
1612
|
| ReturnType<typeof zIndex>
|
|
1455
1613
|
| ReturnType<typeof blur>
|
|
1456
1614
|
| ReturnType<typeof brightness>
|
|
@@ -1474,6 +1632,9 @@ export type BuiltInModifier =
|
|
|
1474
1632
|
| ReturnType<typeof accessibilityInputLabels>
|
|
1475
1633
|
| ReturnType<typeof accessibilityIdentifier>
|
|
1476
1634
|
| ReturnType<typeof accessibilityHidden>
|
|
1635
|
+
| ReturnType<typeof accessibilityElement>
|
|
1636
|
+
| ReturnType<typeof accessibilityAddTraits>
|
|
1637
|
+
| ReturnType<typeof accessibilityRemoveTraits>
|
|
1477
1638
|
| ReturnType<typeof layoutPriority>
|
|
1478
1639
|
| ReturnType<typeof mask>
|
|
1479
1640
|
| ReturnType<typeof overlay>
|
|
@@ -103,3 +103,25 @@ export const presentationBackground = (color: string) =>
|
|
|
103
103
|
*/
|
|
104
104
|
export const interactiveDismissDisabled = (isDisabled: boolean = true) =>
|
|
105
105
|
createModifier('interactiveDismissDisabled', { isDisabled });
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Sizing behavior for a sheet presentation.
|
|
109
|
+
* - `'automatic'`: The system default sizing.
|
|
110
|
+
* - `'fitted'`: Sizes the sheet to fit its content.
|
|
111
|
+
* - `'form'`: A compact, centered form sheet.
|
|
112
|
+
* - `'page'`: A larger page sheet.
|
|
113
|
+
*
|
|
114
|
+
* @remarks Sizing mainly affects the regular size class (iPad); in a compact size class (iPhone)
|
|
115
|
+
* sheets remain edge-attached and detents drive the height.
|
|
116
|
+
*/
|
|
117
|
+
export type PresentationSizingType = 'automatic' | 'fitted' | 'form' | 'page';
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Sets the sizing of a sheet presentation.
|
|
121
|
+
* @param sizing - The sizing behavior to apply.
|
|
122
|
+
* @platform ios 18.0+
|
|
123
|
+
* @platform tvos 18.0+
|
|
124
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/presentationsizing(_:)).
|
|
125
|
+
*/
|
|
126
|
+
export const presentationSizing = (sizing: PresentationSizingType) =>
|
|
127
|
+
createModifier('presentationSizing', { sizing });
|