@biela.dev/devices 1.6.3 → 1.6.5

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/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkFOTZN6UL_cjs = require('./chunk-FOTZN6UL.cjs');
4
- var chunkDYKZBZRY_cjs = require('./chunk-DYKZBZRY.cjs');
3
+ var chunkW6W7WIY5_cjs = require('./chunk-W6W7WIY5.cjs');
4
+ var chunk2EFRCHF7_cjs = require('./chunk-2EFRCHF7.cjs');
5
5
 
6
6
  // src/custom/device-registry.ts
7
7
  var STORAGE_KEY = "bielaframe-custom-devices";
@@ -135,33 +135,37 @@ function resetDeviceRegistry() {
135
135
  // src/registry.ts
136
136
  var BUILTIN_DEVICES = {
137
137
  // iPhone (latest gen per screen class)
138
- "iphone-17-pro-max": chunkDYKZBZRY_cjs.IPHONE_17_PRO_MAX_META,
139
- "iphone-17-pro": chunkDYKZBZRY_cjs.IPHONE_17_PRO_META,
140
- "iphone-air": chunkDYKZBZRY_cjs.IPHONE_AIR_META,
141
- "iphone-16": chunkDYKZBZRY_cjs.IPHONE_16_META,
142
- "iphone-16e": chunkDYKZBZRY_cjs.IPHONE_16E_META,
143
- "iphone-se-3": chunkDYKZBZRY_cjs.IPHONE_SE_3_META,
138
+ "iphone-17-pro-max": chunk2EFRCHF7_cjs.IPHONE_17_PRO_MAX_META,
139
+ "iphone-17-pro": chunk2EFRCHF7_cjs.IPHONE_17_PRO_META,
140
+ "iphone-air": chunk2EFRCHF7_cjs.IPHONE_AIR_META,
141
+ "iphone-16": chunk2EFRCHF7_cjs.IPHONE_16_META,
142
+ "iphone-16e": chunk2EFRCHF7_cjs.IPHONE_16E_META,
143
+ "iphone-se-3": chunk2EFRCHF7_cjs.IPHONE_SE_3_META,
144
144
  // Android
145
- "galaxy-s25-ultra": chunkFOTZN6UL_cjs.GALAXY_S25_ULTRA_META,
146
- "galaxy-s25": chunkFOTZN6UL_cjs.GALAXY_S25_META,
147
- "galaxy-s25-edge": chunkFOTZN6UL_cjs.GALAXY_S25_EDGE_META,
148
- "pixel-9-pro-xl": chunkFOTZN6UL_cjs.PIXEL_9_PRO_XL_META,
149
- "pixel-9-pro": chunkFOTZN6UL_cjs.PIXEL_9_PRO_META
145
+ "galaxy-s25-ultra": chunkW6W7WIY5_cjs.GALAXY_S25_ULTRA_META,
146
+ "galaxy-s25": chunkW6W7WIY5_cjs.GALAXY_S25_META,
147
+ "galaxy-s25-edge": chunkW6W7WIY5_cjs.GALAXY_S25_EDGE_META,
148
+ "galaxy-z-fold-7": chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_META,
149
+ "galaxy-z-fold-7-open": chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_OPEN_META,
150
+ "pixel-9-pro-xl": chunkW6W7WIY5_cjs.PIXEL_9_PRO_XL_META,
151
+ "pixel-9-pro": chunkW6W7WIY5_cjs.PIXEL_9_PRO_META
150
152
  };
151
153
  var DEVICE_LAYOUTS = {
152
154
  // iPhone
153
- "iphone-17-pro-max": chunkDYKZBZRY_cjs.IPHONE_17_PRO_MAX_LAYOUT,
154
- "iphone-17-pro": chunkDYKZBZRY_cjs.IPHONE_17_PRO_LAYOUT,
155
- "iphone-air": chunkDYKZBZRY_cjs.IPHONE_AIR_LAYOUT,
156
- "iphone-16": chunkDYKZBZRY_cjs.IPHONE_16_LAYOUT,
157
- "iphone-16e": chunkDYKZBZRY_cjs.IPHONE_16E_LAYOUT,
158
- "iphone-se-3": chunkDYKZBZRY_cjs.IPHONE_SE_3_LAYOUT,
155
+ "iphone-17-pro-max": chunk2EFRCHF7_cjs.IPHONE_17_PRO_MAX_LAYOUT,
156
+ "iphone-17-pro": chunk2EFRCHF7_cjs.IPHONE_17_PRO_LAYOUT,
157
+ "iphone-air": chunk2EFRCHF7_cjs.IPHONE_AIR_LAYOUT,
158
+ "iphone-16": chunk2EFRCHF7_cjs.IPHONE_16_LAYOUT,
159
+ "iphone-16e": chunk2EFRCHF7_cjs.IPHONE_16E_LAYOUT,
160
+ "iphone-se-3": chunk2EFRCHF7_cjs.IPHONE_SE_3_LAYOUT,
159
161
  // Android
160
- "galaxy-s25-ultra": chunkFOTZN6UL_cjs.GALAXY_S25_ULTRA_LAYOUT,
161
- "galaxy-s25": chunkFOTZN6UL_cjs.GALAXY_S25_LAYOUT,
162
- "galaxy-s25-edge": chunkFOTZN6UL_cjs.GALAXY_S25_EDGE_LAYOUT,
163
- "pixel-9-pro-xl": chunkFOTZN6UL_cjs.PIXEL_9_PRO_XL_LAYOUT,
164
- "pixel-9-pro": chunkFOTZN6UL_cjs.PIXEL_9_PRO_LAYOUT
162
+ "galaxy-s25-ultra": chunkW6W7WIY5_cjs.GALAXY_S25_ULTRA_LAYOUT,
163
+ "galaxy-s25": chunkW6W7WIY5_cjs.GALAXY_S25_LAYOUT,
164
+ "galaxy-s25-edge": chunkW6W7WIY5_cjs.GALAXY_S25_EDGE_LAYOUT,
165
+ "galaxy-z-fold-7": chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_LAYOUT,
166
+ "galaxy-z-fold-7-open": chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_OPEN_LAYOUT,
167
+ "pixel-9-pro-xl": chunkW6W7WIY5_cjs.PIXEL_9_PRO_XL_LAYOUT,
168
+ "pixel-9-pro": chunkW6W7WIY5_cjs.PIXEL_9_PRO_LAYOUT
165
169
  };
166
170
  function getDeviceMetadata(deviceId) {
167
171
  const builtin = BUILTIN_DEVICES[deviceId];
@@ -713,6 +717,12 @@ function analyzeSVGGeometry(svgString) {
713
717
  id: null
714
718
  };
715
719
  }
720
+ if (screenRect) {
721
+ const maskScreen = findMaskBasedScreen(svgString, screenRect);
722
+ if (maskScreen) {
723
+ screenRect = maskScreen;
724
+ }
725
+ }
716
726
  const islandRect = findDynamicIsland(rects, screenRect);
717
727
  const sideButtons = findSideButtons(rects, phoneBody);
718
728
  const zones = [];
@@ -782,10 +792,10 @@ function findScreenArea(rects, phoneBody, svgW, svgH) {
782
792
  const area = r.width * r.height;
783
793
  if (area < bodyArea * 0.5) return false;
784
794
  if (area >= bodyArea * 0.98) return false;
785
- if (r.rx < 10) return false;
795
+ if (!phoneBody && r.rx < 10) return false;
786
796
  if (!r.fill || r.fill === "none") return false;
787
797
  if (r.fill.startsWith("url(")) return false;
788
- if (isDarkFill(r.fill)) return false;
798
+ if (isPureBlackFill(r.fill)) return false;
789
799
  return true;
790
800
  }).sort((a, b) => b.width * b.height - a.width * a.height);
