@octane-xplat/ui 0.6.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 (776) 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/index.shared.web.js +92 -0
  148. package/dist/web/octane-client-build.json +1 -1
  149. package/dist/web/platform.web.js +1 -1
  150. package/dist/web/route-table.js +105 -4
  151. package/dist/web/route.web.js +36 -11
  152. package/dist/web/ui.js +10 -8
  153. package/dist/web/virtual-list-layout.js +146 -0
  154. package/dist/web/web/index.js +2 -2
  155. package/package.json +35 -23
  156. package/platforms/android/include.gradle +8 -0
  157. package/platforms/android/native-api-usage.json +8 -0
  158. package/platforms/ios/Podfile +2 -0
  159. package/src/Absolute.tsrx +22 -0
  160. package/src/Absolute.web.tsrx +22 -0
  161. package/src/Accordion.macos.tsrx +50 -0
  162. package/src/Accordion.tsrx +50 -0
  163. package/src/Accordion.web.tsrx +43 -0
  164. package/src/ActivityIndicator.tsrx +29 -0
  165. package/src/ActivityIndicator.web.tsrx +14 -0
  166. package/src/Alert.macos.tsrx +42 -0
  167. package/src/Alert.tsrx +24 -0
  168. package/src/Alert.web.tsrx +23 -0
  169. package/src/Avatar.macos.tsrx +25 -0
  170. package/src/Avatar.tsrx +25 -0
  171. package/src/Avatar.web.tsrx +24 -0
  172. package/src/AvatarGroup.macos.tsrx +32 -0
  173. package/src/AvatarGroup.tsrx +32 -0
  174. package/src/AvatarGroup.web.tsrx +29 -0
  175. package/src/Badge.macos.tsrx +12 -0
  176. package/src/Badge.tsrx +12 -0
  177. package/src/Badge.web.tsrx +10 -0
  178. package/src/Banner.macos.tsrx +20 -0
  179. package/src/Banner.tsrx +20 -0
  180. package/src/Banner.web.tsrx +20 -0
  181. package/src/Breadcrumb.macos.tsrx +27 -0
  182. package/src/Breadcrumb.tsrx +27 -0
  183. package/src/Breadcrumb.web.tsrx +25 -0
  184. package/src/Button.tsrx +23 -0
  185. package/src/Button.web.tsrx +21 -0
  186. package/src/CameraView.macos.tsrx +6 -0
  187. package/src/Card.macos.tsrx +13 -0
  188. package/src/Card.tsrx +13 -0
  189. package/src/Card.web.tsrx +11 -0
  190. package/src/Checkbox.tsrx +23 -0
  191. package/src/Checkbox.web.tsrx +34 -0
  192. package/src/CheckboxGroup.macos.tsrx +39 -0
  193. package/src/CheckboxGroup.tsrx +39 -0
  194. package/src/CheckboxGroup.web.tsrx +38 -0
  195. package/src/Chip.macos.tsrx +25 -0
  196. package/src/Chip.tsrx +25 -0
  197. package/src/Chip.web.tsrx +25 -0
  198. package/src/Collapsible.macos.tsrx +39 -0
  199. package/src/Collapsible.tsrx +39 -0
  200. package/src/Collapsible.web.tsrx +33 -0
  201. package/src/CommandPalette.macos.tsrx +58 -0
  202. package/src/CommandPalette.tsrx +58 -0
  203. package/src/CommandPalette.web.tsrx +59 -0
  204. package/src/ContextMenu.macos.tsrx +59 -0
  205. package/src/ContextMenu.tsrx +59 -0
  206. package/src/ContextMenu.web.tsrx +69 -0
  207. package/src/Drawer.macos.tsrx +28 -0
  208. package/src/Drawer.tsrx +25 -0
  209. package/src/Drawer.web.tsrx +31 -0
  210. package/src/DropdownMenu.macos.tsrx +63 -0
  211. package/src/DropdownMenu.tsrx +63 -0
  212. package/src/DropdownMenu.web.tsrx +78 -0
  213. package/src/Empty.macos.tsrx +15 -0
  214. package/src/Empty.tsrx +15 -0
  215. package/src/Empty.web.tsrx +13 -0
  216. package/src/FieldGroup.macos.tsrx +17 -0
  217. package/src/FieldGroup.tsrx +17 -0
  218. package/src/FieldGroup.web.tsrx +17 -0
  219. package/src/FormField.macos.tsrx +25 -0
  220. package/src/FormField.tsrx +25 -0
  221. package/src/FormField.web.tsrx +24 -0
  222. package/src/Grid.tsrx +32 -0
  223. package/src/Grid.web.tsrx +43 -0
  224. package/src/Heading.macos.tsrx +8 -0
  225. package/src/Heading.tsrx +17 -0
  226. package/src/Heading.web.tsrx +15 -0
  227. package/src/Hoverable.mobile.tsrx +21 -0
  228. package/src/Hoverable.tsrx +113 -0
  229. package/src/Hoverable.web.tsrx +98 -0
  230. package/src/Icon.macos.tsrx +18 -0
  231. package/src/Icon.tsrx +65 -0
  232. package/src/Icon.web.tsrx +75 -0
  233. package/src/Image.macos.tsrx +12 -0
  234. package/src/Image.tsrx +51 -0
  235. package/src/Image.web.tsrx +14 -0
  236. package/src/InputNumber.macos.tsrx +49 -0
  237. package/src/InputNumber.tsrx +49 -0
  238. package/src/InputNumber.web.tsrx +47 -0
  239. package/src/InputRating.macos.tsrx +42 -0
  240. package/src/InputRating.tsrx +39 -0
  241. package/src/InputRating.web.tsrx +52 -0
  242. package/src/InputTags.macos.tsrx +49 -0
  243. package/src/InputTags.tsrx +49 -0
  244. package/src/InputTags.web.tsrx +49 -0
  245. package/src/Kbd.macos.tsrx +11 -0
  246. package/src/Kbd.tsrx +11 -0
  247. package/src/Kbd.web.tsrx +9 -0
  248. package/src/KeyboardAvoiding.macos.tsrx +8 -0
  249. package/src/KeyboardAvoiding.mobile.tsrx +63 -0
  250. package/src/Link.macos.tsrx +15 -0
  251. package/src/Link.tsrx +10 -0
  252. package/src/Link.web.tsrx +12 -0
  253. package/src/ListItem.macos.tsrx +52 -0
  254. package/src/ListItem.tsrx +52 -0
  255. package/src/ListItem.web.tsrx +50 -0
  256. package/src/Meter.macos.tsrx +8 -0
  257. package/src/Meter.tsrx +45 -0
  258. package/src/Meter.web.tsrx +32 -0
  259. package/src/NavLink.macos.tsrx +24 -0
  260. package/src/NavLink.tsrx +22 -0
  261. package/src/NavLink.web.tsrx +23 -0
  262. package/src/NavigationMenu.macos.tsrx +31 -0
  263. package/src/NavigationMenu.tsrx +28 -0
  264. package/src/NavigationMenu.web.tsrx +31 -0
  265. package/src/Overlay.macos.tsrx +11 -0
  266. package/src/Overlay.tsrx +84 -0
  267. package/src/Overlay.web.tsrx +23 -0
  268. package/src/Pagination.macos.tsrx +54 -0
  269. package/src/Pagination.tsrx +47 -0
  270. package/src/Pagination.web.tsrx +50 -0
  271. package/src/PinInput.macos.tsrx +46 -0
  272. package/src/PinInput.tsrx +46 -0
  273. package/src/PinInput.web.tsrx +45 -0
  274. package/src/Popover.macos.tsrx +11 -0
  275. package/src/Popover.tsrx +157 -0
  276. package/src/Popover.web.tsrx +109 -0
  277. package/src/Pressable.macos.tsrx +19 -0
  278. package/src/Pressable.tsrx +37 -0
  279. package/src/Pressable.web.tsrx +45 -0
  280. package/src/ProgressGroup.macos.tsrx +17 -0
  281. package/src/ProgressGroup.tsrx +17 -0
  282. package/src/ProgressGroup.web.tsrx +15 -0
  283. package/src/RadioGroup.macos.tsrx +50 -0
  284. package/src/RadioGroup.tsrx +34 -0
  285. package/src/RadioGroup.web.tsrx +43 -0
  286. package/src/RichText.tsrx +40 -0
  287. package/src/RichText.web.tsrx +24 -0
  288. package/src/RouteHost.macos.tsrx +18 -0
  289. package/src/RouteHost.mobile.tsrx +44 -0
  290. package/src/Row.macos.tsrx +26 -0
  291. package/src/Row.tsrx +27 -0
  292. package/src/Row.web.tsrx +27 -0
  293. package/src/SafeArea.macos.tsrx +8 -0
  294. package/src/SafeArea.tsrx +20 -0
  295. package/src/SafeArea.web.tsrx +24 -0
  296. package/src/Screen.macos.tsrx +14 -0
  297. package/src/Screen.tsrx +31 -0
  298. package/src/Screen.web.tsrx +7 -0
  299. package/src/ScrollBox.tsrx +8 -0
  300. package/src/ScrollBox.web.tsrx +7 -0
  301. package/src/ScrollView.macos.tsrx +19 -0
  302. package/src/ScrollView.tsrx +117 -0
  303. package/src/ScrollView.web.tsrx +109 -0
  304. package/src/SearchInput.tsrx +60 -0
  305. package/src/SearchInput.web.test.tsrx +58 -0
  306. package/src/SearchInput.web.tsrx +55 -0
  307. package/src/SegmentedControl.tsrx +43 -0
  308. package/src/SegmentedControl.web.test.tsrx +46 -0
  309. package/src/SegmentedControl.web.tsrx +51 -0
  310. package/src/Select.macos.tsrx +104 -0
  311. package/src/Select.tsrx +104 -0
  312. package/src/Select.web.tsrx +124 -0
  313. package/src/Separator.macos.tsrx +17 -0
  314. package/src/Separator.tsrx +17 -0
  315. package/src/Separator.web.tsrx +17 -0
  316. package/src/Sheet.macos.tsrx +15 -0
  317. package/src/Sheet.tsrx +122 -0
  318. package/src/Sheet.web.tsrx +56 -0
  319. package/src/Skeleton.macos.tsrx +15 -0
  320. package/src/Skeleton.tsrx +15 -0
  321. package/src/Skeleton.web.tsrx +15 -0
  322. package/src/Slider.tsrx +71 -0
  323. package/src/Slider.web.tsrx +60 -0
  324. package/src/Spacer.tsrx +8 -0
  325. package/src/Spacer.web.tsrx +6 -0
  326. package/src/Stack.tsrx +24 -0
  327. package/src/Stack.web.tsrx +22 -0
  328. package/src/Stepper.macos.tsrx +52 -0
  329. package/src/Stepper.tsrx +31 -0
  330. package/src/Stepper.web.tsrx +37 -0
  331. package/src/Switch.tsrx +21 -0
  332. package/src/Switch.web.tsrx +28 -0
  333. package/src/Table.macos.tsrx +37 -0
  334. package/src/Table.tsrx +37 -0
  335. package/src/Table.web.tsrx +37 -0
  336. package/src/Tabs.macos.tsrx +60 -0
  337. package/src/Tabs.tsrx +55 -0
  338. package/src/Tabs.web.tsrx +98 -0
  339. package/src/Text.macos.tsrx +18 -0
  340. package/src/Text.tsrx +62 -0
  341. package/src/Text.web.tsrx +31 -0
  342. package/src/TextArea.tsrx +65 -0
  343. package/src/TextArea.web.tsrx +61 -0
  344. package/src/TextInput.tsrx +39 -0
  345. package/src/TextInput.web.tsrx +28 -0
  346. package/src/Timeline.macos.tsrx +27 -0
  347. package/src/Timeline.tsrx +24 -0
  348. package/src/Timeline.web.tsrx +22 -0
  349. package/src/Tooltip.mobile.tsrx +20 -0
  350. package/src/Tooltip.tsrx +102 -0
  351. package/src/Tooltip.web.tsrx +156 -0
  352. package/src/Tree.macos.tsrx +45 -0
  353. package/src/Tree.tsrx +45 -0
  354. package/src/Tree.web.tsrx +52 -0
  355. package/src/User.macos.tsrx +24 -0
  356. package/src/User.tsrx +24 -0
  357. package/src/User.web.tsrx +24 -0
  358. package/src/View.macos.tsrx +29 -0
  359. package/src/View.tsrx +32 -0
  360. package/src/View.web.tsrx +33 -0
  361. package/src/VirtualList.macos.tsrx +298 -0
  362. package/src/VirtualList.tsrx +358 -0
  363. package/src/VirtualList.web.tsrx +313 -0
  364. package/src/WebView.macos.tsrx +6 -0
  365. package/src/WebView.tsrx +89 -0
  366. package/src/WebView.web.tsrx +92 -0
  367. package/src/aliases.macos.tsrx +18 -0
  368. package/src/aliases.tsrx +18 -0
  369. package/src/aliases.web.tsrx +17 -0
  370. package/src/android/BottomNavigationView.android.tsrx +170 -0
  371. package/src/android/CircularProgressIndicator.android.tsrx +19 -0
  372. package/src/android/DrawerLayout.android.tsrx +48 -0
  373. package/src/android/MaterialDialog.android.tsrx +62 -0
  374. package/src/android/MaterialSwitch.android.tsrx +18 -0
  375. package/src/android/RecyclerView.android.tsrx +173 -0
  376. package/src/android/SeekBar.android.tsrx +20 -0
  377. package/src/android/icon.android.ts +8 -0
  378. package/src/android/index.ts +37 -0
  379. package/src/android/openModal.android.ts +55 -0
  380. package/src/anim.macos.tsrx +20 -0
  381. package/src/anim.tsrx +65 -0
  382. package/src/anim.web.tsrx +55 -0
  383. package/src/apply-native-modifiers.native.ts +13 -0
  384. package/src/camera-permission.web.ts +11 -0
  385. package/src/child-array.ts +16 -0
  386. package/src/colorScheme.macos.ts +27 -0
  387. package/src/controls.macos.tsrx +171 -0
  388. package/src/cx.ts +8 -0
  389. package/src/escape-props.macos.ts +11 -0
  390. package/src/escape-props.ts +70 -0
  391. package/src/escape-props.web.ts +25 -0
  392. package/src/hosted-unsupported.macos.tsrx +9 -0
  393. package/src/icons.ts +60 -0
  394. package/src/index.linux.ts +10 -0
  395. package/src/index.macos.ts +106 -0
  396. package/src/index.mobile.ts +6 -0
  397. package/src/index.shared.ts +269 -0
  398. package/src/index.shared.web.ts +270 -0
  399. package/src/index.ts +1 -0
  400. package/src/index.web.ts +1 -0
  401. package/src/ios/LiquidGlass.ios.tsrx +41 -0
  402. package/src/ios/LiquidGlassContainer.ios.tsrx +34 -0
  403. package/src/ios/SideDrawer.ios.tsrx +49 -0
  404. package/src/ios/UIActivityIndicatorView.ios.tsrx +18 -0
  405. package/src/ios/UIModal.ios.tsrx +68 -0
  406. package/src/ios/UISlider.ios.tsrx +20 -0
  407. package/src/ios/UISwitch.ios.tsrx +18 -0
  408. package/src/ios/UITabBar.ios.tsrx +172 -0
  409. package/src/ios/UITableView.ios.tsrx +186 -0
  410. package/src/ios/icon.ios.ts +8 -0
  411. package/src/ios/index.ts +42 -0
  412. package/src/ios/openModal.ios.ts +55 -0
  413. package/src/keyboard-inset.mobile.ts +89 -0
  414. package/src/layout-child.ts +57 -0
  415. package/src/layout-child.web.ts +108 -0
  416. package/src/layout-shells.macos.tsrx +10 -0
  417. package/src/layout.macos.tsrx +41 -0
  418. package/src/macos-extras.macos.tsrx +40 -0
  419. package/src/meter-math.ts +6 -0
  420. package/src/modal-presenter.mobile.ts +24 -0
  421. package/src/modifier-factories.ts +20 -0
  422. package/src/native/index.ts +6 -0
  423. package/src/pan.tsrx +64 -0
  424. package/src/pan.web.tsrx +38 -0
  425. package/src/platform.macos.ts +1 -0
  426. package/src/platform.ts +7 -0
  427. package/src/platform.web.ts +6 -0
  428. package/src/platformProps.ts +23 -0
  429. package/src/platformProps.web.ts +14 -0
  430. package/src/popover-position.ts +62 -0
  431. package/src/popover.mobile.test.ts +54 -0
  432. package/src/props.ts +1812 -0
  433. package/src/references.d.ts +2 -0
  434. package/src/refresh-metrics.ts +11 -0
  435. package/src/refresh.ts +271 -0
  436. package/src/refresh.web.test.ts +111 -0
  437. package/src/refresh.web.ts +205 -0
  438. package/src/root-layout.mobile.ts +89 -0
  439. package/src/route-host.mobile.ts +1 -0
  440. package/src/route-table.test.ts +345 -0
  441. package/src/route-table.ts +585 -0
  442. package/src/route.macos.ts +201 -0
  443. package/src/route.ts +703 -0
  444. package/src/route.web.ts +366 -0
  445. package/src/safeAreaInsets.macos.tsrx +7 -0
  446. package/src/safeAreaInsets.tsrx +60 -0
  447. package/src/safeAreaInsets.web.tsrx +38 -0
  448. package/src/sheet-detents.ts +142 -0
  449. package/src/sheet-detents.web.ts +147 -0
  450. package/src/sheet-service.macos.ts +60 -0
  451. package/src/sheet-service.ts +124 -0
  452. package/src/sheet-service.web.ts +64 -0
  453. package/src/sheet-snap.test.ts +46 -0
  454. package/src/sheet-snap.ts +66 -0
  455. package/src/stacks.macos.ts +13 -0
  456. package/src/stacks.ts +44 -0
  457. package/src/stacks.web.ts +9 -0
  458. package/src/store.mobile.test.ts +149 -0
  459. package/src/store.ts +39 -0
  460. package/src/store.web.test.tsrx +58 -0
  461. package/src/styled.macos.tsrx +23 -0
  462. package/src/styled.test.ts +40 -0
  463. package/src/styled.tsrx +36 -0
  464. package/src/styled.web.tsrx +23 -0
  465. package/src/surfaces.macos.tsrx +27 -0
  466. package/src/svg.mobile.ts +76 -0
  467. package/src/tap-to-blur.mobile.ts +108 -0
  468. package/src/text-controls.macos.tsrx +11 -0
  469. package/src/text-write.ts +28 -0
  470. package/src/text-write.web.ts +13 -0
  471. package/src/theme/colorScheme.linux.ts +52 -0
  472. package/src/theme/colorScheme.ts +26 -0
  473. package/src/theme/colorScheme.web.ts +20 -0
  474. package/src/theme/status-bar-scheme.mobile.ts +39 -0
  475. package/src/theme/theme-scheme.macos.ts +50 -0
  476. package/src/theme/theme-scheme.ts +66 -0
  477. package/src/theme/tokens.css +44 -22
  478. package/src/toast-anchor.macos.tsrx +3 -0
  479. package/src/toast-anchor.tsrx +122 -0
  480. package/src/toast-anchor.web.tsrx +92 -0
  481. package/src/toast.tsrx +90 -0
  482. package/src/toast.web.tsrx +50 -0
  483. package/src/transform.web.ts +52 -0
  484. package/src/translate.macos.ts +5 -0
  485. package/src/translate.ts +13 -0
  486. package/src/translate.web.ts +15 -0
  487. package/src/tsconfig.json +8 -0
  488. package/src/unsupported.macos.tsrx +5 -0
  489. package/src/use-back.tsrx +11 -0
  490. package/src/use-back.web.tsrx +12 -0
  491. package/src/use-store.tsrx +18 -0
  492. package/src/use-store.web.tsrx +18 -0
  493. package/src/useMeasure.macos.tsrx +23 -0
  494. package/src/useMeasure.tsrx +66 -0
  495. package/src/useMeasure.web.tsrx +39 -0
  496. package/src/useStore.macos.tsrx +6 -0
  497. package/src/vendor/ui-svg/LICENSE +201 -0
  498. package/src/vendor/ui-svg/index.android.ts +189 -0
  499. package/src/vendor/ui-svg/index.common.ts +19 -0
  500. package/src/vendor/ui-svg/index.ios.ts +147 -0
  501. package/src/vendor/ui-svg/index.ts +1 -0
  502. package/src/vendor/ui-svg/typings/SVGKit.d.ts +2862 -0
  503. package/src/vendor/ui-svg/typings/android.d.ts +1483 -0
  504. package/src/vendor/ui-svg/typings/ios.d.ts +1511 -0
  505. package/src/virtual-list-layout.test.ts +81 -0
  506. package/src/virtual-list-layout.ts +246 -0
  507. package/src/web/index.ts +11 -0
  508. package/src/windows.linux.ts +59 -0
  509. package/src/windows.macos.ts +10 -0
  510. package/src/windows.ts +7 -0
  511. package/src/windows.web.ts +6 -0
  512. package/types/generated/.tsrx-typegen-manifest.json +250 -0
  513. package/types/generated/Absolute.d.ts +3 -0
  514. package/types/generated/Absolute.web.d.ts +3 -0
  515. package/types/generated/Accordion.d.ts +5 -0
  516. package/types/generated/Accordion.web.d.ts +5 -0
  517. package/types/generated/ActivityIndicator.d.ts +7 -0
  518. package/types/generated/ActivityIndicator.web.d.ts +3 -0
  519. package/types/generated/Alert.d.ts +4 -0
  520. package/types/generated/Alert.web.d.ts +5 -0
  521. package/types/generated/Avatar.d.ts +6 -0
  522. package/types/generated/Avatar.web.d.ts +7 -0
  523. package/types/generated/AvatarGroup.d.ts +6 -0
  524. package/types/generated/AvatarGroup.web.d.ts +6 -0
  525. package/types/generated/Badge.d.ts +5 -0
  526. package/types/generated/Badge.web.d.ts +5 -0
  527. package/types/generated/Banner.d.ts +4 -0
  528. package/types/generated/Banner.web.d.ts +4 -0
  529. package/types/generated/Breadcrumb.d.ts +4 -0
  530. package/types/generated/Breadcrumb.web.d.ts +5 -0
  531. package/types/generated/Button.d.ts +6 -0
  532. package/types/generated/Button.web.d.ts +6 -0
  533. package/types/generated/Card.d.ts +4 -0
  534. package/types/generated/Card.web.d.ts +4 -0
  535. package/types/generated/Checkbox.d.ts +5 -0
  536. package/types/generated/Checkbox.web.d.ts +6 -0
  537. package/types/generated/CheckboxGroup.d.ts +3 -0
  538. package/types/generated/CheckboxGroup.web.d.ts +3 -0
  539. package/types/generated/Chip.d.ts +5 -0
  540. package/types/generated/Chip.web.d.ts +5 -0
  541. package/types/generated/Collapsible.d.ts +5 -0
  542. package/types/generated/Collapsible.web.d.ts +5 -0
  543. package/types/generated/CommandPalette.d.ts +4 -0
  544. package/types/generated/CommandPalette.web.d.ts +4 -0
  545. package/types/generated/ContextMenu.d.ts +5 -0
  546. package/types/generated/ContextMenu.web.d.ts +4 -0
  547. package/types/generated/Drawer.d.ts +7 -0
  548. package/types/generated/Drawer.web.d.ts +7 -0
  549. package/types/generated/DropdownMenu.d.ts +5 -0
  550. package/types/generated/DropdownMenu.web.d.ts +5 -0
  551. package/types/generated/Empty.d.ts +4 -0
  552. package/types/generated/Empty.web.d.ts +4 -0
  553. package/types/generated/FieldGroup.d.ts +4 -0
  554. package/types/generated/FieldGroup.web.d.ts +4 -0
  555. package/types/generated/FormField.d.ts +5 -0
  556. package/types/generated/FormField.web.d.ts +5 -0
  557. package/types/generated/Grid.d.ts +3 -0
  558. package/types/generated/Grid.web.d.ts +3 -0
  559. package/types/generated/Heading.d.ts +2 -0
  560. package/types/generated/Heading.web.d.ts +2 -0
  561. package/types/generated/Hoverable.d.ts +10 -0
  562. package/types/generated/Hoverable.web.d.ts +9 -0
  563. package/types/generated/Icon.d.ts +3 -0
  564. package/types/generated/Icon.web.d.ts +3 -0
  565. package/types/generated/Image.d.ts +7 -0
  566. package/types/generated/Image.web.d.ts +3 -0
  567. package/types/generated/InputNumber.d.ts +5 -0
  568. package/types/generated/InputNumber.web.d.ts +5 -0
  569. package/types/generated/InputRating.d.ts +4 -0
  570. package/types/generated/InputRating.web.d.ts +4 -0
  571. package/types/generated/InputTags.d.ts +4 -0
  572. package/types/generated/InputTags.web.d.ts +5 -0
  573. package/types/generated/Kbd.d.ts +4 -0
  574. package/types/generated/Kbd.web.d.ts +4 -0
  575. package/types/generated/KeyboardAvoiding.mobile.d.ts +2 -0
  576. package/types/generated/Link.d.ts +2 -0
  577. package/types/generated/Link.web.d.ts +3 -0
  578. package/types/generated/ListItem.d.ts +3 -0
  579. package/types/generated/ListItem.web.d.ts +3 -0
  580. package/types/generated/Meter.d.ts +3 -0
  581. package/types/generated/Meter.web.d.ts +3 -0
  582. package/types/generated/NavLink.d.ts +3 -0
  583. package/types/generated/NavLink.web.d.ts +3 -0
  584. package/types/generated/NavigationMenu.d.ts +4 -0
  585. package/types/generated/NavigationMenu.web.d.ts +5 -0
  586. package/types/generated/Overlay.d.ts +3 -0
  587. package/types/generated/Overlay.web.d.ts +3 -0
  588. package/types/generated/Pagination.d.ts +4 -0
  589. package/types/generated/Pagination.web.d.ts +5 -0
  590. package/types/generated/PinInput.d.ts +4 -0
  591. package/types/generated/PinInput.web.d.ts +4 -0
  592. package/types/generated/Popover.d.ts +6 -0
  593. package/types/generated/Popover.web.d.ts +3 -0
  594. package/types/generated/Pressable.d.ts +6 -0
  595. package/types/generated/Pressable.web.d.ts +2 -0
  596. package/types/generated/ProgressGroup.d.ts +3 -0
  597. package/types/generated/ProgressGroup.web.d.ts +4 -0
  598. package/types/generated/RadioGroup.d.ts +5 -0
  599. package/types/generated/RadioGroup.web.d.ts +5 -0
  600. package/types/generated/RichText.d.ts +7 -0
  601. package/types/generated/RichText.web.d.ts +3 -0
  602. package/types/generated/RouteHost.mobile.d.ts +14 -0
  603. package/types/generated/Row.d.ts +2 -0
  604. package/types/generated/Row.web.d.ts +2 -0
  605. package/types/generated/SafeArea.d.ts +2 -0
  606. package/types/generated/SafeArea.web.d.ts +3 -0
  607. package/types/generated/Screen.d.ts +3 -0
  608. package/types/generated/Screen.web.d.ts +3 -0
  609. package/types/generated/ScrollBox.d.ts +3 -0
  610. package/types/generated/ScrollBox.web.d.ts +3 -0
  611. package/types/generated/ScrollView.d.ts +7 -0
  612. package/types/generated/ScrollView.web.d.ts +6 -0
  613. package/types/generated/SearchInput.d.ts +7 -0
  614. package/types/generated/SearchInput.web.d.ts +6 -0
  615. package/types/generated/SegmentedControl.d.ts +7 -0
  616. package/types/generated/SegmentedControl.web.d.ts +6 -0
  617. package/types/generated/Select.d.ts +6 -0
  618. package/types/generated/Select.web.d.ts +6 -0
  619. package/types/generated/Separator.d.ts +5 -0
  620. package/types/generated/Separator.web.d.ts +5 -0
  621. package/types/generated/Sheet.d.ts +5 -0
  622. package/types/generated/Sheet.web.d.ts +7 -0
  623. package/types/generated/Skeleton.d.ts +5 -0
  624. package/types/generated/Skeleton.web.d.ts +6 -0
  625. package/types/generated/Slider.d.ts +6 -0
  626. package/types/generated/Slider.web.d.ts +6 -0
  627. package/types/generated/Spacer.d.ts +3 -0
  628. package/types/generated/Spacer.web.d.ts +3 -0
  629. package/types/generated/Stack.d.ts +3 -0
  630. package/types/generated/Stack.web.d.ts +3 -0
  631. package/types/generated/Stepper.d.ts +4 -0
  632. package/types/generated/Stepper.web.d.ts +5 -0
  633. package/types/generated/Switch.d.ts +7 -0
  634. package/types/generated/Switch.web.d.ts +6 -0
  635. package/types/generated/Table.d.ts +4 -0
  636. package/types/generated/Table.web.d.ts +5 -0
  637. package/types/generated/Tabs.d.ts +10 -0
  638. package/types/generated/Tabs.web.d.ts +6 -0
  639. package/types/generated/Text.d.ts +2 -0
  640. package/types/generated/Text.web.d.ts +2 -0
  641. package/types/generated/TextArea.d.ts +8 -0
  642. package/types/generated/TextArea.web.d.ts +9 -0
  643. package/types/generated/TextInput.d.ts +9 -0
  644. package/types/generated/TextInput.web.d.ts +2 -0
  645. package/types/generated/Timeline.d.ts +3 -0
  646. package/types/generated/Timeline.web.d.ts +4 -0
  647. package/types/generated/Tooltip.d.ts +9 -0
  648. package/types/generated/Tooltip.web.d.ts +12 -0
  649. package/types/generated/Tree.d.ts +4 -0
  650. package/types/generated/Tree.web.d.ts +4 -0
  651. package/types/generated/User.d.ts +5 -0
  652. package/types/generated/User.web.d.ts +5 -0
  653. package/types/generated/View.d.ts +7 -0
  654. package/types/generated/View.web.d.ts +7 -0
  655. package/types/generated/VirtualList.d.ts +5 -0
  656. package/types/generated/VirtualList.web.d.ts +4 -0
  657. package/types/generated/WebView.d.ts +11 -0
  658. package/types/generated/WebView.web.d.ts +5 -0
  659. package/types/generated/aliases.d.ts +7 -0
  660. package/types/generated/aliases.web.d.ts +7 -0
  661. package/types/generated/android/BottomNavigationView.android.d.ts +9 -0
  662. package/types/generated/android/CircularProgressIndicator.android.d.ts +6 -0
  663. package/types/generated/android/DrawerLayout.android.d.ts +12 -0
  664. package/types/generated/android/MaterialDialog.android.d.ts +8 -0
  665. package/types/generated/android/MaterialSwitch.android.d.ts +6 -0
  666. package/types/generated/android/RecyclerView.android.d.ts +14 -0
  667. package/types/generated/android/SeekBar.android.d.ts +5 -0
  668. package/types/generated/android/icon.android.d.ts +5 -0
  669. package/types/generated/android/index.d.ts +12 -0
  670. package/types/generated/android/openModal.android.d.ts +4 -0
  671. package/types/generated/anim.d.ts +10 -0
  672. package/types/generated/anim.web.d.ts +3 -0
  673. package/types/generated/apply-native-modifiers.native.d.ts +3 -0
  674. package/types/generated/child-array.d.ts +3 -0
  675. package/types/generated/cx.d.ts +6 -0
  676. package/types/generated/escape-props.d.ts +16 -0
  677. package/types/generated/icons.d.ts +5 -0
  678. package/types/generated/index.d.ts +1 -0
  679. package/types/generated/index.linux.d.ts +5 -0
  680. package/types/generated/index.mobile.d.ts +4 -0
  681. package/types/generated/index.shared.d.ts +111 -0
  682. package/types/generated/index.shared.web.d.ts +111 -0
  683. package/types/generated/index.web.d.ts +1 -0
  684. package/types/generated/ios/LiquidGlass.ios.d.ts +12 -0
  685. package/types/generated/ios/LiquidGlassContainer.ios.d.ts +13 -0
  686. package/types/generated/ios/SideDrawer.ios.d.ts +12 -0
  687. package/types/generated/ios/UIActivityIndicatorView.ios.d.ts +5 -0
  688. package/types/generated/ios/UIModal.ios.d.ts +7 -0
  689. package/types/generated/ios/UISlider.ios.d.ts +5 -0
  690. package/types/generated/ios/UISwitch.ios.d.ts +6 -0
  691. package/types/generated/ios/UITabBar.ios.d.ts +7 -0
  692. package/types/generated/ios/UITableView.ios.d.ts +14 -0
  693. package/types/generated/ios/icon.ios.d.ts +5 -0
  694. package/types/generated/ios/index.d.ts +14 -0
  695. package/types/generated/ios/openModal.ios.d.ts +4 -0
  696. package/types/generated/keyboard-inset.mobile.d.ts +10 -0
  697. package/types/generated/layout-child.d.ts +6 -0
  698. package/types/generated/layout-child.web.d.ts +15 -0
  699. package/types/generated/meter-math.d.ts +6 -0
  700. package/types/generated/modal-presenter.mobile.d.ts +14 -0
  701. package/types/generated/modifier-factories.d.ts +15 -0
  702. package/types/generated/native/index.d.ts +3 -0
  703. package/types/generated/pan.d.ts +2 -0
  704. package/types/generated/pan.web.d.ts +9 -0
  705. package/types/generated/platform.d.ts +7 -0
  706. package/types/generated/platform.web.d.ts +6 -0
  707. package/types/generated/platformProps.d.ts +7 -0
  708. package/types/generated/platformProps.web.d.ts +2 -0
  709. package/types/generated/popover-position.d.ts +14 -0
  710. package/types/{props.d.ts → generated/props.d.ts} +127 -133
  711. package/types/generated/refresh-metrics.d.ts +8 -0
  712. package/types/generated/refresh.d.ts +42 -0
  713. package/types/generated/refresh.web.d.ts +23 -0
  714. package/types/generated/root-layout.mobile.d.ts +22 -0
  715. package/types/generated/route-host.mobile.d.ts +1 -0
  716. package/types/generated/route-table.d.ts +90 -0
  717. package/types/generated/route.d.ts +74 -0
  718. package/types/generated/route.web.d.ts +67 -0
  719. package/types/generated/safeAreaInsets.d.ts +8 -0
  720. package/types/generated/safeAreaInsets.web.d.ts +8 -0
  721. package/types/generated/sheet-detents.d.ts +23 -0
  722. package/types/generated/sheet-detents.web.d.ts +13 -0
  723. package/types/generated/sheet-service.d.ts +11 -0
  724. package/types/generated/sheet-service.web.d.ts +6 -0
  725. package/types/generated/sheet-snap.d.ts +18 -0
  726. package/types/generated/stacks.d.ts +9 -0
  727. package/types/generated/stacks.web.d.ts +4 -0
  728. package/types/generated/store.d.ts +14 -0
  729. package/types/generated/styled.d.ts +20 -0
  730. package/types/generated/styled.web.d.ts +10 -0
  731. package/types/generated/svg.mobile.d.ts +23 -0
  732. package/types/generated/tap-to-blur.mobile.d.ts +16 -0
  733. package/types/generated/text-write.d.ts +9 -0
  734. package/types/generated/theme/colorScheme.d.ts +6 -0
  735. package/types/generated/theme/colorScheme.linux.d.ts +5 -0
  736. package/types/generated/theme/colorScheme.web.d.ts +5 -0
  737. package/types/generated/theme/status-bar-scheme.mobile.d.ts +1 -0
  738. package/types/generated/theme/theme-scheme.d.ts +20 -0
  739. package/types/generated/toast-anchor.d.ts +4 -0
  740. package/types/generated/toast-anchor.web.d.ts +4 -0
  741. package/types/generated/transform.web.d.ts +8 -0
  742. package/types/generated/translate.d.ts +5 -0
  743. package/types/generated/translate.web.d.ts +6 -0
  744. package/types/generated/use-back.d.ts +6 -0
  745. package/types/generated/use-back.web.d.ts +7 -0
  746. package/types/generated/use-store.d.ts +9 -0
  747. package/types/generated/use-store.web.d.ts +9 -0
  748. package/types/generated/useMeasure.d.ts +3 -0
  749. package/types/generated/useMeasure.web.d.ts +3 -0
  750. package/types/generated/vendor/ui-svg/index.common.d.ts +7 -0
  751. package/types/generated/vendor/ui-svg/index.d.ts +1 -0
  752. package/types/generated/vendor/ui-svg/index.ios.d.ts +13 -0
  753. package/types/generated/virtual-list-layout.d.ts +44 -0
  754. package/types/generated/web/index.d.ts +3 -0
  755. package/types/generated/windows.d.ts +3 -0
  756. package/types/generated/windows.linux.d.ts +15 -0
  757. package/types/generated/windows.web.d.ts +3 -0
  758. package/types/index.macos.d.ts +142 -0
  759. package/dist/native/CameraView.native.tsrx.js +0 -165
  760. package/dist/native/Meter.native.tsrx.js +0 -92
  761. package/dist/native/Pager.native.tsrx.js +0 -282
  762. package/dist/native/Video.native.tsrx.js +0 -248
  763. package/dist/native/camera-permission.native.js +0 -47
  764. package/dist/native/safeAreaInsets.native.tsrx.js +0 -35
  765. package/dist/native/video-chrome.native.tsrx.js +0 -365
  766. package/dist/web/CameraView.web.tsrx.js +0 -310
  767. package/dist/web/Pager.web.tsrx.js +0 -337
  768. package/dist/web/Video.web.tsrx.js +0 -400
  769. package/dist/web/video-chrome.web.tsrx.js +0 -207
  770. package/types/android.d.ts +0 -53
  771. package/types/index.d.ts +0 -273
  772. package/types/index.native.d.ts +0 -273
  773. package/types/index.web.d.ts +0 -272
  774. package/types/ios.d.ts +0 -59
  775. package/types/native.d.ts +0 -5
  776. package/types/web.d.ts +0 -17
