prompt.html raw

   1  <!DOCTYPE html>
   2  
   3  <html>
   4    <head>
   5      <title>Smesh Signer</title>
   6      <link rel="stylesheet" type="text/css" href="styles.css" />
   7      <script src="scripts.js"></script>
   8      <style>
   9        /* Prevent white flash on load */
  10        html { background-color: #0a0a0a; }
  11        @media (prefers-color-scheme: light) {
  12          html { background-color: #ffffff; }
  13        }
  14  
  15        body {
  16          background: var(--background);
  17          height: 100vh;
  18          width: 100vw;
  19          color: var(--foreground);
  20          font-size: 16px;
  21        }
  22  
  23        .color-primary {
  24          color: var(--primary);
  25        }
  26  
  27        .page {
  28          height: 100%;
  29          display: grid;
  30          grid-template-rows: 1fr auto;
  31          grid-template-columns: 1fr;
  32          overflow-y: hidden;
  33        }
  34  
  35        .actions {
  36          display: flex;
  37          flex-direction: column;
  38          gap: 8px;
  39          padding: var(--size);
  40          background: var(--background);
  41        }
  42  
  43        .action-row {
  44          display: flex;
  45          align-items: center;
  46          gap: 8px;
  47        }
  48  
  49        .action-label {
  50          width: 60px;
  51          font-size: 13px;
  52          font-weight: 500;
  53          color: var(--muted-foreground);
  54        }
  55  
  56        .action-buttons {
  57          display: flex;
  58          gap: 8px;
  59          flex: 1;
  60        }
  61  
  62        .action-buttons button {
  63          flex: 1;
  64          padding: 8px 12px;
  65          border-radius: 6px;
  66          font-size: 13px;
  67          font-weight: 500;
  68          cursor: pointer;
  69          border: none;
  70        }
  71  
  72        .btn-reject {
  73          background: var(--muted);
  74          color: var(--foreground);
  75        }
  76  
  77        .btn-reject:hover {
  78          background: var(--border);
  79        }
  80  
  81        .btn-accept {
  82          background: var(--primary);
  83          color: var(--primary-foreground);
  84        }
  85  
  86        .btn-accept:hover {
  87          opacity: 0.9;
  88        }
  89  
  90        .card {
  91          padding: var(--size);
  92          background: var(--background-light);
  93          border-radius: 8px;
  94          color: var(--foreground);
  95          display: flex;
  96          flex-direction: column;
  97        }
  98  
  99        .json {
 100          white-space: pre;
 101          overflow-y: auto;
 102          font-size: 12px;
 103          color: gray;
 104        }
 105  
 106        .text {
 107          white-space: normal;
 108          overflow-y: auto;
 109          font-size: 12px;
 110          color: gray;
 111        }
 112  
 113        .description {
 114          margin: 0;
 115          text-align: center;
 116          line-height: 1.5;
 117        }
 118      </style>
 119    </head>
 120    <body>
 121      <div class="page">
 122        <div class="sam-flex-column" style="overflow-y: auto">
 123          <div class="sam-text-header">
 124            <span id="titleSpan" style="font-weight: 400 !important"></span>
 125          </div>
 126  
 127          <!-- Card for getPublicKey -->
 128          <div id="cardGetPublicKey" class="card sam-mt sam-ml sam-mr">
 129            <p class="description">
 130              <b class="host-INSERT color-primary"></b> is requesting permission to
 131              <b class="color-primary">read your public key</b> for the selected identity
 132              <b class="nick-INSERT color-primary"></b>.
 133            </p>
 134          </div>
 135  
 136          <!-- Card for getRelays -->
 137          <div id="cardGetRelays" class="card sam-mt sam-ml sam-mr">
 138            <p class="description">
 139              <b class="host-INSERT color-primary"></b> is requesting permission to
 140              <b class="color-primary">read your relays</b> for the selected identity
 141              <b class="nick-INSERT color-primary"></b>.
 142            </p>
 143          </div>
 144  
 145          <!-- Card for signEvent -->
 146          <div id="cardSignEvent" class="card sam-mt sam-ml sam-mr">
 147            <p class="description">
 148              <b class="host-INSERT color-primary"></b> is requesting permission to
 149              <b class="color-primary">sign an event</b> (kind <span id="kindSpan"></span>)
 150              for the selected identity <b class="nick-INSERT color-primary"></b>.
 151            </p>
 152          </div>
 153  
 154          <!-- Card2 for signEvent -->
 155          <div id="card2SignEvent" class="card sam-mt sam-ml sam-mr">
 156            <div id="card2SignEvent_json" class="json"></div>
 157          </div>
 158  
 159          <!-- Card for nip04.encrypt -->
 160          <div id="cardNip04Encrypt" class="card sam-mt sam-ml sam-mr">
 161            <p class="description">
 162              <b class="host-INSERT color-primary"></b> is requesting permission to
 163              <b class="color-primary">encrypt a text</b> (NIP04) for the selected identity
 164              <b class="nick-INSERT color-primary"></b>.
 165            </p>
 166          </div>
 167  
 168          <!-- Card2 for nip04.encrypt -->
 169          <div id="card2Nip04Encrypt" class="card sam-mt sam-ml sam-mr">
 170            <div id="card2Nip04Encrypt_text" class="text"></div>
 171          </div>
 172  
 173          <!-- Card for nip44.encrypt -->
 174          <div id="cardNip44Encrypt" class="card sam-mt sam-ml sam-mr">
 175            <p class="description">
 176              <b class="host-INSERT color-primary"></b> is requesting permission to
 177              <b class="color-primary">encrypt a text</b> (NIP44) for the selected identity
 178              <b class="nick-INSERT color-primary"></b>.
 179            </p>
 180          </div>
 181  
 182          <!-- Card2 for nip44.encrypt -->
 183          <div id="card2Nip44Encrypt" class="card sam-mt sam-ml sam-mr">
 184            <div id="card2Nip44Encrypt_text" class="text"></div>
 185          </div>
 186  
 187          <!-- Card for nip04.decrypt -->
 188          <div id="cardNip04Decrypt" class="card sam-mt sam-ml sam-mr">
 189            <p class="description">
 190              <b class="host-INSERT color-primary"></b> is requesting permission to
 191              <b class="color-primary">decrypt a text</b> (NIP04) for the selected identity
 192              <b class="nick-INSERT color-primary"></b>.
 193            </p>
 194          </div>
 195  
 196          <!-- Card2 for nip04.decrypt -->
 197          <div id="card2Nip04Decrypt" class="card sam-mt sam-ml sam-mr">
 198            <div id="card2Nip04Decrypt_text" class="text"></div>
 199          </div>
 200  
 201          <!-- Card for nip44.decrypt -->
 202          <div id="cardNip44Decrypt" class="card sam-mt sam-ml sam-mr">
 203            <p class="description">
 204              <b class="host-INSERT color-primary"></b> is requesting permission to
 205              <b class="color-primary">decrypt a text</b> (NIP44) for the selected identity
 206              <b class="nick-INSERT color-primary"></b>.
 207            </p>
 208          </div>
 209  
 210          <!-- Card2 for nip44.decrypt -->
 211          <div id="card2Nip44Decrypt" class="card sam-mt sam-ml sam-mr">
 212            <div id="card2Nip44Decrypt_text" class="text"></div>
 213          </div>
 214  
 215          <!-- Card for webln.enable -->
 216          <div id="cardWeblnEnable" class="card sam-mt sam-ml sam-mr">
 217            <p class="description">
 218              <b class="host-INSERT color-primary"></b> is requesting permission to
 219              <b class="color-primary">connect to your Lightning wallet</b>.
 220            </p>
 221          </div>
 222  
 223          <!-- Card for webln.getInfo -->
 224          <div id="cardWeblnGetInfo" class="card sam-mt sam-ml sam-mr">
 225            <p class="description">
 226              <b class="host-INSERT color-primary"></b> is requesting permission to
 227              <b class="color-primary">read your wallet info</b>.
 228            </p>
 229          </div>
 230  
 231          <!-- Card for webln.sendPayment -->
 232          <div id="cardWeblnSendPayment" class="card sam-mt sam-ml sam-mr">
 233            <p class="description">
 234              <b class="host-INSERT color-primary"></b> is requesting permission to
 235              <b class="color-primary">send a Lightning payment</b> of
 236              <b id="paymentAmountSpan" class="color-primary"></b>.
 237            </p>
 238          </div>
 239  
 240          <!-- Card2 for webln.sendPayment (shows invoice) -->
 241          <div id="card2WeblnSendPayment" class="card sam-mt sam-ml sam-mr">
 242            <div id="card2WeblnSendPayment_json" class="json"></div>
 243          </div>
 244  
 245          <!-- Card for webln.makeInvoice -->
 246          <div id="cardWeblnMakeInvoice" class="card sam-mt sam-ml sam-mr">
 247            <p class="description">
 248              <b class="host-INSERT color-primary"></b> is requesting permission to
 249              <b class="color-primary">create a Lightning invoice</b>
 250              <span id="invoiceAmountSpan"></span>.
 251            </p>
 252          </div>
 253  
 254          <!-- Card for webln.keysend -->
 255          <div id="cardWeblnKeysend" class="card sam-mt sam-ml sam-mr">
 256            <p class="description">
 257              <b class="host-INSERT color-primary"></b> is requesting permission to
 258              <b class="color-primary">send a keysend payment</b>.
 259            </p>
 260          </div>
 261  
 262          <!-- Card for MLS operations -->
 263          <div id="cardMls" class="card sam-mt sam-ml sam-mr">
 264            <p class="description">
 265              <b class="host-INSERT color-primary"></b> is requesting permission to
 266              <b id="titleSpanMls" class="color-primary"></b> for the selected identity
 267              <b class="nick-INSERT color-primary"></b>.
 268            </p>
 269          </div>
 270        </div>
 271  
 272        <!------------->
 273        <!-- ACTIONS -->
 274        <!------------->
 275        <div class="actions">
 276          <div class="action-row">
 277            <span class="action-label">Reject</span>
 278            <div class="action-buttons">
 279              <button id="rejectOnceButton" type="button" class="btn-reject">Once</button>
 280              <button id="rejectAlwaysButton" type="button" class="btn-reject">Always</button>
 281            </div>
 282          </div>
 283          <div class="action-row">
 284            <span class="action-label">Accept</span>
 285            <div class="action-buttons">
 286              <button id="approveOnceButton" type="button" class="btn-accept">Once</button>
 287              <button id="approveAlwaysButton" type="button" class="btn-accept">Always</button>
 288            </div>
 289          </div>
 290          <div class="action-row" id="allQueuedRow">
 291            <span class="action-label">All Queued</span>
 292            <div class="action-buttons">
 293              <button id="rejectAllButton" type="button" class="btn-reject">Reject All</button>
 294              <button id="approveAllButton" type="button" class="btn-accept">Approve All</button>
 295            </div>
 296          </div>
 297        </div>
 298      </div>
 299      <script src="prompt.js"></script>
 300    </body>
 301  </html>
 302