791
801
  return fallbackCandidates[0] ?? null;
@@ -894,6 +904,55 @@ function classifySideButtons(sideButtons, phoneBody) {
894
904
  }
895
905
  return classified;
896
906
  }
907
+ function findMaskBasedScreen(svgString, detectedScreen, _svgW, _svgH) {
908
+ const maskRegex = /<mask\b[^>]*>([\s\S]*?)<\/mask>/gi;
909
+ let maskMatch;
910
+ const candidates = [];
911
+ while ((maskMatch = maskRegex.exec(svgString)) !== null) {
912
+ const maskBody = maskMatch[1];
913
+ const pathRegex = /<path\b([^>]*?)\/>/gi;
914
+ let pathMatch;
915
+ while ((pathMatch = pathRegex.exec(maskBody)) !== null) {
916
+ const attrs = pathMatch[1];
917
+ const d = getAttrValue(attrs, "d");
918
+ if (!d) continue;
919
+ const bb = subpathBBox(d);
920
+ if (!bb || bb.w < 10 || bb.h < 10) continue;
921
+ if (bb.h < bb.w * 1.3) continue;
922
+ const overlapX = Math.max(0, Math.min(bb.x + bb.w, detectedScreen.x + detectedScreen.width) - Math.max(bb.x, detectedScreen.x));
923
+ const overlapY = Math.max(0, Math.min(bb.y + bb.h, detectedScreen.y + detectedScreen.height) - Math.max(bb.y, detectedScreen.y));
924
+ const overlapArea = overlapX * overlapY;
925
+ const detectedArea = detectedScreen.width * detectedScreen.height;
926
+ if (overlapArea < detectedArea * 0.8) continue;
927
+ const mMatch = d.match(/M\s*(-?[\d.]+)[\s,]+(-?[\d.]+)/i);
928
+ let rx = 0;
929
+ if (mMatch) {
930
+ const mx = parseFloat(mMatch[1]);
931
+ const my = parseFloat(mMatch[2]);
932
+ const rxFromY = Math.abs(my - bb.y);
933
+ const rxFromX = Math.abs(mx - bb.x);
934
+ rx = Math.max(rxFromY, rxFromX);
935
+ if (rx < 5) rx = 0;
936
+ }
937
+ candidates.push({
938
+ x: bb.x,
939
+ y: bb.y,
940
+ width: bb.w,
941
+ height: bb.h,
942
+ rx,
943
+ fill: "mask-path",
944
+ id: null
945
+ });
946
+ }
947
+ }
948
+ if (candidates.length === 0) return null;
949
+ candidates.sort((a, b) => {
950
+ const aDiff = Math.abs(a.width * a.height - detectedScreen.width * detectedScreen.height);
951
+ const bDiff = Math.abs(b.width * b.height - detectedScreen.width * detectedScreen.height);
952
+ return aDiff - bDiff;
953
+ });
954
+ return candidates[0];
955
+ }
897
956
  function findPathCutoutScreen(svgString, svgW, svgH) {
898
957
  const svgArea = svgW * svgH;
899
958
  const pathRegex = /<path\b([^>]*?)\/>/gi;
@@ -1057,6 +1116,20 @@ function isLightFill(fill) {
1057
1116
  }
1058
1117
  return false;
1059
1118
  }
