simvyn 2.6.3 → 2.6.4
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/README.md +3 -2
- package/dist/dashboard/assets/{index-QWG80lyd.js → index-C84olC1W.js} +209 -103
- package/dist/dashboard/assets/index-C84olC1W.js.map +1 -0
- package/dist/dashboard/assets/{index-CdpK-4e0.css → index-DkqAjveq.css} +8 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +118 -2
- package/package.json +1 -1
- package/dist/dashboard/assets/index-QWG80lyd.js.map +0 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ npx simvyn
|
|
|
54
54
|
- **App Management** — Install, launch, terminate, uninstall apps via drag-and-drop or CLI
|
|
55
55
|
- **Log Viewer** — Real-time streaming with level filtering, find-in-page search (Cmd+F), regex search, pagination, and export
|
|
56
56
|
- **Location Simulation** — Set GPS coordinates, play GPX/KML routes with speed control, save favorites
|
|
57
|
-
- **Device Settings** — Dark mode, locale, permissions, status bar overrides, accessibility presets
|
|
57
|
+
- **Device Settings** — Dark mode, locale, orientation, permissions, status bar overrides, accessibility presets
|
|
58
58
|
- **Screenshots and Recording** — Capture screenshots and record screen video with history
|
|
59
59
|
- **Deep Links** — Open URLs and custom schemes, save favorites per app
|
|
60
60
|
- **Database Inspector** — Browse SQLite tables, run SQL queries, view SharedPreferences and NSUserDefaults
|
|
@@ -124,7 +124,7 @@ Set precise GPS coordinates on any device using an interactive map or manual inp
|
|
|
124
124
|
|
|
125
125
|
### Device Settings
|
|
126
126
|
|
|
127
|
-
Toggle dark mode, change locale, manage app permissions, and override status bar appearance. Apply accessibility presets to test your app under different conditions. All settings changes take effect immediately on the target device.
|
|
127
|
+
Toggle dark mode, change locale, rotate device orientation (Android), manage app permissions, and override status bar appearance. Apply accessibility presets to test your app under different conditions. All settings changes take effect immediately on the target device.
|
|
128
128
|
|
|
129
129
|
<p align="center"><img src="https://raw.githubusercontent.com/pranshuchittora/simvyn/main/docs/assets/device-settings.png" alt="Device Settings" width="700" /></p>
|
|
130
130
|
|
|
@@ -322,6 +322,7 @@ Every feature is accessible from the command line. Run `simvyn` with no argument
|
|
|
322
322
|
| `simvyn collections delete <id>` | Delete a collection |
|
|
323
323
|
| `simvyn collections duplicate <id>` | Duplicate a collection |
|
|
324
324
|
| `simvyn collections apply <name> <devices...>` | Apply a collection to devices |
|
|
325
|
+
| `simvyn settings orientation <device> <orient>` | Set device orientation (Android) |
|
|
325
326
|
|
|
326
327
|
## How It Works
|
|
327
328
|
|
|
@@ -18544,27 +18544,27 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
18544
18544
|
Component.displayName = toPascalCase(iconName);
|
|
18545
18545
|
return Component;
|
|
18546
18546
|
};
|
|
18547
|
-
const __iconNode$
|
|
18547
|
+
const __iconNode$Y = [
|
|
18548
18548
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
18549
18549
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
18550
18550
|
];
|
|
18551
|
-
const ArrowDown = createLucideIcon("arrow-down", __iconNode$
|
|
18552
|
-
const __iconNode$
|
|
18551
|
+
const ArrowDown = createLucideIcon("arrow-down", __iconNode$Y);
|
|
18552
|
+
const __iconNode$X = [
|
|
18553
18553
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
18554
18554
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
18555
18555
|
];
|
|
18556
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
18557
|
-
const __iconNode$
|
|
18556
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$X);
|
|
18557
|
+
const __iconNode$W = [
|
|
18558
18558
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
18559
18559
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
18560
18560
|
];
|
|
18561
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
18562
|
-
const __iconNode$
|
|
18561
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$W);
|
|
18562
|
+
const __iconNode$V = [
|
|
18563
18563
|
["path", { d: "M 22 14 L 22 10", key: "nqc4tb" }],
|
|
18564
18564
|
["rect", { x: "2", y: "6", width: "16", height: "12", rx: "2", key: "13zb55" }]
|
|
18565
18565
|
];
|
|
18566
|
-
const Battery = createLucideIcon("battery", __iconNode$
|
|
18567
|
-
const __iconNode$
|
|
18566
|
+
const Battery = createLucideIcon("battery", __iconNode$V);
|
|
18567
|
+
const __iconNode$U = [
|
|
18568
18568
|
["path", { d: "M12 20v-9", key: "1qisl0" }],
|
|
18569
18569
|
["path", { d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z", key: "uouzyp" }],
|
|
18570
18570
|
["path", { d: "M14.12 3.88 16 2", key: "qol33r" }],
|
|
@@ -18577,8 +18577,8 @@ const __iconNode$S = [
|
|
|
18577
18577
|
["path", { d: "m8 2 1.88 1.88", key: "fmnt4t" }],
|
|
18578
18578
|
["path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13", key: "1vgav8" }]
|
|
18579
18579
|
];
|
|
18580
|
-
const Bug = createLucideIcon("bug", __iconNode$
|
|
18581
|
-
const __iconNode$
|
|
18580
|
+
const Bug = createLucideIcon("bug", __iconNode$U);
|
|
18581
|
+
const __iconNode$T = [
|
|
18582
18582
|
[
|
|
18583
18583
|
"path",
|
|
18584
18584
|
{
|
|
@@ -18588,53 +18588,53 @@ const __iconNode$R = [
|
|
|
18588
18588
|
],
|
|
18589
18589
|
["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
|
|
18590
18590
|
];
|
|
18591
|
-
const Camera = createLucideIcon("camera", __iconNode$
|
|
18592
|
-
const __iconNode$
|
|
18593
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
18594
|
-
const __iconNode$
|
|
18595
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
18596
|
-
const __iconNode$
|
|
18597
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
18598
|
-
const __iconNode$
|
|
18599
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
18600
|
-
const __iconNode$
|
|
18601
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
18602
|
-
const __iconNode$
|
|
18591
|
+
const Camera = createLucideIcon("camera", __iconNode$T);
|
|
18592
|
+
const __iconNode$S = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
18593
|
+
const Check = createLucideIcon("check", __iconNode$S);
|
|
18594
|
+
const __iconNode$R = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
18595
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$R);
|
|
18596
|
+
const __iconNode$Q = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
18597
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$Q);
|
|
18598
|
+
const __iconNode$P = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
18599
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$P);
|
|
18600
|
+
const __iconNode$O = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
18601
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$O);
|
|
18602
|
+
const __iconNode$N = [
|
|
18603
18603
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
18604
18604
|
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
|
|
18605
18605
|
];
|
|
18606
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
18607
|
-
const __iconNode$
|
|
18606
|
+
const Clock = createLucideIcon("clock", __iconNode$N);
|
|
18607
|
+
const __iconNode$M = [
|
|
18608
18608
|
["line", { x1: "15", x2: "15", y1: "12", y2: "18", key: "1p7wdc" }],
|
|
18609
18609
|
["line", { x1: "12", x2: "18", y1: "15", y2: "15", key: "1nscbv" }],
|
|
18610
18610
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
18611
18611
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
18612
18612
|
];
|
|
18613
|
-
const CopyPlus = createLucideIcon("copy-plus", __iconNode$
|
|
18614
|
-
const __iconNode$
|
|
18613
|
+
const CopyPlus = createLucideIcon("copy-plus", __iconNode$M);
|
|
18614
|
+
const __iconNode$L = [
|
|
18615
18615
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
18616
18616
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
18617
18617
|
];
|
|
18618
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
18619
|
-
const __iconNode$
|
|
18618
|
+
const Copy = createLucideIcon("copy", __iconNode$L);
|
|
18619
|
+
const __iconNode$K = [
|
|
18620
18620
|
["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
|
|
18621
18621
|
["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
|
|
18622
18622
|
["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
|
|
18623
18623
|
];
|
|
18624
|
-
const Database = createLucideIcon("database", __iconNode$
|
|
18625
|
-
const __iconNode$
|
|
18624
|
+
const Database = createLucideIcon("database", __iconNode$K);
|
|
18625
|
+
const __iconNode$J = [
|
|
18626
18626
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
18627
18627
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
18628
18628
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
18629
18629
|
];
|
|
18630
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
18631
|
-
const __iconNode$
|
|
18630
|
+
const Download = createLucideIcon("download", __iconNode$J);
|
|
18631
|
+
const __iconNode$I = [
|
|
18632
18632
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
18633
18633
|
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
18634
18634
|
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
18635
18635
|
];
|
|
18636
|
-
const Ellipsis = createLucideIcon("ellipsis", __iconNode$
|
|
18637
|
-
const __iconNode$
|
|
18636
|
+
const Ellipsis = createLucideIcon("ellipsis", __iconNode$I);
|
|
18637
|
+
const __iconNode$H = [
|
|
18638
18638
|
[
|
|
18639
18639
|
"path",
|
|
18640
18640
|
{
|
|
@@ -18644,14 +18644,14 @@ const __iconNode$F = [
|
|
|
18644
18644
|
],
|
|
18645
18645
|
["path", { d: "m5.082 11.09 8.828 8.828", key: "1wx5vj" }]
|
|
18646
18646
|
];
|
|
18647
|
-
const Eraser = createLucideIcon("eraser", __iconNode$
|
|
18648
|
-
const __iconNode$
|
|
18647
|
+
const Eraser = createLucideIcon("eraser", __iconNode$H);
|
|
18648
|
+
const __iconNode$G = [
|
|
18649
18649
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
18650
18650
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
18651
18651
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
18652
18652
|
];
|
|
18653
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
18654
|
-
const __iconNode$
|
|
18653
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$G);
|
|
18654
|
+
const __iconNode$F = [
|
|
18655
18655
|
[
|
|
18656
18656
|
"path",
|
|
18657
18657
|
{
|
|
@@ -18663,8 +18663,8 @@ const __iconNode$D = [
|
|
|
18663
18663
|
["path", { d: "M12 18v-6", key: "17g6i2" }],
|
|
18664
18664
|
["path", { d: "m9 15 3 3 3-3", key: "1npd3o" }]
|
|
18665
18665
|
];
|
|
18666
|
-
const FileDown = createLucideIcon("file-down", __iconNode$
|
|
18667
|
-
const __iconNode$
|
|
18666
|
+
const FileDown = createLucideIcon("file-down", __iconNode$F);
|
|
18667
|
+
const __iconNode$E = [
|
|
18668
18668
|
[
|
|
18669
18669
|
"path",
|
|
18670
18670
|
{
|
|
@@ -18677,8 +18677,8 @@ const __iconNode$C = [
|
|
|
18677
18677
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
18678
18678
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
18679
18679
|
];
|
|
18680
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
18681
|
-
const __iconNode$
|
|
18680
|
+
const FileText = createLucideIcon("file-text", __iconNode$E);
|
|
18681
|
+
const __iconNode$D = [
|
|
18682
18682
|
[
|
|
18683
18683
|
"path",
|
|
18684
18684
|
{
|
|
@@ -18688,8 +18688,8 @@ const __iconNode$B = [
|
|
|
18688
18688
|
],
|
|
18689
18689
|
["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
|
|
18690
18690
|
];
|
|
18691
|
-
const File = createLucideIcon("file", __iconNode$
|
|
18692
|
-
const __iconNode$
|
|
18691
|
+
const File = createLucideIcon("file", __iconNode$D);
|
|
18692
|
+
const __iconNode$C = [
|
|
18693
18693
|
[
|
|
18694
18694
|
"path",
|
|
18695
18695
|
{
|
|
@@ -18698,8 +18698,8 @@ const __iconNode$A = [
|
|
|
18698
18698
|
}
|
|
18699
18699
|
]
|
|
18700
18700
|
];
|
|
18701
|
-
const Folder = createLucideIcon("folder", __iconNode$
|
|
18702
|
-
const __iconNode$
|
|
18701
|
+
const Folder = createLucideIcon("folder", __iconNode$C);
|
|
18702
|
+
const __iconNode$B = [
|
|
18703
18703
|
[
|
|
18704
18704
|
"path",
|
|
18705
18705
|
{
|
|
@@ -18709,14 +18709,14 @@ const __iconNode$z = [
|
|
|
18709
18709
|
],
|
|
18710
18710
|
["path", { d: "M9 18c-4.51 2-5-2-7-2", key: "9comsn" }]
|
|
18711
18711
|
];
|
|
18712
|
-
const Github = createLucideIcon("github", __iconNode$
|
|
18713
|
-
const __iconNode$
|
|
18712
|
+
const Github = createLucideIcon("github", __iconNode$B);
|
|
18713
|
+
const __iconNode$A = [
|
|
18714
18714
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
18715
18715
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
18716
18716
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
18717
18717
|
];
|
|
18718
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
18719
|
-
const __iconNode$
|
|
18718
|
+
const Globe = createLucideIcon("globe", __iconNode$A);
|
|
18719
|
+
const __iconNode$z = [
|
|
18720
18720
|
["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
|
|
18721
18721
|
["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
|
|
18722
18722
|
["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
|
|
@@ -18724,8 +18724,8 @@ const __iconNode$x = [
|
|
|
18724
18724
|
["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
|
|
18725
18725
|
["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
|
|
18726
18726
|
];
|
|
18727
|
-
const GripVertical = createLucideIcon("grip-vertical", __iconNode$
|
|
18728
|
-
const __iconNode$
|
|
18727
|
+
const GripVertical = createLucideIcon("grip-vertical", __iconNode$z);
|
|
18728
|
+
const __iconNode$y = [
|
|
18729
18729
|
[
|
|
18730
18730
|
"path",
|
|
18731
18731
|
{
|
|
@@ -18734,8 +18734,8 @@ const __iconNode$w = [
|
|
|
18734
18734
|
}
|
|
18735
18735
|
]
|
|
18736
18736
|
];
|
|
18737
|
-
const Heart = createLucideIcon("heart", __iconNode$
|
|
18738
|
-
const __iconNode$
|
|
18737
|
+
const Heart = createLucideIcon("heart", __iconNode$y);
|
|
18738
|
+
const __iconNode$x = [
|
|
18739
18739
|
["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
|
|
18740
18740
|
[
|
|
18741
18741
|
"path",
|
|
@@ -18745,8 +18745,8 @@ const __iconNode$v = [
|
|
|
18745
18745
|
}
|
|
18746
18746
|
]
|
|
18747
18747
|
];
|
|
18748
|
-
const House = createLucideIcon("house", __iconNode$
|
|
18749
|
-
const __iconNode$
|
|
18748
|
+
const House = createLucideIcon("house", __iconNode$x);
|
|
18749
|
+
const __iconNode$w = [
|
|
18750
18750
|
[
|
|
18751
18751
|
"path",
|
|
18752
18752
|
{
|
|
@@ -18769,15 +18769,15 @@ const __iconNode$u = [
|
|
|
18769
18769
|
}
|
|
18770
18770
|
]
|
|
18771
18771
|
];
|
|
18772
|
-
const Layers = createLucideIcon("layers", __iconNode$
|
|
18773
|
-
const __iconNode$
|
|
18772
|
+
const Layers = createLucideIcon("layers", __iconNode$w);
|
|
18773
|
+
const __iconNode$v = [
|
|
18774
18774
|
["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
|
|
18775
18775
|
["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
|
|
18776
18776
|
];
|
|
18777
|
-
const Link = createLucideIcon("link", __iconNode$
|
|
18778
|
-
const __iconNode$
|
|
18779
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
18780
|
-
const __iconNode$
|
|
18777
|
+
const Link = createLucideIcon("link", __iconNode$v);
|
|
18778
|
+
const __iconNode$u = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
18779
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$u);
|
|
18780
|
+
const __iconNode$t = [
|
|
18781
18781
|
[
|
|
18782
18782
|
"path",
|
|
18783
18783
|
{
|
|
@@ -18787,14 +18787,14 @@ const __iconNode$r = [
|
|
|
18787
18787
|
],
|
|
18788
18788
|
["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
|
|
18789
18789
|
];
|
|
18790
|
-
const MapPin = createLucideIcon("map-pin", __iconNode$
|
|
18791
|
-
const __iconNode$
|
|
18790
|
+
const MapPin = createLucideIcon("map-pin", __iconNode$t);
|
|
18791
|
+
const __iconNode$s = [
|
|
18792
18792
|
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
18793
18793
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
18794
18794
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
18795
18795
|
];
|
|
18796
|
-
const Monitor = createLucideIcon("monitor", __iconNode$
|
|
18797
|
-
const __iconNode$
|
|
18796
|
+
const Monitor = createLucideIcon("monitor", __iconNode$s);
|
|
18797
|
+
const __iconNode$r = [
|
|
18798
18798
|
[
|
|
18799
18799
|
"path",
|
|
18800
18800
|
{
|
|
@@ -18803,8 +18803,8 @@ const __iconNode$p = [
|
|
|
18803
18803
|
}
|
|
18804
18804
|
]
|
|
18805
18805
|
];
|
|
18806
|
-
const Moon = createLucideIcon("moon", __iconNode$
|
|
18807
|
-
const __iconNode$
|
|
18806
|
+
const Moon = createLucideIcon("moon", __iconNode$r);
|
|
18807
|
+
const __iconNode$q = [
|
|
18808
18808
|
["path", { d: "M12.586 12.586 19 19", key: "ea5xo7" }],
|
|
18809
18809
|
[
|
|
18810
18810
|
"path",
|
|
@@ -18814,21 +18814,21 @@ const __iconNode$o = [
|
|
|
18814
18814
|
}
|
|
18815
18815
|
]
|
|
18816
18816
|
];
|
|
18817
|
-
const MousePointer = createLucideIcon("mouse-pointer", __iconNode$
|
|
18818
|
-
const __iconNode$
|
|
18817
|
+
const MousePointer = createLucideIcon("mouse-pointer", __iconNode$q);
|
|
18818
|
+
const __iconNode$p = [
|
|
18819
18819
|
["rect", { x: "16", y: "16", width: "6", height: "6", rx: "1", key: "4q2zg0" }],
|
|
18820
18820
|
["rect", { x: "2", y: "16", width: "6", height: "6", rx: "1", key: "8cvhb9" }],
|
|
18821
18821
|
["rect", { x: "9", y: "2", width: "6", height: "6", rx: "1", key: "1egb70" }],
|
|
18822
18822
|
["path", { d: "M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3", key: "1jsf9p" }],
|
|
18823
18823
|
["path", { d: "M12 12V8", key: "2874zd" }]
|
|
18824
18824
|
];
|
|
18825
|
-
const Network = createLucideIcon("network", __iconNode$
|
|
18826
|
-
const __iconNode$
|
|
18825
|
+
const Network = createLucideIcon("network", __iconNode$p);
|
|
18826
|
+
const __iconNode$o = [
|
|
18827
18827
|
["rect", { x: "14", y: "3", width: "5", height: "18", rx: "1", key: "kaeet6" }],
|
|
18828
18828
|
["rect", { x: "5", y: "3", width: "5", height: "18", rx: "1", key: "1wsw3u" }]
|
|
18829
18829
|
];
|
|
18830
|
-
const Pause = createLucideIcon("pause", __iconNode$
|
|
18831
|
-
const __iconNode$
|
|
18830
|
+
const Pause = createLucideIcon("pause", __iconNode$o);
|
|
18831
|
+
const __iconNode$n = [
|
|
18832
18832
|
[
|
|
18833
18833
|
"path",
|
|
18834
18834
|
{
|
|
@@ -18838,8 +18838,8 @@ const __iconNode$l = [
|
|
|
18838
18838
|
],
|
|
18839
18839
|
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
18840
18840
|
];
|
|
18841
|
-
const Pencil = createLucideIcon("pencil", __iconNode$
|
|
18842
|
-
const __iconNode$
|
|
18841
|
+
const Pencil = createLucideIcon("pencil", __iconNode$n);
|
|
18842
|
+
const __iconNode$m = [
|
|
18843
18843
|
[
|
|
18844
18844
|
"path",
|
|
18845
18845
|
{
|
|
@@ -18848,37 +18848,42 @@ const __iconNode$k = [
|
|
|
18848
18848
|
}
|
|
18849
18849
|
]
|
|
18850
18850
|
];
|
|
18851
|
-
const Play = createLucideIcon("play", __iconNode$
|
|
18852
|
-
const __iconNode$
|
|
18851
|
+
const Play = createLucideIcon("play", __iconNode$m);
|
|
18852
|
+
const __iconNode$l = [
|
|
18853
18853
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
18854
18854
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
18855
18855
|
];
|
|
18856
|
-
const Plus = createLucideIcon("plus", __iconNode$
|
|
18857
|
-
const __iconNode$
|
|
18856
|
+
const Plus = createLucideIcon("plus", __iconNode$l);
|
|
18857
|
+
const __iconNode$k = [
|
|
18858
18858
|
["path", { d: "M18.36 6.64A9 9 0 0 1 20.77 15", key: "dxknvb" }],
|
|
18859
18859
|
["path", { d: "M6.16 6.16a9 9 0 1 0 12.68 12.68", key: "1x7qb5" }],
|
|
18860
18860
|
["path", { d: "M12 2v4", key: "3427ic" }],
|
|
18861
18861
|
["path", { d: "m2 2 20 20", key: "1ooewy" }]
|
|
18862
18862
|
];
|
|
18863
|
-
const PowerOff = createLucideIcon("power-off", __iconNode$
|
|
18864
|
-
const __iconNode$
|
|
18863
|
+
const PowerOff = createLucideIcon("power-off", __iconNode$k);
|
|
18864
|
+
const __iconNode$j = [
|
|
18865
18865
|
["path", { d: "M12 2v10", key: "mnfbl" }],
|
|
18866
18866
|
["path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04", key: "obofu9" }]
|
|
18867
18867
|
];
|
|
18868
|
-
const Power = createLucideIcon("power", __iconNode$
|
|
18869
|
-
const __iconNode$
|
|
18868
|
+
const Power = createLucideIcon("power", __iconNode$j);
|
|
18869
|
+
const __iconNode$i = [
|
|
18870
18870
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
18871
18871
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
18872
18872
|
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
18873
18873
|
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
18874
18874
|
];
|
|
18875
|
-
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$
|
|
18876
|
-
const __iconNode$
|
|
18875
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$i);
|
|
18876
|
+
const __iconNode$h = [
|
|
18877
18877
|
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
18878
18878
|
["path", { d: "M3 3v5h5", key: "1xhq8a" }]
|
|
18879
18879
|
];
|
|
18880
|
-
const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$
|
|
18881
|
-
const __iconNode$
|
|
18880
|
+
const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$h);
|
|
18881
|
+
const __iconNode$g = [
|
|
18882
|
+
["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
|
|
18883
|
+
["path", { d: "M21 3v5h-5", key: "1q7to0" }]
|
|
18884
|
+
];
|
|
18885
|
+
const RotateCw = createLucideIcon("rotate-cw", __iconNode$g);
|
|
18886
|
+
const __iconNode$f = [
|
|
18882
18887
|
[
|
|
18883
18888
|
"path",
|
|
18884
18889
|
{
|
|
@@ -18889,13 +18894,13 @@ const __iconNode$e = [
|
|
|
18889
18894
|
["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
|
|
18890
18895
|
["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
|
|
18891
18896
|
];
|
|
18892
|
-
const Save = createLucideIcon("save", __iconNode$
|
|
18893
|
-
const __iconNode$
|
|
18897
|
+
const Save = createLucideIcon("save", __iconNode$f);
|
|
18898
|
+
const __iconNode$e = [
|
|
18894
18899
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
18895
18900
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
18896
18901
|
];
|
|
18897
|
-
const Search = createLucideIcon("search", __iconNode$
|
|
18898
|
-
const __iconNode$
|
|
18902
|
+
const Search = createLucideIcon("search", __iconNode$e);
|
|
18903
|
+
const __iconNode$d = [
|
|
18899
18904
|
[
|
|
18900
18905
|
"path",
|
|
18901
18906
|
{
|
|
@@ -18905,8 +18910,8 @@ const __iconNode$c = [
|
|
|
18905
18910
|
],
|
|
18906
18911
|
["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
|
|
18907
18912
|
];
|
|
18908
|
-
const Send = createLucideIcon("send", __iconNode$
|
|
18909
|
-
const __iconNode$
|
|
18913
|
+
const Send = createLucideIcon("send", __iconNode$d);
|
|
18914
|
+
const __iconNode$c = [
|
|
18910
18915
|
[
|
|
18911
18916
|
"path",
|
|
18912
18917
|
{
|
|
@@ -18916,8 +18921,8 @@ const __iconNode$b = [
|
|
|
18916
18921
|
],
|
|
18917
18922
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
18918
18923
|
];
|
|
18919
|
-
const ShieldCheck = createLucideIcon("shield-check", __iconNode$
|
|
18920
|
-
const __iconNode$
|
|
18924
|
+
const ShieldCheck = createLucideIcon("shield-check", __iconNode$c);
|
|
18925
|
+
const __iconNode$b = [
|
|
18921
18926
|
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
18922
18927
|
[
|
|
18923
18928
|
"path",
|
|
@@ -18934,8 +18939,8 @@ const __iconNode$a = [
|
|
|
18934
18939
|
}
|
|
18935
18940
|
]
|
|
18936
18941
|
];
|
|
18937
|
-
const ShieldOff = createLucideIcon("shield-off", __iconNode$
|
|
18938
|
-
const __iconNode$
|
|
18942
|
+
const ShieldOff = createLucideIcon("shield-off", __iconNode$b);
|
|
18943
|
+
const __iconNode$a = [
|
|
18939
18944
|
["path", { d: "M21 4v16", key: "7j8fe9" }],
|
|
18940
18945
|
[
|
|
18941
18946
|
"path",
|
|
@@ -18945,7 +18950,12 @@ const __iconNode$9 = [
|
|
|
18945
18950
|
}
|
|
18946
18951
|
]
|
|
18947
18952
|
];
|
|
18948
|
-
const SkipForward = createLucideIcon("skip-forward", __iconNode$
|
|
18953
|
+
const SkipForward = createLucideIcon("skip-forward", __iconNode$a);
|
|
18954
|
+
const __iconNode$9 = [
|
|
18955
|
+
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
|
18956
|
+
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
|
18957
|
+
];
|
|
18958
|
+
const Smartphone = createLucideIcon("smartphone", __iconNode$9);
|
|
18949
18959
|
const __iconNode$8 = [
|
|
18950
18960
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
|
|
18951
18961
|
];
|
|
@@ -19375,6 +19385,45 @@ function getActions(navigate, collections) {
|
|
|
19375
19385
|
}
|
|
19376
19386
|
}
|
|
19377
19387
|
},
|
|
19388
|
+
{
|
|
19389
|
+
id: "set-orientation",
|
|
19390
|
+
label: "Set Orientation",
|
|
19391
|
+
description: "Rotate device orientation (Android)",
|
|
19392
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RotateCw, { size: 18 }),
|
|
19393
|
+
steps: [
|
|
19394
|
+
{
|
|
19395
|
+
id: "pick-orientation",
|
|
19396
|
+
type: "parameter",
|
|
19397
|
+
label: "Orientation",
|
|
19398
|
+
placeholder: "portrait, landscape-left, landscape-right, portrait-upside-down",
|
|
19399
|
+
paramKey: "orientation"
|
|
19400
|
+
},
|
|
19401
|
+
{
|
|
19402
|
+
id: "pick-devices",
|
|
19403
|
+
type: "device-select",
|
|
19404
|
+
label: "Select Devices",
|
|
19405
|
+
multi: true,
|
|
19406
|
+
filter: (d) => d.platform === "android" && d.state === "booted"
|
|
19407
|
+
}
|
|
19408
|
+
],
|
|
19409
|
+
execute: async (ctx) => {
|
|
19410
|
+
const orientation2 = ctx.params.orientation;
|
|
19411
|
+
for (const deviceId of ctx.selectedDeviceIds) {
|
|
19412
|
+
try {
|
|
19413
|
+
const res = await fetch("/api/modules/device-settings/orientation", {
|
|
19414
|
+
method: "POST",
|
|
19415
|
+
headers: { "Content-Type": "application/json" },
|
|
19416
|
+
body: JSON.stringify({ deviceId, orientation: orientation2 })
|
|
19417
|
+
});
|
|
19418
|
+
const name = ctx.selectedDeviceNames[ctx.selectedDeviceIds.indexOf(deviceId)] ?? deviceId;
|
|
19419
|
+
if (res.ok) toast.success(`Orientation set to ${orientation2} on ${name}`);
|
|
19420
|
+
else toast.error(`Orientation change failed on ${name}`);
|
|
19421
|
+
} catch {
|
|
19422
|
+
toast.error("Orientation change failed");
|
|
19423
|
+
}
|
|
19424
|
+
}
|
|
19425
|
+
}
|
|
19426
|
+
},
|
|
19378
19427
|
{
|
|
19379
19428
|
id: "set-location",
|
|
19380
19429
|
label: "Set Location",
|
|
@@ -51835,7 +51884,8 @@ const DEFAULT_CAPS = {
|
|
|
51835
51884
|
displayOverride: false,
|
|
51836
51885
|
batterySimulation: false,
|
|
51837
51886
|
inputInjection: false,
|
|
51838
|
-
bugReport: false
|
|
51887
|
+
bugReport: false,
|
|
51888
|
+
orientation: false
|
|
51839
51889
|
};
|
|
51840
51890
|
function DeviceSettingsPanel() {
|
|
51841
51891
|
const selectedDeviceId = useDeviceStore((s) => s.selectedDeviceIds[0] ?? null);
|
|
@@ -51844,6 +51894,7 @@ function DeviceSettingsPanel() {
|
|
|
51844
51894
|
);
|
|
51845
51895
|
const [caps, setCaps] = reactExports.useState(DEFAULT_CAPS);
|
|
51846
51896
|
const [activeMode, setActiveMode] = reactExports.useState("dark");
|
|
51897
|
+
const [activeOrientation, setActiveOrientation] = reactExports.useState("portrait");
|
|
51847
51898
|
const [locale, setLocale] = reactExports.useState("");
|
|
51848
51899
|
reactExports.useEffect(() => {
|
|
51849
51900
|
if (!selectedDeviceId) {
|
|
@@ -51871,6 +51922,24 @@ function DeviceSettingsPanel() {
|
|
|
51871
51922
|
toast.error(err.message);
|
|
51872
51923
|
}
|
|
51873
51924
|
};
|
|
51925
|
+
const setOrientation = async (orientation2) => {
|
|
51926
|
+
if (!selectedDeviceId) return;
|
|
51927
|
+
setActiveOrientation(orientation2);
|
|
51928
|
+
try {
|
|
51929
|
+
const res = await fetch("/api/modules/device-settings/orientation", {
|
|
51930
|
+
method: "POST",
|
|
51931
|
+
headers: { "Content-Type": "application/json" },
|
|
51932
|
+
body: JSON.stringify({ deviceId: selectedDeviceId, orientation: orientation2 })
|
|
51933
|
+
});
|
|
51934
|
+
if (!res.ok) {
|
|
51935
|
+
const data = await res.json();
|
|
51936
|
+
throw new Error(data.error || "Failed to set orientation");
|
|
51937
|
+
}
|
|
51938
|
+
toast.success(`Orientation set to ${orientation2}`);
|
|
51939
|
+
} catch (err) {
|
|
51940
|
+
toast.error(err.message);
|
|
51941
|
+
}
|
|
51942
|
+
};
|
|
51874
51943
|
const applyLocale = async () => {
|
|
51875
51944
|
if (!selectedDeviceId || !locale.trim()) return;
|
|
51876
51945
|
try {
|
|
@@ -51933,6 +52002,43 @@ function DeviceSettingsPanel() {
|
|
|
51933
52002
|
]
|
|
51934
52003
|
}
|
|
51935
52004
|
),
|
|
52005
|
+
caps.orientation && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded-xl bg-bg-surface/10 border-b border-border p-4 space-y-3", children: [
|
|
52006
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-sm font-medium text-text-secondary uppercase tracking-wide", children: "Orientation" }),
|
|
52007
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "glass-tab-bar", children: [
|
|
52008
|
+
{
|
|
52009
|
+
key: "portrait",
|
|
52010
|
+
label: "Portrait",
|
|
52011
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Smartphone, { size: 13, strokeWidth: 1.8 })
|
|
52012
|
+
},
|
|
52013
|
+
{
|
|
52014
|
+
key: "landscape-left",
|
|
52015
|
+
label: "Landscape L",
|
|
52016
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Smartphone, { size: 13, strokeWidth: 1.8, className: "rotate-90" })
|
|
52017
|
+
},
|
|
52018
|
+
{
|
|
52019
|
+
key: "landscape-right",
|
|
52020
|
+
label: "Landscape R",
|
|
52021
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Smartphone, { size: 13, strokeWidth: 1.8, className: "-rotate-90" })
|
|
52022
|
+
},
|
|
52023
|
+
{
|
|
52024
|
+
key: "portrait-upside-down",
|
|
52025
|
+
label: "Upside Down",
|
|
52026
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RotateCw, { size: 13, strokeWidth: 1.8 })
|
|
52027
|
+
}
|
|
52028
|
+
].map((o) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
52029
|
+
"button",
|
|
52030
|
+
{
|
|
52031
|
+
type: "button",
|
|
52032
|
+
onClick: () => setOrientation(o.key),
|
|
52033
|
+
className: `glass-tab flex items-center gap-1.5 ${activeOrientation === o.key ? "active" : ""}`,
|
|
52034
|
+
children: [
|
|
52035
|
+
o.icon,
|
|
52036
|
+
o.label
|
|
52037
|
+
]
|
|
52038
|
+
},
|
|
52039
|
+
o.key
|
|
52040
|
+
)) })
|
|
52041
|
+
] }),
|
|
51936
52042
|
caps.statusBar ? /* @__PURE__ */ jsxRuntimeExports.jsx(StatusBarSection, { deviceId: selectedDeviceId }) : isPhysical && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
51937
52043
|
"div",
|
|
51938
52044
|
{
|
|
@@ -52413,7 +52519,7 @@ function ToolSettingsPanel() {
|
|
|
52413
52519
|
const [copied, setCopied] = reactExports.useState(false);
|
|
52414
52520
|
const devices = useDeviceStore((s) => s.devices);
|
|
52415
52521
|
const modules = useModuleStore((s) => s.modules);
|
|
52416
|
-
const version = "2.6.
|
|
52522
|
+
const version = "2.6.4";
|
|
52417
52523
|
const fetchStorage = reactExports.useCallback(() => {
|
|
52418
52524
|
fetch("/api/tool-settings/storage").then((r) => r.json()).then((data) => setStorage(data)).catch(() => {
|
|
52419
52525
|
});
|
|
@@ -53762,4 +53868,4 @@ function App() {
|
|
|
53762
53868
|
clientExports.createRoot(document.getElementById("root")).render(
|
|
53763
53869
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(App, {}) })
|
|
53764
53870
|
);
|
|
53765
|
-
//# sourceMappingURL=index-
|
|
53871
|
+
//# sourceMappingURL=index-C84olC1W.js.map
|