@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.
Files changed (773) hide show
  1. package/README.md +14 -4
  2. package/dist/native/{Absolute.native.tsrx.js → Absolute.tsrx.js} +2 -2
  3. package/dist/native/{Accordion.native.tsrx.js → Accordion.tsrx.js} +3 -3
  4. package/dist/native/{ActivityIndicator.native.tsrx.js → ActivityIndicator.tsrx.js} +2 -2
  5. package/dist/native/{Alert.native.tsrx.js → Alert.tsrx.js} +3 -3
  6. package/dist/native/{Avatar.native.tsrx.js → Avatar.tsrx.js} +3 -3
  7. package/dist/native/{AvatarGroup.native.tsrx.js → AvatarGroup.tsrx.js} +3 -3
  8. package/dist/native/{Badge.native.tsrx.js → Badge.tsrx.js} +2 -2
  9. package/dist/native/{Banner.native.tsrx.js → Banner.tsrx.js} +3 -3
  10. package/dist/native/{Breadcrumb.native.tsrx.js → Breadcrumb.tsrx.js} +2 -2
  11. package/dist/native/{Button.native.tsrx.js → Button.tsrx.js} +3 -3
  12. package/dist/native/{Card.native.tsrx.js → Card.tsrx.js} +2 -2
  13. package/dist/native/{Checkbox.native.tsrx.js → Checkbox.tsrx.js} +2 -2
  14. package/dist/native/{CheckboxGroup.native.tsrx.js → CheckboxGroup.tsrx.js} +3 -3
  15. package/dist/native/{Chip.native.tsrx.js → Chip.tsrx.js} +2 -2
  16. package/dist/native/{Collapsible.native.tsrx.js → Collapsible.tsrx.js} +3 -3
  17. package/dist/native/{CommandPalette.native.tsrx.js → CommandPalette.tsrx.js} +4 -4
  18. package/dist/native/{ContextMenu.native.tsrx.js → ContextMenu.tsrx.js} +4 -4
  19. package/dist/native/{Drawer.native.tsrx.js → Drawer.tsrx.js} +2 -2
  20. package/dist/native/{DropdownMenu.native.tsrx.js → DropdownMenu.tsrx.js} +5 -5
  21. package/dist/native/{Empty.native.tsrx.js → Empty.tsrx.js} +3 -3
  22. package/dist/native/{FieldGroup.native.tsrx.js → FieldGroup.tsrx.js} +2 -2
  23. package/dist/native/{FormField.native.tsrx.js → FormField.tsrx.js} +2 -2
  24. package/dist/native/{Grid.native.tsrx.js → Grid.tsrx.js} +2 -2
  25. package/dist/native/{Heading.native.tsrx.js → Heading.tsrx.js} +3 -3
  26. package/dist/native/Hoverable.tsrx.js +139 -0
  27. package/dist/native/{Icon.native.tsrx.js → Icon.tsrx.js} +3 -3
  28. package/dist/native/{Image.native.tsrx.js → Image.tsrx.js} +4 -4
  29. package/dist/native/{InputNumber.native.tsrx.js → InputNumber.tsrx.js} +4 -4
  30. package/dist/native/{InputRating.native.tsrx.js → InputRating.tsrx.js} +3 -3
  31. package/dist/native/{InputTags.native.tsrx.js → InputTags.tsrx.js} +4 -4
  32. package/dist/native/{Kbd.native.tsrx.js → Kbd.tsrx.js} +2 -2
  33. package/dist/native/{KeyboardAvoiding.native.tsrx.js → KeyboardAvoiding.mobile.tsrx.js} +5 -3
  34. package/dist/native/{Link.native.tsrx.js → Link.tsrx.js} +2 -2
  35. package/dist/native/ListItem.tsrx.js +178 -0
  36. package/dist/native/Meter.tsrx.js +70 -0
  37. package/dist/native/{NavLink.native.tsrx.js → NavLink.tsrx.js} +3 -3
  38. package/dist/native/{NavigationMenu.native.tsrx.js → NavigationMenu.tsrx.js} +3 -3
  39. package/dist/native/{Overlay.native.tsrx.js → Overlay.tsrx.js} +2 -2
  40. package/dist/native/{Pagination.native.tsrx.js → Pagination.tsrx.js} +2 -2
  41. package/dist/native/{PinInput.native.tsrx.js → PinInput.tsrx.js} +3 -3
  42. package/dist/native/{Popover.native.tsrx.js → Popover.tsrx.js} +4 -4
  43. package/dist/native/{Pressable.native.tsrx.js → Pressable.tsrx.js} +4 -4
  44. package/dist/native/{ProgressGroup.native.tsrx.js → ProgressGroup.tsrx.js} +3 -3
  45. package/dist/native/{RadioGroup.native.tsrx.js → RadioGroup.tsrx.js} +2 -2
  46. package/dist/native/{RichText.native.tsrx.js → RichText.tsrx.js} +3 -3
  47. package/dist/native/{RouteHost.native.tsrx.js → RouteHost.mobile.tsrx.js} +13 -2
  48. package/dist/native/{Row.native.tsrx.js → Row.tsrx.js} +4 -4
  49. package/dist/native/{SafeArea.native.tsrx.js → SafeArea.tsrx.js} +9 -3
  50. package/dist/native/{Screen.native.tsrx.js → Screen.tsrx.js} +13 -5
  51. package/dist/native/{ScrollBox.native.tsrx.js → ScrollBox.tsrx.js} +2 -2
  52. package/dist/native/{ScrollView.native.tsrx.js → ScrollView.tsrx.js} +5 -5
  53. package/dist/native/{SearchInput.native.tsrx.js → SearchInput.tsrx.js} +4 -4
  54. package/dist/native/{SegmentedControl.native.tsrx.js → SegmentedControl.tsrx.js} +2 -2
  55. package/dist/native/{Select.native.tsrx.js → Select.tsrx.js} +4 -4
  56. package/dist/native/{Separator.native.tsrx.js → Separator.tsrx.js} +2 -2
  57. package/dist/native/{Sheet.native.tsrx.js → Sheet.tsrx.js} +11 -3
  58. package/dist/native/{Skeleton.native.tsrx.js → Skeleton.tsrx.js} +2 -2
  59. package/dist/native/{Slider.native.tsrx.js → Slider.tsrx.js} +5 -5
  60. package/dist/native/{Spacer.native.tsrx.js → Spacer.tsrx.js} +2 -2
  61. package/dist/native/{Stack.native.tsrx.js → Stack.tsrx.js} +2 -2
  62. package/dist/native/{Stepper.native.tsrx.js → Stepper.tsrx.js} +2 -2
  63. package/dist/native/{Switch.native.tsrx.js → Switch.tsrx.js} +2 -2
  64. package/dist/native/{Table.native.tsrx.js → Table.tsrx.js} +2 -2
  65. package/dist/native/{Tabs.native.tsrx.js → Tabs.tsrx.js} +8 -18
  66. package/dist/native/{Text.native.tsrx.js → Text.tsrx.js} +3 -3
  67. package/dist/native/{TextArea.native.tsrx.js → TextArea.tsrx.js} +3 -3
  68. package/dist/native/{TextInput.native.tsrx.js → TextInput.tsrx.js} +3 -3
  69. package/dist/native/{Timeline.native.tsrx.js → Timeline.tsrx.js} +3 -3
  70. package/dist/native/Tooltip.tsrx.js +131 -0
  71. package/dist/native/{Tree.native.tsrx.js → Tree.tsrx.js} +2 -2
  72. package/dist/native/{User.native.tsrx.js → User.tsrx.js} +3 -3
  73. package/dist/native/{View.native.tsrx.js → View.tsrx.js} +4 -4
  74. package/dist/native/VirtualList.tsrx.js +466 -0
  75. package/dist/native/{WebView.native.tsrx.js → WebView.tsrx.js} +31 -6
  76. package/dist/native/{aliases.native.tsrx.js → aliases.tsrx.js} +2 -2
  77. package/dist/native/android/BottomNavigationView.android.tsrx.js +72 -23
  78. package/dist/native/android/CircularProgressIndicator.android.tsrx.js +1 -1
  79. package/dist/native/android/DrawerLayout.android.tsrx.js +2 -1
  80. package/dist/native/android/MaterialDialog.android.tsrx.js +1 -1
  81. package/dist/native/android/MaterialSwitch.android.tsrx.js +1 -1
  82. package/dist/native/android/RecyclerView.android.tsrx.js +15 -3
  83. package/dist/native/android/SeekBar.android.tsrx.js +1 -1
  84. package/dist/native/android/icon.android.js +7 -0
  85. package/dist/native/android/index.js +3 -1
  86. package/dist/native/android/openModal.android.js +1 -1
  87. package/dist/native/{anim.native.tsrx.js → anim.tsrx.js} +1 -1
  88. package/dist/native/apply-native-modifiers.native.js +9 -0
  89. package/dist/native/{escape-props.native.js → escape-props.js} +3 -1
  90. package/dist/native/index.shared.js +92 -0
  91. package/dist/native/ios/LiquidGlass.ios.tsrx.js +2 -2
  92. package/dist/native/ios/LiquidGlassContainer.ios.tsrx.js +2 -2
  93. package/dist/native/ios/SideDrawer.ios.tsrx.js +2 -1
  94. package/dist/native/ios/UIActivityIndicatorView.ios.tsrx.js +1 -1
  95. package/dist/native/ios/UIModal.ios.tsrx.js +1 -1
  96. package/dist/native/ios/UISlider.ios.tsrx.js +1 -1
  97. package/dist/native/ios/UISwitch.ios.tsrx.js +1 -1
  98. package/dist/native/ios/UITabBar.ios.tsrx.js +33 -12
  99. package/dist/native/ios/UITableView.ios.tsrx.js +15 -3
  100. package/dist/native/ios/icon.ios.js +7 -0
  101. package/dist/native/ios/index.js +3 -1
  102. package/dist/native/ios/openModal.ios.js +1 -1
  103. package/dist/native/keyboard-inset.mobile.js +66 -0
  104. package/dist/native/{layout-child.native.js → layout-child.js} +1 -1
  105. package/dist/native/{modal-presenter.native.js → modal-presenter.mobile.js} +1 -1
  106. package/dist/native/modifier-factories.js +24 -0
  107. package/dist/native/native/index.js +3 -3
  108. package/dist/native/octane-client-build.json +1 -1
  109. package/dist/native/{pan.native.tsrx.js → pan.tsrx.js} +1 -1
  110. package/dist/native/{platform.native.js → platform.js} +3 -3
  111. package/dist/native/{platformProps.native.js → platformProps.js} +3 -1
  112. package/dist/native/{refresh.native.js → refresh.js} +1 -1
  113. package/dist/native/{root-layout.native.js → root-layout.mobile.js} +2 -2
  114. package/dist/native/route-host.mobile.js +2 -0
  115. package/dist/native/route-table.js +105 -4
  116. package/dist/native/{route.native.js → route.js} +49 -13
  117. package/dist/native/safeAreaInsets.tsrx.js +67 -0
  118. package/dist/native/shared.js +93 -0
  119. package/dist/native/{sheet-detents.native.js → sheet-detents.js} +1 -1
  120. package/dist/native/{sheet-service.native.js → sheet-service.js} +9 -3
  121. package/dist/native/{stacks.native.js → stacks.js} +1 -1
  122. package/dist/native/{styled.native.tsrx.js → styled.tsrx.js} +1 -1
  123. package/dist/native/{svg.native.js → svg.mobile.js} +2 -2
  124. package/dist/native/tap-to-blur.mobile.js +94 -0
  125. package/dist/native/{text-write.native.js → text-write.js} +1 -1
  126. package/dist/native/theme/{colorScheme.native.js → colorScheme.js} +2 -2
  127. package/dist/native/theme/{status-bar-scheme.native.js → status-bar-scheme.mobile.js} +1 -1
  128. package/dist/native/theme/theme-scheme.js +2 -2
  129. package/dist/native/{toast-anchor.native.tsrx.js → toast-anchor.tsrx.js} +3 -3
  130. package/dist/native/{translate.native.js → translate.js} +1 -1
  131. package/dist/native/ui.js +92 -90
  132. package/dist/native/{use-back.native.tsrx.js → use-back.tsrx.js} +2 -2
  133. package/dist/native/{use-store.native.tsrx.js → use-store.tsrx.js} +1 -1
  134. package/dist/native/{useMeasure.native.tsrx.js → useMeasure.tsrx.js} +1 -1
  135. package/dist/native/vendor/ui-svg/index.android.js +137 -0
  136. package/dist/native/vendor/ui-svg/index.common.js +10 -0
  137. package/dist/native/vendor/ui-svg/index.ios.js +111 -0
  138. package/dist/native/virtual-list-layout.js +146 -0
  139. package/dist/native/{windows.native.js → windows.js} +1 -1
  140. package/dist/web/{web/Hoverable.web.tsrx.js → Hoverable.web.tsrx.js} +7 -6
  141. package/dist/web/ListItem.web.tsrx.js +139 -0
  142. package/dist/web/SafeArea.web.tsrx.js +9 -3
  143. package/dist/web/Tabs.web.tsrx.js +88 -44
  144. package/dist/web/{web/Tooltip.web.tsrx.js → Tooltip.web.tsrx.js} +7 -6
  145. package/dist/web/VirtualList.web.tsrx.js +622 -0
  146. package/dist/web/WebView.web.tsrx.js +42 -5
  147. package/dist/web/octane-client-build.json +1 -1
  148. package/dist/web/platform.web.js +1 -1
  149. package/dist/web/route-table.js +105 -4
  150. package/dist/web/route.web.js +36 -11
  151. package/dist/web/ui.js +9 -8
  152. package/dist/web/virtual-list-layout.js +146 -0
  153. package/dist/web/web/index.js +2 -2
  154. package/package.json +51 -23
  155. package/platforms/android/include.gradle +8 -0
  156. package/platforms/android/native-api-usage.json +8 -0
  157. package/platforms/ios/Podfile +2 -0
  158. package/src/Absolute.tsrx +22 -0
  159. package/src/Absolute.web.tsrx +22 -0
  160. package/src/Accordion.macos.tsrx +50 -0
  161. package/src/Accordion.tsrx +50 -0
  162. package/src/Accordion.web.tsrx +43 -0
  163. package/src/ActivityIndicator.tsrx +29 -0
  164. package/src/ActivityIndicator.web.tsrx +14 -0
  165. package/src/Alert.macos.tsrx +42 -0
  166. package/src/Alert.tsrx +24 -0
  167. package/src/Alert.web.tsrx +23 -0
  168. package/src/Avatar.macos.tsrx +25 -0
  169. package/src/Avatar.tsrx +25 -0
  170. package/src/Avatar.web.tsrx +24 -0
  171. package/src/AvatarGroup.macos.tsrx +32 -0
  172. package/src/AvatarGroup.tsrx +32 -0
  173. package/src/AvatarGroup.web.tsrx +29 -0
  174. package/src/Badge.macos.tsrx +12 -0
  175. package/src/Badge.tsrx +12 -0
  176. package/src/Badge.web.tsrx +10 -0
  177. package/src/Banner.macos.tsrx +20 -0
  178. package/src/Banner.tsrx +20 -0
  179. package/src/Banner.web.tsrx +20 -0
  180. package/src/Breadcrumb.macos.tsrx +27 -0
  181. package/src/Breadcrumb.tsrx +27 -0
  182. package/src/Breadcrumb.web.tsrx +25 -0
  183. package/src/Button.tsrx +23 -0
  184. package/src/Button.web.tsrx +21 -0
  185. package/src/CameraView.macos.tsrx +6 -0
  186. package/src/Card.macos.tsrx +13 -0
  187. package/src/Card.tsrx +13 -0
  188. package/src/Card.web.tsrx +11 -0
  189. package/src/Checkbox.tsrx +23 -0
  190. package/src/Checkbox.web.tsrx +34 -0
  191. package/src/CheckboxGroup.macos.tsrx +39 -0
  192. package/src/CheckboxGroup.tsrx +39 -0
  193. package/src/CheckboxGroup.web.tsrx +38 -0
  194. package/src/Chip.macos.tsrx +25 -0
  195. package/src/Chip.tsrx +25 -0
  196. package/src/Chip.web.tsrx +25 -0
  197. package/src/Collapsible.macos.tsrx +39 -0
  198. package/src/Collapsible.tsrx +39 -0
  199. package/src/Collapsible.web.tsrx +33 -0
  200. package/src/CommandPalette.macos.tsrx +58 -0
  201. package/src/CommandPalette.tsrx +58 -0
  202. package/src/CommandPalette.web.tsrx +59 -0
  203. package/src/ContextMenu.macos.tsrx +59 -0
  204. package/src/ContextMenu.tsrx +59 -0
  205. package/src/ContextMenu.web.tsrx +69 -0
  206. package/src/Drawer.macos.tsrx +28 -0
  207. package/src/Drawer.tsrx +25 -0
  208. package/src/Drawer.web.tsrx +31 -0
  209. package/src/DropdownMenu.macos.tsrx +63 -0
  210. package/src/DropdownMenu.tsrx +63 -0
  211. package/src/DropdownMenu.web.tsrx +78 -0
  212. package/src/Empty.macos.tsrx +15 -0
  213. package/src/Empty.tsrx +15 -0
  214. package/src/Empty.web.tsrx +13 -0
  215. package/src/FieldGroup.macos.tsrx +17 -0
  216. package/src/FieldGroup.tsrx +17 -0
  217. package/src/FieldGroup.web.tsrx +17 -0
  218. package/src/FormField.macos.tsrx +25 -0
  219. package/src/FormField.tsrx +25 -0
  220. package/src/FormField.web.tsrx +24 -0
  221. package/src/Grid.tsrx +32 -0
  222. package/src/Grid.web.tsrx +43 -0
  223. package/src/Heading.macos.tsrx +8 -0
  224. package/src/Heading.tsrx +17 -0
  225. package/src/Heading.web.tsrx +15 -0
  226. package/src/Hoverable.mobile.tsrx +21 -0
  227. package/src/Hoverable.tsrx +113 -0
  228. package/src/Hoverable.web.tsrx +98 -0
  229. package/src/Icon.macos.tsrx +18 -0
  230. package/src/Icon.tsrx +65 -0
  231. package/src/Icon.web.tsrx +75 -0
  232. package/src/Image.macos.tsrx +12 -0
  233. package/src/Image.tsrx +51 -0
  234. package/src/Image.web.tsrx +14 -0
  235. package/src/InputNumber.macos.tsrx +49 -0
  236. package/src/InputNumber.tsrx +49 -0
  237. package/src/InputNumber.web.tsrx +47 -0
  238. package/src/InputRating.macos.tsrx +42 -0
  239. package/src/InputRating.tsrx +39 -0
  240. package/src/InputRating.web.tsrx +52 -0
  241. package/src/InputTags.macos.tsrx +49 -0
  242. package/src/InputTags.tsrx +49 -0
  243. package/src/InputTags.web.tsrx +49 -0
  244. package/src/Kbd.macos.tsrx +11 -0
  245. package/src/Kbd.tsrx +11 -0
  246. package/src/Kbd.web.tsrx +9 -0
  247. package/src/KeyboardAvoiding.macos.tsrx +8 -0
  248. package/src/KeyboardAvoiding.mobile.tsrx +63 -0
  249. package/src/Link.macos.tsrx +15 -0
  250. package/src/Link.tsrx +10 -0
  251. package/src/Link.web.tsrx +12 -0
  252. package/src/ListItem.macos.tsrx +52 -0
  253. package/src/ListItem.tsrx +52 -0
  254. package/src/ListItem.web.tsrx +50 -0
  255. package/src/Meter.macos.tsrx +8 -0
  256. package/src/Meter.tsrx +45 -0
  257. package/src/Meter.web.tsrx +32 -0
  258. package/src/NavLink.macos.tsrx +24 -0
  259. package/src/NavLink.tsrx +22 -0
  260. package/src/NavLink.web.tsrx +23 -0
  261. package/src/NavigationMenu.macos.tsrx +31 -0
  262. package/src/NavigationMenu.tsrx +28 -0
  263. package/src/NavigationMenu.web.tsrx +31 -0
  264. package/src/Overlay.macos.tsrx +11 -0
  265. package/src/Overlay.tsrx +84 -0
  266. package/src/Overlay.web.tsrx +23 -0
  267. package/src/Pagination.macos.tsrx +54 -0
  268. package/src/Pagination.tsrx +47 -0
  269. package/src/Pagination.web.tsrx +50 -0
  270. package/src/PinInput.macos.tsrx +46 -0
  271. package/src/PinInput.tsrx +46 -0
  272. package/src/PinInput.web.tsrx +45 -0
  273. package/src/Popover.macos.tsrx +11 -0
  274. package/src/Popover.tsrx +157 -0
  275. package/src/Popover.web.tsrx +109 -0
  276. package/src/Pressable.macos.tsrx +19 -0
  277. package/src/Pressable.tsrx +37 -0
  278. package/src/Pressable.web.tsrx +45 -0
  279. package/src/ProgressGroup.macos.tsrx +17 -0
  280. package/src/ProgressGroup.tsrx +17 -0
  281. package/src/ProgressGroup.web.tsrx +15 -0
  282. package/src/RadioGroup.macos.tsrx +50 -0
  283. package/src/RadioGroup.tsrx +34 -0
  284. package/src/RadioGroup.web.tsrx +43 -0
  285. package/src/RichText.tsrx +40 -0
  286. package/src/RichText.web.tsrx +24 -0
  287. package/src/RouteHost.macos.tsrx +18 -0
  288. package/src/RouteHost.mobile.tsrx +44 -0
  289. package/src/Row.macos.tsrx +26 -0
  290. package/src/Row.tsrx +27 -0
  291. package/src/Row.web.tsrx +27 -0
  292. package/src/SafeArea.macos.tsrx +8 -0
  293. package/src/SafeArea.tsrx +20 -0
  294. package/src/SafeArea.web.tsrx +24 -0
  295. package/src/Screen.macos.tsrx +14 -0
  296. package/src/Screen.tsrx +31 -0
  297. package/src/Screen.web.tsrx +7 -0
  298. package/src/ScrollBox.tsrx +8 -0
  299. package/src/ScrollBox.web.tsrx +7 -0
  300. package/src/ScrollView.macos.tsrx +19 -0
  301. package/src/ScrollView.tsrx +117 -0
  302. package/src/ScrollView.web.tsrx +109 -0
  303. package/src/SearchInput.tsrx +60 -0
  304. package/src/SearchInput.web.test.tsrx +58 -0
  305. package/src/SearchInput.web.tsrx +55 -0
  306. package/src/SegmentedControl.tsrx +43 -0
  307. package/src/SegmentedControl.web.test.tsrx +46 -0
  308. package/src/SegmentedControl.web.tsrx +51 -0
  309. package/src/Select.macos.tsrx +104 -0
  310. package/src/Select.tsrx +104 -0
  311. package/src/Select.web.tsrx +124 -0
  312. package/src/Separator.macos.tsrx +17 -0
  313. package/src/Separator.tsrx +17 -0
  314. package/src/Separator.web.tsrx +17 -0
  315. package/src/Sheet.macos.tsrx +15 -0
  316. package/src/Sheet.tsrx +122 -0
  317. package/src/Sheet.web.tsrx +56 -0
  318. package/src/Skeleton.macos.tsrx +15 -0
  319. package/src/Skeleton.tsrx +15 -0
  320. package/src/Skeleton.web.tsrx +15 -0
  321. package/src/Slider.tsrx +71 -0
  322. package/src/Slider.web.tsrx +60 -0
  323. package/src/Spacer.tsrx +8 -0
  324. package/src/Spacer.web.tsrx +6 -0
  325. package/src/Stack.tsrx +24 -0
  326. package/src/Stack.web.tsrx +22 -0
  327. package/src/Stepper.macos.tsrx +52 -0
  328. package/src/Stepper.tsrx +31 -0
  329. package/src/Stepper.web.tsrx +37 -0
  330. package/src/Switch.tsrx +21 -0
  331. package/src/Switch.web.tsrx +28 -0
  332. package/src/Table.macos.tsrx +37 -0
  333. package/src/Table.tsrx +37 -0
  334. package/src/Table.web.tsrx +37 -0
  335. package/src/Tabs.macos.tsrx +60 -0
  336. package/src/Tabs.tsrx +55 -0
  337. package/src/Tabs.web.tsrx +98 -0
  338. package/src/Text.macos.tsrx +18 -0
  339. package/src/Text.tsrx +62 -0
  340. package/src/Text.web.tsrx +31 -0
  341. package/src/TextArea.tsrx +65 -0
  342. package/src/TextArea.web.tsrx +61 -0
  343. package/src/TextInput.tsrx +39 -0
  344. package/src/TextInput.web.tsrx +28 -0
  345. package/src/Timeline.macos.tsrx +27 -0
  346. package/src/Timeline.tsrx +24 -0
  347. package/src/Timeline.web.tsrx +22 -0
  348. package/src/Tooltip.mobile.tsrx +20 -0
  349. package/src/Tooltip.tsrx +102 -0
  350. package/src/Tooltip.web.tsrx +156 -0
  351. package/src/Tree.macos.tsrx +45 -0
  352. package/src/Tree.tsrx +45 -0
  353. package/src/Tree.web.tsrx +52 -0
  354. package/src/User.macos.tsrx +24 -0
  355. package/src/User.tsrx +24 -0
  356. package/src/User.web.tsrx +24 -0
  357. package/src/View.macos.tsrx +29 -0
  358. package/src/View.tsrx +32 -0
  359. package/src/View.web.tsrx +33 -0
  360. package/src/VirtualList.macos.tsrx +335 -0
  361. package/src/VirtualList.tsrx +358 -0
  362. package/src/VirtualList.web.tsrx +313 -0
  363. package/src/WebView.macos.tsrx +6 -0
  364. package/src/WebView.tsrx +89 -0
  365. package/src/WebView.web.tsrx +92 -0
  366. package/src/aliases.macos.tsrx +18 -0
  367. package/src/aliases.tsrx +18 -0
  368. package/src/aliases.web.tsrx +17 -0
  369. package/src/android/BottomNavigationView.android.tsrx +170 -0
  370. package/src/android/CircularProgressIndicator.android.tsrx +19 -0
  371. package/src/android/DrawerLayout.android.tsrx +48 -0
  372. package/src/android/MaterialDialog.android.tsrx +62 -0
  373. package/src/android/MaterialSwitch.android.tsrx +18 -0
  374. package/src/android/RecyclerView.android.tsrx +173 -0
  375. package/src/android/SeekBar.android.tsrx +20 -0
  376. package/src/android/icon.android.ts +8 -0
  377. package/src/android/index.ts +37 -0
  378. package/src/android/openModal.android.ts +55 -0
  379. package/src/anim.macos.tsrx +20 -0
  380. package/src/anim.tsrx +65 -0
  381. package/src/anim.web.tsrx +55 -0
  382. package/src/apply-native-modifiers.native.ts +13 -0
  383. package/src/camera-permission.web.ts +11 -0
  384. package/src/child-array.ts +16 -0
  385. package/src/colorScheme.macos.ts +27 -0
  386. package/src/controls.macos.tsrx +171 -0
  387. package/src/cx.ts +8 -0
  388. package/src/escape-props.macos.ts +11 -0
  389. package/src/escape-props.ts +70 -0
  390. package/src/escape-props.web.ts +25 -0
  391. package/src/hosted-unsupported.macos.tsrx +9 -0
  392. package/src/icons.ts +60 -0
  393. package/src/index.linux.ts +10 -0
  394. package/src/index.macos.ts +106 -0
  395. package/src/index.mobile.ts +6 -0
  396. package/src/index.shared.ts +269 -0
  397. package/src/index.ts +1 -0
  398. package/src/index.web.ts +261 -0
  399. package/src/ios/LiquidGlass.ios.tsrx +41 -0
  400. package/src/ios/LiquidGlassContainer.ios.tsrx +34 -0
  401. package/src/ios/SideDrawer.ios.tsrx +49 -0
  402. package/src/ios/UIActivityIndicatorView.ios.tsrx +18 -0
  403. package/src/ios/UIModal.ios.tsrx +68 -0
  404. package/src/ios/UISlider.ios.tsrx +20 -0
  405. package/src/ios/UISwitch.ios.tsrx +18 -0
  406. package/src/ios/UITabBar.ios.tsrx +172 -0
  407. package/src/ios/UITableView.ios.tsrx +186 -0
  408. package/src/ios/icon.ios.ts +8 -0
  409. package/src/ios/index.ts +42 -0
  410. package/src/ios/openModal.ios.ts +55 -0
  411. package/src/keyboard-inset.mobile.ts +89 -0
  412. package/src/layout-child.ts +57 -0
  413. package/src/layout-child.web.ts +108 -0
  414. package/src/layout-shells.macos.tsrx +10 -0
  415. package/src/layout.macos.tsrx +41 -0
  416. package/src/macos-extras.macos.tsrx +40 -0
  417. package/src/meter-math.ts +6 -0
  418. package/src/modal-presenter.mobile.ts +24 -0
  419. package/src/modifier-factories.ts +20 -0
  420. package/src/native/index.ts +6 -0
  421. package/src/pan.tsrx +64 -0
  422. package/src/pan.web.tsrx +38 -0
  423. package/src/platform.macos.ts +1 -0
  424. package/src/platform.ts +7 -0
  425. package/src/platform.web.ts +6 -0
  426. package/src/platformProps.ts +23 -0
  427. package/src/platformProps.web.ts +14 -0
  428. package/src/popover-position.ts +62 -0
  429. package/src/popover.mobile.test.ts +54 -0
  430. package/src/props.ts +1812 -0
  431. package/src/references.d.ts +2 -0
  432. package/src/refresh-metrics.ts +11 -0
  433. package/src/refresh.ts +271 -0
  434. package/src/refresh.web.test.ts +111 -0
  435. package/src/refresh.web.ts +205 -0
  436. package/src/root-layout.mobile.ts +89 -0
  437. package/src/route-host.mobile.ts +1 -0
  438. package/src/route-table.test.ts +345 -0
  439. package/src/route-table.ts +585 -0
  440. package/src/route.macos.ts +201 -0
  441. package/src/route.ts +703 -0
  442. package/src/route.web.ts +366 -0
  443. package/src/safeAreaInsets.macos.tsrx +7 -0
  444. package/src/safeAreaInsets.tsrx +60 -0
  445. package/src/safeAreaInsets.web.tsrx +38 -0
  446. package/src/sheet-detents.ts +142 -0
  447. package/src/sheet-detents.web.ts +147 -0
  448. package/src/sheet-service.macos.ts +60 -0
  449. package/src/sheet-service.ts +124 -0
  450. package/src/sheet-service.web.ts +64 -0
  451. package/src/sheet-snap.test.ts +46 -0
  452. package/src/sheet-snap.ts +66 -0
  453. package/src/stacks.macos.ts +13 -0
  454. package/src/stacks.ts +44 -0
  455. package/src/stacks.web.ts +9 -0
  456. package/src/store.mobile.test.ts +149 -0
  457. package/src/store.ts +39 -0
  458. package/src/store.web.test.tsrx +58 -0
  459. package/src/styled.macos.tsrx +23 -0
  460. package/src/styled.test.ts +40 -0
  461. package/src/styled.tsrx +36 -0
  462. package/src/styled.web.tsrx +23 -0
  463. package/src/surfaces.macos.tsrx +27 -0
  464. package/src/svg.mobile.ts +76 -0
  465. package/src/tap-to-blur.mobile.ts +108 -0
  466. package/src/text-controls.macos.tsrx +11 -0
  467. package/src/text-write.ts +28 -0
  468. package/src/text-write.web.ts +13 -0
  469. package/src/theme/colorScheme.linux.ts +52 -0
  470. package/src/theme/colorScheme.ts +26 -0
  471. package/src/theme/colorScheme.web.ts +20 -0
  472. package/src/theme/status-bar-scheme.mobile.ts +39 -0
  473. package/src/theme/theme-scheme.macos.ts +50 -0
  474. package/src/theme/theme-scheme.ts +66 -0
  475. package/src/theme/tokens.css +44 -22
  476. package/src/toast-anchor.macos.tsrx +3 -0
  477. package/src/toast-anchor.tsrx +122 -0
  478. package/src/toast-anchor.web.tsrx +92 -0
  479. package/src/toast.tsrx +90 -0
  480. package/src/toast.web.tsrx +50 -0
  481. package/src/transform.web.ts +52 -0
  482. package/src/translate.macos.ts +5 -0
  483. package/src/translate.ts +13 -0
  484. package/src/translate.web.ts +15 -0
  485. package/src/tsconfig.json +8 -0
  486. package/src/unsupported.macos.tsrx +5 -0
  487. package/src/use-back.tsrx +11 -0
  488. package/src/use-back.web.tsrx +12 -0
  489. package/src/use-store.tsrx +18 -0
  490. package/src/use-store.web.tsrx +18 -0
  491. package/src/useMeasure.macos.tsrx +23 -0
  492. package/src/useMeasure.tsrx +66 -0
  493. package/src/useMeasure.web.tsrx +39 -0
  494. package/src/useStore.macos.tsrx +6 -0
  495. package/src/vendor/ui-svg/LICENSE +201 -0
  496. package/src/vendor/ui-svg/index.android.ts +189 -0
  497. package/src/vendor/ui-svg/index.common.ts +19 -0
  498. package/src/vendor/ui-svg/index.ios.ts +147 -0
  499. package/src/vendor/ui-svg/index.ts +1 -0
  500. package/src/vendor/ui-svg/typings/SVGKit.d.ts +2862 -0
  501. package/src/vendor/ui-svg/typings/android.d.ts +1483 -0
  502. package/src/vendor/ui-svg/typings/ios.d.ts +1511 -0
  503. package/src/virtual-list-layout.test.ts +81 -0
  504. package/src/virtual-list-layout.ts +246 -0
  505. package/src/web/index.ts +11 -0
  506. package/src/windows.linux.ts +59 -0
  507. package/src/windows.macos.ts +10 -0
  508. package/src/windows.ts +7 -0
  509. package/src/windows.web.ts +6 -0
  510. package/types/generated/.tsrx-typegen-manifest.json +249 -0
  511. package/types/generated/Absolute.d.ts +3 -0
  512. package/types/generated/Absolute.web.d.ts +3 -0
  513. package/types/generated/Accordion.d.ts +5 -0
  514. package/types/generated/Accordion.web.d.ts +5 -0
  515. package/types/generated/ActivityIndicator.d.ts +7 -0
  516. package/types/generated/ActivityIndicator.web.d.ts +3 -0
  517. package/types/generated/Alert.d.ts +4 -0
  518. package/types/generated/Alert.web.d.ts +5 -0
  519. package/types/generated/Avatar.d.ts +6 -0
  520. package/types/generated/Avatar.web.d.ts +7 -0
  521. package/types/generated/AvatarGroup.d.ts +6 -0
  522. package/types/generated/AvatarGroup.web.d.ts +6 -0
  523. package/types/generated/Badge.d.ts +5 -0
  524. package/types/generated/Badge.web.d.ts +5 -0
  525. package/types/generated/Banner.d.ts +4 -0
  526. package/types/generated/Banner.web.d.ts +4 -0
  527. package/types/generated/Breadcrumb.d.ts +4 -0
  528. package/types/generated/Breadcrumb.web.d.ts +5 -0
  529. package/types/generated/Button.d.ts +6 -0
  530. package/types/generated/Button.web.d.ts +6 -0
  531. package/types/generated/Card.d.ts +4 -0
  532. package/types/generated/Card.web.d.ts +4 -0
  533. package/types/generated/Checkbox.d.ts +5 -0
  534. package/types/generated/Checkbox.web.d.ts +6 -0
  535. package/types/generated/CheckboxGroup.d.ts +3 -0
  536. package/types/generated/CheckboxGroup.web.d.ts +3 -0
  537. package/types/generated/Chip.d.ts +5 -0
  538. package/types/generated/Chip.web.d.ts +5 -0
  539. package/types/generated/Collapsible.d.ts +5 -0
  540. package/types/generated/Collapsible.web.d.ts +5 -0
  541. package/types/generated/CommandPalette.d.ts +4 -0
  542. package/types/generated/CommandPalette.web.d.ts +4 -0
  543. package/types/generated/ContextMenu.d.ts +5 -0
  544. package/types/generated/ContextMenu.web.d.ts +4 -0
  545. package/types/generated/Drawer.d.ts +7 -0
  546. package/types/generated/Drawer.web.d.ts +7 -0
  547. package/types/generated/DropdownMenu.d.ts +5 -0
  548. package/types/generated/DropdownMenu.web.d.ts +5 -0
  549. package/types/generated/Empty.d.ts +4 -0
  550. package/types/generated/Empty.web.d.ts +4 -0
  551. package/types/generated/FieldGroup.d.ts +4 -0
  552. package/types/generated/FieldGroup.web.d.ts +4 -0
  553. package/types/generated/FormField.d.ts +5 -0
  554. package/types/generated/FormField.web.d.ts +5 -0
  555. package/types/generated/Grid.d.ts +3 -0
  556. package/types/generated/Grid.web.d.ts +3 -0
  557. package/types/generated/Heading.d.ts +2 -0
  558. package/types/generated/Heading.web.d.ts +2 -0
  559. package/types/generated/Hoverable.d.ts +10 -0
  560. package/types/generated/Hoverable.web.d.ts +9 -0
  561. package/types/generated/Icon.d.ts +3 -0
  562. package/types/generated/Icon.web.d.ts +3 -0
  563. package/types/generated/Image.d.ts +7 -0
  564. package/types/generated/Image.web.d.ts +3 -0
  565. package/types/generated/InputNumber.d.ts +5 -0
  566. package/types/generated/InputNumber.web.d.ts +5 -0
  567. package/types/generated/InputRating.d.ts +4 -0
  568. package/types/generated/InputRating.web.d.ts +4 -0
  569. package/types/generated/InputTags.d.ts +4 -0
  570. package/types/generated/InputTags.web.d.ts +5 -0
  571. package/types/generated/Kbd.d.ts +4 -0
  572. package/types/generated/Kbd.web.d.ts +4 -0
  573. package/types/generated/KeyboardAvoiding.mobile.d.ts +2 -0
  574. package/types/generated/Link.d.ts +2 -0
  575. package/types/generated/Link.web.d.ts +3 -0
  576. package/types/generated/ListItem.d.ts +3 -0
  577. package/types/generated/ListItem.web.d.ts +3 -0
  578. package/types/generated/Meter.d.ts +3 -0
  579. package/types/generated/Meter.web.d.ts +3 -0
  580. package/types/generated/NavLink.d.ts +3 -0
  581. package/types/generated/NavLink.web.d.ts +3 -0
  582. package/types/generated/NavigationMenu.d.ts +4 -0
  583. package/types/generated/NavigationMenu.web.d.ts +5 -0
  584. package/types/generated/Overlay.d.ts +3 -0
  585. package/types/generated/Overlay.web.d.ts +3 -0
  586. package/types/generated/Pagination.d.ts +4 -0
  587. package/types/generated/Pagination.web.d.ts +5 -0
  588. package/types/generated/PinInput.d.ts +4 -0
  589. package/types/generated/PinInput.web.d.ts +4 -0
  590. package/types/generated/Popover.d.ts +6 -0
  591. package/types/generated/Popover.web.d.ts +3 -0
  592. package/types/generated/Pressable.d.ts +6 -0
  593. package/types/generated/Pressable.web.d.ts +2 -0
  594. package/types/generated/ProgressGroup.d.ts +3 -0
  595. package/types/generated/ProgressGroup.web.d.ts +4 -0
  596. package/types/generated/RadioGroup.d.ts +5 -0
  597. package/types/generated/RadioGroup.web.d.ts +5 -0
  598. package/types/generated/RichText.d.ts +7 -0
  599. package/types/generated/RichText.web.d.ts +3 -0
  600. package/types/generated/RouteHost.mobile.d.ts +14 -0
  601. package/types/generated/Row.d.ts +2 -0
  602. package/types/generated/Row.web.d.ts +2 -0
  603. package/types/generated/SafeArea.d.ts +2 -0
  604. package/types/generated/SafeArea.web.d.ts +3 -0
  605. package/types/generated/Screen.d.ts +3 -0
  606. package/types/generated/Screen.web.d.ts +3 -0
  607. package/types/generated/ScrollBox.d.ts +3 -0
  608. package/types/generated/ScrollBox.web.d.ts +3 -0
  609. package/types/generated/ScrollView.d.ts +7 -0
  610. package/types/generated/ScrollView.web.d.ts +6 -0
  611. package/types/generated/SearchInput.d.ts +7 -0
  612. package/types/generated/SearchInput.web.d.ts +6 -0
  613. package/types/generated/SegmentedControl.d.ts +7 -0
  614. package/types/generated/SegmentedControl.web.d.ts +6 -0
  615. package/types/generated/Select.d.ts +6 -0
  616. package/types/generated/Select.web.d.ts +6 -0
  617. package/types/generated/Separator.d.ts +5 -0
  618. package/types/generated/Separator.web.d.ts +5 -0
  619. package/types/generated/Sheet.d.ts +5 -0
  620. package/types/generated/Sheet.web.d.ts +7 -0
  621. package/types/generated/Skeleton.d.ts +5 -0
  622. package/types/generated/Skeleton.web.d.ts +6 -0
  623. package/types/generated/Slider.d.ts +6 -0
  624. package/types/generated/Slider.web.d.ts +6 -0
  625. package/types/generated/Spacer.d.ts +3 -0
  626. package/types/generated/Spacer.web.d.ts +3 -0
  627. package/types/generated/Stack.d.ts +3 -0
  628. package/types/generated/Stack.web.d.ts +3 -0
  629. package/types/generated/Stepper.d.ts +4 -0
  630. package/types/generated/Stepper.web.d.ts +5 -0
  631. package/types/generated/Switch.d.ts +7 -0
  632. package/types/generated/Switch.web.d.ts +6 -0
  633. package/types/generated/Table.d.ts +4 -0
  634. package/types/generated/Table.web.d.ts +5 -0
  635. package/types/generated/Tabs.d.ts +10 -0
  636. package/types/generated/Tabs.web.d.ts +6 -0
  637. package/types/generated/Text.d.ts +2 -0
  638. package/types/generated/Text.web.d.ts +2 -0
  639. package/types/generated/TextArea.d.ts +8 -0
  640. package/types/generated/TextArea.web.d.ts +9 -0
  641. package/types/generated/TextInput.d.ts +9 -0
  642. package/types/generated/TextInput.web.d.ts +2 -0
  643. package/types/generated/Timeline.d.ts +3 -0
  644. package/types/generated/Timeline.web.d.ts +4 -0
  645. package/types/generated/Tooltip.d.ts +9 -0
  646. package/types/generated/Tooltip.web.d.ts +12 -0
  647. package/types/generated/Tree.d.ts +4 -0
  648. package/types/generated/Tree.web.d.ts +4 -0
  649. package/types/generated/User.d.ts +5 -0
  650. package/types/generated/User.web.d.ts +5 -0
  651. package/types/generated/View.d.ts +7 -0
  652. package/types/generated/View.web.d.ts +7 -0
  653. package/types/generated/VirtualList.d.ts +5 -0
  654. package/types/generated/VirtualList.web.d.ts +4 -0
  655. package/types/generated/WebView.d.ts +11 -0
  656. package/types/generated/WebView.web.d.ts +5 -0
  657. package/types/generated/aliases.d.ts +7 -0
  658. package/types/generated/aliases.web.d.ts +7 -0
  659. package/types/generated/android/BottomNavigationView.android.d.ts +9 -0
  660. package/types/generated/android/CircularProgressIndicator.android.d.ts +6 -0
  661. package/types/generated/android/DrawerLayout.android.d.ts +12 -0
  662. package/types/generated/android/MaterialDialog.android.d.ts +8 -0
  663. package/types/generated/android/MaterialSwitch.android.d.ts +6 -0
  664. package/types/generated/android/RecyclerView.android.d.ts +14 -0
  665. package/types/generated/android/SeekBar.android.d.ts +5 -0
  666. package/types/generated/android/icon.android.d.ts +5 -0
  667. package/types/generated/android/index.d.ts +12 -0
  668. package/types/generated/android/openModal.android.d.ts +4 -0
  669. package/types/generated/anim.d.ts +10 -0
  670. package/types/generated/anim.web.d.ts +3 -0
  671. package/types/generated/apply-native-modifiers.native.d.ts +3 -0
  672. package/types/generated/child-array.d.ts +3 -0
  673. package/types/generated/cx.d.ts +6 -0
  674. package/types/generated/escape-props.d.ts +16 -0
  675. package/types/generated/icons.d.ts +5 -0
  676. package/types/generated/index.d.ts +1 -0
  677. package/types/generated/index.linux.d.ts +5 -0
  678. package/types/generated/index.mobile.d.ts +4 -0
  679. package/types/generated/index.shared.d.ts +111 -0
  680. package/types/generated/index.web.d.ts +111 -0
  681. package/types/generated/ios/LiquidGlass.ios.d.ts +12 -0
  682. package/types/generated/ios/LiquidGlassContainer.ios.d.ts +13 -0
  683. package/types/generated/ios/SideDrawer.ios.d.ts +12 -0
  684. package/types/generated/ios/UIActivityIndicatorView.ios.d.ts +5 -0
  685. package/types/generated/ios/UIModal.ios.d.ts +7 -0
  686. package/types/generated/ios/UISlider.ios.d.ts +5 -0
  687. package/types/generated/ios/UISwitch.ios.d.ts +6 -0
  688. package/types/generated/ios/UITabBar.ios.d.ts +7 -0
  689. package/types/generated/ios/UITableView.ios.d.ts +14 -0
  690. package/types/generated/ios/icon.ios.d.ts +5 -0
  691. package/types/generated/ios/index.d.ts +14 -0
  692. package/types/generated/ios/openModal.ios.d.ts +4 -0
  693. package/types/generated/keyboard-inset.mobile.d.ts +10 -0
  694. package/types/generated/layout-child.d.ts +6 -0
  695. package/types/generated/layout-child.web.d.ts +15 -0
  696. package/types/generated/meter-math.d.ts +6 -0
  697. package/types/generated/modal-presenter.mobile.d.ts +14 -0
  698. package/types/generated/modifier-factories.d.ts +15 -0
  699. package/types/generated/native/index.d.ts +3 -0
  700. package/types/generated/pan.d.ts +2 -0
  701. package/types/generated/pan.web.d.ts +9 -0
  702. package/types/generated/platform.d.ts +7 -0
  703. package/types/generated/platform.web.d.ts +6 -0
  704. package/types/generated/platformProps.d.ts +7 -0
  705. package/types/generated/platformProps.web.d.ts +2 -0
  706. package/types/generated/popover-position.d.ts +14 -0
  707. package/types/{props.d.ts → generated/props.d.ts} +127 -133
  708. package/types/generated/refresh-metrics.d.ts +8 -0
  709. package/types/generated/refresh.d.ts +42 -0
  710. package/types/generated/refresh.web.d.ts +23 -0
  711. package/types/generated/root-layout.mobile.d.ts +22 -0
  712. package/types/generated/route-host.mobile.d.ts +1 -0
  713. package/types/generated/route-table.d.ts +90 -0
  714. package/types/generated/route.d.ts +74 -0
  715. package/types/generated/route.web.d.ts +67 -0
  716. package/types/generated/safeAreaInsets.d.ts +8 -0
  717. package/types/generated/safeAreaInsets.web.d.ts +8 -0
  718. package/types/generated/sheet-detents.d.ts +23 -0
  719. package/types/generated/sheet-detents.web.d.ts +13 -0
  720. package/types/generated/sheet-service.d.ts +11 -0
  721. package/types/generated/sheet-service.web.d.ts +6 -0
  722. package/types/generated/sheet-snap.d.ts +18 -0
  723. package/types/generated/stacks.d.ts +9 -0
  724. package/types/generated/stacks.web.d.ts +4 -0
  725. package/types/generated/store.d.ts +14 -0
  726. package/types/generated/styled.d.ts +20 -0
  727. package/types/generated/styled.web.d.ts +10 -0
  728. package/types/generated/svg.mobile.d.ts +23 -0
  729. package/types/generated/tap-to-blur.mobile.d.ts +16 -0
  730. package/types/generated/text-write.d.ts +9 -0
  731. package/types/generated/theme/colorScheme.d.ts +6 -0
  732. package/types/generated/theme/colorScheme.linux.d.ts +5 -0
  733. package/types/generated/theme/colorScheme.web.d.ts +5 -0
  734. package/types/generated/theme/status-bar-scheme.mobile.d.ts +1 -0
  735. package/types/generated/theme/theme-scheme.d.ts +20 -0
  736. package/types/generated/toast-anchor.d.ts +4 -0
  737. package/types/generated/toast-anchor.web.d.ts +4 -0
  738. package/types/generated/transform.web.d.ts +8 -0
  739. package/types/generated/translate.d.ts +5 -0
  740. package/types/generated/translate.web.d.ts +6 -0
  741. package/types/generated/use-back.d.ts +6 -0
  742. package/types/generated/use-back.web.d.ts +7 -0
  743. package/types/generated/use-store.d.ts +9 -0
  744. package/types/generated/use-store.web.d.ts +9 -0
  745. package/types/generated/useMeasure.d.ts +3 -0
  746. package/types/generated/useMeasure.web.d.ts +3 -0
  747. package/types/generated/vendor/ui-svg/index.common.d.ts +7 -0
  748. package/types/generated/vendor/ui-svg/index.d.ts +1 -0
  749. package/types/generated/vendor/ui-svg/index.ios.d.ts +13 -0
  750. package/types/generated/virtual-list-layout.d.ts +44 -0
  751. package/types/generated/web/index.d.ts +3 -0
  752. package/types/generated/windows.d.ts +3 -0
  753. package/types/generated/windows.linux.d.ts +15 -0
  754. package/types/generated/windows.web.d.ts +3 -0
  755. package/types/index.macos.d.ts +142 -0
  756. package/dist/native/CameraView.native.tsrx.js +0 -165
  757. package/dist/native/Meter.native.tsrx.js +0 -92
  758. package/dist/native/Pager.native.tsrx.js +0 -282
  759. package/dist/native/Video.native.tsrx.js +0 -248
  760. package/dist/native/camera-permission.native.js +0 -47
  761. package/dist/native/safeAreaInsets.native.tsrx.js +0 -35
  762. package/dist/native/video-chrome.native.tsrx.js +0 -365
  763. package/dist/web/CameraView.web.tsrx.js +0 -310
  764. package/dist/web/Pager.web.tsrx.js +0 -337
  765. package/dist/web/Video.web.tsrx.js +0 -400
  766. package/dist/web/video-chrome.web.tsrx.js +0 -207
  767. package/types/android.d.ts +0 -53
  768. package/types/index.d.ts +0 -273
  769. package/types/index.native.d.ts +0 -273
  770. package/types/index.web.d.ts +0 -272
  771. package/types/ios.d.ts +0 -59
  772. package/types/native.d.ts +0 -5
  773. package/types/web.d.ts +0 -17