@@ -1,9 +1,8 @@
1
1
  /** Shared prop/type contract — the single source of truth for the public
2
2
  * API surface. Platform leaves import these types so prop shapes cannot
3
- * drift across .web/.native, and `tsc --emitDeclarationOnly` emits this
4
- * file into the published package's boundary types (tsrx can't emit
5
- * declarations — pure .ts is what escapes that). No imports here:
6
- * everything must stay dependency-free and platform-agnostic. */
3
+ * drift across .web/native-default, and `tsrx-typegen` emits the package's
4
+ * declarations from its public entrypoints and component leaves. No imports
5
+ * here: the shared contracts stay dependency-free and platform-agnostic. */
7
6
  export interface PanEvent {
8
7
  x: number;
9
8
  y: number;
@@ -37,6 +36,30 @@ export interface LayoutChildProps {
37
36
  alignSelf?: string;
38
37
  order?: number;
39
38
  }
39
+ /** JSON-compatible modifier data accepted by the platform-authentic widgets. */
40
+ export type NativeModifierValue = string | number | boolean | null | readonly NativeModifierValue[] | {
41
+ readonly [key: string]: NativeModifierValue;
42
+ };
43
+ /** A serializable change to a NativeScript view's style or native property.
44
+ * Platform-specific UI subpaths apply modifier arrays after shared props and
45
+ * the matching `ios`/`android` escape bag. */
46
+ export type NativeModifier = {
47
+ type: 'style';
48
+ values: Record<string, NativeModifierValue | undefined>;
49
+ } | {
50
+ type: 'property';
51
+ name: string;
52
+ value: NativeModifierValue;
53
+ };
54
+ /** Adds the native-only modifier escape hatch to an OS-backed widget's props. */
55
+ export type PlatformWidgetProps<Props> = Props & {
56
+ modifiers?: readonly NativeModifier[];
57
+ };
58
+ /** Native glyph names for the OS-authentic UI subpaths. */
59
+ export interface PlatformIconChoice {
60
+ ios: string;
61
+ android: string;
62
+ }
40
63
  /** Flex-container props shared by View/Row/Pressable — RN vocabulary, applied
41
64
  * to the host flexboxlayout natively and the element's style on web.
42
65
  * `gap` is a dip number (px on web); NS supports it on FlexboxLayout only
@@ -371,32 +394,6 @@ export interface ListProps extends RefreshProps {
371
394
  android?: Record<string, any>;
372
395
  web?: Record<string, any>;
373
396
  }
374
- /** Paged horizontal swipe container — onboarding flows, media galleries.
375
- * Chrome-reset OS paging on native (ViewPager2 / UICollectionView paging via
376
- * @nativescript-community/ui-pager), a scroll-snap scroller on web. Follows
377
- * the platform-list contract: `items` + `renderItem`, no children — each
378
- * page is a full-host-size cell. No indicator is built in; compose dots
379
- * from `Row` + `View` driven by `page`/`onPageChange`. */
380
- export interface PagerProps extends LayoutChildProps, AccessibilityProps {
381
- className?: any;
382
- style?: any;
383
- id?: string;
384
- items: any[];
385
- renderItem: (item: any, index: number) => any;
386
- renderEmpty?: () => any;
387
- /** Controlled page index — pass with `onPageChange` to own the page.
388
- * Writes scroll/settle to the page; user swipes call `onPageChange`. */
389
- page?: number;
390
- /** Starting page for uncontrolled use (default 0). */
391
- defaultPage?: number;
392
- /** Fires when the settled page changes — a completed swipe on both
393
- * targets. Programmatic `page` writes do not echo back through it. */
394
- onPageChange?: (index: number) => void;
395
- /** Platform escape hatches, applied after the shared props. */
396
- ios?: Record<string, any>;
397
- android?: Record<string, any>;
398
- web?: Record<string, any>;
399
- }
400
397
  export interface ScrollViewProps extends LayoutChildProps, AccessibilityProps, RefreshProps {
401
398
  className?: any;
402
399
  style?: any;
@@ -408,6 +405,26 @@ export interface ScrollViewProps extends LayoutChildProps, AccessibilityProps, R
408
405
  android?: any;
409
406
  web?: any;
410
407
  }
408
+ /** Shared virtualized vertical list. Item keys must be unique and stable
409
+ * across inserts and reorders. Rows outside the rendered window unmount;
410
+ * keep durable row state keyed by item identity outside the row component. */
411
+ export interface VirtualListProps<T = any> extends LayoutChildProps, AccessibilityProps {
412
+ className?: any;
413
+ style?: any;
414
+ id?: string;
415
+ items: readonly T[];
416
+ keyExtractor: (item: T, index: number) => string | number;
417
+ getItemType?: (item: T, index: number) => string | number;
418
+ renderItem: (item: T, index: number) => any;
419
+ renderEmpty?: () => any;
420
+ renderHeader?: () => any;
421
+ renderFooter?: () => any;
422
+ renderSeparator?: () => any;
423
+ /** Platform-specific properties are applied after shared props. */
424
+ ios?: Record<string, any>;
425
+ android?: Record<string, any>;
426
+ web?: Record<string, any>;
427
+ }
411
428
  /** Scrollable ordinary content on web. Native is an inline flex container so
412
429
  * a child ListView can own the scrolling without nesting recycling views in a
413
430
  * native ScrollView. */
@@ -438,6 +455,10 @@ export interface WebViewLoadEvent {
438
455
  /** Failure description; present only on the `onError` path. */
439
456
  error?: string;
440
457
  }
458
+ export interface WebViewContentSize {
459
+ width: number;
460
+ height: number;
461
+ }
441
462
  /** Embedded web document — chrome-reset bucket: web renders a sandboxed
442
463
  * `<iframe>`, native renders the OS web view (`webview` → WKWebView /
443
464
  * android.webkit.WebView). The *frame* is normalized; the document's
@@ -461,6 +482,12 @@ export interface WebViewProps extends LayoutChildProps, AccessibilityProps {
461
482
  /** After each successful document load (web `load`; native
462
483
  * `loadFinished` without an error). */
463
484
  onLoad?: (e: WebViewLoadEvent) => void;
485
+ /** Report the embedded document's measured size when the platform can read
486
+ * it. Cross-origin browser frames cannot be inspected. */
487
+ onLayoutContent?: (size: WebViewContentSize) => void;
488
+ /** Resize the host to the embedded document's measured height. Browser
489
+ * frames must be same-origin; native measurement is best-effort. */
490
+ matchContents?: boolean;
464
491
  /** On load failure. Native reports the NS `loadFinished` error string;
465
492
  * web maps the iframe `error` event, which does not fire reliably
466
493
  * cross-browser — treat as best-effort there. */
@@ -510,6 +537,8 @@ export interface SafeAreaProps {
510
537
  className?: any;
511
538
  style?: any;
512
539
  children?: any;
540
+ /** Do not inset the child away from the system's safe area. */
541
+ ignoreSafeArea?: boolean;
513
542
  /** NativeScript props applied to the host after shared props. */
514
543
  ios?: Record<string, any>;
515
544
  android?: Record<string, any>;
@@ -655,7 +684,10 @@ export interface PopoverProps {
655
684
  web?: Record<string, any>;
656
685
  }
657
686
  export interface HoverableProps {
658
- /** Content shown after the pointer rests over the children on web. */
687
+ id?: string;
688
+ /** Content shown after the pointer rests over the children on pointer
689
+ * platforms (web, macOS). Touch targets never mount the card — keep
690
+ * essential information out of it. */
659
691
  card: any;
660
692
  /** Styling for the card's wrapper view inside the popover — e.g. a
661
693
  * pointer bridge covering the anchor↔card gap or a positional offset. */
@@ -671,11 +703,13 @@ export interface HoverableProps {
671
703
  android?: Record<string, any>;
672
704
  web?: Record<string, any>;
673
705
  }
674
- /** Web-only tooltip (`@octane-xplat/ui/web`, decision #47) — `trigger` is
675
- * the anchor content, `content` the tooltip body. Hover-intent delay plus
676
- * keyboard focus; wires `aria-describedby` onto the focusable trigger and
677
- * dismisses on Escape, blur, or scroll. */
706
+ /** Tooltip — `trigger` is the anchor content, `content` the hint body.
707
+ * Pointer platforms show the hint after hover/focus intent (web adds
708
+ * `aria-describedby` + Escape/scroll dismissal; macOS presents an anchored
709
+ * NSPopover). Touch targets render the trigger and never mount the hint —
710
+ * keep essential information out of `content`. */
678
711
  export interface TooltipProps {
712
+ id?: string;
679
713
  trigger: any;
680
714
  content: any;
681
715
  /** Styling for the tooltip panel inside the popover. */
@@ -809,6 +843,16 @@ export interface TabsProps {
809
843
  * Web: route outlet. Native: pushes render inside the pane's Frame. */
810
844
  resolveScreen?: (name: string, params: Record<string, unknown>) => any;
811
845
  }
846
+ /** Platform tab-bar item shape. `icon` may be a registered name or a native
847
+ * asset value returned by `Icon.select()` from the matching subpath. */
848
+ export type PlatformTabSpec = Omit<TabSpec, 'icon'> & {
849
+ icon?: string;
850
+ };
851
+ export type PlatformTabsProps = Omit<TabsProps, 'tabs'> & {
852
+ tabs: readonly PlatformTabSpec[];
853
+ ios?: Record<string, any>;
854
+ android?: Record<string, any>;
855
+ };
812
856
  export interface Route {
813
857
  stack: string;
814
858
  name: string;
@@ -890,6 +934,28 @@ export interface RouteManifest {
890
934
  layouts: Record<string, any>;
891
935
  loaders?: Record<string, (params: Record<string, unknown>) => unknown | Promise<unknown>>;
892
936
  }
937
+ /** One programmatic route entry for `defineRoutes` — the manifest fields a
938
+ * route file would have produced, supplied directly. `path` uses the
939
+ * route-dir vocabulary: `'docs/:slug'` (or `'docs/[slug]'`), `'index'`/`''`
940
+ * for the root route. `screen` is the component itself — not a module. */
941
+ export interface RouteSpec {
942
+ path: string;
943
+ screen: any;
944
+ /** Default presentation, like a `+modal`/`+fade` filename suffix. */
945
+ presentation?: 'push' | 'modal' | 'fade';
946
+ loader?: RouteMeta['loader'];
947
+ beforeLoad?: BeforeLoad;
948
+ head?: RouteHeadExport;
949
+ /** Diagnostics label recorded on `RouteMeta.file` (warn strings). */
950
+ source?: string;
951
+ }
952
+ /** Input to `defineRoutes`: the route list plus optional path-keyed layouts
953
+ * — `layouts: { docs: Shell }` plays the `_layout.tsrx` role for every
954
+ * route under `docs/*`. */
955
+ export interface RouteSpecSet {
956
+ routes: readonly RouteSpec[];
957
+ layouts?: Record<string, any>;
958
+ }
893
959
  export interface OpenWindowOptions {
894
960
  /** Data made available to the native window content resolver. */
895
961
  data?: Record<string, unknown>;
@@ -1152,6 +1218,32 @@ export interface FieldGroupProps {
1152
1218
  android?: any;
1153
1219
  web?: any;
1154
1220
  }
1221
+ /** Shared settings/navigation row. Use the four shorthand props for common
1222
+ * rows, or `ListItem.Leading`/`Content`/`Supporting`/`Trailing` children
1223
+ * when the row needs custom composition. */
1224
+ export interface ListItemProps extends AccessibilityProps {
1225
+ className?: any;
1226
+ style?: any;
1227
+ id?: string;
1228
+ title?: any;
1229
+ supportingText?: any;
1230
+ leading?: any;
1231
+ trailing?: any;
1232
+ onPress?: () => void;
1233
+ disabled?: boolean;
1234
+ children?: any;
1235
+ }
1236
+ export interface ListItemSlotProps {
1237
+ className?: any;
1238
+ children?: any;
1239
+ }
1240
+ export interface ListItemComponent {
1241
+ (props: ListItemProps): unknown;
1242
+ Leading: (props: ListItemSlotProps) => unknown;
1243
+ Content: (props: ListItemSlotProps) => unknown;
1244
+ Supporting: (props: ListItemSlotProps) => unknown;
1245
+ Trailing: (props: ListItemSlotProps) => unknown;
1246
+ }
1155
1247
  /** InputNumber — normalized TextInput (number keyboard) flanked by −/+
1156
1248
  * steppers. `value`/`onValueChange` for controlled, `defaultValue` for
1157
1249
  * uncontrolled. `step` defaults to 1; `min`/`max` clamp. */
@@ -1523,104 +1615,6 @@ export interface ProgressGroupProps {
1523
1615
  android?: any;
1524
1616
  web?: any;
1525
1617
  }
1526
- export type VideoFit = 'contain' | 'cover' | 'fill';
1527
- export interface VideoEvent {
1528
- /** Playback position in milliseconds. */
1529
- position?: number;
1530
- /** Clip duration in milliseconds, once known (0 before then). */
1531
- duration?: number;
1532
- /** Failure description. */
1533
- message?: string;
1534
- }
1535
- export interface VideoHandle {
1536
- play(): void;
1537
- pause(): void;
1538
- /** Seek to a position in milliseconds. */
1539
- seekTo(ms: number): void;
1540
- /** Current playback position in ms (0 before metadata loads). */
1541
- currentTime(): number;
1542
- /** Clip duration in ms (0 before metadata loads). */
1543
- duration(): number;
1544
- /** The platform surface (`HTMLVideoElement` / plugin `Video`). */
1545
- native: any;
1546
- }
1547
- /** Embedded video — surface-hosted bucket: the OS engine owns the pixels
1548
- * (web `<video>` / `@nstudio/nativescript-exoplayer` → AVPlayerViewController
1549
- * + ExoPlayer2), all chrome is self-drawn so `controls` looks identical on
1550
- * every target. Times are milliseconds on every platform. */
1551
- export interface VideoProps extends LayoutChildProps, AccessibilityProps {
1552
- className?: any;
1553
- style?: any;
1554
- id?: string;
1555
- /** Remote URL; native also accepts `~/` bundle paths and absolute files. */
1556
- src: string;
1557
- /** Frame shown until playback starts. */
1558
- poster?: string;
1559
- /** Controlled playback — pair with `onPlayingChange`. Leave unset for
1560
- * uncontrolled playback (the transport and `bind` handle still work). */
1561
- playing?: boolean;
1562
- /** Uncontrolled start-playing shorthand. Browsers block unmuted
1563
- * autoplay — pair with `muted` when `autoPlay` matters on web. */
1564
- autoPlay?: boolean;
1565
- muted?: boolean;
1566
- loop?: boolean;
1567
- /** Self-drawn transport overlay (play/pause, scrubber, time, mute) —
1568
- * tap the surface to show/hide. Default true. */
1569
- controls?: boolean;
1570
- /** Content fitting inside the frame: `contain` (letterbox, default),
1571
- * `cover` (crop to fill), `fill` (stretch). */
1572
- fit?: VideoFit;
1573
- /** Playback metadata is loaded; `e.duration` is the clip length in ms. */
1574
- onReady?: (e: VideoEvent) => void;
1575
- onEnded?: () => void;
1576
- /** Fires on user toggles and controlled `playing` writes. */
1577
- onPlayingChange?: (playing: boolean) => void;
1578
- /** Fires when the transport's mute button toggles. */
1579
- onMutedChange?: (muted: boolean) => void;
1580
- /** Web only — the plugin players surface no error event on native. */
1581
- onError?: (e: VideoEvent) => void;
1582
- /** Imperative handle — play/pause/seek/time plus `native` for anything
1583
- * the shared props don't cover. */
1584
- bind?: (h: VideoHandle) => void;
1585
- /** Platform escape hatches, applied after the shared props. */
1586
- ios?: Record<string, any>;
1587
- android?: Record<string, any>;
1588
- web?: Record<string, any>;
1589
- }
1590
- export interface CameraViewHandle {
1591
- /** The platform view (`HTMLVideoElement` / plugin `CameraPlus`). */
1592
- native: any;
1593
- }
1594
- /** Live camera preview — surface-hosted: web runs `getUserMedia` into a
1595
- * `<video>`, native embeds `CameraPlus` (@nstudio/nativescript-camera-plus;
1596
- * AVCaptureSession preview / CameraX FancyCamera) with its built-in
1597
- * buttons switched off. Still capture is deliberately not on the handle —
1598
- * `media.capturePhoto` in `@octane-xplat/platform` owns that; reach the
1599
- * preview's own capture (e.g. `CameraPlus.takePicture`) through `bind`'s
1600
- * `native` when the intent UI won't do. The leaf owns the permission
1601
- * request on both platforms. */
1602
- export interface CameraViewProps extends LayoutChildProps, AccessibilityProps {
1603
- className?: any;
1604
- style?: any;
1605
- id?: string;
1606
- /** Lens — default `'back'`. */
1607
- facing?: 'front' | 'back';
1608
- /** Default true. `false` tears down the preview stream/session. */
1609
- active?: boolean;
1610
- /** The preview surface is live (web: first frame; native: view loaded
1611
- * after permission — the sensor may still be warming). */
1612
- onReady?: () => void;
1613
- onError?: (e: {
1614
- message?: string;
1615
- }) => void;
1616
- /** Imperative handle — `native` for anything the shared props don't
1617
- * cover (torch, zoom, preview-frame capture). */
1618
- bind?: (h: CameraViewHandle) => void;
1619
- /** Platform escape hatches, applied after the shared props. */
1620
- ios?: Record<string, any>;
1621
- android?: Record<string, any>;
1622
- web?: Record<string, any>;
1623
- }
1624
1618
  export type ColorScheme = 'light' | 'dark';
1625
1619
  /** Minimal external-store contract `useStore` subscribes to. */
1626
1620
  export interface ReadableStore<T> {
@@ -0,0 +1,8 @@
1
+ /** Pull-to-refresh geometry — one strip height drives the indicator
2
+ * reveal, the default trigger threshold, and the docked gap on every
3
+ * target (px on web, dip on native — equal by the dip≈px contract). */
4
+ export declare const REFRESH_HEADER_HEIGHT = 64;
5
+ /** Finger-travel → content displacement. iOS rubber-band applies ~0.5
6
+ * resistance at small pulls; web/Android drive the same ratio so the
7
+ * affordance reads identically across targets. */
8
+ export declare function dampenPull(dy: number): number;
@@ -0,0 +1,42 @@
1
+ export interface RefreshConfig {
2
+ onRefresh?: () => void;
3
+ refreshing?: boolean;
4
+ threshold?: number;
5
+ }
6
+ export interface RefreshHost {
7
+ /** The scrolling view — NS ScrollView or ListView. */
8
+ scroller: any;
9
+ /** The overlay strip (owns the self-drawn spinner), translated in/out. */
10
+ indicator: any;
11
+ /** True when the scroller is resting at its top edge (Android only —
12
+ * iOS reads the overscroll directly from contentOffset). */
13
+ isAtTop: () => boolean;
14
+ /** Latest props — a ref so callback identity churn can't re-attach. */
15
+ cfg: {
16
+ current: RefreshConfig;
17
+ };
18
+ }
19
+ export interface RefreshController {
20
+ /** Call when `refreshing` changes — docks/undocks the indicator. */
21
+ sync: () => void;
22
+ detach: () => void;
23
+ }
24
+ /** Pan-driven pull-to-refresh over any NS scrollable (scrollview or
25
+ * listview). Two mechanics, one visual:
26
+ *
27
+ * iOS — UIScrollView's own bounce supplies the content displacement
28
+ * (NS gesture delegates allow simultaneous recognition, so our pan on
29
+ * the scroller observes alongside the scroll pan). The handler reads
30
+ * `contentOffset` for the live gap and docks with
31
+ * `contentInset.top += H` — the exact mechanics UIRefreshControl uses.
32
+ *
33
+ * Android — there is no overscroll; the scroller box itself is
34
+ * translated inside the clipping wrapper while the damped drag
35
+ * accumulates. Docking holds the translate at H. Edge glow is disabled
36
+ * (OVER_SCROLL_NEVER) so no OS chrome leaks into the pixels.
37
+ *
38
+ * Releasing past `threshold` fires `onRefresh` once per pull and holds
39
+ * the docked gap; the controlled `refreshing` prop keeps it docked.
40
+ * A short grace window collapses the dock if `refreshing` never comes —
41
+ * props land a render after `onRefresh` fires. */
42
+ export declare function createPullToRefresh(host: RefreshHost): RefreshController;
@@ -0,0 +1,23 @@
1
+ export interface RefreshConfig {
2
+ onRefresh?: () => void;
3
+ refreshing?: boolean;
4
+ threshold?: number;
5
+ }
6
+ export interface RefreshController {
7
+ /** Call when `refreshing` changes — docks/undocks the indicator. */
8
+ sync: () => void;
9
+ detach: () => void;
10
+ }
11
+ /** Pointer/touch-driven pull-to-refresh for the DOM leaf — the web has no
12
+ * native overscroll, so drag distance translates the scroller inside the
13
+ * clipped wrapper while the self-drawn indicator slides into the gap.
14
+ * `touchmove` must be non-passive: `preventDefault` is what keeps the
15
+ * browser from taking the gesture as a scroll (or Chrome's own
16
+ * pull-to-refresh on Android). Mouse drags ride the pointer events. */
17
+ export declare function createPullToRefresh(host: {
18
+ scroller: HTMLElement | null;
19
+ indicator: HTMLElement | null;
20
+ cfg: {
21
+ current: RefreshConfig;
22
+ };
23
+ }): RefreshController;
@@ -0,0 +1,22 @@
1
+ import { RootLayout } from '@nativescript/core';
2
+ /** Called by the Screen leaf's <rootlayout> onLoaded/onUnloaded. */
3
+ export declare function registerRootLayout(rl: RootLayout | undefined | null): void;
4
+ export declare function unregisterRootLayout(rl: RootLayout | undefined | null): void;
5
+ /** The most recently mounted rootlayout — the top of the push stack. For
6
+ * imperative services (toast, sheet) there is no invoking component to
7
+ * walk from; last-mounted is the pushed page when one exists. Caveat: tabs
8
+ * keep visited panes mounted — last is the newest, not the visible tab. */
9
+ export declare function topRootLayout(): RootLayout | undefined;
10
+ /** Resolve the RootLayout enclosing `view` by walking the native parent
11
+ * chain — the screen shell is a RootLayout (Screen), so the first
12
+ * RootLayout ancestor IS the current page's overlay host. Falls back to
13
+ * the top registry entry when the component renders outside any Screen. */
14
+ export declare function rootLayoutFor(view: any): RootLayout | undefined;
15
+ /** Search every registered rootlayout for a view by id — overlays/sheets/
16
+ * toasts land on different rootlayouts depending on which screen's shell
17
+ * mounted last. Unloaded subtrees are skipped: a covered page unloads its
18
+ * views (NativeScript detaches their native recognizers while the JS views
19
+ * stay parented), so an unloaded match is a dead twin that can swallow
20
+ * interaction probes — the live view either doesn't exist here yet or sits
21
+ * under a loaded branch. */
22
+ export declare function findInRootLayouts(id: string): any;
@@ -0,0 +1 @@
1
+ export { RouteHost, screenParamsFor } from './RouteHost.mobile.js';
@@ -0,0 +1,90 @@
1
+ /** Shared route-dir manifest — the file-router half of the nav contract
2
+ * (docs/navigation-notes.md). Apps glob their route dir per platform and
3
+ * pass the module map here; the suffix seam applies to directories the
4
+ * same way it does to imports:
5
+ *
6
+ * // route-manifest.web.ts — generated globs also omit a plain route when
7
+ * // a `.web` twin exists, so native-default modules are never evaluated.
8
+ * const files = import.meta.glob(
9
+ * ['./app/**\/*.{tsrx,tsx}', '!./app/**\/*.mobile.{tsrx,tsx}',
10
+ * '!./app/**\/*.ios.{tsrx,tsx}', '!./app/**\/*.android.{tsrx,tsx}',
11
+ * '!./app/**\/*.macos.{tsrx,tsx}', '!./app/**\/*.windows.{tsrx,tsx}',
12
+ * '!./app/**\/*.linux.{tsrx,tsx}'],
13
+ * { eager: true });
14
+ * export const routes = deriveRouteManifest(files, ['web']);
15
+ *
16
+ * // route-manifest.mobile.ts — excludes *.web.tsrx; prefer by running OS
17
+ * export const routes = deriveRouteManifest(files,
18
+ * Device.os === 'Android' ? ['android', 'mobile'] : ['ios', 'mobile']);
19
+ *
20
+ * Conventions (route dir = `dir`, default 'app'):
21
+ * app/detail.tsrx → route 'detail'
22
+ * app/demo/[id].tsrx → route 'demo/:id' ([param] → :param)
23
+ * app/foo/index.tsrx → 'foo' (index = the dir's own route)
24
+ * app/settings.web.tsrx → 'settings' on web only — `prefer` decides
25
+ * app/_layout.tsrx → layouts[''] — a shell, not a route
26
+ * app/chat/_layout.tsrx → layouts['chat'] — nested shells cataloged
27
+ *
28
+ * `prefer` ranks platform suffixes — a suffix absent from it is another
29
+ * platform's file and is skipped entirely; unsuffixed files are the
30
+ * fallback (rank = prefer.length). Web callers pass ['web']; mobile
31
+ * callers pass the running OS first. */
32
+ import type { Route, RouteManifest, RouteMeta, RouteSpec, RouteSpecSet } from './props.js';
33
+ /** Internal error carrier used by the public `redirect()` helper. Keeping
34
+ * this in the shared route table gives both platform leaves the same guard
35
+ * behavior without importing a platform runtime. */
36
+ export declare class RouteRedirect extends Error {
37
+ readonly route: Route;
38
+ constructor(route: Route);
39
+ }
40
+ export declare function deriveRouteManifest(files: Record<string, any>, prefer: readonly string[], dir?: string): RouteManifest;
41
+ /** Build a manifest from app data rather than the route dir — the
42
+ * programmatic half of the route contract (host frameworks derive specs
43
+ * from their own sources, e.g. `readdirSync` over a content dir). Each
44
+ * spec's `path` uses the route-dir vocabulary; `layouts` keys are path
45
+ * prefixes playing the `_layout` role. Same-name duplicates inside the
46
+ * set keep the later entry with a warn, matching merge precedence. */
47
+ export declare function defineRoutes(input: readonly RouteSpec[] | RouteSpecSet): RouteManifest;
48
+ /** Compose manifests into one — file-derived base plus any number of
49
+ * programmatic sets (`registerRoutes(mergeRouteManifests(fromDir, dynamic))`).
50
+ * Registration order is precedence: on a same-name collision the later
51
+ * manifest's route wins and the loser's loader/beforeLoad/head go with it —
52
+ * a warn fires once per colliding name. `layouts` merge key-wise the same
53
+ * way. `matchRoute` order is rebuilt by specificity after the merge. */
54
+ export declare function mergeRouteManifests(...manifests: RouteManifest[]): RouteManifest;
55
+ /** Match URL path segments against a manifest — returns the winning meta
56
+ * plus extracted params, or null. First hit wins (routes are pre-sorted
57
+ * by specificity). */
58
+ export declare function matchRoute(routes: readonly RouteMeta[], segs: string[]): {
59
+ meta: RouteMeta;
60
+ params: Record<string, unknown>;
61
+ } | null;
62
+ /** Serialize a Route to a URL path (no origin): manifest routes substitute
63
+ * `:param` segments from params (leftover params → query string);
64
+ * non-manifest names keep the legacy `/<stack>/<name>?params` shape. */
65
+ export declare function buildRoutePath(routes: readonly RouteMeta[], r: Route): string;
66
+ /** `?a=1&b=2` → params — shared code carries no URLSearchParams
67
+ * (invariant 4: no DOM globals on the native path). */
68
+ export declare function parseQueryString(qs: string | undefined): Record<string, unknown>;
69
+ /** Full URL or path → canonical path for matching. `https://x/a/b?y` →
70
+ * `/a/b?y`; custom-scheme links keep their host as the first segment —
71
+ * `textcoral://post/5` → `/post/5` (the common app-scheme convention). */
72
+ export declare function linkPath(url: string): string;
73
+ /** Match a URL path+query against the manifest into a Route — the shared
74
+ * half of web's URL parse and native's deep-link handling. Whole-path
75
+ * match wins ('/demo/x' → root 'demo/:id'); a non-matching first segment
76
+ * is the stack prefix ('/demos/demo/x' → stack 'demos'). Unmatched names
77
+ * fall through as literal routes for pre-manifest callers. */
78
+ export declare function matchUrl(routes: readonly RouteMeta[], url: string): Route | null;
79
+ /** Fire a route's `loader` export — prefetch, not a data layer: the
80
+ * screen's own `query$` reads still own the data, this just warms the
81
+ * cache before mount. Sync throws and async rejections warn rather
82
+ * than break navigation. */
83
+ export declare function runLoader(routes: readonly RouteMeta[], r: Route): void;
84
+ /** Layout components wrapping a route name, outermost → innermost —
85
+ * 'chat/room' picks up `app/chat/_layout.tsrx`, 'a/b/c' chains 'a' then
86
+ * 'a/b'. The '' root layout is the app's own shell (entry renders it)
87
+ * and never joins a chain. Leaves apply the chain at render: native
88
+ * wraps each pushed Page's component, web wraps the outlet's resolved
89
+ * element. */
90
+ export declare function layoutChain(layouts: Record<string, any>, name: string): any[];
@@ -0,0 +1,74 @@
1
+ /** Native twin of route.web — same Route contract over Frame/Page stacks.
2
+ * `pushRoute` resolves a stack ('root' = the app's root Frame — an
3
+ * explicit registerStack('root') or, by default, the Frame returned by
4
+ * Application.getRootView(); named stacks come from TabSpec.stack panes
5
+ * or registerStack) and pushes a Page hosting the registered screen —
6
+ * each pushed Page is its own Octane root (decision #9: pages never
7
+ * share context with their presenter). Params land as props; named-stack
8
+ * pushes get `_stack` injected so the screen can popRoute its own stack.
9
+ *
10
+ * Registration contract (the footgun this module exists to defuse):
11
+ * - `registerScreens(table)` once — pushRoute resolves `name` through it.
12
+ * - 'root' needs nothing when the app boots a Frame as its root view
13
+ * (the standard shape); non-Frame roots can't host pushes at all.
14
+ * - named stacks register via `TabSpec.stack` or `registerStack`.
15
+ * Every drop path warns loudly — silent no-ops are how apps ship a
16
+ * default route on native while working fine on web. */
17
+ import type { Route, RouteManifest, RouteMeta, ScreenTable } from './props.js';
18
+ export type { Route } from './props.js';
19
+ /** Register the app's name → screen table (call once, from the shared
20
+ * routes module). Native `pushRoute` resolves `route.name` through it;
21
+ * on web the table feeds `screenFor` for outlets without a
22
+ * `resolveScreen` prop. `manifest` (from deriveRouteManifest) is stored
23
+ * for parity — the web leaf matches URLs through it; native navigation
24
+ * is name+params and only needs the table. */
25
+ export declare function registerScreens(table: ScreenTable, manifest?: RouteMeta[]): void;
26
+ /** One-call registration for route-dir apps — screens + URL patterns +
27
+ * layouts all come from deriveRouteManifest. */
28
+ export declare function registerRoutes(manifest: RouteManifest): void;
29
+ /** Layer a programmatic manifest (from `defineRoutes`) over the registered
30
+ * routes — same-name entries win over the base with a warn, so a host
31
+ * framework can override a file route deliberately. Registered layers
32
+ * survive later registerRoutes re-registration (e.g. routes.gen HMR). */
33
+ export declare function addRoutes(manifest: RouteManifest): void;
34
+ export declare function layoutsForRoute(name: string): any[];
35
+ export declare function screenFor(name: string): ScreenTable[string] | undefined;
36
+ /** Register an Android hardware-back interceptor. Interceptors run
37
+ * most-recent-first (so the topmost mounted screen wins) before the
38
+ * framework's default pop; returning true consumes the press. Returns
39
+ * an unsubscribe. iOS has no hardware back — interceptors simply never
40
+ * fire there. */
41
+ export declare function addBackInterceptor(fn: () => boolean): () => void;
42
+ export declare function redirect(r: Route): never;
43
+ export declare function pushRoute(r: Route): void;
44
+ /** Pop the top page of a stack ('root' default) — or dismiss the top
45
+ * modal if one is open. Quiet no-op at the base page — matching web,
46
+ * where back at the app root is a no-op; loud only when the stack
47
+ * itself doesn't exist. */
48
+ export declare function popRoute(stack?: string): void;
49
+ /** Route stamped on a stack's current page, or null at its base page. */
50
+ export declare function routeFor(stack: string): Route | null;
51
+ /** The top route across stacks — root's current route wins (a root push
52
+ * covers the shell); otherwise the most recently registered named stack
53
+ * showing a pushed page. Native has no boot URL, so this is an
54
+ * approximation of web's "current URL route", not a deep link. */
55
+ export declare function currentRoute(): Route | null;
56
+ /** Named stacks containing routes, including Android's swap-pane stacks. */
57
+ export declare function routeStacks(): string[];
58
+ /** The modal route currently open, if any — parity with the web leaf. */
59
+ export declare function currentModalRoute(): Route | null;
60
+ /** Deep-link entry: normalize a URL (http(s) or app-scheme) to a path,
61
+ * match it against the manifest, push the route. Wire it at boot:
62
+ * `onDeepLink(pushDeepLink)` plus one `consumeInitialUrl()` call. */
63
+ export declare function pushDeepLink(url: string): boolean;
64
+ /** Path-string parity for the web leaf's hrefFor — a canonical
65
+ * /<stack>/<path> rendering of the route (deep-linking consumes it
66
+ * there). Native navigation itself is name+params, not URLs. */
67
+ export declare function hrefFor(r: Route): string;
68
+ export declare function useRoute(stack: string): Route | null;
69
+ /** Whether the selected native stack has a page (or route-owned Android swap
70
+ * entry) that can be popped. The modal root is also a back affordance. */
71
+ export declare function canGoBack(stack?: string): boolean;
72
+ export declare function useCanGoBack(stack?: string): boolean;
73
+ /** The modal route overlaying the shell — parity with the web leaf. */
74
+ export declare function useModalRoute(): Route | null;