rnxsim 0.1.534 → 0.1.536

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 (56) hide show
  1. package/dist-lib/agent-daemon-client.cjs +1 -1
  2. package/dist-lib/agent-events.cjs +1 -1
  3. package/dist-lib/agent-identity.cjs +1 -1
  4. package/dist-lib/agent-sessions.cjs +1 -1
  5. package/dist-lib/attached-projects.cjs +1 -1
  6. package/dist-lib/auth/shared-session.cjs +1 -1
  7. package/dist-lib/backend-origin.cjs +1 -1
  8. package/dist-lib/beta.cjs +1 -1
  9. package/dist-lib/beta.mjs +1 -1
  10. package/dist-lib/bridge-constants.cjs +1 -1
  11. package/dist-lib/bridge-contract-input.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.mjs +1 -1
  13. package/dist-lib/bridge-contract.cjs +1 -1
  14. package/dist-lib/bridge-contract.mjs +1 -1
  15. package/dist-lib/capture-contract.cjs +1 -1
  16. package/dist-lib/capture-contract.mjs +1 -1
  17. package/dist-lib/cli-constants.cjs +1 -1
  18. package/dist-lib/cloud-contract.cjs +1 -1
  19. package/dist-lib/cloud-contract.mjs +1 -1
  20. package/dist-lib/cloud.cjs +1 -1
  21. package/dist-lib/cloud.mjs +1 -1
  22. package/dist-lib/config.cjs +1 -1
  23. package/dist-lib/detox/index.cjs +1 -1
  24. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  25. package/dist-lib/home-paths.cjs +1 -1
  26. package/dist-lib/host/bridge-host.cjs +22 -11
  27. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  28. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  29. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  30. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  31. package/dist-lib/host/websocket-proxy.cjs +1 -1
  32. package/dist-lib/index.cjs +1 -1
  33. package/dist-lib/jump-to-source-babel.cjs +1 -1
  34. package/dist-lib/jump-to-source-native.cjs +1 -1
  35. package/dist-lib/menu.cjs +1 -1
  36. package/dist-lib/menu.mjs +1 -1
  37. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  38. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  39. package/dist-lib/metro-production-bundle.cjs +1 -1
  40. package/dist-lib/metro-production-bundle.mjs +1 -1
  41. package/dist-lib/metro.cjs +1 -1
  42. package/dist-lib/profiles.cjs +1 -1
  43. package/dist-lib/public-brand.cjs +1 -1
  44. package/dist-lib/react-native-host-modules.cjs +1 -1
  45. package/dist-lib/react-native-host-modules.mjs +1 -1
  46. package/dist-lib/render-mode.cjs +1 -1
  47. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  48. package/dist-lib/sdk.cjs +1 -1
  49. package/dist-lib/sdk.mjs +1 -1
  50. package/dist-lib/skills.cjs +33 -50
  51. package/dist-lib/swift-submit.cjs +1 -1
  52. package/dist-lib/swift-submit.mjs +1 -1
  53. package/dist-lib/swift.cjs +1 -1
  54. package/dist-lib/vite.cjs +1 -1
  55. package/package.json +1 -1
  56. package/src/screenshots/frame-compose.ts +22 -54
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_MAX_MS = 5e3;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var REFUSED_PERFORM_STEP_TYPES = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/capture-contract.ts
4
4
  var RNX_SCREEN_CAPTURE_VERSION = 1;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/cloud-contract.ts