1119
+ function isPureBlackFill(fill) {
1120
+ if (!fill) return false;
1121
+ const f = fill.toLowerCase().trim();
1122
+ if (f === "black" || f === "#000" || f === "#000000") return true;
1123
+ if (f === "rgb(0,0,0)" || f === "rgb(0, 0, 0)") return true;
1124
+ const hex6 = f.match(/^#([0-9a-f]{6})$/);
1125
+ if (hex6) {
1126
+ const r = parseInt(hex6[1].slice(0, 2), 16);
1127
+ const g = parseInt(hex6[1].slice(2, 4), 16);
1128
+ const b = parseInt(hex6[1].slice(4, 6), 16);
1129
+ return r < 10 && g < 10 && b < 10;
1130
+ }
1131
+ return false;
1132
+ }
1060
1133
  function isDarkFill(fill) {
1061
1134
  if (!fill) return false;
1062
1135
  const f = fill.toLowerCase().trim();
@@ -1141,6 +1214,14 @@ function countOccurrences(str, substr) {
1141
1214
  function applyTransformToRect(attrs, x, y, width, height) {
1142
1215
  const transformAttr = getAttrValue(attrs, "transform");
1143
1216
  if (!transformAttr) return { x, y, width, height };
1217
+ const translateMatch = transformAttr.match(
1218
+ /translate\(\s*(-?[\d.]+)[\s,]+(-?[\d.]+)\s*\)/
1219
+ );
1220
+ if (translateMatch) {
1221
+ const tx = parseFloat(translateMatch[1]);
1222
+ const ty = parseFloat(translateMatch[2]);
1223
+ return { x: x + tx, y: y + ty, width, height };
1224
+ }
1144
1225
  const matrixMatch = transformAttr.match(
1145
1226
  /matrix\(\s*(-?[\d.]+)\s+(-?[\d.]+)\s+(-?[\d.]+)\s+(-?[\d.]+)\s+(-?[\d.]+)\s+(-?[\d.]+)\s*\)/
1146
1227
  );
@@ -1297,191 +1378,243 @@ function listSVGLayerNames(svgString) {
1297
1378
 
1298
1379
  Object.defineProperty(exports, "GALAXY_S25_EDGE_FRAME", {
1299
1380
  enumerable: true,
1300
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_EDGE_FRAME; }
1381
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_EDGE_FRAME; }
1301
1382
  });
1302
1383
  Object.defineProperty(exports, "GALAXY_S25_EDGE_LAYOUT", {
1303
1384
  enumerable: true,
1304
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_EDGE_LAYOUT; }
1385
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_EDGE_LAYOUT; }
1305
1386
  });
1306
1387
  Object.defineProperty(exports, "GALAXY_S25_EDGE_META", {
1307
1388
  enumerable: true,
1308
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_EDGE_META; }
1389
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_EDGE_META; }
1309
1390
  });
