@biela.dev/devices 1.5.0 → 1.6.0

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.
@@ -1,1774 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
-
5
- // src/ios/iphone-17-pro-max/metadata.ts
6
- var IPHONE_17_PRO_MAX_META = {
7
- id: "iphone-17-pro-max",
8
- name: "iPhone 17 Pro Max",
9
- platform: "ios",
10
- year: 2025,
11
- screen: {
12
- width: 440,
13
- height: 956,
14
- physicalWidth: 1320,
15
- physicalHeight: 2868,
16
- dpr: 3,
17
- aspectRatio: "19.5:9",
18
- cornerRadius: 55,
19
- ppi: 460
20
- }
21
- };
22
- var IPHONE_17_PRO_MAX_LAYOUT = {
23
- meta: IPHONE_17_PRO_MAX_META,
24
- safeArea: {
25
- portrait: { top: 62, bottom: 34, left: 0, right: 0 },
26
- landscape: { top: 20, bottom: 20, left: 62, right: 62 }
27
- },
28
- hardwareOverlays: {
29
- type: "dynamic-island",
30
- portrait: {
31
- x: 157,
32
- // centered: (440 - 126) / 2 = 157
33
- y: 11,
34
- width: 126,
35
- height: 37,
36
- shape: "pill",
37
- cornerRadius: 18.5
38
- }
39
- },
40
- statusBar: {
41
- height: 54,
42
- style: "dynamic-island",
43
- hasTime: true,
44
- hasBattery: true,
45
- hasSignal: true
46
- },
47
- homeIndicator: {
48
- type: "swipe-bar",
49
- height: 5,
50
- width: 134,
51
- visible: true
52
- },
53
- hardwareButtons: {
54
- volumeUp: { side: "left", yPosition: 200 },
55
- volumeDown: { side: "left", yPosition: 240 },
56
- power: { side: "right", yPosition: 220 },
57
- actionButton: { side: "left", yPosition: 250 },
58
- cameraControl: { side: "right", yPosition: 500 }
59
- }
60
- };
61
- function IPhone17ProMaxSVG({ colorScheme = "dark", style }) {
62
- const frameColor = colorScheme === "dark" ? "#1a1a1a" : "#e8e8e8";
63
- const frameBorder = colorScheme === "dark" ? "#333" : "#ccc";
64
- const buttonColor = colorScheme === "dark" ? "#2a2a2a" : "#d0d0d0";
65
- const islandColor = "#000000";
66
- const bezelSide = 15;
67
- const bezelTop = 23;
68
- const bezelBottom = 23;
69
- const screenW = 440;
70
- const screenH = 956;
71
- const totalW = screenW + bezelSide * 2;
72
- const totalH = screenH + bezelTop + bezelBottom;
73
- const outerRadius = 62;
74
- const screenRadius = 55;
75
- return /* @__PURE__ */ jsxRuntime.jsxs(
76
- "svg",
77
- {
78
- viewBox: `0 0 ${totalW} ${totalH}`,
79
- width: totalW,
80
- height: totalH,
81
- xmlns: "http://www.w3.org/2000/svg",
82
- style,
83
- children: [
84
- /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
85
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: "frame-gradient-iphone-17-pro-max", x1: "0", y1: "0", x2: "1", y2: "1", children: [
86
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: frameColor }),
87
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#252525" : "#f0f0f0" }),
88
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: frameColor })
89
- ] }),
90
- /* @__PURE__ */ jsxRuntime.jsxs("mask", { id: "frame-screen-mask-iphone-17-pro-max", children: [
91
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
92
- /* @__PURE__ */ jsxRuntime.jsx(
93
- "rect",
94
- {
95
- x: bezelSide,
96
- y: bezelTop,
97
- width: screenW,
98
- height: screenH,
99
- rx: screenRadius,
100
- ry: screenRadius,
101
- fill: "black"
102
- }
103
- )
104
- ] })
105
- ] }),
106
- /* @__PURE__ */ jsxRuntime.jsx(
107
- "rect",
108
- {
109
- x: "0",
110
- y: "0",
111
- width: totalW,
112
- height: totalH,
113
- rx: outerRadius,
114
- ry: outerRadius,
115
- fill: "url(#frame-gradient-iphone-17-pro-max)",
116
- stroke: frameBorder,
117
- strokeWidth: "1.5",
118
- mask: "url(#frame-screen-mask-iphone-17-pro-max)"
119
- }
120
- ),
121
- /* @__PURE__ */ jsxRuntime.jsx(
122
- "rect",
123
- {
124
- "data-zone": "screen-area",
125
- x: bezelSide,
126
- y: bezelTop,
127
- width: screenW,
128
- height: screenH,
129
- rx: screenRadius,
130
- ry: screenRadius,
131
- fill: "none"
132
- }
133
- ),
134
- /* @__PURE__ */ jsxRuntime.jsx(
135
- "rect",
136
- {
137
- "data-zone": "hardware-overlay",
138
- "data-zone-type": "dynamic-island",
139
- "data-zone-shape": "pill",
140
- x: bezelSide + 157,
141
- y: bezelTop + 11,
142
- width: "126",
143
- height: "37",
144
- rx: "18.5",
145
- ry: "18.5",
146
- fill: islandColor
147
- }
148
- ),
149
- /* @__PURE__ */ jsxRuntime.jsx(
150
- "rect",
151
- {
152
- "data-zone": "safe-area-top-inset",
153
- x: bezelSide,
154
- y: bezelTop,
155
- width: screenW,
156
- height: "62",
157
- fill: "transparent"
158
- }
159
- ),
160
- /* @__PURE__ */ jsxRuntime.jsx(
161
- "rect",
162
- {
163
- "data-zone": "safe-area-bottom-inset",
164
- x: bezelSide,
165
- y: bezelTop + screenH - 34,
166
- width: screenW,
167
- height: "34",
168
- fill: "transparent"
169
- }
170
- ),
171
- /* @__PURE__ */ jsxRuntime.jsx(
172
- "rect",
173
- {
174
- "data-zone": "status-bar",
175
- "data-zone-style": "dynamic-island",
176
- x: bezelSide,
177
- y: bezelTop,
178
- width: screenW,
179
- height: "54",
180
- fill: "transparent"
181
- }
182
- ),
183
- /* @__PURE__ */ jsxRuntime.jsx(
184
- "rect",
185
- {
186
- "data-zone": "home-indicator",
187
- "data-zone-type": "swipe-bar",
188
- x: bezelSide + (screenW - 134) / 2,
189
- y: bezelTop + screenH - 13,
190
- width: "134",
191
- height: "5",
192
- rx: "2.5",
193
- ry: "2.5",
194
- fill: "rgba(255,255,255,0.3)"
195
- }
196
- ),
197
- /* @__PURE__ */ jsxRuntime.jsx(
198
- "rect",
199
- {
200
- "data-button": "volume-up",
201
- "data-side": "left",
202
- x: "-1",
203
- y: "200",
204
- width: "3",
205
- height: "32",
206
- rx: "1.5",
207
- fill: buttonColor
208
- }
209
- ),
210
- /* @__PURE__ */ jsxRuntime.jsx(
211
- "rect",
212
- {
213
- "data-button": "volume-down",
214
- "data-side": "left",
215
- x: "-1",
216
- y: "240",
217
- width: "3",
218
- height: "32",
219
- rx: "1.5",
220
- fill: buttonColor
221
- }
222
- ),
223
- /* @__PURE__ */ jsxRuntime.jsx(
224
- "rect",
225
- {
226
- "data-button": "action",
227
- "data-side": "left",
228
- x: "-1",
229
- y: "170",
230
- width: "3",
231
- height: "20",
232
- rx: "1.5",
233
- fill: buttonColor
234
- }
235
- ),
236
- /* @__PURE__ */ jsxRuntime.jsx(
237
- "rect",
238
- {
239
- "data-button": "power",
240
- "data-side": "right",
241
- x: totalW - 2,
242
- y: "220",
243
- width: "3",
244
- height: "40",
245
- rx: "1.5",
246
- fill: buttonColor
247
- }
248
- ),
249
- /* @__PURE__ */ jsxRuntime.jsx(
250
- "circle",
251
- {
252
- "data-button": "camera",
253
- "data-side": "right",
254
- cx: totalW - 0.5,
255
- cy: "500",
256
- r: "6",
257
- fill: buttonColor,
258
- stroke: frameBorder,
259
- strokeWidth: "0.5"
260
- }
261
- ),
262
- /* @__PURE__ */ jsxRuntime.jsx(
263
- "rect",
264
- {
265
- x: (totalW - 24) / 2,
266
- y: totalH - 5,
267
- width: "24",
268
- height: "4",
269
- rx: "2",
270
- fill: colorScheme === "dark" ? "#111" : "#bbb"
271
- }
272
- ),
273
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
274
- "circle",
275
- {
276
- cx: totalW / 2 - 30 + i * 6,
277
- cy: totalH - 8,
278
- r: "1.2",
279
- fill: colorScheme === "dark" ? "#111" : "#aaa"
280
- },
281
- `speaker-l-${i}`
282
- )),
283
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
284
- "circle",
285
- {
286
- cx: totalW / 2 + 8 + i * 6,
287
- cy: totalH - 8,
288
- r: "1.2",
289
- fill: colorScheme === "dark" ? "#111" : "#aaa"
290
- },
291
- `speaker-r-${i}`
292
- ))
293
- ]
294
- }
295
- );
296
- }
297
- var IPHONE_17_PRO_MAX_FRAME = {
298
- bezelTop: 23,
299
- bezelBottom: 23,
300
- bezelLeft: 15,
301
- bezelRight: 15,
302
- totalWidth: 470,
303
- totalHeight: 1002,
304
- screenWidth: 440,
305
- screenHeight: 956,
306
- screenRadius: 55
307
- };
308
-
309
- // src/ios/iphone-17-pro/metadata.ts
310
- var IPHONE_17_PRO_META = {
311
- id: "iphone-17-pro",
312
- name: "iPhone 17 Pro",
313
- platform: "ios",
314
- year: 2025,
315
- screen: {
316
- width: 402,
317
- height: 874,
318
- physicalWidth: 1206,
319
- physicalHeight: 2622,
320
- dpr: 3,
321
- aspectRatio: "19.5:9",
322
- cornerRadius: 55,
323
- ppi: 460
324
- }
325
- };
326
- var IPHONE_17_PRO_LAYOUT = {
327
- meta: IPHONE_17_PRO_META,
328
- safeArea: {
329
- portrait: { top: 62, bottom: 34, left: 0, right: 0 },
330
- landscape: { top: 20, bottom: 20, left: 62, right: 62 }
331
- },
332
- hardwareOverlays: {
333
- type: "dynamic-island",
334
- portrait: {
335
- x: 138,
336
- // centered: (402 - 126) / 2 = 138
337
- y: 11,
338
- width: 126,
339
- height: 37,
340
- shape: "pill",
341
- cornerRadius: 18.5
342
- }
343
- },
344
- statusBar: {
345
- height: 54,
346
- style: "dynamic-island",
347
- hasTime: true,
348
- hasBattery: true,
349
- hasSignal: true
350
- },
351
- homeIndicator: {
352
- type: "swipe-bar",
353
- height: 5,
354
- width: 134,
355
- visible: true
356
- },
357
- hardwareButtons: {
358
- volumeUp: { side: "left", yPosition: 200 },
359
- volumeDown: { side: "left", yPosition: 240 },
360
- power: { side: "right", yPosition: 220 },
361
- actionButton: { side: "left", yPosition: 250 },
362
- cameraControl: { side: "right", yPosition: 500 }
363
- }
364
- };
365
- function IPhone17ProSVG({ colorScheme = "dark", style }) {
366
- const frameColor = colorScheme === "dark" ? "#1a1a1a" : "#e8e8e8";
367
- const frameBorder = colorScheme === "dark" ? "#333" : "#ccc";
368
- const buttonColor = colorScheme === "dark" ? "#2a2a2a" : "#d0d0d0";
369
- const islandColor = "#000000";
370
- const bezelSide = 15;
371
- const bezelTop = 23;
372
- const bezelBottom = 23;
373
- const screenW = 402;
374
- const screenH = 874;
375
- const totalW = screenW + bezelSide * 2;
376
- const totalH = screenH + bezelTop + bezelBottom;
377
- const outerRadius = 62;
378
- const screenRadius = 55;
379
- return /* @__PURE__ */ jsxRuntime.jsxs(
380
- "svg",
381
- {
382
- viewBox: `0 0 ${totalW} ${totalH}`,
383
- width: totalW,
384
- height: totalH,
385
- xmlns: "http://www.w3.org/2000/svg",
386
- style,
387
- children: [
388
- /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
389
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: "frame-gradient-iphone-17-pro", x1: "0", y1: "0", x2: "1", y2: "1", children: [
390
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: frameColor }),
391
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#252525" : "#f0f0f0" }),
392
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: frameColor })
393
- ] }),
394
- /* @__PURE__ */ jsxRuntime.jsxs("mask", { id: "frame-screen-mask-iphone-17-pro", children: [
395
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
396
- /* @__PURE__ */ jsxRuntime.jsx(
397
- "rect",
398
- {
399
- x: bezelSide,
400
- y: bezelTop,
401
- width: screenW,
402
- height: screenH,
403
- rx: screenRadius,
404
- ry: screenRadius,
405
- fill: "black"
406
- }
407
- )
408
- ] })
409
- ] }),
410
- /* @__PURE__ */ jsxRuntime.jsx(
411
- "rect",
412
- {
413
- x: "0",
414
- y: "0",
415
- width: totalW,
416
- height: totalH,
417
- rx: outerRadius,
418
- ry: outerRadius,
419
- fill: "url(#frame-gradient-iphone-17-pro)",
420
- stroke: frameBorder,
421
- strokeWidth: "1.5",
422
- mask: "url(#frame-screen-mask-iphone-17-pro)"
423
- }
424
- ),
425
- /* @__PURE__ */ jsxRuntime.jsx(
426
- "rect",
427
- {
428
- "data-zone": "screen-area",
429
- x: bezelSide,
430
- y: bezelTop,
431
- width: screenW,
432
- height: screenH,
433
- rx: screenRadius,
434
- ry: screenRadius,
435
- fill: "none"
436
- }
437
- ),
438
- /* @__PURE__ */ jsxRuntime.jsx(
439
- "rect",
440
- {
441
- "data-zone": "hardware-overlay",
442
- "data-zone-type": "dynamic-island",
443
- "data-zone-shape": "pill",
444
- x: bezelSide + 138,
445
- y: bezelTop + 11,
446
- width: "126",
447
- height: "37",
448
- rx: "18.5",
449
- ry: "18.5",
450
- fill: islandColor
451
- }
452
- ),
453
- /* @__PURE__ */ jsxRuntime.jsx(
454
- "rect",
455
- {
456
- "data-zone": "safe-area-top-inset",
457
- x: bezelSide,
458
- y: bezelTop,
459
- width: screenW,
460
- height: "62",
461
- fill: "transparent"
462
- }
463
- ),
464
- /* @__PURE__ */ jsxRuntime.jsx(
465
- "rect",
466
- {
467
- "data-zone": "safe-area-bottom-inset",
468
- x: bezelSide,
469
- y: bezelTop + screenH - 34,
470
- width: screenW,
471
- height: "34",
472
- fill: "transparent"
473
- }
474
- ),
475
- /* @__PURE__ */ jsxRuntime.jsx(
476
- "rect",
477
- {
478
- "data-zone": "status-bar",
479
- "data-zone-style": "dynamic-island",
480
- x: bezelSide,
481
- y: bezelTop,
482
- width: screenW,
483
- height: "54",
484
- fill: "transparent"
485
- }
486
- ),
487
- /* @__PURE__ */ jsxRuntime.jsx(
488
- "rect",
489
- {
490
- "data-zone": "home-indicator",
491
- "data-zone-type": "swipe-bar",
492
- x: bezelSide + (screenW - 134) / 2,
493
- y: bezelTop + screenH - 13,
494
- width: "134",
495
- height: "5",
496
- rx: "2.5",
497
- ry: "2.5",
498
- fill: "rgba(255,255,255,0.3)"
499
- }
500
- ),
501
- /* @__PURE__ */ jsxRuntime.jsx(
502
- "rect",
503
- {
504
- "data-button": "volume-up",
505
- "data-side": "left",
506
- x: "-1",
507
- y: "200",
508
- width: "3",
509
- height: "32",
510
- rx: "1.5",
511
- fill: buttonColor
512
- }
513
- ),
514
- /* @__PURE__ */ jsxRuntime.jsx(
515
- "rect",
516
- {
517
- "data-button": "volume-down",
518
- "data-side": "left",
519
- x: "-1",
520
- y: "240",
521
- width: "3",
522
- height: "32",
523
- rx: "1.5",
524
- fill: buttonColor
525
- }
526
- ),
527
- /* @__PURE__ */ jsxRuntime.jsx(
528
- "rect",
529
- {
530
- "data-button": "action",
531
- "data-side": "left",
532
- x: "-1",
533
- y: "170",
534
- width: "3",
535
- height: "20",
536
- rx: "1.5",
537
- fill: buttonColor
538
- }
539
- ),
540
- /* @__PURE__ */ jsxRuntime.jsx(
541
- "rect",
542
- {
543
- "data-button": "power",
544
- "data-side": "right",
545
- x: totalW - 2,
546
- y: "220",
547
- width: "3",
548
- height: "40",
549
- rx: "1.5",
550
- fill: buttonColor
551
- }
552
- ),
553
- /* @__PURE__ */ jsxRuntime.jsx(
554
- "circle",
555
- {
556
- "data-button": "camera",
557
- "data-side": "right",
558
- cx: totalW - 0.5,
559
- cy: "500",
560
- r: "6",
561
- fill: buttonColor,
562
- stroke: frameBorder,
563
- strokeWidth: "0.5"
564
- }
565
- ),
566
- /* @__PURE__ */ jsxRuntime.jsx(
567
- "rect",
568
- {
569
- x: (totalW - 24) / 2,
570
- y: totalH - 5,
571
- width: "24",
572
- height: "4",
573
- rx: "2",
574
- fill: colorScheme === "dark" ? "#111" : "#bbb"
575
- }
576
- ),
577
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
578
- "circle",
579
- {
580
- cx: totalW / 2 - 30 + i * 6,
581
- cy: totalH - 8,
582
- r: "1.2",
583
- fill: colorScheme === "dark" ? "#111" : "#aaa"
584
- },
585
- `speaker-l-${i}`
586
- )),
587
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
588
- "circle",
589
- {
590
- cx: totalW / 2 + 8 + i * 6,
591
- cy: totalH - 8,
592
- r: "1.2",
593
- fill: colorScheme === "dark" ? "#111" : "#aaa"
594
- },
595
- `speaker-r-${i}`
596
- ))
597
- ]
598
- }
599
- );
600
- }
601
- var IPHONE_17_PRO_FRAME = {
602
- bezelTop: 23,
603
- bezelBottom: 23,
604
- bezelLeft: 15,
605
- bezelRight: 15,
606
- totalWidth: 432,
607
- totalHeight: 920,
608
- screenWidth: 402,
609
- screenHeight: 874,
610
- screenRadius: 55
611
- };
612
-
613
- // src/ios/iphone-air/metadata.ts
614
- var IPHONE_AIR_META = {
615
- id: "iphone-air",
616
- name: "iPhone Air",
617
- platform: "ios",
618
- year: 2025,
619
- screen: {
620
- width: 420,
621
- height: 912,
622
- physicalWidth: 1260,
623
- physicalHeight: 2736,
624
- dpr: 3,
625
- aspectRatio: "19.5:9",
626
- cornerRadius: 55,
627
- ppi: 460
628
- }
629
- };
630
- var IPHONE_AIR_LAYOUT = {
631
- meta: IPHONE_AIR_META,
632
- safeArea: {
633
- portrait: { top: 68, bottom: 34, left: 0, right: 0 },
634
- landscape: { top: 20, bottom: 29, left: 68, right: 68 }
635
- },
636
- hardwareOverlays: {
637
- type: "dynamic-island",
638
- portrait: {
639
- x: 147,
640
- // centered: (420 - 126) / 2 = 147
641
- y: 11,
642
- width: 126,
643
- height: 37,
644
- shape: "pill",
645
- cornerRadius: 18.5
646
- }
647
- },
648
- statusBar: {
649
- height: 54,
650
- style: "dynamic-island",
651
- hasTime: true,
652
- hasBattery: true,
653
- hasSignal: true
654
- },
655
- homeIndicator: {
656
- type: "swipe-bar",
657
- height: 5,
658
- width: 134,
659
- visible: true
660
- },
661
- hardwareButtons: {
662
- volumeUp: { side: "left", yPosition: 210 },
663
- volumeDown: { side: "left", yPosition: 250 },
664
- power: { side: "right", yPosition: 230 }
665
- }
666
- };
667
- function IPhoneAirSVG({ colorScheme = "dark", style }) {
668
- const frameColor = colorScheme === "dark" ? "#1a1a1a" : "#e8e8e8";
669
- const frameBorder = colorScheme === "dark" ? "#333" : "#ccc";
670
- const buttonColor = colorScheme === "dark" ? "#2a2a2a" : "#d0d0d0";
671
- const islandColor = "#000000";
672
- const bezelSide = 10;
673
- const bezelTop = 20;
674
- const bezelBottom = 20;
675
- const screenW = 420;
676
- const screenH = 912;
677
- const totalW = screenW + bezelSide * 2;
678
- const totalH = screenH + bezelTop + bezelBottom;
679
- const outerRadius = 60;
680
- const screenRadius = 55;
681
- return /* @__PURE__ */ jsxRuntime.jsxs(
682
- "svg",
683
- {
684
- viewBox: `0 0 ${totalW} ${totalH}`,
685
- width: totalW,
686
- height: totalH,
687
- xmlns: "http://www.w3.org/2000/svg",
688
- style,
689
- children: [
690
- /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
691
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: "frame-gradient-iphone-air", x1: "0", y1: "0", x2: "1", y2: "1", children: [
692
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: frameColor }),
693
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#252525" : "#f0f0f0" }),
694
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: frameColor })
695
- ] }),
696
- /* @__PURE__ */ jsxRuntime.jsxs("mask", { id: "frame-screen-mask-iphone-air", children: [
697
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
698
- /* @__PURE__ */ jsxRuntime.jsx(
699
- "rect",
700
- {
701
- x: bezelSide,
702
- y: bezelTop,
703
- width: screenW,
704
- height: screenH,
705
- rx: screenRadius,
706
- ry: screenRadius,
707
- fill: "black"
708
- }
709
- )
710
- ] })
711
- ] }),
712
- /* @__PURE__ */ jsxRuntime.jsx(
713
- "rect",
714
- {
715
- x: "0",
716
- y: "0",
717
- width: totalW,
718
- height: totalH,
719
- rx: outerRadius,
720
- ry: outerRadius,
721
- fill: "url(#frame-gradient-iphone-air)",
722
- stroke: frameBorder,
723
- strokeWidth: "1.5",
724
- mask: "url(#frame-screen-mask-iphone-air)"
725
- }
726
- ),
727
- /* @__PURE__ */ jsxRuntime.jsx(
728
- "rect",
729
- {
730
- "data-zone": "screen-area",
731
- x: bezelSide,
732
- y: bezelTop,
733
- width: screenW,
734
- height: screenH,
735
- rx: screenRadius,
736
- ry: screenRadius,
737
- fill: "none"
738
- }
739
- ),
740
- /* @__PURE__ */ jsxRuntime.jsx(
741
- "rect",
742
- {
743
- "data-zone": "hardware-overlay",
744
- "data-zone-type": "dynamic-island",
745
- "data-zone-shape": "pill",
746
- x: bezelSide + 147,
747
- y: bezelTop + 11,
748
- width: "126",
749
- height: "37",
750
- rx: "18.5",
751
- ry: "18.5",
752
- fill: islandColor
753
- }
754
- ),
755
- /* @__PURE__ */ jsxRuntime.jsx(
756
- "rect",
757
- {
758
- "data-zone": "safe-area-top-inset",
759
- x: bezelSide,
760
- y: bezelTop,
761
- width: screenW,
762
- height: "68",
763
- fill: "transparent"
764
- }
765
- ),
766
- /* @__PURE__ */ jsxRuntime.jsx(
767
- "rect",
768
- {
769
- "data-zone": "safe-area-bottom-inset",
770
- x: bezelSide,
771
- y: bezelTop + screenH - 34,
772
- width: screenW,
773
- height: "34",
774
- fill: "transparent"
775
- }
776
- ),
777
- /* @__PURE__ */ jsxRuntime.jsx(
778
- "rect",
779
- {
780
- "data-zone": "status-bar",
781
- "data-zone-style": "dynamic-island",
782
- x: bezelSide,
783
- y: bezelTop,
784
- width: screenW,
785
- height: "54",
786
- fill: "transparent"
787
- }
788
- ),
789
- /* @__PURE__ */ jsxRuntime.jsx(
790
- "rect",
791
- {
792
- "data-zone": "home-indicator",
793
- "data-zone-type": "swipe-bar",
794
- x: bezelSide + (screenW - 134) / 2,
795
- y: bezelTop + screenH - 13,
796
- width: "134",
797
- height: "5",
798
- rx: "2.5",
799
- ry: "2.5",
800
- fill: "rgba(255,255,255,0.3)"
801
- }
802
- ),
803
- /* @__PURE__ */ jsxRuntime.jsx(
804
- "rect",
805
- {
806
- "data-button": "volume-up",
807
- "data-side": "left",
808
- x: "-1",
809
- y: "200",
810
- width: "3",
811
- height: "32",
812
- rx: "1.5",
813
- fill: buttonColor
814
- }
815
- ),
816
- /* @__PURE__ */ jsxRuntime.jsx(
817
- "rect",
818
- {
819
- "data-button": "volume-down",
820
- "data-side": "left",
821
- x: "-1",
822
- y: "240",
823
- width: "3",
824
- height: "32",
825
- rx: "1.5",
826
- fill: buttonColor
827
- }
828
- ),
829
- /* @__PURE__ */ jsxRuntime.jsx(
830
- "rect",
831
- {
832
- "data-button": "power",
833
- "data-side": "right",
834
- x: totalW - 2,
835
- y: "220",
836
- width: "3",
837
- height: "40",
838
- rx: "1.5",
839
- fill: buttonColor
840
- }
841
- ),
842
- /* @__PURE__ */ jsxRuntime.jsx(
843
- "rect",
844
- {
845
- x: (totalW - 24) / 2,
846
- y: totalH - 5,
847
- width: "24",
848
- height: "4",
849
- rx: "2",
850
- fill: colorScheme === "dark" ? "#111" : "#bbb"
851
- }
852
- ),
853
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
854
- "circle",
855
- {
856
- cx: totalW / 2 - 30 + i * 6,
857
- cy: totalH - 8,
858
- r: "1.2",
859
- fill: colorScheme === "dark" ? "#111" : "#aaa"
860
- },
861
- `speaker-l-${i}`
862
- )),
863
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
864
- "circle",
865
- {
866
- cx: totalW / 2 + 8 + i * 6,
867
- cy: totalH - 8,
868
- r: "1.2",
869
- fill: colorScheme === "dark" ? "#111" : "#aaa"
870
- },
871
- `speaker-r-${i}`
872
- ))
873
- ]
874
- }
875
- );
876
- }
877
- var IPHONE_AIR_FRAME = {
878
- bezelTop: 20,
879
- bezelBottom: 20,
880
- bezelLeft: 10,
881
- bezelRight: 10,
882
- totalWidth: 440,
883
- totalHeight: 952,
884
- screenWidth: 420,
885
- screenHeight: 912,
886
- screenRadius: 55
887
- };
888
-
889
- // src/ios/iphone-16e/metadata.ts
890
- var IPHONE_16E_META = {
891
- id: "iphone-16e",
892
- name: "iPhone 16e",
893
- platform: "ios",
894
- year: 2025,
895
- screen: {
896
- width: 390,
897
- height: 844,
898
- physicalWidth: 1170,
899
- physicalHeight: 2532,
900
- dpr: 3,
901
- aspectRatio: "19.5:9",
902
- cornerRadius: 50,
903
- ppi: 460
904
- }
905
- };
906
- var IPHONE_16E_LAYOUT = {
907
- meta: IPHONE_16E_META,
908
- safeArea: {
909
- portrait: { top: 47, bottom: 34, left: 0, right: 0 },
910
- landscape: { top: 0, bottom: 21, left: 47, right: 47 }
911
- },
912
- hardwareOverlays: {
913
- type: "notch",
914
- portrait: {
915
- x: 90,
916
- // centered: (390 - 210) / 2 = 90
917
- y: 0,
918
- width: 210,
919
- height: 30,
920
- shape: "rectangle",
921
- cornerRadius: 20
922
- }
923
- },
924
- statusBar: {
925
- height: 44,
926
- style: "notch",
927
- hasTime: true,
928
- hasBattery: true,
929
- hasSignal: true
930
- },
931
- homeIndicator: {
932
- type: "swipe-bar",
933
- height: 5,
934
- width: 134,
935
- visible: true
936
- },
937
- hardwareButtons: {
938
- volumeUp: { side: "left", yPosition: 180 },
939
- volumeDown: { side: "left", yPosition: 220 },
940
- power: { side: "right", yPosition: 195 }
941
- }
942
- };
943
- function IPhone16eSVG({ colorScheme = "dark", style }) {
944
- const frameColor = colorScheme === "dark" ? "#1a1a1a" : "#e8e8e8";
945
- const frameBorder = colorScheme === "dark" ? "#333" : "#ccc";
946
- const buttonColor = colorScheme === "dark" ? "#2a2a2a" : "#d0d0d0";
947
- const notchColor = "#000000";
948
- const bezelSide = 12;
949
- const bezelTop = 20;
950
- const bezelBottom = 20;
951
- const screenW = 390;
952
- const screenH = 844;
953
- const totalW = screenW + bezelSide * 2;
954
- const totalH = screenH + bezelTop + bezelBottom;
955
- const outerRadius = 56;
956
- const screenRadius = 50;
957
- const notchWidth = 210;
958
- const notchHeight = 30;
959
- const notchX = (screenW - notchWidth) / 2;
960
- const notchRadius = 20;
961
- return /* @__PURE__ */ jsxRuntime.jsxs(
962
- "svg",
963
- {
964
- viewBox: `0 0 ${totalW} ${totalH}`,
965
- width: totalW,
966
- height: totalH,
967
- xmlns: "http://www.w3.org/2000/svg",
968
- style,
969
- children: [
970
- /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
971
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: "frame-gradient-iphone-16e", x1: "0", y1: "0", x2: "1", y2: "1", children: [
972
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: frameColor }),
973
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#252525" : "#f0f0f0" }),
974
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: frameColor })
975
- ] }),
976
- /* @__PURE__ */ jsxRuntime.jsxs("mask", { id: "frame-screen-mask-iphone-16e", children: [
977
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
978
- /* @__PURE__ */ jsxRuntime.jsx(
979
- "rect",
980
- {
981
- x: bezelSide,
982
- y: bezelTop,
983
- width: screenW,
984
- height: screenH,
985
- rx: screenRadius,
986
- ry: screenRadius,
987
- fill: "black"
988
- }
989
- )
990
- ] })
991
- ] }),
992
- /* @__PURE__ */ jsxRuntime.jsx(
993
- "rect",
994
- {
995
- x: "0",
996
- y: "0",
997
- width: totalW,
998
- height: totalH,
999
- rx: outerRadius,
1000
- ry: outerRadius,
1001
- fill: "url(#frame-gradient-iphone-16e)",
1002
- stroke: frameBorder,
1003
- strokeWidth: "1.5",
1004
- mask: "url(#frame-screen-mask-iphone-16e)"
1005
- }
1006
- ),
1007
- /* @__PURE__ */ jsxRuntime.jsx(
1008
- "rect",
1009
- {
1010
- "data-zone": "screen-area",
1011
- x: bezelSide,
1012
- y: bezelTop,
1013
- width: screenW,
1014
- height: screenH,
1015
- rx: screenRadius,
1016
- ry: screenRadius,
1017
- fill: "none"
1018
- }
1019
- ),
1020
- /* @__PURE__ */ jsxRuntime.jsx(
1021
- "rect",
1022
- {
1023
- "data-zone": "hardware-overlay",
1024
- "data-zone-type": "notch",
1025
- "data-zone-shape": "rectangle",
1026
- x: bezelSide + notchX,
1027
- y: bezelTop,
1028
- width: notchWidth,
1029
- height: notchHeight,
1030
- rx: notchRadius,
1031
- ry: notchRadius,
1032
- fill: notchColor
1033
- }
1034
- ),
1035
- /* @__PURE__ */ jsxRuntime.jsx(
1036
- "rect",
1037
- {
1038
- "data-zone": "safe-area-top-inset",
1039
- x: bezelSide,
1040
- y: bezelTop,
1041
- width: screenW,
1042
- height: "47",
1043
- fill: "transparent"
1044
- }
1045
- ),
1046
- /* @__PURE__ */ jsxRuntime.jsx(
1047
- "rect",
1048
- {
1049
- "data-zone": "safe-area-bottom-inset",
1050
- x: bezelSide,
1051
- y: bezelTop + screenH - 34,
1052
- width: screenW,
1053
- height: "34",
1054
- fill: "transparent"
1055
- }
1056
- ),
1057
- /* @__PURE__ */ jsxRuntime.jsx(
1058
- "rect",
1059
- {
1060
- "data-zone": "status-bar",
1061
- "data-zone-style": "notch",
1062
- x: bezelSide,
1063
- y: bezelTop,
1064
- width: screenW,
1065
- height: "44",
1066
- fill: "transparent"
1067
- }
1068
- ),
1069
- /* @__PURE__ */ jsxRuntime.jsx(
1070
- "rect",
1071
- {
1072
- "data-zone": "home-indicator",
1073
- "data-zone-type": "swipe-bar",
1074
- x: bezelSide + (screenW - 134) / 2,
1075
- y: bezelTop + screenH - 13,
1076
- width: "134",
1077
- height: "5",
1078
- rx: "2.5",
1079
- ry: "2.5",
1080
- fill: "rgba(255,255,255,0.3)"
1081
- }
1082
- ),
1083
- /* @__PURE__ */ jsxRuntime.jsx(
1084
- "rect",
1085
- {
1086
- "data-button": "volume-up",
1087
- "data-side": "left",
1088
- x: "-1",
1089
- y: "190",
1090
- width: "3",
1091
- height: "32",
1092
- rx: "1.5",
1093
- fill: buttonColor
1094
- }
1095
- ),
1096
- /* @__PURE__ */ jsxRuntime.jsx(
1097
- "rect",
1098
- {
1099
- "data-button": "volume-down",
1100
- "data-side": "left",
1101
- x: "-1",
1102
- y: "230",
1103
- width: "3",
1104
- height: "32",
1105
- rx: "1.5",
1106
- fill: buttonColor
1107
- }
1108
- ),
1109
- /* @__PURE__ */ jsxRuntime.jsx(
1110
- "rect",
1111
- {
1112
- "data-button": "power",
1113
- "data-side": "right",
1114
- x: totalW - 2,
1115
- y: "210",
1116
- width: "3",
1117
- height: "40",
1118
- rx: "1.5",
1119
- fill: buttonColor
1120
- }
1121
- ),
1122
- /* @__PURE__ */ jsxRuntime.jsx(
1123
- "rect",
1124
- {
1125
- x: (totalW - 24) / 2,
1126
- y: totalH - 5,
1127
- width: "24",
1128
- height: "4",
1129
- rx: "2",
1130
- fill: colorScheme === "dark" ? "#111" : "#bbb"
1131
- }
1132
- ),
1133
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1134
- "circle",
1135
- {
1136
- cx: totalW / 2 - 30 + i * 6,
1137
- cy: totalH - 8,
1138
- r: "1.2",
1139
- fill: colorScheme === "dark" ? "#111" : "#aaa"
1140
- },
1141
- `speaker-l-${i}`
1142
- )),
1143
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1144
- "circle",
1145
- {
1146
- cx: totalW / 2 + 8 + i * 6,
1147
- cy: totalH - 8,
1148
- r: "1.2",
1149
- fill: colorScheme === "dark" ? "#111" : "#aaa"
1150
- },
1151
- `speaker-r-${i}`
1152
- ))
1153
- ]
1154
- }
1155
- );
1156
- }
1157
- var IPHONE_16E_FRAME = {
1158
- bezelTop: 20,
1159
- bezelBottom: 20,
1160
- bezelLeft: 12,
1161
- bezelRight: 12,
1162
- totalWidth: 414,
1163
- totalHeight: 884,
1164
- screenWidth: 390,
1165
- screenHeight: 844,
1166
- screenRadius: 50
1167
- };
1168
-
1169
- // src/ios/iphone-16/metadata.ts
1170
- var IPHONE_16_META = {
1171
- id: "iphone-16",
1172
- name: "iPhone 16",
1173
- platform: "ios",
1174
- year: 2024,
1175
- screen: {
1176
- width: 393,
1177
- height: 852,
1178
- physicalWidth: 1179,
1179
- physicalHeight: 2556,
1180
- dpr: 3,
1181
- aspectRatio: "19.5:9",
1182
- cornerRadius: 55,
1183
- ppi: 460
1184
- }
1185
- };
1186
- var IPHONE_16_LAYOUT = {
1187
- meta: IPHONE_16_META,
1188
- safeArea: {
1189
- portrait: { top: 59, bottom: 34, left: 0, right: 0 },
1190
- landscape: { top: 0, bottom: 21, left: 59, right: 59 }
1191
- },
1192
- hardwareOverlays: {
1193
- type: "dynamic-island",
1194
- portrait: {
1195
- x: 133.5,
1196
- // centered: (393 - 126) / 2 = 133.5
1197
- y: 11,
1198
- width: 126,
1199
- height: 37,
1200
- shape: "pill",
1201
- cornerRadius: 18.5
1202
- }
1203
- },
1204
- statusBar: {
1205
- height: 54,
1206
- style: "dynamic-island",
1207
- hasTime: true,
1208
- hasBattery: true,
1209
- hasSignal: true
1210
- },
1211
- homeIndicator: {
1212
- type: "swipe-bar",
1213
- height: 5,
1214
- width: 134,
1215
- visible: true
1216
- },
1217
- hardwareButtons: {
1218
- volumeUp: { side: "left", yPosition: 195 },
1219
- volumeDown: { side: "left", yPosition: 235 },
1220
- power: { side: "right", yPosition: 215 },
1221
- cameraControl: { side: "right", yPosition: 480 }
1222
- }
1223
- };
1224
- function IPhone16SVG({ colorScheme = "dark", style }) {
1225
- const frameColor = colorScheme === "dark" ? "#1a1a1a" : "#e8e8e8";
1226
- const frameBorder = colorScheme === "dark" ? "#333" : "#ccc";
1227
- const buttonColor = colorScheme === "dark" ? "#2a2a2a" : "#d0d0d0";
1228
- const islandColor = "#000000";
1229
- const bezelSide = 15;
1230
- const bezelTop = 23;
1231
- const bezelBottom = 23;
1232
- const screenW = 393;
1233
- const screenH = 852;
1234
- const totalW = screenW + bezelSide * 2;
1235
- const totalH = screenH + bezelTop + bezelBottom;
1236
- const outerRadius = 55;
1237
- const screenRadius = 48;
1238
- return /* @__PURE__ */ jsxRuntime.jsxs(
1239
- "svg",
1240
- {
1241
- viewBox: `0 0 ${totalW} ${totalH}`,
1242
- width: totalW,
1243
- height: totalH,
1244
- xmlns: "http://www.w3.org/2000/svg",
1245
- style,
1246
- children: [
1247
- /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
1248
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: "frame-gradient-iphone-16", x1: "0", y1: "0", x2: "1", y2: "1", children: [
1249
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: frameColor }),
1250
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#252525" : "#f0f0f0" }),
1251
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: frameColor })
1252
- ] }),
1253
- /* @__PURE__ */ jsxRuntime.jsxs("mask", { id: "frame-screen-mask-iphone-16", children: [
1254
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
1255
- /* @__PURE__ */ jsxRuntime.jsx(
1256
- "rect",
1257
- {
1258
- x: bezelSide,
1259
- y: bezelTop,
1260
- width: screenW,
1261
- height: screenH,
1262
- rx: screenRadius,
1263
- ry: screenRadius,
1264
- fill: "black"
1265
- }
1266
- )
1267
- ] })
1268
- ] }),
1269
- /* @__PURE__ */ jsxRuntime.jsx(
1270
- "rect",
1271
- {
1272
- x: "0",
1273
- y: "0",
1274
- width: totalW,
1275
- height: totalH,
1276
- rx: outerRadius,
1277
- ry: outerRadius,
1278
- fill: "url(#frame-gradient-iphone-16)",
1279
- stroke: frameBorder,
1280
- strokeWidth: "1.5",
1281
- mask: "url(#frame-screen-mask-iphone-16)"
1282
- }
1283
- ),
1284
- /* @__PURE__ */ jsxRuntime.jsx(
1285
- "rect",
1286
- {
1287
- "data-zone": "screen-area",
1288
- x: bezelSide,
1289
- y: bezelTop,
1290
- width: screenW,
1291
- height: screenH,
1292
- rx: screenRadius,
1293
- ry: screenRadius,
1294
- fill: "none"
1295
- }
1296
- ),
1297
- /* @__PURE__ */ jsxRuntime.jsx(
1298
- "rect",
1299
- {
1300
- "data-zone": "hardware-overlay",
1301
- "data-zone-type": "dynamic-island",
1302
- "data-zone-shape": "pill",
1303
- x: bezelSide + (screenW - 126) / 2,
1304
- y: bezelTop + 11,
1305
- width: "126",
1306
- height: "37",
1307
- rx: "18.5",
1308
- ry: "18.5",
1309
- fill: islandColor
1310
- }
1311
- ),
1312
- /* @__PURE__ */ jsxRuntime.jsx(
1313
- "rect",
1314
- {
1315
- "data-zone": "safe-area-top-inset",
1316
- x: bezelSide,
1317
- y: bezelTop,
1318
- width: screenW,
1319
- height: "62",
1320
- fill: "transparent"
1321
- }
1322
- ),
1323
- /* @__PURE__ */ jsxRuntime.jsx(
1324
- "rect",
1325
- {
1326
- "data-zone": "safe-area-bottom-inset",
1327
- x: bezelSide,
1328
- y: bezelTop + screenH - 34,
1329
- width: screenW,
1330
- height: "34",
1331
- fill: "transparent"
1332
- }
1333
- ),
1334
- /* @__PURE__ */ jsxRuntime.jsx(
1335
- "rect",
1336
- {
1337
- "data-zone": "status-bar",
1338
- "data-zone-style": "dynamic-island",
1339
- x: bezelSide,
1340
- y: bezelTop,
1341
- width: screenW,
1342
- height: "54",
1343
- fill: "transparent"
1344
- }
1345
- ),
1346
- /* @__PURE__ */ jsxRuntime.jsx(
1347
- "rect",
1348
- {
1349
- "data-zone": "home-indicator",
1350
- "data-zone-type": "swipe-bar",
1351
- x: bezelSide + (screenW - 134) / 2,
1352
- y: bezelTop + screenH - 13,
1353
- width: "134",
1354
- height: "5",
1355
- rx: "2.5",
1356
- ry: "2.5",
1357
- fill: "rgba(255,255,255,0.3)"
1358
- }
1359
- ),
1360
- /* @__PURE__ */ jsxRuntime.jsx(
1361
- "rect",
1362
- {
1363
- "data-button": "volume-up",
1364
- "data-side": "left",
1365
- x: "-1",
1366
- y: "200",
1367
- width: "3",
1368
- height: "32",
1369
- rx: "1.5",
1370
- fill: buttonColor
1371
- }
1372
- ),
1373
- /* @__PURE__ */ jsxRuntime.jsx(
1374
- "rect",
1375
- {
1376
- "data-button": "volume-down",
1377
- "data-side": "left",
1378
- x: "-1",
1379
- y: "240",
1380
- width: "3",
1381
- height: "32",
1382
- rx: "1.5",
1383
- fill: buttonColor
1384
- }
1385
- ),
1386
- /* @__PURE__ */ jsxRuntime.jsx(
1387
- "rect",
1388
- {
1389
- "data-button": "power",
1390
- "data-side": "right",
1391
- x: totalW - 2,
1392
- y: "220",
1393
- width: "3",
1394
- height: "40",
1395
- rx: "1.5",
1396
- fill: buttonColor
1397
- }
1398
- ),
1399
- /* @__PURE__ */ jsxRuntime.jsx(
1400
- "circle",
1401
- {
1402
- "data-button": "camera",
1403
- "data-side": "right",
1404
- cx: totalW - 0.5,
1405
- cy: "500",
1406
- r: "6",
1407
- fill: buttonColor,
1408
- stroke: frameBorder,
1409
- strokeWidth: "0.5"
1410
- }
1411
- ),
1412
- /* @__PURE__ */ jsxRuntime.jsx(
1413
- "rect",
1414
- {
1415
- x: (totalW - 24) / 2,
1416
- y: totalH - 5,
1417
- width: "24",
1418
- height: "4",
1419
- rx: "2",
1420
- fill: colorScheme === "dark" ? "#111" : "#bbb"
1421
- }
1422
- ),
1423
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1424
- "circle",
1425
- {
1426
- cx: totalW / 2 - 30 + i * 6,
1427
- cy: totalH - 8,
1428
- r: "1.2",
1429
- fill: colorScheme === "dark" ? "#111" : "#aaa"
1430
- },
1431
- `speaker-l-${i}`
1432
- )),
1433
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1434
- "circle",
1435
- {
1436
- cx: totalW / 2 + 8 + i * 6,
1437
- cy: totalH - 8,
1438
- r: "1.2",
1439
- fill: colorScheme === "dark" ? "#111" : "#aaa"
1440
- },
1441
- `speaker-r-${i}`
1442
- ))
1443
- ]
1444
- }
1445
- );
1446
- }
1447
- var IPHONE_16_FRAME = {
1448
- bezelTop: 23,
1449
- bezelBottom: 23,
1450
- bezelLeft: 15,
1451
- bezelRight: 15,
1452
- totalWidth: 423,
1453
- totalHeight: 898,
1454
- screenWidth: 393,
1455
- screenHeight: 852,
1456
- screenRadius: 48
1457
- };
1458
-
1459
- // src/ios/iphone-se-3/metadata.ts
1460
- var IPHONE_SE_3_META = {
1461
- id: "iphone-se-3",
1462
- name: "iPhone SE (3rd Gen)",
1463
- platform: "ios",
1464
- year: 2022,
1465
- screen: {
1466
- width: 375,
1467
- height: 667,
1468
- physicalWidth: 750,
1469
- physicalHeight: 1334,
1470
- dpr: 2,
1471
- aspectRatio: "16:9",
1472
- cornerRadius: 5,
1473
- ppi: 326
1474
- }
1475
- };
1476
- var IPHONE_SE_3_LAYOUT = {
1477
- meta: IPHONE_SE_3_META,
1478
- safeArea: {
1479
- portrait: { top: 20, bottom: 0, left: 0, right: 0 },
1480
- landscape: { top: 0, bottom: 0, left: 0, right: 0 }
1481
- },
1482
- hardwareOverlays: {
1483
- type: "none",
1484
- portrait: {
1485
- x: 0,
1486
- y: 0,
1487
- width: 0,
1488
- height: 0,
1489
- shape: "rectangle"
1490
- }
1491
- },
1492
- statusBar: {
1493
- height: 20,
1494
- style: "fullwidth",
1495
- hasTime: true,
1496
- hasBattery: true,
1497
- hasSignal: true
1498
- },
1499
- homeIndicator: {
1500
- type: "button",
1501
- height: 0,
1502
- visible: false
1503
- },
1504
- hardwareButtons: {
1505
- volumeUp: { side: "left", yPosition: 135 },
1506
- volumeDown: { side: "left", yPosition: 165 },
1507
- power: { side: "right", yPosition: 90 }
1508
- }
1509
- };
1510
- function IPhoneSE3SVG({ colorScheme = "dark", style }) {
1511
- const frameColor = colorScheme === "dark" ? "#1a1a1a" : "#e8e8e8";
1512
- const frameBorder = colorScheme === "dark" ? "#333" : "#ccc";
1513
- const buttonColor = colorScheme === "dark" ? "#2a2a2a" : "#d0d0d0";
1514
- const bezelSide = 10;
1515
- const bezelTop = 70;
1516
- const bezelBottom = 70;
1517
- const screenW = 375;
1518
- const screenH = 667;
1519
- const totalW = screenW + bezelSide * 2;
1520
- const totalH = screenH + bezelTop + bezelBottom;
1521
- const outerRadius = 36;
1522
- const screenRadius = 5;
1523
- const homeButtonDiameter = 58;
1524
- const homeButtonRadius = homeButtonDiameter / 2;
1525
- const homeButtonCX = totalW / 2;
1526
- const homeButtonCY = bezelTop + screenH + bezelBottom / 2;
1527
- return /* @__PURE__ */ jsxRuntime.jsxs(
1528
- "svg",
1529
- {
1530
- viewBox: `0 0 ${totalW} ${totalH}`,
1531
- width: totalW,
1532
- height: totalH,
1533
- xmlns: "http://www.w3.org/2000/svg",
1534
- style,
1535
- children: [
1536
- /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
1537
- /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: "frame-gradient-iphone-se-3", x1: "0", y1: "0", x2: "1", y2: "1", children: [
1538
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: frameColor }),
1539
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#252525" : "#f0f0f0" }),
1540
- /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: frameColor })
1541
- ] }),
1542
- /* @__PURE__ */ jsxRuntime.jsxs("mask", { id: "frame-screen-mask-iphone-se-3", children: [
1543
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
1544
- /* @__PURE__ */ jsxRuntime.jsx(
1545
- "rect",
1546
- {
1547
- x: bezelSide,
1548
- y: bezelTop,
1549
- width: screenW,
1550
- height: screenH,
1551
- rx: screenRadius,
1552
- ry: screenRadius,
1553
- fill: "black"
1554
- }
1555
- )
1556
- ] })
1557
- ] }),
1558
- /* @__PURE__ */ jsxRuntime.jsx(
1559
- "rect",
1560
- {
1561
- x: "0",
1562
- y: "0",
1563
- width: totalW,
1564
- height: totalH,
1565
- rx: outerRadius,
1566
- ry: outerRadius,
1567
- fill: "url(#frame-gradient-iphone-se-3)",
1568
- stroke: frameBorder,
1569
- strokeWidth: "1.5",
1570
- mask: "url(#frame-screen-mask-iphone-se-3)"
1571
- }
1572
- ),
1573
- /* @__PURE__ */ jsxRuntime.jsx(
1574
- "rect",
1575
- {
1576
- "data-zone": "screen-area",
1577
- x: bezelSide,
1578
- y: bezelTop,
1579
- width: screenW,
1580
- height: screenH,
1581
- rx: screenRadius,
1582
- ry: screenRadius,
1583
- fill: "none"
1584
- }
1585
- ),
1586
- /* @__PURE__ */ jsxRuntime.jsx(
1587
- "rect",
1588
- {
1589
- x: (totalW - 40) / 2,
1590
- y: 28,
1591
- width: "40",
1592
- height: "5",
1593
- rx: "2.5",
1594
- fill: colorScheme === "dark" ? "#111" : "#bbb"
1595
- }
1596
- ),
1597
- /* @__PURE__ */ jsxRuntime.jsx(
1598
- "circle",
1599
- {
1600
- cx: totalW / 2 + 32,
1601
- cy: 30,
1602
- r: "4",
1603
- fill: colorScheme === "dark" ? "#0a0a0a" : "#999"
1604
- }
1605
- ),
1606
- /* @__PURE__ */ jsxRuntime.jsx(
1607
- "circle",
1608
- {
1609
- cx: homeButtonCX,
1610
- cy: homeButtonCY,
1611
- r: homeButtonRadius,
1612
- fill: "none",
1613
- stroke: colorScheme === "dark" ? "#444" : "#bbb",
1614
- strokeWidth: "2"
1615
- }
1616
- ),
1617
- /* @__PURE__ */ jsxRuntime.jsx(
1618
- "circle",
1619
- {
1620
- cx: homeButtonCX,
1621
- cy: homeButtonCY,
1622
- r: homeButtonRadius - 3,
1623
- fill: colorScheme === "dark" ? "#0f0f0f" : "#ddd"
1624
- }
1625
- ),
1626
- /* @__PURE__ */ jsxRuntime.jsx(
1627
- "rect",
1628
- {
1629
- x: homeButtonCX - 8,
1630
- y: homeButtonCY - 8,
1631
- width: "16",
1632
- height: "16",
1633
- rx: "4",
1634
- ry: "4",
1635
- fill: "none",
1636
- stroke: colorScheme === "dark" ? "#333" : "#ccc",
1637
- strokeWidth: "1"
1638
- }
1639
- ),
1640
- /* @__PURE__ */ jsxRuntime.jsx(
1641
- "rect",
1642
- {
1643
- "data-zone": "safe-area-top-inset",
1644
- x: bezelSide,
1645
- y: bezelTop,
1646
- width: screenW,
1647
- height: "20",
1648
- fill: "transparent"
1649
- }
1650
- ),
1651
- /* @__PURE__ */ jsxRuntime.jsx(
1652
- "rect",
1653
- {
1654
- "data-zone": "status-bar",
1655
- "data-zone-style": "fullwidth",
1656
- x: bezelSide,
1657
- y: bezelTop,
1658
- width: screenW,
1659
- height: "20",
1660
- fill: "transparent"
1661
- }
1662
- ),
1663
- /* @__PURE__ */ jsxRuntime.jsx(
1664
- "rect",
1665
- {
1666
- "data-button": "volume-up",
1667
- "data-side": "left",
1668
- x: "-1",
1669
- y: "160",
1670
- width: "3",
1671
- height: "32",
1672
- rx: "1.5",
1673
- fill: buttonColor
1674
- }
1675
- ),
1676
- /* @__PURE__ */ jsxRuntime.jsx(
1677
- "rect",
1678
- {
1679
- "data-button": "volume-down",
1680
- "data-side": "left",
1681
- x: "-1",
1682
- y: "200",
1683
- width: "3",
1684
- height: "32",
1685
- rx: "1.5",
1686
- fill: buttonColor
1687
- }
1688
- ),
1689
- /* @__PURE__ */ jsxRuntime.jsx(
1690
- "rect",
1691
- {
1692
- "data-button": "power",
1693
- "data-side": "right",
1694
- x: totalW - 2,
1695
- y: "140",
1696
- width: "3",
1697
- height: "40",
1698
- rx: "1.5",
1699
- fill: buttonColor
1700
- }
1701
- ),
1702
- /* @__PURE__ */ jsxRuntime.jsx(
1703
- "rect",
1704
- {
1705
- x: (totalW - 20) / 2,
1706
- y: totalH - 5,
1707
- width: "20",
1708
- height: "4",
1709
- rx: "2",
1710
- fill: colorScheme === "dark" ? "#111" : "#bbb"
1711
- }
1712
- ),
1713
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1714
- "circle",
1715
- {
1716
- cx: totalW / 2 - 28 + i * 6,
1717
- cy: totalH - 8,
1718
- r: "1.2",
1719
- fill: colorScheme === "dark" ? "#111" : "#aaa"
1720
- },
1721
- `speaker-l-${i}`
1722
- )),
1723
- [0, 1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1724
- "circle",
1725
- {
1726
- cx: totalW / 2 + 6 + i * 6,
1727
- cy: totalH - 8,
1728
- r: "1.2",
1729
- fill: colorScheme === "dark" ? "#111" : "#aaa"
1730
- },
1731
- `speaker-r-${i}`
1732
- ))
1733
- ]
1734
- }
1735
- );
1736
- }
1737
- var IPHONE_SE_3_FRAME = {
1738
- bezelTop: 70,
1739
- bezelBottom: 70,
1740
- bezelLeft: 10,
1741
- bezelRight: 10,
1742
- totalWidth: 395,
1743
- totalHeight: 807,
1744
- screenWidth: 375,
1745
- screenHeight: 667,
1746
- screenRadius: 5
1747
- };
1748
-
1749
- exports.IPHONE_16E_FRAME = IPHONE_16E_FRAME;
1750
- exports.IPHONE_16E_LAYOUT = IPHONE_16E_LAYOUT;
1751
- exports.IPHONE_16E_META = IPHONE_16E_META;
1752
- exports.IPHONE_16_FRAME = IPHONE_16_FRAME;
1753
- exports.IPHONE_16_LAYOUT = IPHONE_16_LAYOUT;
1754
- exports.IPHONE_16_META = IPHONE_16_META;
1755
- exports.IPHONE_17_PRO_FRAME = IPHONE_17_PRO_FRAME;
1756
- exports.IPHONE_17_PRO_LAYOUT = IPHONE_17_PRO_LAYOUT;
1757
- exports.IPHONE_17_PRO_MAX_FRAME = IPHONE_17_PRO_MAX_FRAME;
1758
- exports.IPHONE_17_PRO_MAX_LAYOUT = IPHONE_17_PRO_MAX_LAYOUT;
1759
- exports.IPHONE_17_PRO_MAX_META = IPHONE_17_PRO_MAX_META;
1760
- exports.IPHONE_17_PRO_META = IPHONE_17_PRO_META;
1761
- exports.IPHONE_AIR_FRAME = IPHONE_AIR_FRAME;
1762
- exports.IPHONE_AIR_LAYOUT = IPHONE_AIR_LAYOUT;
1763
- exports.IPHONE_AIR_META = IPHONE_AIR_META;
1764
- exports.IPHONE_SE_3_FRAME = IPHONE_SE_3_FRAME;
1765
- exports.IPHONE_SE_3_LAYOUT = IPHONE_SE_3_LAYOUT;
1766
- exports.IPHONE_SE_3_META = IPHONE_SE_3_META;
1767
- exports.IPhone16SVG = IPhone16SVG;
1768
- exports.IPhone16eSVG = IPhone16eSVG;
1769
- exports.IPhone17ProMaxSVG = IPhone17ProMaxSVG;
1770
- exports.IPhone17ProSVG = IPhone17ProSVG;
1771
- exports.IPhoneAirSVG = IPhoneAirSVG;
1772
- exports.IPhoneSE3SVG = IPhoneSE3SVG;
1773
- //# sourceMappingURL=chunk-OI46UKOY.cjs.map
1774
- //# sourceMappingURL=chunk-OI46UKOY.cjs.map