peachsim 0.1.667 → 0.1.669
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.
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +9 -3
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +22 -20
- package/dist-lib/swift-compile.cjs +1 -1
- package/dist-lib/swift-compile.mjs +1 -1
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/kotlin/fixtures/kotlin-app-variants/Controls.kt +62 -0
- package/kotlin/fixtures/kotlin-app-variants/Drag.kt +56 -0
- package/kotlin/fixtures/kotlin-app-variants/Draw.kt +74 -0
- package/kotlin/fixtures/kotlin-app-variants/TextWidth.kt +45 -0
- package/package.json +1 -1
- package/src/expo-swift-host.ts +6 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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;
|
|
@@ -6041,6 +6041,11 @@ var import_node_module = require("node:module");
|
|
|
6041
6041
|
var import_node_os4 = __toESM(require("node:os"), 1);
|
|
6042
6042
|
var import_node_path10 = __toESM(require("node:path"), 1);
|
|
6043
6043
|
var import_node_util3 = require("node:util");
|
|
6044
|
+
|
|
6045
|
+
// cli/internal-child.ts
|
|
6046
|
+
var RNX_FORKED_SCRIPT_ENV = "PEACH_RUNS_FORKED_SCRIPTS";
|
|
6047
|
+
|
|
6048
|
+
// src/expo-swift-host.ts
|
|
6044
6049
|
init_backend_origin();
|
|
6045
6050
|
|
|
6046
6051
|
// src/swift-host.ts
|
|
@@ -7657,6 +7662,7 @@ function serveSwiftPackageAsset(pathname, res) {
|
|
|
7657
7662
|
// src/expo-swift-host.ts
|
|
7658
7663
|
var import_meta2 = {};
|
|
7659
7664
|
var run3 = (0, import_node_util3.promisify)(import_node_child_process4.execFile);
|
|
7665
|
+
var scriptEnv = { ...process.env, [RNX_FORKED_SCRIPT_ENV]: "1" };
|
|
7660
7666
|
var EXPO_SWIFT_ROUTE = "/__peach/expo-swift";
|
|
7661
7667
|
var EXPO_SWIFT_ENTRY = "Sources/PeachExpoApp/PeachExpoEntry.swift";
|
|
7662
7668
|
async function collectExpoSwiftSources(appRoot) {
|
|
@@ -7681,7 +7687,7 @@ async function collectExpoSwiftSources(appRoot) {
|
|
|
7681
7687
|
appRoot,
|
|
7682
7688
|
"--json"
|
|
7683
7689
|
],
|
|
7684
|
-
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024 }
|
|
7690
|
+
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024, env: scriptEnv }
|
|
7685
7691
|
);
|
|
7686
7692
|
const search = JSON.parse(stdout);
|
|
7687
7693
|
if (!search || typeof search !== "object" || Array.isArray(search))
|
|
@@ -7697,7 +7703,7 @@ async function collectExpoSwiftSources(appRoot) {
|
|
|
7697
7703
|
appRoot,
|
|
7698
7704
|
"--json"
|
|
7699
7705
|
],
|
|
7700
|
-
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024 }
|
|
7706
|
+
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024, env: scriptEnv }
|
|
7701
7707
|
);
|
|
7702
7708
|
const resolved = JSON.parse(resolvedText);
|
|
7703
7709
|
const resolutions = resolved && typeof resolved === "object" ? Reflect.get(resolved, "modules") : null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/kotlin-host.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/plist.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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/plist.mjs
CHANGED
package/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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);
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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;
|
|
@@ -746,7 +746,6 @@ var init_light_native_package_names = __esm({
|
|
|
746
746
|
"@dariyd/react-native-text-recognition",
|
|
747
747
|
"@dashdoc/react-native-system-sounds",
|
|
748
748
|
"@datadog/mobile-react-native-session-replay",
|
|
749
|
-
"@datadog/mobile-react-native-webview",
|
|
750
749
|
"@datadome/datadome-axios",
|
|
751
750
|
"@datadome/react-native-datadome",
|
|
752
751
|
"@datalyr/react-native",
|
|
@@ -21144,6 +21143,22 @@ var init_cli_version = __esm({
|
|
|
21144
21143
|
}
|
|
21145
21144
|
});
|
|
21146
21145
|
|
|
21146
|
+
// cli/internal-child.ts
|
|
21147
|
+
var RNX_INTERNAL_COMMAND, RNX_FORKED_SCRIPT_ENV, RNX_INTERNAL_CHILDREN;
|
|
21148
|
+
var init_internal_child = __esm({
|
|
21149
|
+
"cli/internal-child.ts"() {
|
|
21150
|
+
"use strict";
|
|
21151
|
+
RNX_INTERNAL_COMMAND = "__internal";
|
|
21152
|
+
RNX_FORKED_SCRIPT_ENV = "PEACH_RUNS_FORKED_SCRIPTS";
|
|
21153
|
+
RNX_INTERNAL_CHILDREN = {
|
|
21154
|
+
playwrightProbe: "playwright-probe",
|
|
21155
|
+
playwrightInstall: "playwright-install",
|
|
21156
|
+
playwrightHost: "playwright-host",
|
|
21157
|
+
syncHttp: "sync-http"
|
|
21158
|
+
};
|
|
21159
|
+
}
|
|
21160
|
+
});
|
|
21161
|
+
|
|
21147
21162
|
// ../sootsim-swift/src/bundleAssets.ts
|
|
21148
21163
|
function extOf(file) {
|
|
21149
21164
|
const dot = file.lastIndexOf(".");
|
|
@@ -23048,7 +23063,7 @@ async function collectExpoSwiftSources(appRoot) {
|
|
|
23048
23063
|
appRoot,
|
|
23049
23064
|
"--json"
|
|
23050
23065
|
],
|
|
23051
|
-
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024 }
|
|
23066
|
+
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024, env: scriptEnv }
|
|
23052
23067
|
);
|
|
23053
23068
|
const search = JSON.parse(stdout);
|
|
23054
23069
|
if (!search || typeof search !== "object" || Array.isArray(search))
|
|
@@ -23064,7 +23079,7 @@ async function collectExpoSwiftSources(appRoot) {
|
|
|
23064
23079
|
appRoot,
|
|
23065
23080
|
"--json"
|
|
23066
23081
|
],
|
|
23067
|
-
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024 }
|
|
23082
|
+
{ timeout: 3e4, maxBuffer: 8 * 1024 * 1024, env: scriptEnv }
|
|
23068
23083
|
);
|
|
23069
23084
|
const resolved = JSON.parse(resolvedText);
|
|
23070
23085
|
const resolutions = resolved && typeof resolved === "object" ? Reflect.get(resolved, "modules") : null;
|
|
@@ -23225,7 +23240,7 @@ async function handleExpoSwiftRequest(req, res) {
|
|
|
23225
23240
|
}
|
|
23226
23241
|
return true;
|
|
23227
23242
|
}
|
|
23228
|
-
var import_node_child_process5, import_node_crypto5, import_node_fs10, import_node_module, import_node_os4, import_node_path10, import_node_util3, import_meta2, run3, EXPO_SWIFT_ROUTE, EXPO_SWIFT_ENTRY, compiling;
|
|
23243
|
+
var import_node_child_process5, import_node_crypto5, import_node_fs10, import_node_module, import_node_os4, import_node_path10, import_node_util3, import_meta2, run3, scriptEnv, EXPO_SWIFT_ROUTE, EXPO_SWIFT_ENTRY, compiling;
|
|
23229
23244
|
var init_expo_swift_host = __esm({
|
|
23230
23245
|
"src/expo-swift-host.ts"() {
|
|
23231
23246
|
"use strict";
|
|
@@ -23236,11 +23251,13 @@ var init_expo_swift_host = __esm({
|
|
|
23236
23251
|
import_node_os4 = __toESM(require("node:os"), 1);
|
|
23237
23252
|
import_node_path10 = __toESM(require("node:path"), 1);
|
|
23238
23253
|
import_node_util3 = require("node:util");
|
|
23254
|
+
init_internal_child();
|
|
23239
23255
|
init_backend_origin();
|
|
23240
23256
|
init_swift_host();
|
|
23241
23257
|
init_swift_submit();
|
|
23242
23258
|
import_meta2 = {};
|
|
23243
23259
|
run3 = (0, import_node_util3.promisify)(import_node_child_process5.execFile);
|
|
23260
|
+
scriptEnv = { ...process.env, [RNX_FORKED_SCRIPT_ENV]: "1" };
|
|
23244
23261
|
EXPO_SWIFT_ROUTE = "/__peach/expo-swift";
|
|
23245
23262
|
EXPO_SWIFT_ENTRY = "Sources/PeachExpoApp/PeachExpoEntry.swift";
|
|
23246
23263
|
compiling = /* @__PURE__ */ new Map();
|
|
@@ -36235,21 +36252,6 @@ var init_playwright_host_log = __esm({
|
|
|
36235
36252
|
}
|
|
36236
36253
|
});
|
|
36237
36254
|
|
|
36238
|
-
// cli/internal-child.ts
|
|
36239
|
-
var RNX_INTERNAL_COMMAND, RNX_INTERNAL_CHILDREN;
|
|
36240
|
-
var init_internal_child = __esm({
|
|
36241
|
-
"cli/internal-child.ts"() {
|
|
36242
|
-
"use strict";
|
|
36243
|
-
RNX_INTERNAL_COMMAND = "__internal";
|
|
36244
|
-
RNX_INTERNAL_CHILDREN = {
|
|
36245
|
-
playwrightProbe: "playwright-probe",
|
|
36246
|
-
playwrightInstall: "playwright-install",
|
|
36247
|
-
playwrightHost: "playwright-host",
|
|
36248
|
-
syncHttp: "sync-http"
|
|
36249
|
-
};
|
|
36250
|
-
}
|
|
36251
|
-
});
|
|
36252
|
-
|
|
36253
36255
|
// cli/drivers/playwright-core-pin.ts
|
|
36254
36256
|
var PINNED_PLAYWRIGHT_CORE;
|
|
36255
36257
|
var init_playwright_core_pin = __esm({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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/swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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/vite-swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.669 | (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.
|
|
1
|
+
/*! rnx v0.1.669 | (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;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
package dev.contrast.kotlinapp
|
|
2
|
+
|
|
3
|
+
import androidx.compose.foundation.background
|
|
4
|
+
import androidx.compose.foundation.layout.Arrangement
|
|
5
|
+
import androidx.compose.foundation.layout.Column
|
|
6
|
+
import androidx.compose.foundation.layout.Row
|
|
7
|
+
import androidx.compose.foundation.layout.fillMaxSize
|
|
8
|
+
import androidx.compose.foundation.layout.padding
|
|
9
|
+
import androidx.compose.foundation.layout.safeDrawingPadding
|
|
10
|
+
import androidx.compose.material3.AssistChip
|
|
11
|
+
import androidx.compose.material3.Badge
|
|
12
|
+
import androidx.compose.material3.BadgedBox
|
|
13
|
+
import androidx.compose.material3.DatePicker
|
|
14
|
+
import androidx.compose.material3.ExperimentalMaterial3Api
|
|
15
|
+
import androidx.compose.material3.ExtendedFloatingActionButton
|
|
16
|
+
import androidx.compose.material3.SegmentedButton
|
|
17
|
+
import androidx.compose.material3.SegmentedButtonDefaults
|
|
18
|
+
import androidx.compose.material3.SingleChoiceSegmentedButtonRow
|
|
19
|
+
import androidx.compose.material3.SuggestionChip
|
|
20
|
+
import androidx.compose.material3.Text
|
|
21
|
+
import androidx.compose.material3.rememberDatePickerState
|
|
22
|
+
import androidx.compose.runtime.Composable
|
|
23
|
+
import androidx.compose.runtime.getValue
|
|
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.unit.dp
|
|
30
|
+
|
|
31
|
+
// segmented buttons a tap selects, chips, a badge, an extended FAB and a date
|
|
32
|
+
// picker showing a fixed past month, so no today marker depends on the clock
|
|
33
|
+
@OptIn(ExperimentalMaterial3Api::class)
|
|
34
|
+
@Composable
|
|
35
|
+
fun Controls() {
|
|
36
|
+
val options = listOf("Day", "Week", "Month")
|
|
37
|
+
var picked by remember { mutableStateOf(0) }
|
|
38
|
+
// march 2020, utc
|
|
39
|
+
val dates = rememberDatePickerState(initialSelectedDateMillis = 1584230400000L, initialDisplayedMonthMillis = 1583020800000L)
|
|
40
|
+
Column(
|
|
41
|
+
Modifier.fillMaxSize().background(Color(0xFFE8EEF8)).safeDrawingPadding().padding(16.dp),
|
|
42
|
+
verticalArrangement = Arrangement.spacedBy(12.dp),
|
|
43
|
+
) {
|
|
44
|
+
Text("Range: ${options[picked]}")
|
|
45
|
+
SingleChoiceSegmentedButtonRow {
|
|
46
|
+
options.forEachIndexed { index, label ->
|
|
47
|
+
SegmentedButton(
|
|
48
|
+
selected = picked == index,
|
|
49
|
+
onClick = { picked = index },
|
|
50
|
+
shape = SegmentedButtonDefaults.itemShape(index, options.size),
|
|
51
|
+
) { Text(label) }
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
|
55
|
+
AssistChip(onClick = {}, label = { Text("Assist") })
|
|
56
|
+
SuggestionChip(onClick = {}, label = { Text("Suggest") })
|
|
57
|
+
BadgedBox(badge = { Badge { Text("8") } }, Modifier.padding(top = 12.dp, start = 8.dp)) { Text("Inbox") }
|
|
58
|
+
}
|
|
59
|
+
ExtendedFloatingActionButton(onClick = {}) { Text("Compose") }
|
|
60
|
+
DatePicker(dates, showModeToggle = false)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
package dev.contrast.kotlinapp
|
|
2
|
+
|
|
3
|
+
import androidx.compose.foundation.background
|
|
4
|
+
import androidx.compose.foundation.gestures.detectDragGestures
|
|
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.fillMaxSize
|
|
9
|
+
import androidx.compose.foundation.layout.fillMaxWidth
|
|
10
|
+
import androidx.compose.foundation.layout.height
|
|
11
|
+
import androidx.compose.foundation.layout.offset
|
|
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.shape.CircleShape
|
|
16
|
+
import androidx.compose.material3.Slider
|
|
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.mutableStateOf
|
|
22
|
+
import androidx.compose.runtime.remember
|
|
23
|
+
import androidx.compose.runtime.setValue
|
|
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.pointer.pointerInput
|
|
28
|
+
import androidx.compose.ui.platform.LocalDensity
|
|
29
|
+
import androidx.compose.ui.platform.testTag
|
|
30
|
+
import androidx.compose.ui.unit.IntOffset
|
|
31
|
+
import androidx.compose.ui.unit.dp
|
|
32
|
+
import kotlin.math.roundToInt
|
|
33
|
+
|
|
34
|
+
// a puck detectDragGestures moves, reporting the drag it received after the
|
|
35
|
+
// touch slop in dp, and a slider a drag sets
|
|
36
|
+
@Composable
|
|
37
|
+
fun Drag() {
|
|
38
|
+
var puck by remember { mutableStateOf(Offset.Zero) }
|
|
39
|
+
var drags by remember { mutableStateOf(0) }
|
|
40
|
+
var slider by remember { mutableFloatStateOf(0f) }
|
|
41
|
+
val density = LocalDensity.current.density
|
|
42
|
+
Column(
|
|
43
|
+
Modifier.fillMaxSize().background(Color(0xFFE8EEF8)).safeDrawingPadding().padding(16.dp),
|
|
44
|
+
verticalArrangement = Arrangement.spacedBy(12.dp),
|
|
45
|
+
) {
|
|
46
|
+
Text("Drag: ${(puck.x / density).roundToInt()},${(puck.y / density).roundToInt()} ends $drags slider ${(slider * 100).roundToInt()}")
|
|
47
|
+
Box(
|
|
48
|
+
Modifier.fillMaxWidth().height(300.dp).background(Color(0xFFCFD8DC)).testTag("pad").pointerInput(Unit) {
|
|
49
|
+
detectDragGestures(onDragEnd = { drags += 1 }) { change, amount -> change.consume(); puck += amount }
|
|
50
|
+
},
|
|
51
|
+
) {
|
|
52
|
+
Box(Modifier.offset { IntOffset(puck.x.roundToInt(), puck.y.roundToInt()) }.size(48.dp).background(Color(0xFF3F51B5), CircleShape))
|
|
53
|
+
}
|
|
54
|
+
Slider(slider, { slider = it }, Modifier.testTag("slider"))
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
package dev.contrast.kotlinapp
|
|
2
|
+
|
|
3
|
+
import androidx.compose.foundation.Canvas
|
|
4
|
+
import androidx.compose.foundation.background
|
|
5
|
+
import androidx.compose.foundation.gestures.detectTapGestures
|
|
6
|
+
import androidx.compose.foundation.layout.Arrangement
|
|
7
|
+
import androidx.compose.foundation.layout.Box
|
|
8
|
+
import androidx.compose.foundation.layout.Column
|
|
9
|
+
import androidx.compose.foundation.layout.Row
|
|
10
|
+
import androidx.compose.foundation.layout.fillMaxSize
|
|
11
|
+
import androidx.compose.foundation.layout.fillMaxWidth
|
|
12
|
+
import androidx.compose.foundation.layout.height
|
|
13
|
+
import androidx.compose.foundation.layout.padding
|
|
14
|
+
import androidx.compose.foundation.layout.safeDrawingPadding
|
|
15
|
+
import androidx.compose.foundation.layout.size
|
|
16
|
+
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
17
|
+
import androidx.compose.material3.Text
|
|
18
|
+
import androidx.compose.runtime.Composable
|
|
19
|
+
import androidx.compose.runtime.getValue
|
|
20
|
+
import androidx.compose.runtime.mutableStateOf
|
|
21
|
+
import androidx.compose.runtime.remember
|
|
22
|
+
import androidx.compose.runtime.setValue
|
|
23
|
+
import androidx.compose.ui.Modifier
|
|
24
|
+
import androidx.compose.ui.draw.clip
|
|
25
|
+
import androidx.compose.ui.draw.rotate
|
|
26
|
+
import androidx.compose.ui.geometry.CornerRadius
|
|
27
|
+
import androidx.compose.ui.geometry.Offset
|
|
28
|
+
import androidx.compose.ui.geometry.Size
|
|
29
|
+
import androidx.compose.ui.graphics.Brush
|
|
30
|
+
import androidx.compose.ui.graphics.Color
|
|
31
|
+
import androidx.compose.ui.graphics.Path
|
|
32
|
+
import androidx.compose.ui.graphics.StrokeCap
|
|
33
|
+
import androidx.compose.ui.graphics.drawscope.Stroke
|
|
34
|
+
import androidx.compose.ui.graphics.graphicsLayer
|
|
35
|
+
import androidx.compose.ui.input.pointer.pointerInput
|
|
36
|
+
import androidx.compose.ui.unit.dp
|
|
37
|
+
import kotlin.math.roundToInt
|
|
38
|
+
|
|
39
|
+
// a canvas of paths, arcs, gradients and strokes, transformed layers, and a
|
|
40
|
+
// pointer input pad that reports where a tap lands in its own dp
|
|
41
|
+
@Composable
|
|
42
|
+
fun Draw() {
|
|
43
|
+
var tap by remember { mutableStateOf("none") }
|
|
44
|
+
Column(
|
|
45
|
+
Modifier.fillMaxSize().background(Color(0xFFE8EEF8)).safeDrawingPadding().padding(16.dp),
|
|
46
|
+
verticalArrangement = Arrangement.spacedBy(12.dp),
|
|
47
|
+
) {
|
|
48
|
+
Text("Tap: $tap")
|
|
49
|
+
Canvas(Modifier.fillMaxWidth().height(200.dp)) {
|
|
50
|
+
drawRect(Brush.linearGradient(listOf(Color(0xFF3F51B5), Color(0xFFE91E63)), Offset.Zero, Offset(size.width, size.height)))
|
|
51
|
+
drawCircle(Brush.radialGradient(listOf(Color.White, Color(0x00FFFFFF)), Offset(size.width * 0.25f, size.height * 0.5f), 120f), 120f, Offset(size.width * 0.25f, size.height * 0.5f))
|
|
52
|
+
drawArc(Color(0xFFFFC107), -90f, 250f, false, Offset(size.width * 0.55f, 40f), Size(240f, 240f), style = Stroke(24f, cap = StrokeCap.Round))
|
|
53
|
+
val path = Path().apply {
|
|
54
|
+
moveTo(size.width * 0.8f, 40f)
|
|
55
|
+
cubicTo(size.width, 80f, size.width * 0.7f, size.height - 80f, size.width * 0.95f, size.height - 30f)
|
|
56
|
+
lineTo(size.width * 0.75f, size.height - 30f)
|
|
57
|
+
close()
|
|
58
|
+
}
|
|
59
|
+
drawPath(path, Color(0xCC009688))
|
|
60
|
+
drawRoundRect(Color.White, Offset(30f, size.height - 90f), Size(200f, 60f), CornerRadius(30f), style = Stroke(6f))
|
|
61
|
+
drawLine(Color.Black, Offset(0f, size.height), Offset(size.width, 0f), 3f)
|
|
62
|
+
}
|
|
63
|
+
Row(horizontalArrangement = Arrangement.spacedBy(24.dp)) {
|
|
64
|
+
Box(Modifier.padding(12.dp).size(72.dp).rotate(30f).background(Color(0xFF673AB7)))
|
|
65
|
+
Box(Modifier.size(96.dp).graphicsLayer { alpha = 0.5f; scaleX = 0.8f; scaleY = 1.2f }.background(Color(0xFFFF5722)))
|
|
66
|
+
Box(Modifier.size(96.dp).graphicsLayer { rotationX = 40f; cameraDistance = 8 * density }.clip(RoundedCornerShape(16.dp)).background(Color(0xFF4CAF50)))
|
|
67
|
+
}
|
|
68
|
+
Box(
|
|
69
|
+
Modifier.fillMaxWidth().height(160.dp).background(Color(0xFFCFD8DC)).pointerInput(Unit) {
|
|
70
|
+
detectTapGestures { tap = "${(it.x / density).roundToInt()},${(it.y / density).roundToInt()}" }
|
|
71
|
+
},
|
|
72
|
+
) { Text("Pad", Modifier.padding(8.dp)) }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
package dev.contrast.kotlinapp
|
|
2
|
+
|
|
3
|
+
import androidx.compose.foundation.background
|
|
4
|
+
import androidx.compose.foundation.layout.Arrangement
|
|
5
|
+
import androidx.compose.foundation.layout.Column
|
|
6
|
+
import androidx.compose.foundation.layout.fillMaxSize
|
|
7
|
+
import androidx.compose.foundation.layout.padding
|
|
8
|
+
import androidx.compose.foundation.layout.safeDrawingPadding
|
|
9
|
+
import androidx.compose.material3.MaterialTheme
|
|
10
|
+
import androidx.compose.material3.Text
|
|
11
|
+
import androidx.compose.runtime.Composable
|
|
12
|
+
import androidx.compose.runtime.mutableStateMapOf
|
|
13
|
+
import androidx.compose.runtime.remember
|
|
14
|
+
import androidx.compose.ui.Modifier
|
|
15
|
+
import androidx.compose.ui.graphics.Color
|
|
16
|
+
import androidx.compose.ui.text.TextStyle
|
|
17
|
+
import androidx.compose.ui.text.font.FontWeight
|
|
18
|
+
import androidx.compose.ui.unit.dp
|
|
19
|
+
import androidx.compose.ui.unit.sp
|
|
20
|
+
import kotlin.math.roundToInt
|
|
21
|
+
|
|
22
|
+
// laid out widths in px of the same words at the label and body styles
|
|
23
|
+
@Composable
|
|
24
|
+
fun TextWidth() {
|
|
25
|
+
val widths = remember { mutableStateMapOf<String, Float>() }
|
|
26
|
+
val samples = listOf(
|
|
27
|
+
"label Month" to MaterialTheme.typography.labelLarge,
|
|
28
|
+
"label Compose" to MaterialTheme.typography.labelLarge,
|
|
29
|
+
"body Range: Day" to MaterialTheme.typography.bodyLarge,
|
|
30
|
+
"body Suggest" to MaterialTheme.typography.bodyLarge,
|
|
31
|
+
"plain500 Month" to TextStyle(fontSize = 14.sp, fontWeight = FontWeight.Medium),
|
|
32
|
+
"plain400 Month" to TextStyle(fontSize = 14.sp),
|
|
33
|
+
)
|
|
34
|
+
val label = MaterialTheme.typography.labelLarge
|
|
35
|
+
Column(
|
|
36
|
+
Modifier.fillMaxSize().background(Color(0xFFE8EEF8)).safeDrawingPadding().padding(16.dp),
|
|
37
|
+
verticalArrangement = Arrangement.spacedBy(12.dp),
|
|
38
|
+
) {
|
|
39
|
+
Text("Label: ${label.fontSize} ${label.letterSpacing} ${label.fontWeight?.weight} ${label.fontFamily}")
|
|
40
|
+
Text("Widths: " + samples.joinToString(" ") { (key) -> "${((widths[key] ?: 0f) * 100).roundToInt() / 100.0}" })
|
|
41
|
+
samples.forEach { (key, style: TextStyle) ->
|
|
42
|
+
Text(key.substringAfter(' '), style = style, onTextLayout = { widths[key] = it.getLineRight(0) })
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
package/package.json
CHANGED
package/src/expo-swift-host.ts
CHANGED
|
@@ -7,12 +7,16 @@ import { createRequire } from 'node:module'
|
|
|
7
7
|
import os from 'node:os'
|
|
8
8
|
import path from 'node:path'
|
|
9
9
|
import { promisify } from 'node:util'
|
|
10
|
+
import { RNX_FORKED_SCRIPT_ENV } from '../cli/internal-child'
|
|
10
11
|
import { isLoopbackHost } from './backend-origin'
|
|
11
12
|
import { artifactFor, icuUrl, projectFor, serveSwiftPackageAsset } from './swift-host'
|
|
12
13
|
import { MAX_SWIFT_COMPILE_FILES, MAX_SWIFT_COMPILE_SOURCE_BYTES } from './swift-submit'
|
|
13
14
|
import type { IncomingMessage, ServerResponse } from 'node:http'
|
|
14
15
|
|
|
15
16
|
const run = promisify(execFile)
|
|
17
|
+
// the compiled CLI's execPath is peach itself, which runs a forked `.js` as a
|
|
18
|
+
// script only with this set; node and bun ignore it.
|
|
19
|
+
const scriptEnv = { ...process.env, [RNX_FORKED_SCRIPT_ENV]: '1' }
|
|
16
20
|
export const EXPO_SWIFT_ROUTE = '/__peach/expo-swift'
|
|
17
21
|
export const EXPO_SWIFT_ENTRY = 'Sources/PeachExpoApp/PeachExpoEntry.swift'
|
|
18
22
|
|
|
@@ -44,7 +48,7 @@ export async function collectExpoSwiftSources(
|
|
|
44
48
|
appRoot,
|
|
45
49
|
'--json',
|
|
46
50
|
],
|
|
47
|
-
{ timeout: 30_000, maxBuffer: 8 * 1024 * 1024 },
|
|
51
|
+
{ timeout: 30_000, maxBuffer: 8 * 1024 * 1024, env: scriptEnv },
|
|
48
52
|
)
|
|
49
53
|
const search: unknown = JSON.parse(stdout)
|
|
50
54
|
if (!search || typeof search !== 'object' || Array.isArray(search))
|
|
@@ -60,7 +64,7 @@ export async function collectExpoSwiftSources(
|
|
|
60
64
|
appRoot,
|
|
61
65
|
'--json',
|
|
62
66
|
],
|
|
63
|
-
{ timeout: 30_000, maxBuffer: 8 * 1024 * 1024 },
|
|
67
|
+
{ timeout: 30_000, maxBuffer: 8 * 1024 * 1024, env: scriptEnv },
|
|
64
68
|
)
|
|
65
69
|
const resolved: unknown = JSON.parse(resolvedText)
|
|
66
70
|
const resolutions =
|