|  |  | @ -3,7 +3,7 @@ | 
			
		
	
		
			
				
					|  |  |  |   <!-- CONTENT --> | 
			
		
	
		
			
				
					|  |  |  |   <section id="Content" class="p-6 pb-24 max-w-3xl mx-auto"> | 
			
		
	
		
			
				
					|  |  |  |     <div class="mb-2"> | 
			
		
	
		
			
				
					|  |  |  |       <h1 class="text-2xl text-center font-light relative px-7"> | 
			
		
	
		
			
				
					|  |  |  |       <h1 class="text-2xl text-center font-semibold relative px-7"> | 
			
		
	
		
			
				
					|  |  |  |         <!-- Back --> | 
			
		
	
		
			
				
					|  |  |  |         <a | 
			
		
	
		
			
				
					|  |  |  |           class="text-lg text-center font-light px-2 py-1 absolute -left-2 -top-1" | 
			
		
	
	
		
			
				
					|  |  | @ -18,7 +18,7 @@ | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <p | 
			
		
	
		
			
				
					|  |  |  |       v-if="!givenName" | 
			
		
	
		
			
				
					|  |  |  |       class="bg-amber-200 rounded-md overflow-hidden text-center px-4 py-3 mb-4" | 
			
		
	
		
			
				
					|  |  |  |       class="bg-amber-200 rounded-md overflow-hidden text-center px-4 py-3 my-4" | 
			
		
	
		
			
				
					|  |  |  |     > | 
			
		
	
		
			
				
					|  |  |  |       <span class="text-red">Beware!</span> | 
			
		
	
		
			
				
					|  |  |  |       You aren't sharing your name, so quickly | 
			
		
	
	
		
			
				
					|  |  | @ -35,7 +35,7 @@ | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <div | 
			
		
	
		
			
				
					|  |  |  |       v-if="activeDid && activeDid.startsWith(ETHR_DID_PREFIX)" | 
			
		
	
		
			
				
					|  |  |  |       class="text-center" | 
			
		
	
		
			
				
					|  |  |  |       class="block w-[67vw] max-w-[33vh] mx-auto my-2" | 
			
		
	
		
			
				
					|  |  |  |       @click="onCopyUrlToClipboard()" | 
			
		
	
		
			
				
					|  |  |  |     > | 
			
		
	
		
			
				
					|  |  |  |       <!-- | 
			
		
	
	
		
			
				
					|  |  | @ -44,13 +44,14 @@ | 
			
		
	
		
			
				
					|  |  |  |       --> | 
			
		
	
		
			
				
					|  |  |  |       <QRCodeVue3 | 
			
		
	
		
			
				
					|  |  |  |         :value="qrValue" | 
			
		
	
		
			
				
					|  |  |  |         :corners-square-options="{ type: 'extra-rounded' }" | 
			
		
	
		
			
				
					|  |  |  |         :dots-options="{ type: 'square' }" | 
			
		
	
		
			
				
					|  |  |  |         class="flex justify-center" | 
			
		
	
		
			
				
					|  |  |  |         :width="640" | 
			
		
	
		
			
				
					|  |  |  |         :height="640" | 
			
		
	
		
			
				
					|  |  |  |         :corners-square-options="{ type: 'square' }" | 
			
		
	
		
			
				
					|  |  |  |         :dots-options="{ type: 'square', color: '#000' }" | 
			
		
	
		
			
				
					|  |  |  |       /> | 
			
		
	
		
			
				
					|  |  |  |       <span> | 
			
		
	
		
			
				
					|  |  |  |       <div class="text-center text-sm text-gray-500"> | 
			
		
	
		
			
				
					|  |  |  |         Click the QR code to copy your contact info to your clipboard. | 
			
		
	
		
			
				
					|  |  |  |       </span> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |     <div v-else-if="activeDid" class="text-center"> | 
			
		
	
		
			
				
					|  |  |  |       <!-- Not an ETHR DID so force them to paste it. (Passkey Peer DIDs are too big.) --> | 
			
		
	
	
		
			
				
					|  |  | @ -74,11 +75,11 @@ | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <div class="text-center"> | 
			
		
	
		
			
				
					|  |  |  |       <h1 class="text-2xl text-center font-light pt-6">Scan Contact Info</h1> | 
			
		
	
		
			
				
					|  |  |  |       <div v-if="isScanning" class="relative aspect-square max-w-sm mx-auto"> | 
			
		
	
		
			
				
					|  |  |  |       <h2 class="text-2xl text-center font-semibold mt-6 mb-2">Scan Contact Info</h2> | 
			
		
	
		
			
				
					|  |  |  |       <div v-if="isScanning" class="relative aspect-square rounded-xl overflow-hidden bg-slate-800 w-[67vw] max-w-[33vh] mx-auto"> | 
			
		
	
		
			
				
					|  |  |  |         <!-- Status Message --> | 
			
		
	
		
			
				
					|  |  |  |         <div | 
			
		
	
		
			
				
					|  |  |  |           class="absolute top-0 left-0 right-0 bg-black bg-opacity-50 text-white text-center py-2 z-10" | 
			
		
	
		
			
				
					|  |  |  |           class="absolute top-0 left-0 right-0 bg-black bg-opacity-50 text-white text-sm text-center py-2 z-10" | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |           <div | 
			
		
	
		
			
				
					|  |  |  |             v-if="isInitializing" | 
			
		
	
	
		
			
				
					|  |  | @ -116,8 +117,8 @@ | 
			
		
	
		
			
				
					|  |  |  |             ></span> | 
			
		
	
		
			
				
					|  |  |  |             <span>Position QR code in the frame</span> | 
			
		
	
		
			
				
					|  |  |  |           </p> | 
			
		
	
		
			
				
					|  |  |  |           <p v-else-if="error" class="text-red-300"> | 
			
		
	
		
			
				
					|  |  |  |             <span class="font-medium">Error:</span> {{ error }} | 
			
		
	
		
			
				
					|  |  |  |           <p v-else-if="error" class="text-red-400"> | 
			
		
	
		
			
				
					|  |  |  |             Error: {{ error }} | 
			
		
	
		
			
				
					|  |  |  |           </p> | 
			
		
	
		
			
				
					|  |  |  |           <p v-else class="flex items-center justify-center space-x-2"> | 
			
		
	
		
			
				
					|  |  |  |             <span class="inline-block w-2 h-2 bg-blue-500 rounded-full"></span> | 
			
		
	
	
		
			
				
					|  |  | @ -147,64 +148,31 @@ | 
			
		
	
		
			
				
					|  |  |  |           style="opacity: 0.5; pointer-events: none" | 
			
		
	
		
			
				
					|  |  |  |         ></div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         <!-- Debug Info --> | 
			
		
	
		
			
				
					|  |  |  |         <div | 
			
		
	
		
			
				
					|  |  |  |           class="absolute bottom-16 left-0 right-0 bg-black bg-opacity-50 text-white text-xs text-center py-1" | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |           Camera: {{ preferredCamera === "user" ? "Front" : "Back" }} | Status: | 
			
		
	
		
			
				
					|  |  |  |           {{ cameraStatus }} | 
			
		
	
		
			
				
					|  |  |  |         </div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         <!-- Camera Switch Button --> | 
			
		
	
		
			
				
					|  |  |  |         <button | 
			
		
	
		
			
				
					|  |  |  |           class="absolute bottom-4 right-4 bg-white rounded-full p-2 shadow-lg" | 
			
		
	
		
			
				
					|  |  |  |           class="absolute bottom-4 right-4 bg-white rounded-full p-2 leading-none shadow-lg" | 
			
		
	
		
			
				
					|  |  |  |           title="Switch camera" | 
			
		
	
		
			
				
					|  |  |  |           @click="toggleCamera" | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |           <svg | 
			
		
	
		
			
				
					|  |  |  |             class="h-6 w-6 text-gray-600" | 
			
		
	
		
			
				
					|  |  |  |             fill="none" | 
			
		
	
		
			
				
					|  |  |  |             viewBox="0 0 24 24" | 
			
		
	
		
			
				
					|  |  |  |             stroke="currentColor" | 
			
		
	
		
			
				
					|  |  |  |           > | 
			
		
	
		
			
				
					|  |  |  |             <path | 
			
		
	
		
			
				
					|  |  |  |               stroke-linecap="round" | 
			
		
	
		
			
				
					|  |  |  |               stroke-linejoin="round" | 
			
		
	
		
			
				
					|  |  |  |               stroke-width="2" | 
			
		
	
		
			
				
					|  |  |  |               d="M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0  | 
			
		
	
		
			
				
					|  |  |  |               011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0  | 
			
		
	
		
			
				
					|  |  |  |               01-2-2V9z" | 
			
		
	
		
			
				
					|  |  |  |             /> | 
			
		
	
		
			
				
					|  |  |  |             <path | 
			
		
	
		
			
				
					|  |  |  |               stroke-linecap="round" | 
			
		
	
		
			
				
					|  |  |  |               stroke-linejoin="round" | 
			
		
	
		
			
				
					|  |  |  |               stroke-width="2" | 
			
		
	
		
			
				
					|  |  |  |               d="M15 13a3 3 0 11-6 0 3 3 0 016 0z" | 
			
		
	
		
			
				
					|  |  |  |             /> | 
			
		
	
		
			
				
					|  |  |  |           </svg> | 
			
		
	
		
			
				
					|  |  |  |           <font-awesome icon="camera-rotate" class="size-6 text-gray-600" /> | 
			
		
	
		
			
				
					|  |  |  |         </button> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       <div v-else> | 
			
		
	
		
			
				
					|  |  |  |       <div class="mt-4" v-else> | 
			
		
	
		
			
				
					|  |  |  |         <button | 
			
		
	
		
			
				
					|  |  |  |           v-if="isNativePlatform" | 
			
		
	
		
			
				
					|  |  |  |           class="bg-blue-500 text-white px-4 py-2 rounded-md mt-4" | 
			
		
	
		
			
				
					|  |  |  |           class="bg-blue-500 text-white px-4 py-2 rounded-md" | 
			
		
	
		
			
				
					|  |  |  |           @click="$router.push({ name: 'contact-qr-scan' })" | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |           Start Scanning | 
			
		
	
		
			
				
					|  |  |  |         </button> | 
			
		
	
		
			
				
					|  |  |  |         <button | 
			
		
	
		
			
				
					|  |  |  |           v-else | 
			
		
	
		
			
				
					|  |  |  |           class="bg-blue-500 text-white px-4 py-2 rounded-md mt-4" | 
			
		
	
		
			
				
					|  |  |  |           class="bg-blue-500 text-white px-4 py-2 rounded-md" | 
			
		
	
		
			
				
					|  |  |  |           @click="startScanning" | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |           Start Scanning | 
			
		
	
		
			
				
					|  |  |  |         </button> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |       <span v-if="error" class="text-red-500 block mt-2">{{ error }}</span> | 
			
		
	
		
			
				
					|  |  |  |       <span v-else class="block mt-2"> | 
			
		
	
		
			
				
					|  |  |  |         If you do not see a scanning camera window here, check your camera | 
			
		
	
		
			
				
					|  |  |  |         permissions. | 
			
		
	
		
			
				
					|  |  |  |       </span> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  |   </section> | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
	
		
			
				
					|  |  | 
 |