1310
1391
  Object.defineProperty(exports, "GALAXY_S25_FRAME", {
1311
1392
  enumerable: true,
1312
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_FRAME; }
1393
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_FRAME; }
1313
1394
  });
1314
1395
  Object.defineProperty(exports, "GALAXY_S25_LAYOUT", {
1315
1396
  enumerable: true,
1316
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_LAYOUT; }
1397
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_LAYOUT; }
1317
1398
  });
1318
1399
  Object.defineProperty(exports, "GALAXY_S25_META", {
1319
1400
  enumerable: true,
1320
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_META; }
1401
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_META; }
1402
+ });
1403
+ Object.defineProperty(exports, "GALAXY_S25_SCREEN_RECT", {
1404
+ enumerable: true,
1405
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_SCREEN_RECT; }
1321
1406
  });
1322
1407
  Object.defineProperty(exports, "GALAXY_S25_ULTRA_FRAME", {
1323
1408
  enumerable: true,
1324
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_ULTRA_FRAME; }
1409
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_ULTRA_FRAME; }
1325
1410
  });
1326
1411
  Object.defineProperty(exports, "GALAXY_S25_ULTRA_LAYOUT", {
1327
1412
  enumerable: true,
1328
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_ULTRA_LAYOUT; }
1413
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_ULTRA_LAYOUT; }
1329
1414
  });
1330
1415
  Object.defineProperty(exports, "GALAXY_S25_ULTRA_META", {
1331
1416
  enumerable: true,
1332
- get: function () { return chunkFOTZN6UL_cjs.GALAXY_S25_ULTRA_META; }
1417
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_ULTRA_META; }
1418
+ });
1419
+ Object.defineProperty(exports, "GALAXY_S25_ULTRA_SCREEN_RECT", {
1420
+ enumerable: true,
1421
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_S25_ULTRA_SCREEN_RECT; }
1422
+ });
1423
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_FRAME", {
1424
+ enumerable: true,
1425
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_FRAME; }
1426
+ });
1427
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_LAYOUT", {
1428
+ enumerable: true,
1429
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_LAYOUT; }
1430
+ });
1431
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_META", {
1432
+ enumerable: true,
1433
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_META; }
1434
+ });
1435
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_OPEN_FRAME", {
1436
+ enumerable: true,
1437
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_OPEN_FRAME; }
1438
+ });
1439
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_OPEN_LAYOUT", {
1440
+ enumerable: true,
1441
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_OPEN_LAYOUT; }
1442
+ });
1443
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_OPEN_META", {
1444
+ enumerable: true,
1445
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_OPEN_META; }
1446
+ });
1447
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_OPEN_SCREEN_RECT", {
1448
+ enumerable: true,
1449
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_OPEN_SCREEN_RECT; }
1450
+ });
1451
+ Object.defineProperty(exports, "GALAXY_Z_FOLD_7_SCREEN_RECT", {
1452
+ enumerable: true,
1453
+ get: function () { return chunkW6W7WIY5_cjs.GALAXY_Z_FOLD_7_SCREEN_RECT; }
1333
1454
  });
