@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.
Files changed (893) hide show
  1. package/README.md +17 -4
  2. package/dist/native/Absolute.tsrx.js +43 -0
  3. package/dist/native/Accordion.tsrx.js +75 -0
  4. package/dist/native/ActivityIndicator.tsrx.js +35 -0
  5. package/dist/native/Alert.tsrx.js +74 -0
  6. package/dist/native/Avatar.tsrx.js +76 -0
  7. package/dist/native/AvatarGroup.tsrx.js +84 -0
  8. package/dist/native/Badge.tsrx.js +29 -0
  9. package/dist/native/Banner.tsrx.js +80 -0
  10. package/dist/native/Breadcrumb.tsrx.js +66 -0
  11. package/dist/native/Button.tsrx.js +62 -0
  12. package/dist/native/Card.tsrx.js +64 -0
  13. package/dist/native/Checkbox.tsrx.js +58 -0
  14. package/dist/native/CheckboxGroup.tsrx.js +70 -0
  15. package/dist/native/Chip.tsrx.js +83 -0
  16. package/dist/native/Collapsible.tsrx.js +74 -0
  17. package/dist/native/CommandPalette.tsrx.js +143 -0
  18. package/dist/native/ContextMenu.tsrx.js +140 -0
  19. package/dist/native/Drawer.tsrx.js +60 -0
  20. package/dist/native/DropdownMenu.tsrx.js +155 -0
  21. package/dist/native/Empty.tsrx.js +82 -0
  22. package/dist/native/FieldGroup.tsrx.js +39 -0
  23. package/dist/native/FormField.tsrx.js +53 -0
  24. package/dist/native/{ui8.js → Grid.tsrx.js} +20 -9
  25. package/dist/native/{ui59.js → Heading.tsrx.js} +4 -4
  26. package/dist/native/Hoverable.tsrx.js +139 -0
  27. package/dist/native/{ui58.js → Icon.tsrx.js} +5 -5
  28. package/dist/native/{ui29.js → Image.tsrx.js} +5 -5
  29. package/dist/native/InputNumber.tsrx.js +146 -0
  30. package/dist/native/InputRating.tsrx.js +74 -0
  31. package/dist/native/InputTags.tsrx.js +131 -0
  32. package/dist/native/Kbd.tsrx.js +29 -0
  33. package/dist/native/{ui50.js → KeyboardAvoiding.mobile.tsrx.js} +6 -4
  34. package/dist/native/{ui17.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/{ui22.js → NavLink.tsrx.js} +4 -4
  38. package/dist/native/NavigationMenu.tsrx.js +67 -0
  39. package/dist/native/{ui35.js → Overlay.tsrx.js} +4 -4
  40. package/dist/native/Pagination.tsrx.js +107 -0
  41. package/dist/native/PinInput.tsrx.js +94 -0
  42. package/dist/native/{ui38.js → Popover.tsrx.js} +7 -7
  43. package/dist/native/{ui16.js → Pressable.tsrx.js} +21 -15
  44. package/dist/native/ProgressGroup.tsrx.js +66 -0
  45. package/dist/native/RadioGroup.tsrx.js +85 -0
  46. package/dist/native/{ui15.js → RichText.tsrx.js} +16 -23
  47. package/dist/native/{ui20.js → RouteHost.mobile.tsrx.js} +13 -2
  48. package/dist/native/Row.tsrx.js +98 -0
  49. package/dist/native/{ui49.js → SafeArea.tsrx.js} +10 -4
  50. package/dist/native/{ui45.js → Screen.tsrx.js} +14 -6
  51. package/dist/native/{ui26.js → ScrollBox.tsrx.js} +2 -2
  52. package/dist/native/ScrollView.tsrx.js +233 -0
  53. package/dist/native/SearchInput.tsrx.js +151 -0
  54. package/dist/native/SegmentedControl.tsrx.js +75 -0
  55. package/dist/native/Select.tsrx.js +202 -0
  56. package/dist/native/Separator.tsrx.js +25 -0
  57. package/dist/native/{ui63.js → Sheet.tsrx.js} +24 -8
  58. package/dist/native/Skeleton.tsrx.js +28 -0
  59. package/dist/native/Slider.tsrx.js +98 -0
  60. package/dist/native/{ui13.js → Spacer.tsrx.js} +3 -3
  61. package/dist/native/Stack.tsrx.js +47 -0
  62. package/dist/native/Stepper.tsrx.js +75 -0
  63. package/dist/native/Switch.tsrx.js +33 -0
  64. package/dist/native/Table.tsrx.js +103 -0
  65. package/dist/native/Tabs.tsrx.js +153 -0
  66. package/dist/native/{ui14.js → Text.tsrx.js} +5 -4
  67. package/dist/native/{ui24.js → TextArea.tsrx.js} +18 -17
  68. package/dist/native/{ui23.js → TextInput.tsrx.js} +22 -17
  69. package/dist/native/Timeline.tsrx.js +112 -0
  70. package/dist/native/Tooltip.tsrx.js +131 -0
  71. package/dist/native/Tree.tsrx.js +140 -0
  72. package/dist/native/User.tsrx.js +95 -0
  73. package/dist/native/View.tsrx.js +98 -0
  74. package/dist/native/VirtualList.tsrx.js +466 -0
  75. package/dist/native/WebView.tsrx.js +135 -0
  76. package/dist/native/aliases.tsrx.js +38 -0
  77. package/dist/native/android/BottomNavigationView.android.tsrx.js +220 -0
  78. package/dist/native/android/CircularProgressIndicator.android.tsrx.js +27 -0
  79. package/dist/native/{ui51.js → android/DrawerLayout.android.tsrx.js} +6 -7
  80. package/dist/native/android/MaterialDialog.android.tsrx.js +62 -0
  81. package/dist/native/android/MaterialSwitch.android.tsrx.js +28 -0
  82. package/dist/native/android/RecyclerView.android.tsrx.js +260 -0
  83. package/dist/native/android/SeekBar.android.tsrx.js +34 -0
  84. package/dist/native/android/icon.android.js +7 -0
  85. package/dist/native/android/index.js +11 -0
  86. package/dist/native/android/openModal.android.js +39 -0
  87. package/dist/native/{ui41.js → anim.tsrx.js} +1 -1
  88. package/dist/native/apply-native-modifiers.native.js +9 -0
  89. package/dist/native/child-array.js +15 -0
  90. package/dist/native/{ui3.js → escape-props.js} +3 -1
  91. package/dist/native/icons.js +25 -0
  92. package/dist/native/index.shared.js +92 -0
  93. package/dist/native/{ui11.js → ios/LiquidGlass.ios.tsrx.js} +4 -4
  94. package/dist/native/{ui12.js → ios/LiquidGlassContainer.ios.tsrx.js} +4 -4
  95. package/dist/native/ios/SideDrawer.ios.tsrx.js +65 -0
  96. package/dist/native/{ui53.js → ios/UIActivityIndicatorView.ios.tsrx.js} +5 -5
  97. package/dist/native/{ui32.js → ios/UIModal.ios.tsrx.js} +10 -6
  98. package/dist/native/{ui56.js → ios/UISlider.ios.tsrx.js} +5 -5
  99. package/dist/native/{ui47.js → ios/UISwitch.ios.tsrx.js} +5 -5
  100. package/dist/native/ios/UITabBar.ios.tsrx.js +187 -0
  101. package/dist/native/ios/UITableView.ios.tsrx.js +282 -0
  102. package/dist/native/ios/icon.ios.js +7 -0
  103. package/dist/native/ios/index.js +13 -0
  104. package/dist/native/{ui33.js → ios/openModal.ios.js} +5 -4
  105. package/dist/native/keyboard-inset.mobile.js +66 -0
  106. package/dist/native/{ui5.js → layout-child.js} +1 -1
  107. package/dist/native/modal-presenter.mobile.js +19 -0
  108. package/dist/native/modifier-factories.js +24 -0
  109. package/dist/native/native/index.js +4 -0
  110. package/dist/native/octane-client-build.json +1 -1
  111. package/dist/native/{ui6.js → pan.tsrx.js} +9 -69
  112. package/dist/native/platform.js +10 -0
  113. package/dist/native/{ui36.js → platformProps.js} +3 -1
  114. package/dist/native/refresh-metrics.js +9 -0
  115. package/dist/native/refresh.js +177 -0
  116. package/dist/native/{ui34.js → root-layout.mobile.js} +8 -3
  117. package/dist/native/route-host.mobile.js +2 -0
  118. package/dist/native/{ui19.js → route-table.js} +105 -4
  119. package/dist/native/{ui21.js → route.js} +140 -20
  120. package/dist/native/safeAreaInsets.tsrx.js +67 -0
  121. package/dist/native/shared.js +93 -0
  122. package/dist/native/sheet-detents.js +102 -0
  123. package/dist/native/{ui64.js → sheet-service.js} +26 -10
  124. package/dist/native/sheet-snap.js +35 -0
  125. package/dist/native/{ui18.js → stacks.js} +1 -1
  126. package/dist/native/{ui43.js → styled.tsrx.js} +1 -1
  127. package/dist/native/{ui28.js → svg.mobile.js} +2 -2
  128. package/dist/native/tap-to-blur.mobile.js +94 -0
  129. package/dist/native/text-write.js +27 -0
  130. package/dist/native/{ui30.js → theme/colorScheme.js} +2 -2
  131. package/dist/native/{ui42.js → theme/status-bar-scheme.mobile.js} +3 -3
  132. package/dist/{web/ui29.js → native/theme/theme-scheme.js} +3 -3
  133. package/dist/native/{ui40.js → toast-anchor.tsrx.js} +4 -4
  134. package/dist/native/translate.js +11 -0
  135. package/dist/native/ui.js +95 -55
  136. package/dist/native/use-back.tsrx.js +9 -0
  137. package/dist/native/{ui62.js → use-store.tsrx.js} +1 -1
  138. package/dist/native/{ui52.js → useMeasure.tsrx.js} +2 -2
  139. package/dist/native/vendor/ui-svg/index.android.js +137 -0
  140. package/dist/native/vendor/ui-svg/index.common.js +10 -0
  141. package/dist/native/vendor/ui-svg/index.ios.js +111 -0
  142. package/dist/native/virtual-list-layout.js +146 -0
  143. package/dist/native/{ui44.js → windows.js} +1 -1
  144. package/dist/web/Absolute.web.tsrx.js +47 -0
  145. package/dist/web/Accordion.web.tsrx.js +85 -0
  146. package/dist/web/{ui48.js → ActivityIndicator.web.tsrx.js} +1 -1
  147. package/dist/web/Alert.web.tsrx.js +79 -0
  148. package/dist/web/Avatar.web.tsrx.js +106 -0
  149. package/dist/web/AvatarGroup.web.tsrx.js +108 -0
  150. package/dist/web/Badge.web.tsrx.js +37 -0
  151. package/dist/web/Banner.web.tsrx.js +79 -0
  152. package/dist/web/Breadcrumb.web.tsrx.js +135 -0
  153. package/dist/web/Button.web.tsrx.js +45 -0
  154. package/dist/web/Card.web.tsrx.js +73 -0
  155. package/dist/web/Checkbox.web.tsrx.js +89 -0
  156. package/dist/web/CheckboxGroup.web.tsrx.js +79 -0
  157. package/dist/web/Chip.web.tsrx.js +64 -0
  158. package/dist/web/Collapsible.web.tsrx.js +94 -0
  159. package/dist/web/CommandPalette.web.tsrx.js +125 -0
  160. package/dist/web/ContextMenu.web.tsrx.js +154 -0
  161. package/dist/web/{ui45.js → Drawer.web.tsrx.js} +13 -9
  162. package/dist/web/DropdownMenu.web.tsrx.js +162 -0
  163. package/dist/web/Empty.web.tsrx.js +89 -0
  164. package/dist/web/FieldGroup.web.tsrx.js +57 -0
  165. package/dist/web/FormField.web.tsrx.js +92 -0
  166. package/dist/web/Grid.web.tsrx.js +65 -0
  167. package/dist/web/{ui54.js → Heading.web.tsrx.js} +2 -2
  168. package/dist/web/{ui34.js → Hoverable.web.tsrx.js} +6 -5
  169. package/dist/web/{ui53.js → Icon.web.tsrx.js} +2 -2
  170. package/dist/web/{ui25.js → Image.web.tsrx.js} +2 -2
  171. package/dist/web/InputNumber.web.tsrx.js +99 -0
  172. package/dist/web/InputRating.web.tsrx.js +72 -0
  173. package/dist/web/InputTags.web.tsrx.js +122 -0
  174. package/dist/web/Kbd.web.tsrx.js +37 -0
  175. package/dist/web/ListItem.web.tsrx.js +139 -0
  176. package/dist/web/{ui50.js → Meter.web.tsrx.js} +1 -1
  177. package/dist/web/{ui19.js → NavLink.web.tsrx.js} +1 -1
  178. package/dist/web/NavigationMenu.web.tsrx.js +118 -0
  179. package/dist/web/{ui31.js → Overlay.web.tsrx.js} +2 -2
  180. package/dist/web/Pagination.web.tsrx.js +80 -0
  181. package/dist/web/PinInput.web.tsrx.js +72 -0
  182. package/dist/web/{ui33.js → Popover.web.tsrx.js} +3 -3
  183. package/dist/web/{ui15.js → Pressable.web.tsrx.js} +68 -95
  184. package/dist/web/ProgressGroup.web.tsrx.js +109 -0
  185. package/dist/web/RadioGroup.web.tsrx.js +69 -0
  186. package/dist/web/{ui14.js → RichText.web.tsrx.js} +2 -2
  187. package/dist/web/Row.web.tsrx.js +250 -0
  188. package/dist/web/{ui43.js → SafeArea.web.tsrx.js} +10 -4
  189. package/dist/web/{ui39.js → Screen.web.tsrx.js} +1 -1
  190. package/dist/web/{ui24.js → ScrollBox.web.tsrx.js} +1 -1
  191. package/dist/web/ScrollView.web.tsrx.js +388 -0
  192. package/dist/web/SearchInput.web.tsrx.js +137 -0
  193. package/dist/web/SegmentedControl.web.tsrx.js +75 -0
  194. package/dist/web/Select.web.tsrx.js +149 -0
  195. package/dist/web/Separator.web.tsrx.js +42 -0
  196. package/dist/web/Sheet.web.tsrx.js +81 -0
  197. package/dist/web/Skeleton.web.tsrx.js +56 -0
  198. package/dist/web/Slider.web.tsrx.js +97 -0
  199. package/dist/web/{ui12.js → Spacer.web.tsrx.js} +1 -1
  200. package/dist/web/Stack.web.tsrx.js +47 -0
  201. package/dist/web/Stepper.web.tsrx.js +65 -0
  202. package/dist/web/Switch.web.tsrx.js +59 -0
  203. package/dist/web/Table.web.tsrx.js +161 -0
  204. package/dist/web/Tabs.web.tsrx.js +215 -0
  205. package/dist/web/{ui13.js → Text.web.tsrx.js} +18 -50
  206. package/dist/web/{ui21.js → TextArea.web.tsrx.js} +4 -4
  207. package/dist/web/{ui20.js → TextInput.web.tsrx.js} +8 -8
  208. package/dist/web/Timeline.web.tsrx.js +172 -0
  209. package/dist/web/Tooltip.web.tsrx.js +184 -0
  210. package/dist/web/Tree.web.tsrx.js +146 -0
  211. package/dist/web/User.web.tsrx.js +116 -0
  212. package/dist/web/View.web.tsrx.js +250 -0
  213. package/dist/web/VirtualList.web.tsrx.js +622 -0
  214. package/dist/web/WebView.web.tsrx.js +272 -0
  215. package/dist/web/aliases.web.tsrx.js +24 -0
  216. package/dist/web/{ui36.js → anim.web.tsrx.js} +3 -35
  217. package/dist/web/child-array.js +15 -0
  218. package/dist/web/icons.js +25 -0
  219. package/dist/web/index.shared.web.js +92 -0
  220. package/dist/web/octane-client-build.json +1 -1
  221. package/dist/web/pan.web.tsrx.js +66 -0
  222. package/dist/web/platform.web.js +9 -0
  223. package/dist/web/refresh-metrics.js +9 -0
  224. package/dist/web/refresh.web.js +133 -0
  225. package/dist/web/{ui17.js → route-table.js} +105 -4
  226. package/dist/web/{ui18.js → route.web.js} +48 -11
  227. package/dist/web/sheet-detents.web.js +103 -0
  228. package/dist/web/{ui60.js → sheet-service.web.js} +5 -1
  229. package/dist/web/sheet-snap.js +35 -0
  230. package/dist/{native/ui31.js → web/theme/theme-scheme.js} +2 -2
  231. package/dist/web/{ui35.js → toast-anchor.web.tsrx.js} +3 -3
  232. package/dist/web/transform.web.js +43 -0
  233. package/dist/web/translate.web.js +13 -0
  234. package/dist/web/ui.js +93 -53
  235. package/dist/web/use-back.web.tsrx.js +9 -0
  236. package/dist/web/virtual-list-layout.js +146 -0
  237. package/dist/web/web/index.js +3 -0
  238. package/package.json +53 -14
  239. package/platforms/android/include.gradle +8 -0
  240. package/platforms/android/native-api-usage.json +8 -0
  241. package/platforms/ios/Podfile +2 -0
  242. package/src/Absolute.tsrx +22 -0
  243. package/src/Absolute.web.tsrx +22 -0
  244. package/src/Accordion.macos.tsrx +50 -0
  245. package/src/Accordion.tsrx +50 -0
  246. package/src/Accordion.web.tsrx +43 -0
  247. package/src/ActivityIndicator.tsrx +29 -0
  248. package/src/ActivityIndicator.web.tsrx +14 -0
  249. package/src/Alert.macos.tsrx +42 -0
  250. package/src/Alert.tsrx +24 -0
  251. package/src/Alert.web.tsrx +23 -0
  252. package/src/Avatar.macos.tsrx +25 -0
  253. package/src/Avatar.tsrx +25 -0
  254. package/src/Avatar.web.tsrx +24 -0
  255. package/src/AvatarGroup.macos.tsrx +32 -0
  256. package/src/AvatarGroup.tsrx +32 -0
  257. package/src/AvatarGroup.web.tsrx +29 -0
  258. package/src/Badge.macos.tsrx +12 -0
  259. package/src/Badge.tsrx +12 -0
  260. package/src/Badge.web.tsrx +10 -0
  261. package/src/Banner.macos.tsrx +20 -0
  262. package/src/Banner.tsrx +20 -0
  263. package/src/Banner.web.tsrx +20 -0
  264. package/src/Breadcrumb.macos.tsrx +27 -0
  265. package/src/Breadcrumb.tsrx +27 -0
  266. package/src/Breadcrumb.web.tsrx +25 -0
  267. package/src/Button.tsrx +23 -0
  268. package/src/Button.web.tsrx +21 -0
  269. package/src/CameraView.macos.tsrx +6 -0
  270. package/src/Card.macos.tsrx +13 -0
  271. package/src/Card.tsrx +13 -0
  272. package/src/Card.web.tsrx +11 -0
  273. package/src/Checkbox.tsrx +23 -0
  274. package/src/Checkbox.web.tsrx +34 -0
  275. package/src/CheckboxGroup.macos.tsrx +39 -0
  276. package/src/CheckboxGroup.tsrx +39 -0
  277. package/src/CheckboxGroup.web.tsrx +38 -0
  278. package/src/Chip.macos.tsrx +25 -0
  279. package/src/Chip.tsrx +25 -0
  280. package/src/Chip.web.tsrx +25 -0
  281. package/src/Collapsible.macos.tsrx +39 -0
  282. package/src/Collapsible.tsrx +39 -0
  283. package/src/Collapsible.web.tsrx +33 -0
  284. package/src/CommandPalette.macos.tsrx +58 -0
  285. package/src/CommandPalette.tsrx +58 -0
  286. package/src/CommandPalette.web.tsrx +59 -0
  287. package/src/ContextMenu.macos.tsrx +59 -0
  288. package/src/ContextMenu.tsrx +59 -0
  289. package/src/ContextMenu.web.tsrx +69 -0
  290. package/src/Drawer.macos.tsrx +28 -0
  291. package/src/Drawer.tsrx +25 -0
  292. package/src/Drawer.web.tsrx +31 -0
  293. package/src/DropdownMenu.macos.tsrx +63 -0
  294. package/src/DropdownMenu.tsrx +63 -0
  295. package/src/DropdownMenu.web.tsrx +78 -0
  296. package/src/Empty.macos.tsrx +15 -0
  297. package/src/Empty.tsrx +15 -0
  298. package/src/Empty.web.tsrx +13 -0
  299. package/src/FieldGroup.macos.tsrx +17 -0
  300. package/src/FieldGroup.tsrx +17 -0
  301. package/src/FieldGroup.web.tsrx +17 -0
  302. package/src/FormField.macos.tsrx +25 -0
  303. package/src/FormField.tsrx +25 -0
  304. package/src/FormField.web.tsrx +24 -0
  305. package/src/Grid.tsrx +32 -0
  306. package/src/Grid.web.tsrx +43 -0
  307. package/src/Heading.macos.tsrx +8 -0
  308. package/src/Heading.tsrx +17 -0
  309. package/src/Heading.web.tsrx +15 -0
  310. package/src/Hoverable.mobile.tsrx +21 -0
  311. package/src/Hoverable.tsrx +113 -0
  312. package/src/Hoverable.web.tsrx +98 -0
  313. package/src/Icon.macos.tsrx +18 -0
  314. package/src/Icon.tsrx +65 -0
  315. package/src/Icon.web.tsrx +75 -0
  316. package/src/Image.macos.tsrx +12 -0
  317. package/src/Image.tsrx +51 -0
  318. package/src/Image.web.tsrx +14 -0
  319. package/src/InputNumber.macos.tsrx +49 -0
  320. package/src/InputNumber.tsrx +49 -0
  321. package/src/InputNumber.web.tsrx +47 -0
  322. package/src/InputRating.macos.tsrx +42 -0
  323. package/src/InputRating.tsrx +39 -0
  324. package/src/InputRating.web.tsrx +52 -0
  325. package/src/InputTags.macos.tsrx +49 -0
  326. package/src/InputTags.tsrx +49 -0
  327. package/src/InputTags.web.tsrx +49 -0
  328. package/src/Kbd.macos.tsrx +11 -0
  329. package/src/Kbd.tsrx +11 -0
  330. package/src/Kbd.web.tsrx +9 -0
  331. package/src/KeyboardAvoiding.macos.tsrx +8 -0
  332. package/src/KeyboardAvoiding.mobile.tsrx +63 -0
  333. package/src/Link.macos.tsrx +15 -0
  334. package/src/Link.tsrx +10 -0
  335. package/src/Link.web.tsrx +12 -0
  336. package/src/ListItem.macos.tsrx +52 -0
  337. package/src/ListItem.tsrx +52 -0
  338. package/src/ListItem.web.tsrx +50 -0
  339. package/src/Meter.macos.tsrx +8 -0
  340. package/src/Meter.tsrx +45 -0
  341. package/src/Meter.web.tsrx +32 -0
  342. package/src/NavLink.macos.tsrx +24 -0
  343. package/src/NavLink.tsrx +22 -0
  344. package/src/NavLink.web.tsrx +23 -0
  345. package/src/NavigationMenu.macos.tsrx +31 -0
  346. package/src/NavigationMenu.tsrx +28 -0
  347. package/src/NavigationMenu.web.tsrx +31 -0
  348. package/src/Overlay.macos.tsrx +11 -0
  349. package/src/Overlay.tsrx +84 -0
  350. package/src/Overlay.web.tsrx +23 -0
  351. package/src/Pagination.macos.tsrx +54 -0
  352. package/src/Pagination.tsrx +47 -0
  353. package/src/Pagination.web.tsrx +50 -0
  354. package/src/PinInput.macos.tsrx +46 -0
  355. package/src/PinInput.tsrx +46 -0
  356. package/src/PinInput.web.tsrx +45 -0
  357. package/src/Popover.macos.tsrx +11 -0
  358. package/src/Popover.tsrx +157 -0
  359. package/src/Popover.web.tsrx +109 -0
  360. package/src/Pressable.macos.tsrx +19 -0
  361. package/src/Pressable.tsrx +37 -0
  362. package/src/Pressable.web.tsrx +45 -0
  363. package/src/ProgressGroup.macos.tsrx +17 -0
  364. package/src/ProgressGroup.tsrx +17 -0
  365. package/src/ProgressGroup.web.tsrx +15 -0
  366. package/src/RadioGroup.macos.tsrx +50 -0
  367. package/src/RadioGroup.tsrx +34 -0
  368. package/src/RadioGroup.web.tsrx +43 -0
  369. package/src/RichText.tsrx +40 -0
  370. package/src/RichText.web.tsrx +24 -0
  371. package/src/RouteHost.macos.tsrx +18 -0
  372. package/src/RouteHost.mobile.tsrx +44 -0
  373. package/src/Row.macos.tsrx +26 -0
  374. package/src/Row.tsrx +27 -0
  375. package/src/Row.web.tsrx +27 -0
  376. package/src/SafeArea.macos.tsrx +8 -0
  377. package/src/SafeArea.tsrx +20 -0
  378. package/src/SafeArea.web.tsrx +24 -0
  379. package/src/Screen.macos.tsrx +14 -0
  380. package/src/Screen.tsrx +31 -0
  381. package/src/Screen.web.tsrx +7 -0
  382. package/src/ScrollBox.tsrx +8 -0
  383. package/src/ScrollBox.web.tsrx +7 -0
  384. package/src/ScrollView.macos.tsrx +19 -0
  385. package/src/ScrollView.tsrx +117 -0
  386. package/src/ScrollView.web.tsrx +109 -0
  387. package/src/SearchInput.tsrx +60 -0
  388. package/src/SearchInput.web.test.tsrx +58 -0
  389. package/src/SearchInput.web.tsrx +55 -0
  390. package/src/SegmentedControl.tsrx +43 -0
  391. package/src/SegmentedControl.web.test.tsrx +46 -0
  392. package/src/SegmentedControl.web.tsrx +51 -0
  393. package/src/Select.macos.tsrx +104 -0
  394. package/src/Select.tsrx +104 -0
  395. package/src/Select.web.tsrx +124 -0
  396. package/src/Separator.macos.tsrx +17 -0
  397. package/src/Separator.tsrx +17 -0
  398. package/src/Separator.web.tsrx +17 -0
  399. package/src/Sheet.macos.tsrx +15 -0
  400. package/src/Sheet.tsrx +122 -0
  401. package/src/Sheet.web.tsrx +56 -0
  402. package/src/Skeleton.macos.tsrx +15 -0
  403. package/src/Skeleton.tsrx +15 -0
  404. package/src/Skeleton.web.tsrx +15 -0
  405. package/src/Slider.tsrx +71 -0
  406. package/src/Slider.web.tsrx +60 -0
  407. package/src/Spacer.tsrx +8 -0
  408. package/src/Spacer.web.tsrx +6 -0
  409. package/src/Stack.tsrx +24 -0
  410. package/src/Stack.web.tsrx +22 -0
  411. package/src/Stepper.macos.tsrx +52 -0
  412. package/src/Stepper.tsrx +31 -0
  413. package/src/Stepper.web.tsrx +37 -0
  414. package/src/Switch.tsrx +21 -0
  415. package/src/Switch.web.tsrx +28 -0
  416. package/src/Table.macos.tsrx +37 -0
  417. package/src/Table.tsrx +37 -0
  418. package/src/Table.web.tsrx +37 -0
  419. package/src/Tabs.macos.tsrx +60 -0
  420. package/src/Tabs.tsrx +55 -0
  421. package/src/Tabs.web.tsrx +98 -0
  422. package/src/Text.macos.tsrx +18 -0
  423. package/src/Text.tsrx +62 -0
  424. package/src/Text.web.tsrx +31 -0
  425. package/src/TextArea.tsrx +65 -0
  426. package/src/TextArea.web.tsrx +61 -0
  427. package/src/TextInput.tsrx +39 -0
  428. package/src/TextInput.web.tsrx +28 -0
  429. package/src/Timeline.macos.tsrx +27 -0
  430. package/src/Timeline.tsrx +24 -0
  431. package/src/Timeline.web.tsrx +22 -0
  432. package/src/Tooltip.mobile.tsrx +20 -0
  433. package/src/Tooltip.tsrx +102 -0
  434. package/src/Tooltip.web.tsrx +156 -0
  435. package/src/Tree.macos.tsrx +45 -0
  436. package/src/Tree.tsrx +45 -0
  437. package/src/Tree.web.tsrx +52 -0
  438. package/src/User.macos.tsrx +24 -0
  439. package/src/User.tsrx +24 -0
  440. package/src/User.web.tsrx +24 -0
  441. package/src/View.macos.tsrx +29 -0
  442. package/src/View.tsrx +32 -0
  443. package/src/View.web.tsrx +33 -0
  444. package/src/VirtualList.macos.tsrx +298 -0
  445. package/src/VirtualList.tsrx +358 -0
  446. package/src/VirtualList.web.tsrx +313 -0
  447. package/src/WebView.macos.tsrx +6 -0
  448. package/src/WebView.tsrx +89 -0
  449. package/src/WebView.web.tsrx +92 -0
  450. package/src/aliases.macos.tsrx +18 -0
  451. package/src/aliases.tsrx +18 -0
  452. package/src/aliases.web.tsrx +17 -0
  453. package/src/android/BottomNavigationView.android.tsrx +170 -0
  454. package/src/android/CircularProgressIndicator.android.tsrx +19 -0
  455. package/src/android/DrawerLayout.android.tsrx +48 -0
  456. package/src/android/MaterialDialog.android.tsrx +62 -0
  457. package/src/android/MaterialSwitch.android.tsrx +18 -0
  458. package/src/android/RecyclerView.android.tsrx +173 -0
  459. package/src/android/SeekBar.android.tsrx +20 -0
  460. package/src/android/icon.android.ts +8 -0
  461. package/src/android/index.ts +37 -0
  462. package/src/android/openModal.android.ts +55 -0
  463. package/src/anim.macos.tsrx +20 -0
  464. package/src/anim.tsrx +65 -0
  465. package/src/anim.web.tsrx +55 -0
  466. package/src/apply-native-modifiers.native.ts +13 -0
  467. package/src/camera-permission.web.ts +11 -0
  468. package/src/child-array.ts +16 -0
  469. package/src/colorScheme.macos.ts +27 -0
  470. package/src/controls.macos.tsrx +171 -0
  471. package/src/cx.ts +8 -0
  472. package/src/escape-props.macos.ts +11 -0
  473. package/src/escape-props.ts +70 -0
  474. package/src/escape-props.web.ts +25 -0
  475. package/src/hosted-unsupported.macos.tsrx +9 -0
  476. package/src/icons.ts +60 -0
  477. package/src/index.linux.ts +10 -0
  478. package/src/index.macos.ts +106 -0
  479. package/src/index.mobile.ts +6 -0
  480. package/src/index.shared.ts +269 -0
  481. package/src/index.shared.web.ts +270 -0
  482. package/src/index.ts +1 -0
  483. package/src/index.web.ts +1 -0
  484. package/src/ios/LiquidGlass.ios.tsrx +41 -0
  485. package/src/ios/LiquidGlassContainer.ios.tsrx +34 -0
  486. package/src/ios/SideDrawer.ios.tsrx +49 -0
  487. package/src/ios/UIActivityIndicatorView.ios.tsrx +18 -0
  488. package/src/ios/UIModal.ios.tsrx +68 -0
  489. package/src/ios/UISlider.ios.tsrx +20 -0
  490. package/src/ios/UISwitch.ios.tsrx +18 -0
  491. package/src/ios/UITabBar.ios.tsrx +172 -0
  492. package/src/ios/UITableView.ios.tsrx +186 -0
  493. package/src/ios/icon.ios.ts +8 -0
  494. package/src/ios/index.ts +42 -0
  495. package/src/ios/openModal.ios.ts +55 -0
  496. package/src/keyboard-inset.mobile.ts +89 -0
  497. package/src/layout-child.ts +57 -0
  498. package/src/layout-child.web.ts +108 -0
  499. package/src/layout-shells.macos.tsrx +10 -0
  500. package/src/layout.macos.tsrx +41 -0
  501. package/src/macos-extras.macos.tsrx +40 -0
  502. package/src/meter-math.ts +6 -0
  503. package/src/modal-presenter.mobile.ts +24 -0
  504. package/src/modifier-factories.ts +20 -0
  505. package/src/native/index.ts +6 -0
  506. package/src/pan.tsrx +64 -0
  507. package/src/pan.web.tsrx +38 -0
  508. package/src/platform.macos.ts +1 -0
  509. package/src/platform.ts +7 -0
  510. package/src/platform.web.ts +6 -0
  511. package/src/platformProps.ts +23 -0
  512. package/src/platformProps.web.ts +14 -0
  513. package/src/popover-position.ts +62 -0
  514. package/src/popover.mobile.test.ts +54 -0
  515. package/src/props.ts +1812 -0
  516. package/src/references.d.ts +2 -0
  517. package/src/refresh-metrics.ts +11 -0
  518. package/src/refresh.ts +271 -0
  519. package/src/refresh.web.test.ts +111 -0
  520. package/src/refresh.web.ts +205 -0
  521. package/src/root-layout.mobile.ts +89 -0
  522. package/src/route-host.mobile.ts +1 -0
  523. package/src/route-table.test.ts +345 -0
  524. package/src/route-table.ts +585 -0
  525. package/src/route.macos.ts +201 -0
  526. package/src/route.ts +703 -0
  527. package/src/route.web.ts +366 -0
  528. package/src/safeAreaInsets.macos.tsrx +7 -0
  529. package/src/safeAreaInsets.tsrx +60 -0
  530. package/src/safeAreaInsets.web.tsrx +38 -0
  531. package/src/sheet-detents.ts +142 -0
  532. package/src/sheet-detents.web.ts +147 -0
  533. package/src/sheet-service.macos.ts +60 -0
  534. package/src/sheet-service.ts +124 -0
  535. package/src/sheet-service.web.ts +64 -0
  536. package/src/sheet-snap.test.ts +46 -0
  537. package/src/sheet-snap.ts +66 -0
  538. package/src/stacks.macos.ts +13 -0
  539. package/src/stacks.ts +44 -0
  540. package/src/stacks.web.ts +9 -0
  541. package/src/store.mobile.test.ts +149 -0
  542. package/src/store.ts +39 -0
  543. package/src/store.web.test.tsrx +58 -0
  544. package/src/styled.macos.tsrx +23 -0
  545. package/src/styled.test.ts +40 -0
  546. package/src/styled.tsrx +36 -0
  547. package/src/styled.web.tsrx +23 -0
  548. package/src/surfaces.macos.tsrx +27 -0
  549. package/src/svg.mobile.ts +76 -0
  550. package/src/tap-to-blur.mobile.ts +108 -0
  551. package/src/text-controls.macos.tsrx +11 -0
  552. package/src/text-write.ts +28 -0
  553. package/src/text-write.web.ts +13 -0
  554. package/src/theme/colorScheme.linux.ts +52 -0
  555. package/src/theme/colorScheme.ts +26 -0
  556. package/src/theme/colorScheme.web.ts +20 -0
  557. package/src/theme/status-bar-scheme.mobile.ts +39 -0
  558. package/src/theme/theme-scheme.macos.ts +50 -0
  559. package/src/theme/theme-scheme.ts +66 -0
  560. package/src/theme/tokens.css +1408 -206
  561. package/src/toast-anchor.macos.tsrx +3 -0
  562. package/src/toast-anchor.tsrx +122 -0
  563. package/src/toast-anchor.web.tsrx +92 -0
  564. package/src/toast.tsrx +90 -0
  565. package/src/toast.web.tsrx +50 -0
  566. package/src/transform.web.ts +52 -0
  567. package/src/translate.macos.ts +5 -0
  568. package/src/translate.ts +13 -0
  569. package/src/translate.web.ts +15 -0
  570. package/src/tsconfig.json +8 -0
  571. package/src/unsupported.macos.tsrx +5 -0
  572. package/src/use-back.tsrx +11 -0
  573. package/src/use-back.web.tsrx +12 -0
  574. package/src/use-store.tsrx +18 -0
  575. package/src/use-store.web.tsrx +18 -0
  576. package/src/useMeasure.macos.tsrx +23 -0
  577. package/src/useMeasure.tsrx +66 -0
  578. package/src/useMeasure.web.tsrx +39 -0
  579. package/src/useStore.macos.tsrx +6 -0
  580. package/src/vendor/ui-svg/LICENSE +201 -0
  581. package/src/vendor/ui-svg/index.android.ts +189 -0
  582. package/src/vendor/ui-svg/index.common.ts +19 -0
  583. package/src/vendor/ui-svg/index.ios.ts +147 -0
  584. package/src/vendor/ui-svg/index.ts +1 -0
  585. package/src/vendor/ui-svg/typings/SVGKit.d.ts +2862 -0
  586. package/src/vendor/ui-svg/typings/android.d.ts +1483 -0
  587. package/src/vendor/ui-svg/typings/ios.d.ts +1511 -0
  588. package/src/virtual-list-layout.test.ts +81 -0
  589. package/src/virtual-list-layout.ts +246 -0
  590. package/src/web/index.ts +11 -0
  591. package/src/windows.linux.ts +59 -0
  592. package/src/windows.macos.ts +10 -0
  593. package/src/windows.ts +7 -0
  594. package/src/windows.web.ts +6 -0
  595. package/types/generated/.tsrx-typegen-manifest.json +250 -0
  596. package/types/generated/Absolute.d.ts +3 -0
  597. package/types/generated/Absolute.web.d.ts +3 -0
  598. package/types/generated/Accordion.d.ts +5 -0
  599. package/types/generated/Accordion.web.d.ts +5 -0
  600. package/types/generated/ActivityIndicator.d.ts +7 -0
  601. package/types/generated/ActivityIndicator.web.d.ts +3 -0
  602. package/types/generated/Alert.d.ts +4 -0
  603. package/types/generated/Alert.web.d.ts +5 -0
  604. package/types/generated/Avatar.d.ts +6 -0
  605. package/types/generated/Avatar.web.d.ts +7 -0
  606. package/types/generated/AvatarGroup.d.ts +6 -0
  607. package/types/generated/AvatarGroup.web.d.ts +6 -0
  608. package/types/generated/Badge.d.ts +5 -0
  609. package/types/generated/Badge.web.d.ts +5 -0
  610. package/types/generated/Banner.d.ts +4 -0
  611. package/types/generated/Banner.web.d.ts +4 -0
  612. package/types/generated/Breadcrumb.d.ts +4 -0
  613. package/types/generated/Breadcrumb.web.d.ts +5 -0
  614. package/types/generated/Button.d.ts +6 -0
  615. package/types/generated/Button.web.d.ts +6 -0
  616. package/types/generated/Card.d.ts +4 -0
  617. package/types/generated/Card.web.d.ts +4 -0
  618. package/types/generated/Checkbox.d.ts +5 -0
  619. package/types/generated/Checkbox.web.d.ts +6 -0
  620. package/types/generated/CheckboxGroup.d.ts +3 -0
  621. package/types/generated/CheckboxGroup.web.d.ts +3 -0
  622. package/types/generated/Chip.d.ts +5 -0
  623. package/types/generated/Chip.web.d.ts +5 -0
  624. package/types/generated/Collapsible.d.ts +5 -0
  625. package/types/generated/Collapsible.web.d.ts +5 -0
  626. package/types/generated/CommandPalette.d.ts +4 -0
  627. package/types/generated/CommandPalette.web.d.ts +4 -0
  628. package/types/generated/ContextMenu.d.ts +5 -0
  629. package/types/generated/ContextMenu.web.d.ts +4 -0
  630. package/types/generated/Drawer.d.ts +7 -0
  631. package/types/generated/Drawer.web.d.ts +7 -0
  632. package/types/generated/DropdownMenu.d.ts +5 -0
  633. package/types/generated/DropdownMenu.web.d.ts +5 -0
  634. package/types/generated/Empty.d.ts +4 -0
  635. package/types/generated/Empty.web.d.ts +4 -0
  636. package/types/generated/FieldGroup.d.ts +4 -0
  637. package/types/generated/FieldGroup.web.d.ts +4 -0
  638. package/types/generated/FormField.d.ts +5 -0
  639. package/types/generated/FormField.web.d.ts +5 -0
  640. package/types/generated/Grid.d.ts +3 -0
  641. package/types/generated/Grid.web.d.ts +3 -0
  642. package/types/generated/Heading.d.ts +2 -0
  643. package/types/generated/Heading.web.d.ts +2 -0
  644. package/types/generated/Hoverable.d.ts +10 -0
  645. package/types/generated/Hoverable.web.d.ts +9 -0
  646. package/types/generated/Icon.d.ts +3 -0
  647. package/types/generated/Icon.web.d.ts +3 -0
  648. package/types/generated/Image.d.ts +7 -0
  649. package/types/generated/Image.web.d.ts +3 -0
  650. package/types/generated/InputNumber.d.ts +5 -0
  651. package/types/generated/InputNumber.web.d.ts +5 -0
  652. package/types/generated/InputRating.d.ts +4 -0
  653. package/types/generated/InputRating.web.d.ts +4 -0
  654. package/types/generated/InputTags.d.ts +4 -0
  655. package/types/generated/InputTags.web.d.ts +5 -0
  656. package/types/generated/Kbd.d.ts +4 -0
  657. package/types/generated/Kbd.web.d.ts +4 -0
  658. package/types/generated/KeyboardAvoiding.mobile.d.ts +2 -0
  659. package/types/generated/Link.d.ts +2 -0
  660. package/types/generated/Link.web.d.ts +3 -0
  661. package/types/generated/ListItem.d.ts +3 -0
  662. package/types/generated/ListItem.web.d.ts +3 -0
  663. package/types/generated/Meter.d.ts +3 -0
  664. package/types/generated/Meter.web.d.ts +3 -0
  665. package/types/generated/NavLink.d.ts +3 -0
  666. package/types/generated/NavLink.web.d.ts +3 -0
  667. package/types/generated/NavigationMenu.d.ts +4 -0
  668. package/types/generated/NavigationMenu.web.d.ts +5 -0
  669. package/types/generated/Overlay.d.ts +3 -0
  670. package/types/generated/Overlay.web.d.ts +3 -0
  671. package/types/generated/Pagination.d.ts +4 -0
  672. package/types/generated/Pagination.web.d.ts +5 -0
  673. package/types/generated/PinInput.d.ts +4 -0
  674. package/types/generated/PinInput.web.d.ts +4 -0
  675. package/types/generated/Popover.d.ts +6 -0
  676. package/types/generated/Popover.web.d.ts +3 -0
  677. package/types/generated/Pressable.d.ts +6 -0
  678. package/types/generated/Pressable.web.d.ts +2 -0
  679. package/types/generated/ProgressGroup.d.ts +3 -0
  680. package/types/generated/ProgressGroup.web.d.ts +4 -0
  681. package/types/generated/RadioGroup.d.ts +5 -0
  682. package/types/generated/RadioGroup.web.d.ts +5 -0
  683. package/types/generated/RichText.d.ts +7 -0
  684. package/types/generated/RichText.web.d.ts +3 -0
  685. package/types/generated/RouteHost.mobile.d.ts +14 -0
  686. package/types/generated/Row.d.ts +2 -0
  687. package/types/generated/Row.web.d.ts +2 -0
  688. package/types/generated/SafeArea.d.ts +2 -0
  689. package/types/generated/SafeArea.web.d.ts +3 -0
  690. package/types/generated/Screen.d.ts +3 -0
  691. package/types/generated/Screen.web.d.ts +3 -0
  692. package/types/generated/ScrollBox.d.ts +3 -0
  693. package/types/generated/ScrollBox.web.d.ts +3 -0
  694. package/types/generated/ScrollView.d.ts +7 -0
  695. package/types/generated/ScrollView.web.d.ts +6 -0
  696. package/types/generated/SearchInput.d.ts +7 -0
  697. package/types/generated/SearchInput.web.d.ts +6 -0
  698. package/types/generated/SegmentedControl.d.ts +7 -0
  699. package/types/generated/SegmentedControl.web.d.ts +6 -0
  700. package/types/generated/Select.d.ts +6 -0
  701. package/types/generated/Select.web.d.ts +6 -0
  702. package/types/generated/Separator.d.ts +5 -0
  703. package/types/generated/Separator.web.d.ts +5 -0
  704. package/types/generated/Sheet.d.ts +5 -0
  705. package/types/generated/Sheet.web.d.ts +7 -0
  706. package/types/generated/Skeleton.d.ts +5 -0
  707. package/types/generated/Skeleton.web.d.ts +6 -0
  708. package/types/generated/Slider.d.ts +6 -0
  709. package/types/generated/Slider.web.d.ts +6 -0
  710. package/types/generated/Spacer.d.ts +3 -0
  711. package/types/generated/Spacer.web.d.ts +3 -0
  712. package/types/generated/Stack.d.ts +3 -0
  713. package/types/generated/Stack.web.d.ts +3 -0
  714. package/types/generated/Stepper.d.ts +4 -0
  715. package/types/generated/Stepper.web.d.ts +5 -0
  716. package/types/generated/Switch.d.ts +7 -0
  717. package/types/generated/Switch.web.d.ts +6 -0
  718. package/types/generated/Table.d.ts +4 -0
  719. package/types/generated/Table.web.d.ts +5 -0
  720. package/types/generated/Tabs.d.ts +10 -0
  721. package/types/generated/Tabs.web.d.ts +6 -0
  722. package/types/generated/Text.d.ts +2 -0
  723. package/types/generated/Text.web.d.ts +2 -0
  724. package/types/generated/TextArea.d.ts +8 -0
  725. package/types/generated/TextArea.web.d.ts +9 -0
  726. package/types/generated/TextInput.d.ts +9 -0
  727. package/types/generated/TextInput.web.d.ts +2 -0
  728. package/types/generated/Timeline.d.ts +3 -0
  729. package/types/generated/Timeline.web.d.ts +4 -0
  730. package/types/generated/Tooltip.d.ts +9 -0
  731. package/types/generated/Tooltip.web.d.ts +12 -0
  732. package/types/generated/Tree.d.ts +4 -0
  733. package/types/generated/Tree.web.d.ts +4 -0
  734. package/types/generated/User.d.ts +5 -0
  735. package/types/generated/User.web.d.ts +5 -0
  736. package/types/generated/View.d.ts +7 -0
  737. package/types/generated/View.web.d.ts +7 -0
  738. package/types/generated/VirtualList.d.ts +5 -0
  739. package/types/generated/VirtualList.web.d.ts +4 -0
  740. package/types/generated/WebView.d.ts +11 -0
  741. package/types/generated/WebView.web.d.ts +5 -0
  742. package/types/generated/aliases.d.ts +7 -0
  743. package/types/generated/aliases.web.d.ts +7 -0
  744. package/types/generated/android/BottomNavigationView.android.d.ts +9 -0
  745. package/types/generated/android/CircularProgressIndicator.android.d.ts +6 -0
  746. package/types/generated/android/DrawerLayout.android.d.ts +12 -0
  747. package/types/generated/android/MaterialDialog.android.d.ts +8 -0
  748. package/types/generated/android/MaterialSwitch.android.d.ts +6 -0
  749. package/types/generated/android/RecyclerView.android.d.ts +14 -0
  750. package/types/generated/android/SeekBar.android.d.ts +5 -0
  751. package/types/generated/android/icon.android.d.ts +5 -0
  752. package/types/generated/android/index.d.ts +12 -0
  753. package/types/generated/android/openModal.android.d.ts +4 -0
  754. package/types/generated/anim.d.ts +10 -0
  755. package/types/generated/anim.web.d.ts +3 -0
  756. package/types/generated/apply-native-modifiers.native.d.ts +3 -0
  757. package/types/generated/child-array.d.ts +3 -0
  758. package/types/generated/cx.d.ts +6 -0
  759. package/types/generated/escape-props.d.ts +16 -0
  760. package/types/generated/icons.d.ts +5 -0
  761. package/types/generated/index.d.ts +1 -0
  762. package/types/generated/index.linux.d.ts +5 -0
  763. package/types/generated/index.mobile.d.ts +4 -0
  764. package/types/generated/index.shared.d.ts +111 -0
  765. package/types/generated/index.shared.web.d.ts +111 -0
  766. package/types/generated/index.web.d.ts +1 -0
  767. package/types/generated/ios/LiquidGlass.ios.d.ts +12 -0
  768. package/types/generated/ios/LiquidGlassContainer.ios.d.ts +13 -0
  769. package/types/generated/ios/SideDrawer.ios.d.ts +12 -0
  770. package/types/generated/ios/UIActivityIndicatorView.ios.d.ts +5 -0
  771. package/types/generated/ios/UIModal.ios.d.ts +7 -0
  772. package/types/generated/ios/UISlider.ios.d.ts +5 -0
  773. package/types/generated/ios/UISwitch.ios.d.ts +6 -0
  774. package/types/generated/ios/UITabBar.ios.d.ts +7 -0
  775. package/types/generated/ios/UITableView.ios.d.ts +14 -0
  776. package/types/generated/ios/icon.ios.d.ts +5 -0
  777. package/types/generated/ios/index.d.ts +14 -0
  778. package/types/generated/ios/openModal.ios.d.ts +4 -0
  779. package/types/generated/keyboard-inset.mobile.d.ts +10 -0
  780. package/types/generated/layout-child.d.ts +6 -0
  781. package/types/generated/layout-child.web.d.ts +15 -0
  782. package/types/generated/meter-math.d.ts +6 -0
  783. package/types/generated/modal-presenter.mobile.d.ts +14 -0
  784. package/types/generated/modifier-factories.d.ts +15 -0
  785. package/types/generated/native/index.d.ts +3 -0
  786. package/types/generated/pan.d.ts +2 -0
  787. package/types/generated/pan.web.d.ts +9 -0
  788. package/types/generated/platform.d.ts +7 -0
  789. package/types/generated/platform.web.d.ts +6 -0
  790. package/types/generated/platformProps.d.ts +7 -0
  791. package/types/generated/platformProps.web.d.ts +2 -0
  792. package/types/generated/popover-position.d.ts +14 -0
  793. package/types/generated/props.d.ts +1626 -0
  794. package/types/generated/refresh-metrics.d.ts +8 -0
  795. package/types/generated/refresh.d.ts +42 -0
  796. package/types/generated/refresh.web.d.ts +23 -0
  797. package/types/generated/root-layout.mobile.d.ts +22 -0
  798. package/types/generated/route-host.mobile.d.ts +1 -0
  799. package/types/generated/route-table.d.ts +90 -0
  800. package/types/generated/route.d.ts +74 -0
  801. package/types/generated/route.web.d.ts +67 -0
  802. package/types/generated/safeAreaInsets.d.ts +8 -0
  803. package/types/generated/safeAreaInsets.web.d.ts +8 -0
  804. package/types/generated/sheet-detents.d.ts +23 -0
  805. package/types/generated/sheet-detents.web.d.ts +13 -0
  806. package/types/generated/sheet-service.d.ts +11 -0
  807. package/types/generated/sheet-service.web.d.ts +6 -0
  808. package/types/generated/sheet-snap.d.ts +18 -0
  809. package/types/generated/stacks.d.ts +9 -0
  810. package/types/generated/stacks.web.d.ts +4 -0
  811. package/types/generated/store.d.ts +14 -0
  812. package/types/generated/styled.d.ts +20 -0
  813. package/types/generated/styled.web.d.ts +10 -0
  814. package/types/generated/svg.mobile.d.ts +23 -0
  815. package/types/generated/tap-to-blur.mobile.d.ts +16 -0
  816. package/types/generated/text-write.d.ts +9 -0
  817. package/types/generated/theme/colorScheme.d.ts +6 -0
  818. package/types/generated/theme/colorScheme.linux.d.ts +5 -0
  819. package/types/generated/theme/colorScheme.web.d.ts +5 -0
  820. package/types/generated/theme/status-bar-scheme.mobile.d.ts +1 -0
  821. package/types/generated/theme/theme-scheme.d.ts +20 -0
  822. package/types/generated/toast-anchor.d.ts +4 -0
  823. package/types/generated/toast-anchor.web.d.ts +4 -0
  824. package/types/generated/transform.web.d.ts +8 -0
  825. package/types/generated/translate.d.ts +5 -0
  826. package/types/generated/translate.web.d.ts +6 -0
  827. package/types/generated/use-back.d.ts +6 -0
  828. package/types/generated/use-back.web.d.ts +7 -0
  829. package/types/generated/use-store.d.ts +9 -0
  830. package/types/generated/use-store.web.d.ts +9 -0
  831. package/types/generated/useMeasure.d.ts +3 -0
  832. package/types/generated/useMeasure.web.d.ts +3 -0
  833. package/types/generated/vendor/ui-svg/index.common.d.ts +7 -0
  834. package/types/generated/vendor/ui-svg/index.d.ts +1 -0
  835. package/types/generated/vendor/ui-svg/index.ios.d.ts +13 -0
  836. package/types/generated/virtual-list-layout.d.ts +44 -0
  837. package/types/generated/web/index.d.ts +3 -0
  838. package/types/generated/windows.d.ts +3 -0
  839. package/types/generated/windows.linux.d.ts +15 -0
  840. package/types/generated/windows.web.d.ts +3 -0
  841. package/types/index.macos.d.ts +142 -0
  842. package/dist/native/ui10.js +0 -32
  843. package/dist/native/ui25.js +0 -141
  844. package/dist/native/ui27.js +0 -61
  845. package/dist/native/ui39.js +0 -103
  846. package/dist/native/ui4.js +0 -24
  847. package/dist/native/ui46.js +0 -267
  848. package/dist/native/ui48.js +0 -35
  849. package/dist/native/ui55.js +0 -92
  850. package/dist/native/ui57.js +0 -19
  851. package/dist/native/ui60.js +0 -14
  852. package/dist/native/ui7.js +0 -52
  853. package/dist/native/ui9.js +0 -36
  854. package/dist/web/ui10.js +0 -46
  855. package/dist/web/ui11.js +0 -42
  856. package/dist/web/ui22.js +0 -108
  857. package/dist/web/ui23.js +0 -96
  858. package/dist/web/ui26.js +0 -45
  859. package/dist/web/ui3.js +0 -31
  860. package/dist/web/ui30.js +0 -34
  861. package/dist/web/ui40.js +0 -154
  862. package/dist/web/ui41.js +0 -43
  863. package/dist/web/ui44.js +0 -42
  864. package/dist/web/ui5.js +0 -168
  865. package/dist/web/ui51.js +0 -47
  866. package/dist/web/ui52.js +0 -19
  867. package/dist/web/ui55.js +0 -17
  868. package/dist/web/ui59.js +0 -44
  869. package/dist/web/ui6.js +0 -94
  870. package/dist/web/ui7.js +0 -62
  871. package/dist/web/ui8.js +0 -46
  872. package/dist/web/ui9.js +0 -46
  873. package/types/index.d.ts +0 -258
  874. package/types/props.d.ts +0 -742
  875. /package/dist/native/{ui2.js → cx.js} +0 -0
  876. /package/dist/native/{ui54.js → meter-math.js} +0 -0
  877. /package/dist/native/{ui37.js → popover-position.js} +0 -0
  878. /package/dist/native/{ui61.js → store.js} +0 -0
  879. /package/dist/web/{ui16.js → Link.web.tsrx.js} +0 -0
  880. /package/dist/web/{ui28.js → cx.js} +0 -0
  881. /package/dist/web/{ui2.js → escape-props.web.js} +0 -0
  882. /package/dist/web/{ui4.js → layout-child.web.js} +0 -0
  883. /package/dist/web/{ui49.js → meter-math.js} +0 -0
  884. /package/dist/web/{ui47.js → platformProps.web.js} +0 -0
  885. /package/dist/web/{ui32.js → popover-position.js} +0 -0
  886. /package/dist/web/{ui42.js → safeAreaInsets.web.tsrx.js} +0 -0
  887. /package/dist/web/{ui56.js → stacks.web.js} +0 -0
  888. /package/dist/web/{ui57.js → store.js} +0 -0
  889. /package/dist/web/{ui37.js → styled.web.tsrx.js} +0 -0
  890. /package/dist/web/{ui27.js → theme/colorScheme.web.js} +0 -0
  891. /package/dist/web/{ui58.js → use-store.web.tsrx.js} +0 -0
  892. /package/dist/web/{ui46.js → useMeasure.web.tsrx.js} +0 -0
  893. /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.native.ts
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.native), so the first
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;
@@ -0,0 +1,2 @@
1
+ import { RouteHost, screenParamsFor } from "./RouteHost.mobile.tsrx.js";
2
+ export { RouteHost, screenParamsFor };
@@ -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|native|ios|android)$/;
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((a, b) => 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));
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 "./ui18.js";
2
- import { RouteRedirect, buildRoutePath, layoutChain, linkPath, matchUrl } from "./ui19.js";
3
- import { RouteHost } from "./ui20.js";
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.native.ts
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
- screens = table;
36
- routes = manifest ?? [];
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
- registerScreens(manifest.screens, manifest.routes);
42
- routeLayouts = manifest.layouts ?? {};
43
- routeLoaders = manifest.loaders ?? {};
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", emit);
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 (Application.android && r.stack !== "root") {
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
- if (!frame.isLoaded) frame.callLoaded?.();
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.currentPage ?? 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 (Application.android && stack !== "root") {
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 (Application.android && stack !== "root") {
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 Application.android ? [.../* @__PURE__ */ new Set([...swapTabOrder, ...[...stackEntries()].map(([name]) => name)])] : [...stackEntries()].map(([name]) => name);
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 (Application.android && stack !== "root") return !!swapTabRoutes.get(stack)?.length;
363
- return !!resolveStack(stack)?.canGoBack?.();
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 };