@octane-xplat/ui 0.5.0 → 0.7.0
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 +17 -4
- package/dist/native/Absolute.tsrx.js +43 -0
- package/dist/native/Accordion.tsrx.js +75 -0
- package/dist/native/ActivityIndicator.tsrx.js +35 -0
- package/dist/native/Alert.tsrx.js +74 -0
- package/dist/native/Avatar.tsrx.js +76 -0
- package/dist/native/AvatarGroup.tsrx.js +84 -0
- package/dist/native/Badge.tsrx.js +29 -0
- package/dist/native/Banner.tsrx.js +80 -0
- package/dist/native/Breadcrumb.tsrx.js +66 -0
- package/dist/native/Button.tsrx.js +62 -0
- package/dist/native/Card.tsrx.js +64 -0
- package/dist/native/Checkbox.tsrx.js +58 -0
- package/dist/native/CheckboxGroup.tsrx.js +70 -0
- package/dist/native/Chip.tsrx.js +83 -0
- package/dist/native/Collapsible.tsrx.js +74 -0
- package/dist/native/CommandPalette.tsrx.js +143 -0
- package/dist/native/ContextMenu.tsrx.js +140 -0
- package/dist/native/Drawer.tsrx.js +60 -0
- package/dist/native/DropdownMenu.tsrx.js +155 -0
- package/dist/native/Empty.tsrx.js +82 -0
- package/dist/native/FieldGroup.tsrx.js +39 -0
- package/dist/native/FormField.tsrx.js +53 -0
- package/dist/native/{ui8.js → Grid.tsrx.js} +20 -9
- package/dist/native/{ui59.js → Heading.tsrx.js} +4 -4
- package/dist/native/Hoverable.tsrx.js +139 -0
- package/dist/native/{ui58.js → Icon.tsrx.js} +5 -5
- package/dist/native/{ui29.js → Image.tsrx.js} +5 -5
- package/dist/native/InputNumber.tsrx.js +146 -0
- package/dist/native/InputRating.tsrx.js +74 -0
- package/dist/native/InputTags.tsrx.js +131 -0
- package/dist/native/Kbd.tsrx.js +29 -0
- package/dist/native/{ui50.js → KeyboardAvoiding.mobile.tsrx.js} +6 -4
- package/dist/native/{ui17.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/{ui22.js → NavLink.tsrx.js} +4 -4
- package/dist/native/NavigationMenu.tsrx.js +67 -0
- package/dist/native/{ui35.js → Overlay.tsrx.js} +4 -4
- package/dist/native/Pagination.tsrx.js +107 -0
- package/dist/native/PinInput.tsrx.js +94 -0
- package/dist/native/{ui38.js → Popover.tsrx.js} +7 -7
- package/dist/native/{ui16.js → Pressable.tsrx.js} +21 -15
- package/dist/native/ProgressGroup.tsrx.js +66 -0
- package/dist/native/RadioGroup.tsrx.js +85 -0
- package/dist/native/{ui15.js → RichText.tsrx.js} +16 -23
- package/dist/native/{ui20.js → RouteHost.mobile.tsrx.js} +13 -2
- package/dist/native/Row.tsrx.js +98 -0
- package/dist/native/{ui49.js → SafeArea.tsrx.js} +10 -4
- package/dist/native/{ui45.js → Screen.tsrx.js} +14 -6
- package/dist/native/{ui26.js → ScrollBox.tsrx.js} +2 -2
- package/dist/native/ScrollView.tsrx.js +233 -0
- package/dist/native/SearchInput.tsrx.js +151 -0
- package/dist/native/SegmentedControl.tsrx.js +75 -0
- package/dist/native/Select.tsrx.js +202 -0
- package/dist/native/Separator.tsrx.js +25 -0
- package/dist/native/{ui63.js → Sheet.tsrx.js} +24 -8
- package/dist/native/Skeleton.tsrx.js +28 -0
- package/dist/native/Slider.tsrx.js +98 -0
- package/dist/native/{ui13.js → Spacer.tsrx.js} +3 -3
- package/dist/native/Stack.tsrx.js +47 -0
- package/dist/native/Stepper.tsrx.js +75 -0
- package/dist/native/Switch.tsrx.js +33 -0
- package/dist/native/Table.tsrx.js +103 -0
- package/dist/native/Tabs.tsrx.js +153 -0
- package/dist/native/{ui14.js → Text.tsrx.js} +5 -4
- package/dist/native/{ui24.js → TextArea.tsrx.js} +18 -17
- package/dist/native/{ui23.js → TextInput.tsrx.js} +22 -17
- package/dist/native/Timeline.tsrx.js +112 -0
- package/dist/native/Tooltip.tsrx.js +131 -0
- package/dist/native/Tree.tsrx.js +140 -0
- package/dist/native/User.tsrx.js +95 -0
- package/dist/native/View.tsrx.js +98 -0
- package/dist/native/VirtualList.tsrx.js +466 -0
- package/dist/native/WebView.tsrx.js +135 -0
- package/dist/native/aliases.tsrx.js +38 -0
- package/dist/native/android/BottomNavigationView.android.tsrx.js +220 -0
- package/dist/native/android/CircularProgressIndicator.android.tsrx.js +27 -0
- package/dist/native/{ui51.js → android/DrawerLayout.android.tsrx.js} +6 -7
- package/dist/native/android/MaterialDialog.android.tsrx.js +62 -0
- package/dist/native/android/MaterialSwitch.android.tsrx.js +28 -0
- package/dist/native/android/RecyclerView.android.tsrx.js +260 -0
- package/dist/native/android/SeekBar.android.tsrx.js +34 -0
- package/dist/native/android/icon.android.js +7 -0
- package/dist/native/android/index.js +11 -0
- package/dist/native/android/openModal.android.js +39 -0
- package/dist/native/{ui41.js → anim.tsrx.js} +1 -1
- package/dist/native/apply-native-modifiers.native.js +9 -0
- package/dist/native/child-array.js +15 -0
- package/dist/native/{ui3.js → escape-props.js} +3 -1
- package/dist/native/icons.js +25 -0
- package/dist/native/index.shared.js +92 -0
- package/dist/native/{ui11.js → ios/LiquidGlass.ios.tsrx.js} +4 -4
- package/dist/native/{ui12.js → ios/LiquidGlassContainer.ios.tsrx.js} +4 -4
- package/dist/native/ios/SideDrawer.ios.tsrx.js +65 -0
- package/dist/native/{ui53.js → ios/UIActivityIndicatorView.ios.tsrx.js} +5 -5
- package/dist/native/{ui32.js → ios/UIModal.ios.tsrx.js} +10 -6
- package/dist/native/{ui56.js → ios/UISlider.ios.tsrx.js} +5 -5
- package/dist/native/{ui47.js → ios/UISwitch.ios.tsrx.js} +5 -5
- package/dist/native/ios/UITabBar.ios.tsrx.js +187 -0
- package/dist/native/ios/UITableView.ios.tsrx.js +282 -0
- package/dist/native/ios/icon.ios.js +7 -0
- package/dist/native/ios/index.js +13 -0
- package/dist/native/{ui33.js → ios/openModal.ios.js} +5 -4
- package/dist/native/keyboard-inset.mobile.js +66 -0
- package/dist/native/{ui5.js → layout-child.js} +1 -1
- package/dist/native/modal-presenter.mobile.js +19 -0
- package/dist/native/modifier-factories.js +24 -0
- package/dist/native/native/index.js +4 -0
- package/dist/native/octane-client-build.json +1 -1
- package/dist/native/{ui6.js → pan.tsrx.js} +9 -69
- package/dist/native/platform.js +10 -0
- package/dist/native/{ui36.js → platformProps.js} +3 -1
- package/dist/native/refresh-metrics.js +9 -0
- package/dist/native/refresh.js +177 -0
- package/dist/native/{ui34.js → root-layout.mobile.js} +8 -3
- package/dist/native/route-host.mobile.js +2 -0
- package/dist/native/{ui19.js → route-table.js} +105 -4
- package/dist/native/{ui21.js → route.js} +140 -20
- package/dist/native/safeAreaInsets.tsrx.js +67 -0
- package/dist/native/shared.js +93 -0
- package/dist/native/sheet-detents.js +102 -0
- package/dist/native/{ui64.js → sheet-service.js} +26 -10
- package/dist/native/sheet-snap.js +35 -0
- package/dist/native/{ui18.js → stacks.js} +1 -1
- package/dist/native/{ui43.js → styled.tsrx.js} +1 -1
- package/dist/native/{ui28.js → svg.mobile.js} +2 -2
- package/dist/native/tap-to-blur.mobile.js +94 -0
- package/dist/native/text-write.js +27 -0
- package/dist/native/{ui30.js → theme/colorScheme.js} +2 -2
- package/dist/native/{ui42.js → theme/status-bar-scheme.mobile.js} +3 -3
- package/dist/{web/ui29.js → native/theme/theme-scheme.js} +3 -3
- package/dist/native/{ui40.js → toast-anchor.tsrx.js} +4 -4
- package/dist/native/translate.js +11 -0
- package/dist/native/ui.js +95 -55
- package/dist/native/use-back.tsrx.js +9 -0
- package/dist/native/{ui62.js → use-store.tsrx.js} +1 -1
- package/dist/native/{ui52.js → useMeasure.tsrx.js} +2 -2
- 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/{ui44.js → windows.js} +1 -1
- package/dist/web/Absolute.web.tsrx.js +47 -0
- package/dist/web/Accordion.web.tsrx.js +85 -0
- package/dist/web/{ui48.js → ActivityIndicator.web.tsrx.js} +1 -1
- package/dist/web/Alert.web.tsrx.js +79 -0
- package/dist/web/Avatar.web.tsrx.js +106 -0
- package/dist/web/AvatarGroup.web.tsrx.js +108 -0
- package/dist/web/Badge.web.tsrx.js +37 -0
- package/dist/web/Banner.web.tsrx.js +79 -0
- package/dist/web/Breadcrumb.web.tsrx.js +135 -0
- package/dist/web/Button.web.tsrx.js +45 -0
- package/dist/web/Card.web.tsrx.js +73 -0
- package/dist/web/Checkbox.web.tsrx.js +89 -0
- package/dist/web/CheckboxGroup.web.tsrx.js +79 -0
- package/dist/web/Chip.web.tsrx.js +64 -0
- package/dist/web/Collapsible.web.tsrx.js +94 -0
- package/dist/web/CommandPalette.web.tsrx.js +125 -0
- package/dist/web/ContextMenu.web.tsrx.js +154 -0
- package/dist/web/{ui45.js → Drawer.web.tsrx.js} +13 -9
- package/dist/web/DropdownMenu.web.tsrx.js +162 -0
- package/dist/web/Empty.web.tsrx.js +89 -0
- package/dist/web/FieldGroup.web.tsrx.js +57 -0
- package/dist/web/FormField.web.tsrx.js +92 -0
- package/dist/web/Grid.web.tsrx.js +65 -0
- package/dist/web/{ui54.js → Heading.web.tsrx.js} +2 -2
- package/dist/web/{ui34.js → Hoverable.web.tsrx.js} +6 -5
- package/dist/web/{ui53.js → Icon.web.tsrx.js} +2 -2
- package/dist/web/{ui25.js → Image.web.tsrx.js} +2 -2
- package/dist/web/InputNumber.web.tsrx.js +99 -0
- package/dist/web/InputRating.web.tsrx.js +72 -0
- package/dist/web/InputTags.web.tsrx.js +122 -0
- package/dist/web/Kbd.web.tsrx.js +37 -0
- package/dist/web/ListItem.web.tsrx.js +139 -0
- package/dist/web/{ui50.js → Meter.web.tsrx.js} +1 -1
- package/dist/web/{ui19.js → NavLink.web.tsrx.js} +1 -1
- package/dist/web/NavigationMenu.web.tsrx.js +118 -0
- package/dist/web/{ui31.js → Overlay.web.tsrx.js} +2 -2
- package/dist/web/Pagination.web.tsrx.js +80 -0
- package/dist/web/PinInput.web.tsrx.js +72 -0
- package/dist/web/{ui33.js → Popover.web.tsrx.js} +3 -3
- package/dist/web/{ui15.js → Pressable.web.tsrx.js} +68 -95
- package/dist/web/ProgressGroup.web.tsrx.js +109 -0
- package/dist/web/RadioGroup.web.tsrx.js +69 -0
- package/dist/web/{ui14.js → RichText.web.tsrx.js} +2 -2
- package/dist/web/Row.web.tsrx.js +250 -0
- package/dist/web/{ui43.js → SafeArea.web.tsrx.js} +10 -4
- package/dist/web/{ui39.js → Screen.web.tsrx.js} +1 -1
- package/dist/web/{ui24.js → ScrollBox.web.tsrx.js} +1 -1
- package/dist/web/ScrollView.web.tsrx.js +388 -0
- package/dist/web/SearchInput.web.tsrx.js +137 -0
- package/dist/web/SegmentedControl.web.tsrx.js +75 -0
- package/dist/web/Select.web.tsrx.js +149 -0
- package/dist/web/Separator.web.tsrx.js +42 -0
- package/dist/web/Sheet.web.tsrx.js +81 -0
- package/dist/web/Skeleton.web.tsrx.js +56 -0
- package/dist/web/Slider.web.tsrx.js +97 -0
- package/dist/web/{ui12.js → Spacer.web.tsrx.js} +1 -1
- package/dist/web/Stack.web.tsrx.js +47 -0
- package/dist/web/Stepper.web.tsrx.js +65 -0
- package/dist/web/Switch.web.tsrx.js +59 -0
- package/dist/web/Table.web.tsrx.js +161 -0
- package/dist/web/Tabs.web.tsrx.js +215 -0
- package/dist/web/{ui13.js → Text.web.tsrx.js} +18 -50
- package/dist/web/{ui21.js → TextArea.web.tsrx.js} +4 -4
- package/dist/web/{ui20.js → TextInput.web.tsrx.js} +8 -8
- package/dist/web/Timeline.web.tsrx.js +172 -0
- package/dist/web/Tooltip.web.tsrx.js +184 -0
- package/dist/web/Tree.web.tsrx.js +146 -0
- package/dist/web/User.web.tsrx.js +116 -0
- package/dist/web/View.web.tsrx.js +250 -0
- package/dist/web/VirtualList.web.tsrx.js +622 -0
- package/dist/web/WebView.web.tsrx.js +272 -0
- package/dist/web/aliases.web.tsrx.js +24 -0
- package/dist/web/{ui36.js → anim.web.tsrx.js} +3 -35
- package/dist/web/child-array.js +15 -0
- package/dist/web/icons.js +25 -0
- package/dist/web/index.shared.web.js +92 -0
- package/dist/web/octane-client-build.json +1 -1
- package/dist/web/pan.web.tsrx.js +66 -0
- package/dist/web/platform.web.js +9 -0
- package/dist/web/refresh-metrics.js +9 -0
- package/dist/web/refresh.web.js +133 -0
- package/dist/web/{ui17.js → route-table.js} +105 -4
- package/dist/web/{ui18.js → route.web.js} +48 -11
- package/dist/web/sheet-detents.web.js +103 -0
- package/dist/web/{ui60.js → sheet-service.web.js} +5 -1
- package/dist/web/sheet-snap.js +35 -0
- package/dist/{native/ui31.js → web/theme/theme-scheme.js} +2 -2
- package/dist/web/{ui35.js → toast-anchor.web.tsrx.js} +3 -3
- package/dist/web/transform.web.js +43 -0
- package/dist/web/translate.web.js +13 -0
- package/dist/web/ui.js +93 -53
- package/dist/web/use-back.web.tsrx.js +9 -0
- package/dist/web/virtual-list-layout.js +146 -0
- package/dist/web/web/index.js +3 -0
- package/package.json +53 -14
- 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 +298 -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.shared.web.ts +270 -0
- package/src/index.ts +1 -0
- package/src/index.web.ts +1 -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 +1408 -206
- 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 +250 -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.shared.web.d.ts +111 -0
- package/types/generated/index.web.d.ts +1 -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/generated/props.d.ts +1626 -0
- 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/ui10.js +0 -32
- package/dist/native/ui25.js +0 -141
- package/dist/native/ui27.js +0 -61
- package/dist/native/ui39.js +0 -103
- package/dist/native/ui4.js +0 -24
- package/dist/native/ui46.js +0 -267
- package/dist/native/ui48.js +0 -35
- package/dist/native/ui55.js +0 -92
- package/dist/native/ui57.js +0 -19
- package/dist/native/ui60.js +0 -14
- package/dist/native/ui7.js +0 -52
- package/dist/native/ui9.js +0 -36
- package/dist/web/ui10.js +0 -46
- package/dist/web/ui11.js +0 -42
- package/dist/web/ui22.js +0 -108
- package/dist/web/ui23.js +0 -96
- package/dist/web/ui26.js +0 -45
- package/dist/web/ui3.js +0 -31
- package/dist/web/ui30.js +0 -34
- package/dist/web/ui40.js +0 -154
- package/dist/web/ui41.js +0 -43
- package/dist/web/ui44.js +0 -42
- package/dist/web/ui5.js +0 -168
- package/dist/web/ui51.js +0 -47
- package/dist/web/ui52.js +0 -19
- package/dist/web/ui55.js +0 -17
- package/dist/web/ui59.js +0 -44
- package/dist/web/ui6.js +0 -94
- package/dist/web/ui7.js +0 -62
- package/dist/web/ui8.js +0 -46
- package/dist/web/ui9.js +0 -46
- package/types/index.d.ts +0 -258
- package/types/props.d.ts +0 -742
- /package/dist/native/{ui2.js → cx.js} +0 -0
- /package/dist/native/{ui54.js → meter-math.js} +0 -0
- /package/dist/native/{ui37.js → popover-position.js} +0 -0
- /package/dist/native/{ui61.js → store.js} +0 -0
- /package/dist/web/{ui16.js → Link.web.tsrx.js} +0 -0
- /package/dist/web/{ui28.js → cx.js} +0 -0
- /package/dist/web/{ui2.js → escape-props.web.js} +0 -0
- /package/dist/web/{ui4.js → layout-child.web.js} +0 -0
- /package/dist/web/{ui49.js → meter-math.js} +0 -0
- /package/dist/web/{ui47.js → platformProps.web.js} +0 -0
- /package/dist/web/{ui32.js → popover-position.js} +0 -0
- /package/dist/web/{ui42.js → safeAreaInsets.web.tsrx.js} +0 -0
- /package/dist/web/{ui56.js → stacks.web.js} +0 -0
- /package/dist/web/{ui57.js → store.js} +0 -0
- /package/dist/web/{ui37.js → styled.web.tsrx.js} +0 -0
- /package/dist/web/{ui27.js → theme/colorScheme.web.js} +0 -0
- /package/dist/web/{ui58.js → use-store.web.tsrx.js} +0 -0
- /package/dist/web/{ui46.js → useMeasure.web.tsrx.js} +0 -0
- /package/dist/web/{ui38.js → windows.web.js} +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { dampenPull } from "./refresh-metrics.js";
|
|
2
|
+
import { isIOS } from "@nativescript/core";
|
|
3
|
+
//#region src/refresh.ts
|
|
4
|
+
var PAN_ENDED = /* @__PURE__ */ new Set([0, 3]);
|
|
5
|
+
var DOCK_ANIM_MS = 180;
|
|
6
|
+
function makeInsets(top, left, bottom, right) {
|
|
7
|
+
const make = globalThis.UIEdgeInsetsMake;
|
|
8
|
+
if (make) return make(top, left, bottom, right);
|
|
9
|
+
return {
|
|
10
|
+
top,
|
|
11
|
+
left,
|
|
12
|
+
bottom,
|
|
13
|
+
right
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Pan-driven pull-to-refresh over any NS scrollable (scrollview or
|
|
17
|
+
* listview). Two mechanics, one visual:
|
|
18
|
+
*
|
|
19
|
+
* iOS — UIScrollView's own bounce supplies the content displacement
|
|
20
|
+
* (NS gesture delegates allow simultaneous recognition, so our pan on
|
|
21
|
+
* the scroller observes alongside the scroll pan). The handler reads
|
|
22
|
+
* `contentOffset` for the live gap and docks with
|
|
23
|
+
* `contentInset.top += H` — the exact mechanics UIRefreshControl uses.
|
|
24
|
+
*
|
|
25
|
+
* Android — there is no overscroll; the scroller box itself is
|
|
26
|
+
* translated inside the clipping wrapper while the damped drag
|
|
27
|
+
* accumulates. Docking holds the translate at H. Edge glow is disabled
|
|
28
|
+
* (OVER_SCROLL_NEVER) so no OS chrome leaks into the pixels.
|
|
29
|
+
*
|
|
30
|
+
* Releasing past `threshold` fires `onRefresh` once per pull and holds
|
|
31
|
+
* the docked gap; the controlled `refreshing` prop keeps it docked.
|
|
32
|
+
* A short grace window collapses the dock if `refreshing` never comes —
|
|
33
|
+
* props land a render after `onRefresh` fires. */
|
|
34
|
+
function createPullToRefresh(host) {
|
|
35
|
+
const { scroller, indicator, isAtTop, cfg } = host;
|
|
36
|
+
if (!scroller || !indicator) return {
|
|
37
|
+
sync: () => {},
|
|
38
|
+
detach: () => {}
|
|
39
|
+
};
|
|
40
|
+
let docked = false;
|
|
41
|
+
let pullAcc = 0;
|
|
42
|
+
let prevDy = 0;
|
|
43
|
+
let touching = false;
|
|
44
|
+
let grace = null;
|
|
45
|
+
let baseInsetTop = null;
|
|
46
|
+
let lastTy = NaN;
|
|
47
|
+
const threshold = () => cfg.current.threshold ?? 64;
|
|
48
|
+
/** Resting gap: the strip stays docked while the gesture docked it OR
|
|
49
|
+
* the controlled `refreshing` prop holds it open. */
|
|
50
|
+
const held = () => docked || !!cfg.current.refreshing;
|
|
51
|
+
const iosOverscroll = () => {
|
|
52
|
+
const sv = scroller.ios;
|
|
53
|
+
if (!sv?.contentOffset) return 0;
|
|
54
|
+
return Math.max(0, -(sv.contentOffset.y + sv.contentInset.top));
|
|
55
|
+
};
|
|
56
|
+
const applyReveal = (reveal) => {
|
|
57
|
+
const ty = reveal - 64;
|
|
58
|
+
if (ty !== lastTy) {
|
|
59
|
+
lastTy = ty;
|
|
60
|
+
indicator.translateY = ty;
|
|
61
|
+
if (!isIOS) scroller.translateY = reveal;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const settle = (reveal) => {
|
|
65
|
+
lastTy = NaN;
|
|
66
|
+
if (isIOS) animateTo(indicator, reveal - 64);
|
|
67
|
+
else {
|
|
68
|
+
animateTo(scroller, reveal);
|
|
69
|
+
animateTo(indicator, reveal - 64);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const setInset = (on) => {
|
|
73
|
+
const sv = scroller.ios;
|
|
74
|
+
if (!sv?.contentInset) return;
|
|
75
|
+
if (on && baseInsetTop == null) baseInsetTop = sv.contentInset.top;
|
|
76
|
+
const next = (baseInsetTop ?? 0) + (on ? 64 : 0);
|
|
77
|
+
if (Math.abs(sv.contentInset.top - next) < .5) return;
|
|
78
|
+
const apply = () => {
|
|
79
|
+
sv.contentInset = makeInsets(next, sv.contentInset.left, sv.contentInset.bottom, sv.contentInset.right);
|
|
80
|
+
};
|
|
81
|
+
const UIView = globalThis.UIView;
|
|
82
|
+
if (UIView?.animateWithDurationAnimations) UIView.animateWithDurationAnimations(DOCK_ANIM_MS / 1e3, apply);
|
|
83
|
+
else apply();
|
|
84
|
+
};
|
|
85
|
+
function animateTo(view, y) {
|
|
86
|
+
view?.animate?.({
|
|
87
|
+
translate: {
|
|
88
|
+
x: 0,
|
|
89
|
+
y
|
|
90
|
+
},
|
|
91
|
+
duration: DOCK_ANIM_MS
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const dock = () => {
|
|
95
|
+
docked = true;
|
|
96
|
+
pullAcc = 0;
|
|
97
|
+
if (isIOS) setInset(true);
|
|
98
|
+
settle(64);
|
|
99
|
+
};
|
|
100
|
+
const collapse = () => {
|
|
101
|
+
docked = false;
|
|
102
|
+
pullAcc = 0;
|
|
103
|
+
if (isIOS) setInset(false);
|
|
104
|
+
settle(0);
|
|
105
|
+
};
|
|
106
|
+
/** `extra` is pull beyond the held baseline — a release only fires
|
|
107
|
+
* `onRefresh` when the user actually pulled (a resting release inside
|
|
108
|
+
* the dock re-fires nothing). */
|
|
109
|
+
const release = (extra) => {
|
|
110
|
+
const reveal = extra + (held() ? 64 : 0);
|
|
111
|
+
if (extra > 0 && reveal >= threshold()) {
|
|
112
|
+
cfg.current.onRefresh?.();
|
|
113
|
+
dock();
|
|
114
|
+
clearTimeout(grace);
|
|
115
|
+
grace = setTimeout(() => {
|
|
116
|
+
if (!cfg.current.refreshing) collapse();
|
|
117
|
+
}, 350);
|
|
118
|
+
} else if (held()) {
|
|
119
|
+
docked = true;
|
|
120
|
+
pullAcc = 0;
|
|
121
|
+
if (isIOS) setInset(true);
|
|
122
|
+
settle(64);
|
|
123
|
+
} else collapse();
|
|
124
|
+
};
|
|
125
|
+
const onPan = (e) => {
|
|
126
|
+
if (isIOS) {
|
|
127
|
+
const extra = iosOverscroll();
|
|
128
|
+
if (PAN_ENDED.has(e.state)) {
|
|
129
|
+
touching = false;
|
|
130
|
+
release(extra);
|
|
131
|
+
} else {
|
|
132
|
+
touching = true;
|
|
133
|
+
applyReveal(extra + (held() ? 64 : 0));
|
|
134
|
+
}
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (e.state === 1) {
|
|
138
|
+
touching = true;
|
|
139
|
+
prevDy = e.deltaY;
|
|
140
|
+
pullAcc = 0;
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (PAN_ENDED.has(e.state)) {
|
|
144
|
+
touching = false;
|
|
145
|
+
release(pullAcc);
|
|
146
|
+
pullAcc = 0;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const inc = e.deltaY - prevDy;
|
|
150
|
+
prevDy = e.deltaY;
|
|
151
|
+
if (!isAtTop()) return;
|
|
152
|
+
pullAcc = Math.max(0, pullAcc + dampenPull(inc));
|
|
153
|
+
applyReveal(pullAcc + (held() ? 64 : 0));
|
|
154
|
+
};
|
|
155
|
+
scroller.on("pan", onPan);
|
|
156
|
+
if (!isIOS) scroller.android?.setOverScrollMode?.(2);
|
|
157
|
+
return {
|
|
158
|
+
sync: () => {
|
|
159
|
+
if (cfg.current.refreshing) {
|
|
160
|
+
clearTimeout(grace);
|
|
161
|
+
if (!docked && !touching) dock();
|
|
162
|
+
} else if (docked && !touching) collapse();
|
|
163
|
+
},
|
|
164
|
+
detach: () => {
|
|
165
|
+
clearTimeout(grace);
|
|
166
|
+
scroller.off("pan", onPan);
|
|
167
|
+
if (docked) {
|
|
168
|
+
docked = false;
|
|
169
|
+
if (isIOS) setInset(false);
|
|
170
|
+
else scroller.translateY = 0;
|
|
171
|
+
indicator.translateY = -64;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
export { createPullToRefresh };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RootLayout, getRootLayout } from "@nativescript/core";
|
|
2
|
-
//#region src/root-layout.
|
|
2
|
+
//#region src/root-layout.mobile.ts
|
|
3
3
|
var registry = [];
|
|
4
4
|
/** Called by the Screen leaf's <rootlayout> onLoaded/onUnloaded. */
|
|
5
5
|
function registerRootLayout(rl) {
|
|
@@ -17,7 +17,7 @@ function topRootLayout() {
|
|
|
17
17
|
return registry[registry.length - 1] ?? getRootLayout();
|
|
18
18
|
}
|
|
19
19
|
/** Resolve the RootLayout enclosing `view` by walking the native parent
|
|
20
|
-
* chain — the screen shell is a RootLayout (Screen
|
|
20
|
+
* chain — the screen shell is a RootLayout (Screen), so the first
|
|
21
21
|
* RootLayout ancestor IS the current page's overlay host. Falls back to
|
|
22
22
|
* the top registry entry when the component renders outside any Screen. */
|
|
23
23
|
function rootLayoutFor(view) {
|
|
@@ -26,13 +26,18 @@ function rootLayoutFor(view) {
|
|
|
26
26
|
}
|
|
27
27
|
/** Search every registered rootlayout for a view by id — overlays/sheets/
|
|
28
28
|
* toasts land on different rootlayouts depending on which screen's shell
|
|
29
|
-
* mounted last.
|
|
29
|
+
* mounted last. Unloaded subtrees are skipped: a covered page unloads its
|
|
30
|
+
* views (NativeScript detaches their native recognizers while the JS views
|
|
31
|
+
* stay parented), so an unloaded match is a dead twin that can swallow
|
|
32
|
+
* interaction probes — the live view either doesn't exist here yet or sits
|
|
33
|
+
* under a loaded branch. */
|
|
30
34
|
function findInRootLayouts(id) {
|
|
31
35
|
const walk = (view) => {
|
|
32
36
|
if (!view) return null;
|
|
33
37
|
if (view.id === id) return view;
|
|
34
38
|
let hit = null;
|
|
35
39
|
view.eachChildView?.((c) => {
|
|
40
|
+
if (c?.isLoaded === false) return true;
|
|
36
41
|
const found = walk(c);
|
|
37
42
|
if (found) {
|
|
38
43
|
hit = found;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
//#region src/route-table.ts
|
|
2
2
|
var EXT = /\.(tsrx|tsx|ts|mts|cts|js|mjs|cjs|jsx)$/;
|
|
3
|
-
var SUFFIX = /\.(web|
|
|
3
|
+
var SUFFIX = /\.(web|mobile|ios|android|macos|windows|linux)$/;
|
|
4
4
|
var PARAM = /^\[(.+)\]$/;
|
|
5
5
|
var PRESENT = /\+(modal|fade|push)$/;
|
|
6
6
|
/** Internal error carrier used by the public `redirect()` helper. Keeping
|
|
7
7
|
* this in the shared route table gives both platform leaves the same guard
|
|
8
8
|
* behavior without importing a platform runtime. */
|
|
9
9
|
var RouteRedirect = class extends Error {
|
|
10
|
-
route;
|
|
11
10
|
constructor(route) {
|
|
12
11
|
super("route redirect");
|
|
13
12
|
this.route = route;
|
|
@@ -102,7 +101,109 @@ function deriveRouteManifest(files, prefer, dir = "app") {
|
|
|
102
101
|
routes.push(meta);
|
|
103
102
|
if (meta.loader) loaders[meta.name] = meta.loader;
|
|
104
103
|
}
|
|
105
|
-
routes.sort(
|
|
104
|
+
routes.sort(bySpecificity);
|
|
105
|
+
return {
|
|
106
|
+
screens,
|
|
107
|
+
routes,
|
|
108
|
+
layouts,
|
|
109
|
+
loaders
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** Match-order comparator: static segments (2) outrank params (1), ties
|
|
113
|
+
* break alphabetically so ordering is total and stable across merges. */
|
|
114
|
+
function bySpecificity(a, b) {
|
|
115
|
+
return b.segments.reduce((n, s) => n + (s.startsWith(":") ? 1 : 2), 0) - a.segments.reduce((n, s) => n + (s.startsWith(":") ? 1 : 2), 0) || a.name.localeCompare(b.name);
|
|
116
|
+
}
|
|
117
|
+
/** Normalize a programmatic `path` into manifest segments using the
|
|
118
|
+
* route-dir vocabulary: `'docs/[slug]'` and `'docs/:slug'` are the same
|
|
119
|
+
* pattern, a trailing `index` drops, `''`/`'index'` name the root route. */
|
|
120
|
+
function specSegments(path) {
|
|
121
|
+
const segs = path.split("/").filter(Boolean).map((s) => {
|
|
122
|
+
const p = PARAM.exec(s);
|
|
123
|
+
return p ? ":" + p[1] : s;
|
|
124
|
+
});
|
|
125
|
+
if (segs[segs.length - 1] === "index") segs.pop();
|
|
126
|
+
return segs;
|
|
127
|
+
}
|
|
128
|
+
var mergeWarned = /* @__PURE__ */ new Set();
|
|
129
|
+
/** Build a manifest from app data rather than the route dir — the
|
|
130
|
+
* programmatic half of the route contract (host frameworks derive specs
|
|
131
|
+
* from their own sources, e.g. `readdirSync` over a content dir). Each
|
|
132
|
+
* spec's `path` uses the route-dir vocabulary; `layouts` keys are path
|
|
133
|
+
* prefixes playing the `_layout` role. Same-name duplicates inside the
|
|
134
|
+
* set keep the later entry with a warn, matching merge precedence. */
|
|
135
|
+
function defineRoutes(input) {
|
|
136
|
+
const set = Array.isArray(input) ? { routes: input } : input;
|
|
137
|
+
const specs = set.routes;
|
|
138
|
+
const extra = set.layouts;
|
|
139
|
+
const screens = {};
|
|
140
|
+
const layouts = {};
|
|
141
|
+
const metas = /* @__PURE__ */ new Map();
|
|
142
|
+
const warned = /* @__PURE__ */ new Set();
|
|
143
|
+
for (const [key, layout] of Object.entries(extra ?? {})) {
|
|
144
|
+
const dir = key.replace(/^\/+|\/+$/g, "");
|
|
145
|
+
if (dir !== key) console.warn(`[octane-xplat] layout key '${key}' normalized to '${dir}'`);
|
|
146
|
+
layouts[dir] = layout;
|
|
147
|
+
}
|
|
148
|
+
for (const spec of specs) {
|
|
149
|
+
const segments = specSegments(spec.path);
|
|
150
|
+
const name = segments.join("/") || "index";
|
|
151
|
+
const meta = {
|
|
152
|
+
name,
|
|
153
|
+
segments,
|
|
154
|
+
params: segments.filter((s) => s.startsWith(":")).map((s) => s.slice(1)),
|
|
155
|
+
file: spec.source ?? `programmatic:${spec.path}`,
|
|
156
|
+
presentation: spec.presentation
|
|
157
|
+
};
|
|
158
|
+
if (spec.loader) meta.loader = spec.loader;
|
|
159
|
+
if (spec.beforeLoad) meta.beforeLoad = spec.beforeLoad;
|
|
160
|
+
if (spec.head) meta.head = spec.head;
|
|
161
|
+
if (metas.has(name) && !warned.has(name)) {
|
|
162
|
+
warned.add(name);
|
|
163
|
+
console.warn(`[octane-xplat] route '${name}' is defined twice — keeping the later spec (${meta.file})`);
|
|
164
|
+
}
|
|
165
|
+
if (typeof spec.screen !== "function") {
|
|
166
|
+
console.warn(`[octane-xplat] route '${name}' has no component — 'screen' must be a component function, not a module`);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
metas.set(name, meta);
|
|
170
|
+
screens[name] = spec.screen;
|
|
171
|
+
}
|
|
172
|
+
const routes = [...metas.values()].sort(bySpecificity);
|
|
173
|
+
const loaders = {};
|
|
174
|
+
for (const meta of routes) if (meta.loader) loaders[meta.name] = meta.loader;
|
|
175
|
+
return {
|
|
176
|
+
screens,
|
|
177
|
+
routes,
|
|
178
|
+
layouts,
|
|
179
|
+
loaders
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/** Compose manifests into one — file-derived base plus any number of
|
|
183
|
+
* programmatic sets (`registerRoutes(mergeRouteManifests(fromDir, dynamic))`).
|
|
184
|
+
* Registration order is precedence: on a same-name collision the later
|
|
185
|
+
* manifest's route wins and the loser's loader/beforeLoad/head go with it —
|
|
186
|
+
* a warn fires once per colliding name. `layouts` merge key-wise the same
|
|
187
|
+
* way. `matchRoute` order is rebuilt by specificity after the merge. */
|
|
188
|
+
function mergeRouteManifests(...manifests) {
|
|
189
|
+
const screens = {};
|
|
190
|
+
const layouts = {};
|
|
191
|
+
const winners = /* @__PURE__ */ new Map();
|
|
192
|
+
for (const m of manifests) {
|
|
193
|
+
Object.assign(layouts, m.layouts);
|
|
194
|
+
Object.assign(screens, m.screens);
|
|
195
|
+
for (const meta of m.routes) {
|
|
196
|
+
const prev = winners.get(meta.name);
|
|
197
|
+
if (prev && !mergeWarned.has(meta.name)) {
|
|
198
|
+
mergeWarned.add(meta.name);
|
|
199
|
+
console.warn(`[octane-xplat] route '${meta.name}' is defined by both ${prev.file} and ${meta.file} — keeping ${meta.file}`);
|
|
200
|
+
}
|
|
201
|
+
winners.set(meta.name, meta);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const routes = [...winners.values()].sort(bySpecificity);
|
|
205
|
+
const loaders = {};
|
|
206
|
+
for (const meta of routes) if (meta.loader) loaders[meta.name] = meta.loader;
|
|
106
207
|
return {
|
|
107
208
|
screens,
|
|
108
209
|
routes,
|
|
@@ -246,4 +347,4 @@ function layoutChain(layouts, name) {
|
|
|
246
347
|
return chain;
|
|
247
348
|
}
|
|
248
349
|
//#endregion
|
|
249
|
-
export { RouteRedirect, buildRoutePath, deriveRouteManifest, layoutChain, linkPath, matchRoute, matchUrl, parseQueryString };
|
|
350
|
+
export { RouteRedirect, buildRoutePath, defineRoutes, deriveRouteManifest, layoutChain, linkPath, matchRoute, matchUrl, mergeRouteManifests, parseQueryString };
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { getStack, onStackRegistered, stackEntries } from "./
|
|
2
|
-
import { RouteRedirect, buildRoutePath, layoutChain, linkPath, matchUrl } from "./
|
|
3
|
-
import { RouteHost } from "./
|
|
1
|
+
import { getStack, onStackRegistered, stackEntries } from "./stacks.js";
|
|
2
|
+
import { RouteRedirect, buildRoutePath, layoutChain, linkPath, matchUrl, mergeRouteManifests } from "./route-table.js";
|
|
3
|
+
import { RouteHost } from "./RouteHost.mobile.tsrx.js";
|
|
4
|
+
import "./route-host.mobile.js";
|
|
5
|
+
import { modalPresenter } from "./modal-presenter.mobile.js";
|
|
4
6
|
import { createNativeScriptRoot } from "@nativescript-community/octane";
|
|
5
7
|
import { Application, GridLayout, Page } from "@nativescript/core";
|
|
6
|
-
import { hookSlots as hookSlots$1, useSyncExternalStore as useSyncExternalStore$1 } from "octane";
|
|
7
|
-
//#region src/route.
|
|
8
|
+
import { hookSlots as hookSlots$1, useSyncExternalStore as useSyncExternalStore$1 } from "octane/universal/native";
|
|
9
|
+
//#region src/route.ts
|
|
8
10
|
/** Native twin of route.web — same Route contract over Frame/Page stacks.
|
|
9
11
|
* `pushRoute` resolves a stack ('root' = the app's root Frame — an
|
|
10
12
|
* explicit registerStack('root') or, by default, the Frame returned by
|
|
@@ -21,10 +23,24 @@ import { hookSlots as hookSlots$1, useSyncExternalStore as useSyncExternalStore$
|
|
|
21
23
|
* - named stacks register via `TabSpec.stack` or `registerStack`.
|
|
22
24
|
* Every drop path warns loudly — silent no-ops are how apps ship a
|
|
23
25
|
* default route on native while working fine on web. */
|
|
26
|
+
var baseManifest = {
|
|
27
|
+
screens: {},
|
|
28
|
+
routes: [],
|
|
29
|
+
layouts: {}
|
|
30
|
+
};
|
|
31
|
+
var dynamicManifests = [];
|
|
24
32
|
var screens = {};
|
|
25
33
|
var routes = [];
|
|
26
34
|
var routeLayouts = {};
|
|
27
35
|
var routeLoaders = {};
|
|
36
|
+
function rebuildRegistry() {
|
|
37
|
+
const merged = mergeRouteManifests(baseManifest, ...dynamicManifests);
|
|
38
|
+
screens = merged.screens;
|
|
39
|
+
routes = merged.routes;
|
|
40
|
+
routeLayouts = merged.layouts;
|
|
41
|
+
routeLoaders = merged.loaders ?? {};
|
|
42
|
+
emit();
|
|
43
|
+
}
|
|
28
44
|
/** Register the app's name → screen table (call once, from the shared
|
|
29
45
|
* routes module). Native `pushRoute` resolves `route.name` through it;
|
|
30
46
|
* on web the table feeds `screenFor` for outlets without a
|
|
@@ -32,15 +48,28 @@ var routeLoaders = {};
|
|
|
32
48
|
* for parity — the web leaf matches URLs through it; native navigation
|
|
33
49
|
* is name+params and only needs the table. */
|
|
34
50
|
function registerScreens(table, manifest) {
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
baseManifest = {
|
|
52
|
+
...baseManifest,
|
|
53
|
+
screens: table,
|
|
54
|
+
routes: manifest ?? []
|
|
55
|
+
};
|
|
56
|
+
rebuildRegistry();
|
|
57
|
+
ensureBackWired();
|
|
37
58
|
}
|
|
38
59
|
/** One-call registration for route-dir apps — screens + URL patterns +
|
|
39
60
|
* layouts all come from deriveRouteManifest. */
|
|
40
61
|
function registerRoutes(manifest) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
62
|
+
baseManifest = manifest;
|
|
63
|
+
rebuildRegistry();
|
|
64
|
+
ensureBackWired();
|
|
65
|
+
}
|
|
66
|
+
/** Layer a programmatic manifest (from `defineRoutes`) over the registered
|
|
67
|
+
* routes — same-name entries win over the base with a warn, so a host
|
|
68
|
+
* framework can override a file route deliberately. Registered layers
|
|
69
|
+
* survive later registerRoutes re-registration (e.g. routes.gen HMR). */
|
|
70
|
+
function addRoutes(manifest) {
|
|
71
|
+
dynamicManifests.push(manifest);
|
|
72
|
+
rebuildRegistry();
|
|
44
73
|
}
|
|
45
74
|
function layoutsForRoute(name) {
|
|
46
75
|
return layoutChain(routeLayouts, name);
|
|
@@ -69,20 +98,104 @@ function warnOnce(key, msg) {
|
|
|
69
98
|
function trackFrame(frame) {
|
|
70
99
|
if (tracked.has(frame)) return;
|
|
71
100
|
tracked.add(frame);
|
|
72
|
-
frame.on("navigatedTo",
|
|
101
|
+
frame.on("navigatedTo", () => {
|
|
102
|
+
const page = frame.currentPage;
|
|
103
|
+
if (page && page.isLoaded === false) page.callLoaded?.();
|
|
104
|
+
emit();
|
|
105
|
+
});
|
|
73
106
|
}
|
|
74
107
|
function resolveStack(stack) {
|
|
75
108
|
const frame = getStack(stack);
|
|
76
109
|
if (frame) trackFrame(frame);
|
|
77
110
|
return frame;
|
|
78
111
|
}
|
|
112
|
+
/** TabViewItem-hosted frames report isLoaded=false after tab-selection
|
|
113
|
+
* lifecycle churn; without re-arming, the nav queue defers pushes AND pops
|
|
114
|
+
* forever (iOS strand of #11444 — goBack also gates on isLoaded via
|
|
115
|
+
* _processNextNavigationEntry). callLoaded is idempotent once the flag
|
|
116
|
+
* holds, so run it before every navigate/goBack on a registered frame. */
|
|
117
|
+
function rearmFrameLoaded(frame) {
|
|
118
|
+
if (!frame.isLoaded) frame.callLoaded?.();
|
|
119
|
+
}
|
|
79
120
|
onStackRegistered((_name, frame) => {
|
|
80
121
|
trackFrame(frame);
|
|
122
|
+
ensureBackWired();
|
|
81
123
|
emit();
|
|
82
124
|
});
|
|
83
125
|
var modalHosts = [];
|
|
84
126
|
var swapTabRoutes = /* @__PURE__ */ new Map();
|
|
85
127
|
var swapTabOrder = [];
|
|
128
|
+
/** App-supplied interceptors, consulted most-recent-first before the
|
|
129
|
+
* framework's default stack pop. Return true to consume the press. */
|
|
130
|
+
var backInterceptors = [];
|
|
131
|
+
var backWired = false;
|
|
132
|
+
/** Register an Android hardware-back interceptor. Interceptors run
|
|
133
|
+
* most-recent-first (so the topmost mounted screen wins) before the
|
|
134
|
+
* framework's default pop; returning true consumes the press. Returns
|
|
135
|
+
* an unsubscribe. iOS has no hardware back — interceptors simply never
|
|
136
|
+
* fire there. */
|
|
137
|
+
function addBackInterceptor(fn) {
|
|
138
|
+
backInterceptors.push(fn);
|
|
139
|
+
return () => {
|
|
140
|
+
const i = backInterceptors.indexOf(fn);
|
|
141
|
+
if (i !== -1) backInterceptors.splice(i, 1);
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/** Framework-owned default: the newest open modal, then the root stack's
|
|
145
|
+
* pushed page (a root push covers the shell), then the most recently
|
|
146
|
+
* used swap-pane stack, then any registered named stack that can pop.
|
|
147
|
+
* Returns false at the base of everything — the press falls through to
|
|
148
|
+
* the system (app exit). NS's own default pops `Frame.topmost()` — the
|
|
149
|
+
* innermost frame — which is wrong once nested stacks exist, so this
|
|
150
|
+
* ordering is deliberate. */
|
|
151
|
+
function defaultBackPress() {
|
|
152
|
+
const modal = modalHosts[modalHosts.length - 1];
|
|
153
|
+
if (modal) {
|
|
154
|
+
popRoute(modal.route.stack);
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
if (canGoBack("root")) {
|
|
158
|
+
popRoute("root");
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
for (const name of [...swapTabOrder].reverse()) if (canGoBack(name)) {
|
|
162
|
+
popRoute(name);
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
for (const [name] of [...stackEntries()].reverse()) {
|
|
166
|
+
if (name === "root") continue;
|
|
167
|
+
if (canGoBack(name)) {
|
|
168
|
+
popRoute(name);
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
/** Install the Android activityBackPressed listener once. Called from
|
|
175
|
+
* registerScreens and from stack registration, so any app shape that
|
|
176
|
+
* can navigate (screens or stacks registered) is covered without a
|
|
177
|
+
* module-import-time read of Application.android. The subscription is
|
|
178
|
+
* singletoned on the Application object: under vite HMR this module's
|
|
179
|
+
* state resets but the listener must not duplicate — the press handler
|
|
180
|
+
* delegates through a slot so a reloaded module graph swaps in its fresh
|
|
181
|
+
* closures instead of double-popping. */
|
|
182
|
+
function ensureBackWired() {
|
|
183
|
+
if (backWired || !Application.android) return;
|
|
184
|
+
backWired = true;
|
|
185
|
+
const app = Application;
|
|
186
|
+
app.__octaneXplatBackPress = (e) => {
|
|
187
|
+
for (let i = backInterceptors.length - 1; i >= 0; i--) if (backInterceptors[i]()) {
|
|
188
|
+
e.cancel = true;
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (defaultBackPress()) e.cancel = true;
|
|
192
|
+
};
|
|
193
|
+
if (app.__octaneXplatBackWired) return;
|
|
194
|
+
app.__octaneXplatBackWired = true;
|
|
195
|
+
Application.android.on(Application.AndroidApplication.activityBackPressedEvent, (e) => {
|
|
196
|
+
app.__octaneXplatBackPress?.(e);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
86
199
|
function presentationFor(name) {
|
|
87
200
|
return routes.find((m) => m.name === name)?.presentation;
|
|
88
201
|
}
|
|
@@ -164,7 +277,7 @@ function commitRoute(r) {
|
|
|
164
277
|
else warnOnce("modal:" + r.name, `modal route '${r.name}' dropped — no loaded presenter Frame.`);
|
|
165
278
|
return;
|
|
166
279
|
}
|
|
167
|
-
if (
|
|
280
|
+
if (r.stack !== "root" && (Application.android || !resolveStack(r.stack))) {
|
|
168
281
|
const entries = swapTabRoutes.get(r.stack) ?? [];
|
|
169
282
|
entries.push({
|
|
170
283
|
...r,
|
|
@@ -185,7 +298,7 @@ function commitRoute(r) {
|
|
|
185
298
|
warnOnce("stack:" + r.stack, r.stack === "root" ? `pushRoute('${r.name}') dropped — no root Frame. Boot with a Frame as the app root (Application.run create() returning new Frame) or call registerStack('root', frame).` : `pushRoute('${r.name}') dropped — no stack '${r.stack}' is registered. Named stacks come from TabSpec.stack on <Tabs> or registerStack('${r.stack}', frame).`);
|
|
186
299
|
return;
|
|
187
300
|
}
|
|
188
|
-
|
|
301
|
+
rearmFrameLoaded(frame);
|
|
189
302
|
const props = {
|
|
190
303
|
...r.params,
|
|
191
304
|
...contextFor(r),
|
|
@@ -236,7 +349,13 @@ function pushModal(frame, r, C) {
|
|
|
236
349
|
modalHosts.splice(i, 1);
|
|
237
350
|
emit();
|
|
238
351
|
};
|
|
239
|
-
const presenter = frame
|
|
352
|
+
const presenter = modalPresenter(frame);
|
|
353
|
+
if (!presenter) {
|
|
354
|
+
warnOnce("modal-presenter:" + r.name, `modal route '${r.name}' dropped — no live presenter. The stack's currentPage is mid-navigation; retry once the transition settles.`);
|
|
355
|
+
entry.dismiss();
|
|
356
|
+
root.unmount?.();
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
240
359
|
try {
|
|
241
360
|
modalHosts.push(entry);
|
|
242
361
|
const params = {
|
|
@@ -276,7 +395,7 @@ function popRoute(stack = "root") {
|
|
|
276
395
|
modal.host.closeModal?.();
|
|
277
396
|
return;
|
|
278
397
|
}
|
|
279
|
-
if (
|
|
398
|
+
if (stack !== "root" && (Application.android || !resolveStack(stack))) {
|
|
280
399
|
const entries = swapTabRoutes.get(stack);
|
|
281
400
|
if (entries?.length) {
|
|
282
401
|
entries.pop();
|
|
@@ -294,11 +413,12 @@ function popRoute(stack = "root") {
|
|
|
294
413
|
warnOnce("pop:" + stack, `popRoute('${stack}') dropped — no such stack is registered.`);
|
|
295
414
|
return;
|
|
296
415
|
}
|
|
416
|
+
rearmFrameLoaded(frame);
|
|
297
417
|
frame.goBack();
|
|
298
418
|
}
|
|
299
419
|
/** Route stamped on a stack's current page, or null at its base page. */
|
|
300
420
|
function routeFor(stack) {
|
|
301
|
-
if (
|
|
421
|
+
if (stack !== "root" && (Application.android || !resolveStack(stack))) {
|
|
302
422
|
const entries = swapTabRoutes.get(stack);
|
|
303
423
|
if (entries?.length) return entries[entries.length - 1];
|
|
304
424
|
}
|
|
@@ -325,7 +445,7 @@ function currentRoute() {
|
|
|
325
445
|
}
|
|
326
446
|
/** Named stacks containing routes, including Android's swap-pane stacks. */
|
|
327
447
|
function routeStacks() {
|
|
328
|
-
return
|
|
448
|
+
return [.../* @__PURE__ */ new Set([...swapTabOrder, ...[...stackEntries()].map(([name]) => name)])];
|
|
329
449
|
}
|
|
330
450
|
/** The modal route currently open, if any — parity with the web leaf. */
|
|
331
451
|
function currentModalRoute() {
|
|
@@ -359,8 +479,8 @@ function useRoute(stack) {
|
|
|
359
479
|
* entry) that can be popped. The modal root is also a back affordance. */
|
|
360
480
|
function canGoBack(stack = "root") {
|
|
361
481
|
if (modalHosts[modalHosts.length - 1]?.route.stack === stack) return true;
|
|
362
|
-
if (
|
|
363
|
-
return !!resolveStack(stack)?.
|
|
482
|
+
if (stack !== "root" && (Application.android || !resolveStack(stack))) return !!swapTabRoutes.get(stack)?.length;
|
|
483
|
+
return !!resolveStack(stack)?.backStack?.length;
|
|
364
484
|
}
|
|
365
485
|
function useCanGoBack(stack = "root") {
|
|
366
486
|
return useSyncExternalStore$1((cb) => {
|
|
@@ -380,4 +500,4 @@ var _h$0 = /* @__PURE__ */ Symbol(_hs$);
|
|
|
380
500
|
var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
|
|
381
501
|
var _h$2 = /* @__PURE__ */ Symbol(_hs$ + 2);
|
|
382
502
|
//#endregion
|
|
383
|
-
export { canGoBack, currentModalRoute, currentRoute, hrefFor, layoutsForRoute, popRoute, pushDeepLink, pushRoute, redirect, registerRoutes, registerScreens, routeFor, routeStacks, screenFor, useCanGoBack, useModalRoute, useRoute };
|
|
503
|
+
export { addBackInterceptor, addRoutes, canGoBack, currentModalRoute, currentRoute, hrefFor, layoutsForRoute, popRoute, pushDeepLink, pushRoute, redirect, registerRoutes, registerScreens, routeFor, routeStacks, screenFor, useCanGoBack, useModalRoute, useRoute };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { hookSlots, useEffect, useState } from "@nativescript-community/octane";
|
|
2
|
+
import { Application, Screen } from "@nativescript/core";
|
|
3
|
+
//#region src/safeAreaInsets.tsrx
|
|
4
|
+
var _hs$ = /* @__PURE__ */ hookSlots(2);
|
|
5
|
+
var _h$0 = /* @__PURE__ */ Symbol(_hs$);
|
|
6
|
+
var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
|
|
7
|
+
function androidActivity() {
|
|
8
|
+
return Application.android?.foregroundActivity ?? Application.android?.startActivity;
|
|
9
|
+
}
|
|
10
|
+
function readAndroidInsets() {
|
|
11
|
+
const insets = (androidActivity()?.getWindow?.()?.getDecorView?.())?.getRootWindowInsets?.();
|
|
12
|
+
if (!insets) return {
|
|
13
|
+
top: 0,
|
|
14
|
+
right: 0,
|
|
15
|
+
bottom: 0,
|
|
16
|
+
left: 0
|
|
17
|
+
};
|
|
18
|
+
const scale = Screen.mainScreen.scale || 1;
|
|
19
|
+
if (android.os.Build.VERSION.SDK_INT >= 30) {
|
|
20
|
+
const systemBars = android.view.WindowInsets.Type.systemBars() | android.view.WindowInsets.Type.displayCutout();
|
|
21
|
+
const i = insets.getInsets(systemBars);
|
|
22
|
+
return {
|
|
23
|
+
top: i.top / scale,
|
|
24
|
+
right: i.right / scale,
|
|
25
|
+
bottom: i.bottom / scale,
|
|
26
|
+
left: i.left / scale
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
top: insets.getSystemWindowInsetTop() / scale,
|
|
31
|
+
right: insets.getSystemWindowInsetRight() / scale,
|
|
32
|
+
bottom: insets.getSystemWindowInsetBottom() / scale,
|
|
33
|
+
left: insets.getSystemWindowInsetLeft() / scale
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function measure() {
|
|
37
|
+
const insets = (Application.ios?.rootController?.view)?.safeAreaInsets;
|
|
38
|
+
if (insets) return {
|
|
39
|
+
top: insets.top,
|
|
40
|
+
right: insets.right,
|
|
41
|
+
bottom: insets.bottom,
|
|
42
|
+
left: insets.left
|
|
43
|
+
};
|
|
44
|
+
if (Application.android) return readAndroidInsets();
|
|
45
|
+
return {
|
|
46
|
+
top: 0,
|
|
47
|
+
right: 0,
|
|
48
|
+
bottom: 0,
|
|
49
|
+
left: 0
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function useSafeAreaInsets() {
|
|
53
|
+
const [insets, setInsets] = useState(measure, _h$0);
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
const update = () => setInsets(measure());
|
|
56
|
+
Application.on(Application.orientationChangedEvent, update);
|
|
57
|
+
Application.on(Application.resumeEvent, update);
|
|
58
|
+
update();
|
|
59
|
+
return () => {
|
|
60
|
+
Application.off(Application.orientationChangedEvent, update);
|
|
61
|
+
Application.off(Application.resumeEvent, update);
|
|
62
|
+
};
|
|
63
|
+
}, [], _h$1);
|
|
64
|
+
return insets;
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
export { useSafeAreaInsets };
|