@biela.dev/devices 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/android/index.cjs +21 -21
- package/dist/android/index.d.cts +75 -75
- package/dist/android/index.d.ts +75 -75
- package/dist/android/index.js +1 -1
- package/dist/{chunk-QQFC4CAP.js → chunk-76PRN3YN.js} +216 -216
- package/dist/chunk-76PRN3YN.js.map +1 -0
- package/dist/chunk-E2ICKMKH.js +2038 -0
- package/dist/chunk-E2ICKMKH.js.map +1 -0
- package/dist/{chunk-BXBG5BY7.cjs → chunk-FOTZN6UL.cjs} +216 -216
- package/dist/chunk-FOTZN6UL.cjs.map +1 -0
- package/dist/chunk-HF6B72Z5.cjs +2065 -0
- package/dist/chunk-HF6B72Z5.cjs.map +1 -0
- package/dist/index.cjs +79 -69
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/ios/index.cjs +33 -25
- package/dist/ios/index.d.cts +37 -53
- package/dist/ios/index.d.ts +37 -53
- package/dist/ios/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-BXBG5BY7.cjs.map +0 -1
- package/dist/chunk-DGX4WRAK.js +0 -1749
- package/dist/chunk-DGX4WRAK.js.map +0 -1
- package/dist/chunk-OI46UKOY.cjs +0 -1774
- package/dist/chunk-OI46UKOY.cjs.map +0 -1
- package/dist/chunk-QQFC4CAP.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/android/galaxy-s25/metadata.ts","../src/android/galaxy-s25/frame.tsx","../src/android/galaxy-s25-edge/metadata.ts","../src/android/galaxy-s25-edge/frame.tsx","../src/android/galaxy-s25-ultra/metadata.ts","../src/android/galaxy-s25-ultra/frame.tsx","../src/android/pixel-9-pro/metadata.ts","../src/android/pixel-9-pro/frame.tsx","../src/android/pixel-9-pro-xl/metadata.ts","../src/android/pixel-9-pro-xl/frame.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"chunk-76PRN3YN.js","sourcesContent":["import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * Samsung Galaxy S25 — VERIFIED dimensions\n *\n * Screen: 360x780dp (CSS viewport)\n * Physical: 1080x2340px at 3x DPR\n * Display: 6.2\" Dynamic LTPO AMOLED 2X, 120Hz, ~425 PPI\n * Hardware: Center punch-hole camera, flat display\n */\nexport const GALAXY_S25_META: DeviceMeta = {\n id: \"galaxy-s25\",\n name: \"Galaxy S25\",\n platform: \"android\",\n year: 2025,\n screen: {\n width: 360,\n height: 780,\n physicalWidth: 1080,\n physicalHeight: 2340,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 42,\n ppi: 425,\n },\n};\n\nexport const GALAXY_S25_LAYOUT: DeviceLayoutData = {\n meta: GALAXY_S25_META,\n safeArea: {\n portrait: { top: 32, bottom: 24, left: 0, right: 0 },\n landscape: { top: 0, bottom: 24, left: 32, right: 32 },\n },\n hardwareOverlays: {\n type: \"punch-hole\",\n portrait: {\n x: 176, // centered: (360 - 9) / 2 ~ 176\n y: 12,\n width: 9,\n height: 9,\n shape: \"circle\",\n cornerRadius: 4.5,\n },\n },\n statusBar: {\n height: 32,\n style: \"fullwidth\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"gestureline\",\n height: 5,\n width: 90,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"right\", yPosition: 180 },\n volumeDown: { side: \"right\", yPosition: 214 },\n power: { side: \"right\", yPosition: 260 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * Galaxy S25 SVG Frame\n *\n * Dimensions: 360x780 logical points (screen area)\n * Full frame includes bezels: ~384x816pt total\n *\n * Structure:\n * - Outer aluminum frame with squared-off rounded corners\n * - Screen cutout (transparent -- content shows through)\n * - Center punch-hole camera (small circle at top center)\n * - Right-side buttons (Volume Up, Volume Down, Power/Side key)\n * - Bottom elements (USB-C port)\n * - Gesture navigation bar (thin horizontal line near bottom)\n * - data-zone annotations for DLC auto-derivation\n *\n * The SVG sits ON TOP of content with pointer-events: none.\n * Bezels are opaque -- they mask any content that spills over.\n * Screen area is transparent -- content shows through.\n */\nexport function GalaxyS25SVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1c1c1e\" : \"#e5e5e7\";\n const frameBorder = colorScheme === \"dark\" ? \"#3a3a3c\" : \"#c7c7cc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2c2c2e\" : \"#d1d1d6\";\n const punchHoleColor = \"#000000\";\n\n // Frame dimensions\n const bezelSide = 12;\n const bezelTop = 18;\n const bezelBottom = 18;\n const screenW = 360;\n const screenH = 780;\n const totalW = screenW + bezelSide * 2; // 384\n const totalH = screenH + bezelTop + bezelBottom; // 816\n const cornerRadius = 42;\n const outerRadius = cornerRadius + 8; // 50\n const screenRadius = cornerRadius; // 42\n\n return (\n <svg\n viewBox={`0 0 ${totalW} ${totalH}`}\n width={totalW}\n height={totalH}\n xmlns=\"http://www.w3.org/2000/svg\"\n style={style}\n >\n <defs>\n {/* Aluminum frame gradient */}\n <linearGradient id=\"frame-gradient-galaxy-s25\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#262628\" : \"#ededef\"} />\n <stop offset=\"100%\" stopColor={frameColor} />\n </linearGradient>\n\n {/* Mask to punch a real hole for the screen area.\n White = visible, black = transparent (shows HTML content below) */}\n <mask id=\"frame-screen-mask-galaxy-s25\">\n <rect x=\"0\" y=\"0\" width={totalW} height={totalH} fill=\"white\" />\n <rect\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"black\"\n />\n </mask>\n </defs>\n\n {/* === OUTER FRAME (aluminum body) with screen cutout === */}\n <rect\n x=\"0\"\n y=\"0\"\n width={totalW}\n height={totalH}\n rx={outerRadius}\n ry={outerRadius}\n fill=\"url(#frame-gradient-galaxy-s25)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-galaxy-s25)\"\n />\n\n {/* === SCREEN AREA marker -- fully transparent for data-zone derivation === */}\n <rect\n data-zone=\"screen-area\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"none\"\n />\n\n {/* === CENTER PUNCH-HOLE CAMERA === */}\n <circle\n data-zone=\"hardware-overlay\"\n data-zone-type=\"punch-hole-camera\"\n cx={bezelSide + screenW / 2}\n cy={bezelTop + 16.5}\n r=\"4.5\"\n fill={punchHoleColor}\n />\n\n {/* === SAFE AREA ZONES (invisible, for DLC derivation) === */}\n <rect\n data-zone=\"safe-area-top-inset\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 24}\n width={screenW}\n height=\"24\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"punch-hole\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n\n {/* === GESTURE NAVIGATION BAR (home indicator) === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"gesture-bar\"\n x={bezelSide + (screenW - 90) / 2}\n y={bezelTop + screenH - 10}\n width=\"90\"\n height=\"3\"\n rx=\"1.5\"\n ry=\"1.5\"\n fill=\"rgba(255,255,255,0.25)\"\n />\n\n {/* === HARDWARE BUTTONS (all on right side -- Samsung standard) === */}\n {/* Volume Up -- right side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"180\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Down -- right side */}\n <rect\n data-button=\"volume-down\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"216\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Power/Side Key -- right side, below volume */}\n <rect\n data-button=\"power\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"266\"\n width=\"3\"\n height=\"36\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n\n {/* === BOTTOM HARDWARE === */}\n {/* USB-C port */}\n <rect\n x={(totalW - 24) / 2}\n y={totalH - 5}\n width=\"24\"\n height=\"4\"\n rx=\"2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const GALAXY_S25_FRAME = {\n bezelTop: 18,\n bezelBottom: 18,\n bezelLeft: 12,\n bezelRight: 12,\n totalWidth: 384,\n totalHeight: 816,\n screenWidth: 360,\n screenHeight: 780,\n screenRadius: 42,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * Samsung Galaxy S25 Edge — VERIFIED dimensions\n *\n * Screen: 382x824dp (CSS viewport)\n * Physical: 1440x3120px at 3.75x DPR\n * Display: 6.7\" Dynamic LTPO AMOLED 2X, 120Hz, ~510 PPI\n * Hardware: Center punch-hole camera, ultra-thin flat display\n */\nexport const GALAXY_S25_EDGE_META: DeviceMeta = {\n id: \"galaxy-s25-edge\",\n name: \"Galaxy S25 Edge\",\n platform: \"android\",\n year: 2025,\n screen: {\n width: 382,\n height: 824,\n physicalWidth: 1440,\n physicalHeight: 3120,\n dpr: 3.75,\n aspectRatio: \"19.5:9\",\n cornerRadius: 42,\n ppi: 510,\n },\n};\n\nexport const GALAXY_S25_EDGE_LAYOUT: DeviceLayoutData = {\n meta: GALAXY_S25_EDGE_META,\n safeArea: {\n portrait: { top: 32, bottom: 24, left: 0, right: 0 },\n landscape: { top: 0, bottom: 24, left: 32, right: 32 },\n },\n hardwareOverlays: {\n type: \"punch-hole\",\n portrait: {\n x: 187, // centered: (382 - 8) / 2 = 187\n y: 12,\n width: 8,\n height: 8,\n shape: \"circle\",\n cornerRadius: 4,\n },\n },\n statusBar: {\n height: 32,\n style: \"fullwidth\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"gestureline\",\n height: 5,\n width: 90,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"right\", yPosition: 185 },\n volumeDown: { side: \"right\", yPosition: 220 },\n power: { side: \"right\", yPosition: 268 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * Galaxy S25 Edge SVG Frame\n *\n * Dimensions: 382x824 logical points (screen area)\n * Full frame includes bezels: ~398x852pt total (ultra-thin bezels)\n *\n * Structure:\n * - Ultra-thin aluminum frame with squared-off rounded corners\n * - Screen cutout (transparent -- content shows through)\n * - Center punch-hole camera (small circle at top center)\n * - Right-side buttons (Volume Up, Volume Down, Power/Side key)\n * - Bottom elements (USB-C port)\n * - Gesture navigation bar (thin horizontal line near bottom)\n * - data-zone annotations for DLC auto-derivation\n *\n * The SVG sits ON TOP of content with pointer-events: none.\n * Bezels are opaque -- they mask any content that spills over.\n * Screen area is transparent -- content shows through.\n */\nexport function GalaxyS25EdgeSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1c1c1e\" : \"#e5e5e7\";\n const frameBorder = colorScheme === \"dark\" ? \"#3a3a3c\" : \"#c7c7cc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2c2c2e\" : \"#d1d1d6\";\n const punchHoleColor = \"#000000\";\n\n // Frame dimensions (ultra-thin bezels)\n const bezelSide = 8;\n const bezelTop = 14;\n const bezelBottom = 14;\n const screenW = 382;\n const screenH = 824;\n const totalW = screenW + bezelSide * 2; // 398\n const totalH = screenH + bezelTop + bezelBottom; // 852\n const cornerRadius = 42;\n const outerRadius = cornerRadius + 6; // 48\n const screenRadius = cornerRadius; // 42\n\n return (\n <svg\n viewBox={`0 0 ${totalW} ${totalH}`}\n width={totalW}\n height={totalH}\n xmlns=\"http://www.w3.org/2000/svg\"\n style={style}\n >\n <defs>\n {/* Ultra-thin aluminum frame gradient */}\n <linearGradient id=\"frame-gradient-galaxy-s25-edge\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#262628\" : \"#ededef\"} />\n <stop offset=\"100%\" stopColor={frameColor} />\n </linearGradient>\n\n {/* Mask to punch a real hole for the screen area.\n White = visible, black = transparent (shows HTML content below) */}\n <mask id=\"frame-screen-mask-galaxy-s25-edge\">\n <rect x=\"0\" y=\"0\" width={totalW} height={totalH} fill=\"white\" />\n <rect\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"black\"\n />\n </mask>\n </defs>\n\n {/* === OUTER FRAME (ultra-thin aluminum body) with screen cutout === */}\n <rect\n x=\"0\"\n y=\"0\"\n width={totalW}\n height={totalH}\n rx={outerRadius}\n ry={outerRadius}\n fill=\"url(#frame-gradient-galaxy-s25-edge)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-galaxy-s25-edge)\"\n />\n\n {/* === SCREEN AREA marker -- fully transparent for data-zone derivation === */}\n <rect\n data-zone=\"screen-area\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"none\"\n />\n\n {/* === CENTER PUNCH-HOLE CAMERA === */}\n <circle\n data-zone=\"hardware-overlay\"\n data-zone-type=\"punch-hole-camera\"\n cx={bezelSide + screenW / 2}\n cy={bezelTop + 16}\n r=\"4\"\n fill={punchHoleColor}\n />\n\n {/* === SAFE AREA ZONES (invisible, for DLC derivation) === */}\n <rect\n data-zone=\"safe-area-top-inset\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 24}\n width={screenW}\n height=\"24\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"punch-hole\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n\n {/* === GESTURE NAVIGATION BAR (home indicator) === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"gesture-bar\"\n x={bezelSide + (screenW - 90) / 2}\n y={bezelTop + screenH - 10}\n width=\"90\"\n height=\"3\"\n rx=\"1.5\"\n ry=\"1.5\"\n fill=\"rgba(255,255,255,0.25)\"\n />\n\n {/* === HARDWARE BUTTONS (all on right side -- Samsung standard) === */}\n {/* Volume Up -- right side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"186\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Down -- right side */}\n <rect\n data-button=\"volume-down\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"222\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Power/Side Key -- right side, below volume */}\n <rect\n data-button=\"power\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"272\"\n width=\"3\"\n height=\"36\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n\n {/* === BOTTOM HARDWARE === */}\n {/* USB-C port */}\n <rect\n x={(totalW - 24) / 2}\n y={totalH - 5}\n width=\"24\"\n height=\"4\"\n rx=\"2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const GALAXY_S25_EDGE_FRAME = {\n bezelTop: 14,\n bezelBottom: 14,\n bezelLeft: 8,\n bezelRight: 8,\n totalWidth: 398,\n totalHeight: 852,\n screenWidth: 382,\n screenHeight: 824,\n screenRadius: 42,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * Samsung Galaxy S25 Ultra — VERIFIED dimensions\n *\n * Screen: 384x824dp (CSS viewport)\n * Physical: 1440x3088px at 3.75x DPR\n * Display: 6.9\" Dynamic LTPO AMOLED 2X, 120Hz, ~505 PPI\n * Hardware: Center punch-hole camera, flat display, S Pen slot\n */\nexport const GALAXY_S25_ULTRA_META: DeviceMeta = {\n id: \"galaxy-s25-ultra\",\n name: \"Galaxy S25 Ultra\",\n platform: \"android\",\n year: 2025,\n screen: {\n width: 384,\n height: 824,\n physicalWidth: 1440,\n physicalHeight: 3088,\n dpr: 3.75,\n aspectRatio: \"19.5:9\",\n cornerRadius: 42,\n ppi: 505,\n },\n};\n\nexport const GALAXY_S25_ULTRA_LAYOUT: DeviceLayoutData = {\n meta: GALAXY_S25_ULTRA_META,\n safeArea: {\n portrait: { top: 38, bottom: 24, left: 0, right: 0 },\n landscape: { top: 0, bottom: 24, left: 38, right: 38 },\n },\n hardwareOverlays: {\n type: \"punch-hole\",\n portrait: {\n x: 187, // centered: (384 - 10) / 2 = 187\n y: 12,\n width: 10,\n height: 10,\n shape: \"circle\",\n cornerRadius: 5,\n },\n },\n statusBar: {\n height: 28,\n style: \"fullwidth\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"gestureline\",\n height: 5,\n width: 90,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"right\", yPosition: 190 },\n volumeDown: { side: \"right\", yPosition: 226 },\n power: { side: \"right\", yPosition: 276 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * Galaxy S25 Ultra SVG Frame\n *\n * Dimensions: 384x824 logical points (screen area)\n * Full frame includes bezels: ~408x860pt total\n *\n * Structure:\n * - Outer titanium frame with squared-off rounded corners\n * - Screen cutout (transparent -- content shows through)\n * - Center punch-hole camera (small circle at top center)\n * - Right-side buttons (Volume Up, Volume Down, Power/Side key)\n * - Bottom elements (USB-C port, S Pen slot)\n * - Gesture navigation bar (thin horizontal line near bottom)\n * - data-zone annotations for DLC auto-derivation\n *\n * The SVG sits ON TOP of content with pointer-events: none.\n * Bezels are opaque -- they mask any content that spills over.\n * Screen area is transparent -- content shows through.\n */\nexport function GalaxyS25UltraSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1c1c1e\" : \"#e5e5e7\";\n const frameBorder = colorScheme === \"dark\" ? \"#3a3a3c\" : \"#c7c7cc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2c2c2e\" : \"#d1d1d6\";\n const punchHoleColor = \"#000000\";\n\n // Frame dimensions\n const bezelSide = 12;\n const bezelTop = 18;\n const bezelBottom = 18;\n const screenW = 384;\n const screenH = 824;\n const totalW = screenW + bezelSide * 2; // 408\n const totalH = screenH + bezelTop + bezelBottom; // 860\n const cornerRadius = 42;\n const outerRadius = cornerRadius + 8; // 50\n const screenRadius = cornerRadius; // 42\n\n return (\n <svg\n viewBox={`0 0 ${totalW} ${totalH}`}\n width={totalW}\n height={totalH}\n xmlns=\"http://www.w3.org/2000/svg\"\n style={style}\n >\n <defs>\n {/* Titanium frame gradient */}\n <linearGradient id=\"frame-gradient-galaxy-s25-ultra\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#262628\" : \"#ededef\"} />\n <stop offset=\"100%\" stopColor={frameColor} />\n </linearGradient>\n\n {/* Mask to punch a real hole for the screen area.\n White = visible, black = transparent (shows HTML content below) */}\n <mask id=\"frame-screen-mask-galaxy-s25-ultra\">\n <rect x=\"0\" y=\"0\" width={totalW} height={totalH} fill=\"white\" />\n <rect\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"black\"\n />\n </mask>\n </defs>\n\n {/* === OUTER FRAME (titanium body) with screen cutout === */}\n <rect\n x=\"0\"\n y=\"0\"\n width={totalW}\n height={totalH}\n rx={outerRadius}\n ry={outerRadius}\n fill=\"url(#frame-gradient-galaxy-s25-ultra)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-galaxy-s25-ultra)\"\n />\n\n {/* === SCREEN AREA marker -- fully transparent for data-zone derivation === */}\n <rect\n data-zone=\"screen-area\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"none\"\n />\n\n {/* === CENTER PUNCH-HOLE CAMERA === */}\n <circle\n data-zone=\"hardware-overlay\"\n data-zone-type=\"punch-hole-camera\"\n cx={bezelSide + screenW / 2}\n cy={bezelTop + 17}\n r=\"5\"\n fill={punchHoleColor}\n />\n\n {/* === SAFE AREA ZONES (invisible, for DLC derivation) === */}\n <rect\n data-zone=\"safe-area-top-inset\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"38\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 24}\n width={screenW}\n height=\"24\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"punch-hole\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"28\"\n fill=\"transparent\"\n />\n\n {/* === GESTURE NAVIGATION BAR (home indicator) === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"gesture-bar\"\n x={bezelSide + (screenW - 90) / 2}\n y={bezelTop + screenH - 10}\n width=\"90\"\n height=\"3\"\n rx=\"1.5\"\n ry=\"1.5\"\n fill=\"rgba(255,255,255,0.25)\"\n />\n\n {/* === HARDWARE BUTTONS (all on right side -- Samsung standard) === */}\n {/* Volume Up -- right side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"190\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Down -- right side */}\n <rect\n data-button=\"volume-down\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"226\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Power/Side Key -- right side, below volume */}\n <rect\n data-button=\"power\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"276\"\n width=\"3\"\n height=\"36\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n\n {/* === BOTTOM HARDWARE === */}\n {/* USB-C port */}\n <rect\n x={(totalW - 24) / 2}\n y={totalH - 5}\n width=\"24\"\n height=\"4\"\n rx=\"2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n {/* S Pen slot (small rectangle at bottom-right of frame) */}\n <rect\n x={totalW - bezelSide - 40}\n y={totalH - 4}\n width=\"16\"\n height=\"3\"\n rx=\"1\"\n fill={colorScheme === \"dark\" ? \"#0a0a0a\" : \"#aaa\"}\n />\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const GALAXY_S25_ULTRA_FRAME = {\n bezelTop: 18,\n bezelBottom: 18,\n bezelLeft: 12,\n bezelRight: 12,\n totalWidth: 408,\n totalHeight: 860,\n screenWidth: 384,\n screenHeight: 824,\n screenRadius: 42,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * Google Pixel 9 Pro — VERIFIED dimensions\n *\n * Screen: 393x851dp (CSS viewport)\n * Physical: 1080x2340px at 3x DPR\n * Display: 6.3\" LTPO OLED, 120Hz, ~423 PPI\n * Hardware: Center punch-hole camera, flat display\n */\nexport const PIXEL_9_PRO_META: DeviceMeta = {\n id: \"pixel-9-pro\",\n name: \"Pixel 9 Pro\",\n platform: \"android\",\n year: 2024,\n screen: {\n width: 393,\n height: 851,\n physicalWidth: 1080,\n physicalHeight: 2340,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 48,\n ppi: 423,\n },\n};\n\nexport const PIXEL_9_PRO_LAYOUT: DeviceLayoutData = {\n meta: PIXEL_9_PRO_META,\n safeArea: {\n portrait: { top: 32, bottom: 24, left: 0, right: 0 },\n landscape: { top: 0, bottom: 24, left: 32, right: 32 },\n },\n hardwareOverlays: {\n type: \"punch-hole\",\n portrait: {\n x: 192, // centered: (393 - 10) / 2 ~ 192\n y: 12,\n width: 10,\n height: 10,\n shape: \"circle\",\n cornerRadius: 5,\n },\n },\n statusBar: {\n height: 32,\n style: \"fullwidth\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"gestureline\",\n height: 5,\n width: 90,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 185 },\n volumeDown: { side: \"left\", yPosition: 220 },\n power: { side: \"right\", yPosition: 205 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * Pixel 9 Pro SVG Frame\n *\n * Dimensions: 393x851 logical points (screen area)\n * Full frame includes bezels: ~417x887pt total\n *\n * Structure:\n * - Outer matte aluminum frame with distinctively rounded corners (Pixel style)\n * - Screen cutout (transparent -- content shows through)\n * - Center punch-hole camera (small circle at top center)\n * - Power button on RIGHT side, Volume buttons on LEFT side (Pixel standard)\n * - Bottom elements (USB-C port)\n * - Gesture navigation bar (thin horizontal line near bottom)\n * - data-zone annotations for DLC auto-derivation\n *\n * The SVG sits ON TOP of content with pointer-events: none.\n * Bezels are opaque -- they mask any content that spills over.\n * Screen area is transparent -- content shows through.\n */\nexport function Pixel9ProSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1c1c1e\" : \"#e5e5e7\";\n const frameBorder = colorScheme === \"dark\" ? \"#3a3a3c\" : \"#c7c7cc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2c2c2e\" : \"#d1d1d6\";\n const punchHoleColor = \"#000000\";\n\n // Frame dimensions\n const bezelSide = 12;\n const bezelTop = 18;\n const bezelBottom = 18;\n const screenW = 393;\n const screenH = 851;\n const totalW = screenW + bezelSide * 2; // 417\n const totalH = screenH + bezelTop + bezelBottom; // 887\n const cornerRadius = 48;\n const outerRadius = cornerRadius + 8; // 56\n const screenRadius = cornerRadius; // 48\n\n return (\n <svg\n viewBox={`0 0 ${totalW} ${totalH}`}\n width={totalW}\n height={totalH}\n xmlns=\"http://www.w3.org/2000/svg\"\n style={style}\n >\n <defs>\n {/* Matte aluminum frame gradient */}\n <linearGradient id=\"frame-gradient-pixel-9-pro\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#262628\" : \"#ededef\"} />\n <stop offset=\"100%\" stopColor={frameColor} />\n </linearGradient>\n\n {/* Mask to punch a real hole for the screen area.\n White = visible, black = transparent (shows HTML content below) */}\n <mask id=\"frame-screen-mask-pixel-9-pro\">\n <rect x=\"0\" y=\"0\" width={totalW} height={totalH} fill=\"white\" />\n <rect\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"black\"\n />\n </mask>\n </defs>\n\n {/* === OUTER FRAME (matte aluminum body) with screen cutout === */}\n <rect\n x=\"0\"\n y=\"0\"\n width={totalW}\n height={totalH}\n rx={outerRadius}\n ry={outerRadius}\n fill=\"url(#frame-gradient-pixel-9-pro)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-pixel-9-pro)\"\n />\n\n {/* === SCREEN AREA marker -- fully transparent for data-zone derivation === */}\n <rect\n data-zone=\"screen-area\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"none\"\n />\n\n {/* === CENTER PUNCH-HOLE CAMERA === */}\n <circle\n data-zone=\"hardware-overlay\"\n data-zone-type=\"punch-hole-camera\"\n cx={bezelSide + screenW / 2}\n cy={bezelTop + 17}\n r=\"5\"\n fill={punchHoleColor}\n />\n\n {/* === SAFE AREA ZONES (invisible, for DLC derivation) === */}\n <rect\n data-zone=\"safe-area-top-inset\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 24}\n width={screenW}\n height=\"24\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"punch-hole\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n\n {/* === GESTURE NAVIGATION BAR (home indicator) === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"gesture-bar\"\n x={bezelSide + (screenW - 90) / 2}\n y={bezelTop + screenH - 10}\n width=\"90\"\n height=\"3\"\n rx=\"1.5\"\n ry=\"1.5\"\n fill=\"rgba(255,255,255,0.25)\"\n />\n\n {/* === HARDWARE BUTTONS (Pixel layout: power RIGHT, volume LEFT) === */}\n {/* Power button -- right side */}\n <rect\n data-button=\"power\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"210\"\n width=\"3\"\n height=\"36\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Up -- left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x={-1}\n y=\"240\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Down -- left side */}\n <rect\n data-button=\"volume-down\"\n data-side=\"left\"\n x={-1}\n y=\"276\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n\n {/* === BOTTOM HARDWARE === */}\n {/* USB-C port */}\n <rect\n x={(totalW - 24) / 2}\n y={totalH - 5}\n width=\"24\"\n height=\"4\"\n rx=\"2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const PIXEL_9_PRO_FRAME = {\n bezelTop: 18,\n bezelBottom: 18,\n bezelLeft: 12,\n bezelRight: 12,\n totalWidth: 417,\n totalHeight: 887,\n screenWidth: 393,\n screenHeight: 851,\n screenRadius: 48,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * Google Pixel 9 Pro XL — VERIFIED dimensions\n *\n * Screen: 448x968dp (CSS viewport)\n * Physical: 1344x2904px at 3x DPR\n * Display: 6.8\" LTPO OLED, 120Hz, ~486 PPI\n * Hardware: Center punch-hole camera, flat display\n */\nexport const PIXEL_9_PRO_XL_META: DeviceMeta = {\n id: \"pixel-9-pro-xl\",\n name: \"Pixel 9 Pro XL\",\n platform: \"android\",\n year: 2024,\n screen: {\n width: 448,\n height: 968,\n physicalWidth: 1344,\n physicalHeight: 2904,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 48,\n ppi: 486,\n },\n};\n\nexport const PIXEL_9_PRO_XL_LAYOUT: DeviceLayoutData = {\n meta: PIXEL_9_PRO_XL_META,\n safeArea: {\n portrait: { top: 32, bottom: 24, left: 0, right: 0 },\n landscape: { top: 0, bottom: 24, left: 32, right: 32 },\n },\n hardwareOverlays: {\n type: \"punch-hole\",\n portrait: {\n x: 219, // centered: (448 - 11) / 2 ~ 219\n y: 12,\n width: 11,\n height: 11,\n shape: \"circle\",\n cornerRadius: 5.5,\n },\n },\n statusBar: {\n height: 32,\n style: \"fullwidth\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"gestureline\",\n height: 5,\n width: 90,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 195 },\n volumeDown: { side: \"left\", yPosition: 235 },\n power: { side: \"right\", yPosition: 215 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * Pixel 9 Pro XL SVG Frame\n *\n * Dimensions: 448x968 logical points (screen area)\n * Full frame includes bezels: ~472x1004pt total\n *\n * Structure:\n * - Outer matte aluminum frame with distinctively rounded corners (Pixel style)\n * - Screen cutout (transparent -- content shows through)\n * - Center punch-hole camera (small circle at top center)\n * - Power button on RIGHT side, Volume buttons on LEFT side (Pixel standard)\n * - Bottom elements (USB-C port)\n * - Gesture navigation bar (thin horizontal line near bottom)\n * - data-zone annotations for DLC auto-derivation\n *\n * The SVG sits ON TOP of content with pointer-events: none.\n * Bezels are opaque -- they mask any content that spills over.\n * Screen area is transparent -- content shows through.\n */\nexport function Pixel9ProXLSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1c1c1e\" : \"#e5e5e7\";\n const frameBorder = colorScheme === \"dark\" ? \"#3a3a3c\" : \"#c7c7cc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2c2c2e\" : \"#d1d1d6\";\n const punchHoleColor = \"#000000\";\n\n // Frame dimensions\n const bezelSide = 12;\n const bezelTop = 18;\n const bezelBottom = 18;\n const screenW = 448;\n const screenH = 968;\n const totalW = screenW + bezelSide * 2; // 472\n const totalH = screenH + bezelTop + bezelBottom; // 1004\n const cornerRadius = 48;\n const outerRadius = cornerRadius + 8; // 56\n const screenRadius = cornerRadius; // 48\n\n return (\n <svg\n viewBox={`0 0 ${totalW} ${totalH}`}\n width={totalW}\n height={totalH}\n xmlns=\"http://www.w3.org/2000/svg\"\n style={style}\n >\n <defs>\n {/* Matte aluminum frame gradient */}\n <linearGradient id=\"frame-gradient-pixel-9-pro-xl\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#262628\" : \"#ededef\"} />\n <stop offset=\"100%\" stopColor={frameColor} />\n </linearGradient>\n\n {/* Mask to punch a real hole for the screen area.\n White = visible, black = transparent (shows HTML content below) */}\n <mask id=\"frame-screen-mask-pixel-9-pro-xl\">\n <rect x=\"0\" y=\"0\" width={totalW} height={totalH} fill=\"white\" />\n <rect\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"black\"\n />\n </mask>\n </defs>\n\n {/* === OUTER FRAME (matte aluminum body) with screen cutout === */}\n <rect\n x=\"0\"\n y=\"0\"\n width={totalW}\n height={totalH}\n rx={outerRadius}\n ry={outerRadius}\n fill=\"url(#frame-gradient-pixel-9-pro-xl)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-pixel-9-pro-xl)\"\n />\n\n {/* === SCREEN AREA marker -- fully transparent for data-zone derivation === */}\n <rect\n data-zone=\"screen-area\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height={screenH}\n rx={screenRadius}\n ry={screenRadius}\n fill=\"none\"\n />\n\n {/* === CENTER PUNCH-HOLE CAMERA === */}\n <circle\n data-zone=\"hardware-overlay\"\n data-zone-type=\"punch-hole-camera\"\n cx={bezelSide + screenW / 2}\n cy={bezelTop + 17.5}\n r=\"5.5\"\n fill={punchHoleColor}\n />\n\n {/* === SAFE AREA ZONES (invisible, for DLC derivation) === */}\n <rect\n data-zone=\"safe-area-top-inset\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 24}\n width={screenW}\n height=\"24\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"punch-hole\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"32\"\n fill=\"transparent\"\n />\n\n {/* === GESTURE NAVIGATION BAR (home indicator) === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"gesture-bar\"\n x={bezelSide + (screenW - 90) / 2}\n y={bezelTop + screenH - 10}\n width=\"90\"\n height=\"3\"\n rx=\"1.5\"\n ry=\"1.5\"\n fill=\"rgba(255,255,255,0.25)\"\n />\n\n {/* === HARDWARE BUTTONS (Pixel layout: power RIGHT, volume LEFT) === */}\n {/* Power button -- right side */}\n <rect\n data-button=\"power\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"220\"\n width=\"3\"\n height=\"36\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Up -- left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x={-1}\n y=\"250\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Volume Down -- left side */}\n <rect\n data-button=\"volume-down\"\n data-side=\"left\"\n x={-1}\n y=\"286\"\n width=\"3\"\n height=\"28\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n\n {/* === BOTTOM HARDWARE === */}\n {/* USB-C port */}\n <rect\n x={(totalW - 24) / 2}\n y={totalH - 5}\n width=\"24\"\n height=\"4\"\n rx=\"2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const PIXEL_9_PRO_XL_FRAME = {\n bezelTop: 18,\n bezelBottom: 18,\n bezelLeft: 12,\n bezelRight: 12,\n totalWidth: 472,\n totalHeight: 1004,\n screenWidth: 448,\n screenHeight: 968,\n screenRadius: 48,\n} as const;\n"]}
|