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