this repo has no description
at main 2.2 kB view raw
1<script lang="ts"> 2 import { _ } from '../../lib/i18n' 3 4 interface Props { 5 appPassword: string 6 appPasswordName: string 7 loading: boolean 8 onContinue: () => void 9 } 10 11 let { 12 appPassword, 13 appPasswordName, 14 loading, 15 onContinue, 16 }: Props = $props() 17 18 let copied = $state(false) 19 let acknowledged = $state(false) 20 21 function copyPassword() { 22 navigator.clipboard.writeText(appPassword) 23 copied = true 24 } 25</script> 26 27<div class="step-content"> 28 <h2>{$_('migration.inbound.appPassword.title')}</h2> 29 <p>{$_('migration.inbound.appPassword.desc')}</p> 30 31 <div class="warning-box"> 32 <strong>{$_('migration.inbound.appPassword.warning')}</strong> 33 </div> 34 35 <div class="app-password-display"> 36 <div class="app-password-label"> 37 {$_('migration.inbound.appPassword.label')}: <strong>{appPasswordName}</strong> 38 </div> 39 <code class="app-password-code">{appPassword}</code> 40 <button type="button" class="copy-btn" onclick={copyPassword}> 41 {copied ? $_('common.copied') : $_('common.copyToClipboard')} 42 </button> 43 </div> 44 45 <label class="checkbox-label"> 46 <input type="checkbox" bind:checked={acknowledged} /> 47 <span>{$_('migration.inbound.appPassword.saved')}</span> 48 </label> 49 50 <div class="button-row"> 51 <button onclick={onContinue} disabled={!acknowledged || loading}> 52 {loading ? $_('migration.inbound.common.continue') : $_('migration.inbound.appPassword.continue')} 53 </button> 54 </div> 55</div> 56 57<style> 58 .app-password-display { 59 background: var(--bg-card); 60 border: 2px solid var(--accent); 61 border-radius: var(--radius-xl); 62 padding: var(--space-6); 63 text-align: center; 64 margin: var(--space-4) 0; 65 } 66 .app-password-label { 67 font-size: var(--text-sm); 68 color: var(--text-secondary); 69 margin-bottom: var(--space-4); 70 } 71 .app-password-code { 72 display: block; 73 font-size: var(--text-xl); 74 font-family: ui-monospace, monospace; 75 letter-spacing: 0.1em; 76 padding: var(--space-5); 77 background: var(--bg-input); 78 border-radius: var(--radius-md); 79 margin-bottom: var(--space-4); 80 user-select: all; 81 } 82 .copy-btn { 83 padding: var(--space-3) var(--space-5); 84 font-size: var(--text-sm); 85 } 86</style>