@biela.dev/devices 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1281 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
-
3
- // src/android/galaxy-s25/metadata.ts
4
- var GALAXY_S25_META = {
5
- id: "galaxy-s25",
6
- name: "Galaxy S25",
7
- platform: "android",
8
- year: 2025,
9
- screen: {
10
- width: 360,
11
- height: 780,
12
- physicalWidth: 1080,
13
- physicalHeight: 2340,
14
- dpr: 3,
15
- aspectRatio: "19.5:9",
16
- cornerRadius: 42,
17
- ppi: 425
18
- }
19
- };
20
- var GALAXY_S25_LAYOUT = {
21
- meta: GALAXY_S25_META,
22
- safeArea: {
23
- portrait: { top: 32, bottom: 24, left: 0, right: 0 },
24
- landscape: { top: 0, bottom: 24, left: 32, right: 32 }
25
- },
26
- hardwareOverlays: {
27
- type: "punch-hole",
28
- portrait: {
29
- x: 176,
30
- // centered: (360 - 9) / 2 ~ 176
31
- y: 12,
32
- width: 9,
33
- height: 9,
34
- shape: "circle",
35
- cornerRadius: 4.5
36
- }
37
- },
38
- statusBar: {
39
- height: 32,
40
- style: "fullwidth",
41
- hasTime: true,
42
- hasBattery: true,
43
- hasSignal: true
44
- },
45
- homeIndicator: {
46
- type: "gestureline",
47
- height: 5,
48
- width: 90,
49
- visible: true
50
- },
51
- hardwareButtons: {
52
- volumeUp: { side: "right", yPosition: 180 },
53
- volumeDown: { side: "right", yPosition: 214 },
54
- power: { side: "right", yPosition: 260 }
55
- }
56
- };
57
- function GalaxyS25SVG({ colorScheme = "dark", style }) {
58
- const frameColor = colorScheme === "dark" ? "#1c1c1e" : "#e5e5e7";
59
- const frameBorder = colorScheme === "dark" ? "#3a3a3c" : "#c7c7cc";
60
- const buttonColor = colorScheme === "dark" ? "#2c2c2e" : "#d1d1d6";
61
- const punchHoleColor = "#000000";
62
- const bezelSide = 12;
63
- const bezelTop = 18;
64
- const bezelBottom = 18;
65
- const screenW = 360;
66
- const screenH = 780;
67
- const totalW = screenW + bezelSide * 2;
68
- const totalH = screenH + bezelTop + bezelBottom;
69
- const cornerRadius = 42;
70
- const outerRadius = cornerRadius + 8;
71
- const screenRadius = cornerRadius;
72
- return /* @__PURE__ */ jsxs(
73
- "svg",
74
- {
75
- viewBox: `0 0 ${totalW} ${totalH}`,
76
- width: totalW,
77
- height: totalH,
78
- xmlns: "http://www.w3.org/2000/svg",
79
- style,
80
- children: [
81
- /* @__PURE__ */ jsxs("defs", { children: [
82
- /* @__PURE__ */ jsxs("linearGradient", { id: "frame-gradient-galaxy-s25", x1: "0", y1: "0", x2: "1", y2: "1", children: [
83
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: frameColor }),
84
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#262628" : "#ededef" }),
85
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: frameColor })
86
- ] }),
87
- /* @__PURE__ */ jsxs("mask", { id: "frame-screen-mask-galaxy-s25", children: [
88
- /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
89
- /* @__PURE__ */ jsx(
90
- "rect",
91
- {
92
- x: bezelSide,
93
- y: bezelTop,
94
- width: screenW,
95
- height: screenH,
96
- rx: screenRadius,
97
- ry: screenRadius,
98
- fill: "black"
99
- }
100
- )
101
- ] })
102
- ] }),
103
- /* @__PURE__ */ jsx(
104
- "rect",
105
- {
106
- x: "0",
107
- y: "0",
108
- width: totalW,
109
- height: totalH,
110
- rx: outerRadius,
111
- ry: outerRadius,
112
- fill: "url(#frame-gradient-galaxy-s25)",
113
- stroke: frameBorder,
114
- strokeWidth: "1.5",
115
- mask: "url(#frame-screen-mask-galaxy-s25)"
116
- }
117
- ),
118
- /* @__PURE__ */ jsx(
119
- "rect",
120
- {
121
- "data-zone": "screen-area",
122
- x: bezelSide,
123
- y: bezelTop,
124
- width: screenW,
125
- height: screenH,
126
- rx: screenRadius,
127
- ry: screenRadius,
128
- fill: "none"
129
- }
130
- ),
131
- /* @__PURE__ */ jsx(
132
- "circle",
133
- {
134
- "data-zone": "hardware-overlay",
135
- "data-zone-type": "punch-hole-camera",
136
- cx: bezelSide + screenW / 2,
137
- cy: bezelTop + 16.5,
138
- r: "4.5",
139
- fill: punchHoleColor
140
- }
141
- ),
142
- /* @__PURE__ */ jsx(
143
- "rect",
144
- {
145
- "data-zone": "safe-area-top-inset",
146
- x: bezelSide,
147
- y: bezelTop,
148
- width: screenW,
149
- height: "32",
150
- fill: "transparent"
151
- }
152
- ),
153
- /* @__PURE__ */ jsx(
154
- "rect",
155
- {
156
- "data-zone": "safe-area-bottom-inset",
157
- x: bezelSide,
158
- y: bezelTop + screenH - 24,
159
- width: screenW,
160
- height: "24",
161
- fill: "transparent"
162
- }
163
- ),
164
- /* @__PURE__ */ jsx(
165
- "rect",
166
- {
167
- "data-zone": "status-bar",
168
- "data-zone-style": "punch-hole",
169
- x: bezelSide,
170
- y: bezelTop,
171
- width: screenW,
172
- height: "32",
173
- fill: "transparent"
174
- }
175
- ),
176
- /* @__PURE__ */ jsx(
177
- "rect",
178
- {
179
- "data-zone": "home-indicator",
180
- "data-zone-type": "gesture-bar",
181
- x: bezelSide + (screenW - 90) / 2,
182
- y: bezelTop + screenH - 10,
183
- width: "90",
184
- height: "3",
185
- rx: "1.5",
186
- ry: "1.5",
187
- fill: "rgba(255,255,255,0.25)"
188
- }
189
- ),
190
- /* @__PURE__ */ jsx(
191
- "rect",
192
- {
193
- "data-button": "volume-up",
194
- "data-side": "right",
195
- x: totalW - 2,
196
- y: "180",
197
- width: "3",
198
- height: "28",
199
- rx: "1.5",
200
- fill: buttonColor
201
- }
202
- ),
203
- /* @__PURE__ */ jsx(
204
- "rect",
205
- {
206
- "data-button": "volume-down",
207
- "data-side": "right",
208
- x: totalW - 2,
209
- y: "216",
210
- width: "3",
211
- height: "28",
212
- rx: "1.5",
213
- fill: buttonColor
214
- }
215
- ),
216
- /* @__PURE__ */ jsx(
217
- "rect",
218
- {
219
- "data-button": "power",
220
- "data-side": "right",
221
- x: totalW - 2,
222
- y: "266",
223
- width: "3",
224
- height: "36",
225
- rx: "1.5",
226
- fill: buttonColor
227
- }
228
- ),
229
- /* @__PURE__ */ jsx(
230
- "rect",
231
- {
232
- x: (totalW - 24) / 2,
233
- y: totalH - 5,
234
- width: "24",
235
- height: "4",
236
- rx: "2",
237
- fill: colorScheme === "dark" ? "#111" : "#bbb"
238
- }
239
- )
240
- ]
241
- }
242
- );
243
- }
244
- var GALAXY_S25_FRAME = {
245
- bezelTop: 18,
246
- bezelBottom: 18,
247
- bezelLeft: 12,
248
- bezelRight: 12,
249
- totalWidth: 384,
250
- totalHeight: 816,
251
- screenWidth: 360,
252
- screenHeight: 780,
253
- screenRadius: 42
254
- };
255
-
256
- // src/android/galaxy-s25-edge/metadata.ts
257
- var GALAXY_S25_EDGE_META = {
258
- id: "galaxy-s25-edge",
259
- name: "Galaxy S25 Edge",
260
- platform: "android",
261
- year: 2025,
262
- screen: {
263
- width: 382,
264
- height: 824,
265
- physicalWidth: 1440,
266
- physicalHeight: 3120,
267
- dpr: 3.75,
268
- aspectRatio: "19.5:9",
269
- cornerRadius: 42,
270
- ppi: 510
271
- }
272
- };
273
- var GALAXY_S25_EDGE_LAYOUT = {
274
- meta: GALAXY_S25_EDGE_META,
275
- safeArea: {
276
- portrait: { top: 32, bottom: 24, left: 0, right: 0 },
277
- landscape: { top: 0, bottom: 24, left: 32, right: 32 }
278
- },
279
- hardwareOverlays: {
280
- type: "punch-hole",
281
- portrait: {
282
- x: 187,
283
- // centered: (382 - 8) / 2 = 187
284
- y: 12,
285
- width: 8,
286
- height: 8,
287
- shape: "circle",
288
- cornerRadius: 4
289
- }
290
- },
291
- statusBar: {
292
- height: 32,
293
- style: "fullwidth",
294
- hasTime: true,
295
- hasBattery: true,
296
- hasSignal: true
297
- },
298
- homeIndicator: {
299
- type: "gestureline",
300
- height: 5,
301
- width: 90,
302
- visible: true
303
- },
304
- hardwareButtons: {
305
- volumeUp: { side: "right", yPosition: 185 },
306
- volumeDown: { side: "right", yPosition: 220 },
307
- power: { side: "right", yPosition: 268 }
308
- }
309
- };
310
- function GalaxyS25EdgeSVG({ colorScheme = "dark", style }) {
311
- const frameColor = colorScheme === "dark" ? "#1c1c1e" : "#e5e5e7";
312
- const frameBorder = colorScheme === "dark" ? "#3a3a3c" : "#c7c7cc";
313
- const buttonColor = colorScheme === "dark" ? "#2c2c2e" : "#d1d1d6";
314
- const punchHoleColor = "#000000";
315
- const bezelSide = 8;
316
- const bezelTop = 14;
317
- const bezelBottom = 14;
318
- const screenW = 382;
319
- const screenH = 824;
320
- const totalW = screenW + bezelSide * 2;
321
- const totalH = screenH + bezelTop + bezelBottom;
322
- const cornerRadius = 42;
323
- const outerRadius = cornerRadius + 6;
324
- const screenRadius = cornerRadius;
325
- return /* @__PURE__ */ jsxs(
326
- "svg",
327
- {
328
- viewBox: `0 0 ${totalW} ${totalH}`,
329
- width: totalW,
330
- height: totalH,
331
- xmlns: "http://www.w3.org/2000/svg",
332
- style,
333
- children: [
334
- /* @__PURE__ */ jsxs("defs", { children: [
335
- /* @__PURE__ */ jsxs("linearGradient", { id: "frame-gradient-galaxy-s25-edge", x1: "0", y1: "0", x2: "1", y2: "1", children: [
336
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: frameColor }),
337
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#262628" : "#ededef" }),
338
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: frameColor })
339
- ] }),
340
- /* @__PURE__ */ jsxs("mask", { id: "frame-screen-mask-galaxy-s25-edge", children: [
341
- /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
342
- /* @__PURE__ */ jsx(
343
- "rect",
344
- {
345
- x: bezelSide,
346
- y: bezelTop,
347
- width: screenW,
348
- height: screenH,
349
- rx: screenRadius,
350
- ry: screenRadius,
351
- fill: "black"
352
- }
353
- )
354
- ] })
355
- ] }),
356
- /* @__PURE__ */ jsx(
357
- "rect",
358
- {
359
- x: "0",
360
- y: "0",
361
- width: totalW,
362
- height: totalH,
363
- rx: outerRadius,
364
- ry: outerRadius,
365
- fill: "url(#frame-gradient-galaxy-s25-edge)",
366
- stroke: frameBorder,
367
- strokeWidth: "1.5",
368
- mask: "url(#frame-screen-mask-galaxy-s25-edge)"
369
- }
370
- ),
371
- /* @__PURE__ */ jsx(
372
- "rect",
373
- {
374
- "data-zone": "screen-area",
375
- x: bezelSide,
376
- y: bezelTop,
377
- width: screenW,
378
- height: screenH,
379
- rx: screenRadius,
380
- ry: screenRadius,
381
- fill: "none"
382
- }
383
- ),
384
- /* @__PURE__ */ jsx(
385
- "circle",
386
- {
387
- "data-zone": "hardware-overlay",
388
- "data-zone-type": "punch-hole-camera",
389
- cx: bezelSide + screenW / 2,
390
- cy: bezelTop + 16,
391
- r: "4",
392
- fill: punchHoleColor
393
- }
394
- ),
395
- /* @__PURE__ */ jsx(
396
- "rect",
397
- {
398
- "data-zone": "safe-area-top-inset",
399
- x: bezelSide,
400
- y: bezelTop,
401
- width: screenW,
402
- height: "32",
403
- fill: "transparent"
404
- }
405
- ),
406
- /* @__PURE__ */ jsx(
407
- "rect",
408
- {
409
- "data-zone": "safe-area-bottom-inset",
410
- x: bezelSide,
411
- y: bezelTop + screenH - 24,
412
- width: screenW,
413
- height: "24",
414
- fill: "transparent"
415
- }
416
- ),
417
- /* @__PURE__ */ jsx(
418
- "rect",
419
- {
420
- "data-zone": "status-bar",
421
- "data-zone-style": "punch-hole",
422
- x: bezelSide,
423
- y: bezelTop,
424
- width: screenW,
425
- height: "32",
426
- fill: "transparent"
427
- }
428
- ),
429
- /* @__PURE__ */ jsx(
430
- "rect",
431
- {
432
- "data-zone": "home-indicator",
433
- "data-zone-type": "gesture-bar",
434
- x: bezelSide + (screenW - 90) / 2,
435
- y: bezelTop + screenH - 10,
436
- width: "90",
437
- height: "3",
438
- rx: "1.5",
439
- ry: "1.5",
440
- fill: "rgba(255,255,255,0.25)"
441
- }
442
- ),
443
- /* @__PURE__ */ jsx(
444
- "rect",
445
- {
446
- "data-button": "volume-up",
447
- "data-side": "right",
448
- x: totalW - 2,
449
- y: "186",
450
- width: "3",
451
- height: "28",
452
- rx: "1.5",
453
- fill: buttonColor
454
- }
455
- ),
456
- /* @__PURE__ */ jsx(
457
- "rect",
458
- {
459
- "data-button": "volume-down",
460
- "data-side": "right",
461
- x: totalW - 2,
462
- y: "222",
463
- width: "3",
464
- height: "28",
465
- rx: "1.5",
466
- fill: buttonColor
467
- }
468
- ),
469
- /* @__PURE__ */ jsx(
470
- "rect",
471
- {
472
- "data-button": "power",
473
- "data-side": "right",
474
- x: totalW - 2,
475
- y: "272",
476
- width: "3",
477
- height: "36",
478
- rx: "1.5",
479
- fill: buttonColor
480
- }
481
- ),
482
- /* @__PURE__ */ jsx(
483
- "rect",
484
- {
485
- x: (totalW - 24) / 2,
486
- y: totalH - 5,
487
- width: "24",
488
- height: "4",
489
- rx: "2",
490
- fill: colorScheme === "dark" ? "#111" : "#bbb"
491
- }
492
- )
493
- ]
494
- }
495
- );
496
- }
497
- var GALAXY_S25_EDGE_FRAME = {
498
- bezelTop: 14,
499
- bezelBottom: 14,
500
- bezelLeft: 8,
501
- bezelRight: 8,
502
- totalWidth: 398,
503
- totalHeight: 852,
504
- screenWidth: 382,
505
- screenHeight: 824,
506
- screenRadius: 42
507
- };
508
-
509
- // src/android/galaxy-s25-ultra/metadata.ts
510
- var GALAXY_S25_ULTRA_META = {
511
- id: "galaxy-s25-ultra",
512
- name: "Galaxy S25 Ultra",
513
- platform: "android",
514
- year: 2025,
515
- screen: {
516
- width: 384,
517
- height: 824,
518
- physicalWidth: 1440,
519
- physicalHeight: 3088,
520
- dpr: 3.75,
521
- aspectRatio: "19.5:9",
522
- cornerRadius: 42,
523
- ppi: 505
524
- }
525
- };
526
- var GALAXY_S25_ULTRA_LAYOUT = {
527
- meta: GALAXY_S25_ULTRA_META,
528
- safeArea: {
529
- portrait: { top: 38, bottom: 24, left: 0, right: 0 },
530
- landscape: { top: 0, bottom: 24, left: 38, right: 38 }
531
- },
532
- hardwareOverlays: {
533
- type: "punch-hole",
534
- portrait: {
535
- x: 187,
536
- // centered: (384 - 10) / 2 = 187
537
- y: 12,
538
- width: 10,
539
- height: 10,
540
- shape: "circle",
541
- cornerRadius: 5
542
- }
543
- },
544
- statusBar: {
545
- height: 28,
546
- style: "fullwidth",
547
- hasTime: true,
548
- hasBattery: true,
549
- hasSignal: true
550
- },
551
- homeIndicator: {
552
- type: "gestureline",
553
- height: 5,
554
- width: 90,
555
- visible: true
556
- },
557
- hardwareButtons: {
558
- volumeUp: { side: "right", yPosition: 190 },
559
- volumeDown: { side: "right", yPosition: 226 },
560
- power: { side: "right", yPosition: 276 }
561
- }
562
- };
563
- function GalaxyS25UltraSVG({ colorScheme = "dark", style }) {
564
- const frameColor = colorScheme === "dark" ? "#1c1c1e" : "#e5e5e7";
565
- const frameBorder = colorScheme === "dark" ? "#3a3a3c" : "#c7c7cc";
566
- const buttonColor = colorScheme === "dark" ? "#2c2c2e" : "#d1d1d6";
567
- const punchHoleColor = "#000000";
568
- const bezelSide = 12;
569
- const bezelTop = 18;
570
- const bezelBottom = 18;
571
- const screenW = 384;
572
- const screenH = 824;
573
- const totalW = screenW + bezelSide * 2;
574
- const totalH = screenH + bezelTop + bezelBottom;
575
- const cornerRadius = 42;
576
- const outerRadius = cornerRadius + 8;
577
- const screenRadius = cornerRadius;
578
- return /* @__PURE__ */ jsxs(
579
- "svg",
580
- {
581
- viewBox: `0 0 ${totalW} ${totalH}`,
582
- width: totalW,
583
- height: totalH,
584
- xmlns: "http://www.w3.org/2000/svg",
585
- style,
586
- children: [
587
- /* @__PURE__ */ jsxs("defs", { children: [
588
- /* @__PURE__ */ jsxs("linearGradient", { id: "frame-gradient-galaxy-s25-ultra", x1: "0", y1: "0", x2: "1", y2: "1", children: [
589
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: frameColor }),
590
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#262628" : "#ededef" }),
591
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: frameColor })
592
- ] }),
593
- /* @__PURE__ */ jsxs("mask", { id: "frame-screen-mask-galaxy-s25-ultra", children: [
594
- /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
595
- /* @__PURE__ */ jsx(
596
- "rect",
597
- {
598
- x: bezelSide,
599
- y: bezelTop,
600
- width: screenW,
601
- height: screenH,
602
- rx: screenRadius,
603
- ry: screenRadius,
604
- fill: "black"
605
- }
606
- )
607
- ] })
608
- ] }),
609
- /* @__PURE__ */ jsx(
610
- "rect",
611
- {
612
- x: "0",
613
- y: "0",
614
- width: totalW,
615
- height: totalH,
616
- rx: outerRadius,
617
- ry: outerRadius,
618
- fill: "url(#frame-gradient-galaxy-s25-ultra)",
619
- stroke: frameBorder,
620
- strokeWidth: "1.5",
621
- mask: "url(#frame-screen-mask-galaxy-s25-ultra)"
622
- }
623
- ),
624
- /* @__PURE__ */ jsx(
625
- "rect",
626
- {
627
- "data-zone": "screen-area",
628
- x: bezelSide,
629
- y: bezelTop,
630
- width: screenW,
631
- height: screenH,
632
- rx: screenRadius,
633
- ry: screenRadius,
634
- fill: "none"
635
- }
636
- ),
637
- /* @__PURE__ */ jsx(
638
- "circle",
639
- {
640
- "data-zone": "hardware-overlay",
641
- "data-zone-type": "punch-hole-camera",
642
- cx: bezelSide + screenW / 2,
643
- cy: bezelTop + 17,
644
- r: "5",
645
- fill: punchHoleColor
646
- }
647
- ),
648
- /* @__PURE__ */ jsx(
649
- "rect",
650
- {
651
- "data-zone": "safe-area-top-inset",
652
- x: bezelSide,
653
- y: bezelTop,
654
- width: screenW,
655
- height: "38",
656
- fill: "transparent"
657
- }
658
- ),
659
- /* @__PURE__ */ jsx(
660
- "rect",
661
- {
662
- "data-zone": "safe-area-bottom-inset",
663
- x: bezelSide,
664
- y: bezelTop + screenH - 24,
665
- width: screenW,
666
- height: "24",
667
- fill: "transparent"
668
- }
669
- ),
670
- /* @__PURE__ */ jsx(
671
- "rect",
672
- {
673
- "data-zone": "status-bar",
674
- "data-zone-style": "punch-hole",
675
- x: bezelSide,
676
- y: bezelTop,
677
- width: screenW,
678
- height: "28",
679
- fill: "transparent"
680
- }
681
- ),
682
- /* @__PURE__ */ jsx(
683
- "rect",
684
- {
685
- "data-zone": "home-indicator",
686
- "data-zone-type": "gesture-bar",
687
- x: bezelSide + (screenW - 90) / 2,
688
- y: bezelTop + screenH - 10,
689
- width: "90",
690
- height: "3",
691
- rx: "1.5",
692
- ry: "1.5",
693
- fill: "rgba(255,255,255,0.25)"
694
- }
695
- ),
696
- /* @__PURE__ */ jsx(
697
- "rect",
698
- {
699
- "data-button": "volume-up",
700
- "data-side": "right",
701
- x: totalW - 2,
702
- y: "190",
703
- width: "3",
704
- height: "28",
705
- rx: "1.5",
706
- fill: buttonColor
707
- }
708
- ),
709
- /* @__PURE__ */ jsx(
710
- "rect",
711
- {
712
- "data-button": "volume-down",
713
- "data-side": "right",
714
- x: totalW - 2,
715
- y: "226",
716
- width: "3",
717
- height: "28",
718
- rx: "1.5",
719
- fill: buttonColor
720
- }
721
- ),
722
- /* @__PURE__ */ jsx(
723
- "rect",
724
- {
725
- "data-button": "power",
726
- "data-side": "right",
727
- x: totalW - 2,
728
- y: "276",
729
- width: "3",
730
- height: "36",
731
- rx: "1.5",
732
- fill: buttonColor
733
- }
734
- ),
735
- /* @__PURE__ */ jsx(
736
- "rect",
737
- {
738
- x: (totalW - 24) / 2,
739
- y: totalH - 5,
740
- width: "24",
741
- height: "4",
742
- rx: "2",
743
- fill: colorScheme === "dark" ? "#111" : "#bbb"
744
- }
745
- ),
746
- /* @__PURE__ */ jsx(
747
- "rect",
748
- {
749
- x: totalW - bezelSide - 40,
750
- y: totalH - 4,
751
- width: "16",
752
- height: "3",
753
- rx: "1",
754
- fill: colorScheme === "dark" ? "#0a0a0a" : "#aaa"
755
- }
756
- )
757
- ]
758
- }
759
- );
760
- }
761
- var GALAXY_S25_ULTRA_FRAME = {
762
- bezelTop: 18,
763
- bezelBottom: 18,
764
- bezelLeft: 12,
765
- bezelRight: 12,
766
- totalWidth: 408,
767
- totalHeight: 860,
768
- screenWidth: 384,
769
- screenHeight: 824,
770
- screenRadius: 42
771
- };
772
-
773
- // src/android/pixel-9-pro/metadata.ts
774
- var PIXEL_9_PRO_META = {
775
- id: "pixel-9-pro",
776
- name: "Pixel 9 Pro",
777
- platform: "android",
778
- year: 2024,
779
- screen: {
780
- width: 393,
781
- height: 851,
782
- physicalWidth: 1080,
783
- physicalHeight: 2340,
784
- dpr: 3,
785
- aspectRatio: "19.5:9",
786
- cornerRadius: 48,
787
- ppi: 423
788
- }
789
- };
790
- var PIXEL_9_PRO_LAYOUT = {
791
- meta: PIXEL_9_PRO_META,
792
- safeArea: {
793
- portrait: { top: 32, bottom: 24, left: 0, right: 0 },
794
- landscape: { top: 0, bottom: 24, left: 32, right: 32 }
795
- },
796
- hardwareOverlays: {
797
- type: "punch-hole",
798
- portrait: {
799
- x: 192,
800
- // centered: (393 - 10) / 2 ~ 192
801
- y: 12,
802
- width: 10,
803
- height: 10,
804
- shape: "circle",
805
- cornerRadius: 5
806
- }
807
- },
808
- statusBar: {
809
- height: 32,
810
- style: "fullwidth",
811
- hasTime: true,
812
- hasBattery: true,
813
- hasSignal: true
814
- },
815
- homeIndicator: {
816
- type: "gestureline",
817
- height: 5,
818
- width: 90,
819
- visible: true
820
- },
821
- hardwareButtons: {
822
- volumeUp: { side: "left", yPosition: 185 },
823
- volumeDown: { side: "left", yPosition: 220 },
824
- power: { side: "right", yPosition: 205 }
825
- }
826
- };
827
- function Pixel9ProSVG({ colorScheme = "dark", style }) {
828
- const frameColor = colorScheme === "dark" ? "#1c1c1e" : "#e5e5e7";
829
- const frameBorder = colorScheme === "dark" ? "#3a3a3c" : "#c7c7cc";
830
- const buttonColor = colorScheme === "dark" ? "#2c2c2e" : "#d1d1d6";
831
- const punchHoleColor = "#000000";
832
- const bezelSide = 12;
833
- const bezelTop = 18;
834
- const bezelBottom = 18;
835
- const screenW = 393;
836
- const screenH = 851;
837
- const totalW = screenW + bezelSide * 2;
838
- const totalH = screenH + bezelTop + bezelBottom;
839
- const cornerRadius = 48;
840
- const outerRadius = cornerRadius + 8;
841
- const screenRadius = cornerRadius;
842
- return /* @__PURE__ */ jsxs(
843
- "svg",
844
- {
845
- viewBox: `0 0 ${totalW} ${totalH}`,
846
- width: totalW,
847
- height: totalH,
848
- xmlns: "http://www.w3.org/2000/svg",
849
- style,
850
- children: [
851
- /* @__PURE__ */ jsxs("defs", { children: [
852
- /* @__PURE__ */ jsxs("linearGradient", { id: "frame-gradient-pixel-9-pro", x1: "0", y1: "0", x2: "1", y2: "1", children: [
853
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: frameColor }),
854
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#262628" : "#ededef" }),
855
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: frameColor })
856
- ] }),
857
- /* @__PURE__ */ jsxs("mask", { id: "frame-screen-mask-pixel-9-pro", children: [
858
- /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
859
- /* @__PURE__ */ jsx(
860
- "rect",
861
- {
862
- x: bezelSide,
863
- y: bezelTop,
864
- width: screenW,
865
- height: screenH,
866
- rx: screenRadius,
867
- ry: screenRadius,
868
- fill: "black"
869
- }
870
- )
871
- ] })
872
- ] }),
873
- /* @__PURE__ */ jsx(
874
- "rect",
875
- {
876
- x: "0",
877
- y: "0",
878
- width: totalW,
879
- height: totalH,
880
- rx: outerRadius,
881
- ry: outerRadius,
882
- fill: "url(#frame-gradient-pixel-9-pro)",
883
- stroke: frameBorder,
884
- strokeWidth: "1.5",
885
- mask: "url(#frame-screen-mask-pixel-9-pro)"
886
- }
887
- ),
888
- /* @__PURE__ */ jsx(
889
- "rect",
890
- {
891
- "data-zone": "screen-area",
892
- x: bezelSide,
893
- y: bezelTop,
894
- width: screenW,
895
- height: screenH,
896
- rx: screenRadius,
897
- ry: screenRadius,
898
- fill: "none"
899
- }
900
- ),
901
- /* @__PURE__ */ jsx(
902
- "circle",
903
- {
904
- "data-zone": "hardware-overlay",
905
- "data-zone-type": "punch-hole-camera",
906
- cx: bezelSide + screenW / 2,
907
- cy: bezelTop + 17,
908
- r: "5",
909
- fill: punchHoleColor
910
- }
911
- ),
912
- /* @__PURE__ */ jsx(
913
- "rect",
914
- {
915
- "data-zone": "safe-area-top-inset",
916
- x: bezelSide,
917
- y: bezelTop,
918
- width: screenW,
919
- height: "32",
920
- fill: "transparent"
921
- }
922
- ),
923
- /* @__PURE__ */ jsx(
924
- "rect",
925
- {
926
- "data-zone": "safe-area-bottom-inset",
927
- x: bezelSide,
928
- y: bezelTop + screenH - 24,
929
- width: screenW,
930
- height: "24",
931
- fill: "transparent"
932
- }
933
- ),
934
- /* @__PURE__ */ jsx(
935
- "rect",
936
- {
937
- "data-zone": "status-bar",
938
- "data-zone-style": "punch-hole",
939
- x: bezelSide,
940
- y: bezelTop,
941
- width: screenW,
942
- height: "32",
943
- fill: "transparent"
944
- }
945
- ),
946
- /* @__PURE__ */ jsx(
947
- "rect",
948
- {
949
- "data-zone": "home-indicator",
950
- "data-zone-type": "gesture-bar",
951
- x: bezelSide + (screenW - 90) / 2,
952
- y: bezelTop + screenH - 10,
953
- width: "90",
954
- height: "3",
955
- rx: "1.5",
956
- ry: "1.5",
957
- fill: "rgba(255,255,255,0.25)"
958
- }
959
- ),
960
- /* @__PURE__ */ jsx(
961
- "rect",
962
- {
963
- "data-button": "power",
964
- "data-side": "right",
965
- x: totalW - 2,
966
- y: "210",
967
- width: "3",
968
- height: "36",
969
- rx: "1.5",
970
- fill: buttonColor
971
- }
972
- ),
973
- /* @__PURE__ */ jsx(
974
- "rect",
975
- {
976
- "data-button": "volume-up",
977
- "data-side": "left",
978
- x: -1,
979
- y: "240",
980
- width: "3",
981
- height: "28",
982
- rx: "1.5",
983
- fill: buttonColor
984
- }
985
- ),
986
- /* @__PURE__ */ jsx(
987
- "rect",
988
- {
989
- "data-button": "volume-down",
990
- "data-side": "left",
991
- x: -1,
992
- y: "276",
993
- width: "3",
994
- height: "28",
995
- rx: "1.5",
996
- fill: buttonColor
997
- }
998
- ),
999
- /* @__PURE__ */ jsx(
1000
- "rect",
1001
- {
1002
- x: (totalW - 24) / 2,
1003
- y: totalH - 5,
1004
- width: "24",
1005
- height: "4",
1006
- rx: "2",
1007
- fill: colorScheme === "dark" ? "#111" : "#bbb"
1008
- }
1009
- )
1010
- ]
1011
- }
1012
- );
1013
- }
1014
- var PIXEL_9_PRO_FRAME = {
1015
- bezelTop: 18,
1016
- bezelBottom: 18,
1017
- bezelLeft: 12,
1018
- bezelRight: 12,
1019
- totalWidth: 417,
1020
- totalHeight: 887,
1021
- screenWidth: 393,
1022
- screenHeight: 851,
1023
- screenRadius: 48
1024
- };
1025
-
1026
- // src/android/pixel-9-pro-xl/metadata.ts
1027
- var PIXEL_9_PRO_XL_META = {
1028
- id: "pixel-9-pro-xl",
1029
- name: "Pixel 9 Pro XL",
1030
- platform: "android",
1031
- year: 2024,
1032
- screen: {
1033
- width: 448,
1034
- height: 968,
1035
- physicalWidth: 1344,
1036
- physicalHeight: 2904,
1037
- dpr: 3,
1038
- aspectRatio: "19.5:9",
1039
- cornerRadius: 48,
1040
- ppi: 486
1041
- }
1042
- };
1043
- var PIXEL_9_PRO_XL_LAYOUT = {
1044
- meta: PIXEL_9_PRO_XL_META,
1045
- safeArea: {
1046
- portrait: { top: 32, bottom: 24, left: 0, right: 0 },
1047
- landscape: { top: 0, bottom: 24, left: 32, right: 32 }
1048
- },
1049
- hardwareOverlays: {
1050
- type: "punch-hole",
1051
- portrait: {
1052
- x: 219,
1053
- // centered: (448 - 11) / 2 ~ 219
1054
- y: 12,
1055
- width: 11,
1056
- height: 11,
1057
- shape: "circle",
1058
- cornerRadius: 5.5
1059
- }
1060
- },
1061
- statusBar: {
1062
- height: 32,
1063
- style: "fullwidth",
1064
- hasTime: true,
1065
- hasBattery: true,
1066
- hasSignal: true
1067
- },
1068
- homeIndicator: {
1069
- type: "gestureline",
1070
- height: 5,
1071
- width: 90,
1072
- visible: true
1073
- },
1074
- hardwareButtons: {
1075
- volumeUp: { side: "left", yPosition: 195 },
1076
- volumeDown: { side: "left", yPosition: 235 },
1077
- power: { side: "right", yPosition: 215 }
1078
- }
1079
- };
1080
- function Pixel9ProXLSVG({ colorScheme = "dark", style }) {
1081
- const frameColor = colorScheme === "dark" ? "#1c1c1e" : "#e5e5e7";
1082
- const frameBorder = colorScheme === "dark" ? "#3a3a3c" : "#c7c7cc";
1083
- const buttonColor = colorScheme === "dark" ? "#2c2c2e" : "#d1d1d6";
1084
- const punchHoleColor = "#000000";
1085
- const bezelSide = 12;
1086
- const bezelTop = 18;
1087
- const bezelBottom = 18;
1088
- const screenW = 448;
1089
- const screenH = 968;
1090
- const totalW = screenW + bezelSide * 2;
1091
- const totalH = screenH + bezelTop + bezelBottom;
1092
- const cornerRadius = 48;
1093
- const outerRadius = cornerRadius + 8;
1094
- const screenRadius = cornerRadius;
1095
- return /* @__PURE__ */ jsxs(
1096
- "svg",
1097
- {
1098
- viewBox: `0 0 ${totalW} ${totalH}`,
1099
- width: totalW,
1100
- height: totalH,
1101
- xmlns: "http://www.w3.org/2000/svg",
1102
- style,
1103
- children: [
1104
- /* @__PURE__ */ jsxs("defs", { children: [
1105
- /* @__PURE__ */ jsxs("linearGradient", { id: "frame-gradient-pixel-9-pro-xl", x1: "0", y1: "0", x2: "1", y2: "1", children: [
1106
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: frameColor }),
1107
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: colorScheme === "dark" ? "#262628" : "#ededef" }),
1108
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: frameColor })
1109
- ] }),
1110
- /* @__PURE__ */ jsxs("mask", { id: "frame-screen-mask-pixel-9-pro-xl", children: [
1111
- /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: totalW, height: totalH, fill: "white" }),
1112
- /* @__PURE__ */ jsx(
1113
- "rect",
1114
- {
1115
- x: bezelSide,
1116
- y: bezelTop,
1117
- width: screenW,
1118
- height: screenH,
1119
- rx: screenRadius,
1120
- ry: screenRadius,
1121
- fill: "black"
1122
- }
1123
- )
1124
- ] })
1125
- ] }),
1126
- /* @__PURE__ */ jsx(
1127
- "rect",
1128
- {
1129
- x: "0",
1130
- y: "0",
1131
- width: totalW,
1132
- height: totalH,
1133
- rx: outerRadius,
1134
- ry: outerRadius,
1135
- fill: "url(#frame-gradient-pixel-9-pro-xl)",
1136
- stroke: frameBorder,
1137
- strokeWidth: "1.5",
1138
- mask: "url(#frame-screen-mask-pixel-9-pro-xl)"
1139
- }
1140
- ),
1141
- /* @__PURE__ */ jsx(
1142
- "rect",
1143
- {
1144
- "data-zone": "screen-area",
1145
- x: bezelSide,
1146
- y: bezelTop,
1147
- width: screenW,
1148
- height: screenH,
1149
- rx: screenRadius,
1150
- ry: screenRadius,
1151
- fill: "none"
1152
- }
1153
- ),
1154
- /* @__PURE__ */ jsx(
1155
- "circle",
1156
- {
1157
- "data-zone": "hardware-overlay",
1158
- "data-zone-type": "punch-hole-camera",
1159
- cx: bezelSide + screenW / 2,
1160
- cy: bezelTop + 17.5,
1161
- r: "5.5",
1162
- fill: punchHoleColor
1163
- }
1164
- ),
1165
- /* @__PURE__ */ jsx(
1166
- "rect",
1167
- {
1168
- "data-zone": "safe-area-top-inset",
1169
- x: bezelSide,
1170
- y: bezelTop,
1171
- width: screenW,
1172
- height: "32",
1173
- fill: "transparent"
1174
- }
1175
- ),
1176
- /* @__PURE__ */ jsx(
1177
- "rect",
1178
- {
1179
- "data-zone": "safe-area-bottom-inset",
1180
- x: bezelSide,
1181
- y: bezelTop + screenH - 24,
1182
- width: screenW,
1183
- height: "24",
1184
- fill: "transparent"
1185
- }
1186
- ),
1187
- /* @__PURE__ */ jsx(
1188
- "rect",
1189
- {
1190
- "data-zone": "status-bar",
1191
- "data-zone-style": "punch-hole",
1192
- x: bezelSide,
1193
- y: bezelTop,
1194
- width: screenW,
1195
- height: "32",
1196
- fill: "transparent"
1197
- }
1198
- ),
1199
- /* @__PURE__ */ jsx(
1200
- "rect",
1201
- {
1202
- "data-zone": "home-indicator",
1203
- "data-zone-type": "gesture-bar",
1204
- x: bezelSide + (screenW - 90) / 2,
1205
- y: bezelTop + screenH - 10,
1206
- width: "90",
1207
- height: "3",
1208
- rx: "1.5",
1209
- ry: "1.5",
1210
- fill: "rgba(255,255,255,0.25)"
1211
- }
1212
- ),
1213
- /* @__PURE__ */ jsx(
1214
- "rect",
1215
- {
1216
- "data-button": "power",
1217
- "data-side": "right",
1218
- x: totalW - 2,
1219
- y: "220",
1220
- width: "3",
1221
- height: "36",
1222
- rx: "1.5",
1223
- fill: buttonColor
1224
- }
1225
- ),
1226
- /* @__PURE__ */ jsx(
1227
- "rect",
1228
- {
1229
- "data-button": "volume-up",
1230
- "data-side": "left",
1231
- x: -1,
1232
- y: "250",
1233
- width: "3",
1234
- height: "28",
1235
- rx: "1.5",
1236
- fill: buttonColor
1237
- }
1238
- ),
1239
- /* @__PURE__ */ jsx(
1240
- "rect",
1241
- {
1242
- "data-button": "volume-down",
1243
- "data-side": "left",
1244
- x: -1,
1245
- y: "286",
1246
- width: "3",
1247
- height: "28",
1248
- rx: "1.5",
1249
- fill: buttonColor
1250
- }
1251
- ),
1252
- /* @__PURE__ */ jsx(
1253
- "rect",
1254
- {
1255
- x: (totalW - 24) / 2,
1256
- y: totalH - 5,
1257
- width: "24",
1258
- height: "4",
1259
- rx: "2",
1260
- fill: colorScheme === "dark" ? "#111" : "#bbb"
1261
- }
1262
- )
1263
- ]
1264
- }
1265
- );
1266
- }
1267
- var PIXEL_9_PRO_XL_FRAME = {
1268
- bezelTop: 18,
1269
- bezelBottom: 18,
1270
- bezelLeft: 12,
1271
- bezelRight: 12,
1272
- totalWidth: 472,
1273
- totalHeight: 1004,
1274
- screenWidth: 448,
1275
- screenHeight: 968,
1276
- screenRadius: 48
1277
- };
1278
-
1279
- export { GALAXY_S25_EDGE_FRAME, GALAXY_S25_EDGE_LAYOUT, GALAXY_S25_EDGE_META, GALAXY_S25_FRAME, GALAXY_S25_LAYOUT, GALAXY_S25_META, GALAXY_S25_ULTRA_FRAME, GALAXY_S25_ULTRA_LAYOUT, GALAXY_S25_ULTRA_META, GalaxyS25EdgeSVG, GalaxyS25SVG, GalaxyS25UltraSVG, PIXEL_9_PRO_FRAME, PIXEL_9_PRO_LAYOUT, PIXEL_9_PRO_META, PIXEL_9_PRO_XL_FRAME, PIXEL_9_PRO_XL_LAYOUT, PIXEL_9_PRO_XL_META, Pixel9ProSVG, Pixel9ProXLSVG };
1280
- //# sourceMappingURL=chunk-76PRN3YN.js.map
1281
- //# sourceMappingURL=chunk-76PRN3YN.js.map