4
4
  var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -850,16 +850,18 @@ function getDevice(model, posture) {
850
850
  return {
851
851
  ...device,
852
852
  // inner display size from apple's ios 27 ui kit. corners and insets are
853
- // measured from apple's 2d inner product art: every display corner fits a
854
- // 53pt circle within 0.4px, and the silhouette sits 19.5pt outside the
855
- // display on every edge as 16pt of black glass plus a 3.5pt rail.
853
+ // measured from apple's 2d inner product art at 3x: every display corner
854
+ // fits a 53pt circle within 0.4px, the silhouette sits 20.67pt outside the
855
+ // display on every edge as 16.33pt of black glass plus a 4.33pt rail, and
856
+ // the body itself curves at 75pt. the barrel is hidden when open.
856
857
  width: 951,
857
858
  height: 669,
858
859
  statusBarHeight: 44,
859
860
  cornerRadius: cornerRadii(53),
860
861
  continuousCornerRadius: cornerRadii(53),
861
- frameInsets: uniformFrameInsets(19.5),
862
- housing: { rail: uniformFrameInsets(3.5), hingeBarrel: null },
862
+ frameInsets: uniformFrameInsets(20.6667),
863
+ frameCornerRadius: cornerRadii(75),
864
+ housing: { rail: uniformFrameInsets(4.3333), hingeBarrel: null },
863
865
  cameraCutout: null,
864
866
  physicalPPI: 430,
865
867
  posture: "open",
@@ -1300,12 +1302,21 @@ var init_devices = __esm({
1300
1302
  bottomRight: 61,
1301
1303
  bottomLeft: 5
1302
1304
  },
1303
- // display edge to silhouette. left is black glass 8.6 + rail 5.4 + hinge
1304
- // barrel 14.1; right is black glass 8.7 + rail 7.7.
1305
- frameInsets: { top: 19, right: 16.4, bottom: 16.3, left: 28.1 },
1305
+ // display edge to silhouette, measured off apple's 2d outer product art
1306
+ // at 3x. the barrel is not part of the body: it protrudes 11.67pt past
1307
+ // the left silhouette, so the full outer width is frame + protrusion.
1308
+ frameInsets: { top: 16.3333, right: 16.3333, bottom: 16, left: 14 },
1309
+ // the spine is a flat cut, so its corners are tiny; the free side keeps
1310
+ // the 75pt body curve the pro bodies use.
1311
+ frameCornerRadius: {
1312
+ topLeft: 4.3333,
1313
+ topRight: 75,
1314
+ bottomRight: 75,
1315
+ bottomLeft: 3.3333
1316
+ },
1306
1317
  housing: {
1307
- rail: { top: 10.4, right: 7.7, bottom: 7.7, left: 19.5 },
1308
- hingeBarrel: { width: 14.1, endInset: 6.4 }
1318
+ rail: { top: 7.5, right: 8, bottom: 7.3333, left: 5.3333 },
1319
+ hingeBarrel: { width: 16.6667, endInset: 7.3333, protrusion: 11.6667 }
1309
1320
  },
1310
1321
  dynamicIsland: null,
1311
1322
  // 84pt trailing Vertical Bar on the outer display (Apple iOS 27 UI kit).
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/host/fetch-proxy-overrides.ts
4
4
  var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/menu.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/menu.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "rnx";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/metro-fingerprint-registry.ts
4
4
  var RNX_METRO_FINGERPRINT_SCHEMA_VERSION = 2;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/metro-production-bundle.ts
4
4
  var RNXSIM_METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/react-native-host-modules.ts
4
4
  var REACT_NATIVE_PASSTHROUGH_SPECIFIERS = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -24912,16 +24912,18 @@ function getDevice(model, posture) {
24912
24912
  return {
24913
24913
  ...device,
24914
24914
  // inner display size from apple's ios 27 ui kit. corners and insets are
24915
- // measured from apple's 2d inner product art: every display corner fits a
24916
- // 53pt circle within 0.4px, and the silhouette sits 19.5pt outside the
24917
- // display on every edge as 16pt of black glass plus a 3.5pt rail.
24915
+ // measured from apple's 2d inner product art at 3x: every display corner
24916
+ // fits a 53pt circle within 0.4px, the silhouette sits 20.67pt outside the
24917
+ // display on every edge as 16.33pt of black glass plus a 4.33pt rail, and
24918
+ // the body itself curves at 75pt. the barrel is hidden when open.
24918
24919
  width: 951,
24919
24920
  height: 669,
24920
24921
  statusBarHeight: 44,
24921
24922
  cornerRadius: cornerRadii(53),
24922
24923
  continuousCornerRadius: cornerRadii(53),
24923
- frameInsets: uniformFrameInsets(19.5),
24924
- housing: { rail: uniformFrameInsets(3.5), hingeBarrel: null },
24924
+ frameInsets: uniformFrameInsets(20.6667),
24925
+ frameCornerRadius: cornerRadii(75),
24926
+ housing: { rail: uniformFrameInsets(4.3333), hingeBarrel: null },
24925
24927
  cameraCutout: null,
24926
24928
  physicalPPI: 430,
24927
24929
  posture: "open",
@@ -25362,12 +25364,21 @@ var init_devices = __esm({
25362
25364
  bottomRight: 61,
25363
25365
  bottomLeft: 5
25364
25366
  },
25365
- // display edge to silhouette. left is black glass 8.6 + rail 5.4 + hinge
25366
- // barrel 14.1; right is black glass 8.7 + rail 7.7.
25367
- frameInsets: { top: 19, right: 16.4, bottom: 16.3, left: 28.1 },
25367
+ // display edge to silhouette, measured off apple's 2d outer product art
25368
+ // at 3x. the barrel is not part of the body: it protrudes 11.67pt past
25369
+ // the left silhouette, so the full outer width is frame + protrusion.
25370
+ frameInsets: { top: 16.3333, right: 16.3333, bottom: 16, left: 14 },
25371
+ // the spine is a flat cut, so its corners are tiny; the free side keeps
25372
+ // the 75pt body curve the pro bodies use.
25373
+ frameCornerRadius: {
25374
+ topLeft: 4.3333,
25375
+ topRight: 75,
25376
+ bottomRight: 75,
25377
+ bottomLeft: 3.3333
25378
+ },
25368
25379
  housing: {
25369
- rail: { top: 10.4, right: 7.7, bottom: 7.7, left: 19.5 },
25370
- hingeBarrel: { width: 14.1, endInset: 6.4 }
25380
+ rail: { top: 7.5, right: 8, bottom: 7.3333, left: 5.3333 },
25381
+ hingeBarrel: { width: 16.6667, endInset: 7.3333, protrusion: 11.6667 }
25371
25382
  },
25372
25383
  dynamicIsland: null,
25373
25384
  // 84pt trailing Vertical Bar on the outer display (Apple iOS 27 UI kit).
@@ -35839,7 +35850,7 @@ function getFramedScreenshotLayout(model) {
35839
35850
  const logicalScreenWidth = spec.width;
35840
35851
  const logicalScreenHeight = spec.height;
35841
35852
  const modernGeometry = (0, import_settings2.resolveDeviceFrameGeometry)(spec);
35842
- const housing = isLegacyHardware ? null : modernGeometry.housing;
35853
+ const housingLayers = isLegacyHardware ? null : (0, import_duo_housing.resolveHousingArt)(spec.posture ?? "closed", modernGeometry);
35843
35854
  const logicalFrameWidth = isLegacyHardware ? spec.width + import_chrome_metrics.LEGACY_SIDE_BEZEL * 2 : modernGeometry.frameWidth;
35844
35855
  const logicalFrameHeight = isLegacyHardware ? spec.height + import_chrome_metrics.LEGACY_TOP_BEZEL + import_chrome_metrics.LEGACY_BOTTOM_BEZEL : modernGeometry.frameHeight;
35845
35856
  const logicalFrameLeft = import_chrome_metrics.SIDE_BUTTON_RESERVE;
@@ -35892,10 +35903,12 @@ function getFramedScreenshotLayout(model) {
35892
35903
  logicalScreenTop,
35893
35904
  logicalScreenRadius: isLegacyHardware ? (0, import_settings2.cornerRadii)(0) : modernGeometry.screenRadius,
35894
35905
  logicalFrameRadius,
35895
- housing,
35896
- frameBackground: isLegacyHardware ? "linear-gradient(180deg, #1b1c20 0%, #0f1012 42%, #050608 100%)" : housing ? import_chrome_metrics.HOUSING_RAIL_COLOR : "#000000",
35897
- frameOutline: isLegacyHardware ? "0 0 0 1px #1f2125" : housing ? import_chrome_metrics.HOUSING_RAIL_OUTLINE : "0 0 0 1px #333",
35898
- metallicRingShadow: isLegacyHardware || housing ? null : METALLIC_RING_SHADOW,
35906
+ housingLayers,
35907
+ // the housing paints its own body layer, shadow included: its frame box is
35908
+ // wider than the body, because the hinge barrel protrudes past the spine.
35909
+ frameBackground: isLegacyHardware ? "linear-gradient(180deg, #1b1c20 0%, #0f1012 42%, #050608 100%)" : housingLayers ? "transparent" : "#000000",
35910
+ frameOutline: isLegacyHardware ? "0 0 0 1px #1f2125" : housingLayers ? "none" : "0 0 0 1px #333",
35911
+ metallicRingShadow: isLegacyHardware || housingLayers ? null : METALLIC_RING_SHADOW,
35899
35912
  buttons,
35900
35913
  legacyHomeButton: isLegacyHardware ? {
35901
35914
  top: import_chrome_metrics.LEGACY_TOP_BEZEL + spec.height + (import_chrome_metrics.LEGACY_BOTTOM_BEZEL - import_chrome_metrics.LEGACY_HOME_BUTTON_SIZE) / 2,
@@ -35952,38 +35965,7 @@ function renderFrameHtml(layout, rawImageDataUrl) {
35952
35965
  "
35953
35966
  ></div>
35954
35967
  ` : "";
35955
- const housingHtml = layout.housing ? `
35956
- <div
35957
- aria-hidden="true"
35958
- style="
35959
- position:absolute;
35960
- top:${layout.housing.rail.top}px;
35961
- right:${layout.housing.rail.right}px;
35962
- bottom:${layout.housing.rail.bottom}px;
35963
- left:${layout.housing.rail.left}px;
35964
- border-radius:${(0, import_settings2.formatCornerRadii)(layout.housing.glassRadius)};
35965
- background:#000000;
35966
- pointer-events:none;
35967
- "
35968
- ></div>
35969
- ${layout.housing.hingeBarrel ? `
35970
- <div
35971
- aria-hidden="true"
35972
- style="
35973
- position:absolute;
35974
- top:${layout.housing.hingeBarrel.endInset}px;
35975
- bottom:${layout.housing.hingeBarrel.endInset}px;
35976
- left:0;
35977
- width:${layout.housing.hingeBarrel.width}px;
35978
- border-radius:${layout.housing.hingeBarrel.width / 2}px 0 0 ${layout.housing.hingeBarrel.width / 2}px;
35979
- background:${import_chrome_metrics.HINGE_BARREL_BACKGROUND};
35980
- box-shadow:${import_chrome_metrics.HINGE_BARREL_SHADOW};
35981
- pointer-events:none;
35982
- z-index:11;
35983
- "
35984
- ></div>
35985
- ` : ""}
35986
- ` : "";
35968
+ const housingHtml = (layout.housingLayers ?? []).map(import_duo_housing.housingLayerHtml).join("");
35987
35969
  const legacyHomeButtonHtml = layout.legacyHomeButton ? `
35988
35970
  <div
35989
35971
  aria-hidden="true"
@@ -36097,7 +36079,7 @@ function renderFrameHtml(layout, rawImageDataUrl) {
36097
36079
  left:${layout.logicalFrameLeft}px;
36098
36080
  width:${layout.logicalFrameWidth}px;
36099
36081
  height:${layout.logicalFrameHeight}px;
36100
- border-radius:${(0, import_settings2.formatCornerRadii)(layout.logicalFrameRadius)};
36082
+ border-radius:${layout.housingLayers ? "0" : (0, import_settings2.formatCornerRadii)(layout.logicalFrameRadius)};
36101
36083
  box-sizing:border-box;
36102
36084
  overflow:visible;
36103
36085
  background:${layout.frameBackground};
@@ -36188,11 +36170,12 @@ async function createFramedScreenshotComposer(browser) {
36188
36170
  }
36189
36171
  };
36190
36172
  }
36191
- var import_chrome_metrics, import_settings2, METALLIC_RING_SHADOW, FRAME_OUTLINE_BLEED;
36173
+ var import_chrome_metrics, import_duo_housing, import_settings2, METALLIC_RING_SHADOW, FRAME_OUTLINE_BLEED;
36192
36174
  var init_frame_compose = __esm({
36193
36175
  "src/screenshots/frame-compose.ts"() {
36194
36176
  "use strict";
36195
36177
  import_chrome_metrics = require("sootsim-engine/ios/chrome-metrics");
36178
+ import_duo_housing = require("sootsim-engine/ios/duo-housing");
36196
36179
  import_settings2 = require("sootsim-engine/settings");
36197
36180
  init_reap_browser();
36198
36181
  METALLIC_RING_SHADOW = "inset 0 0 0 0.5px #000, inset 0 0 0 2px #757575, inset 0 0 0 5px #212121";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-submit.ts
4
4
  var SWIFT_COMPILE_PATH = "/api/swift-compile";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.534 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.536 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rnxsim",
3
- "version": "0.1.534",
3
+ "version": "0.1.536",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for rnx.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -5,12 +5,13 @@ import {
5
5
  LEGACY_HOME_BUTTON_SIZE,
6
6
  LEGACY_SIDE_BEZEL,
7
7
  LEGACY_TOP_BEZEL,
8
- HINGE_BARREL_BACKGROUND,
9
- HINGE_BARREL_SHADOW,
10
- HOUSING_RAIL_COLOR,
11
- HOUSING_RAIL_OUTLINE,
12
8
  SIDE_BUTTON_RESERVE,
13
9
  } from 'sootsim-engine/ios/chrome-metrics'
10
+ import {
11
+ housingLayerHtml,
12
+ resolveHousingArt,
13
+ type HousingLayer,
14
+ } from 'sootsim-engine/ios/duo-housing'
14
15
  import {
15
16
  cornerRadii,
16
17
  formatCornerRadii,
@@ -56,8 +57,8 @@ export interface FramedScreenshotLayout {
56
57
  logicalScreenTop: number
57
58
  logicalScreenRadius: CornerRadii
58
59
  logicalFrameRadius: CornerRadii
59
- // light rail around a black glass ring; null draws one black body
60
- housing: ReturnType<typeof resolveDeviceFrameGeometry>['housing']
60
+ // folding body art, painted before the screen; null draws one black body
61
+ housingLayers: HousingLayer[] | null
61
62
  frameBackground: string
62
63
  frameOutline: string
63
64
  metallicRingShadow: string | null
@@ -87,7 +88,9 @@ export function getFramedScreenshotLayout(model: DeviceModel): FramedScreenshotL
87
88
  const logicalScreenWidth = spec.width
88
89
  const logicalScreenHeight = spec.height
89
90
  const modernGeometry = resolveDeviceFrameGeometry(spec)
90
- const housing = isLegacyHardware ? null : modernGeometry.housing
91
+ const housingLayers = isLegacyHardware
92
+ ? null
93
+ : resolveHousingArt(spec.posture ?? 'closed', modernGeometry)
91
94
  const logicalFrameWidth = isLegacyHardware
92
95
  ? spec.width + LEGACY_SIDE_BEZEL * 2
93
96
  : modernGeometry.frameWidth
@@ -148,18 +151,20 @@ export function getFramedScreenshotLayout(model: DeviceModel): FramedScreenshotL
148
151
  logicalScreenTop,
149
152
  logicalScreenRadius: isLegacyHardware ? cornerRadii(0) : modernGeometry.screenRadius,
150
153
  logicalFrameRadius,
151
- housing,
154
+ housingLayers,
155
+ // the housing paints its own body layer, shadow included: its frame box is
156
+ // wider than the body, because the hinge barrel protrudes past the spine.
152
157
  frameBackground: isLegacyHardware
153
158
  ? 'linear-gradient(180deg, #1b1c20 0%, #0f1012 42%, #050608 100%)'
154
- : housing
155
- ? HOUSING_RAIL_COLOR
159
+ : housingLayers
160
+ ? 'transparent'
156
161
  : '#000000',
157
162
  frameOutline: isLegacyHardware
158
163
  ? '0 0 0 1px #1f2125'
159
- : housing
160
- ? HOUSING_RAIL_OUTLINE
164
+ : housingLayers
165
+ ? 'none'
161
166
  : '0 0 0 1px #333',
162
- metallicRingShadow: isLegacyHardware || housing ? null : METALLIC_RING_SHADOW,
167
+ metallicRingShadow: isLegacyHardware || housingLayers ? null : METALLIC_RING_SHADOW,
163
168
  buttons,
164
169
  legacyHomeButton: isLegacyHardware
165
170
  ? {
@@ -230,46 +235,9 @@ function renderFrameHtml(
230
235
  `
231
236
  : ''
232
237
 
233
- // black glass ring inside the rail, then the hinge barrel over the leading
234
- // rail. the ring carries no z-index so the screen div after it paints on top.
235
- const housingHtml = layout.housing
236
- ? `
237
- <div
238
- aria-hidden="true"
239
- style="
240
- position:absolute;
241
- top:${layout.housing.rail.top}px;
242
- right:${layout.housing.rail.right}px;
243
- bottom:${layout.housing.rail.bottom}px;
244
- left:${layout.housing.rail.left}px;
245
- border-radius:${formatCornerRadii(layout.housing.glassRadius)};
246
- background:#000000;
247
- pointer-events:none;
248
- "
249
- ></div>
250
- ${
251
- layout.housing.hingeBarrel
252
- ? `
253
- <div
254
- aria-hidden="true"
255
- style="
256
- position:absolute;
257
- top:${layout.housing.hingeBarrel.endInset}px;
258
- bottom:${layout.housing.hingeBarrel.endInset}px;
259
- left:0;
260
- width:${layout.housing.hingeBarrel.width}px;
261
- border-radius:${layout.housing.hingeBarrel.width / 2}px 0 0 ${layout.housing.hingeBarrel.width / 2}px;
262
- background:${HINGE_BARREL_BACKGROUND};
263
- box-shadow:${HINGE_BARREL_SHADOW};
264
- pointer-events:none;
265
- z-index:11;
266
- "
267
- ></div>
268
- `
269
- : ''
270
- }
271
- `
272
- : ''
238
+ // the folding body's rail, glass ring, corner art, and hinge barrel. no
239
+ // z-index, so the screen div after it paints on top.
240
+ const housingHtml = (layout.housingLayers ?? []).map(housingLayerHtml).join('')
273
241
 
274
242
  const legacyHomeButtonHtml = layout.legacyHomeButton
275
243
  ? `
@@ -390,7 +358,7 @@ function renderFrameHtml(
390
358
  left:${layout.logicalFrameLeft}px;
391
359
  width:${layout.logicalFrameWidth}px;
392
360
  height:${layout.logicalFrameHeight}px;
393
- border-radius:${formatCornerRadii(layout.logicalFrameRadius)};
361
+ border-radius:${layout.housingLayers ? '0' : formatCornerRadii(layout.logicalFrameRadius)};
394
362
  box-sizing:border-box;
395
363
  overflow:visible;
396
364
  background:${layout.frameBackground};