1334
1455
  Object.defineProperty(exports, "GalaxyS25EdgeSVG", {
1335
1456
  enumerable: true,
1336
- get: function () { return chunkFOTZN6UL_cjs.GalaxyS25EdgeSVG; }
1457
+ get: function () { return chunkW6W7WIY5_cjs.GalaxyS25EdgeSVG; }
1337
1458
  });
1338
1459
  Object.defineProperty(exports, "GalaxyS25SVG", {
1339
1460
  enumerable: true,
1340
- get: function () { return chunkFOTZN6UL_cjs.GalaxyS25SVG; }
1461
+ get: function () { return chunkW6W7WIY5_cjs.GalaxyS25SVG; }
1341
1462
  });
1342
1463
  Object.defineProperty(exports, "GalaxyS25UltraSVG", {
1343
1464
  enumerable: true,
1344
- get: function () { return chunkFOTZN6UL_cjs.GalaxyS25UltraSVG; }
1465
+ get: function () { return chunkW6W7WIY5_cjs.GalaxyS25UltraSVG; }
1466
+ });
1467
+ Object.defineProperty(exports, "GalaxyZFold7OpenSVG", {
1468
+ enumerable: true,
1469
+ get: function () { return chunkW6W7WIY5_cjs.GalaxyZFold7OpenSVG; }
1470
+ });
1471
+ Object.defineProperty(exports, "GalaxyZFold7SVG", {
1472
+ enumerable: true,
1473
+ get: function () { return chunkW6W7WIY5_cjs.GalaxyZFold7SVG; }
1345
1474
  });
1346
1475
  Object.defineProperty(exports, "PIXEL_9_PRO_FRAME", {
1347
1476
  enumerable: true,
1348
- get: function () { return chunkFOTZN6UL_cjs.PIXEL_9_PRO_FRAME; }
1477
+ get: function () { return chunkW6W7WIY5_cjs.PIXEL_9_PRO_FRAME; }
1349
1478
  });
1350
1479
  Object.defineProperty(exports, "PIXEL_9_PRO_LAYOUT", {
1351
1480
  enumerable: true,
1352
- get: function () { return chunkFOTZN6UL_cjs.PIXEL_9_PRO_LAYOUT; }
1481
+ get: function () { return chunkW6W7WIY5_cjs.PIXEL_9_PRO_LAYOUT; }
1353
1482
  });
1354
1483
  Object.defineProperty(exports, "PIXEL_9_PRO_META", {
1355
1484
  enumerable: true,
1356
- get: function () { return chunkFOTZN6UL_cjs.PIXEL_9_PRO_META; }
1485
+ get: function () { return chunkW6W7WIY5_cjs.PIXEL_9_PRO_META; }
1357
1486
  });
1358
1487
  Object.defineProperty(exports, "PIXEL_9_PRO_XL_FRAME", {
1359
1488
  enumerable: true,
1360
- get: function () { return chunkFOTZN6UL_cjs.PIXEL_9_PRO_XL_FRAME; }
1489
+ get: function () { return chunkW6W7WIY5_cjs.PIXEL_9_PRO_XL_FRAME; }
1361
1490
  });
1362
1491
  Object.defineProperty(exports, "PIXEL_9_PRO_XL_LAYOUT", {
1363
1492
  enumerable: true,
1364
- get: function () { return chunkFOTZN6UL_cjs.PIXEL_9_PRO_XL_LAYOUT; }
1493
+ get: function () { return chunkW6W7WIY5_cjs.PIXEL_9_PRO_XL_LAYOUT; }
1365
1494
  });
1366
1495
  Object.defineProperty(exports, "PIXEL_9_PRO_XL_META", {
1367
1496
  enumerable: true,
1368
- get: function () { return chunkFOTZN6UL_cjs.PIXEL_9_PRO_XL_META; }
1497
+ get: function () { return chunkW6W7WIY5_cjs.PIXEL_9_PRO_XL_META; }
1369
1498
  });
