peachsim 0.1.1644 → 0.1.1653

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 (608) hide show
  1. package/README.md +12 -0
  2. package/cli/app-catalog.ts +1 -1
  3. package/cli/app-fonts.ts +11 -80
  4. package/cli/app-splash.ts +18 -12
  5. package/cli/bridge-flow-runner.ts +11 -7
  6. package/cli/cloud-client.ts +10 -13
  7. package/cli/command-registry.ts +13 -4
  8. package/cli/commands/box.ts +4 -4
  9. package/cli/commands/control.ts +93 -53
  10. package/cli/commands/coverage-parser.ts +67 -0
  11. package/cli/commands/coverage.ts +550 -0
  12. package/cli/commands/debug.ts +9 -18
  13. package/cli/commands/desktop.ts +19 -7
  14. package/cli/commands/device.ts +14 -9
  15. package/cli/commands/guest-host.ts +6 -10
  16. package/cli/commands/inspect/core.ts +81 -17
  17. package/cli/commands/inspect.ts +13 -8
  18. package/cli/commands/kotlin.ts +2 -2
  19. package/cli/commands/maestro-compare.ts +1 -1
  20. package/cli/commands/platform.ts +20 -11
  21. package/cli/commands/preview.ts +16 -18
  22. package/cli/commands/runtime.ts +3 -2
  23. package/cli/commands/screenshot-layers.ts +1 -1
  24. package/cli/commands/screenshot.ts +1 -1
  25. package/cli/commands/serve.ts +5 -1
  26. package/cli/commands/support.ts +4 -4
  27. package/cli/commands/three-mode.ts +22 -15
  28. package/cli/commands/upload.ts +44 -45
  29. package/cli/current-sim.ts +38 -0
  30. package/cli/desktop-companion.ts +36 -8
  31. package/cli/device-option.ts +1 -1
  32. package/cli/drivers/playwright.ts +1 -0
  33. package/cli/drivers/types.ts +4 -0
  34. package/cli/help-core.ts +1 -1
  35. package/cli/internal-child.ts +2 -1
  36. package/cli/main.ts +9 -3
  37. package/cli/outbound-endpoints.ts +11 -3
  38. package/cli/output-redaction.ts +39 -14
  39. package/cli/remote-simulators.ts +4 -1
  40. package/cli/scene-video.ts +5 -2
  41. package/cli/send-to-box.ts +7 -10
  42. package/cli/telemetry.ts +1 -1
  43. package/cli/ws-bridge.ts +8 -1
  44. package/detox/attempt-events.cjs +3 -1
  45. package/detox/attempt-events.d.cts +1 -1
  46. package/detox/expectations.ts +108 -99
  47. package/detox/frame-offset.d.mts +6 -0
  48. package/detox/frame-offset.mjs +35 -0
  49. package/detox/gestures.ts +6 -18
  50. package/detox/index.ts +169 -101
  51. package/detox/jest-preset.cjs +1 -3
  52. package/detox/jest-transform.cjs +4 -0
  53. package/detox/matchers.ts +3 -0
  54. package/detox/motion-change.cjs +46 -114
  55. package/detox/motion-change.d.cts +5 -27
  56. package/dist-lib/agent-daemon-client.cjs +1 -1
  57. package/dist-lib/agent-events.cjs +1 -1
  58. package/dist-lib/attached-projects.cjs +1 -1
  59. package/dist-lib/auth/shared-session.cjs +1 -1
  60. package/dist-lib/backend-origin.cjs +1 -1
  61. package/dist-lib/beta.cjs +1 -1
  62. package/dist-lib/beta.mjs +1 -1
  63. package/dist-lib/bridge-constants.cjs +1 -1
  64. package/dist-lib/bridge-contract-input.cjs +65 -1
  65. package/dist-lib/bridge-contract-input.mjs +63 -1
  66. package/dist-lib/bridge-contract.cjs +19 -1
  67. package/dist-lib/bridge-contract.mjs +17 -1
  68. package/dist-lib/bundle-channel.cjs +38091 -14846
  69. package/dist-lib/capture-contract.cjs +1 -1
  70. package/dist-lib/capture-contract.mjs +1 -1
  71. package/dist-lib/cloud-contract.cjs +1 -1
  72. package/dist-lib/cloud-contract.mjs +1 -1
  73. package/dist-lib/cloud-test-args.cjs +1 -1
  74. package/dist-lib/cloud-test-args.mjs +1 -1
  75. package/dist-lib/cloud.cjs +1 -1
  76. package/dist-lib/cloud.mjs +1 -1
  77. package/dist-lib/config.cjs +1 -1
  78. package/dist-lib/config.mjs +5 -3
  79. package/dist-lib/detox/index.cjs +1244 -4509
  80. package/dist-lib/detox/jest-preset.cjs +1 -3
  81. package/dist-lib/detox/jest-transform.cjs +4 -0
  82. package/dist-lib/dev-bundle-resolution.cjs +28 -24
  83. package/dist-lib/expo-swift-bundle.cjs +35049 -13125
  84. package/dist-lib/expo-swift-metadata.cjs +1 -1
  85. package/dist-lib/expo-swift-metadata.mjs +1 -1
  86. package/dist-lib/home-paths.cjs +1 -1
  87. package/dist-lib/host/bridge-host.cjs +45112 -63143
  88. package/dist-lib/host/fetch-proxy-handler.cjs +3544 -11
  89. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  90. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  91. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  92. package/dist-lib/host/websocket-proxy.cjs +1 -1
  93. package/dist-lib/index.cjs +1909 -2029
  94. package/dist-lib/jump-to-source-babel.cjs +1 -1
  95. package/dist-lib/jump-to-source-native.cjs +1 -1
  96. package/dist-lib/kotlin-host.cjs +2 -2
  97. package/dist-lib/menu.cjs +1 -1
  98. package/dist-lib/menu.mjs +1 -1
  99. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  100. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  101. package/dist-lib/metro-production-bundle.cjs +1 -1
  102. package/dist-lib/metro-production-bundle.mjs +1 -1
  103. package/dist-lib/metro.cjs +380 -522
  104. package/dist-lib/native-app-identity-project.cjs +39 -252
  105. package/dist-lib/native-app-identity-project.mjs +1174 -11
  106. package/dist-lib/native-app-identity.cjs +8 -3
  107. package/dist-lib/native-app-identity.mjs +8 -3
  108. package/dist-lib/native-firebase-metadata.cjs +1 -1
  109. package/dist-lib/native-firebase-metadata.mjs +1 -1
  110. package/dist-lib/plist.cjs +2 -244
  111. package/dist-lib/plist.mjs +1 -1
  112. package/dist-lib/profiles.cjs +1 -1
  113. package/dist-lib/public-brand.cjs +1 -1
  114. package/dist-lib/public-origins-lib-esm.json +290 -0
  115. package/dist-lib/public-origins-lib-static.json +1 -0
  116. package/dist-lib/public-origins-lib.json +1852 -0
  117. package/dist-lib/react-native-host-modules.cjs +1 -1
  118. package/dist-lib/react-native-host-modules.mjs +1 -1
  119. package/dist-lib/scripts/dev-server-scanner.cjs +14 -253
  120. package/dist-lib/sdk.cjs +83 -16
  121. package/dist-lib/sdk.mjs +81 -15
  122. package/dist-lib/skills.cjs +50546 -75098
  123. package/dist-lib/swift-compile.cjs +25897 -1070
  124. package/dist-lib/swift-compile.mjs +25866 -1033
  125. package/dist-lib/swift-package.cjs +79 -1
  126. package/dist-lib/swift-package.mjs +75 -1
  127. package/dist-lib/swift-submit.cjs +1 -1
  128. package/dist-lib/swift-submit.mjs +1 -1
  129. package/dist-lib/swift-toolchain.cjs +1 -1
  130. package/dist-lib/swift.cjs +1 -1
  131. package/dist-lib/vite-swift.cjs +34273 -12349
  132. package/dist-lib/vite.cjs +373 -298
  133. package/dist-lib/worklet-executable.cjs +1 -1
  134. package/dist-lib/worklet-executable.mjs +1 -1
  135. package/dist-types/packages/peach-compat/src/engine-config.d.ts +2 -0
  136. package/dist-types/packages/peach-compat/src/stubs/form-sheet-spring.d.ts +9 -0
  137. package/dist-types/packages/peach-compat/src/stubs/native-evaluation-lease.d.ts +47 -0
  138. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-cookies.d.ts +113 -0
  139. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-gesture-handler.d.ts +154 -0
  140. package/dist-types/packages/peach-compat/src/stubs/screen-transition-math.d.ts +756 -0
  141. package/dist-types/packages/peach-compat/src/stubs/transition-scalar.d.ts +25 -0
  142. package/dist-types/packages/peach-engine/src/billing/plans.d.ts +64 -0
  143. package/dist-types/packages/peach-engine/src/browser-page-target.d.ts +2 -0
  144. package/dist-types/packages/peach-engine/src/bundle-platform-url.d.ts +3 -0
  145. package/dist-types/packages/peach-engine/src/capture/browser-accessibility-host.d.ts +3 -0
  146. package/dist-types/packages/peach-engine/src/capture/browser-composite.d.ts +55 -0
  147. package/dist-types/packages/peach-engine/src/capture/browserAccessibilityContract.d.ts +27 -0
  148. package/dist-types/packages/peach-engine/src/capture/nativeScreenCaptureContract.d.ts +22 -0
  149. package/dist-types/packages/peach-engine/src/cli-companion.d.ts +36 -0
  150. package/dist-types/packages/peach-engine/src/components/native-ui/webview-frame-bridge.d.ts +34 -0
  151. package/dist-types/packages/peach-engine/src/config.d.ts +5 -0
  152. package/dist-types/packages/peach-engine/src/engine/android-stretch-effect.d.ts +57 -0
  153. package/dist-types/packages/peach-engine/src/engine/animated-driven-style.d.ts +47 -0
  154. package/dist-types/packages/peach-engine/src/engine/animated-value.d.ts +5 -0
  155. package/dist-types/packages/peach-engine/src/engine/animated.d.ts +195 -0
  156. package/dist-types/packages/peach-engine/src/engine/animation-clockContract.d.ts +15 -0
  157. package/dist-types/packages/peach-engine/src/engine/animation-graph.d.ts +148 -0
  158. package/dist-types/packages/peach-engine/src/engine/app-catalog-wire.d.ts +10 -0
  159. package/dist-types/packages/peach-engine/src/engine/app-font-registry.d.ts +87 -0
  160. package/dist-types/packages/peach-engine/src/engine/attributed-paragraph-paint.d.ts +7 -0
  161. package/dist-types/packages/peach-engine/src/engine/attributed-paragraph.d.ts +123 -0
  162. package/dist-types/packages/peach-engine/src/engine/audioContract.d.ts +16 -0
  163. package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +93 -0
  164. package/dist-types/packages/peach-engine/src/engine/canvaskit-renderer.d.ts +216 -0
  165. package/dist-types/packages/peach-engine/src/engine/config-plugin-fonts.d.ts +40 -0
  166. package/dist-types/packages/peach-engine/src/engine/config-plugin-splash.d.ts +25 -0
  167. package/dist-types/packages/peach-engine/src/engine/cull-visibility.d.ts +44 -0
  168. package/dist-types/packages/peach-engine/src/engine/damage-rect.d.ts +19 -0
  169. package/dist-types/packages/peach-engine/src/engine/engine-resource.d.ts +6 -0
  170. package/dist-types/packages/peach-engine/src/engine/expo-manifest.d.ts +5 -0
  171. package/dist-types/packages/peach-engine/src/engine/fiber-debug-metadata.d.ts +30 -0
  172. package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +139 -0
  173. package/dist-types/packages/peach-engine/src/engine/generated/sf-pro-font.d.ts +1 -0
  174. package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +31 -0
  175. package/dist-types/packages/peach-engine/src/engine/host-composite.d.ts +100 -0
  176. package/dist-types/packages/peach-engine/src/engine/hosted-semantics.d.ts +49 -0
  177. package/dist-types/packages/peach-engine/src/engine/image-audit.d.ts +70 -0
  178. package/dist-types/packages/peach-engine/src/engine/image-loader.d.ts +350 -0
  179. package/dist-types/packages/peach-engine/src/engine/inspect-info.d.ts +27 -0
  180. package/dist-types/packages/peach-engine/src/engine/inspect-outline.d.ts +14 -0
  181. package/dist-types/packages/peach-engine/src/engine/inspect-visibility.d.ts +33 -0
  182. package/dist-types/packages/peach-engine/src/engine/ios-fast-scroll.d.ts +16 -0
  183. package/dist-types/packages/peach-engine/src/engine/layout-sab.d.ts +43 -0
  184. package/dist-types/packages/peach-engine/src/engine/liquid-glass-rect.d.ts +23 -0
  185. package/dist-types/packages/peach-engine/src/engine/liquid-glass-shaders.d.ts +9 -0
  186. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +283 -0
  187. package/dist-types/packages/peach-engine/src/engine/live-object-counts.d.ts +6 -0
  188. package/dist-types/packages/peach-engine/src/engine/lottie-runtime.d.ts +32 -0
  189. package/dist-types/packages/peach-engine/src/engine/lottie-types.d.ts +138 -0
  190. package/dist-types/packages/peach-engine/src/engine/memory-counts.d.ts +27 -0
  191. package/dist-types/packages/peach-engine/src/engine/metalDirectContract.d.ts +108 -0
  192. package/dist-types/packages/peach-engine/src/engine/metalShaderContract.d.ts +217 -0
  193. package/dist-types/packages/peach-engine/src/engine/native-animation-driver.d.ts +112 -0
  194. package/dist-types/packages/peach-engine/src/engine/native-animation-graph.d.ts +62 -0
  195. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +133 -0
  196. package/dist-types/packages/peach-engine/src/engine/native-resources.d.ts +26 -0
  197. package/dist-types/packages/peach-engine/src/engine/nativeReanimatedContract.d.ts +25 -0
  198. package/dist-types/packages/peach-engine/src/engine/nativeReplayContract.d.ts +64 -0
  199. package/dist-types/packages/peach-engine/src/engine/node.d.ts +589 -0
  200. package/dist-types/packages/peach-engine/src/engine/paint-boundary-types.d.ts +112 -0
  201. package/dist-types/packages/peach-engine/src/engine/paint-boundary.d.ts +57 -0
  202. package/dist-types/packages/peach-engine/src/engine/portalContract.d.ts +21 -0
  203. package/dist-types/packages/peach-engine/src/engine/portals.d.ts +20 -0
  204. package/dist-types/packages/peach-engine/src/engine/render-damage.d.ts +107 -0
  205. package/dist-types/packages/peach-engine/src/engine/riveContract.d.ts +420 -0
  206. package/dist-types/packages/peach-engine/src/engine/rn-spring.d.ts +51 -0
  207. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +379 -0
  208. package/dist-types/packages/peach-engine/src/engine/scroll-momentum-math.d.ts +152 -0
  209. package/dist-types/packages/peach-engine/src/engine/scroll-pan-contacts.d.ts +10 -0
  210. package/dist-types/packages/peach-engine/src/engine/scroll-platform.d.ts +75 -0
  211. package/dist-types/packages/peach-engine/src/engine/scroll-range.d.ts +14 -0
  212. package/dist-types/packages/peach-engine/src/engine/scroll-velocity.d.ts +14 -0
  213. package/dist-types/packages/peach-engine/src/engine/scroll.d.ts +320 -0
  214. package/dist-types/packages/peach-engine/src/engine/signal.d.ts +7 -0
  215. package/dist-types/packages/peach-engine/src/engine/snapshot-cache-policy.d.ts +6 -0
  216. package/dist-types/packages/peach-engine/src/engine/svg-geometry.d.ts +41 -0
  217. package/dist-types/packages/peach-engine/src/engine/text-attachment-paragraphs.d.ts +10 -0
  218. package/dist-types/packages/peach-engine/src/engine/text-decoration.d.ts +11 -0
  219. package/dist-types/packages/peach-engine/src/engine/text-line-break.d.ts +22 -0
  220. package/dist-types/packages/peach-engine/src/engine/text-paint-receipt.d.ts +98 -0
  221. package/dist-types/packages/peach-engine/src/engine/text-paragraph.d.ts +11 -0
  222. package/dist-types/packages/peach-engine/src/engine/text-paragraphContract.d.ts +34 -0
  223. package/dist-types/packages/peach-engine/src/engine/text-transform.d.ts +1 -0
  224. package/dist-types/packages/peach-engine/src/engine/types.d.ts +657 -0
  225. package/dist-types/packages/peach-engine/src/engine/visible-frame.d.ts +54 -0
  226. package/dist-types/packages/peach-engine/src/engine/webrtcContract.d.ts +74 -0
  227. package/dist-types/packages/peach-engine/src/graphite-stats-fields.d.ts +184 -0
  228. package/dist-types/packages/peach-engine/src/guest-import-meta.d.ts +12 -0
  229. package/dist-types/packages/peach-engine/src/guest-module-overrides.d.ts +7 -0
  230. package/dist-types/packages/peach-engine/src/ios/app-card-types.d.ts +7 -0
  231. package/dist-types/packages/peach-engine/src/ios/apps/canvas-map-data.d.ts +177 -0
  232. package/dist-types/packages/peach-engine/src/ios/aux-home-scene.d.ts +54 -0
  233. package/dist-types/packages/peach-engine/src/ios/chrome-metrics.d.ts +47 -0
  234. package/dist-types/packages/peach-engine/src/ios/constants.d.ts +21 -0
  235. package/dist-types/packages/peach-engine/src/ios/duo-housing.d.ts +37 -0
  236. package/dist-types/packages/peach-engine/src/ios/home/types.d.ts +29 -0
  237. package/dist-types/packages/peach-engine/src/ios/home-app-catalog.d.ts +43 -0
  238. package/dist-types/packages/peach-engine/src/ios/photo-store.d.ts +73 -0
  239. package/dist-types/packages/peach-engine/src/ios/photoLibraryContract.d.ts +166 -0
  240. package/dist-types/packages/peach-engine/src/ios/shell-controller-types.d.ts +21 -0
  241. package/dist-types/packages/peach-engine/src/ios/shell-transition-debug.d.ts +18 -0
  242. package/dist-types/packages/peach-engine/src/metro-asset-path.d.ts +21 -0
  243. package/dist-types/packages/peach-engine/src/metro-fingerprint-registry-client.d.ts +11 -0
  244. package/dist-types/packages/peach-engine/src/metro-fingerprint.d.ts +38 -0
  245. package/dist-types/packages/peach-engine/src/native-preview-bundle.d.ts +44 -0
  246. package/dist-types/packages/peach-engine/src/observability/types.d.ts +74 -0
  247. package/dist-types/packages/peach-engine/src/peach-warm-manifest.d.ts +32 -0
  248. package/dist-types/packages/peach-engine/src/permissions/app-settings-client.d.ts +25 -0
  249. package/dist-types/packages/peach-engine/src/permissions/system-permission-types.d.ts +20 -0
  250. package/dist-types/packages/peach-engine/src/platform/android-back-panel.d.ts +131 -0
  251. package/dist-types/packages/peach-engine/src/platform/android-gesture-exclusion.d.ts +28 -0
  252. package/dist-types/packages/peach-engine/src/platform/android-predictive-back.d.ts +33 -0
  253. package/dist-types/packages/peach-engine/src/platform/system-bars-state.d.ts +14 -0
  254. package/dist-types/packages/peach-engine/src/playwright-sim-host.d.ts +1 -0
  255. package/dist-types/packages/peach-engine/src/preview/bundle-layout.d.ts +8 -0
  256. package/dist-types/packages/peach-engine/src/preview/bundle-variantContract.d.ts +24 -0
  257. package/dist-types/packages/peach-engine/src/preview/capture-bundle.d.ts +26 -0
  258. package/dist-types/packages/peach-engine/src/preview/compress-node.d.ts +2 -0
  259. package/dist-types/packages/peach-engine/src/preview/compress.d.ts +2 -0
  260. package/dist-types/packages/peach-engine/src/preview/presigned-upload.d.ts +60 -0
  261. package/dist-types/packages/peach-engine/src/preview/trace.d.ts +144 -0
  262. package/dist-types/packages/peach-engine/src/preview/upload-protocol.d.ts +152 -0
  263. package/dist-types/packages/peach-engine/src/profiler/animation-recording-loader.d.ts +1 -0
  264. package/dist-types/packages/peach-engine/src/profiler/profile-trace.d.ts +4 -0
  265. package/dist-types/packages/peach-engine/src/react-bridge.d.ts +3 -0
  266. package/dist-types/packages/peach-engine/src/react-native/AppState.d.ts +45 -0
  267. package/dist-types/packages/peach-engine/src/react-native/Appearance.d.ts +34 -0
  268. package/dist-types/packages/peach-engine/src/react-native/framework-colors-data.d.ts +2 -0
  269. package/dist-types/packages/peach-engine/src/react-native/host-services.d.ts +42 -0
  270. package/dist-types/packages/peach-engine/src/react-native/layout-animation.d.ts +22 -0
  271. package/dist-types/packages/peach-engine/src/react-native/platform-colors.d.ts +17 -0
  272. package/dist-types/packages/peach-engine/src/remote-stream/client-config.d.ts +10 -0
  273. package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +58 -0
  274. package/dist-types/packages/peach-engine/src/remote-stream/scene-recording.d.ts +45 -0
  275. package/dist-types/packages/peach-engine/src/render-worker/animated-drive-output.d.ts +35 -0
  276. package/dist-types/packages/peach-engine/src/render-worker/app-load.d.ts +16 -0
  277. package/dist-types/packages/peach-engine/src/render-worker/aux-surface-types.d.ts +2 -0
  278. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-shared.d.ts +42 -0
  279. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-webgpu.d.ts +434 -0
  280. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-worker-init.d.ts +12 -0
  281. package/dist-types/packages/peach-engine/src/render-worker/compositor-backend.d.ts +31 -0
  282. package/dist-types/packages/peach-engine/src/render-worker/compositor-gpu.d.ts +202 -0
  283. package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1945 -0
  284. package/dist-types/packages/peach-engine/src/render-worker/compositor-runtime/scroll-drag-resample.d.ts +44 -0
  285. package/dist-types/packages/peach-engine/src/render-worker/css-keyframes-drive.d.ts +36 -0
  286. package/dist-types/packages/peach-engine/src/render-worker/edit-menu-geometry.d.ts +8 -0
  287. package/dist-types/packages/peach-engine/src/render-worker/engine-resource-relay.d.ts +21 -0
  288. package/dist-types/packages/peach-engine/src/render-worker/expo-widgetContract.d.ts +16 -0
  289. package/dist-types/packages/peach-engine/src/render-worker/gesture-seam-protocol.d.ts +152 -0
  290. package/dist-types/packages/peach-engine/src/render-worker/graph-linked-value.d.ts +29 -0
  291. package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler-contract.d.ts +49 -0
  292. package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler.d.ts +12 -0
  293. package/dist-types/packages/peach-engine/src/render-worker/host-service-protocol.d.ts +756 -0
  294. package/dist-types/packages/peach-engine/src/render-worker/image-lifecycle-event.d.ts +22 -0
  295. package/dist-types/packages/peach-engine/src/render-worker/image-pixel-contract.d.ts +48 -0
  296. package/dist-types/packages/peach-engine/src/render-worker/live-frame-mirror.d.ts +34 -0
  297. package/dist-types/packages/peach-engine/src/render-worker/map-command-channel.d.ts +189 -0
  298. package/dist-types/packages/peach-engine/src/render-worker/mapNativeContract.d.ts +101 -0
  299. package/dist-types/packages/peach-engine/src/render-worker/native-dynamic-synchronizable.d.ts +22 -0
  300. package/dist-types/packages/peach-engine/src/render-worker/native-menu-gesture.d.ts +9 -0
  301. package/dist-types/packages/peach-engine/src/render-worker/native-ui-commandContract.d.ts +23 -0
  302. package/dist-types/packages/peach-engine/src/render-worker/native-ui-protocol.d.ts +1087 -0
  303. package/dist-types/packages/peach-engine/src/render-worker/native-widgetContract.d.ts +100 -0
  304. package/dist-types/packages/peach-engine/src/render-worker/nativeAnimMirrorContract.d.ts +174 -0
  305. package/dist-types/packages/peach-engine/src/render-worker/nativeSyncReplyContract.d.ts +11 -0
  306. package/dist-types/packages/peach-engine/src/render-worker/one-native-contentContract.d.ts +54 -0
  307. package/dist-types/packages/peach-engine/src/render-worker/pointerSampleContract.d.ts +14 -0
  308. package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +880 -0
  309. package/dist-types/packages/peach-engine/src/render-worker/reanimated-css-contract.d.ts +63 -0
  310. package/dist-types/packages/peach-engine/src/render-worker/reanimated-readiness.d.ts +29 -0
  311. package/dist-types/packages/peach-engine/src/render-worker/resilient-frame-clock.d.ts +22 -0
  312. package/dist-types/packages/peach-engine/src/render-worker/retained-app-load.d.ts +20 -0
  313. package/dist-types/packages/peach-engine/src/render-worker/screen-edge-swipe-commit-protocol.d.ts +1 -0
  314. package/dist-types/packages/peach-engine/src/render-worker/screen-form-sheet-commit-protocol.d.ts +26 -0
  315. package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror-tenant.d.ts +37 -0
  316. package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror.d.ts +164 -0
  317. package/dist-types/packages/peach-engine/src/render-worker/shell-event-registry.d.ts +119 -0
  318. package/dist-types/packages/peach-engine/src/render-worker/shell-gesture-regions.d.ts +41 -0
  319. package/dist-types/packages/peach-engine/src/render-worker/shell-protocol.d.ts +603 -0
  320. package/dist-types/packages/peach-engine/src/render-worker/shell-scene-schema.d.ts +101 -0
  321. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-inline-sources.d.ts +13 -0
  322. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +87 -0
  323. package/dist-types/packages/peach-engine/src/render-worker/test-bridge-protocol.d.ts +47 -0
  324. package/dist-types/packages/peach-engine/src/render-worker/text-inputContract.d.ts +93 -0
  325. package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +102 -0
  326. package/dist-types/packages/peach-engine/src/render-worker/webgpu-frame-transaction.d.ts +292 -0
  327. package/dist-types/packages/peach-engine/src/render-worker/webgpu-readback-scheduler.d.ts +107 -0
  328. package/dist-types/packages/peach-engine/src/render-worker/webview-capture-protocol.d.ts +16 -0
  329. package/dist-types/packages/peach-engine/src/render-worker/worker-input-runtime.d.ts +211 -0
  330. package/dist-types/packages/peach-engine/src/render-worker/worker-storage.d.ts +33 -0
  331. package/dist-types/packages/peach-engine/src/render-worker/worklet-runtime.d.ts +987 -0
  332. package/dist-types/packages/peach-engine/src/render-worker/worklet-sab.d.ts +24 -0
  333. package/dist-types/packages/peach-engine/src/rolldown-bundle-inventory.d.ts +84 -0
  334. package/dist-types/packages/peach-engine/src/rolldown-production-fingerprint.d.ts +31 -0
  335. package/dist-types/packages/peach-engine/src/screenshots/timeline-assets.d.ts +10 -0
  336. package/dist-types/packages/peach-engine/src/screenshots/tokens.d.ts +9 -0
  337. package/dist-types/packages/peach-engine/src/settings/devices.d.ts +70 -0
  338. package/dist-types/packages/peach-engine/src/settings/duo-fold-bus.d.ts +87 -0
  339. package/dist-types/packages/peach-engine/src/settings/interface-rotation.d.ts +30 -0
  340. package/dist-types/packages/peach-engine/src/settings/react-native-configuration.d.ts +12 -0
  341. package/dist-types/packages/peach-engine/src/settings/scene-geometryContract.d.ts +40 -0
  342. package/dist-types/packages/peach-engine/src/settings/store.d.ts +37 -0
  343. package/dist-types/packages/peach-engine/src/shell-events.d.ts +203 -0
  344. package/dist-types/packages/peach-engine/src/shell-intent.d.ts +68 -0
  345. package/dist-types/packages/peach-engine/src/sootsim-event.d.ts +35 -0
  346. package/dist-types/packages/peach-engine/src/top-overlay-state.d.ts +5 -0
  347. package/dist-types/packages/peach-engine/src/web-authentication-automation-host.d.ts +2 -0
  348. package/dist-types/packages/peach-engine/src/webAuthenticationContract.d.ts +34 -0
  349. package/dist-types/packages/peach-engine/src/webview-automation-host.d.ts +180 -0
  350. package/dist-types/packages/peach-engine/src/wireframe-mode.d.ts +16 -0
  351. package/dist-types/packages/peach-globals/src/frameBreakdownContract.d.ts +16 -0
  352. package/dist-types/packages/peach-globals/src/index.d.ts +3311 -0
  353. package/dist-types/packages/peach-globals/src/nativeSurfaceContract.d.ts +76 -0
  354. package/dist-types/packages/peach-globals/src/pointerSourceEventContract.d.ts +8 -0
  355. package/dist-types/packages/peach-globals/src/profileTrace.d.ts +11 -0
  356. package/dist-types/packages/peach-globals/src/profilerContract.d.ts +223 -0
  357. package/dist-types/packages/peach-kit/src/capabilities.d.ts +721 -0
  358. package/dist-types/packages/peach-kit/src/internal.d.ts +4 -0
  359. package/dist-types/packages/peach-kit/src/materials/types.d.ts +27 -0
  360. package/dist-types/packages/peach-kit/src/materials/uikit-blur-material.d.ts +14 -0
  361. package/dist-types/packages/peach-kit/src/navigation-types.d.ts +11 -0
  362. package/dist-types/packages/peach-kit/src/react-bridge.d.ts +53 -0
  363. package/dist-types/packages/peach-kit/src/runtime.d.ts +26 -0
  364. package/dist-types/packages/peach-kit/src/ui/hosting-safe-area.d.ts +24 -0
  365. package/dist-types/packages/peach-kit/src/ui/popover-placement.d.ts +53 -0
  366. package/dist-types/packages/peach-kit/src/ui/presentationContract.d.ts +17 -0
  367. package/kotlin/ComposeSources/PeachComposeHost.kt +1 -1
  368. package/kotlin/JniSources/com/facebook/jni/HybridData.kt +0 -2
  369. package/kotlin/JniSources/dev/peach/jni/NativeBindings.kt +0 -2
  370. package/kotlin/JniTransportSources/dev/peach/jni/integration/JniTransport.kt +0 -2
  371. package/kotlin/README.md +6 -0
  372. package/package.json +22 -2
  373. package/runtime-companion.json +1 -0
  374. package/skills/contrast/SKILL.md +1 -0
  375. package/src/assetCatalogContract.ts +21 -0
  376. package/src/bridge-contract-input.ts +84 -0
  377. package/src/bridge-contract.ts +35 -3
  378. package/src/browser-launch-policy.ts +1 -0
  379. package/src/bundle-channel.mjs +4 -2
  380. package/src/cli-runtime.ts +55 -0
  381. package/src/crash-fingerprint.ts +26 -0
  382. package/src/dev-bundle-resolution.ts +50 -23
  383. package/src/device-catalog.ts +1159 -0
  384. package/src/host/bridge-host.ts +3 -26
  385. package/src/host/browser-pointer.ts +71 -0
  386. package/src/host/dev-server-package-versions.ts +23 -0
  387. package/src/host/fetch-proxy-handler.ts +17 -4
  388. package/src/installed-package-versions.ts +142 -38
  389. package/src/kotlin-host.ts +1 -1
  390. package/src/metro-plugin.ts +4 -4
  391. package/src/metro-project-root.ts +68 -0
  392. package/src/nitro-adapter.lock.json +26 -0
  393. package/src/nitro-adapter.ts +103 -0
  394. package/src/nitro-bundle.ts +24 -10
  395. package/src/nitro-compile.ts +33 -51
  396. package/src/nitro-source.ts +177 -96
  397. package/src/nitroAdapterContract.ts +217 -0
  398. package/src/nitroContract.ts +24 -11
  399. package/src/process-group.ts +41 -34
  400. package/src/react-bridge-importers.ts +28 -0
  401. package/src/reactNativeConfigurationContract.ts +36 -0
  402. package/src/runtime-assets.ts +7 -2
  403. package/src/runtime-delivery.ts +2 -0
  404. package/src/runtimePlatformContract.ts +70 -0
  405. package/src/screenshots/frame-compose.ts +42 -43
  406. package/src/screenshots/org-deck.ts +9 -4
  407. package/src/screenshots/preset-names.ts +29 -0
  408. package/src/screenshots/registry.ts +5 -5
  409. package/src/screenshots/schema.ts +1 -1
  410. package/src/screenshots/screenshotContract.ts +971 -0
  411. package/src/settings-flags.ts +107 -0
  412. package/src/settingsContract.ts +609 -0
  413. package/src/storageSnapshotContract.ts +344 -0
  414. package/src/stub-pattern-matcher.ts +550 -0
  415. package/src/swift-compile.ts +908 -40
  416. package/src/swift-compiler-digest.ts +13 -1
  417. package/src/swift-distribution.lock.json +49 -22
  418. package/src/swift-host.ts +167 -52
  419. package/src/swift-objc-compile.ts +54 -24
  420. package/src/swift-objc-export.ts +532 -0
  421. package/src/swift-objc-import.ts +769 -0
  422. package/src/swift-objc-metadata.ts +285 -10
  423. package/src/swift-objc-sdk.ts +13970 -158
  424. package/src/swift-objc-standin.ts +137 -1
  425. package/src/swift-package.ts +94 -0
  426. package/src/swift-packages.ts +5 -5
  427. package/src/swift-submit.ts +6 -0
  428. package/src/swiftContract.ts +99 -0
  429. package/src/target-matcher.ts +6 -1
  430. package/src/vite-plugin.ts +14 -40
  431. package/src/worker-system-chunks.ts +1 -1
  432. package/src/workerChunkContract.ts +5 -0
  433. package/src/worklets-babel.ts +24 -5
  434. package/src/xcode-project.ts +36 -7
  435. package/src/xcode-target-members.ts +10 -3
  436. package/cli/drivers/playwright-sim-host.ts +0 -825
  437. package/kotlin/fixtures/counter/Counter.d.kt.ts +0 -17
  438. package/kotlin/fixtures/counter/Counter.kt +0 -51
  439. package/kotlin/fixtures/counter/CounterApp.native.tsx +0 -61
  440. package/kotlin/fixtures/counter/CounterApp.tsx +0 -3
  441. package/kotlin/fixtures/counter/CounterScreen.d.kt.ts +0 -8
  442. package/kotlin/fixtures/counter/CounterScreen.kt +0 -56
  443. package/kotlin/fixtures/counter/app/_layout.tsx +0 -4
  444. package/kotlin/fixtures/counter/app/index+spa.tsx +0 -1
  445. package/kotlin/fixtures/counter/app/routes.d.ts +0 -18
  446. package/kotlin/fixtures/counter/package.json +0 -20
  447. package/kotlin/fixtures/counter/tsconfig.json +0 -19
  448. package/kotlin/fixtures/counter/vite.config.ts +0 -20
  449. package/kotlin/fixtures/headless-counter/Headless.kt +0 -234
  450. package/kotlin/fixtures/import-animation/Animation.d.kt.ts +0 -7
  451. package/kotlin/fixtures/import-animation/Animation.kt +0 -80
  452. package/kotlin/fixtures/import-animation/ImportAnimation.native.tsx +0 -13
  453. package/kotlin/fixtures/import-animation/README.md +0 -24
  454. package/kotlin/fixtures/import-animation/app/_layout.tsx +0 -4
  455. package/kotlin/fixtures/import-animation/app/index+spa.tsx +0 -1
  456. package/kotlin/fixtures/import-animation/app/routes.d.ts +0 -18
  457. package/kotlin/fixtures/import-animation/package.json +0 -23
  458. package/kotlin/fixtures/import-animation/tsconfig.json +0 -20
  459. package/kotlin/fixtures/import-animation/vite.config.ts +0 -20
  460. package/kotlin/fixtures/import-drawing/Drawing.d.kt.ts +0 -7
  461. package/kotlin/fixtures/import-drawing/Drawing.kt +0 -101
  462. package/kotlin/fixtures/import-drawing/ImportDrawing.native.tsx +0 -18
  463. package/kotlin/fixtures/import-drawing/README.md +0 -34
  464. package/kotlin/fixtures/import-drawing/app/_layout.tsx +0 -4
  465. package/kotlin/fixtures/import-drawing/app/index+spa.tsx +0 -1
  466. package/kotlin/fixtures/import-drawing/package.json +0 -23
  467. package/kotlin/fixtures/import-drawing/tsconfig.json +0 -20
  468. package/kotlin/fixtures/import-drawing/vite.config.ts +0 -20
  469. package/kotlin/fixtures/import-editor/Editor.d.kt.ts +0 -7
  470. package/kotlin/fixtures/import-editor/Editor.kt +0 -59
  471. package/kotlin/fixtures/import-editor/ImportEditor.native.tsx +0 -23
  472. package/kotlin/fixtures/import-editor/README.md +0 -27
  473. package/kotlin/fixtures/import-editor/app/_layout.tsx +0 -4
  474. package/kotlin/fixtures/import-editor/app/index+spa.tsx +0 -1
  475. package/kotlin/fixtures/import-editor/package.json +0 -23
  476. package/kotlin/fixtures/import-editor/tsconfig.json +0 -20
  477. package/kotlin/fixtures/import-editor/vite.config.ts +0 -20
  478. package/kotlin/fixtures/import-effects/Effects.d.kt.ts +0 -7
  479. package/kotlin/fixtures/import-effects/Effects.kt +0 -87
  480. package/kotlin/fixtures/import-effects/ImportEffects.native.tsx +0 -13
  481. package/kotlin/fixtures/import-effects/README.md +0 -19
  482. package/kotlin/fixtures/import-effects/app/_layout.tsx +0 -4
  483. package/kotlin/fixtures/import-effects/app/index+spa.tsx +0 -1
  484. package/kotlin/fixtures/import-effects/package.json +0 -23
  485. package/kotlin/fixtures/import-effects/tsconfig.json +0 -20
  486. package/kotlin/fixtures/import-effects/vite.config.ts +0 -20
  487. package/kotlin/fixtures/import-layout/ImportLayout.native.tsx +0 -13
  488. package/kotlin/fixtures/import-layout/Layout.d.kt.ts +0 -7
  489. package/kotlin/fixtures/import-layout/Layout.kt +0 -72
  490. package/kotlin/fixtures/import-layout/README.md +0 -24
  491. package/kotlin/fixtures/import-layout/app/_layout.tsx +0 -4
  492. package/kotlin/fixtures/import-layout/app/index+spa.tsx +0 -1
  493. package/kotlin/fixtures/import-layout/package.json +0 -23
  494. package/kotlin/fixtures/import-layout/tsconfig.json +0 -20
  495. package/kotlin/fixtures/import-layout/vite.config.ts +0 -20
  496. package/kotlin/fixtures/import-navigation/ImportNavigation.native.tsx +0 -18
  497. package/kotlin/fixtures/import-navigation/Navigation.d.kt.ts +0 -7
  498. package/kotlin/fixtures/import-navigation/Navigation.kt +0 -104
  499. package/kotlin/fixtures/import-navigation/README.md +0 -31
  500. package/kotlin/fixtures/import-navigation/app/_layout.tsx +0 -4
  501. package/kotlin/fixtures/import-navigation/app/index+spa.tsx +0 -1
  502. package/kotlin/fixtures/import-navigation/package.json +0 -23
  503. package/kotlin/fixtures/import-navigation/tsconfig.json +0 -20
  504. package/kotlin/fixtures/import-navigation/vite.config.ts +0 -20
  505. package/kotlin/fixtures/import-overlays/ImportOverlays.native.tsx +0 -29
  506. package/kotlin/fixtures/import-overlays/Overlays.d.kt.ts +0 -7
  507. package/kotlin/fixtures/import-overlays/Overlays.kt +0 -93
  508. package/kotlin/fixtures/import-overlays/README.md +0 -34
  509. package/kotlin/fixtures/import-overlays/app/_layout.tsx +0 -4
  510. package/kotlin/fixtures/import-overlays/app/index+spa.tsx +0 -1
  511. package/kotlin/fixtures/import-overlays/package.json +0 -23
  512. package/kotlin/fixtures/import-overlays/tsconfig.json +0 -20
  513. package/kotlin/fixtures/import-overlays/vite.config.ts +0 -20
  514. package/kotlin/fixtures/import-resources/ImportResources.native.tsx +0 -18
  515. package/kotlin/fixtures/import-resources/README.md +0 -26
  516. package/kotlin/fixtures/import-resources/Resources.d.kt.ts +0 -6
  517. package/kotlin/fixtures/import-resources/Resources.kt +0 -72
  518. package/kotlin/fixtures/import-resources/app/_layout.tsx +0 -4
  519. package/kotlin/fixtures/import-resources/app/index+spa.tsx +0 -1
  520. package/kotlin/fixtures/import-resources/package.json +0 -23
  521. package/kotlin/fixtures/import-resources/tsconfig.json +0 -20
  522. package/kotlin/fixtures/import-resources/vite.config.ts +0 -20
  523. package/kotlin/fixtures/import-scroll/ImportNested.native.tsx +0 -10
  524. package/kotlin/fixtures/import-scroll/ImportScroll.native.tsx +0 -13
  525. package/kotlin/fixtures/import-scroll/Nested.d.kt.ts +0 -4
  526. package/kotlin/fixtures/import-scroll/Nested.kt +0 -64
  527. package/kotlin/fixtures/import-scroll/README.md +0 -38
  528. package/kotlin/fixtures/import-scroll/Scroll.d.kt.ts +0 -7
  529. package/kotlin/fixtures/import-scroll/Scroll.kt +0 -91
  530. package/kotlin/fixtures/import-scroll/app/_layout.tsx +0 -4
  531. package/kotlin/fixtures/import-scroll/app/index+spa.tsx +0 -1
  532. package/kotlin/fixtures/import-scroll/app/nested+spa.tsx +0 -1
  533. package/kotlin/fixtures/import-scroll/package.json +0 -23
  534. package/kotlin/fixtures/import-scroll/tsconfig.json +0 -20
  535. package/kotlin/fixtures/import-scroll/vite.config.ts +0 -20
  536. package/kotlin/fixtures/import-selection/ImportSelection.native.tsx +0 -44
  537. package/kotlin/fixtures/import-selection/README.md +0 -32
  538. package/kotlin/fixtures/import-selection/Selection.d.kt.ts +0 -8
  539. package/kotlin/fixtures/import-selection/Selection.kt +0 -78
  540. package/kotlin/fixtures/import-selection/app/_layout.tsx +0 -4
  541. package/kotlin/fixtures/import-selection/app/index+spa.tsx +0 -1
  542. package/kotlin/fixtures/import-selection/package.json +0 -23
  543. package/kotlin/fixtures/import-selection/tsconfig.json +0 -20
  544. package/kotlin/fixtures/import-selection/vite.config.ts +0 -20
  545. package/kotlin/fixtures/import-surfaces/ImportSurfaces.native.tsx +0 -13
  546. package/kotlin/fixtures/import-surfaces/README.md +0 -22
  547. package/kotlin/fixtures/import-surfaces/Surfaces.d.kt.ts +0 -7
  548. package/kotlin/fixtures/import-surfaces/Surfaces.kt +0 -64
  549. package/kotlin/fixtures/import-surfaces/app/_layout.tsx +0 -4
  550. package/kotlin/fixtures/import-surfaces/app/index+spa.tsx +0 -1
  551. package/kotlin/fixtures/import-surfaces/package.json +0 -23
  552. package/kotlin/fixtures/import-surfaces/tsconfig.json +0 -20
  553. package/kotlin/fixtures/import-surfaces/vite.config.ts +0 -20
  554. package/kotlin/fixtures/import-values/ImportValues.native.tsx +0 -61
  555. package/kotlin/fixtures/import-values/README.md +0 -28
  556. package/kotlin/fixtures/import-values/Values.d.kt.ts +0 -15
  557. package/kotlin/fixtures/import-values/Values.kt +0 -84
  558. package/kotlin/fixtures/import-values/app/_layout.tsx +0 -4
  559. package/kotlin/fixtures/import-values/app/index+spa.tsx +0 -1
  560. package/kotlin/fixtures/import-values/package.json +0 -23
  561. package/kotlin/fixtures/import-values/tsconfig.json +0 -20
  562. package/kotlin/fixtures/import-values/vite.config.ts +0 -20
  563. package/kotlin/fixtures/kotlin-app/app/build.gradle.kts +0 -30
  564. package/kotlin/fixtures/kotlin-app/app/src/main/AndroidManifest.xml +0 -13
  565. package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/MainActivity.kt +0 -60
  566. package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/ProbeApplication.kt +0 -18
  567. package/kotlin/fixtures/kotlin-app/build.gradle.kts +0 -5
  568. package/kotlin/fixtures/kotlin-app/gradle.properties +0 -4
  569. package/kotlin/fixtures/kotlin-app/settings.gradle.kts +0 -4
  570. package/kotlin/fixtures/kotlin-app-variants/Anim.kt +0 -62
  571. package/kotlin/fixtures/kotlin-app-variants/BarBehavior.kt +0 -38
  572. package/kotlin/fixtures/kotlin-app-variants/BarVisibility.kt +0 -36
  573. package/kotlin/fixtures/kotlin-app-variants/Bitmaps.kt +0 -50
  574. package/kotlin/fixtures/kotlin-app-variants/Browse.kt +0 -73
  575. package/kotlin/fixtures/kotlin-app-variants/Colors.kt +0 -41
  576. package/kotlin/fixtures/kotlin-app-variants/Controls.kt +0 -62
  577. package/kotlin/fixtures/kotlin-app-variants/Drag.kt +0 -56
  578. package/kotlin/fixtures/kotlin-app-variants/Draw.kt +0 -74
  579. package/kotlin/fixtures/kotlin-app-variants/Drawables.kt +0 -53
  580. package/kotlin/fixtures/kotlin-app-variants/Focus.kt +0 -62
  581. package/kotlin/fixtures/kotlin-app-variants/Form.kt +0 -47
  582. package/kotlin/fixtures/kotlin-app-variants/Icons.kt +0 -59
  583. package/kotlin/fixtures/kotlin-app-variants/Ime.kt +0 -53
  584. package/kotlin/fixtures/kotlin-app-variants/Lists.kt +0 -57
  585. package/kotlin/fixtures/kotlin-app-variants/Nav.kt +0 -47
  586. package/kotlin/fixtures/kotlin-app-variants/Note.kt +0 -40
  587. package/kotlin/fixtures/kotlin-app-variants/Overlays.kt +0 -56
  588. package/kotlin/fixtures/kotlin-app-variants/Pan.kt +0 -38
  589. package/kotlin/fixtures/kotlin-app-variants/Pickers.kt +0 -44
  590. package/kotlin/fixtures/kotlin-app-variants/Press.kt +0 -43
  591. package/kotlin/fixtures/kotlin-app-variants/Scroll.kt +0 -63
  592. package/kotlin/fixtures/kotlin-app-variants/Sheet.kt +0 -43
  593. package/kotlin/fixtures/kotlin-app-variants/Strings.kt +0 -49
  594. package/kotlin/fixtures/kotlin-app-variants/Tabs.kt +0 -47
  595. package/kotlin/fixtures/kotlin-app-variants/TextWidth.kt +0 -45
  596. package/kotlin/fixtures/kotlin-app-variants/TransientInsets.kt +0 -50
  597. package/kotlin/fixtures/kotlin-app-variants/Transition.kt +0 -69
  598. package/kotlin/fixtures/kotlin-app-variants/ViewConfig.kt +0 -22
  599. package/kotlin/fixtures/kotlin-app-variants/Widgets.kt +0 -67
  600. package/kotlin/fixtures/runtime-state/RuntimeState.kt +0 -200
  601. package/kotlin/fork/README.md +0 -97
  602. package/kotlin/fork/build.sh +0 -176
  603. package/kotlin/fork/compose-worker-globals.patch +0 -1247
  604. package/kotlin/fork/fork.json +0 -46
  605. package/kotlin/fork/publish.ts +0 -99
  606. package/kotlin/fork/skia-android-shaping.patch +0 -189
  607. package/kotlin/fork/skiko-local.init.gradle +0 -10
  608. package/kotlin/fork/skiko-worker-clock.patch +0 -122