@@ -0,0 +1,2 @@
1
+ /// <reference types="@nativescript/types" />
2
+ /// <reference types="vite/client" />
@@ -0,0 +1,11 @@
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 const REFRESH_HEADER_HEIGHT = 64
5
+
6
+ /** Finger-travel → content displacement. iOS rubber-band applies ~0.5
7
+ * resistance at small pulls; web/Android drive the same ratio so the
8
+ * affordance reads identically across targets. */
9
+ export function dampenPull(dy: number): number {
10
+ return dy * 0.5
11
+ }
package/src/refresh.ts ADDED
@@ -0,0 +1,271 @@
1
+ import { isIOS } from '@nativescript/core'
2
+ import { REFRESH_HEADER_HEIGHT, dampenPull } from './refresh-metrics'
3
+
4
+ export interface RefreshConfig {
5
+ onRefresh?: () => void
6
+ refreshing?: boolean
7
+ threshold?: number
8
+ }
9
+
10
+ export interface RefreshHost {
11
+ /** The scrolling view — NS ScrollView or ListView. */
12
+ scroller: any
13
+ /** The overlay strip (owns the self-drawn spinner), translated in/out. */
14
+ indicator: any
15
+ /** True when the scroller is resting at its top edge (Android only —
16
+ * iOS reads the overscroll directly from contentOffset). */
17
+ isAtTop: () => boolean
18
+ /** Latest props — a ref so callback identity churn can't re-attach. */
19
+ cfg: { current: RefreshConfig }
20
+ }
21
+
22
+ export interface RefreshController {
23
+ /** Call when `refreshing` changes — docks/undocks the indicator. */
24
+ sync: () => void
25
+ detach: () => void
26
+ }
27
+
28
+ const PAN_ENDED = new Set([0, 3]) // GestureStateTypes cancelled / ended
29
+ const DOCK_ANIM_MS = 180
30
+
31
+ /* UIEdgeInsetsMake is a UIKit inline function — reach it through
32
+ * globalThis so nothing references NS globals at module scope. */
33
+ function makeInsets(top: number, left: number, bottom: number, right: number) {
34
+ const make = (globalThis as any).UIEdgeInsetsMake
35
+ if (make) {
36
+ return make(top, left, bottom, right)
37
+ }
38
+
39
+ return { top, left, bottom, right }
40
+ }
41
+
42
+ /** Pan-driven pull-to-refresh over any NS scrollable (scrollview or
43
+ * listview). Two mechanics, one visual:
44
+ *
45
+ * iOS — UIScrollView's own bounce supplies the content displacement
46
+ * (NS gesture delegates allow simultaneous recognition, so our pan on
47
+ * the scroller observes alongside the scroll pan). The handler reads
48
+ * `contentOffset` for the live gap and docks with
49
+ * `contentInset.top += H` — the exact mechanics UIRefreshControl uses.
50
+ *
51
+ * Android — there is no overscroll; the scroller box itself is
52
+ * translated inside the clipping wrapper while the damped drag
53
+ * accumulates. Docking holds the translate at H. Edge glow is disabled
54
+ * (OVER_SCROLL_NEVER) so no OS chrome leaks into the pixels.
55
+ *
56
+ * Releasing past `threshold` fires `onRefresh` once per pull and holds
57
+ * the docked gap; the controlled `refreshing` prop keeps it docked.
58
+ * A short grace window collapses the dock if `refreshing` never comes —
59
+ * props land a render after `onRefresh` fires. */
60
+ export function createPullToRefresh(host: RefreshHost): RefreshController {
61
+ const { scroller, indicator, isAtTop, cfg } = host
62
+ if (!scroller || !indicator) {
63
+ return { sync: () => {}, detach: () => {} }
64
+ }
65
+
66
+ let docked = false // gesture-driven dock at REFRESH_HEADER_HEIGHT
67
+ let pullAcc = 0 // android: damped accumulation beyond the held baseline
68
+ let prevDy = 0
69
+ let touching = false // a pan gesture is in flight
70
+ let grace: any = null
71
+ let baseInsetTop: number | null = null
72
+ let lastTy = Number.NaN
73
+
74
+ const threshold = () => cfg.current.threshold ?? REFRESH_HEADER_HEIGHT
75
+ /** Resting gap: the strip stays docked while the gesture docked it OR
76
+ * the controlled `refreshing` prop holds it open. */
77
+ const held = () => docked || !!cfg.current.refreshing
78
+
79
+ /* iOS: distance the content hangs below its resting top edge — 0 at
80
+ * rest whether docked or not, so the held gap is added back by the
81
+ * caller. */
82
+ const iosOverscroll = () => {
83
+ const sv = scroller.ios
84
+ if (!sv?.contentOffset) {
85
+ return 0
86
+ }
87
+
88
+ return Math.max(0, -(sv.contentOffset.y + sv.contentInset.top))
89
+ }
90
+
91
+ const applyReveal = (reveal: number) => {
92
+ const ty = reveal - REFRESH_HEADER_HEIGHT
93
+ if (ty !== lastTy) {
94
+ lastTy = ty
95
+ indicator.translateY = ty
96
+ if (!isIOS) {
97
+ scroller.translateY = reveal
98
+ }
99
+ }
100
+ }
101
+
102
+ const settle = (reveal: number) => {
103
+ lastTy = Number.NaN // animate() owns translateY now
104
+ if (isIOS) {
105
+ animateTo(indicator, reveal - REFRESH_HEADER_HEIGHT)
106
+ } else {
107
+ animateTo(scroller, reveal)
108
+ animateTo(indicator, reveal - REFRESH_HEADER_HEIGHT)
109
+ }
110
+ }
111
+
112
+ const setInset = (on: boolean) => {
113
+ const sv = scroller.ios
114
+ if (!sv?.contentInset) {
115
+ return
116
+ }
117
+
118
+ if (on && baseInsetTop == null) {
119
+ baseInsetTop = sv.contentInset.top
120
+ }
121
+
122
+ const next = (baseInsetTop ?? 0) + (on ? REFRESH_HEADER_HEIGHT : 0)
123
+ if (Math.abs(sv.contentInset.top - next) < 0.5) {
124
+ return
125
+ }
126
+
127
+ const apply = () => {
128
+ sv.contentInset = makeInsets(next, sv.contentInset.left, sv.contentInset.bottom, sv.contentInset.right)
129
+ }
130
+
131
+ const UIView = (globalThis as any).UIView
132
+ if (UIView?.animateWithDurationAnimations) {
133
+ UIView.animateWithDurationAnimations(DOCK_ANIM_MS / 1000, apply)
134
+ } else {
135
+ apply()
136
+ }
137
+ }
138
+
139
+ function animateTo(view: any, y: number) {
140
+ view?.animate?.({ translate: { x: 0, y }, duration: DOCK_ANIM_MS })
141
+ }
142
+
143
+ const dock = () => {
144
+ docked = true
145
+ pullAcc = 0
146
+ if (isIOS) {
147
+ setInset(true)
148
+ }
149
+
150
+ settle(REFRESH_HEADER_HEIGHT)
151
+ }
152
+
153
+ const collapse = () => {
154
+ docked = false
155
+ pullAcc = 0
156
+ if (isIOS) {
157
+ setInset(false)
158
+ }
159
+
160
+ settle(0)
161
+ }
162
+
163
+ /** `extra` is pull beyond the held baseline — a release only fires
164
+ * `onRefresh` when the user actually pulled (a resting release inside
165
+ * the dock re-fires nothing). */
166
+ const release = (extra: number) => {
167
+ const reveal = extra + (held() ? REFRESH_HEADER_HEIGHT : 0)
168
+ if (extra > 0 && reveal >= threshold()) {
169
+ cfg.current.onRefresh?.()
170
+ dock()
171
+ clearTimeout(grace)
172
+ grace = setTimeout(() => {
173
+ if (!cfg.current.refreshing) {
174
+ collapse()
175
+ }
176
+ }, 350)
177
+ } else if (held()) {
178
+ // A `refreshing`-driven dock deferred while the finger was down
179
+ // applies now; gesture-driven docks just settle back.
180
+ docked = true
181
+ pullAcc = 0
182
+ if (isIOS) {
183
+ setInset(true)
184
+ }
185
+
186
+ settle(REFRESH_HEADER_HEIGHT)
187
+ } else {
188
+ collapse()
189
+ }
190
+ }
191
+
192
+ const onPan = (e: any) => {
193
+ if (isIOS) {
194
+ // Clamped: once the user scrolls down past the held gap the
195
+ // indicator stays pinned — the dock is header-fixed, not a
196
+ // content row (uniform with the Android/web overlay).
197
+ const extra = iosOverscroll()
198
+ if (PAN_ENDED.has(e.state)) {
199
+ touching = false
200
+ release(extra)
201
+ } else {
202
+ touching = true
203
+ applyReveal(extra + (held() ? REFRESH_HEADER_HEIGHT : 0))
204
+ }
205
+
206
+ return
207
+ }
208
+
209
+ if (e.state === 1) {
210
+ touching = true
211
+ prevDy = e.deltaY
212
+ pullAcc = 0
213
+ return
214
+ }
215
+
216
+ if (PAN_ENDED.has(e.state)) {
217
+ touching = false
218
+ release(pullAcc)
219
+ pullAcc = 0
220
+ return
221
+ }
222
+
223
+ const inc = e.deltaY - prevDy
224
+ prevDy = e.deltaY
225
+ if (!isAtTop()) {
226
+ return
227
+ }
228
+
229
+ pullAcc = Math.max(0, pullAcc + dampenPull(inc))
230
+ applyReveal(pullAcc + (held() ? REFRESH_HEADER_HEIGHT : 0))
231
+ }
232
+
233
+ // `view.on('pan')` routes through NS's gesture observer; the recognizer
234
+ // attaches when the view loads. iOS marks NS recognizers as simultaneous
235
+ // with the scroll view's own pan, so it fires alongside scrolling.
236
+ scroller.on('pan', onPan)
237
+ // Kill Android's overscroll edge glow — OS chrome breaks the parity
238
+ // contract. 2 = android.view.View.OVER_SCROLL_NEVER.
239
+ if (!isIOS) {
240
+ scroller.android?.setOverScrollMode?.(2)
241
+ }
242
+
243
+ return {
244
+ sync: () => {
245
+ if (cfg.current.refreshing) {
246
+ clearTimeout(grace)
247
+ // Defer the dock while a gesture is in flight — release()
248
+ // applies it when the finger lifts.
249
+ if (!docked && !touching) {
250
+ dock()
251
+ }
252
+ } else if (docked && !touching) {
253
+ collapse()
254
+ }
255
+ },
256
+ detach: () => {
257
+ clearTimeout(grace)
258
+ scroller.off('pan', onPan)
259
+ if (docked) {
260
+ docked = false
261
+ if (isIOS) {
262
+ setInset(false)
263
+ } else {
264
+ scroller.translateY = 0
265
+ }
266
+
267
+ indicator.translateY = -REFRESH_HEADER_HEIGHT
268
+ }
269
+ },
270
+ }
271
+ }
@@ -0,0 +1,111 @@
1
+ // @vitest-environment jsdom
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
3
+ import { createPullToRefresh } from './refresh.web';
4
+ import { REFRESH_HEADER_HEIGHT } from './refresh-metrics';
5
+
6
+ // Unit-level check of the web pull-to-refresh state machine: synthetic
7
+ // pointer events drive the controller, assertions read the composed
8
+ // transform writes (setTranslate → translateX/translateY pair). jsdom has
9
+ // no PointerEvent constructor — plain Events carry the fields the
10
+ // handlers read.
11
+
12
+ function host() {
13
+ const wrapper = document.createElement('div');
14
+ const scroller = document.createElement('div');
15
+ const indicator = document.createElement('div');
16
+ wrapper.appendChild(indicator);
17
+ wrapper.appendChild(scroller);
18
+ document.body.appendChild(wrapper);
19
+ return { wrapper, scroller, indicator };
20
+ }
21
+
22
+ function pointer(type: string, y: number) {
23
+ const e = new Event(type, { cancelable: true, bubbles: true });
24
+ Object.assign(e, { pointerType: 'mouse', clientY: y, button: 0 });
25
+ return e;
26
+ }
27
+
28
+ const ty = (el: HTMLElement) => el.style.transform;
29
+
30
+ describe('createPullToRefresh (web)', () => {
31
+ beforeEach(() => {
32
+ vi.useFakeTimers();
33
+ });
34
+
35
+ afterEach(() => {
36
+ vi.useRealTimers();
37
+ document.body.innerHTML = '';
38
+ });
39
+
40
+ it('tracks a sub-threshold drag and resets on release', () => {
41
+ const { scroller, indicator } = host();
42
+ const cfg = { current: { onRefresh: vi.fn() } };
43
+ const ctl = createPullToRefresh({ scroller, indicator, cfg });
44
+
45
+ scroller.dispatchEvent(pointer('pointerdown', 100));
46
+ scroller.dispatchEvent(pointer('pointermove', 180));
47
+ // damped: 80 * 0.5 = 40
48
+ expect(ty(scroller)).toContain('translateY(40px)');
49
+ expect(ty(indicator)).toContain(`translateY(${40 - REFRESH_HEADER_HEIGHT}px)`);
50
+
51
+ scroller.dispatchEvent(pointer('pointerup', 180));
52
+ expect(cfg.current.onRefresh).not.toHaveBeenCalled();
53
+ expect(ty(scroller)).toContain('translateY(0px)');
54
+ ctl.detach();
55
+ });
56
+
57
+ it('fires onRefresh and docks past the threshold; refreshless release collapses after grace', () => {
58
+ const { scroller, indicator } = host();
59
+ const cfg = { current: { onRefresh: vi.fn(), refreshing: false } };
60
+ const ctl = createPullToRefresh({ scroller, indicator, cfg });
61
+
62
+ scroller.dispatchEvent(pointer('pointerdown', 100));
63
+ scroller.dispatchEvent(pointer('pointermove', 320));
64
+ scroller.dispatchEvent(pointer('pointerup', 320));
65
+ // 220 * 0.5 = 110 >= 64 → docked
66
+ expect(cfg.current.onRefresh).toHaveBeenCalledTimes(1);
67
+ expect(ty(scroller)).toContain(`translateY(${REFRESH_HEADER_HEIGHT}px)`);
68
+ expect(ty(indicator)).toContain('translateY(0px)');
69
+
70
+ // refreshing never arrives → grace collapse
71
+ vi.advanceTimersByTime(400);
72
+ expect(ty(scroller)).toContain('translateY(0px)');
73
+ ctl.detach();
74
+ });
75
+
76
+ it('refreshing keeps the dock; sync(false) collapses', () => {
77
+ const { scroller, indicator } = host();
78
+ const cfg = { current: { onRefresh: vi.fn(), refreshing: false } };
79
+ const ctl = createPullToRefresh({ scroller, indicator, cfg });
80
+
81
+ scroller.dispatchEvent(pointer('pointerdown', 100));
82
+ scroller.dispatchEvent(pointer('pointermove', 320));
83
+ cfg.current.refreshing = true;
84
+ ctl.sync();
85
+ scroller.dispatchEvent(pointer('pointerup', 320));
86
+ expect(cfg.current.onRefresh).toHaveBeenCalledTimes(1);
87
+
88
+ vi.advanceTimersByTime(400);
89
+ expect(ty(scroller)).toContain(`translateY(${REFRESH_HEADER_HEIGHT}px)`);
90
+
91
+ cfg.current.refreshing = false;
92
+ ctl.sync();
93
+ expect(ty(scroller)).toContain('translateY(0px)');
94
+ expect(ty(indicator)).toContain(`translateY(${-REFRESH_HEADER_HEIGHT}px)`);
95
+ ctl.detach();
96
+ });
97
+
98
+ it('ignores drags that start below the top edge', () => {
99
+ const { scroller } = host();
100
+ Object.defineProperty(scroller, 'scrollTop', { value: 30, writable: true });
101
+ const cfg = { current: { onRefresh: vi.fn() } };
102
+ const ctl = createPullToRefresh({ scroller, indicator: document.createElement('div'), cfg });
103
+
104
+ scroller.dispatchEvent(pointer('pointerdown', 100));
105
+ scroller.dispatchEvent(pointer('pointermove', 320));
106
+ scroller.dispatchEvent(pointer('pointerup', 320));
107
+ expect(cfg.current.onRefresh).not.toHaveBeenCalled();
108
+ expect(ty(scroller)).toBe('');
109
+ ctl.detach();
110
+ });
111
+ });
@@ -0,0 +1,205 @@
1
+ import { REFRESH_HEADER_HEIGHT, dampenPull } from './refresh-metrics'
2
+ import { setTranslate } from './translate.web'
3
+
4
+ export interface RefreshConfig {
5
+ onRefresh?: () => void
6
+ refreshing?: boolean
7
+ threshold?: number
8
+ }
9
+
10
+ export interface RefreshController {
11
+ /** Call when `refreshing` changes — docks/undocks the indicator. */
12
+ sync: () => void
13
+ detach: () => void
14
+ }
15
+
16
+ const DOCK_ANIM_MS = 180
17
+
18
+ /** Pointer/touch-driven pull-to-refresh for the DOM leaf — the web has no
19
+ * native overscroll, so drag distance translates the scroller inside the
20
+ * clipped wrapper while the self-drawn indicator slides into the gap.
21
+ * `touchmove` must be non-passive: `preventDefault` is what keeps the
22
+ * browser from taking the gesture as a scroll (or Chrome's own
23
+ * pull-to-refresh on Android). Mouse drags ride the pointer events. */
24
+ export function createPullToRefresh(host: {
25
+ scroller: HTMLElement | null
26
+ indicator: HTMLElement | null
27
+ cfg: { current: RefreshConfig }
28
+ }): RefreshController {
29
+ const { scroller, indicator, cfg } = host
30
+ if (!scroller || !indicator) {
31
+ return { sync: () => {}, detach: () => {} }
32
+ }
33
+
34
+ let pulling = false
35
+ let y0 = 0
36
+ let pull = 0 // displacement beyond the held baseline
37
+ let docked = false // gesture-driven dock at REFRESH_HEADER_HEIGHT
38
+ let grace: ReturnType<typeof setTimeout> | null = null
39
+
40
+ const threshold = () => cfg.current.threshold ?? REFRESH_HEADER_HEIGHT
41
+ /** Resting gap: the strip stays docked while the gesture docked it OR
42
+ * the controlled `refreshing` prop holds it open. */
43
+ const held = () => docked || !!cfg.current.refreshing
44
+
45
+ const applyReveal = (reveal: number) => {
46
+ setTranslate(indicator, 0, reveal - REFRESH_HEADER_HEIGHT)
47
+ setTranslate(scroller, 0, reveal)
48
+ }
49
+
50
+ const settle = (reveal: number) => {
51
+ for (const el of [scroller, indicator]) {
52
+ el.style.transition = `transform ${DOCK_ANIM_MS}ms ease-out`
53
+ }
54
+
55
+ applyReveal(reveal)
56
+ setTimeout(() => {
57
+ for (const el of [scroller, indicator]) {
58
+ el.style.transition = ''
59
+ }
60
+ }, DOCK_ANIM_MS)
61
+ }
62
+
63
+ const dock = () => {
64
+ docked = true
65
+ pull = 0
66
+ settle(REFRESH_HEADER_HEIGHT)
67
+ }
68
+
69
+ const collapse = () => {
70
+ docked = false
71
+ pull = 0
72
+ settle(0)
73
+ }
74
+
75
+ /** `pull` is drag distance beyond the held baseline — a release only
76
+ * fires `onRefresh` when the user actually pulled (a resting release
77
+ * inside the dock re-fires nothing). */
78
+ const release = () => {
79
+ pulling = false
80
+ const reveal = pull + (held() ? REFRESH_HEADER_HEIGHT : 0)
81
+ if (pull > 0 && reveal >= threshold()) {
82
+ cfg.current.onRefresh?.()
83
+ dock()
84
+ if (grace) {
85
+ clearTimeout(grace)
86
+ }
87
+
88
+ grace = setTimeout(() => {
89
+ if (!cfg.current.refreshing) {
90
+ collapse()
91
+ }
92
+ }, 350)
93
+ } else if (held()) {
94
+ // A `refreshing`-driven dock deferred while the pointer was down
95
+ // applies now; gesture-driven docks just settle back.
96
+ docked = true
97
+ pull = 0
98
+ settle(REFRESH_HEADER_HEIGHT)
99
+ } else {
100
+ collapse()
101
+ }
102
+ }
103
+
104
+ const begin = (y: number, prevent?: () => void) => {
105
+ if (scroller.scrollTop > 0) {
106
+ return
107
+ }
108
+
109
+ pulling = true
110
+ y0 = y
111
+ pull = 0
112
+ prevent?.()
113
+ }
114
+
115
+ const move = (y: number, prevent: () => void) => {
116
+ if (!pulling) {
117
+ return
118
+ }
119
+
120
+ const dy = y - y0
121
+ if (dy <= 0 || scroller.scrollTop > 0) {
122
+ pulling = false
123
+ pull = 0
124
+ applyReveal(held() ? REFRESH_HEADER_HEIGHT : 0)
125
+ return
126
+ }
127
+
128
+ prevent()
129
+ pull = dampenPull(dy)
130
+ applyReveal(pull + (held() ? REFRESH_HEADER_HEIGHT : 0))
131
+ }
132
+
133
+ const end = () => {
134
+ if (pulling) {
135
+ release()
136
+ }
137
+ }
138
+
139
+ const touchStart = (e: TouchEvent) => begin(e.touches[0].clientY)
140
+ const touchMove = (e: TouchEvent) => move(e.touches[0].clientY, () => e.preventDefault())
141
+ const touchEnd = () => end()
142
+ // pointer events cover mouse/pen drags — touch is handled by the touch
143
+ // listeners above since pointermove cannot preventDefault a native pan.
144
+ const pointerDown = (e: PointerEvent) => {
145
+ if (e.pointerType === 'mouse' && e.button === 0) {
146
+ begin(e.clientY, () => e.preventDefault())
147
+ }
148
+ }
149
+
150
+ const pointerMove = (e: PointerEvent) => {
151
+ if (e.pointerType === 'mouse') {
152
+ move(e.clientY, () => e.preventDefault())
153
+ }
154
+ }
155
+
156
+ const pointerUp = (e: PointerEvent) => {
157
+ if (e.pointerType === 'mouse') {
158
+ end()
159
+ }
160
+ }
161
+
162
+ scroller.addEventListener('touchstart', touchStart, { passive: true })
163
+ scroller.addEventListener('touchmove', touchMove, { passive: false })
164
+ scroller.addEventListener('touchend', touchEnd)
165
+ scroller.addEventListener('touchcancel', touchEnd)
166
+ scroller.addEventListener('pointerdown', pointerDown)
167
+ scroller.addEventListener('pointermove', pointerMove)
168
+ scroller.addEventListener('pointerup', pointerUp)
169
+ scroller.addEventListener('pointercancel', pointerUp)
170
+
171
+ return {
172
+ sync: () => {
173
+ if (cfg.current.refreshing) {
174
+ if (grace) {
175
+ clearTimeout(grace)
176
+ }
177
+
178
+ // Defer the dock while a gesture is in flight — release()
179
+ // applies it when the pointer lifts.
180
+ if (!docked && !pulling) {
181
+ dock()
182
+ }
183
+ } else if (docked && !pulling) {
184
+ collapse()
185
+ }
186
+ },
187
+ detach: () => {
188
+ if (grace) {
189
+ clearTimeout(grace)
190
+ }
191
+
192
+ scroller.removeEventListener('touchstart', touchStart)
193
+ scroller.removeEventListener('touchmove', touchMove)
194
+ scroller.removeEventListener('touchend', touchEnd)
195
+ scroller.removeEventListener('touchcancel', touchEnd)
196
+ scroller.removeEventListener('pointerdown', pointerDown)
197
+ scroller.removeEventListener('pointermove', pointerMove)
198
+ scroller.removeEventListener('pointerup', pointerUp)
199
+ scroller.removeEventListener('pointercancel', pointerUp)
200
+ scroller.style.transition = ''
201
+ indicator.style.transition = ''
202
+ applyReveal(0)
203
+ },
204
+ }
205
+ }
@@ -0,0 +1,89 @@
1
+ import { getRootLayout, RootLayout } from '@nativescript/core'
2
+
3
+ // NS keeps an internal rootLayoutStack (mounted order) — but the module is
4
+ // private and can duplicate when deep imports split bundles, so Screen
5
+ // self-registers here on loaded/unloaded instead. registry order = mount
6
+ // order; last = most recently mounted screen shell.
7
+ const registry: RootLayout[] = []
8
+
9
+ /** Called by the Screen leaf's <rootlayout> onLoaded/onUnloaded. */
10
+ export function registerRootLayout(rl: RootLayout | undefined | null) {
11
+ if (rl && !registry.includes(rl)) {
12
+ registry.push(rl)
13
+ }
14
+ }
15
+
16
+ export function unregisterRootLayout(rl: RootLayout | undefined | null) {
17
+ const i = rl ? registry.indexOf(rl) : -1
18
+ if (i >= 0) {
19
+ registry.splice(i, 1)
20
+ }
21
+ }
22
+
23
+ /** The most recently mounted rootlayout — the top of the push stack. For
24
+ * imperative services (toast, sheet) there is no invoking component to
25
+ * walk from; last-mounted is the pushed page when one exists. Caveat: tabs
26
+ * keep visited panes mounted — last is the newest, not the visible tab. */
27
+ export function topRootLayout(): RootLayout | undefined {
28
+ return registry[registry.length - 1] ?? getRootLayout()
29
+ }
30
+
31
+ /** Resolve the RootLayout enclosing `view` by walking the native parent
32
+ * chain — the screen shell is a RootLayout (Screen), so the first
33
+ * RootLayout ancestor IS the current page's overlay host. Falls back to
34
+ * the top registry entry when the component renders outside any Screen. */
35
+ export function rootLayoutFor(view: any): RootLayout | undefined {
36
+ for (let v = view?.parent; v; v = v.parent) {
37
+ if (v instanceof RootLayout) {
38
+ return v
39
+ }
40
+ }
41
+
42
+ return topRootLayout()
43
+ }
44
+
45
+ /** Search every registered rootlayout for a view by id — overlays/sheets/
46
+ * toasts land on different rootlayouts depending on which screen's shell
47
+ * mounted last. Unloaded subtrees are skipped: a covered page unloads its
48
+ * views (NativeScript detaches their native recognizers while the JS views
49
+ * stay parented), so an unloaded match is a dead twin that can swallow
50
+ * interaction probes — the live view either doesn't exist here yet or sits
51
+ * under a loaded branch. */
52
+ export function findInRootLayouts(id: string): any {
53
+ const walk = (view: any): any => {
54
+ if (!view) {
55
+ return null
56
+ }
57
+
58
+ if (view.id === id) {
59
+ return view
60
+ }
61
+
62
+ let hit: any = null
63
+ view.eachChildView?.((c: any) => {
64
+ if (c?.isLoaded === false) {
65
+ return true
66
+ }
67
+
68
+ const found = walk(c)
69
+ if (found) {
70
+ hit = found
71
+ return false
72
+ }
73
+
74
+ return true
75
+ })
76
+
77
+ return hit
78
+ }
79
+
80
+ for (let i = registry.length - 1; i >= 0; i--) {
81
+ const hit = walk(registry[i])
82
+ if (hit) {
83
+ return hit
84
+ }
85
+ }
86
+
87
+ const rl = getRootLayout() as any
88
+ return rl ? walk(rl) : null
89
+ }
@@ -0,0 +1 @@
1
+ export { RouteHost, screenParamsFor } from './RouteHost.mobile.tsrx'