@biela.dev/devices 0.1.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ios/iphone-17-pro-max/metadata.ts","../src/ios/iphone-17-pro-max/frame.tsx","../src/ios/iphone-17-pro/metadata.ts","../src/ios/iphone-17-pro/frame.tsx","../src/ios/iphone-air/metadata.ts","../src/ios/iphone-air/frame.tsx","../src/ios/iphone-16e/metadata.ts","../src/ios/iphone-16e/frame.tsx","../src/ios/iphone-16/metadata.ts","../src/ios/iphone-16/frame.tsx","../src/ios/iphone-se-3/metadata.ts","../src/ios/iphone-se-3/frame.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"chunk-DGX4WRAK.js","sourcesContent":["import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * iPhone 17 Pro Max — dimensions\n *\n * Screen: 440x956pt (logical points at 1x)\n * Physical: 1320x2868px at 3x DPR\n * Display: 6.9\" LTPO Super Retina XDR OLED, 460 PPI\n * Hardware: Dynamic Island, Action Button, Camera Control\n * Frame: Titanium\n */\nexport const IPHONE_17_PRO_MAX_META: DeviceMeta = {\n id: \"iphone-17-pro-max\",\n name: \"iPhone 17 Pro Max\",\n platform: \"ios\",\n year: 2025,\n screen: {\n width: 440,\n height: 956,\n physicalWidth: 1320,\n physicalHeight: 2868,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 55,\n ppi: 460,\n },\n};\n\nexport const IPHONE_17_PRO_MAX_LAYOUT: DeviceLayoutData = {\n meta: IPHONE_17_PRO_MAX_META,\n safeArea: {\n portrait: { top: 62, bottom: 34, left: 0, right: 0 },\n landscape: { top: 20, bottom: 20, left: 62, right: 62 },\n },\n hardwareOverlays: {\n type: \"dynamic-island\",\n portrait: {\n x: 157, // centered: (440 - 126) / 2 = 157\n y: 11,\n width: 126,\n height: 37,\n shape: \"pill\",\n cornerRadius: 18.5,\n },\n },\n statusBar: {\n height: 54,\n style: \"dynamic-island\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"swipe-bar\",\n height: 5,\n width: 134,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 200 },\n volumeDown: { side: \"left\", yPosition: 240 },\n power: { side: \"right\", yPosition: 220 },\n actionButton: { side: \"left\", yPosition: 250 },\n cameraControl: { side: \"right\", yPosition: 500 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * iPhone 17 Pro Max SVG Frame\n *\n * Dimensions: 440x956 logical points (screen area)\n * Full frame includes bezels: ~470x1002pt total\n *\n * Structure:\n * - Outer titanium frame with rounded corners\n * - Screen cutout (transparent — content shows through)\n * - Dynamic Island pill overlay\n * - Side buttons (volume, action, power, camera control)\n * - Bottom elements (USB-C, speaker grilles)\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 IPhone17ProMaxSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1a1a1a\" : \"#e8e8e8\";\n const frameBorder = colorScheme === \"dark\" ? \"#333\" : \"#ccc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2a2a2a\" : \"#d0d0d0\";\n const islandColor = \"#000000\";\n\n // Frame dimensions: 15pt bezel on each side, 23pt top bezel, 23pt bottom bezel\n const bezelSide = 15;\n const bezelTop = 23;\n const bezelBottom = 23;\n const screenW = 440;\n const screenH = 956;\n const totalW = screenW + bezelSide * 2; // 470\n const totalH = screenH + bezelTop + bezelBottom; // 1002\n const outerRadius = 62;\n const screenRadius = 55;\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-iphone-17-pro-max\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#252525\" : \"#f0f0f0\"} />\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-iphone-17-pro-max\">\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-iphone-17-pro-max)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-iphone-17-pro-max)\"\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 {/* === DYNAMIC ISLAND === */}\n <rect\n data-zone=\"hardware-overlay\"\n data-zone-type=\"dynamic-island\"\n data-zone-shape=\"pill\"\n x={bezelSide + 157}\n y={bezelTop + 11}\n width=\"126\"\n height=\"37\"\n rx=\"18.5\"\n ry=\"18.5\"\n fill={islandColor}\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=\"62\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 34}\n width={screenW}\n height=\"34\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"dynamic-island\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"54\"\n fill=\"transparent\"\n />\n\n {/* === HOME INDICATOR === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"swipe-bar\"\n x={bezelSide + (screenW - 134) / 2}\n y={bezelTop + screenH - 13}\n width=\"134\"\n height=\"5\"\n rx=\"2.5\"\n ry=\"2.5\"\n fill=\"rgba(255,255,255,0.3)\"\n />\n\n {/* === HARDWARE BUTTONS === */}\n {/* Volume Up — left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x=\"-1\"\n y=\"200\"\n width=\"3\"\n height=\"32\"\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=\"240\"\n width=\"3\"\n height=\"32\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Action Button — left side */}\n <rect\n data-button=\"action\"\n data-side=\"left\"\n x=\"-1\"\n y=\"170\"\n width=\"3\"\n height=\"20\"\n rx=\"1.5\"\n fill={buttonColor}\n />\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=\"40\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Camera Control — right side */}\n <circle\n data-button=\"camera\"\n data-side=\"right\"\n cx={totalW - 0.5}\n cy=\"500\"\n r=\"6\"\n fill={buttonColor}\n stroke={frameBorder}\n strokeWidth=\"0.5\"\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 {/* Speaker grille left */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-l-${i}`}\n cx={(totalW / 2) - 30 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n {/* Speaker grille right */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-r-${i}`}\n cx={(totalW / 2) + 8 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const IPHONE_17_PRO_MAX_FRAME = {\n bezelTop: 23,\n bezelBottom: 23,\n bezelLeft: 15,\n bezelRight: 15,\n totalWidth: 470,\n totalHeight: 1002,\n screenWidth: 440,\n screenHeight: 956,\n screenRadius: 55,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * iPhone 17 Pro — dimensions\n *\n * Screen: 402x874pt (logical points at 1x)\n * Physical: 1206x2622px at 3x DPR\n * Display: 6.3\" LTPO Super Retina XDR OLED, 460 PPI\n * Hardware: Dynamic Island, Action Button, Camera Control\n * Frame: Titanium\n */\nexport const IPHONE_17_PRO_META: DeviceMeta = {\n id: \"iphone-17-pro\",\n name: \"iPhone 17 Pro\",\n platform: \"ios\",\n year: 2025,\n screen: {\n width: 402,\n height: 874,\n physicalWidth: 1206,\n physicalHeight: 2622,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 55,\n ppi: 460,\n },\n};\n\nexport const IPHONE_17_PRO_LAYOUT: DeviceLayoutData = {\n meta: IPHONE_17_PRO_META,\n safeArea: {\n portrait: { top: 62, bottom: 34, left: 0, right: 0 },\n landscape: { top: 20, bottom: 20, left: 62, right: 62 },\n },\n hardwareOverlays: {\n type: \"dynamic-island\",\n portrait: {\n x: 138, // centered: (402 - 126) / 2 = 138\n y: 11,\n width: 126,\n height: 37,\n shape: \"pill\",\n cornerRadius: 18.5,\n },\n },\n statusBar: {\n height: 54,\n style: \"dynamic-island\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"swipe-bar\",\n height: 5,\n width: 134,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 200 },\n volumeDown: { side: \"left\", yPosition: 240 },\n power: { side: \"right\", yPosition: 220 },\n actionButton: { side: \"left\", yPosition: 250 },\n cameraControl: { side: \"right\", yPosition: 500 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * iPhone 17 Pro SVG Frame\n *\n * Dimensions: 402x874 logical points (screen area)\n * Full frame includes bezels: ~432x920pt total\n *\n * Structure:\n * - Outer titanium frame with rounded corners\n * - Screen cutout (transparent — content shows through)\n * - Dynamic Island pill overlay\n * - Side buttons (volume, action, power, camera control)\n * - Bottom elements (USB-C, speaker grilles)\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 IPhone17ProSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1a1a1a\" : \"#e8e8e8\";\n const frameBorder = colorScheme === \"dark\" ? \"#333\" : \"#ccc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2a2a2a\" : \"#d0d0d0\";\n const islandColor = \"#000000\";\n\n // Frame dimensions: 15pt bezel on each side, 23pt top bezel, 23pt bottom bezel\n const bezelSide = 15;\n const bezelTop = 23;\n const bezelBottom = 23;\n const screenW = 402;\n const screenH = 874;\n const totalW = screenW + bezelSide * 2; // 432\n const totalH = screenH + bezelTop + bezelBottom; // 920\n const outerRadius = 62;\n const screenRadius = 55;\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-iphone-17-pro\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#252525\" : \"#f0f0f0\"} />\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-iphone-17-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 (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-iphone-17-pro)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-iphone-17-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 {/* === DYNAMIC ISLAND === */}\n <rect\n data-zone=\"hardware-overlay\"\n data-zone-type=\"dynamic-island\"\n data-zone-shape=\"pill\"\n x={bezelSide + 138}\n y={bezelTop + 11}\n width=\"126\"\n height=\"37\"\n rx=\"18.5\"\n ry=\"18.5\"\n fill={islandColor}\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=\"62\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 34}\n width={screenW}\n height=\"34\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"dynamic-island\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"54\"\n fill=\"transparent\"\n />\n\n {/* === HOME INDICATOR === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"swipe-bar\"\n x={bezelSide + (screenW - 134) / 2}\n y={bezelTop + screenH - 13}\n width=\"134\"\n height=\"5\"\n rx=\"2.5\"\n ry=\"2.5\"\n fill=\"rgba(255,255,255,0.3)\"\n />\n\n {/* === HARDWARE BUTTONS === */}\n {/* Volume Up — left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x=\"-1\"\n y=\"200\"\n width=\"3\"\n height=\"32\"\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=\"240\"\n width=\"3\"\n height=\"32\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Action Button — left side */}\n <rect\n data-button=\"action\"\n data-side=\"left\"\n x=\"-1\"\n y=\"170\"\n width=\"3\"\n height=\"20\"\n rx=\"1.5\"\n fill={buttonColor}\n />\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=\"40\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Camera Control — right side */}\n <circle\n data-button=\"camera\"\n data-side=\"right\"\n cx={totalW - 0.5}\n cy=\"500\"\n r=\"6\"\n fill={buttonColor}\n stroke={frameBorder}\n strokeWidth=\"0.5\"\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 {/* Speaker grille left */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-l-${i}`}\n cx={(totalW / 2) - 30 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n {/* Speaker grille right */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-r-${i}`}\n cx={(totalW / 2) + 8 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const IPHONE_17_PRO_FRAME = {\n bezelTop: 23,\n bezelBottom: 23,\n bezelLeft: 15,\n bezelRight: 15,\n totalWidth: 432,\n totalHeight: 920,\n screenWidth: 402,\n screenHeight: 874,\n screenRadius: 55,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * iPhone Air — dimensions\n *\n * Screen: 420x912pt (logical points at 1x)\n * Physical: 1260x2736px at 3x DPR\n * Display: 6.6\" Super Retina XDR OLED, 460 PPI\n * Hardware: Dynamic Island (no Action Button, no Camera Control)\n * Frame: Aluminum (ultra-thin 5.8mm)\n */\nexport const IPHONE_AIR_META: DeviceMeta = {\n id: \"iphone-air\",\n name: \"iPhone Air\",\n platform: \"ios\",\n year: 2025,\n screen: {\n width: 420,\n height: 912,\n physicalWidth: 1260,\n physicalHeight: 2736,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 55,\n ppi: 460,\n },\n};\n\nexport const IPHONE_AIR_LAYOUT: DeviceLayoutData = {\n meta: IPHONE_AIR_META,\n safeArea: {\n portrait: { top: 68, bottom: 34, left: 0, right: 0 },\n landscape: { top: 20, bottom: 29, left: 68, right: 68 },\n },\n hardwareOverlays: {\n type: \"dynamic-island\",\n portrait: {\n x: 147, // centered: (420 - 126) / 2 = 147\n y: 11,\n width: 126,\n height: 37,\n shape: \"pill\",\n cornerRadius: 18.5,\n },\n },\n statusBar: {\n height: 54,\n style: \"dynamic-island\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"swipe-bar\",\n height: 5,\n width: 134,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 210 },\n volumeDown: { side: \"left\", yPosition: 250 },\n power: { side: \"right\", yPosition: 230 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * iPhone Air SVG Frame\n *\n * Dimensions: 420x912 logical points (screen area)\n * Full frame includes bezels: ~440x952pt total\n *\n * Structure:\n * - Outer aluminum frame with rounded corners (ultra-thin)\n * - Screen cutout (transparent — content shows through)\n * - Dynamic Island pill overlay\n * - Side buttons (volume, power — no action button, no camera control)\n * - Bottom elements (USB-C, speaker grilles)\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 IPhoneAirSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1a1a1a\" : \"#e8e8e8\";\n const frameBorder = colorScheme === \"dark\" ? \"#333\" : \"#ccc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2a2a2a\" : \"#d0d0d0\";\n const islandColor = \"#000000\";\n\n // Frame dimensions: 10pt bezel on each side, 20pt top bezel, 20pt bottom bezel (thinner than Pro)\n const bezelSide = 10;\n const bezelTop = 20;\n const bezelBottom = 20;\n const screenW = 420;\n const screenH = 912;\n const totalW = screenW + bezelSide * 2; // 440\n const totalH = screenH + bezelTop + bezelBottom; // 952\n const outerRadius = 60;\n const screenRadius = 55;\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-iphone-air\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#252525\" : \"#f0f0f0\"} />\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-iphone-air\">\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-iphone-air)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-iphone-air)\"\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 {/* === DYNAMIC ISLAND === */}\n <rect\n data-zone=\"hardware-overlay\"\n data-zone-type=\"dynamic-island\"\n data-zone-shape=\"pill\"\n x={bezelSide + 147}\n y={bezelTop + 11}\n width=\"126\"\n height=\"37\"\n rx=\"18.5\"\n ry=\"18.5\"\n fill={islandColor}\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=\"68\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 34}\n width={screenW}\n height=\"34\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"dynamic-island\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"54\"\n fill=\"transparent\"\n />\n\n {/* === HOME INDICATOR === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"swipe-bar\"\n x={bezelSide + (screenW - 134) / 2}\n y={bezelTop + screenH - 13}\n width=\"134\"\n height=\"5\"\n rx=\"2.5\"\n ry=\"2.5\"\n fill=\"rgba(255,255,255,0.3)\"\n />\n\n {/* === HARDWARE BUTTONS === */}\n {/* Volume Up — left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x=\"-1\"\n y=\"200\"\n width=\"3\"\n height=\"32\"\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=\"240\"\n width=\"3\"\n height=\"32\"\n rx=\"1.5\"\n fill={buttonColor}\n />\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=\"40\"\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 {/* Speaker grille left */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-l-${i}`}\n cx={(totalW / 2) - 30 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n {/* Speaker grille right */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-r-${i}`}\n cx={(totalW / 2) + 8 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const IPHONE_AIR_FRAME = {\n bezelTop: 20,\n bezelBottom: 20,\n bezelLeft: 10,\n bezelRight: 10,\n totalWidth: 440,\n totalHeight: 952,\n screenWidth: 420,\n screenHeight: 912,\n screenRadius: 55,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * iPhone 16e — dimensions (NOTCH device)\n *\n * Screen: 390x844pt (logical points at 1x)\n * Physical: 1170x2532px at 3x DPR\n * Display: 6.1\" Super Retina XDR OLED, 460 PPI\n * Hardware: Notch (no Action Button, no Camera Control)\n * Frame: Aluminum\n */\nexport const IPHONE_16E_META: DeviceMeta = {\n id: \"iphone-16e\",\n name: \"iPhone 16e\",\n platform: \"ios\",\n year: 2025,\n screen: {\n width: 390,\n height: 844,\n physicalWidth: 1170,\n physicalHeight: 2532,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 50,\n ppi: 460,\n },\n};\n\nexport const IPHONE_16E_LAYOUT: DeviceLayoutData = {\n meta: IPHONE_16E_META,\n safeArea: {\n portrait: { top: 47, bottom: 34, left: 0, right: 0 },\n landscape: { top: 0, bottom: 21, left: 47, right: 47 },\n },\n hardwareOverlays: {\n type: \"notch\",\n portrait: {\n x: 90, // centered: (390 - 210) / 2 = 90\n y: 0,\n width: 210,\n height: 30,\n shape: \"rectangle\",\n cornerRadius: 20,\n },\n },\n statusBar: {\n height: 44,\n style: \"notch\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"swipe-bar\",\n height: 5,\n width: 134,\n visible: true,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 180 },\n volumeDown: { side: \"left\", yPosition: 220 },\n power: { side: \"right\", yPosition: 195 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * iPhone 16e SVG Frame (NOTCH device)\n *\n * Dimensions: 390x844 logical points (screen area)\n * Full frame includes bezels: ~414x884pt total\n *\n * Structure:\n * - Outer aluminum frame with rounded corners\n * - Screen cutout (transparent — content shows through)\n * - Notch cutout at top center (wider, taller than Dynamic Island)\n * - Side buttons (volume, power — no action button, no camera control)\n * - Bottom elements (USB-C, speaker grilles)\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 IPhone16eSVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1a1a1a\" : \"#e8e8e8\";\n const frameBorder = colorScheme === \"dark\" ? \"#333\" : \"#ccc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2a2a2a\" : \"#d0d0d0\";\n const notchColor = \"#000000\";\n\n // Frame dimensions: 12pt bezel on each side, 20pt top bezel, 20pt bottom bezel\n const bezelSide = 12;\n const bezelTop = 20;\n const bezelBottom = 20;\n const screenW = 390;\n const screenH = 844;\n const totalW = screenW + bezelSide * 2; // 414\n const totalH = screenH + bezelTop + bezelBottom; // 884\n const outerRadius = 56;\n const screenRadius = 50;\n\n // Notch dimensions\n const notchWidth = 210;\n const notchHeight = 30;\n const notchX = (screenW - notchWidth) / 2; // 90\n const notchRadius = 20;\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-iphone-16e\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#252525\" : \"#f0f0f0\"} />\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-iphone-16e\">\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-iphone-16e)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-iphone-16e)\"\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 {/* === NOTCH CUTOUT === */}\n {/* The notch is a wider, taller cutout at the top center of the screen,\n housing the front camera and sensors. Unlike Dynamic Island, it extends\n from the very top edge of the screen. */}\n <rect\n data-zone=\"hardware-overlay\"\n data-zone-type=\"notch\"\n data-zone-shape=\"rectangle\"\n x={bezelSide + notchX}\n y={bezelTop}\n width={notchWidth}\n height={notchHeight}\n rx={notchRadius}\n ry={notchRadius}\n fill={notchColor}\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=\"47\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 34}\n width={screenW}\n height=\"34\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"notch\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"44\"\n fill=\"transparent\"\n />\n\n {/* === HOME INDICATOR === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"swipe-bar\"\n x={bezelSide + (screenW - 134) / 2}\n y={bezelTop + screenH - 13}\n width=\"134\"\n height=\"5\"\n rx=\"2.5\"\n ry=\"2.5\"\n fill=\"rgba(255,255,255,0.3)\"\n />\n\n {/* === HARDWARE BUTTONS === */}\n {/* Volume Up — left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x=\"-1\"\n y=\"190\"\n width=\"3\"\n height=\"32\"\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=\"230\"\n width=\"3\"\n height=\"32\"\n rx=\"1.5\"\n fill={buttonColor}\n />\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=\"40\"\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 {/* Speaker grille left */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-l-${i}`}\n cx={(totalW / 2) - 30 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n {/* Speaker grille right */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-r-${i}`}\n cx={(totalW / 2) + 8 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const IPHONE_16E_FRAME = {\n bezelTop: 20,\n bezelBottom: 20,\n bezelLeft: 12,\n bezelRight: 12,\n totalWidth: 414,\n totalHeight: 884,\n screenWidth: 390,\n screenHeight: 844,\n screenRadius: 50,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * iPhone 16 — VERIFIED dimensions\n *\n * Screen: 393×852pt (logical points at 1x)\n * Physical: 1179×2556px at 3x DPR\n * Display: 6.1\" Super Retina XDR OLED, 460 PPI\n * Hardware: Dynamic Island, Camera Control\n */\nexport const IPHONE_16_META: DeviceMeta = {\n id: \"iphone-16\",\n name: \"iPhone 16\",\n platform: \"ios\",\n year: 2024,\n screen: {\n width: 393,\n height: 852,\n physicalWidth: 1179,\n physicalHeight: 2556,\n dpr: 3,\n aspectRatio: \"19.5:9\",\n cornerRadius: 55,\n ppi: 460,\n },\n};\n\nexport const IPHONE_16_LAYOUT: DeviceLayoutData = {\n meta: IPHONE_16_META,\n safeArea: {\n portrait: { top: 59, bottom: 34, left: 0, right: 0 },\n landscape: { top: 0, bottom: 21, left: 59, right: 59 },\n },\n hardwareOverlays: {\n type: \"dynamic-island\",\n portrait: {\n x: 133.5, // centered: (393 - 126) / 2 = 133.5\n y: 11,\n width: 126,\n height: 37,\n shape: \"pill\",\n cornerRadius: 18.5,\n },\n },\n statusBar: {\n height: 54,\n style: \"dynamic-island\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"swipe-bar\",\n height: 5,\n width: 134,\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 cameraControl: { side: \"right\", yPosition: 480 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * iPhone 16 SVG Frame\n *\n * Dimensions: 393x852 logical points (screen area)\n * Full frame includes bezels: ~423x898pt total\n *\n * Structure:\n * - Outer aluminum frame with rounded corners\n * - Screen cutout (transparent — content shows through)\n * - Dynamic Island pill overlay\n * - Side buttons (volume, power, camera control — no action button)\n * - Bottom elements (USB-C, speaker grilles)\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 IPhone16SVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1a1a1a\" : \"#e8e8e8\";\n const frameBorder = colorScheme === \"dark\" ? \"#333\" : \"#ccc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2a2a2a\" : \"#d0d0d0\";\n const islandColor = \"#000000\";\n\n // Frame dimensions: 15pt bezel on each side, 23pt top bezel, 23pt bottom bezel\n const bezelSide = 15;\n const bezelTop = 23;\n const bezelBottom = 23;\n const screenW = 393;\n const screenH = 852;\n const totalW = screenW + bezelSide * 2; // 423\n const totalH = screenH + bezelTop + bezelBottom; // 898\n const outerRadius = 55;\n const screenRadius = 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 {/* Aluminum frame gradient */}\n <linearGradient id=\"frame-gradient-iphone-16\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#252525\" : \"#f0f0f0\"} />\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-iphone-16\">\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-iphone-16)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-iphone-16)\"\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 {/* === DYNAMIC ISLAND === */}\n <rect\n data-zone=\"hardware-overlay\"\n data-zone-type=\"dynamic-island\"\n data-zone-shape=\"pill\"\n x={bezelSide + (screenW - 126) / 2}\n y={bezelTop + 11}\n width=\"126\"\n height=\"37\"\n rx=\"18.5\"\n ry=\"18.5\"\n fill={islandColor}\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=\"62\"\n fill=\"transparent\"\n />\n <rect\n data-zone=\"safe-area-bottom-inset\"\n x={bezelSide}\n y={bezelTop + screenH - 34}\n width={screenW}\n height=\"34\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"dynamic-island\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"54\"\n fill=\"transparent\"\n />\n\n {/* === HOME INDICATOR === */}\n <rect\n data-zone=\"home-indicator\"\n data-zone-type=\"swipe-bar\"\n x={bezelSide + (screenW - 134) / 2}\n y={bezelTop + screenH - 13}\n width=\"134\"\n height=\"5\"\n rx=\"2.5\"\n ry=\"2.5\"\n fill=\"rgba(255,255,255,0.3)\"\n />\n\n {/* === HARDWARE BUTTONS === */}\n {/* Volume Up — left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x=\"-1\"\n y=\"200\"\n width=\"3\"\n height=\"32\"\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=\"240\"\n width=\"3\"\n height=\"32\"\n rx=\"1.5\"\n fill={buttonColor}\n />\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=\"40\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Camera Control — right side */}\n <circle\n data-button=\"camera\"\n data-side=\"right\"\n cx={totalW - 0.5}\n cy=\"500\"\n r=\"6\"\n fill={buttonColor}\n stroke={frameBorder}\n strokeWidth=\"0.5\"\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 {/* Speaker grille left */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-l-${i}`}\n cx={(totalW / 2) - 30 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n {/* Speaker grille right */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-r-${i}`}\n cx={(totalW / 2) + 8 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const IPHONE_16_FRAME = {\n bezelTop: 23,\n bezelBottom: 23,\n bezelLeft: 15,\n bezelRight: 15,\n totalWidth: 423,\n totalHeight: 898,\n screenWidth: 393,\n screenHeight: 852,\n screenRadius: 48,\n} as const;\n","import type { DeviceMeta } from \"../../types\";\nimport type { DeviceLayoutData } from \"../../contract-types\";\n\n/**\n * iPhone SE (3rd Gen) — LEGACY device with home button\n *\n * Screen: 375x667pt (logical points at 1x)\n * Physical: 750x1334px at 2x DPR\n * Display: 4.7\" Retina HD LCD, 326 PPI\n * Hardware: Physical home button (Touch ID), no notch/island\n * Frame: Aluminum, thick top/bottom bezels\n */\nexport const IPHONE_SE_3_META: DeviceMeta = {\n id: \"iphone-se-3\",\n name: \"iPhone SE (3rd Gen)\",\n platform: \"ios\",\n year: 2022,\n screen: {\n width: 375,\n height: 667,\n physicalWidth: 750,\n physicalHeight: 1334,\n dpr: 2,\n aspectRatio: \"16:9\",\n cornerRadius: 5,\n ppi: 326,\n },\n};\n\nexport const IPHONE_SE_3_LAYOUT: DeviceLayoutData = {\n meta: IPHONE_SE_3_META,\n safeArea: {\n portrait: { top: 20, bottom: 0, left: 0, right: 0 },\n landscape: { top: 0, bottom: 0, left: 0, right: 0 },\n },\n hardwareOverlays: {\n type: \"none\",\n portrait: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n shape: \"rectangle\",\n },\n },\n statusBar: {\n height: 20,\n style: \"fullwidth\",\n hasTime: true,\n hasBattery: true,\n hasSignal: true,\n },\n homeIndicator: {\n type: \"button\",\n height: 0,\n visible: false,\n },\n hardwareButtons: {\n volumeUp: { side: \"left\", yPosition: 135 },\n volumeDown: { side: \"left\", yPosition: 165 },\n power: { side: \"right\", yPosition: 90 },\n },\n};\n","interface DeviceSVGProps {\n colorScheme?: \"light\" | \"dark\";\n style?: React.CSSProperties;\n}\n\n/**\n * iPhone SE (3rd Gen) SVG Frame — LEGACY home button design\n *\n * Dimensions: 375x667 logical points (screen area)\n * Full frame includes bezels: ~395x807pt total\n *\n * Structure:\n * - Outer aluminum frame with rounded corners\n * - Rectangular screen cutout (nearly square corners, no notch/island)\n * - Thick top bezel with earpiece speaker slot + front camera\n * - Thick bottom bezel with physical circular home button (Touch ID)\n * - Side buttons (volume, power — no action button, no camera control)\n * - Bottom elements (Lightning/USB-C, speaker grilles)\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 IPhoneSE3SVG({ colorScheme = \"dark\", style }: DeviceSVGProps) {\n const frameColor = colorScheme === \"dark\" ? \"#1a1a1a\" : \"#e8e8e8\";\n const frameBorder = colorScheme === \"dark\" ? \"#333\" : \"#ccc\";\n const buttonColor = colorScheme === \"dark\" ? \"#2a2a2a\" : \"#d0d0d0\";\n\n // Frame dimensions: thick top/bottom bezels for earpiece + home button\n const bezelSide = 10;\n const bezelTop = 70;\n const bezelBottom = 70;\n const screenW = 375;\n const screenH = 667;\n const totalW = screenW + bezelSide * 2; // 395\n const totalH = screenH + bezelTop + bezelBottom; // 807\n const outerRadius = 36;\n const screenRadius = 5;\n\n // Home button dimensions\n const homeButtonDiameter = 58;\n const homeButtonRadius = homeButtonDiameter / 2; // 29\n const homeButtonCX = totalW / 2;\n const homeButtonCY = bezelTop + screenH + bezelBottom / 2; // center of bottom bezel\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-iphone-se-3\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={frameColor} />\n <stop offset=\"50%\" stopColor={colorScheme === \"dark\" ? \"#252525\" : \"#f0f0f0\"} />\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-iphone-se-3\">\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-iphone-se-3)\"\n stroke={frameBorder}\n strokeWidth=\"1.5\"\n mask=\"url(#frame-screen-mask-iphone-se-3)\"\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 {/* === TOP BEZEL HARDWARE === */}\n {/* Earpiece speaker slot */}\n <rect\n x={(totalW - 40) / 2}\n y={28}\n width=\"40\"\n height=\"5\"\n rx=\"2.5\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n {/* Front camera */}\n <circle\n cx={(totalW / 2) + 32}\n cy={30}\n r=\"4\"\n fill={colorScheme === \"dark\" ? \"#0a0a0a\" : \"#999\"}\n />\n\n {/* === BOTTOM BEZEL — PHYSICAL HOME BUTTON === */}\n {/* Home button outer ring */}\n <circle\n cx={homeButtonCX}\n cy={homeButtonCY}\n r={homeButtonRadius}\n fill=\"none\"\n stroke={colorScheme === \"dark\" ? \"#444\" : \"#bbb\"}\n strokeWidth=\"2\"\n />\n {/* Home button inner surface */}\n <circle\n cx={homeButtonCX}\n cy={homeButtonCY}\n r={homeButtonRadius - 3}\n fill={colorScheme === \"dark\" ? \"#0f0f0f\" : \"#ddd\"}\n />\n {/* Home button rounded square icon (Touch ID hint) */}\n <rect\n x={homeButtonCX - 8}\n y={homeButtonCY - 8}\n width=\"16\"\n height=\"16\"\n rx=\"4\"\n ry=\"4\"\n fill=\"none\"\n stroke={colorScheme === \"dark\" ? \"#333\" : \"#ccc\"}\n strokeWidth=\"1\"\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=\"20\"\n fill=\"transparent\"\n />\n\n {/* === STATUS BAR ZONE === */}\n <rect\n data-zone=\"status-bar\"\n data-zone-style=\"fullwidth\"\n x={bezelSide}\n y={bezelTop}\n width={screenW}\n height=\"20\"\n fill=\"transparent\"\n />\n\n {/* === HARDWARE BUTTONS === */}\n {/* Volume Up — left side */}\n <rect\n data-button=\"volume-up\"\n data-side=\"left\"\n x=\"-1\"\n y=\"160\"\n width=\"3\"\n height=\"32\"\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=\"200\"\n width=\"3\"\n height=\"32\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n {/* Power Button — right side */}\n <rect\n data-button=\"power\"\n data-side=\"right\"\n x={totalW - 2}\n y=\"140\"\n width=\"3\"\n height=\"40\"\n rx=\"1.5\"\n fill={buttonColor}\n />\n\n {/* === BOTTOM HARDWARE === */}\n {/* Lightning port */}\n <rect\n x={(totalW - 20) / 2}\n y={totalH - 5}\n width=\"20\"\n height=\"4\"\n rx=\"2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#bbb\"}\n />\n {/* Speaker grille left */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-l-${i}`}\n cx={(totalW / 2) - 28 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n {/* Speaker grille right */}\n {[0, 1, 2, 3, 4, 5].map((i) => (\n <circle\n key={`speaker-r-${i}`}\n cx={(totalW / 2) + 6 + i * 6}\n cy={totalH - 8}\n r=\"1.2\"\n fill={colorScheme === \"dark\" ? \"#111\" : \"#aaa\"}\n />\n ))}\n </svg>\n );\n}\n\n/** Frame dimensions needed by DeviceFrame to position content correctly */\nexport const IPHONE_SE_3_FRAME = {\n bezelTop: 70,\n bezelBottom: 70,\n bezelLeft: 10,\n bezelRight: 10,\n totalWidth: 395,\n totalHeight: 807,\n screenWidth: 375,\n screenHeight: 667,\n screenRadius: 5,\n} as const;\n"]}