@@ -1,34 +0,0 @@
1
- # Imported Compose overlays
2
-
3
- This fixture imports a public composable into React Native and reports dialog
4
- and menu decisions to React. Compose retains its decision count when React
5
- changes the title prop.
6
-
7
- Run One here with `bunx one dev --port 8081`, then open that port with
8
- `peach open 8081 --device pixel-8`. Generate Android with
9
- `bunx one prebuild --platform android`; send Gradle builds through `bun remote`.
10
-
11
- Open the dialog and choose Keep. Update the React title, reopen the dialog and
12
- choose Discard. Open the menu and choose Second. Reopen the menu and dismiss it
13
- with Android Back, then open the dialog and dismiss it with Back. The final
14
- state is `Updated overlays|dialog-dismissed|5|false|false`; React receives
15
- `[["kept",1],["confirmed",2],["Second",3],["menu-dismissed",4],["dialog-dismissed",5]]`.
16
- Native popup windows hide the React footer, so callbacks are checked after close.
17
-
18
- RAN 2026-10-11: Android debug and Kotlin/Wasm builds passed. Fresh One Android,
19
- then Peach, then Contrast's native bundle producer matched all twelve states
20
- and five callbacks. Peach and Contrast reported no preview errors; Contrast
21
- compiled `Overlays.kt` and produced a complete bundle graph. These runs used
22
- One `2.0.0-0.canary.1791724440037` and one complete shell, engine and tenant
23
- runtime build. Runtime pairs must stay together: newly bundled CanvasKit
24
- loaders reject older paired Wasm, and mixing ordinary CanvasKit versions also
25
- prevented captures.
26
-
27
- The imported host measures the root separately from popup layers, constrains
28
- popups to the laid-out view bounds, and gives imported views a navigation
29
- dispatcher that receives hardware Back. Dialog opening previously failed its
30
- minimum constraints; menu opening rejected an infinite scroll height; Back
31
- previously left the app instead of dismissing its menu. The retained probe
32
- reproduces those failures and verifies the repaired behavior. This establishes
33
- import and interaction behavior, without grading pixels or the signed-in
34
- editor. Captures, hashes and receipts are retained in task `t-mv3ww8ql-120u0`.
@@ -1,4 +0,0 @@
1
- import { Slot } from 'one'
2
- export default function Layout() {
3
- return <Slot />
4
- }
@@ -1 +0,0 @@
1
- export { default } from '../ImportOverlays.native'
@@ -1,23 +0,0 @@
1
- {
2
- "name": "peach-kotlin-import-overlays-fixture",
3
- "private": true,
4
- "type": "module",
5
- "targets": [
6
- "native"
7
- ],
8
- "dependencies": {
9
- "@react-navigation/core": "catalog:",
10
- "@react-navigation/native": "catalog:",
11
- "one": "catalog:",
12
- "react": "catalog:",
13
- "react-native": "catalog:",
14
- "react-native-reanimated": "catalog:",
15
- "react-native-screens": "catalog:",
16
- "react-native-worklets": "catalog:"
17
- },
18
- "devDependencies": {
19
- "@react-native-community/template": "catalog:",
20
- "peachsim": "workspace:*",
21
- "vite": "catalog:"
22
- }
23
- }
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "paths": {
4
- "~/*": ["./*"]
5
- },
6
- "strict": true,
7
- "allowArbitraryExtensions": true,
8
- "rootDir": ".",
9
- "module": "Preserve",
10
- // allows react-native style imports without path extensions, for compat with platform-specific files
11
- "moduleResolution": "Bundler",
12
- "preserveSymlinks": true,
13
- "skipLibCheck": true,
14
- "jsx": "react-jsx",
15
- "noImplicitAny": false,
16
- "types": ["node", "react", "vite/client"],
17
- "lib": ["dom", "esnext"]
18
- },
19
- "exclude": ["node_modules", "**/test", "**/dist", "**/types", "**/__tests__"]
20
- }
@@ -1,20 +0,0 @@
1
- import { one } from 'one/vite'
2
- import { peachPlugin } from 'peachsim/vite'
3
- export default {
4
- root: import.meta.dirname,
5
- plugins: [
6
- one({
7
- web: { defaultRenderMode: 'spa' },
8
- native: {
9
- bundler: 'vite',
10
- app: {
11
- name: 'KotlinOverlays',
12
- scheme: 'kotlinoverlays',
13
- android: { applicationId: 'dev.contrast.kotlinoverlays' },
14
- },
15
- },
16
- }),
17
- peachPlugin(),
18
- ],
19
- server: { host: '0.0.0.0' },
20
- }
@@ -1,18 +0,0 @@
1
- import { useState } from 'react'
2
- import { Text, View, type ViewStyle } from 'react-native'
3
- import { Resources } from './Resources.kt'
4
-
5
- export default function Index() {
6
- const [step, setStep] = useState(0)
7
- const resourceProps = {
8
- title: `Resources step ${step}`,
9
- onStep: setStep,
10
- style: { width: '100%', height: 600 } satisfies ViewStyle,
11
- }
12
- return (
13
- <View style={{ flex: 1, backgroundColor: '#fff' }}>
14
- <Resources {...resourceProps} />
15
- <Text testID="resources-react-step">React step: {step}</Text>
16
- </View>
17
- )
18
- }
@@ -1,26 +0,0 @@
1
- # Imported Compose vector resources
2
-
3
- RAN: six real input states pass One Android, Peach Android and a signed-in
4
- Contrast project import: initial, toggled, large, tinted, disabled and reset.
5
- Five static material icon themes remain visible. The current vector changes
6
- FavoriteBorder to Favorite, grows from 24dp to 64dp, changes its exact tint and
7
- resets. Compose and React counts agree; disabled input leaves count three.
8
- Each host checks changed pixels, static icon identity, disabled identity and
9
- reset identity. Five intentionally wrong receipts are rejected.
10
-
11
- Evidence: [https://r2.sootsim.com/kotlin-evidence/import-resources/b782beba46c47baf6810f55d814eecaecd76d52927e8b5ad21520b2086761c71/proof.json](https://r2.sootsim.com/kotlin-evidence/import-resources/b782beba46c47baf6810f55d814eecaecd76d52927e8b5ad21520b2086761c71/proof.json).
12
-
13
- The receipt binds the Kotlin and React sources, compiled artifacts, installed
14
- APK, lossless WebP captures and semantic trees. Contrast uses the accepted
15
- Peach runtime and loads one preview document with no browser or network errors.
16
-
17
- One version: `2.0.0-0.canary.1791785147152`, release source
18
- `06994b00402fcf95a9c9e8a895a9551baddbe800`. This canary provides generic icon
19
- dependency discovery and conditional generated helpers. Its whole-family
20
- adoption on main and public compile-catalog delivery remain separate work.
21
- Re-prebuild with that adopting version before running the native fixture.
22
-
23
- This grades material-icons-core vector selection, size, density and tint.
24
- Fonts, app drawable packaging, bitmaps, strings, locale changes and cross-host
25
- or full-frame pixel fidelity remain ungraded. Native density is 2.625; browser
26
- captures use density 3. Build Android through the remote Linux builder.
@@ -1,6 +0,0 @@
1
- // generated by one typegen; edits will be replaced
2
- import type { ReactElement } from 'react'
3
- export declare function Resources(props: {
4
- title: string
5
- onStep?: ((value0: number) => void) | null
6
- }): ReactElement
@@ -1,72 +0,0 @@
1
- package dev.contrast.kotlinresources
2
-
3
- import androidx.compose.foundation.layout.Arrangement
4
- import androidx.compose.foundation.layout.Column
5
- import androidx.compose.foundation.layout.Row
6
- import androidx.compose.foundation.layout.padding
7
- import androidx.compose.foundation.layout.size
8
- import androidx.compose.material.icons.Icons
9
- import androidx.compose.material.icons.filled.Add
10
- import androidx.compose.material.icons.filled.Favorite
11
- import androidx.compose.material.icons.filled.FavoriteBorder
12
- import androidx.compose.material.icons.outlined.Settings
13
- import androidx.compose.material.icons.rounded.Home
14
- import androidx.compose.material.icons.sharp.Delete
15
- import androidx.compose.material.icons.twotone.Star
16
- import androidx.compose.material3.Button
17
- import androidx.compose.material3.Icon
18
- import androidx.compose.material3.MaterialTheme
19
- import androidx.compose.material3.Text
20
- import androidx.compose.material3.lightColorScheme
21
- import androidx.compose.runtime.Composable
22
- import androidx.compose.runtime.getValue
23
- import androidx.compose.runtime.mutableIntStateOf
24
- import androidx.compose.runtime.mutableStateOf
25
- import androidx.compose.runtime.remember
26
- import androidx.compose.runtime.setValue
27
- import androidx.compose.ui.Modifier
28
- import androidx.compose.ui.graphics.Color
29
- import androidx.compose.ui.graphics.toArgb
30
- import androidx.compose.ui.layout.onGloballyPositioned
31
- import androidx.compose.ui.platform.testTag
32
- import androidx.compose.ui.unit.dp
33
-
34
- @Composable
35
- fun Resources(title: String, onStep: ((Int) -> Unit)? = null) {
36
- var count by remember { mutableIntStateOf(0) }
37
- var selected by remember { mutableStateOf(false) }
38
- var large by remember { mutableStateOf(false) }
39
- var accent by remember { mutableStateOf(false) }
40
- var width by remember { mutableIntStateOf(0) }
41
- var height by remember { mutableIntStateOf(0) }
42
- val size = if (large) 64 else 24
43
- val tint = if (accent) Color(0xFFE91E63) else Color(0xFF6750A4)
44
- MaterialTheme(colorScheme = lightColorScheme()) {
45
- Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) {
46
- Text(title, Modifier.testTag("resources-title"))
47
- Text("Count: $count", Modifier.testTag("resources-count"))
48
- Text("selected=${if (selected) 1 else 0};size=$size;tint=${tint.toArgb()};pixels=$width,$height", Modifier.testTag("resources-state"))
49
- Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
50
- Icon(Icons.Filled.Add, "Add resource", Modifier.testTag("resources-add"))
51
- Icon(Icons.Outlined.Settings, "Settings resource", Modifier.testTag("resources-settings"))
52
- Icon(Icons.Rounded.Home, "Home resource", Modifier.testTag("resources-home"))
53
- Icon(Icons.Sharp.Delete, "Delete resource", Modifier.testTag("resources-delete"))
54
- Icon(Icons.TwoTone.Star, "Star resource", Modifier.testTag("resources-star"))
55
- }
56
- Icon(
57
- if (selected) Icons.Filled.Favorite else Icons.Filled.FavoriteBorder,
58
- "Current resource",
59
- Modifier.size(size.dp).testTag("resources-current").onGloballyPositioned {
60
- width = it.size.width
61
- height = it.size.height
62
- },
63
- tint = tint,
64
- )
65
- Button(onClick = { selected = !selected; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-toggle")) { Text("Toggle resource") }
66
- Button(onClick = { large = !large; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-resize")) { Text("Resize resource") }
67
- Button(onClick = { accent = !accent; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-tint")) { Text("Tint resource") }
68
- Button(onClick = { count += 1000; onStep?.invoke(count) }, enabled = false, modifier = Modifier.testTag("resources-disabled")) { Text("Disabled resource") }
69
- Button(onClick = { selected = false; large = false; accent = false; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-reset")) { Text("Reset resources") }
70
- }
71
- }
72
- }
@@ -1,4 +0,0 @@
1
- import { Slot } from 'one'
2
- export default function Layout() {
3
- return <Slot />
4
- }
@@ -1 +0,0 @@
1
- export { default } from '../ImportResources.native'
@@ -1,23 +0,0 @@
1
- {
2
- "name": "peach-kotlin-import-resources-fixture",
3
- "private": true,
4
- "type": "module",
5
- "targets": [
6
- "native"
7
- ],
8
- "dependencies": {
9
- "@react-navigation/core": "catalog:",
10
- "@react-navigation/native": "catalog:",
11
- "one": "catalog:",
12
- "react": "catalog:",
13
- "react-native": "catalog:",
14
- "react-native-reanimated": "catalog:",
15
- "react-native-screens": "catalog:",
16
- "react-native-worklets": "catalog:"
17
- },
18
- "devDependencies": {
19
- "@react-native-community/template": "catalog:",
20
- "peachsim": "workspace:*",
21
- "vite": "catalog:"
22
- }
23
- }
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "paths": {
4
- "~/*": ["./*"]
5
- },
6
- "strict": true,
7
- "allowArbitraryExtensions": true,
8
- "rootDir": ".",
9
- "module": "Preserve",
10
- // allows react-native style imports without path extensions, for compat with platform-specific files
11
- "moduleResolution": "Bundler",
12
- "preserveSymlinks": true,
13
- "skipLibCheck": true,
14
- "jsx": "react-jsx",
15
- "noImplicitAny": false,
16
- "types": ["node", "react", "vite/client"],
17
- "lib": ["dom", "esnext"]
18
- },
19
- "exclude": ["node_modules", "**/test", "**/dist", "**/types", "**/__tests__"]
20
- }
@@ -1,20 +0,0 @@
1
- import { one } from 'one/vite'
2
- import { peachPlugin } from 'peachsim/vite'
3
- export default {
4
- root: import.meta.dirname,
5
- plugins: [
6
- one({
7
- web: { defaultRenderMode: 'spa' },
8
- native: {
9
- bundler: 'vite',
10
- app: {
11
- name: 'KotlinResources',
12
- scheme: 'kotlinresources',
13
- android: { applicationId: 'dev.contrast.kotlinresources' },
14
- },
15
- },
16
- }),
17
- peachPlugin(),
18
- ],
19
- server: { host: '0.0.0.0' },
20
- }
@@ -1,10 +0,0 @@
1
- import { View } from 'react-native'
2
- import { Nested } from './Nested.kt'
3
-
4
- export default function Index() {
5
- return (
6
- <View style={{ flex: 1 }}>
7
- <Nested />
8
- </View>
9
- )
10
- }
@@ -1,13 +0,0 @@
1
- import { useState } from 'react'
2
- import { Text, View } from 'react-native'
3
- import { Scroll } from './Scroll.kt'
4
-
5
- export default function Index() {
6
- const [step, setStep] = useState(0)
7
- return (
8
- <View style={{ flex: 1, backgroundColor: '#fff' }}>
9
- <Scroll title={`Scroll step ${step}`} onStep={setStep} />
10
- <Text testID="scroll-react-step">React step: {step}</Text>
11
- </View>
12
- )
13
- }
@@ -1,4 +0,0 @@
1
- // generated by one typegen; edits will be replaced
2
- import type { ReactElement } from 'react'
3
-
4
- export declare function Nested(props: {}): ReactElement
@@ -1,64 +0,0 @@
1
- package dev.contrast.kotlinapp
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.horizontalScroll
5
- import androidx.compose.foundation.layout.Arrangement
6
- import androidx.compose.foundation.layout.Box
7
- import androidx.compose.foundation.layout.Column
8
- import androidx.compose.foundation.layout.Row
9
- import androidx.compose.foundation.layout.fillMaxSize
10
- import androidx.compose.foundation.layout.fillMaxWidth
11
- import androidx.compose.foundation.layout.height
12
- import androidx.compose.foundation.layout.padding
13
- import androidx.compose.foundation.layout.safeDrawingPadding
14
- import androidx.compose.foundation.layout.size
15
- import androidx.compose.foundation.rememberScrollState
16
- import androidx.compose.foundation.verticalScroll
17
- import androidx.compose.material3.Text
18
- import androidx.compose.runtime.Composable
19
- import androidx.compose.runtime.getValue
20
- import androidx.compose.runtime.mutableFloatStateOf
21
- import androidx.compose.runtime.remember
22
- import androidx.compose.runtime.setValue
23
- import androidx.compose.ui.Alignment
24
- import androidx.compose.ui.Modifier
25
- import androidx.compose.ui.geometry.Offset
26
- import androidx.compose.ui.graphics.Color
27
- import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
28
- import androidx.compose.ui.input.nestedscroll.NestedScrollSource
29
- import androidx.compose.ui.input.nestedscroll.nestedScroll
30
- import androidx.compose.ui.platform.LocalDensity
31
- import androidx.compose.ui.unit.dp
32
- import kotlin.math.roundToInt
33
-
34
- // a header a nested scroll connection collapses before a verticalScroll
35
- // column moves, and a horizontalScroll row inside that column
36
- @Composable
37
- fun Nested() {
38
- val maxHeader = with(LocalDensity.current) { 160.dp.toPx() }
39
- var header by remember { mutableFloatStateOf(maxHeader) }
40
- val column = rememberScrollState()
41
- val row = rememberScrollState()
42
- val connection = remember {
43
- object : NestedScrollConnection {
44
- override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
45
- if (available.y >= 0) return Offset.Zero
46
- val next = (header + available.y).coerceAtLeast(0f)
47
- val used = next - header
48
- header = next
49
- return Offset(0f, used)
50
- }
51
- }
52
- }
53
- val colors = listOf(Color(0xFF3F51B5), Color(0xFFE91E63), Color(0xFF009688), Color(0xFFFF9800))
54
- Column(Modifier.fillMaxSize().background(Color(0xFFE8EEF8)).safeDrawingPadding().nestedScroll(connection)) {
55
- Text("Nested: header ${header.roundToInt()} column ${column.value} row ${row.value}", Modifier.padding(16.dp))
56
- Box(Modifier.fillMaxWidth().height(with(LocalDensity.current) { header.toDp() }).background(Color(0xFF673AB7)))
57
- Column(Modifier.fillMaxWidth().weight(1f).verticalScroll(column).padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) {
58
- Row(Modifier.horizontalScroll(row), horizontalArrangement = Arrangement.spacedBy(8.dp)) {
59
- repeat(12) { i -> Box(Modifier.size(96.dp).background(colors[i % 4]), contentAlignment = Alignment.Center) { Text("H$i", color = Color.White) } }
60
- }
61
- repeat(20) { i -> Box(Modifier.fillMaxWidth().height(64.dp).background(colors[(i + 2) % 4]), contentAlignment = Alignment.Center) { Text("V$i", color = Color.White) } }
62
- }
63
- }
64
- }
@@ -1,38 +0,0 @@
1
- # Imported Compose scrolling
2
-
3
- Run One in this fixture, then open its Android bundle in Peach on Pixel 8.
4
- Build the native Android target on a remote builder. Import the same files in
5
- Contrast with catalog versions materialized.
6
-
7
- Open `/nested` for the shared pure/imported nested-scroll fixture. Its upward
8
- drag collapses the 160 dp header before moving the vertical column, and a
9
- horizontal drag moves the row inside that column. The text reports physical
10
- header, column and row offsets.
11
-
12
- RAN, 2026-10-13: One Android API 37, Peach and a signed-in Contrast import
13
- match `420/0/0`, `0/84/0` and `0/84/504` after the same 24 delivered native
14
- MotionEvent samples. The [nested functional receipt](https://r2.sootsim.com/kotlin-evidence/import-nested/e7c3e61f0841e5dd99eae4b1a80f692d5eeec8056fee3d0dd48014f05cc55478/proof.json)
15
- binds the unchanged host, source, APK, compiled artifacts, input history and
16
- captures. Five saved-data controls reject changed offsets, missing samples,
17
- wrong engine/source identities and slow-animation settings. These bounded
18
- drags establish settled state, without fling, presentation timing or pixel
19
- fidelity. Contrast preview shell appearance and production delivery remain
20
- outside this receipt.
21
-
22
- Tap `scroll-step` to scroll all five containers through their official state
23
- APIs. The plain containers move to 180 and 80 physical pixels. LazyColumn,
24
- LazyRow and LazyVerticalGrid move to index/offset pairs 5/8, 4/4 and 8/6.
25
- The callback updates React and the imported title while Compose retains count.
26
- The disabled action must preserve every value. The second enabled tap resets
27
- every scroll state to zero and advances count to two. Capture all four states,
28
- including visible indexed content. This fixture claims state and scroll-to
29
- execution, without drag/fling timing or full-frame pixel fidelity.
30
-
31
- RAN, 2026-10-11: fresh One Android API 37, Peach and Contrast Android import
32
- runs pass the four states with identical offsets and visible item indices.
33
- The [functional receipt](https://r2.sootsim.com/kotlin-evidence/import-scroll/916c4e8107ef1d5972d87c74dc24d331616d0edab675d9792e06905041b92171/proof.json)
34
- binds the Kotlin source, compiler, native APK, captures and executed probes.
35
- All 50 published objects pass SHA256 readback; a wrong offset and a disabled
36
- callback change reject the saved verdict. Contrast uses the repository's
37
- `CONTRAST_TEST_STABLE_WATCH=1` setup to preload its known dependencies before
38
- navigation. Required CI delivery remains separate from this functional proof.
@@ -1,7 +0,0 @@
1
- // generated by one typegen; edits will be replaced
2
- import type { ReactElement } from 'react'
3
-
4
- export declare function Scroll(props: {
5
- title: string
6
- onStep?: ((value0: number) => void) | null
7
- }): ReactElement
@@ -1,91 +0,0 @@
1
- package dev.contrast.kotlinscroll
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.horizontalScroll
5
- import androidx.compose.foundation.layout.Arrangement
6
- import androidx.compose.foundation.layout.Column
7
- import androidx.compose.foundation.layout.Row
8
- import androidx.compose.foundation.layout.fillMaxSize
9
- import androidx.compose.foundation.layout.padding
10
- import androidx.compose.foundation.layout.size
11
- import androidx.compose.foundation.lazy.LazyColumn
12
- import androidx.compose.foundation.lazy.LazyRow
13
- import androidx.compose.foundation.lazy.rememberLazyListState
14
- import androidx.compose.foundation.lazy.grid.GridCells
15
- import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
16
- import androidx.compose.foundation.lazy.grid.rememberLazyGridState
17
- import androidx.compose.foundation.rememberScrollState
18
- import androidx.compose.foundation.verticalScroll
19
- import androidx.compose.material3.Button
20
- import androidx.compose.material3.MaterialTheme
21
- import androidx.compose.material3.Surface
22
- import androidx.compose.material3.Text
23
- import androidx.compose.material3.lightColorScheme
24
- import androidx.compose.runtime.Composable
25
- import androidx.compose.runtime.getValue
26
- import androidx.compose.runtime.mutableStateOf
27
- import androidx.compose.runtime.remember
28
- import androidx.compose.runtime.rememberCoroutineScope
29
- import androidx.compose.runtime.setValue
30
- import androidx.compose.ui.Modifier
31
- import androidx.compose.ui.graphics.Color
32
- import androidx.compose.ui.platform.testTag
33
- import androidx.compose.ui.unit.dp
34
- import kotlinx.coroutines.launch
35
-
36
- @Composable
37
- fun Scroll(title: String, onStep: ((Int) -> Unit)? = null) {
38
- var count by remember { mutableStateOf(0) }
39
- val vertical = rememberScrollState()
40
- val horizontal = rememberScrollState()
41
- val column = rememberLazyListState()
42
- val row = rememberLazyListState()
43
- val grid = rememberLazyGridState()
44
- val scope = rememberCoroutineScope()
45
- MaterialTheme(colorScheme = lightColorScheme()) {
46
- Surface(Modifier.fillMaxSize()) {
47
- Column(Modifier.fillMaxSize().padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) {
48
- Text(title, Modifier.testTag("scroll-title"))
49
- Text("Count: $count", Modifier.testTag("scroll-count"))
50
- Column(Modifier.size(280.dp, 64.dp).verticalScroll(vertical).background(Color(0xFFEADDFF))) {
51
- repeat(20) { Text("Vertical $it", Modifier.size(280.dp, 32.dp)) }
52
- }
53
- Row(Modifier.size(280.dp, 48.dp).horizontalScroll(horizontal).background(Color(0xFFE8DEF8))) {
54
- repeat(20) { Text("Horizontal $it", Modifier.size(100.dp, 48.dp)) }
55
- }
56
- LazyColumn(Modifier.size(280.dp, 64.dp).background(Color(0xFFEADDFF)), state = column) {
57
- items(30) { Text("Column $it", Modifier.size(280.dp, 32.dp)) }
58
- }
59
- LazyRow(Modifier.size(280.dp, 48.dp).background(Color(0xFFE8DEF8)), state = row) {
60
- items(30) { Text("Row $it", Modifier.size(100.dp, 48.dp)) }
61
- }
62
- LazyVerticalGrid(columns = GridCells.Fixed(2), modifier = Modifier.size(280.dp, 64.dp).background(Color(0xFFEADDFF)), state = grid) {
63
- items(30) { Text("Grid $it", Modifier.size(140.dp, 32.dp)) }
64
- }
65
- Button(
66
- onClick = {
67
- scope.launch {
68
- val next = count + 1
69
- val moved = next % 2 == 1
70
- vertical.scrollTo(if (moved) 180 else 0)
71
- horizontal.scrollTo(if (moved) 80 else 0)
72
- column.scrollToItem(if (moved) 5 else 0, if (moved) 8 else 0)
73
- row.scrollToItem(if (moved) 4 else 0, if (moved) 4 else 0)
74
- grid.scrollToItem(if (moved) 8 else 0, if (moved) 6 else 0)
75
- count = next
76
- onStep?.invoke(next)
77
- }
78
- },
79
- modifier = Modifier.testTag("scroll-step"),
80
- ) { Text("Next scroll step") }
81
- Button(onClick = { count += 1000; onStep?.invoke(count) }, enabled = false, modifier = Modifier.testTag("scroll-disabled")) {
82
- Text("Disabled scroll step")
83
- }
84
- Text(
85
- "vertical=${vertical.value};horizontal=${horizontal.value};column=${column.firstVisibleItemIndex},${column.firstVisibleItemScrollOffset};row=${row.firstVisibleItemIndex},${row.firstVisibleItemScrollOffset};grid=${grid.firstVisibleItemIndex},${grid.firstVisibleItemScrollOffset}",
86
- Modifier.testTag("scroll-geometry"),
87
- )
88
- }
89
- }
90
- }
91
- }
@@ -1,4 +0,0 @@
1
- import { Slot } from 'one'
2
- export default function Layout() {
3
- return <Slot />
4
- }
@@ -1 +0,0 @@
1
- export { default } from '../ImportScroll.native'
@@ -1 +0,0 @@
1
- export { default } from '../ImportNested.native'
@@ -1,23 +0,0 @@
1
- {
2
- "name": "peach-kotlin-import-scroll-fixture",
3
- "private": true,
4
- "type": "module",
5
- "targets": [
6
- "native"
7
- ],
8
- "dependencies": {
9
- "@react-navigation/core": "catalog:",
10
- "@react-navigation/native": "catalog:",
11
- "one": "catalog:",
12
- "react": "catalog:",
13
- "react-native": "catalog:",
14
- "react-native-reanimated": "catalog:",
15
- "react-native-screens": "catalog:",
16
- "react-native-worklets": "catalog:"
17
- },
18
- "devDependencies": {
19
- "@react-native-community/template": "catalog:",
20
- "peachsim": "workspace:*",
21
- "vite": "catalog:"
22
- }
23
- }
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "paths": {
4
- "~/*": ["./*"]
5
- },
6
- "strict": true,
7
- "allowArbitraryExtensions": true,
8
- "rootDir": ".",
9
- "module": "Preserve",
10
- // allows react-native style imports without path extensions, for compat with platform-specific files
11
- "moduleResolution": "Bundler",
12
- "preserveSymlinks": true,
13
- "skipLibCheck": true,
14
- "jsx": "react-jsx",
15
- "noImplicitAny": false,
16
- "types": ["node", "react", "vite/client"],
17
- "lib": ["dom", "esnext"]
18
- },
19
- "exclude": ["node_modules", "**/test", "**/dist", "**/types", "**/__tests__"]
20
- }
@@ -1,20 +0,0 @@
1
- import { one } from 'one/vite'
2
- import { peachPlugin } from 'peachsim/vite'
3
- export default {
4
- root: import.meta.dirname,
5
- plugins: [
6
- one({
7
- web: { defaultRenderMode: 'spa' },
8
- native: {
9
- bundler: 'vite',
10
- app: {
11
- name: 'KotlinScroll',
12
- scheme: 'kotlinscroll',
13
- android: { applicationId: 'dev.contrast.kotlinscroll' },
14
- },
15
- },
16
- }),
17
- peachPlugin(),
18
- ],
19
- server: { host: '0.0.0.0' },
20
- }