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