@biela.dev/devices 1.6.3 → 1.6.5

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