1370
1499
  Object.defineProperty(exports, "Pixel9ProSVG", {
1371
1500
  enumerable: true,
1372
- get: function () { return chunkFOTZN6UL_cjs.Pixel9ProSVG; }
1501
+ get: function () { return chunkW6W7WIY5_cjs.Pixel9ProSVG; }
1373
1502
  });
1374
1503
  Object.defineProperty(exports, "Pixel9ProXLSVG", {
1375
1504
  enumerable: true,
1376
- get: function () { return chunkFOTZN6UL_cjs.Pixel9ProXLSVG; }
1505
+ get: function () { return chunkW6W7WIY5_cjs.Pixel9ProXLSVG; }
1377
1506
  });
1378
1507
  Object.defineProperty(exports, "IPHONE_16E_FRAME", {
1379
1508
  enumerable: true,
1380
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16E_FRAME; }
1509
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16E_FRAME; }
1381
1510
  });
1382
1511
  Object.defineProperty(exports, "IPHONE_16E_LAYOUT", {
1383
1512
  enumerable: true,
1384
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16E_LAYOUT; }
1513
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16E_LAYOUT; }
1385
1514
  });
1386
1515
  Object.defineProperty(exports, "IPHONE_16E_META", {
1387
1516
  enumerable: true,
1388
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16E_META; }
1517
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16E_META; }
1389
1518
  });
1390
1519
  Object.defineProperty(exports, "IPHONE_16_FRAME", {
1391
1520
  enumerable: true,
1392
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16_FRAME; }
1521
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16_FRAME; }
1393
1522
  });
1394
1523
  Object.defineProperty(exports, "IPHONE_16_LAYOUT", {
1395
1524
  enumerable: true,
1396
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16_LAYOUT; }
1525
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16_LAYOUT; }
1397
1526
  });
1398
1527
  Object.defineProperty(exports, "IPHONE_16_META", {
1399
1528
  enumerable: true,
1400
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16_META; }
1529
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16_META; }
1401
1530
  });
1402
1531
  Object.defineProperty(exports, "IPHONE_16_SCREEN_RECT", {
1403
1532
  enumerable: true,
1404
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_16_SCREEN_RECT; }
1533
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_16_SCREEN_RECT; }
1405
1534
  });
1406
1535
  Object.defineProperty(exports, "IPHONE_17_PRO_FRAME", {
1407
1536
  enumerable: true,
1408
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_FRAME; }
1537
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_FRAME; }
1409
1538
  });
1410
1539
  Object.defineProperty(exports, "IPHONE_17_PRO_LAYOUT", {
1411
1540
  enumerable: true,
1412
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_LAYOUT; }
1541
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_LAYOUT; }
1413
1542
  });
1414
1543
  Object.defineProperty(exports, "IPHONE_17_PRO_MAX_FRAME", {
1415
1544
  enumerable: true,
1416
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_MAX_FRAME; }
1545
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_MAX_FRAME; }
1417
1546
  });
1418
1547
  Object.defineProperty(exports, "IPHONE_17_PRO_MAX_LAYOUT", {
1419
1548
  enumerable: true,
1420
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_MAX_LAYOUT; }
1549
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_MAX_LAYOUT; }
1421
1550
  });
1422
1551
  Object.defineProperty(exports, "IPHONE_17_PRO_MAX_META", {
1423
1552
  enumerable: true,
1424
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_MAX_META; }
1553
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_MAX_META; }
1425
1554
  });
1426
1555
  Object.defineProperty(exports, "IPHONE_17_PRO_MAX_SCREEN_RECT", {
1427
1556
  enumerable: true,
1428
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_MAX_SCREEN_RECT; }
1557
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_MAX_SCREEN_RECT; }
1429
1558
  });
1430
1559
  Object.defineProperty(exports, "IPHONE_17_PRO_META", {
1431
1560
  enumerable: true,
1432
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_META; }
1561
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_META; }
1433
1562
  });
