@octane-xplat/ui 0.6.0 → 0.7.1
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/README.md +14 -4
- package/dist/native/{Absolute.native.tsrx.js → Absolute.tsrx.js} +2 -2
- package/dist/native/{Accordion.native.tsrx.js → Accordion.tsrx.js} +3 -3
- package/dist/native/{ActivityIndicator.native.tsrx.js → ActivityIndicator.tsrx.js} +2 -2
- package/dist/native/{Alert.native.tsrx.js → Alert.tsrx.js} +3 -3
- package/dist/native/{Avatar.native.tsrx.js → Avatar.tsrx.js} +3 -3
- package/dist/native/{AvatarGroup.native.tsrx.js → AvatarGroup.tsrx.js} +3 -3
- package/dist/native/{Badge.native.tsrx.js → Badge.tsrx.js} +2 -2
- package/dist/native/{Banner.native.tsrx.js → Banner.tsrx.js} +3 -3
- package/dist/native/{Breadcrumb.native.tsrx.js → Breadcrumb.tsrx.js} +2 -2
- package/dist/native/{Button.native.tsrx.js → Button.tsrx.js} +3 -3
- package/dist/native/{Card.native.tsrx.js → Card.tsrx.js} +2 -2
- package/dist/native/{Checkbox.native.tsrx.js → Checkbox.tsrx.js} +2 -2
- package/dist/native/{CheckboxGroup.native.tsrx.js → CheckboxGroup.tsrx.js} +3 -3
- package/dist/native/{Chip.native.tsrx.js → Chip.tsrx.js} +2 -2
- package/dist/native/{Collapsible.native.tsrx.js → Collapsible.tsrx.js} +3 -3
- package/dist/native/{CommandPalette.native.tsrx.js → CommandPalette.tsrx.js} +4 -4
- package/dist/native/{ContextMenu.native.tsrx.js → ContextMenu.tsrx.js} +4 -4
- package/dist/native/{Drawer.native.tsrx.js → Drawer.tsrx.js} +2 -2
- package/dist/native/{DropdownMenu.native.tsrx.js → DropdownMenu.tsrx.js} +5 -5
- package/dist/native/{Empty.native.tsrx.js → Empty.tsrx.js} +3 -3
- package/dist/native/{FieldGroup.native.tsrx.js → FieldGroup.tsrx.js} +2 -2
- package/dist/native/{FormField.native.tsrx.js → FormField.tsrx.js} +2 -2
- package/dist/native/{Grid.native.tsrx.js → Grid.tsrx.js} +2 -2
- package/dist/native/{Heading.native.tsrx.js → Heading.tsrx.js} +3 -3
- package/dist/native/Hoverable.tsrx.js +139 -0
- package/dist/native/{Icon.native.tsrx.js → Icon.tsrx.js} +3 -3
- package/dist/native/{Image.native.tsrx.js → Image.tsrx.js} +4 -4
- package/dist/native/{InputNumber.native.tsrx.js → InputNumber.tsrx.js} +4 -4
- package/dist/native/{InputRating.native.tsrx.js → InputRating.tsrx.js} +3 -3
- package/dist/native/{InputTags.native.tsrx.js → InputTags.tsrx.js} +4 -4
- package/dist/native/{Kbd.native.tsrx.js → Kbd.tsrx.js} +2 -2
- package/dist/native/{KeyboardAvoiding.native.tsrx.js → KeyboardAvoiding.mobile.tsrx.js} +5 -3
- package/dist/native/{Link.native.tsrx.js → Link.tsrx.js} +2 -2
- package/dist/native/ListItem.tsrx.js +178 -0
- package/dist/native/Meter.tsrx.js +70 -0
- package/dist/native/{NavLink.native.tsrx.js → NavLink.tsrx.js} +3 -3
- package/dist/native/{NavigationMenu.native.tsrx.js → NavigationMenu.tsrx.js} +3 -3
- package/dist/native/{Overlay.native.tsrx.js → Overlay.tsrx.js} +2 -2
- package/dist/native/{Pagination.native.tsrx.js → Pagination.tsrx.js} +2 -2
- package/dist/native/{PinInput.native.tsrx.js → PinInput.tsrx.js} +3 -3
- package/dist/native/{Popover.native.tsrx.js → Popover.tsrx.js} +4 -4
- package/dist/native/{Pressable.native.tsrx.js → Pressable.tsrx.js} +4 -4
- package/dist/native/{ProgressGroup.native.tsrx.js → ProgressGroup.tsrx.js} +3 -3
- package/dist/native/{RadioGroup.native.tsrx.js → RadioGroup.tsrx.js} +2 -2
- package/dist/native/{RichText.native.tsrx.js → RichText.tsrx.js} +3 -3
- package/dist/native/{RouteHost.native.tsrx.js → RouteHost.mobile.tsrx.js} +13 -2
- package/dist/native/{Row.native.tsrx.js → Row.tsrx.js} +4 -4
- package/dist/native/{SafeArea.native.tsrx.js → SafeArea.tsrx.js} +9 -3
- package/dist/native/{Screen.native.tsrx.js → Screen.tsrx.js} +13 -5
- package/dist/native/{ScrollBox.native.tsrx.js → ScrollBox.tsrx.js} +2 -2
- package/dist/native/{ScrollView.native.tsrx.js → ScrollView.tsrx.js} +5 -5
- package/dist/native/{SearchInput.native.tsrx.js → SearchInput.tsrx.js} +4 -4
- package/dist/native/{SegmentedControl.native.tsrx.js → SegmentedControl.tsrx.js} +2 -2
- package/dist/native/{Select.native.tsrx.js → Select.tsrx.js} +4 -4
- package/dist/native/{Separator.native.tsrx.js → Separator.tsrx.js} +2 -2
- package/dist/native/{Sheet.native.tsrx.js → Sheet.tsrx.js} +11 -3
- package/dist/native/{Skeleton.native.tsrx.js → Skeleton.tsrx.js} +2 -2
- package/dist/native/{Slider.native.tsrx.js → Slider.tsrx.js} +5 -5
- package/dist/native/{Spacer.native.tsrx.js → Spacer.tsrx.js} +2 -2
- package/dist/native/{Stack.native.tsrx.js → Stack.tsrx.js} +2 -2
- package/dist/native/{Stepper.native.tsrx.js → Stepper.tsrx.js} +2 -2
- package/dist/native/{Switch.native.tsrx.js → Switch.tsrx.js} +2 -2
- package/dist/native/{Table.native.tsrx.js → Table.tsrx.js} +2 -2
- package/dist/native/{Tabs.native.tsrx.js → Tabs.tsrx.js} +8 -18
- package/dist/native/{Text.native.tsrx.js → Text.tsrx.js} +3 -3
- package/dist/native/{TextArea.native.tsrx.js → TextArea.tsrx.js} +3 -3
- package/dist/native/{TextInput.native.tsrx.js → TextInput.tsrx.js} +3 -3
- package/dist/native/{Timeline.native.tsrx.js → Timeline.tsrx.js} +3 -3
- package/dist/native/Tooltip.tsrx.js +131 -0
- package/dist/native/{Tree.native.tsrx.js → Tree.tsrx.js} +2 -2
- package/dist/native/{User.native.tsrx.js → User.tsrx.js} +3 -3
- package/dist/native/{View.native.tsrx.js → View.tsrx.js} +4 -4
- package/dist/native/VirtualList.tsrx.js +466 -0
- package/dist/native/{WebView.native.tsrx.js → WebView.tsrx.js} +31 -6
- package/dist/native/{aliases.native.tsrx.js → aliases.tsrx.js} +2 -2
- package/dist/native/android/BottomNavigationView.android.tsrx.js +72 -23
- package/dist/native/android/CircularProgressIndicator.android.tsrx.js +1 -1
- package/dist/native/android/DrawerLayout.android.tsrx.js +2 -1
- package/dist/native/android/MaterialDialog.android.tsrx.js +1 -1
- package/dist/native/android/MaterialSwitch.android.tsrx.js +1 -1
- package/dist/native/android/RecyclerView.android.tsrx.js +15 -3
- package/dist/native/android/SeekBar.android.tsrx.js +1 -1
- package/dist/native/android/icon.android.js +7 -0
- package/dist/native/android/index.js +3 -1
- package/dist/native/android/openModal.android.js +1 -1
- package/dist/native/{anim.native.tsrx.js → anim.tsrx.js} +1 -1
- package/dist/native/apply-native-modifiers.native.js +9 -0
- package/dist/native/{escape-props.native.js → escape-props.js} +3 -1
- package/dist/native/index.shared.js +92 -0
- package/dist/native/ios/LiquidGlass.ios.tsrx.js +2 -2
- package/dist/native/ios/LiquidGlassContainer.ios.tsrx.js +2 -2
- package/dist/native/ios/SideDrawer.ios.tsrx.js +2 -1
- package/dist/native/ios/UIActivityIndicatorView.ios.tsrx.js +1 -1
- package/dist/native/ios/UIModal.ios.tsrx.js +1 -1
- package/dist/native/ios/UISlider.ios.tsrx.js +1 -1
- package/dist/native/ios/UISwitch.ios.tsrx.js +1 -1
- package/dist/native/ios/UITabBar.ios.tsrx.js +33 -12
- package/dist/native/ios/UITableView.ios.tsrx.js +15 -3
- package/dist/native/ios/icon.ios.js +7 -0
- package/dist/native/ios/index.js +3 -1
- package/dist/native/ios/openModal.ios.js +1 -1
- package/dist/native/keyboard-inset.mobile.js +66 -0
- package/dist/native/{layout-child.native.js → layout-child.js} +1 -1
- package/dist/native/{modal-presenter.native.js → modal-presenter.mobile.js} +1 -1
- package/dist/native/modifier-factories.js +24 -0
- package/dist/native/native/index.js +3 -3
- package/dist/native/octane-client-build.json +1 -1
- package/dist/native/{pan.native.tsrx.js → pan.tsrx.js} +1 -1
- package/dist/native/{platform.native.js → platform.js} +3 -3
- package/dist/native/{platformProps.native.js → platformProps.js} +3 -1
- package/dist/native/{refresh.native.js → refresh.js} +1 -1
- package/dist/native/{root-layout.native.js → root-layout.mobile.js} +2 -2
- package/dist/native/route-host.mobile.js +2 -0
- package/dist/native/route-table.js +105 -4
- package/dist/native/{route.native.js → route.js} +49 -13
- package/dist/native/safeAreaInsets.tsrx.js +67 -0
- package/dist/native/shared.js +93 -0
- package/dist/native/{sheet-detents.native.js → sheet-detents.js} +1 -1
- package/dist/native/{sheet-service.native.js → sheet-service.js} +9 -3
- package/dist/native/{stacks.native.js → stacks.js} +1 -1
- package/dist/native/{styled.native.tsrx.js → styled.tsrx.js} +1 -1
- package/dist/native/{svg.native.js → svg.mobile.js} +2 -2
- package/dist/native/tap-to-blur.mobile.js +94 -0
- package/dist/native/{text-write.native.js → text-write.js} +1 -1
- package/dist/native/theme/{colorScheme.native.js → colorScheme.js} +2 -2
- package/dist/native/theme/{status-bar-scheme.native.js → status-bar-scheme.mobile.js} +1 -1
- package/dist/native/theme/theme-scheme.js +2 -2
- package/dist/native/{toast-anchor.native.tsrx.js → toast-anchor.tsrx.js} +3 -3
- package/dist/native/{translate.native.js → translate.js} +1 -1
- package/dist/native/ui.js +92 -90
- package/dist/native/{use-back.native.tsrx.js → use-back.tsrx.js} +2 -2
- package/dist/native/{use-store.native.tsrx.js → use-store.tsrx.js} +1 -1
- package/dist/native/{useMeasure.native.tsrx.js → useMeasure.tsrx.js} +1 -1
- package/dist/native/vendor/ui-svg/index.android.js +137 -0
- package/dist/native/vendor/ui-svg/index.common.js +10 -0
- package/dist/native/vendor/ui-svg/index.ios.js +111 -0
- package/dist/native/virtual-list-layout.js +146 -0
- package/dist/native/{windows.native.js → windows.js} +1 -1
- package/dist/web/{web/Hoverable.web.tsrx.js → Hoverable.web.tsrx.js} +7 -6
- package/dist/web/ListItem.web.tsrx.js +139 -0
- package/dist/web/SafeArea.web.tsrx.js +9 -3
- package/dist/web/Tabs.web.tsrx.js +88 -44
- package/dist/web/{web/Tooltip.web.tsrx.js → Tooltip.web.tsrx.js} +7 -6
- package/dist/web/VirtualList.web.tsrx.js +622 -0
- package/dist/web/WebView.web.tsrx.js +42 -5
- package/dist/web/octane-client-build.json +1 -1
- package/dist/web/platform.web.js +1 -1
- package/dist/web/route-table.js +105 -4
- package/dist/web/route.web.js +36 -11
- package/dist/web/ui.js +9 -8
- package/dist/web/virtual-list-layout.js +146 -0
- package/dist/web/web/index.js +2 -2
- package/package.json +51 -23
- package/platforms/android/include.gradle +8 -0
- package/platforms/android/native-api-usage.json +8 -0
- package/platforms/ios/Podfile +2 -0
- package/src/Absolute.tsrx +22 -0
- package/src/Absolute.web.tsrx +22 -0
- package/src/Accordion.macos.tsrx +50 -0
- package/src/Accordion.tsrx +50 -0
- package/src/Accordion.web.tsrx +43 -0
- package/src/ActivityIndicator.tsrx +29 -0
- package/src/ActivityIndicator.web.tsrx +14 -0
- package/src/Alert.macos.tsrx +42 -0
- package/src/Alert.tsrx +24 -0
- package/src/Alert.web.tsrx +23 -0
- package/src/Avatar.macos.tsrx +25 -0
- package/src/Avatar.tsrx +25 -0
- package/src/Avatar.web.tsrx +24 -0
- package/src/AvatarGroup.macos.tsrx +32 -0
- package/src/AvatarGroup.tsrx +32 -0
- package/src/AvatarGroup.web.tsrx +29 -0
- package/src/Badge.macos.tsrx +12 -0
- package/src/Badge.tsrx +12 -0
- package/src/Badge.web.tsrx +10 -0
- package/src/Banner.macos.tsrx +20 -0
- package/src/Banner.tsrx +20 -0
- package/src/Banner.web.tsrx +20 -0
- package/src/Breadcrumb.macos.tsrx +27 -0
- package/src/Breadcrumb.tsrx +27 -0
- package/src/Breadcrumb.web.tsrx +25 -0
- package/src/Button.tsrx +23 -0
- package/src/Button.web.tsrx +21 -0
- package/src/CameraView.macos.tsrx +6 -0
- package/src/Card.macos.tsrx +13 -0
- package/src/Card.tsrx +13 -0
- package/src/Card.web.tsrx +11 -0
- package/src/Checkbox.tsrx +23 -0
- package/src/Checkbox.web.tsrx +34 -0
- package/src/CheckboxGroup.macos.tsrx +39 -0
- package/src/CheckboxGroup.tsrx +39 -0
- package/src/CheckboxGroup.web.tsrx +38 -0
- package/src/Chip.macos.tsrx +25 -0
- package/src/Chip.tsrx +25 -0
- package/src/Chip.web.tsrx +25 -0
- package/src/Collapsible.macos.tsrx +39 -0
- package/src/Collapsible.tsrx +39 -0
- package/src/Collapsible.web.tsrx +33 -0
- package/src/CommandPalette.macos.tsrx +58 -0
- package/src/CommandPalette.tsrx +58 -0
- package/src/CommandPalette.web.tsrx +59 -0
- package/src/ContextMenu.macos.tsrx +59 -0
- package/src/ContextMenu.tsrx +59 -0
- package/src/ContextMenu.web.tsrx +69 -0
- package/src/Drawer.macos.tsrx +28 -0
- package/src/Drawer.tsrx +25 -0
- package/src/Drawer.web.tsrx +31 -0
- package/src/DropdownMenu.macos.tsrx +63 -0
- package/src/DropdownMenu.tsrx +63 -0
- package/src/DropdownMenu.web.tsrx +78 -0
- package/src/Empty.macos.tsrx +15 -0
- package/src/Empty.tsrx +15 -0
- package/src/Empty.web.tsrx +13 -0
- package/src/FieldGroup.macos.tsrx +17 -0
- package/src/FieldGroup.tsrx +17 -0
- package/src/FieldGroup.web.tsrx +17 -0
- package/src/FormField.macos.tsrx +25 -0
- package/src/FormField.tsrx +25 -0
- package/src/FormField.web.tsrx +24 -0
- package/src/Grid.tsrx +32 -0
- package/src/Grid.web.tsrx +43 -0
- package/src/Heading.macos.tsrx +8 -0
- package/src/Heading.tsrx +17 -0
- package/src/Heading.web.tsrx +15 -0
- package/src/Hoverable.mobile.tsrx +21 -0
- package/src/Hoverable.tsrx +113 -0
- package/src/Hoverable.web.tsrx +98 -0
- package/src/Icon.macos.tsrx +18 -0
- package/src/Icon.tsrx +65 -0
- package/src/Icon.web.tsrx +75 -0
- package/src/Image.macos.tsrx +12 -0
- package/src/Image.tsrx +51 -0
- package/src/Image.web.tsrx +14 -0
- package/src/InputNumber.macos.tsrx +49 -0
- package/src/InputNumber.tsrx +49 -0
- package/src/InputNumber.web.tsrx +47 -0
- package/src/InputRating.macos.tsrx +42 -0
- package/src/InputRating.tsrx +39 -0
- package/src/InputRating.web.tsrx +52 -0
- package/src/InputTags.macos.tsrx +49 -0
- package/src/InputTags.tsrx +49 -0
- package/src/InputTags.web.tsrx +49 -0
- package/src/Kbd.macos.tsrx +11 -0
- package/src/Kbd.tsrx +11 -0
- package/src/Kbd.web.tsrx +9 -0
- package/src/KeyboardAvoiding.macos.tsrx +8 -0
- package/src/KeyboardAvoiding.mobile.tsrx +63 -0
- package/src/Link.macos.tsrx +15 -0
- package/src/Link.tsrx +10 -0
- package/src/Link.web.tsrx +12 -0
- package/src/ListItem.macos.tsrx +52 -0
- package/src/ListItem.tsrx +52 -0
- package/src/ListItem.web.tsrx +50 -0
- package/src/Meter.macos.tsrx +8 -0
- package/src/Meter.tsrx +45 -0
- package/src/Meter.web.tsrx +32 -0
- package/src/NavLink.macos.tsrx +24 -0
- package/src/NavLink.tsrx +22 -0
- package/src/NavLink.web.tsrx +23 -0
- package/src/NavigationMenu.macos.tsrx +31 -0
- package/src/NavigationMenu.tsrx +28 -0
- package/src/NavigationMenu.web.tsrx +31 -0
- package/src/Overlay.macos.tsrx +11 -0
- package/src/Overlay.tsrx +84 -0
- package/src/Overlay.web.tsrx +23 -0
- package/src/Pagination.macos.tsrx +54 -0
- package/src/Pagination.tsrx +47 -0
- package/src/Pagination.web.tsrx +50 -0
- package/src/PinInput.macos.tsrx +46 -0
- package/src/PinInput.tsrx +46 -0
- package/src/PinInput.web.tsrx +45 -0
- package/src/Popover.macos.tsrx +11 -0
- package/src/Popover.tsrx +157 -0
- package/src/Popover.web.tsrx +109 -0
- package/src/Pressable.macos.tsrx +19 -0
- package/src/Pressable.tsrx +37 -0
- package/src/Pressable.web.tsrx +45 -0
- package/src/ProgressGroup.macos.tsrx +17 -0
- package/src/ProgressGroup.tsrx +17 -0
- package/src/ProgressGroup.web.tsrx +15 -0
- package/src/RadioGroup.macos.tsrx +50 -0
- package/src/RadioGroup.tsrx +34 -0
- package/src/RadioGroup.web.tsrx +43 -0
- package/src/RichText.tsrx +40 -0
- package/src/RichText.web.tsrx +24 -0
- package/src/RouteHost.macos.tsrx +18 -0
- package/src/RouteHost.mobile.tsrx +44 -0
- package/src/Row.macos.tsrx +26 -0
- package/src/Row.tsrx +27 -0
- package/src/Row.web.tsrx +27 -0
- package/src/SafeArea.macos.tsrx +8 -0
- package/src/SafeArea.tsrx +20 -0
- package/src/SafeArea.web.tsrx +24 -0
- package/src/Screen.macos.tsrx +14 -0
- package/src/Screen.tsrx +31 -0
- package/src/Screen.web.tsrx +7 -0
- package/src/ScrollBox.tsrx +8 -0
- package/src/ScrollBox.web.tsrx +7 -0
- package/src/ScrollView.macos.tsrx +19 -0
- package/src/ScrollView.tsrx +117 -0
- package/src/ScrollView.web.tsrx +109 -0
- package/src/SearchInput.tsrx +60 -0
- package/src/SearchInput.web.test.tsrx +58 -0
- package/src/SearchInput.web.tsrx +55 -0
- package/src/SegmentedControl.tsrx +43 -0
- package/src/SegmentedControl.web.test.tsrx +46 -0
- package/src/SegmentedControl.web.tsrx +51 -0
- package/src/Select.macos.tsrx +104 -0
- package/src/Select.tsrx +104 -0
- package/src/Select.web.tsrx +124 -0
- package/src/Separator.macos.tsrx +17 -0
- package/src/Separator.tsrx +17 -0
- package/src/Separator.web.tsrx +17 -0
- package/src/Sheet.macos.tsrx +15 -0
- package/src/Sheet.tsrx +122 -0
- package/src/Sheet.web.tsrx +56 -0
- package/src/Skeleton.macos.tsrx +15 -0
- package/src/Skeleton.tsrx +15 -0
- package/src/Skeleton.web.tsrx +15 -0
- package/src/Slider.tsrx +71 -0
- package/src/Slider.web.tsrx +60 -0
- package/src/Spacer.tsrx +8 -0
- package/src/Spacer.web.tsrx +6 -0
- package/src/Stack.tsrx +24 -0
- package/src/Stack.web.tsrx +22 -0
- package/src/Stepper.macos.tsrx +52 -0
- package/src/Stepper.tsrx +31 -0
- package/src/Stepper.web.tsrx +37 -0
- package/src/Switch.tsrx +21 -0
- package/src/Switch.web.tsrx +28 -0
- package/src/Table.macos.tsrx +37 -0
- package/src/Table.tsrx +37 -0
- package/src/Table.web.tsrx +37 -0
- package/src/Tabs.macos.tsrx +60 -0
- package/src/Tabs.tsrx +55 -0
- package/src/Tabs.web.tsrx +98 -0
- package/src/Text.macos.tsrx +18 -0
- package/src/Text.tsrx +62 -0
- package/src/Text.web.tsrx +31 -0
- package/src/TextArea.tsrx +65 -0
- package/src/TextArea.web.tsrx +61 -0
- package/src/TextInput.tsrx +39 -0
- package/src/TextInput.web.tsrx +28 -0
- package/src/Timeline.macos.tsrx +27 -0
- package/src/Timeline.tsrx +24 -0
- package/src/Timeline.web.tsrx +22 -0
- package/src/Tooltip.mobile.tsrx +20 -0
- package/src/Tooltip.tsrx +102 -0
- package/src/Tooltip.web.tsrx +156 -0
- package/src/Tree.macos.tsrx +45 -0
- package/src/Tree.tsrx +45 -0
- package/src/Tree.web.tsrx +52 -0
- package/src/User.macos.tsrx +24 -0
- package/src/User.tsrx +24 -0
- package/src/User.web.tsrx +24 -0
- package/src/View.macos.tsrx +29 -0
- package/src/View.tsrx +32 -0
- package/src/View.web.tsrx +33 -0
- package/src/VirtualList.macos.tsrx +335 -0
- package/src/VirtualList.tsrx +358 -0
- package/src/VirtualList.web.tsrx +313 -0
- package/src/WebView.macos.tsrx +6 -0
- package/src/WebView.tsrx +89 -0
- package/src/WebView.web.tsrx +92 -0
- package/src/aliases.macos.tsrx +18 -0
- package/src/aliases.tsrx +18 -0
- package/src/aliases.web.tsrx +17 -0
- package/src/android/BottomNavigationView.android.tsrx +170 -0
- package/src/android/CircularProgressIndicator.android.tsrx +19 -0
- package/src/android/DrawerLayout.android.tsrx +48 -0
- package/src/android/MaterialDialog.android.tsrx +62 -0
- package/src/android/MaterialSwitch.android.tsrx +18 -0
- package/src/android/RecyclerView.android.tsrx +173 -0
- package/src/android/SeekBar.android.tsrx +20 -0
- package/src/android/icon.android.ts +8 -0
- package/src/android/index.ts +37 -0
- package/src/android/openModal.android.ts +55 -0
- package/src/anim.macos.tsrx +20 -0
- package/src/anim.tsrx +65 -0
- package/src/anim.web.tsrx +55 -0
- package/src/apply-native-modifiers.native.ts +13 -0
- package/src/camera-permission.web.ts +11 -0
- package/src/child-array.ts +16 -0
- package/src/colorScheme.macos.ts +27 -0
- package/src/controls.macos.tsrx +171 -0
- package/src/cx.ts +8 -0
- package/src/escape-props.macos.ts +11 -0
- package/src/escape-props.ts +70 -0
- package/src/escape-props.web.ts +25 -0
- package/src/hosted-unsupported.macos.tsrx +9 -0
- package/src/icons.ts +60 -0
- package/src/index.linux.ts +10 -0
- package/src/index.macos.ts +106 -0
- package/src/index.mobile.ts +6 -0
- package/src/index.shared.ts +269 -0
- package/src/index.ts +1 -0
- package/src/index.web.ts +261 -0
- package/src/ios/LiquidGlass.ios.tsrx +41 -0
- package/src/ios/LiquidGlassContainer.ios.tsrx +34 -0
- package/src/ios/SideDrawer.ios.tsrx +49 -0
- package/src/ios/UIActivityIndicatorView.ios.tsrx +18 -0
- package/src/ios/UIModal.ios.tsrx +68 -0
- package/src/ios/UISlider.ios.tsrx +20 -0
- package/src/ios/UISwitch.ios.tsrx +18 -0
- package/src/ios/UITabBar.ios.tsrx +172 -0
- package/src/ios/UITableView.ios.tsrx +186 -0
- package/src/ios/icon.ios.ts +8 -0
- package/src/ios/index.ts +42 -0
- package/src/ios/openModal.ios.ts +55 -0
- package/src/keyboard-inset.mobile.ts +89 -0
- package/src/layout-child.ts +57 -0
- package/src/layout-child.web.ts +108 -0
- package/src/layout-shells.macos.tsrx +10 -0
- package/src/layout.macos.tsrx +41 -0
- package/src/macos-extras.macos.tsrx +40 -0
- package/src/meter-math.ts +6 -0
- package/src/modal-presenter.mobile.ts +24 -0
- package/src/modifier-factories.ts +20 -0
- package/src/native/index.ts +6 -0
- package/src/pan.tsrx +64 -0
- package/src/pan.web.tsrx +38 -0
- package/src/platform.macos.ts +1 -0
- package/src/platform.ts +7 -0
- package/src/platform.web.ts +6 -0
- package/src/platformProps.ts +23 -0
- package/src/platformProps.web.ts +14 -0
- package/src/popover-position.ts +62 -0
- package/src/popover.mobile.test.ts +54 -0
- package/src/props.ts +1812 -0
- package/src/references.d.ts +2 -0
- package/src/refresh-metrics.ts +11 -0
- package/src/refresh.ts +271 -0
- package/src/refresh.web.test.ts +111 -0
- package/src/refresh.web.ts +205 -0
- package/src/root-layout.mobile.ts +89 -0
- package/src/route-host.mobile.ts +1 -0
- package/src/route-table.test.ts +345 -0
- package/src/route-table.ts +585 -0
- package/src/route.macos.ts +201 -0
- package/src/route.ts +703 -0
- package/src/route.web.ts +366 -0
- package/src/safeAreaInsets.macos.tsrx +7 -0
- package/src/safeAreaInsets.tsrx +60 -0
- package/src/safeAreaInsets.web.tsrx +38 -0
- package/src/sheet-detents.ts +142 -0
- package/src/sheet-detents.web.ts +147 -0
- package/src/sheet-service.macos.ts +60 -0
- package/src/sheet-service.ts +124 -0
- package/src/sheet-service.web.ts +64 -0
- package/src/sheet-snap.test.ts +46 -0
- package/src/sheet-snap.ts +66 -0
- package/src/stacks.macos.ts +13 -0
- package/src/stacks.ts +44 -0
- package/src/stacks.web.ts +9 -0
- package/src/store.mobile.test.ts +149 -0
- package/src/store.ts +39 -0
- package/src/store.web.test.tsrx +58 -0
- package/src/styled.macos.tsrx +23 -0
- package/src/styled.test.ts +40 -0
- package/src/styled.tsrx +36 -0
- package/src/styled.web.tsrx +23 -0
- package/src/surfaces.macos.tsrx +27 -0
- package/src/svg.mobile.ts +76 -0
- package/src/tap-to-blur.mobile.ts +108 -0
- package/src/text-controls.macos.tsrx +11 -0
- package/src/text-write.ts +28 -0
- package/src/text-write.web.ts +13 -0
- package/src/theme/colorScheme.linux.ts +52 -0
- package/src/theme/colorScheme.ts +26 -0
- package/src/theme/colorScheme.web.ts +20 -0
- package/src/theme/status-bar-scheme.mobile.ts +39 -0
- package/src/theme/theme-scheme.macos.ts +50 -0
- package/src/theme/theme-scheme.ts +66 -0
- package/src/theme/tokens.css +44 -22
- package/src/toast-anchor.macos.tsrx +3 -0
- package/src/toast-anchor.tsrx +122 -0
- package/src/toast-anchor.web.tsrx +92 -0
- package/src/toast.tsrx +90 -0
- package/src/toast.web.tsrx +50 -0
- package/src/transform.web.ts +52 -0
- package/src/translate.macos.ts +5 -0
- package/src/translate.ts +13 -0
- package/src/translate.web.ts +15 -0
- package/src/tsconfig.json +8 -0
- package/src/unsupported.macos.tsrx +5 -0
- package/src/use-back.tsrx +11 -0
- package/src/use-back.web.tsrx +12 -0
- package/src/use-store.tsrx +18 -0
- package/src/use-store.web.tsrx +18 -0
- package/src/useMeasure.macos.tsrx +23 -0
- package/src/useMeasure.tsrx +66 -0
- package/src/useMeasure.web.tsrx +39 -0
- package/src/useStore.macos.tsrx +6 -0
- package/src/vendor/ui-svg/LICENSE +201 -0
- package/src/vendor/ui-svg/index.android.ts +189 -0
- package/src/vendor/ui-svg/index.common.ts +19 -0
- package/src/vendor/ui-svg/index.ios.ts +147 -0
- package/src/vendor/ui-svg/index.ts +1 -0
- package/src/vendor/ui-svg/typings/SVGKit.d.ts +2862 -0
- package/src/vendor/ui-svg/typings/android.d.ts +1483 -0
- package/src/vendor/ui-svg/typings/ios.d.ts +1511 -0
- package/src/virtual-list-layout.test.ts +81 -0
- package/src/virtual-list-layout.ts +246 -0
- package/src/web/index.ts +11 -0
- package/src/windows.linux.ts +59 -0
- package/src/windows.macos.ts +10 -0
- package/src/windows.ts +7 -0
- package/src/windows.web.ts +6 -0
- package/types/generated/.tsrx-typegen-manifest.json +249 -0
- package/types/generated/Absolute.d.ts +3 -0
- package/types/generated/Absolute.web.d.ts +3 -0
- package/types/generated/Accordion.d.ts +5 -0
- package/types/generated/Accordion.web.d.ts +5 -0
- package/types/generated/ActivityIndicator.d.ts +7 -0
- package/types/generated/ActivityIndicator.web.d.ts +3 -0
- package/types/generated/Alert.d.ts +4 -0
- package/types/generated/Alert.web.d.ts +5 -0
- package/types/generated/Avatar.d.ts +6 -0
- package/types/generated/Avatar.web.d.ts +7 -0
- package/types/generated/AvatarGroup.d.ts +6 -0
- package/types/generated/AvatarGroup.web.d.ts +6 -0
- package/types/generated/Badge.d.ts +5 -0
- package/types/generated/Badge.web.d.ts +5 -0
- package/types/generated/Banner.d.ts +4 -0
- package/types/generated/Banner.web.d.ts +4 -0
- package/types/generated/Breadcrumb.d.ts +4 -0
- package/types/generated/Breadcrumb.web.d.ts +5 -0
- package/types/generated/Button.d.ts +6 -0
- package/types/generated/Button.web.d.ts +6 -0
- package/types/generated/Card.d.ts +4 -0
- package/types/generated/Card.web.d.ts +4 -0
- package/types/generated/Checkbox.d.ts +5 -0
- package/types/generated/Checkbox.web.d.ts +6 -0
- package/types/generated/CheckboxGroup.d.ts +3 -0
- package/types/generated/CheckboxGroup.web.d.ts +3 -0
- package/types/generated/Chip.d.ts +5 -0
- package/types/generated/Chip.web.d.ts +5 -0
- package/types/generated/Collapsible.d.ts +5 -0
- package/types/generated/Collapsible.web.d.ts +5 -0
- package/types/generated/CommandPalette.d.ts +4 -0
- package/types/generated/CommandPalette.web.d.ts +4 -0
- package/types/generated/ContextMenu.d.ts +5 -0
- package/types/generated/ContextMenu.web.d.ts +4 -0
- package/types/generated/Drawer.d.ts +7 -0
- package/types/generated/Drawer.web.d.ts +7 -0
- package/types/generated/DropdownMenu.d.ts +5 -0
- package/types/generated/DropdownMenu.web.d.ts +5 -0
- package/types/generated/Empty.d.ts +4 -0
- package/types/generated/Empty.web.d.ts +4 -0
- package/types/generated/FieldGroup.d.ts +4 -0
- package/types/generated/FieldGroup.web.d.ts +4 -0
- package/types/generated/FormField.d.ts +5 -0
- package/types/generated/FormField.web.d.ts +5 -0
- package/types/generated/Grid.d.ts +3 -0
- package/types/generated/Grid.web.d.ts +3 -0
- package/types/generated/Heading.d.ts +2 -0
- package/types/generated/Heading.web.d.ts +2 -0
- package/types/generated/Hoverable.d.ts +10 -0
- package/types/generated/Hoverable.web.d.ts +9 -0
- package/types/generated/Icon.d.ts +3 -0
- package/types/generated/Icon.web.d.ts +3 -0
- package/types/generated/Image.d.ts +7 -0
- package/types/generated/Image.web.d.ts +3 -0
- package/types/generated/InputNumber.d.ts +5 -0
- package/types/generated/InputNumber.web.d.ts +5 -0
- package/types/generated/InputRating.d.ts +4 -0
- package/types/generated/InputRating.web.d.ts +4 -0
- package/types/generated/InputTags.d.ts +4 -0
- package/types/generated/InputTags.web.d.ts +5 -0
- package/types/generated/Kbd.d.ts +4 -0
- package/types/generated/Kbd.web.d.ts +4 -0
- package/types/generated/KeyboardAvoiding.mobile.d.ts +2 -0
- package/types/generated/Link.d.ts +2 -0
- package/types/generated/Link.web.d.ts +3 -0
- package/types/generated/ListItem.d.ts +3 -0
- package/types/generated/ListItem.web.d.ts +3 -0
- package/types/generated/Meter.d.ts +3 -0
- package/types/generated/Meter.web.d.ts +3 -0
- package/types/generated/NavLink.d.ts +3 -0
- package/types/generated/NavLink.web.d.ts +3 -0
- package/types/generated/NavigationMenu.d.ts +4 -0
- package/types/generated/NavigationMenu.web.d.ts +5 -0
- package/types/generated/Overlay.d.ts +3 -0
- package/types/generated/Overlay.web.d.ts +3 -0
- package/types/generated/Pagination.d.ts +4 -0
- package/types/generated/Pagination.web.d.ts +5 -0
- package/types/generated/PinInput.d.ts +4 -0
- package/types/generated/PinInput.web.d.ts +4 -0
- package/types/generated/Popover.d.ts +6 -0
- package/types/generated/Popover.web.d.ts +3 -0
- package/types/generated/Pressable.d.ts +6 -0
- package/types/generated/Pressable.web.d.ts +2 -0
- package/types/generated/ProgressGroup.d.ts +3 -0
- package/types/generated/ProgressGroup.web.d.ts +4 -0
- package/types/generated/RadioGroup.d.ts +5 -0
- package/types/generated/RadioGroup.web.d.ts +5 -0
- package/types/generated/RichText.d.ts +7 -0
- package/types/generated/RichText.web.d.ts +3 -0
- package/types/generated/RouteHost.mobile.d.ts +14 -0
- package/types/generated/Row.d.ts +2 -0
- package/types/generated/Row.web.d.ts +2 -0
- package/types/generated/SafeArea.d.ts +2 -0
- package/types/generated/SafeArea.web.d.ts +3 -0
- package/types/generated/Screen.d.ts +3 -0
- package/types/generated/Screen.web.d.ts +3 -0
- package/types/generated/ScrollBox.d.ts +3 -0
- package/types/generated/ScrollBox.web.d.ts +3 -0
- package/types/generated/ScrollView.d.ts +7 -0
- package/types/generated/ScrollView.web.d.ts +6 -0
- package/types/generated/SearchInput.d.ts +7 -0
- package/types/generated/SearchInput.web.d.ts +6 -0
- package/types/generated/SegmentedControl.d.ts +7 -0
- package/types/generated/SegmentedControl.web.d.ts +6 -0
- package/types/generated/Select.d.ts +6 -0
- package/types/generated/Select.web.d.ts +6 -0
- package/types/generated/Separator.d.ts +5 -0
- package/types/generated/Separator.web.d.ts +5 -0
- package/types/generated/Sheet.d.ts +5 -0
- package/types/generated/Sheet.web.d.ts +7 -0
- package/types/generated/Skeleton.d.ts +5 -0
- package/types/generated/Skeleton.web.d.ts +6 -0
- package/types/generated/Slider.d.ts +6 -0
- package/types/generated/Slider.web.d.ts +6 -0
- package/types/generated/Spacer.d.ts +3 -0
- package/types/generated/Spacer.web.d.ts +3 -0
- package/types/generated/Stack.d.ts +3 -0
- package/types/generated/Stack.web.d.ts +3 -0
- package/types/generated/Stepper.d.ts +4 -0
- package/types/generated/Stepper.web.d.ts +5 -0
- package/types/generated/Switch.d.ts +7 -0
- package/types/generated/Switch.web.d.ts +6 -0
- package/types/generated/Table.d.ts +4 -0
- package/types/generated/Table.web.d.ts +5 -0
- package/types/generated/Tabs.d.ts +10 -0
- package/types/generated/Tabs.web.d.ts +6 -0
- package/types/generated/Text.d.ts +2 -0
- package/types/generated/Text.web.d.ts +2 -0
- package/types/generated/TextArea.d.ts +8 -0
- package/types/generated/TextArea.web.d.ts +9 -0
- package/types/generated/TextInput.d.ts +9 -0
- package/types/generated/TextInput.web.d.ts +2 -0
- package/types/generated/Timeline.d.ts +3 -0
- package/types/generated/Timeline.web.d.ts +4 -0
- package/types/generated/Tooltip.d.ts +9 -0
- package/types/generated/Tooltip.web.d.ts +12 -0
- package/types/generated/Tree.d.ts +4 -0
- package/types/generated/Tree.web.d.ts +4 -0
- package/types/generated/User.d.ts +5 -0
- package/types/generated/User.web.d.ts +5 -0
- package/types/generated/View.d.ts +7 -0
- package/types/generated/View.web.d.ts +7 -0
- package/types/generated/VirtualList.d.ts +5 -0
- package/types/generated/VirtualList.web.d.ts +4 -0
- package/types/generated/WebView.d.ts +11 -0
- package/types/generated/WebView.web.d.ts +5 -0
- package/types/generated/aliases.d.ts +7 -0
- package/types/generated/aliases.web.d.ts +7 -0
- package/types/generated/android/BottomNavigationView.android.d.ts +9 -0
- package/types/generated/android/CircularProgressIndicator.android.d.ts +6 -0
- package/types/generated/android/DrawerLayout.android.d.ts +12 -0
- package/types/generated/android/MaterialDialog.android.d.ts +8 -0
- package/types/generated/android/MaterialSwitch.android.d.ts +6 -0
- package/types/generated/android/RecyclerView.android.d.ts +14 -0
- package/types/generated/android/SeekBar.android.d.ts +5 -0
- package/types/generated/android/icon.android.d.ts +5 -0
- package/types/generated/android/index.d.ts +12 -0
- package/types/generated/android/openModal.android.d.ts +4 -0
- package/types/generated/anim.d.ts +10 -0
- package/types/generated/anim.web.d.ts +3 -0
- package/types/generated/apply-native-modifiers.native.d.ts +3 -0
- package/types/generated/child-array.d.ts +3 -0
- package/types/generated/cx.d.ts +6 -0
- package/types/generated/escape-props.d.ts +16 -0
- package/types/generated/icons.d.ts +5 -0
- package/types/generated/index.d.ts +1 -0
- package/types/generated/index.linux.d.ts +5 -0
- package/types/generated/index.mobile.d.ts +4 -0
- package/types/generated/index.shared.d.ts +111 -0
- package/types/generated/index.web.d.ts +111 -0
- package/types/generated/ios/LiquidGlass.ios.d.ts +12 -0
- package/types/generated/ios/LiquidGlassContainer.ios.d.ts +13 -0
- package/types/generated/ios/SideDrawer.ios.d.ts +12 -0
- package/types/generated/ios/UIActivityIndicatorView.ios.d.ts +5 -0
- package/types/generated/ios/UIModal.ios.d.ts +7 -0
- package/types/generated/ios/UISlider.ios.d.ts +5 -0
- package/types/generated/ios/UISwitch.ios.d.ts +6 -0
- package/types/generated/ios/UITabBar.ios.d.ts +7 -0
- package/types/generated/ios/UITableView.ios.d.ts +14 -0
- package/types/generated/ios/icon.ios.d.ts +5 -0
- package/types/generated/ios/index.d.ts +14 -0
- package/types/generated/ios/openModal.ios.d.ts +4 -0
- package/types/generated/keyboard-inset.mobile.d.ts +10 -0
- package/types/generated/layout-child.d.ts +6 -0
- package/types/generated/layout-child.web.d.ts +15 -0
- package/types/generated/meter-math.d.ts +6 -0
- package/types/generated/modal-presenter.mobile.d.ts +14 -0
- package/types/generated/modifier-factories.d.ts +15 -0
- package/types/generated/native/index.d.ts +3 -0
- package/types/generated/pan.d.ts +2 -0
- package/types/generated/pan.web.d.ts +9 -0
- package/types/generated/platform.d.ts +7 -0
- package/types/generated/platform.web.d.ts +6 -0
- package/types/generated/platformProps.d.ts +7 -0
- package/types/generated/platformProps.web.d.ts +2 -0
- package/types/generated/popover-position.d.ts +14 -0
- package/types/{props.d.ts → generated/props.d.ts} +127 -133
- package/types/generated/refresh-metrics.d.ts +8 -0
- package/types/generated/refresh.d.ts +42 -0
- package/types/generated/refresh.web.d.ts +23 -0
- package/types/generated/root-layout.mobile.d.ts +22 -0
- package/types/generated/route-host.mobile.d.ts +1 -0
- package/types/generated/route-table.d.ts +90 -0
- package/types/generated/route.d.ts +74 -0
- package/types/generated/route.web.d.ts +67 -0
- package/types/generated/safeAreaInsets.d.ts +8 -0
- package/types/generated/safeAreaInsets.web.d.ts +8 -0
- package/types/generated/sheet-detents.d.ts +23 -0
- package/types/generated/sheet-detents.web.d.ts +13 -0
- package/types/generated/sheet-service.d.ts +11 -0
- package/types/generated/sheet-service.web.d.ts +6 -0
- package/types/generated/sheet-snap.d.ts +18 -0
- package/types/generated/stacks.d.ts +9 -0
- package/types/generated/stacks.web.d.ts +4 -0
- package/types/generated/store.d.ts +14 -0
- package/types/generated/styled.d.ts +20 -0
- package/types/generated/styled.web.d.ts +10 -0
- package/types/generated/svg.mobile.d.ts +23 -0
- package/types/generated/tap-to-blur.mobile.d.ts +16 -0
- package/types/generated/text-write.d.ts +9 -0
- package/types/generated/theme/colorScheme.d.ts +6 -0
- package/types/generated/theme/colorScheme.linux.d.ts +5 -0
- package/types/generated/theme/colorScheme.web.d.ts +5 -0
- package/types/generated/theme/status-bar-scheme.mobile.d.ts +1 -0
- package/types/generated/theme/theme-scheme.d.ts +20 -0
- package/types/generated/toast-anchor.d.ts +4 -0
- package/types/generated/toast-anchor.web.d.ts +4 -0
- package/types/generated/transform.web.d.ts +8 -0
- package/types/generated/translate.d.ts +5 -0
- package/types/generated/translate.web.d.ts +6 -0
- package/types/generated/use-back.d.ts +6 -0
- package/types/generated/use-back.web.d.ts +7 -0
- package/types/generated/use-store.d.ts +9 -0
- package/types/generated/use-store.web.d.ts +9 -0
- package/types/generated/useMeasure.d.ts +3 -0
- package/types/generated/useMeasure.web.d.ts +3 -0
- package/types/generated/vendor/ui-svg/index.common.d.ts +7 -0
- package/types/generated/vendor/ui-svg/index.d.ts +1 -0
- package/types/generated/vendor/ui-svg/index.ios.d.ts +13 -0
- package/types/generated/virtual-list-layout.d.ts +44 -0
- package/types/generated/web/index.d.ts +3 -0
- package/types/generated/windows.d.ts +3 -0
- package/types/generated/windows.linux.d.ts +15 -0
- package/types/generated/windows.web.d.ts +3 -0
- package/types/index.macos.d.ts +142 -0
- package/dist/native/CameraView.native.tsrx.js +0 -165
- package/dist/native/Meter.native.tsrx.js +0 -92
- package/dist/native/Pager.native.tsrx.js +0 -282
- package/dist/native/Video.native.tsrx.js +0 -248
- package/dist/native/camera-permission.native.js +0 -47
- package/dist/native/safeAreaInsets.native.tsrx.js +0 -35
- package/dist/native/video-chrome.native.tsrx.js +0 -365
- package/dist/web/CameraView.web.tsrx.js +0 -310
- package/dist/web/Pager.web.tsrx.js +0 -337
- package/dist/web/Video.web.tsrx.js +0 -400
- package/dist/web/video-chrome.web.tsrx.js +0 -207
- package/types/android.d.ts +0 -53
- package/types/index.d.ts +0 -273
- package/types/index.native.d.ts +0 -273
- package/types/index.web.d.ts +0 -272
- package/types/ios.d.ts +0 -59
- package/types/native.d.ts +0 -5
- package/types/web.d.ts +0 -17
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/** Shared prop/type contract — the single source of truth for the public
|
|
2
2
|
* API surface. Platform leaves import these types so prop shapes cannot
|
|
3
|
-
* drift across .web
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* everything must stay dependency-free and platform-agnostic. */
|
|
3
|
+
* drift across .web/native-default, and `tsrx-typegen` emits the package's
|
|
4
|
+
* declarations from its public entrypoints and component leaves. No imports
|
|
5
|
+
* here: the shared contracts stay dependency-free and platform-agnostic. */
|
|
7
6
|
export interface PanEvent {
|
|
8
7
|
x: number;
|
|
9
8
|
y: number;
|
|
@@ -37,6 +36,30 @@ export interface LayoutChildProps {
|
|
|
37
36
|
alignSelf?: string;
|
|
38
37
|
order?: number;
|
|
39
38
|
}
|
|
39
|
+
/** JSON-compatible modifier data accepted by the platform-authentic widgets. */
|
|
40
|
+
export type NativeModifierValue = string | number | boolean | null | readonly NativeModifierValue[] | {
|
|
41
|
+
readonly [key: string]: NativeModifierValue;
|
|
42
|
+
};
|
|
43
|
+
/** A serializable change to a NativeScript view's style or native property.
|
|
44
|
+
* Platform-specific UI subpaths apply modifier arrays after shared props and
|
|
45
|
+
* the matching `ios`/`android` escape bag. */
|
|
46
|
+
export type NativeModifier = {
|
|
47
|
+
type: 'style';
|
|
48
|
+
values: Record<string, NativeModifierValue | undefined>;
|
|
49
|
+
} | {
|
|
50
|
+
type: 'property';
|
|
51
|
+
name: string;
|
|
52
|
+
value: NativeModifierValue;
|
|
53
|
+
};
|
|
54
|
+
/** Adds the native-only modifier escape hatch to an OS-backed widget's props. */
|
|
55
|
+
export type PlatformWidgetProps<Props> = Props & {
|
|
56
|
+
modifiers?: readonly NativeModifier[];
|
|
57
|
+
};
|
|
58
|
+
/** Native glyph names for the OS-authentic UI subpaths. */
|
|
59
|
+
export interface PlatformIconChoice {
|
|
60
|
+
ios: string;
|
|
61
|
+
android: string;
|
|
62
|
+
}
|
|
40
63
|
/** Flex-container props shared by View/Row/Pressable — RN vocabulary, applied
|
|
41
64
|
* to the host flexboxlayout natively and the element's style on web.
|
|
42
65
|
* `gap` is a dip number (px on web); NS supports it on FlexboxLayout only
|
|
@@ -371,32 +394,6 @@ export interface ListProps extends RefreshProps {
|
|
|
371
394
|
android?: Record<string, any>;
|
|
372
395
|
web?: Record<string, any>;
|
|
373
396
|
}
|
|
374
|
-
/** Paged horizontal swipe container — onboarding flows, media galleries.
|
|
375
|
-
* Chrome-reset OS paging on native (ViewPager2 / UICollectionView paging via
|
|
376
|
-
* @nativescript-community/ui-pager), a scroll-snap scroller on web. Follows
|
|
377
|
-
* the platform-list contract: `items` + `renderItem`, no children — each
|
|
378
|
-
* page is a full-host-size cell. No indicator is built in; compose dots
|
|
379
|
-
* from `Row` + `View` driven by `page`/`onPageChange`. */
|
|
380
|
-
export interface PagerProps extends LayoutChildProps, AccessibilityProps {
|
|
381
|
-
className?: any;
|
|
382
|
-
style?: any;
|
|
383
|
-
id?: string;
|
|
384
|
-
items: any[];
|
|
385
|
-
renderItem: (item: any, index: number) => any;
|
|
386
|
-
renderEmpty?: () => any;
|
|
387
|
-
/** Controlled page index — pass with `onPageChange` to own the page.
|
|
388
|
-
* Writes scroll/settle to the page; user swipes call `onPageChange`. */
|
|
389
|
-
page?: number;
|
|
390
|
-
/** Starting page for uncontrolled use (default 0). */
|
|
391
|
-
defaultPage?: number;
|
|
392
|
-
/** Fires when the settled page changes — a completed swipe on both
|
|
393
|
-
* targets. Programmatic `page` writes do not echo back through it. */
|
|
394
|
-
onPageChange?: (index: number) => void;
|
|
395
|
-
/** Platform escape hatches, applied after the shared props. */
|
|
396
|
-
ios?: Record<string, any>;
|
|
397
|
-
android?: Record<string, any>;
|
|
398
|
-
web?: Record<string, any>;
|
|
399
|
-
}
|
|
400
397
|
export interface ScrollViewProps extends LayoutChildProps, AccessibilityProps, RefreshProps {
|
|
401
398
|
className?: any;
|
|
402
399
|
style?: any;
|
|
@@ -408,6 +405,26 @@ export interface ScrollViewProps extends LayoutChildProps, AccessibilityProps, R
|
|
|
408
405
|
android?: any;
|
|
409
406
|
web?: any;
|
|
410
407
|
}
|
|
408
|
+
/** Shared virtualized vertical list. Item keys must be unique and stable
|
|
409
|
+
* across inserts and reorders. Rows outside the rendered window unmount;
|
|
410
|
+
* keep durable row state keyed by item identity outside the row component. */
|
|
411
|
+
export interface VirtualListProps<T = any> extends LayoutChildProps, AccessibilityProps {
|
|
412
|
+
className?: any;
|
|
413
|
+
style?: any;
|
|
414
|
+
id?: string;
|
|
415
|
+
items: readonly T[];
|
|
416
|
+
keyExtractor: (item: T, index: number) => string | number;
|
|
417
|
+
getItemType?: (item: T, index: number) => string | number;
|
|
418
|
+
renderItem: (item: T, index: number) => any;
|
|
419
|
+
renderEmpty?: () => any;
|
|
420
|
+
renderHeader?: () => any;
|
|
421
|
+
renderFooter?: () => any;
|
|
422
|
+
renderSeparator?: () => any;
|
|
423
|
+
/** Platform-specific properties are applied after shared props. */
|
|
424
|
+
ios?: Record<string, any>;
|
|
425
|
+
android?: Record<string, any>;
|
|
426
|
+
web?: Record<string, any>;
|
|
427
|
+
}
|
|
411
428
|
/** Scrollable ordinary content on web. Native is an inline flex container so
|
|
412
429
|
* a child ListView can own the scrolling without nesting recycling views in a
|
|
413
430
|
* native ScrollView. */
|
|
@@ -438,6 +455,10 @@ export interface WebViewLoadEvent {
|
|
|
438
455
|
/** Failure description; present only on the `onError` path. */
|
|
439
456
|
error?: string;
|
|
440
457
|
}
|
|
458
|
+
export interface WebViewContentSize {
|
|
459
|
+
width: number;
|
|
460
|
+
height: number;
|
|
461
|
+
}
|
|
441
462
|
/** Embedded web document — chrome-reset bucket: web renders a sandboxed
|
|
442
463
|
* `<iframe>`, native renders the OS web view (`webview` → WKWebView /
|
|
443
464
|
* android.webkit.WebView). The *frame* is normalized; the document's
|
|
@@ -461,6 +482,12 @@ export interface WebViewProps extends LayoutChildProps, AccessibilityProps {
|
|
|
461
482
|
/** After each successful document load (web `load`; native
|
|
462
483
|
* `loadFinished` without an error). */
|
|
463
484
|
onLoad?: (e: WebViewLoadEvent) => void;
|
|
485
|
+
/** Report the embedded document's measured size when the platform can read
|
|
486
|
+
* it. Cross-origin browser frames cannot be inspected. */
|
|
487
|
+
onLayoutContent?: (size: WebViewContentSize) => void;
|
|
488
|
+
/** Resize the host to the embedded document's measured height. Browser
|
|
489
|
+
* frames must be same-origin; native measurement is best-effort. */
|
|
490
|
+
matchContents?: boolean;
|
|
464
491
|
/** On load failure. Native reports the NS `loadFinished` error string;
|
|
465
492
|
* web maps the iframe `error` event, which does not fire reliably
|
|
466
493
|
* cross-browser — treat as best-effort there. */
|
|
@@ -510,6 +537,8 @@ export interface SafeAreaProps {
|
|
|
510
537
|
className?: any;
|
|
511
538
|
style?: any;
|
|
512
539
|
children?: any;
|
|
540
|
+
/** Do not inset the child away from the system's safe area. */
|
|
541
|
+
ignoreSafeArea?: boolean;
|
|
513
542
|
/** NativeScript props applied to the host after shared props. */
|
|
514
543
|
ios?: Record<string, any>;
|
|
515
544
|
android?: Record<string, any>;
|
|
@@ -655,7 +684,10 @@ export interface PopoverProps {
|
|
|
655
684
|
web?: Record<string, any>;
|
|
656
685
|
}
|
|
657
686
|
export interface HoverableProps {
|
|
658
|
-
|
|
687
|
+
id?: string;
|
|
688
|
+
/** Content shown after the pointer rests over the children on pointer
|
|
689
|
+
* platforms (web, macOS). Touch targets never mount the card — keep
|
|
690
|
+
* essential information out of it. */
|
|
659
691
|
card: any;
|
|
660
692
|
/** Styling for the card's wrapper view inside the popover — e.g. a
|
|
661
693
|
* pointer bridge covering the anchor↔card gap or a positional offset. */
|
|
@@ -671,11 +703,13 @@ export interface HoverableProps {
|
|
|
671
703
|
android?: Record<string, any>;
|
|
672
704
|
web?: Record<string, any>;
|
|
673
705
|
}
|
|
674
|
-
/**
|
|
675
|
-
*
|
|
676
|
-
*
|
|
677
|
-
*
|
|
706
|
+
/** Tooltip — `trigger` is the anchor content, `content` the hint body.
|
|
707
|
+
* Pointer platforms show the hint after hover/focus intent (web adds
|
|
708
|
+
* `aria-describedby` + Escape/scroll dismissal; macOS presents an anchored
|
|
709
|
+
* NSPopover). Touch targets render the trigger and never mount the hint —
|
|
710
|
+
* keep essential information out of `content`. */
|
|
678
711
|
export interface TooltipProps {
|
|
712
|
+
id?: string;
|
|
679
713
|
trigger: any;
|
|
680
714
|
content: any;
|
|
681
715
|
/** Styling for the tooltip panel inside the popover. */
|
|
@@ -809,6 +843,16 @@ export interface TabsProps {
|
|
|
809
843
|
* Web: route outlet. Native: pushes render inside the pane's Frame. */
|
|
810
844
|
resolveScreen?: (name: string, params: Record<string, unknown>) => any;
|
|
811
845
|
}
|
|
846
|
+
/** Platform tab-bar item shape. `icon` may be a registered name or a native
|
|
847
|
+
* asset value returned by `Icon.select()` from the matching subpath. */
|
|
848
|
+
export type PlatformTabSpec = Omit<TabSpec, 'icon'> & {
|
|
849
|
+
icon?: string;
|
|
850
|
+
};
|
|
851
|
+
export type PlatformTabsProps = Omit<TabsProps, 'tabs'> & {
|
|
852
|
+
tabs: readonly PlatformTabSpec[];
|
|
853
|
+
ios?: Record<string, any>;
|
|
854
|
+
android?: Record<string, any>;
|
|
855
|
+
};
|
|
812
856
|
export interface Route {
|
|
813
857
|
stack: string;
|
|
814
858
|
name: string;
|
|
@@ -890,6 +934,28 @@ export interface RouteManifest {
|
|
|
890
934
|
layouts: Record<string, any>;
|
|
891
935
|
loaders?: Record<string, (params: Record<string, unknown>) => unknown | Promise<unknown>>;
|
|
892
936
|
}
|
|
937
|
+
/** One programmatic route entry for `defineRoutes` — the manifest fields a
|
|
938
|
+
* route file would have produced, supplied directly. `path` uses the
|
|
939
|
+
* route-dir vocabulary: `'docs/:slug'` (or `'docs/[slug]'`), `'index'`/`''`
|
|
940
|
+
* for the root route. `screen` is the component itself — not a module. */
|
|
941
|
+
export interface RouteSpec {
|
|
942
|
+
path: string;
|
|
943
|
+
screen: any;
|
|
944
|
+
/** Default presentation, like a `+modal`/`+fade` filename suffix. */
|
|
945
|
+
presentation?: 'push' | 'modal' | 'fade';
|
|
946
|
+
loader?: RouteMeta['loader'];
|
|
947
|
+
beforeLoad?: BeforeLoad;
|
|
948
|
+
head?: RouteHeadExport;
|
|
949
|
+
/** Diagnostics label recorded on `RouteMeta.file` (warn strings). */
|
|
950
|
+
source?: string;
|
|
951
|
+
}
|
|
952
|
+
/** Input to `defineRoutes`: the route list plus optional path-keyed layouts
|
|
953
|
+
* — `layouts: { docs: Shell }` plays the `_layout.tsrx` role for every
|
|
954
|
+
* route under `docs/*`. */
|
|
955
|
+
export interface RouteSpecSet {
|
|
956
|
+
routes: readonly RouteSpec[];
|
|
957
|
+
layouts?: Record<string, any>;
|
|
958
|
+
}
|
|
893
959
|
export interface OpenWindowOptions {
|
|
894
960
|
/** Data made available to the native window content resolver. */
|
|
895
961
|
data?: Record<string, unknown>;
|
|
@@ -1152,6 +1218,32 @@ export interface FieldGroupProps {
|
|
|
1152
1218
|
android?: any;
|
|
1153
1219
|
web?: any;
|
|
1154
1220
|
}
|
|
1221
|
+
/** Shared settings/navigation row. Use the four shorthand props for common
|
|
1222
|
+
* rows, or `ListItem.Leading`/`Content`/`Supporting`/`Trailing` children
|
|
1223
|
+
* when the row needs custom composition. */
|
|
1224
|
+
export interface ListItemProps extends AccessibilityProps {
|
|
1225
|
+
className?: any;
|
|
1226
|
+
style?: any;
|
|
1227
|
+
id?: string;
|
|
1228
|
+
title?: any;
|
|
1229
|
+
supportingText?: any;
|
|
1230
|
+
leading?: any;
|
|
1231
|
+
trailing?: any;
|
|
1232
|
+
onPress?: () => void;
|
|
1233
|
+
disabled?: boolean;
|
|
1234
|
+
children?: any;
|
|
1235
|
+
}
|
|
1236
|
+
export interface ListItemSlotProps {
|
|
1237
|
+
className?: any;
|
|
1238
|
+
children?: any;
|
|
1239
|
+
}
|
|
1240
|
+
export interface ListItemComponent {
|
|
1241
|
+
(props: ListItemProps): unknown;
|
|
1242
|
+
Leading: (props: ListItemSlotProps) => unknown;
|
|
1243
|
+
Content: (props: ListItemSlotProps) => unknown;
|
|
1244
|
+
Supporting: (props: ListItemSlotProps) => unknown;
|
|
1245
|
+
Trailing: (props: ListItemSlotProps) => unknown;
|
|
1246
|
+
}
|
|
1155
1247
|
/** InputNumber — normalized TextInput (number keyboard) flanked by −/+
|
|
1156
1248
|
* steppers. `value`/`onValueChange` for controlled, `defaultValue` for
|
|
1157
1249
|
* uncontrolled. `step` defaults to 1; `min`/`max` clamp. */
|
|
@@ -1523,104 +1615,6 @@ export interface ProgressGroupProps {
|
|
|
1523
1615
|
android?: any;
|
|
1524
1616
|
web?: any;
|
|
1525
1617
|
}
|
|
1526
|
-
export type VideoFit = 'contain' | 'cover' | 'fill';
|
|
1527
|
-
export interface VideoEvent {
|
|
1528
|
-
/** Playback position in milliseconds. */
|
|
1529
|
-
position?: number;
|
|
1530
|
-
/** Clip duration in milliseconds, once known (0 before then). */
|
|
1531
|
-
duration?: number;
|
|
1532
|
-
/** Failure description. */
|
|
1533
|
-
message?: string;
|
|
1534
|
-
}
|
|
1535
|
-
export interface VideoHandle {
|
|
1536
|
-
play(): void;
|
|
1537
|
-
pause(): void;
|
|
1538
|
-
/** Seek to a position in milliseconds. */
|
|
1539
|
-
seekTo(ms: number): void;
|
|
1540
|
-
/** Current playback position in ms (0 before metadata loads). */
|
|
1541
|
-
currentTime(): number;
|
|
1542
|
-
/** Clip duration in ms (0 before metadata loads). */
|
|
1543
|
-
duration(): number;
|
|
1544
|
-
/** The platform surface (`HTMLVideoElement` / plugin `Video`). */
|
|
1545
|
-
native: any;
|
|
1546
|
-
}
|
|
1547
|
-
/** Embedded video — surface-hosted bucket: the OS engine owns the pixels
|
|
1548
|
-
* (web `<video>` / `@nstudio/nativescript-exoplayer` → AVPlayerViewController
|
|
1549
|
-
* + ExoPlayer2), all chrome is self-drawn so `controls` looks identical on
|
|
1550
|
-
* every target. Times are milliseconds on every platform. */
|
|
1551
|
-
export interface VideoProps extends LayoutChildProps, AccessibilityProps {
|
|
1552
|
-
className?: any;
|
|
1553
|
-
style?: any;
|
|
1554
|
-
id?: string;
|
|
1555
|
-
/** Remote URL; native also accepts `~/` bundle paths and absolute files. */
|
|
1556
|
-
src: string;
|
|
1557
|
-
/** Frame shown until playback starts. */
|
|
1558
|
-
poster?: string;
|
|
1559
|
-
/** Controlled playback — pair with `onPlayingChange`. Leave unset for
|
|
1560
|
-
* uncontrolled playback (the transport and `bind` handle still work). */
|
|
1561
|
-
playing?: boolean;
|
|
1562
|
-
/** Uncontrolled start-playing shorthand. Browsers block unmuted
|
|
1563
|
-
* autoplay — pair with `muted` when `autoPlay` matters on web. */
|
|
1564
|
-
autoPlay?: boolean;
|
|
1565
|
-
muted?: boolean;
|
|
1566
|
-
loop?: boolean;
|
|
1567
|
-
/** Self-drawn transport overlay (play/pause, scrubber, time, mute) —
|
|
1568
|
-
* tap the surface to show/hide. Default true. */
|
|
1569
|
-
controls?: boolean;
|
|
1570
|
-
/** Content fitting inside the frame: `contain` (letterbox, default),
|
|
1571
|
-
* `cover` (crop to fill), `fill` (stretch). */
|
|
1572
|
-
fit?: VideoFit;
|
|
1573
|
-
/** Playback metadata is loaded; `e.duration` is the clip length in ms. */
|
|
1574
|
-
onReady?: (e: VideoEvent) => void;
|
|
1575
|
-
onEnded?: () => void;
|
|
1576
|
-
/** Fires on user toggles and controlled `playing` writes. */
|
|
1577
|
-
onPlayingChange?: (playing: boolean) => void;
|
|
1578
|
-
/** Fires when the transport's mute button toggles. */
|
|
1579
|
-
onMutedChange?: (muted: boolean) => void;
|
|
1580
|
-
/** Web only — the plugin players surface no error event on native. */
|
|
1581
|
-
onError?: (e: VideoEvent) => void;
|
|
1582
|
-
/** Imperative handle — play/pause/seek/time plus `native` for anything
|
|
1583
|
-
* the shared props don't cover. */
|
|
1584
|
-
bind?: (h: VideoHandle) => void;
|
|
1585
|
-
/** Platform escape hatches, applied after the shared props. */
|
|
1586
|
-
ios?: Record<string, any>;
|
|
1587
|
-
android?: Record<string, any>;
|
|
1588
|
-
web?: Record<string, any>;
|
|
1589
|
-
}
|
|
1590
|
-
export interface CameraViewHandle {
|
|
1591
|
-
/** The platform view (`HTMLVideoElement` / plugin `CameraPlus`). */
|
|
1592
|
-
native: any;
|
|
1593
|
-
}
|
|
1594
|
-
/** Live camera preview — surface-hosted: web runs `getUserMedia` into a
|
|
1595
|
-
* `<video>`, native embeds `CameraPlus` (@nstudio/nativescript-camera-plus;
|
|
1596
|
-
* AVCaptureSession preview / CameraX FancyCamera) with its built-in
|
|
1597
|
-
* buttons switched off. Still capture is deliberately not on the handle —
|
|
1598
|
-
* `media.capturePhoto` in `@octane-xplat/platform` owns that; reach the
|
|
1599
|
-
* preview's own capture (e.g. `CameraPlus.takePicture`) through `bind`'s
|
|
1600
|
-
* `native` when the intent UI won't do. The leaf owns the permission
|
|
1601
|
-
* request on both platforms. */
|
|
1602
|
-
export interface CameraViewProps extends LayoutChildProps, AccessibilityProps {
|
|
1603
|
-
className?: any;
|
|
1604
|
-
style?: any;
|
|
1605
|
-
id?: string;
|
|
1606
|
-
/** Lens — default `'back'`. */
|
|
1607
|
-
facing?: 'front' | 'back';
|
|
1608
|
-
/** Default true. `false` tears down the preview stream/session. */
|
|
1609
|
-
active?: boolean;
|
|
1610
|
-
/** The preview surface is live (web: first frame; native: view loaded
|
|
1611
|
-
* after permission — the sensor may still be warming). */
|
|
1612
|
-
onReady?: () => void;
|
|
1613
|
-
onError?: (e: {
|
|
1614
|
-
message?: string;
|
|
1615
|
-
}) => void;
|
|
1616
|
-
/** Imperative handle — `native` for anything the shared props don't
|
|
1617
|
-
* cover (torch, zoom, preview-frame capture). */
|
|
1618
|
-
bind?: (h: CameraViewHandle) => void;
|
|
1619
|
-
/** Platform escape hatches, applied after the shared props. */
|
|
1620
|
-
ios?: Record<string, any>;
|
|
1621
|
-
android?: Record<string, any>;
|
|
1622
|
-
web?: Record<string, any>;
|
|
1623
|
-
}
|
|
1624
1618
|
export type ColorScheme = 'light' | 'dark';
|
|
1625
1619
|
/** Minimal external-store contract `useStore` subscribes to. */
|
|
1626
1620
|
export interface ReadableStore<T> {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Pull-to-refresh geometry — one strip height drives the indicator
|
|
2
|
+
* reveal, the default trigger threshold, and the docked gap on every
|
|
3
|
+
* target (px on web, dip on native — equal by the dip≈px contract). */
|
|
4
|
+
export declare const REFRESH_HEADER_HEIGHT = 64;
|
|
5
|
+
/** Finger-travel → content displacement. iOS rubber-band applies ~0.5
|
|
6
|
+
* resistance at small pulls; web/Android drive the same ratio so the
|
|
7
|
+
* affordance reads identically across targets. */
|
|
8
|
+
export declare function dampenPull(dy: number): number;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface RefreshConfig {
|
|
2
|
+
onRefresh?: () => void;
|
|
3
|
+
refreshing?: boolean;
|
|
4
|
+
threshold?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface RefreshHost {
|
|
7
|
+
/** The scrolling view — NS ScrollView or ListView. */
|
|
8
|
+
scroller: any;
|
|
9
|
+
/** The overlay strip (owns the self-drawn spinner), translated in/out. */
|
|
10
|
+
indicator: any;
|
|
11
|
+
/** True when the scroller is resting at its top edge (Android only —
|
|
12
|
+
* iOS reads the overscroll directly from contentOffset). */
|
|
13
|
+
isAtTop: () => boolean;
|
|
14
|
+
/** Latest props — a ref so callback identity churn can't re-attach. */
|
|
15
|
+
cfg: {
|
|
16
|
+
current: RefreshConfig;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface RefreshController {
|
|
20
|
+
/** Call when `refreshing` changes — docks/undocks the indicator. */
|
|
21
|
+
sync: () => void;
|
|
22
|
+
detach: () => void;
|
|
23
|
+
}
|
|
24
|
+
/** Pan-driven pull-to-refresh over any NS scrollable (scrollview or
|
|
25
|
+
* listview). Two mechanics, one visual:
|
|
26
|
+
*
|
|
27
|
+
* iOS — UIScrollView's own bounce supplies the content displacement
|
|
28
|
+
* (NS gesture delegates allow simultaneous recognition, so our pan on
|
|
29
|
+
* the scroller observes alongside the scroll pan). The handler reads
|
|
30
|
+
* `contentOffset` for the live gap and docks with
|
|
31
|
+
* `contentInset.top += H` — the exact mechanics UIRefreshControl uses.
|
|
32
|
+
*
|
|
33
|
+
* Android — there is no overscroll; the scroller box itself is
|
|
34
|
+
* translated inside the clipping wrapper while the damped drag
|
|
35
|
+
* accumulates. Docking holds the translate at H. Edge glow is disabled
|
|
36
|
+
* (OVER_SCROLL_NEVER) so no OS chrome leaks into the pixels.
|
|
37
|
+
*
|
|
38
|
+
* Releasing past `threshold` fires `onRefresh` once per pull and holds
|
|
39
|
+
* the docked gap; the controlled `refreshing` prop keeps it docked.
|
|
40
|
+
* A short grace window collapses the dock if `refreshing` never comes —
|
|
41
|
+
* props land a render after `onRefresh` fires. */
|
|
42
|
+
export declare function createPullToRefresh(host: RefreshHost): RefreshController;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface RefreshConfig {
|
|
2
|
+
onRefresh?: () => void;
|
|
3
|
+
refreshing?: boolean;
|
|
4
|
+
threshold?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface RefreshController {
|
|
7
|
+
/** Call when `refreshing` changes — docks/undocks the indicator. */
|
|
8
|
+
sync: () => void;
|
|
9
|
+
detach: () => void;
|
|
10
|
+
}
|
|
11
|
+
/** Pointer/touch-driven pull-to-refresh for the DOM leaf — the web has no
|
|
12
|
+
* native overscroll, so drag distance translates the scroller inside the
|
|
13
|
+
* clipped wrapper while the self-drawn indicator slides into the gap.
|
|
14
|
+
* `touchmove` must be non-passive: `preventDefault` is what keeps the
|
|
15
|
+
* browser from taking the gesture as a scroll (or Chrome's own
|
|
16
|
+
* pull-to-refresh on Android). Mouse drags ride the pointer events. */
|
|
17
|
+
export declare function createPullToRefresh(host: {
|
|
18
|
+
scroller: HTMLElement | null;
|
|
19
|
+
indicator: HTMLElement | null;
|
|
20
|
+
cfg: {
|
|
21
|
+
current: RefreshConfig;
|
|
22
|
+
};
|
|
23
|
+
}): RefreshController;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RootLayout } from '@nativescript/core';
|
|
2
|
+
/** Called by the Screen leaf's <rootlayout> onLoaded/onUnloaded. */
|
|
3
|
+
export declare function registerRootLayout(rl: RootLayout | undefined | null): void;
|
|
4
|
+
export declare function unregisterRootLayout(rl: RootLayout | undefined | null): void;
|
|
5
|
+
/** The most recently mounted rootlayout — the top of the push stack. For
|
|
6
|
+
* imperative services (toast, sheet) there is no invoking component to
|
|
7
|
+
* walk from; last-mounted is the pushed page when one exists. Caveat: tabs
|
|
8
|
+
* keep visited panes mounted — last is the newest, not the visible tab. */
|
|
9
|
+
export declare function topRootLayout(): RootLayout | undefined;
|
|
10
|
+
/** Resolve the RootLayout enclosing `view` by walking the native parent
|
|
11
|
+
* chain — the screen shell is a RootLayout (Screen), so the first
|
|
12
|
+
* RootLayout ancestor IS the current page's overlay host. Falls back to
|
|
13
|
+
* the top registry entry when the component renders outside any Screen. */
|
|
14
|
+
export declare function rootLayoutFor(view: any): RootLayout | undefined;
|
|
15
|
+
/** Search every registered rootlayout for a view by id — overlays/sheets/
|
|
16
|
+
* toasts land on different rootlayouts depending on which screen's shell
|
|
17
|
+
* mounted last. Unloaded subtrees are skipped: a covered page unloads its
|
|
18
|
+
* views (NativeScript detaches their native recognizers while the JS views
|
|
19
|
+
* stay parented), so an unloaded match is a dead twin that can swallow
|
|
20
|
+
* interaction probes — the live view either doesn't exist here yet or sits
|
|
21
|
+
* under a loaded branch. */
|
|
22
|
+
export declare function findInRootLayouts(id: string): any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RouteHost, screenParamsFor } from './RouteHost.mobile.js';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/** Shared route-dir manifest — the file-router half of the nav contract
|
|
2
|
+
* (docs/navigation-notes.md). Apps glob their route dir per platform and
|
|
3
|
+
* pass the module map here; the suffix seam applies to directories the
|
|
4
|
+
* same way it does to imports:
|
|
5
|
+
*
|
|
6
|
+
* // route-manifest.web.ts — generated globs also omit a plain route when
|
|
7
|
+
* // a `.web` twin exists, so native-default modules are never evaluated.
|
|
8
|
+
* const files = import.meta.glob(
|
|
9
|
+
* ['./app/**\/*.{tsrx,tsx}', '!./app/**\/*.mobile.{tsrx,tsx}',
|
|
10
|
+
* '!./app/**\/*.ios.{tsrx,tsx}', '!./app/**\/*.android.{tsrx,tsx}',
|
|
11
|
+
* '!./app/**\/*.macos.{tsrx,tsx}', '!./app/**\/*.windows.{tsrx,tsx}',
|
|
12
|
+
* '!./app/**\/*.linux.{tsrx,tsx}'],
|
|
13
|
+
* { eager: true });
|
|
14
|
+
* export const routes = deriveRouteManifest(files, ['web']);
|
|
15
|
+
*
|
|
16
|
+
* // route-manifest.mobile.ts — excludes *.web.tsrx; prefer by running OS
|
|
17
|
+
* export const routes = deriveRouteManifest(files,
|
|
18
|
+
* Device.os === 'Android' ? ['android', 'mobile'] : ['ios', 'mobile']);
|
|
19
|
+
*
|
|
20
|
+
* Conventions (route dir = `dir`, default 'app'):
|
|
21
|
+
* app/detail.tsrx → route 'detail'
|
|
22
|
+
* app/demo/[id].tsrx → route 'demo/:id' ([param] → :param)
|
|
23
|
+
* app/foo/index.tsrx → 'foo' (index = the dir's own route)
|
|
24
|
+
* app/settings.web.tsrx → 'settings' on web only — `prefer` decides
|
|
25
|
+
* app/_layout.tsrx → layouts[''] — a shell, not a route
|
|
26
|
+
* app/chat/_layout.tsrx → layouts['chat'] — nested shells cataloged
|
|
27
|
+
*
|
|
28
|
+
* `prefer` ranks platform suffixes — a suffix absent from it is another
|
|
29
|
+
* platform's file and is skipped entirely; unsuffixed files are the
|
|
30
|
+
* fallback (rank = prefer.length). Web callers pass ['web']; mobile
|
|
31
|
+
* callers pass the running OS first. */
|
|
32
|
+
import type { Route, RouteManifest, RouteMeta, RouteSpec, RouteSpecSet } from './props.js';
|
|
33
|
+
/** Internal error carrier used by the public `redirect()` helper. Keeping
|
|
34
|
+
* this in the shared route table gives both platform leaves the same guard
|
|
35
|
+
* behavior without importing a platform runtime. */
|
|
36
|
+
export declare class RouteRedirect extends Error {
|
|
37
|
+
readonly route: Route;
|
|
38
|
+
constructor(route: Route);
|
|
39
|
+
}
|
|
40
|
+
export declare function deriveRouteManifest(files: Record<string, any>, prefer: readonly string[], dir?: string): RouteManifest;
|
|
41
|
+
/** Build a manifest from app data rather than the route dir — the
|
|
42
|
+
* programmatic half of the route contract (host frameworks derive specs
|
|
43
|
+
* from their own sources, e.g. `readdirSync` over a content dir). Each
|
|
44
|
+
* spec's `path` uses the route-dir vocabulary; `layouts` keys are path
|
|
45
|
+
* prefixes playing the `_layout` role. Same-name duplicates inside the
|
|
46
|
+
* set keep the later entry with a warn, matching merge precedence. */
|
|
47
|
+
export declare function defineRoutes(input: readonly RouteSpec[] | RouteSpecSet): RouteManifest;
|
|
48
|
+
/** Compose manifests into one — file-derived base plus any number of
|
|
49
|
+
* programmatic sets (`registerRoutes(mergeRouteManifests(fromDir, dynamic))`).
|
|
50
|
+
* Registration order is precedence: on a same-name collision the later
|
|
51
|
+
* manifest's route wins and the loser's loader/beforeLoad/head go with it —
|
|
52
|
+
* a warn fires once per colliding name. `layouts` merge key-wise the same
|
|
53
|
+
* way. `matchRoute` order is rebuilt by specificity after the merge. */
|
|
54
|
+
export declare function mergeRouteManifests(...manifests: RouteManifest[]): RouteManifest;
|
|
55
|
+
/** Match URL path segments against a manifest — returns the winning meta
|
|
56
|
+
* plus extracted params, or null. First hit wins (routes are pre-sorted
|
|
57
|
+
* by specificity). */
|
|
58
|
+
export declare function matchRoute(routes: readonly RouteMeta[], segs: string[]): {
|
|
59
|
+
meta: RouteMeta;
|
|
60
|
+
params: Record<string, unknown>;
|
|
61
|
+
} | null;
|
|
62
|
+
/** Serialize a Route to a URL path (no origin): manifest routes substitute
|
|
63
|
+
* `:param` segments from params (leftover params → query string);
|
|
64
|
+
* non-manifest names keep the legacy `/<stack>/<name>?params` shape. */
|
|
65
|
+
export declare function buildRoutePath(routes: readonly RouteMeta[], r: Route): string;
|
|
66
|
+
/** `?a=1&b=2` → params — shared code carries no URLSearchParams
|
|
67
|
+
* (invariant 4: no DOM globals on the native path). */
|
|
68
|
+
export declare function parseQueryString(qs: string | undefined): Record<string, unknown>;
|
|
69
|
+
/** Full URL or path → canonical path for matching. `https://x/a/b?y` →
|
|
70
|
+
* `/a/b?y`; custom-scheme links keep their host as the first segment —
|
|
71
|
+
* `textcoral://post/5` → `/post/5` (the common app-scheme convention). */
|
|
72
|
+
export declare function linkPath(url: string): string;
|
|
73
|
+
/** Match a URL path+query against the manifest into a Route — the shared
|
|
74
|
+
* half of web's URL parse and native's deep-link handling. Whole-path
|
|
75
|
+
* match wins ('/demo/x' → root 'demo/:id'); a non-matching first segment
|
|
76
|
+
* is the stack prefix ('/demos/demo/x' → stack 'demos'). Unmatched names
|
|
77
|
+
* fall through as literal routes for pre-manifest callers. */
|
|
78
|
+
export declare function matchUrl(routes: readonly RouteMeta[], url: string): Route | null;
|
|
79
|
+
/** Fire a route's `loader` export — prefetch, not a data layer: the
|
|
80
|
+
* screen's own `query$` reads still own the data, this just warms the
|
|
81
|
+
* cache before mount. Sync throws and async rejections warn rather
|
|
82
|
+
* than break navigation. */
|
|
83
|
+
export declare function runLoader(routes: readonly RouteMeta[], r: Route): void;
|
|
84
|
+
/** Layout components wrapping a route name, outermost → innermost —
|
|
85
|
+
* 'chat/room' picks up `app/chat/_layout.tsrx`, 'a/b/c' chains 'a' then
|
|
86
|
+
* 'a/b'. The '' root layout is the app's own shell (entry renders it)
|
|
87
|
+
* and never joins a chain. Leaves apply the chain at render: native
|
|
88
|
+
* wraps each pushed Page's component, web wraps the outlet's resolved
|
|
89
|
+
* element. */
|
|
90
|
+
export declare function layoutChain(layouts: Record<string, any>, name: string): any[];
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/** Native twin of route.web — same Route contract over Frame/Page stacks.
|
|
2
|
+
* `pushRoute` resolves a stack ('root' = the app's root Frame — an
|
|
3
|
+
* explicit registerStack('root') or, by default, the Frame returned by
|
|
4
|
+
* Application.getRootView(); named stacks come from TabSpec.stack panes
|
|
5
|
+
* or registerStack) and pushes a Page hosting the registered screen —
|
|
6
|
+
* each pushed Page is its own Octane root (decision #9: pages never
|
|
7
|
+
* share context with their presenter). Params land as props; named-stack
|
|
8
|
+
* pushes get `_stack` injected so the screen can popRoute its own stack.
|
|
9
|
+
*
|
|
10
|
+
* Registration contract (the footgun this module exists to defuse):
|
|
11
|
+
* - `registerScreens(table)` once — pushRoute resolves `name` through it.
|
|
12
|
+
* - 'root' needs nothing when the app boots a Frame as its root view
|
|
13
|
+
* (the standard shape); non-Frame roots can't host pushes at all.
|
|
14
|
+
* - named stacks register via `TabSpec.stack` or `registerStack`.
|
|
15
|
+
* Every drop path warns loudly — silent no-ops are how apps ship a
|
|
16
|
+
* default route on native while working fine on web. */
|
|
17
|
+
import type { Route, RouteManifest, RouteMeta, ScreenTable } from './props.js';
|
|
18
|
+
export type { Route } from './props.js';
|
|
19
|
+
/** Register the app's name → screen table (call once, from the shared
|
|
20
|
+
* routes module). Native `pushRoute` resolves `route.name` through it;
|
|
21
|
+
* on web the table feeds `screenFor` for outlets without a
|
|
22
|
+
* `resolveScreen` prop. `manifest` (from deriveRouteManifest) is stored
|
|
23
|
+
* for parity — the web leaf matches URLs through it; native navigation
|
|
24
|
+
* is name+params and only needs the table. */
|
|
25
|
+
export declare function registerScreens(table: ScreenTable, manifest?: RouteMeta[]): void;
|
|
26
|
+
/** One-call registration for route-dir apps — screens + URL patterns +
|
|
27
|
+
* layouts all come from deriveRouteManifest. */
|
|
28
|
+
export declare function registerRoutes(manifest: RouteManifest): void;
|
|
29
|
+
/** Layer a programmatic manifest (from `defineRoutes`) over the registered
|
|
30
|
+
* routes — same-name entries win over the base with a warn, so a host
|
|
31
|
+
* framework can override a file route deliberately. Registered layers
|
|
32
|
+
* survive later registerRoutes re-registration (e.g. routes.gen HMR). */
|
|
33
|
+
export declare function addRoutes(manifest: RouteManifest): void;
|
|
34
|
+
export declare function layoutsForRoute(name: string): any[];
|
|
35
|
+
export declare function screenFor(name: string): ScreenTable[string] | undefined;
|
|
36
|
+
/** Register an Android hardware-back interceptor. Interceptors run
|
|
37
|
+
* most-recent-first (so the topmost mounted screen wins) before the
|
|
38
|
+
* framework's default pop; returning true consumes the press. Returns
|
|
39
|
+
* an unsubscribe. iOS has no hardware back — interceptors simply never
|
|
40
|
+
* fire there. */
|
|
41
|
+
export declare function addBackInterceptor(fn: () => boolean): () => void;
|
|
42
|
+
export declare function redirect(r: Route): never;
|
|
43
|
+
export declare function pushRoute(r: Route): void;
|
|
44
|
+
/** Pop the top page of a stack ('root' default) — or dismiss the top
|
|
45
|
+
* modal if one is open. Quiet no-op at the base page — matching web,
|
|
46
|
+
* where back at the app root is a no-op; loud only when the stack
|
|
47
|
+
* itself doesn't exist. */
|
|
48
|
+
export declare function popRoute(stack?: string): void;
|
|
49
|
+
/** Route stamped on a stack's current page, or null at its base page. */
|
|
50
|
+
export declare function routeFor(stack: string): Route | null;
|
|
51
|
+
/** The top route across stacks — root's current route wins (a root push
|
|
52
|
+
* covers the shell); otherwise the most recently registered named stack
|
|
53
|
+
* showing a pushed page. Native has no boot URL, so this is an
|
|
54
|
+
* approximation of web's "current URL route", not a deep link. */
|
|
55
|
+
export declare function currentRoute(): Route | null;
|
|
56
|
+
/** Named stacks containing routes, including Android's swap-pane stacks. */
|
|
57
|
+
export declare function routeStacks(): string[];
|
|
58
|
+
/** The modal route currently open, if any — parity with the web leaf. */
|
|
59
|
+
export declare function currentModalRoute(): Route | null;
|
|
60
|
+
/** Deep-link entry: normalize a URL (http(s) or app-scheme) to a path,
|
|
61
|
+
* match it against the manifest, push the route. Wire it at boot:
|
|
62
|
+
* `onDeepLink(pushDeepLink)` plus one `consumeInitialUrl()` call. */
|
|
63
|
+
export declare function pushDeepLink(url: string): boolean;
|
|
64
|
+
/** Path-string parity for the web leaf's hrefFor — a canonical
|
|
65
|
+
* /<stack>/<path> rendering of the route (deep-linking consumes it
|
|
66
|
+
* there). Native navigation itself is name+params, not URLs. */
|
|
67
|
+
export declare function hrefFor(r: Route): string;
|
|
68
|
+
export declare function useRoute(stack: string): Route | null;
|
|
69
|
+
/** Whether the selected native stack has a page (or route-owned Android swap
|
|
70
|
+
* entry) that can be popped. The modal root is also a back affordance. */
|
|
71
|
+
export declare function canGoBack(stack?: string): boolean;
|
|
72
|
+
export declare function useCanGoBack(stack?: string): boolean;
|
|
73
|
+
/** The modal route overlaying the shell — parity with the web leaf. */
|
|
74
|
+
export declare function useModalRoute(): Route | null;
|