1434
1563
  Object.defineProperty(exports, "IPHONE_17_PRO_SCREEN_RECT", {
1435
1564
  enumerable: true,
1436
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_17_PRO_SCREEN_RECT; }
1565
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_17_PRO_SCREEN_RECT; }
1437
1566
  });
1438
1567
  Object.defineProperty(exports, "IPHONE_AIR_FRAME", {
1439
1568
  enumerable: true,
1440
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_AIR_FRAME; }
1569
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_AIR_FRAME; }
1441
1570
  });
1442
1571
  Object.defineProperty(exports, "IPHONE_AIR_LAYOUT", {
1443
1572
  enumerable: true,
1444
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_AIR_LAYOUT; }
1573
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_AIR_LAYOUT; }
1445
1574
  });
1446
1575
  Object.defineProperty(exports, "IPHONE_AIR_META", {
1447
1576
  enumerable: true,
1448
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_AIR_META; }
1577
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_AIR_META; }
1578
+ });
1579
+ Object.defineProperty(exports, "IPHONE_AIR_SCREEN_RECT", {
1580
+ enumerable: true,
1581
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_AIR_SCREEN_RECT; }
1449
1582
  });
1450
1583
  Object.defineProperty(exports, "IPHONE_SE_3_FRAME", {
1451
1584
  enumerable: true,
1452
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_SE_3_FRAME; }
1585
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_SE_3_FRAME; }
1453
1586
  });
1454
1587
  Object.defineProperty(exports, "IPHONE_SE_3_LAYOUT", {
1455
1588
  enumerable: true,
1456
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_SE_3_LAYOUT; }
1589
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_SE_3_LAYOUT; }
1457
1590
  });
1458
1591
  Object.defineProperty(exports, "IPHONE_SE_3_META", {
1459
1592
  enumerable: true,
1460
- get: function () { return chunkDYKZBZRY_cjs.IPHONE_SE_3_META; }
1593
+ get: function () { return chunk2EFRCHF7_cjs.IPHONE_SE_3_META; }
1461
1594
  });
1462
1595
  Object.defineProperty(exports, "IPhone16SVG", {
1463
1596
  enumerable: true,
1464
- get: function () { return chunkDYKZBZRY_cjs.IPhone16SVG; }
1597
+ get: function () { return chunk2EFRCHF7_cjs.IPhone16SVG; }
1465
1598
  });
1466
1599
  Object.defineProperty(exports, "IPhone16eSVG", {
1467
1600
  enumerable: true,
1468
- get: function () { return chunkDYKZBZRY_cjs.IPhone16eSVG; }
1601
+ get: function () { return chunk2EFRCHF7_cjs.IPhone16eSVG; }
1469
1602
  });
1470
1603
  Object.defineProperty(exports, "IPhone17ProMaxSVG", {
1471
1604
  enumerable: true,
1472
- get: function () { return chunkDYKZBZRY_cjs.IPhone17ProMaxSVG; }
1605
+ get: function () { return chunk2EFRCHF7_cjs.IPhone17ProMaxSVG; }
1473
1606
  });
1474
1607
  Object.defineProperty(exports, "IPhone17ProSVG", {
1475
1608
  enumerable: true,
1476
- get: function () { return chunkDYKZBZRY_cjs.IPhone17ProSVG; }
1609
+ get: function () { return chunk2EFRCHF7_cjs.IPhone17ProSVG; }
1477
1610
  });
1478
1611
  Object.defineProperty(exports, "IPhoneAirSVG", {
1479
1612
  enumerable: true,
1480
- get: function () { return chunkDYKZBZRY_cjs.IPhoneAirSVG; }
1613
+ get: function () { return chunk2EFRCHF7_cjs.IPhoneAirSVG; }
1481
1614
  });
1482
1615
  Object.defineProperty(exports, "IPhoneSE3SVG", {
1483
1616
  enumerable: true,
1484
- get: function () { return chunkDYKZBZRY_cjs.IPhoneSE3SVG; }
1617
+ get: function () { return chunk2EFRCHF7_cjs.IPhoneSE3SVG; }
1485
1618
  });
1486
1619
  exports.BUILTIN_DEVICES = BUILTIN_DEVICES;
1487
1620
  exports.DEVICE_LAYOUTS = DEVICE_LAYOUTS;