@pelican-identity/react 2.0.44 → 2.0.45
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.
- package/dist/components/PelicanAuth.d.ts.map +1 -0
- package/dist/components/PelicanAuth.js +462 -0
- package/dist/components/PelicanAuth.js.map +1 -0
- package/dist/components/PelicanButton.d.ts.map +1 -0
- package/dist/hooks/usePelicanAuth.d.ts +17 -0
- package/dist/hooks/usePelicanAuth.d.ts.map +1 -0
- package/dist/hooks/usePelicanAuth.js +65 -0
- package/dist/hooks/usePelicanAuth.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PelicanAuth.d.ts","sourceRoot":"","sources":["../../src/components/PelicanAuth.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,QAAA,MAAM,WAAW,GAAI,QAAQ,mBAAmB,4CAmnB/C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import PelicanButton from "./PelicanButton";
|
|
4
|
+
import { usePelicanAuth } from "../hooks/usePelicanAuth";
|
|
5
|
+
import StoreIcons from "./StoreIcons";
|
|
6
|
+
const PelicanAuth = (config) => {
|
|
7
|
+
const { start, qr, state, deeplink, isProcessing, stop, error, successMessage, useQrInstead, useWebAuth, openDeepLink, } = usePelicanAuth({
|
|
8
|
+
projectId: config.projectId,
|
|
9
|
+
publicKey: config.publicKey,
|
|
10
|
+
authType: config.authType,
|
|
11
|
+
onClose: config.onClose,
|
|
12
|
+
continuousMode: config.continuousMode,
|
|
13
|
+
forceQRCode: config.forceQRCode,
|
|
14
|
+
onSuccess: (identity) => {
|
|
15
|
+
config.onSuccess(identity);
|
|
16
|
+
},
|
|
17
|
+
onError: (error) => {
|
|
18
|
+
config.onError?.(error);
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (config.continuousMode) {
|
|
23
|
+
start();
|
|
24
|
+
}
|
|
25
|
+
}, [config.continuousMode]);
|
|
26
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { children: `@keyframes fadeUp {
|
|
27
|
+
from {
|
|
28
|
+
opacity: 0;
|
|
29
|
+
transform: translateY(20px);
|
|
30
|
+
}
|
|
31
|
+
to {
|
|
32
|
+
opacity: 1;
|
|
33
|
+
transform: translateY(0);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@keyframes spin {
|
|
38
|
+
to {
|
|
39
|
+
transform: rotate(360deg);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@keyframes successPulse {
|
|
44
|
+
0%,
|
|
45
|
+
100% {
|
|
46
|
+
transform: scale(1);
|
|
47
|
+
opacity: 1;
|
|
48
|
+
}
|
|
49
|
+
50% {
|
|
50
|
+
transform: scale(1.05);
|
|
51
|
+
opacity: 0.9;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.auth-container {
|
|
56
|
+
width: 300px;
|
|
57
|
+
max-width: fit-content;
|
|
58
|
+
padding: 1rem;
|
|
59
|
+
margin-top: 0.3rem;
|
|
60
|
+
position: relative;
|
|
61
|
+
border-radius: 10px;
|
|
62
|
+
animation: fadeUp 0.5s ease-out;
|
|
63
|
+
background-color: #f9fafb;
|
|
64
|
+
display: flex;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
justify-content: space-between;
|
|
67
|
+
align-items: center;
|
|
68
|
+
gap: 1rem;
|
|
69
|
+
min-height: 300px;
|
|
70
|
+
}
|
|
71
|
+
.js-auth-container {
|
|
72
|
+
width: 300px;
|
|
73
|
+
max-width: fit-content;
|
|
74
|
+
padding: 1rem;
|
|
75
|
+
margin-top: 0.3rem;
|
|
76
|
+
position: relative;
|
|
77
|
+
background-color: #f9fafb;
|
|
78
|
+
border-radius: 2.5rem;
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
justify-content: space-between;
|
|
82
|
+
align-items: center;
|
|
83
|
+
gap: 1rem;
|
|
84
|
+
min-height: 300px;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.pelican-modal-close-btn {
|
|
88
|
+
all: unset; /* Reset all inherited styles */
|
|
89
|
+
background-color: #2b2b2b !important;
|
|
90
|
+
border: none !important;
|
|
91
|
+
padding: 0.3rem !important;
|
|
92
|
+
cursor: pointer !important;
|
|
93
|
+
transition: opacity 0.2s !important;
|
|
94
|
+
height: 1.5rem !important;
|
|
95
|
+
width: 1.5rem !important;
|
|
96
|
+
display: flex !important;
|
|
97
|
+
align-items: center !important;
|
|
98
|
+
justify-content: center !important;
|
|
99
|
+
border-radius: 50% !important;
|
|
100
|
+
box-sizing: border-box !important;
|
|
101
|
+
margin: 0 1rem !important;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.pelican-modal-close-btn:hover {
|
|
105
|
+
opacity: 0.6 !important;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.pelican-modal-close-btn svg {
|
|
109
|
+
display: block !important;
|
|
110
|
+
width: 100% !important;
|
|
111
|
+
height: 100% !important;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.retry-container {
|
|
115
|
+
text-align: center;
|
|
116
|
+
padding: 3rem 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.retry-container > div:first-child {
|
|
120
|
+
margin-bottom: 1rem;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.retry-text {
|
|
124
|
+
font-size: 1.125rem;
|
|
125
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.content-wrapper {
|
|
129
|
+
display: flex;
|
|
130
|
+
flex-direction: column;
|
|
131
|
+
justify-content: center;
|
|
132
|
+
align-items: center;
|
|
133
|
+
gap: 2rem;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.unpaired-container {
|
|
137
|
+
text-align: center;
|
|
138
|
+
display: flex;
|
|
139
|
+
flex-direction: column;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.main-heading {
|
|
143
|
+
font-size: 0.75rem;
|
|
144
|
+
font-weight: 600;
|
|
145
|
+
color: #585858;
|
|
146
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@media (min-width: 768px) {
|
|
150
|
+
.main-heading {
|
|
151
|
+
font-size: 0.8rem;
|
|
152
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
@media (min-width: 1024px) {
|
|
157
|
+
.main-heading {
|
|
158
|
+
font-size: 0.8rem;
|
|
159
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.mobile-auth-container {
|
|
164
|
+
display: flex;
|
|
165
|
+
flex-direction: column;
|
|
166
|
+
gap: 0.7rem;
|
|
167
|
+
width: 253px;
|
|
168
|
+
background-color: #ffffff;
|
|
169
|
+
border-radius: 10px;
|
|
170
|
+
padding: 0 0 1rem 0;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.logo-container {
|
|
174
|
+
display: flex;
|
|
175
|
+
justify-content: center;
|
|
176
|
+
padding: 2rem 0;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.open-app-link {
|
|
180
|
+
display: inline-block;
|
|
181
|
+
padding: 0.7rem 1.25rem;
|
|
182
|
+
background-color: #101010ff;
|
|
183
|
+
width: 70%;
|
|
184
|
+
align-self: center;
|
|
185
|
+
|
|
186
|
+
border-radius: 18px;
|
|
187
|
+
color: #fff;
|
|
188
|
+
font-weight: 500;
|
|
189
|
+
font-size: 0.8rem;
|
|
190
|
+
text-decoration: none;
|
|
191
|
+
transition: background-color 0.2s;
|
|
192
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.open-app-link:hover {
|
|
196
|
+
opacity: 0.8;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.helper-text {
|
|
200
|
+
font-size: 0.75rem;
|
|
201
|
+
color: #6b7280;
|
|
202
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.qr-container {
|
|
206
|
+
display: flex;
|
|
207
|
+
justify-content: center;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.qr-wrapper {
|
|
211
|
+
display: flex;
|
|
212
|
+
justify-content: center;
|
|
213
|
+
align-items: center;
|
|
214
|
+
overflow: hidden;
|
|
215
|
+
border-radius: 10px;
|
|
216
|
+
background-color: #fff;
|
|
217
|
+
padding: 0.2rem;
|
|
218
|
+
height: 244px;
|
|
219
|
+
width: 244px;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.qr-image {
|
|
223
|
+
height: 90%;
|
|
224
|
+
width: 90%;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.loader-container {
|
|
228
|
+
display: flex;
|
|
229
|
+
justify-content: center;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.instruction-text {
|
|
233
|
+
font-size: 0.875rem;
|
|
234
|
+
color: #9ca3af;
|
|
235
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.paired-container {
|
|
239
|
+
text-align: center;
|
|
240
|
+
display: flex;
|
|
241
|
+
flex-direction: column;
|
|
242
|
+
gap: 1rem;
|
|
243
|
+
max-width: 250px;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.web-auth-btn {
|
|
247
|
+
all: unset; /* Reset all inherited styles */
|
|
248
|
+
cursor: pointer;
|
|
249
|
+
margin-top: 1rem;
|
|
250
|
+
display: inline-block;
|
|
251
|
+
padding: 0.7rem 2rem;
|
|
252
|
+
background-color: #ffffff;
|
|
253
|
+
width: fit-content;
|
|
254
|
+
align-self: center;
|
|
255
|
+
border: 1px solid #e2e2e2ff;
|
|
256
|
+
border-radius: 28px;
|
|
257
|
+
color: #101010ff;
|
|
258
|
+
font-weight: 500;
|
|
259
|
+
font-size: 0.7rem;
|
|
260
|
+
text-decoration: none;
|
|
261
|
+
transition: background-color 0.2s;
|
|
262
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.web-auth-btn:hover {
|
|
266
|
+
opacity: 0.9;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.paired-heading {
|
|
270
|
+
font-size: 1rem;
|
|
271
|
+
font-weight: 800;
|
|
272
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
@media (min-width: 768px) {
|
|
276
|
+
.paired-heading {
|
|
277
|
+
font-size: 1rem;
|
|
278
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.success-message {
|
|
283
|
+
background-color: #121212;
|
|
284
|
+
color: #d9eb1b;
|
|
285
|
+
padding: 0.5rem 1rem;
|
|
286
|
+
border-radius: 1.3rem;
|
|
287
|
+
font-weight: 700;
|
|
288
|
+
font-size: 1rem;
|
|
289
|
+
animation: successPulse 0.2s ease-in-out;
|
|
290
|
+
margin: 0.5rem 0;
|
|
291
|
+
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
292
|
+
width: 300px;
|
|
293
|
+
max-width: fit-content;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.auto-renew-badge {
|
|
297
|
+
display: inline-block;
|
|
298
|
+
background-color: rgba(217, 235, 27, 0.2);
|
|
299
|
+
border: 1px solid #d9eb1b;
|
|
300
|
+
color: #d9eb1b;
|
|
301
|
+
padding: 0.25rem 0.75rem;
|
|
302
|
+
border-radius: 9999px;
|
|
303
|
+
font-size: 0.75rem;
|
|
304
|
+
font-weight: 600;
|
|
305
|
+
margin-top: 0.5rem;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.scan-btn {
|
|
309
|
+
all: unset;
|
|
310
|
+
font-size: 0.7rem;
|
|
311
|
+
color: #626262ff;
|
|
312
|
+
background-color: #fafafaff;
|
|
313
|
+
padding: 0.5rem 1.5rem;
|
|
314
|
+
border-radius: 1.3rem;
|
|
315
|
+
font-weight: 500;
|
|
316
|
+
cursor: pointer;
|
|
317
|
+
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
318
|
+
width: fit-content;
|
|
319
|
+
align-self: center;
|
|
320
|
+
}
|
|
321
|
+
.error-wrapper {
|
|
322
|
+
display: flex;
|
|
323
|
+
justify-content: center;
|
|
324
|
+
align-items: center;
|
|
325
|
+
text-align: center;
|
|
326
|
+
border-radius: 1.5rem;
|
|
327
|
+
border: 1px solid rgb(255, 236, 236);
|
|
328
|
+
background-color: rgb(255, 255, 255);
|
|
329
|
+
width: 250px;
|
|
330
|
+
height: 80px;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.error-message {
|
|
334
|
+
font-size: 0.75rem;
|
|
335
|
+
font-weight: 400;
|
|
336
|
+
color: rgb(255, 139, 139);
|
|
337
|
+
font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
338
|
+
max-width: 70%;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.loader {
|
|
342
|
+
width: 48px;
|
|
343
|
+
height: 48px;
|
|
344
|
+
position: relative;
|
|
345
|
+
}
|
|
346
|
+
.loader::before,
|
|
347
|
+
.loader::after {
|
|
348
|
+
content: "";
|
|
349
|
+
position: absolute;
|
|
350
|
+
left: 50%;
|
|
351
|
+
top: 50%;
|
|
352
|
+
transform: translate(-50%, -50%);
|
|
353
|
+
width: 48em;
|
|
354
|
+
height: 48em;
|
|
355
|
+
background-image: radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
356
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
357
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
358
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
359
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
360
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
361
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
362
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0),
|
|
363
|
+
radial-gradient(circle 10px, #585858 100%, transparent 0);
|
|
364
|
+
background-position: 0em -18em, 0em 18em, 18em 0em, -18em 0em, 13em -13em,
|
|
365
|
+
-13em -13em, 13em 13em, -13em 13em;
|
|
366
|
+
background-repeat: no-repeat;
|
|
367
|
+
font-size: 0.5px;
|
|
368
|
+
border-radius: 50%;
|
|
369
|
+
animation: blast 1s ease-in infinite;
|
|
370
|
+
}
|
|
371
|
+
.loader::after {
|
|
372
|
+
font-size: 1px;
|
|
373
|
+
background: #585858;
|
|
374
|
+
animation: bounce 1s ease-in infinite;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
@keyframes bounce {
|
|
378
|
+
0%,
|
|
379
|
+
100% {
|
|
380
|
+
font-size: 0.75px;
|
|
381
|
+
}
|
|
382
|
+
50% {
|
|
383
|
+
font-size: 1.5px;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
@keyframes blast {
|
|
387
|
+
0%,
|
|
388
|
+
40% {
|
|
389
|
+
font-size: 0.5px;
|
|
390
|
+
}
|
|
391
|
+
70% {
|
|
392
|
+
opacity: 1;
|
|
393
|
+
font-size: 4px;
|
|
394
|
+
}
|
|
395
|
+
100% {
|
|
396
|
+
font-size: 6px;
|
|
397
|
+
opacity: 0;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
` }), _jsxs("section", { children: [_jsx("div", { style: {
|
|
401
|
+
width: "100%",
|
|
402
|
+
justifyContent: "space-between",
|
|
403
|
+
alignItems: "center",
|
|
404
|
+
maxWidth: "300px",
|
|
405
|
+
}, children: !config.continuousMode && (_jsx("div", { style: {
|
|
406
|
+
width: "100%",
|
|
407
|
+
display: "flex",
|
|
408
|
+
justifyContent: "space-between",
|
|
409
|
+
alignItems: "center",
|
|
410
|
+
}, children: state === "idle" && (_jsx("button", { type: "button", style: {
|
|
411
|
+
border: "none",
|
|
412
|
+
background: "transparent",
|
|
413
|
+
cursor: "pointer",
|
|
414
|
+
width: "100%",
|
|
415
|
+
alignSelf: "center",
|
|
416
|
+
}, onClick: () => {
|
|
417
|
+
if (state !== "idle") {
|
|
418
|
+
stop();
|
|
419
|
+
config.onClose?.();
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
start();
|
|
423
|
+
}
|
|
424
|
+
}, children: config.buttonComponent ? (config.buttonComponent) : (_jsx(PelicanButton, { authType: config.authType, text: config.buttonText, type: "idle" })) })) })) }), _jsx("div", { style: {
|
|
425
|
+
width: "100%",
|
|
426
|
+
display: "flex",
|
|
427
|
+
justifyContent: "center",
|
|
428
|
+
alignItems: "center",
|
|
429
|
+
maxWidth: "300px",
|
|
430
|
+
}, children: state !== "idle" && (_jsxs("div", { className: "auth-container", children: [successMessage && (_jsxs("div", { className: "success-message", style: { textAlign: "center" }, children: [successMessage, config.continuousMode && (_jsx("p", { style: {
|
|
431
|
+
fontSize: "0.8rem",
|
|
432
|
+
marginTop: "0.5rem",
|
|
433
|
+
color: "#f3f3f3",
|
|
434
|
+
textAlign: "center",
|
|
435
|
+
}, children: "Preparing next session..." }))] })), error && state === "error" && (_jsx("div", { className: "error-wrapper", children: _jsx("p", { className: "error-message", children: error.message }) })), isProcessing ? (_jsxs("div", { className: "content-wrapper", children: [_jsx("h2", { className: "main-heading", children: "one sec..." }), _jsx("span", { className: "loader", style: { margin: "1rem auto", width: "252px" } })] })) : (_jsx("div", { className: "content-wrapper", children: state === "awaiting-pair" && !successMessage && (_jsxs("div", { className: "unpaired-container", children: [!deeplink && !config.forceQRCode && (_jsxs("h2", { className: "main-heading", children: [" ", "Open Pelican Vault mobile app"] })), !config.forceQRCode && deeplink ? (_jsxs("div", { className: "mobile-auth-container", children: [_jsx("div", { className: "logo-container", children: _jsx("img", { src: "https://res.cloudinary.com/de0jr8mcm/image/upload/v1765904735/pelican/pelican_icon_r9ghqw.png ", alt: "Pelican Logo", style: { width: "54px", height: "54px" } }) }), _jsx("button", { onClick: () => openDeepLink(), className: "open-app-link", type: "button", children: "Launch Pelican Vault" }), _jsxs("p", { className: "helper-text", children: ["open app to", " ", config.authType === "login"
|
|
436
|
+
? "login"
|
|
437
|
+
: config.authType === "signup"
|
|
438
|
+
? "signup"
|
|
439
|
+
: config.authType === "id-verification"
|
|
440
|
+
? "verify identity"
|
|
441
|
+
: "authenticate"] }), _jsx("button", { type: "button", className: "scan-btn", onClick: useQrInstead, children: "or scan QR code" })] })) : (config.forceQRCode &&
|
|
442
|
+
qr &&
|
|
443
|
+
state === "awaiting-pair") ||
|
|
444
|
+
(!config.forceQRCode &&
|
|
445
|
+
qr &&
|
|
446
|
+
state === "awaiting-pair") ? (_jsx("div", { className: "qr-container", children: _jsxs("div", { className: "qr-wrapper", children: [qr && (_jsx("img", { src: qr, alt: "QR Code", className: "qr-image" })), !qr && _jsx("span", { className: "loader" })] }) })) : (_jsx("div", { className: "loader-container", children: _jsx("span", { className: "loader" }) }))] })) })), _jsx(StoreIcons, {}), state === "awaiting-pair" && (_jsx("button", { type: "button", className: "web-auth-btn", onClick: useWebAuth, children: "Use web vault" }))] })) }), state !== "idle" && (_jsx("div", { style: {
|
|
447
|
+
width: "300px",
|
|
448
|
+
display: "flex",
|
|
449
|
+
justifyContent: "center",
|
|
450
|
+
alignItems: "center",
|
|
451
|
+
}, children: _jsx("button", { type: "button", style: {
|
|
452
|
+
border: "none",
|
|
453
|
+
background: "transparent",
|
|
454
|
+
cursor: "pointer",
|
|
455
|
+
alignSelf: "center",
|
|
456
|
+
}, onClick: () => {
|
|
457
|
+
stop();
|
|
458
|
+
config.onClose?.();
|
|
459
|
+
}, children: _jsx(PelicanButton, { authType: config.authType, text: `Cancel`, type: "cancel" }) }) }))] })] }));
|
|
460
|
+
};
|
|
461
|
+
export default PelicanAuth;
|
|
462
|
+
//# sourceMappingURL=PelicanAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PelicanAuth.js","sourceRoot":"","sources":["../../src/components/PelicanAuth.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PelicanButton.d.ts","sourceRoot":"","sources":["../../src/components/PelicanButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,QAAA,MAAM,aAAa,GAAI,2BAIpB;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB,4CAwJA,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PelicanAuthState, PelicanWebAuthProps } from "@pelican-identity/auth-core";
|
|
2
|
+
export declare const usePelicanAuth: (config: PelicanWebAuthProps) => {
|
|
3
|
+
start: () => void;
|
|
4
|
+
stop: () => void;
|
|
5
|
+
qr: string | null;
|
|
6
|
+
deeplink: string | null;
|
|
7
|
+
state: PelicanAuthState;
|
|
8
|
+
isProcessing: boolean;
|
|
9
|
+
isDone: boolean;
|
|
10
|
+
error: Error | null;
|
|
11
|
+
successMessage: string | null;
|
|
12
|
+
useQrInstead: () => void | undefined;
|
|
13
|
+
useDeepLinkInstead: () => void | undefined;
|
|
14
|
+
useWebAuth: () => void | undefined;
|
|
15
|
+
openDeepLink: () => void | undefined;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=usePelicanAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePelicanAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/usePelicanAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,cAAc,GAAI,QAAQ,mBAAmB;;;;;;;;;;;;;;CAoEzD,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { PelicanAuthentication, } from "@pelican-identity/auth-core";
|
|
2
|
+
import { useState, useRef, useEffect, useCallback } from "react";
|
|
3
|
+
export const usePelicanAuth = (config) => {
|
|
4
|
+
const [qr, setQr] = useState(null);
|
|
5
|
+
const [deeplink, setDeeplink] = useState(null);
|
|
6
|
+
const [err, seterr] = useState(null);
|
|
7
|
+
const [state, setState] = useState("idle");
|
|
8
|
+
const [successMessage, setSuccessMessage] = useState(null);
|
|
9
|
+
const pelicanRef = useRef(null);
|
|
10
|
+
const success = config.authType === "login"
|
|
11
|
+
? "login"
|
|
12
|
+
: config.authType === "signup"
|
|
13
|
+
? "signup"
|
|
14
|
+
: config.authType === "id-verification"
|
|
15
|
+
? "verification"
|
|
16
|
+
: "authentication";
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const pelican = new PelicanAuthentication(config);
|
|
19
|
+
pelicanRef.current = pelican;
|
|
20
|
+
const unsub = [
|
|
21
|
+
pelican.on("qr", setQr),
|
|
22
|
+
pelican.on("deeplink", setDeeplink),
|
|
23
|
+
pelican.on("success", (identity) => {
|
|
24
|
+
config.onSuccess(identity);
|
|
25
|
+
if (config.continuousMode) {
|
|
26
|
+
setSuccessMessage(`${success} complete!`);
|
|
27
|
+
setTimeout(() => {
|
|
28
|
+
setSuccessMessage(null);
|
|
29
|
+
}, 2000);
|
|
30
|
+
}
|
|
31
|
+
}),
|
|
32
|
+
pelican.on("error", (error) => {
|
|
33
|
+
seterr(error);
|
|
34
|
+
config.onError?.(error);
|
|
35
|
+
}),
|
|
36
|
+
pelican.on("state", setState),
|
|
37
|
+
];
|
|
38
|
+
return () => {
|
|
39
|
+
unsub.forEach((fn) => fn());
|
|
40
|
+
pelican.destroy();
|
|
41
|
+
};
|
|
42
|
+
}, [config.publicKey, config.projectId, config.authType]);
|
|
43
|
+
const start = useCallback(() => {
|
|
44
|
+
pelicanRef.current?.start();
|
|
45
|
+
}, []);
|
|
46
|
+
const stop = useCallback(() => {
|
|
47
|
+
pelicanRef.current?.stop();
|
|
48
|
+
}, []);
|
|
49
|
+
return {
|
|
50
|
+
start,
|
|
51
|
+
stop,
|
|
52
|
+
qr,
|
|
53
|
+
deeplink,
|
|
54
|
+
state,
|
|
55
|
+
isProcessing: ["initializing", "paired", "awaiting-auth"].includes(state),
|
|
56
|
+
isDone: state === "confirmed" || state === "authenticated",
|
|
57
|
+
error: err,
|
|
58
|
+
successMessage,
|
|
59
|
+
useQrInstead: () => pelicanRef.current?.useQrInstead(),
|
|
60
|
+
useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),
|
|
61
|
+
useWebAuth: () => pelicanRef.current?.openWebAuth(),
|
|
62
|
+
openDeepLink: () => pelicanRef.current?.openDeepLink(),
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=usePelicanAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePelicanAuth.js","sourceRoot":"","sources":["../../src/hooks/usePelicanAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAElE,mBAAmB,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -197,7 +197,8 @@ var usePelicanAuth = (config) => {
|
|
|
197
197
|
successMessage,
|
|
198
198
|
useQrInstead: () => pelicanRef.current?.useQrInstead(),
|
|
199
199
|
useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),
|
|
200
|
-
useWebAuth: () => pelicanRef.current?.openWebAuth()
|
|
200
|
+
useWebAuth: () => pelicanRef.current?.openWebAuth(),
|
|
201
|
+
openDeepLink: () => pelicanRef.current?.openDeepLink()
|
|
201
202
|
};
|
|
202
203
|
};
|
|
203
204
|
var StoreIcons = () => {
|
|
@@ -362,7 +363,8 @@ var PelicanAuth = (config) => {
|
|
|
362
363
|
error,
|
|
363
364
|
successMessage,
|
|
364
365
|
useQrInstead,
|
|
365
|
-
useWebAuth
|
|
366
|
+
useWebAuth,
|
|
367
|
+
openDeepLink
|
|
366
368
|
} = usePelicanAuth({
|
|
367
369
|
projectId: config.projectId,
|
|
368
370
|
publicKey: config.publicKey,
|
|
@@ -867,7 +869,15 @@ opacity: 0.9;
|
|
|
867
869
|
style: { width: "54px", height: "54px" }
|
|
868
870
|
}
|
|
869
871
|
) }),
|
|
870
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
872
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
873
|
+
"button",
|
|
874
|
+
{
|
|
875
|
+
onClick: () => openDeepLink(),
|
|
876
|
+
className: "open-app-link",
|
|
877
|
+
type: "button",
|
|
878
|
+
children: "Launch Pelican Vault"
|
|
879
|
+
}
|
|
880
|
+
),
|
|
871
881
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "helper-text", children: [
|
|
872
882
|
"open app to",
|
|
873
883
|
" ",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/PelicanButton.tsx","../src/hooks/usePelicanAuth.ts","../src/components/StoreIcons.tsx","../src/components/PelicanAuth.tsx"],"names":["jsxs","Fragment","jsx","useState","useRef","useEffect","PelicanAuthentication","useCallback","error"],"mappings":"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","file":"index.js","sourcesContent":["import { AuthType } from \"@pelican-identity/auth-core\";\n\nconst PelicanButton = ({\n authType,\n text,\n type,\n}: {\n authType: AuthType;\n text?: string;\n type: \"idle\" | \"cancel\";\n}) => {\n if (type === \"idle\") {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.5rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #2b2b2b !important;\n border: 1px solid #353535 !important;\n height: 36px !important;\n\n\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n background-color: #313131 !important;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #fff !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <div>\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 100 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Pelican logo\"\n >\n <rect width=\"100\" height=\"100\" rx=\"32\" />\n <path\n d=\"M56.5511 56.8089C56.5705 55.5878 57.5734 54.0696 58.7917 53.4254C60.0572 52.7596 61.0322 53.2324 61.0193 54.5099C60.9978 55.744 59.9754 57.2947 58.7572 57.9346C57.539 58.5744 56.5296 58.0777 56.5511 56.8089ZM70.0957 49.6364C70.2081 49.5555 70.2954 49.4442 70.3475 49.3154C70.369 48.6278 70.3626 47.9555 70.3626 47.2354C68.4083 48.5172 66.5142 49.7665 64.6202 51.0158V53.2389L65.1174 52.9114C66.7725 51.8183 68.4341 50.7338 70.0957 49.6364ZM69.7147 58.5592C68.4463 60.5076 66.7916 62.1705 64.8548 63.4436C63.1329 64.6039 61.4778 65.222 59.9389 65.1787C58.359 65.1375 57.2893 64.3957 56.6695 62.9686C57.2678 62.448 57.8059 61.9665 58.344 61.4937C58.5418 61.8163 58.7688 62.1198 59.022 62.4003C60.0572 63.3828 61.5488 63.3134 63.3546 62.4762C63.5698 62.3743 63.77 62.2593 63.9809 62.1401C64.8419 61.6607 65.2874 61.1033 65.5069 60.123C65.6834 59.3053 65.7932 58.5158 65.9374 57.7068C66.1135 56.6524 66.4412 55.6295 66.9102 54.6704C67.4634 53.5512 68.2382 52.7184 69.2412 52.3085C70.1323 51.9528 70.7048 52.2065 70.9911 52.8854C71.6432 54.4687 71.0965 56.425 69.7147 58.5592ZM69.3273 54.5923C69.2714 54.434 69.1013 54.2691 68.9528 54.3168C68.8043 54.3646 68.5632 54.6877 68.4341 54.9068C68.2881 55.1536 68.1759 55.4192 68.1005 55.6963C67.8293 56.8913 67.5775 58.082 67.3106 59.2641C67.356 59.263 67.4013 59.2586 67.4462 59.2511C68.1303 58.4928 68.6892 57.6287 69.1013 56.6918C69.4349 55.8741 69.5038 55.1757 69.3273 54.5923ZM80.7949 39.7072V60.2726C80.7942 62.6299 80.1786 64.9455 79.0098 66.9874C77.841 69.0293 76.1601 70.7257 74.1356 71.9066L56.4607 82.1785C54.4328 83.3608 52.1313 83.9834 49.7885 83.9834C47.4456 83.9834 45.1441 83.3608 43.1162 82.1785L25.4671 71.9001C23.4402 70.7208 21.7567 69.0251 20.5856 66.9831C19.4145 64.9411 18.7969 62.6246 18.7949 60.2661V39.7007C18.7969 37.3422 19.4145 35.0257 20.5856 32.9837C21.7567 30.9417 23.4402 29.246 25.4671 28.0667L43.1378 17.7883C45.1657 16.606 47.4671 15.9834 49.81 15.9834C52.1529 15.9834 54.4543 16.606 56.4822 17.7883L74.1356 28.0667C76.1601 29.2476 77.841 30.944 79.0098 32.9859C80.1786 35.0278 80.7942 37.3434 80.7949 39.7007V39.7072ZM77.8333 47.6887C77.8333 42.3077 73.5007 40.2624 68.1629 43.134L52.9287 51.2956C51.6739 51.9679 50.6602 53.5382 50.6602 54.8005V77.5956C50.6602 78.8644 51.6739 79.3307 52.9287 78.6649L58.5936 75.6284C59.1636 75.3055 59.6456 74.8458 59.997 74.2902C60.3517 73.7796 60.5547 73.1777 60.5824 72.5551C60.5824 71.9435 61.0731 71.1887 61.6779 70.8655L64.4975 69.3473C65.0291 69.0653 65.5414 68.7769 66.0299 68.4797L68.1629 67.3411C73.5007 64.4716 77.8333 57.7979 77.8333 52.4082V47.6887Z\"\n fill=\"#D9EB1B\"\n />\n </svg>\n </div>\n <div>\n <p>\n {text || (\n <span>\n {authType === \"login\"\n ? \"Login with Pelican\"\n : authType === \"signup\"\n ? \"Signup with Pelican\"\n : authType === \"id-verification\"\n ? \"Verify with Pelican\"\n : \"Authenticate with Pelican\"}\n </span>\n )}\n </p>\n </div>\n </div>\n </div>\n </>\n );\n } else {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.6rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #f8f8f8ff !important;\n height: 30px !important;\n margin: 8px 0 !important;\n width: fit-content !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #111827 !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <svg\n fill=\"#111827\"\n stroke=\"#111827\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"close icon\"\n height=\"16\"\n width=\"16\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={3}\n d=\"M6 18L18 6M6 6l12 12\"\n fill=\"#e94e4eff\"\n stroke=\"#e94e4eff\"\n color=\"#e94e4eff\"\n />\n </svg>\n <div>\n <p>cancel</p>\n </div>\n </div>\n </div>\n </>\n );\n }\n};\n\nexport default PelicanButton;\n","import {\n PelicanAuthentication,\n PelicanAuthState,\n PelicanWebAuthProps,\n} from \"@pelican-identity/auth-core\";\nimport { useState, useRef, useEffect, useCallback } from \"react\";\n\nexport const usePelicanAuth = (config: PelicanWebAuthProps) => {\n const [qr, setQr] = useState<string | null>(null);\n const [deeplink, setDeeplink] = useState<string | null>(null);\n const [err, seterr] = useState<Error | null>(null);\n const [state, setState] = useState<PelicanAuthState>(\"idle\");\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const pelicanRef = useRef<PelicanAuthentication | null>(null);\n const success =\n config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verification\"\n : \"authentication\";\n\n useEffect(() => {\n const pelican = new PelicanAuthentication(config);\n pelicanRef.current = pelican;\n\n // Subscriptions\n const unsub = [\n pelican.on(\"qr\", setQr),\n pelican.on(\"deeplink\", setDeeplink),\n pelican.on(\"success\", (identity) => {\n config.onSuccess(identity);\n if (config.continuousMode) {\n setSuccessMessage(`${success} complete!`);\n setTimeout(() => {\n setSuccessMessage(null);\n }, 2000);\n }\n }),\n pelican.on(\"error\", (error) => {\n seterr(error);\n config.onError?.(error);\n }),\n pelican.on(\"state\", setState),\n ];\n\n return () => {\n unsub.forEach((fn) => fn());\n pelican.destroy();\n };\n }, [config.publicKey, config.projectId, config.authType]);\n\n const start = useCallback(() => {\n pelicanRef.current?.start();\n }, []);\n\n const stop = useCallback(() => {\n pelicanRef.current?.stop();\n }, []);\n return {\n start,\n stop,\n qr,\n deeplink,\n state,\n isProcessing: [\"initializing\", \"paired\", \"awaiting-auth\"].includes(state),\n isDone: state === \"confirmed\" || state === \"authenticated\",\n error: err,\n successMessage,\n useQrInstead: () => pelicanRef.current?.useQrInstead(),\n useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),\n useWebAuth: () => pelicanRef.current?.openWebAuth(),\n };\n};\n","const StoreIcons = () => {\n return (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n\n borderRadius: \"1.2rem\",\n gap: \"0.3rem\",\n\n height: \"1.4rem\",\n }}\n >\n <div>\n <p\n style={{\n fontSize: \"12px\",\n fontWeight: \"500\",\n color: \"#585858\",\n fontFamily:\n \"Onest, system-ui, Avenir, Helvetica, Arial, sans-serif\",\n }}\n >\n Get the app\n </p>\n </div>\n <a\n href=\"https://apps.apple.com/us/app/pelican-vault/id6755097751\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <Apple />\n </div>\n </a>\n <a\n href=\"https://play.google.com/store/apps/details?id=com.HeraculesDesignTechLtd.pelican\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <PlayStore />\n </div>\n </a>\n </div>\n </div>\n );\n};\n\nconst Apple = () => {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"apple icon\"\n >\n <g clipPath=\"url(#clip0_10529_2674)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.0213 7.30124C24.1265 7.30124 26.358 8.45986 27.947 10.4637C22.7386 13.3501 23.5854 20.8709 28.8483 22.881C28.1232 24.5027 27.777 25.2278 26.8445 26.664C25.5424 28.6663 23.7101 31.1613 21.435 31.1831C19.4156 31.2018 18.8963 29.8529 16.155 29.8685C13.4136 29.8841 12.8413 31.2065 10.8219 31.1878C8.54832 31.1659 6.80962 28.9142 5.50754 26.9104C1.86795 21.3091 1.48746 14.7363 3.73297 11.2433C5.32821 8.7577 7.84348 7.3028 10.2106 7.3028C12.6199 7.3028 14.134 8.63919 16.1269 8.63919C18.0605 8.63919 19.2363 7.30124 22.0213 7.30124ZM21.4101 0.000244141C21.6907 1.89489 20.9204 3.75054 19.9084 5.06354C18.8246 6.4701 16.958 7.5601 15.1523 7.50396C14.8248 5.69041 15.67 3.82383 16.6961 2.56542C17.8235 1.17757 19.7571 0.115638 21.4101 0.000244141Z\"\n fill=\"#585858\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10529_2674\">\n <rect width=\"31.1875\" height=\"31.1875\" fill=\"#585858\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nconst PlayStore = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 26 26\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"play icon\"\n >\n <path\n d=\"M0.015625 2.02546V24.3372C0.0157895 24.3856 0.0316774 24.4329 0.0612964 24.4731C0.0909154 24.5134 0.132947 24.5448 0.182121 24.5634C0.231294 24.582 0.285421 24.587 0.337713 24.5778C0.390006 24.5685 0.438136 24.5455 0.476069 24.5115L13.2604 13.1819L0.476069 1.85116C0.438136 1.81718 0.390006 1.79412 0.337713 1.7849C0.285421 1.77567 0.231294 1.78067 0.182121 1.79929C0.132947 1.8179 0.0909154 1.84929 0.0612964 1.88953C0.0316774 1.92976 0.0157895 1.97705 0.015625 2.02546ZM18.6208 8.52652L2.59086 0.501104L2.58086 0.495994C2.30472 0.359739 2.04233 0.699241 2.26849 0.896811L14.8342 11.8154L18.6208 8.52652ZM2.26974 25.467C2.04233 25.6645 2.30472 26.004 2.58211 25.8678L2.59211 25.8627L18.6208 17.8373L14.8342 14.5473L2.26974 25.467ZM25.092 11.7626L20.6156 9.52231L16.4067 13.1819L20.6156 16.8398L25.092 14.6012C26.3096 13.9898 26.3096 12.374 25.092 11.7626Z\"\n fill=\"#585858\"\n />\n </svg>\n );\n};\n\nexport default StoreIcons;\n","import { useEffect } from \"react\";\nimport PelicanButton from \"./PelicanButton\";\nimport { usePelicanAuth } from \"../hooks/usePelicanAuth\";\nimport StoreIcons from \"./StoreIcons\";\n\nimport { PelicanWebAuthProps } from \"@pelican-identity/auth-core\";\n\nconst PelicanAuth = (config: PelicanWebAuthProps) => {\n const {\n start,\n qr,\n state,\n deeplink,\n isProcessing,\n stop,\n error,\n successMessage,\n useQrInstead,\n useWebAuth,\n } = usePelicanAuth({\n projectId: config.projectId,\n publicKey: config.publicKey,\n authType: config.authType,\n onClose: config.onClose,\n continuousMode: config.continuousMode,\n forceQRCode: config.forceQRCode,\n onSuccess: (identity) => {\n config.onSuccess(identity);\n },\n onError: (error) => {\n config.onError?.(error);\n },\n });\n useEffect(() => {\n if (config.continuousMode) {\n start();\n }\n }, [config.continuousMode]);\n return (\n <>\n <style>\n {`@keyframes fadeUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes successPulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.9;\n }\n}\n\n.auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n border-radius: 10px;\n animation: fadeUp 0.5s ease-out;\n background-color: #f9fafb;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n.js-auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n background-color: #f9fafb;\n border-radius: 2.5rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n\n.pelican-modal-close-btn {\n all: unset; /* Reset all inherited styles */\n background-color: #2b2b2b !important;\n border: none !important;\n padding: 0.3rem !important;\n cursor: pointer !important;\n transition: opacity 0.2s !important;\n height: 1.5rem !important;\n width: 1.5rem !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 50% !important;\n box-sizing: border-box !important;\n margin: 0 1rem !important;\n}\n\n.pelican-modal-close-btn:hover {\n opacity: 0.6 !important;\n}\n\n.pelican-modal-close-btn svg {\n display: block !important;\n width: 100% !important;\n height: 100% !important;\n}\n\n.retry-container {\n text-align: center;\n padding: 3rem 0;\n}\n\n.retry-container > div:first-child {\n margin-bottom: 1rem;\n}\n\n.retry-text {\n font-size: 1.125rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.content-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n}\n\n.unpaired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n}\n\n.main-heading {\n font-size: 0.75rem;\n font-weight: 600;\n color: #585858;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n@media (min-width: 1024px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.mobile-auth-container {\n display: flex;\n flex-direction: column;\n gap: 0.7rem;\n width: 253px;\n background-color: #ffffff;\n border-radius: 10px;\n padding: 0 0 1rem 0;\n}\n\n.logo-container {\n display: flex;\n justify-content: center;\n padding: 2rem 0;\n}\n\n.open-app-link {\n display: inline-block;\n padding: 0.7rem 1.25rem;\n background-color: #101010ff;\n width: 70%;\n align-self: center;\n\n border-radius: 18px;\n color: #fff;\n font-weight: 500;\n font-size: 0.8rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.open-app-link:hover {\nopacity: 0.8;\n}\n\n.helper-text {\n font-size: 0.75rem;\n color: #6b7280;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.qr-container {\n display: flex;\n justify-content: center;\n}\n\n.qr-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border-radius: 10px;\n background-color: #fff;\n padding: 0.2rem;\n height: 244px;\n width: 244px;\n}\n\n.qr-image {\n height: 90%;\n width: 90%;\n}\n\n.loader-container {\n display: flex;\n justify-content: center;\n}\n\n.instruction-text {\n font-size: 0.875rem;\n color: #9ca3af;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.paired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-width: 250px;\n}\n\n.web-auth-btn {\n all: unset; /* Reset all inherited styles */\n cursor: pointer;\n margin-top: 1rem;\n display: inline-block;\n padding: 0.7rem 2rem;\n background-color: #ffffff;\n width: fit-content;\n align-self: center;\nborder: 1px solid #e2e2e2ff;\n border-radius: 28px;\n color: #101010ff;\n font-weight: 500;\n font-size: 0.7rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.web-auth-btn:hover {\nopacity: 0.9;\n}\n\n.paired-heading {\n font-size: 1rem;\n font-weight: 800;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .paired-heading {\n font-size: 1rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.success-message {\n background-color: #121212;\n color: #d9eb1b;\n padding: 0.5rem 1rem;\n border-radius: 1.3rem;\n font-weight: 700;\n font-size: 1rem;\n animation: successPulse 0.2s ease-in-out;\n margin: 0.5rem 0;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: 300px;\n max-width: fit-content;\n}\n\n.auto-renew-badge {\n display: inline-block;\n background-color: rgba(217, 235, 27, 0.2);\n border: 1px solid #d9eb1b;\n color: #d9eb1b;\n padding: 0.25rem 0.75rem;\n border-radius: 9999px;\n font-size: 0.75rem;\n font-weight: 600;\n margin-top: 0.5rem;\n}\n\n.scan-btn {\n all: unset;\n font-size: 0.7rem;\n color: #626262ff;\n background-color: #fafafaff;\n padding: 0.5rem 1.5rem;\n border-radius: 1.3rem;\n font-weight: 500;\n cursor: pointer;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: fit-content;\n align-self: center;\n}\n.error-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 1.5rem;\n border: 1px solid rgb(255, 236, 236);\n background-color: rgb(255, 255, 255);\n width: 250px;\n height: 80px;\n}\n\n.error-message {\n font-size: 0.75rem;\n font-weight: 400;\n color: rgb(255, 139, 139);\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n max-width: 70%;\n}\n\n.loader {\n width: 48px;\n height: 48px;\n position: relative;\n}\n.loader::before,\n.loader::after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 48em;\n height: 48em;\n background-image: radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0);\n background-position: 0em -18em, 0em 18em, 18em 0em, -18em 0em, 13em -13em,\n -13em -13em, 13em 13em, -13em 13em;\n background-repeat: no-repeat;\n font-size: 0.5px;\n border-radius: 50%;\n animation: blast 1s ease-in infinite;\n}\n.loader::after {\n font-size: 1px;\n background: #585858;\n animation: bounce 1s ease-in infinite;\n}\n\n@keyframes bounce {\n 0%,\n 100% {\n font-size: 0.75px;\n }\n 50% {\n font-size: 1.5px;\n }\n}\n@keyframes blast {\n 0%,\n 40% {\n font-size: 0.5px;\n }\n 70% {\n opacity: 1;\n font-size: 4px;\n }\n 100% {\n font-size: 6px;\n opacity: 0;\n }\n}\n`}\n </style>\n <section>\n <div\n style={{\n width: \"100%\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {!config.continuousMode && (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n {state === \"idle\" && (\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n width: \"100%\",\n alignSelf: \"center\",\n }}\n onClick={() => {\n if (state !== \"idle\") {\n stop();\n config.onClose?.();\n } else {\n start();\n }\n }}\n >\n {config.buttonComponent ? (\n config.buttonComponent\n ) : (\n <PelicanButton\n authType={config.authType}\n text={config.buttonText}\n type={\"idle\"}\n />\n )}\n </button>\n )}\n </div>\n )}\n </div>\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {state !== \"idle\" && (\n <div className=\"auth-container\">\n {successMessage && (\n <div\n className=\"success-message\"\n style={{ textAlign: \"center\" }}\n >\n {successMessage}\n {config.continuousMode && (\n <p\n style={{\n fontSize: \"0.8rem\",\n marginTop: \"0.5rem\",\n color: \"#f3f3f3\",\n textAlign: \"center\",\n }}\n >\n Preparing next session...\n </p>\n )}\n </div>\n )}\n {error && state === \"error\" && (\n <div className=\"error-wrapper\">\n <p className=\"error-message\">{error.message}</p>\n </div>\n )}\n\n {isProcessing ? (\n <div className=\"content-wrapper\">\n <h2 className=\"main-heading\">one sec...</h2>\n\n <span\n className=\"loader\"\n style={{ margin: \"1rem auto\", width: \"252px\" }}\n ></span>\n </div>\n ) : (\n <div className=\"content-wrapper\">\n {state === \"awaiting-pair\" && !successMessage && (\n <div className=\"unpaired-container\">\n {!deeplink && !config.forceQRCode && (\n <h2 className=\"main-heading\">\n {\" \"}\n Open Pelican Vault mobile app\n </h2>\n )}\n {!config.forceQRCode && deeplink ? (\n <div className=\"mobile-auth-container\">\n <div className=\"logo-container\">\n <img\n src=\"https://res.cloudinary.com/de0jr8mcm/image/upload/v1765904735/pelican/pelican_icon_r9ghqw.png \"\n alt=\"Pelican Logo\"\n style={{ width: \"54px\", height: \"54px\" }}\n />\n </div>\n <a href={deeplink} className=\"open-app-link\">\n Launch Pelican Vault\n </a>\n <p className=\"helper-text\">\n open app to{\" \"}\n {config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verify identity\"\n : \"authenticate\"}\n </p>\n <button\n type=\"button\"\n className=\"scan-btn\"\n onClick={useQrInstead}\n >\n or scan QR code\n </button>\n </div>\n ) : (config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ||\n (!config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ? (\n <div className=\"qr-container\">\n <div className=\"qr-wrapper\">\n {qr && (\n <img\n src={qr}\n alt=\"QR Code\"\n className=\"qr-image\"\n />\n )}\n {!qr && <span className=\"loader\"></span>}\n </div>\n </div>\n ) : (\n <div className=\"loader-container\">\n <span className=\"loader\"></span>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n <StoreIcons />\n {state === \"awaiting-pair\" && (\n <button\n type=\"button\"\n className=\"web-auth-btn\"\n onClick={useWebAuth}\n >\n Use web vault\n </button>\n )}\n </div>\n )}\n </div>\n\n {state !== \"idle\" && (\n <div\n style={{\n width: \"300px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n\n alignSelf: \"center\",\n }}\n onClick={() => {\n stop();\n config.onClose?.();\n }}\n >\n <PelicanButton\n authType={config.authType}\n text={`Cancel`}\n type={\"cancel\"}\n />\n </button>\n </div>\n )}\n </section>\n </>\n );\n};\n\nexport default PelicanAuth;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/PelicanButton.tsx","../src/hooks/usePelicanAuth.ts","../src/components/StoreIcons.tsx","../src/components/PelicanAuth.tsx"],"names":["jsxs","Fragment","jsx","useState","useRef","useEffect","PelicanAuthentication","useCallback","error"],"mappings":"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","file":"index.js","sourcesContent":["import { AuthType } from \"@pelican-identity/auth-core\";\n\nconst PelicanButton = ({\n authType,\n text,\n type,\n}: {\n authType: AuthType;\n text?: string;\n type: \"idle\" | \"cancel\";\n}) => {\n if (type === \"idle\") {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.5rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #2b2b2b !important;\n border: 1px solid #353535 !important;\n height: 36px !important;\n\n\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n background-color: #313131 !important;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #fff !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <div>\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 100 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Pelican logo\"\n >\n <rect width=\"100\" height=\"100\" rx=\"32\" />\n <path\n d=\"M56.5511 56.8089C56.5705 55.5878 57.5734 54.0696 58.7917 53.4254C60.0572 52.7596 61.0322 53.2324 61.0193 54.5099C60.9978 55.744 59.9754 57.2947 58.7572 57.9346C57.539 58.5744 56.5296 58.0777 56.5511 56.8089ZM70.0957 49.6364C70.2081 49.5555 70.2954 49.4442 70.3475 49.3154C70.369 48.6278 70.3626 47.9555 70.3626 47.2354C68.4083 48.5172 66.5142 49.7665 64.6202 51.0158V53.2389L65.1174 52.9114C66.7725 51.8183 68.4341 50.7338 70.0957 49.6364ZM69.7147 58.5592C68.4463 60.5076 66.7916 62.1705 64.8548 63.4436C63.1329 64.6039 61.4778 65.222 59.9389 65.1787C58.359 65.1375 57.2893 64.3957 56.6695 62.9686C57.2678 62.448 57.8059 61.9665 58.344 61.4937C58.5418 61.8163 58.7688 62.1198 59.022 62.4003C60.0572 63.3828 61.5488 63.3134 63.3546 62.4762C63.5698 62.3743 63.77 62.2593 63.9809 62.1401C64.8419 61.6607 65.2874 61.1033 65.5069 60.123C65.6834 59.3053 65.7932 58.5158 65.9374 57.7068C66.1135 56.6524 66.4412 55.6295 66.9102 54.6704C67.4634 53.5512 68.2382 52.7184 69.2412 52.3085C70.1323 51.9528 70.7048 52.2065 70.9911 52.8854C71.6432 54.4687 71.0965 56.425 69.7147 58.5592ZM69.3273 54.5923C69.2714 54.434 69.1013 54.2691 68.9528 54.3168C68.8043 54.3646 68.5632 54.6877 68.4341 54.9068C68.2881 55.1536 68.1759 55.4192 68.1005 55.6963C67.8293 56.8913 67.5775 58.082 67.3106 59.2641C67.356 59.263 67.4013 59.2586 67.4462 59.2511C68.1303 58.4928 68.6892 57.6287 69.1013 56.6918C69.4349 55.8741 69.5038 55.1757 69.3273 54.5923ZM80.7949 39.7072V60.2726C80.7942 62.6299 80.1786 64.9455 79.0098 66.9874C77.841 69.0293 76.1601 70.7257 74.1356 71.9066L56.4607 82.1785C54.4328 83.3608 52.1313 83.9834 49.7885 83.9834C47.4456 83.9834 45.1441 83.3608 43.1162 82.1785L25.4671 71.9001C23.4402 70.7208 21.7567 69.0251 20.5856 66.9831C19.4145 64.9411 18.7969 62.6246 18.7949 60.2661V39.7007C18.7969 37.3422 19.4145 35.0257 20.5856 32.9837C21.7567 30.9417 23.4402 29.246 25.4671 28.0667L43.1378 17.7883C45.1657 16.606 47.4671 15.9834 49.81 15.9834C52.1529 15.9834 54.4543 16.606 56.4822 17.7883L74.1356 28.0667C76.1601 29.2476 77.841 30.944 79.0098 32.9859C80.1786 35.0278 80.7942 37.3434 80.7949 39.7007V39.7072ZM77.8333 47.6887C77.8333 42.3077 73.5007 40.2624 68.1629 43.134L52.9287 51.2956C51.6739 51.9679 50.6602 53.5382 50.6602 54.8005V77.5956C50.6602 78.8644 51.6739 79.3307 52.9287 78.6649L58.5936 75.6284C59.1636 75.3055 59.6456 74.8458 59.997 74.2902C60.3517 73.7796 60.5547 73.1777 60.5824 72.5551C60.5824 71.9435 61.0731 71.1887 61.6779 70.8655L64.4975 69.3473C65.0291 69.0653 65.5414 68.7769 66.0299 68.4797L68.1629 67.3411C73.5007 64.4716 77.8333 57.7979 77.8333 52.4082V47.6887Z\"\n fill=\"#D9EB1B\"\n />\n </svg>\n </div>\n <div>\n <p>\n {text || (\n <span>\n {authType === \"login\"\n ? \"Login with Pelican\"\n : authType === \"signup\"\n ? \"Signup with Pelican\"\n : authType === \"id-verification\"\n ? \"Verify with Pelican\"\n : \"Authenticate with Pelican\"}\n </span>\n )}\n </p>\n </div>\n </div>\n </div>\n </>\n );\n } else {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.6rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #f8f8f8ff !important;\n height: 30px !important;\n margin: 8px 0 !important;\n width: fit-content !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #111827 !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <svg\n fill=\"#111827\"\n stroke=\"#111827\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"close icon\"\n height=\"16\"\n width=\"16\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={3}\n d=\"M6 18L18 6M6 6l12 12\"\n fill=\"#e94e4eff\"\n stroke=\"#e94e4eff\"\n color=\"#e94e4eff\"\n />\n </svg>\n <div>\n <p>cancel</p>\n </div>\n </div>\n </div>\n </>\n );\n }\n};\n\nexport default PelicanButton;\n","import {\n PelicanAuthentication,\n PelicanAuthState,\n PelicanWebAuthProps,\n} from \"@pelican-identity/auth-core\";\nimport { useState, useRef, useEffect, useCallback } from \"react\";\n\nexport const usePelicanAuth = (config: PelicanWebAuthProps) => {\n const [qr, setQr] = useState<string | null>(null);\n const [deeplink, setDeeplink] = useState<string | null>(null);\n const [err, seterr] = useState<Error | null>(null);\n const [state, setState] = useState<PelicanAuthState>(\"idle\");\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const pelicanRef = useRef<PelicanAuthentication | null>(null);\n const success =\n config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verification\"\n : \"authentication\";\n\n useEffect(() => {\n const pelican = new PelicanAuthentication(config);\n pelicanRef.current = pelican;\n\n // Subscriptions\n const unsub = [\n pelican.on(\"qr\", setQr),\n pelican.on(\"deeplink\", setDeeplink),\n pelican.on(\"success\", (identity) => {\n config.onSuccess(identity);\n if (config.continuousMode) {\n setSuccessMessage(`${success} complete!`);\n setTimeout(() => {\n setSuccessMessage(null);\n }, 2000);\n }\n }),\n pelican.on(\"error\", (error) => {\n seterr(error);\n config.onError?.(error);\n }),\n pelican.on(\"state\", setState),\n ];\n\n return () => {\n unsub.forEach((fn) => fn());\n pelican.destroy();\n };\n }, [config.publicKey, config.projectId, config.authType]);\n\n const start = useCallback(() => {\n pelicanRef.current?.start();\n }, []);\n\n const stop = useCallback(() => {\n pelicanRef.current?.stop();\n }, []);\n return {\n start,\n stop,\n qr,\n deeplink,\n state,\n isProcessing: [\"initializing\", \"paired\", \"awaiting-auth\"].includes(state),\n isDone: state === \"confirmed\" || state === \"authenticated\",\n error: err,\n successMessage,\n useQrInstead: () => pelicanRef.current?.useQrInstead(),\n useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),\n useWebAuth: () => pelicanRef.current?.openWebAuth(),\n openDeepLink: () => pelicanRef.current?.openDeepLink(),\n };\n};\n","const StoreIcons = () => {\n return (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n\n borderRadius: \"1.2rem\",\n gap: \"0.3rem\",\n\n height: \"1.4rem\",\n }}\n >\n <div>\n <p\n style={{\n fontSize: \"12px\",\n fontWeight: \"500\",\n color: \"#585858\",\n fontFamily:\n \"Onest, system-ui, Avenir, Helvetica, Arial, sans-serif\",\n }}\n >\n Get the app\n </p>\n </div>\n <a\n href=\"https://apps.apple.com/us/app/pelican-vault/id6755097751\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <Apple />\n </div>\n </a>\n <a\n href=\"https://play.google.com/store/apps/details?id=com.HeraculesDesignTechLtd.pelican\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <PlayStore />\n </div>\n </a>\n </div>\n </div>\n );\n};\n\nconst Apple = () => {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"apple icon\"\n >\n <g clipPath=\"url(#clip0_10529_2674)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.0213 7.30124C24.1265 7.30124 26.358 8.45986 27.947 10.4637C22.7386 13.3501 23.5854 20.8709 28.8483 22.881C28.1232 24.5027 27.777 25.2278 26.8445 26.664C25.5424 28.6663 23.7101 31.1613 21.435 31.1831C19.4156 31.2018 18.8963 29.8529 16.155 29.8685C13.4136 29.8841 12.8413 31.2065 10.8219 31.1878C8.54832 31.1659 6.80962 28.9142 5.50754 26.9104C1.86795 21.3091 1.48746 14.7363 3.73297 11.2433C5.32821 8.7577 7.84348 7.3028 10.2106 7.3028C12.6199 7.3028 14.134 8.63919 16.1269 8.63919C18.0605 8.63919 19.2363 7.30124 22.0213 7.30124ZM21.4101 0.000244141C21.6907 1.89489 20.9204 3.75054 19.9084 5.06354C18.8246 6.4701 16.958 7.5601 15.1523 7.50396C14.8248 5.69041 15.67 3.82383 16.6961 2.56542C17.8235 1.17757 19.7571 0.115638 21.4101 0.000244141Z\"\n fill=\"#585858\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10529_2674\">\n <rect width=\"31.1875\" height=\"31.1875\" fill=\"#585858\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nconst PlayStore = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 26 26\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"play icon\"\n >\n <path\n d=\"M0.015625 2.02546V24.3372C0.0157895 24.3856 0.0316774 24.4329 0.0612964 24.4731C0.0909154 24.5134 0.132947 24.5448 0.182121 24.5634C0.231294 24.582 0.285421 24.587 0.337713 24.5778C0.390006 24.5685 0.438136 24.5455 0.476069 24.5115L13.2604 13.1819L0.476069 1.85116C0.438136 1.81718 0.390006 1.79412 0.337713 1.7849C0.285421 1.77567 0.231294 1.78067 0.182121 1.79929C0.132947 1.8179 0.0909154 1.84929 0.0612964 1.88953C0.0316774 1.92976 0.0157895 1.97705 0.015625 2.02546ZM18.6208 8.52652L2.59086 0.501104L2.58086 0.495994C2.30472 0.359739 2.04233 0.699241 2.26849 0.896811L14.8342 11.8154L18.6208 8.52652ZM2.26974 25.467C2.04233 25.6645 2.30472 26.004 2.58211 25.8678L2.59211 25.8627L18.6208 17.8373L14.8342 14.5473L2.26974 25.467ZM25.092 11.7626L20.6156 9.52231L16.4067 13.1819L20.6156 16.8398L25.092 14.6012C26.3096 13.9898 26.3096 12.374 25.092 11.7626Z\"\n fill=\"#585858\"\n />\n </svg>\n );\n};\n\nexport default StoreIcons;\n","import { useEffect } from \"react\";\nimport PelicanButton from \"./PelicanButton\";\nimport { usePelicanAuth } from \"../hooks/usePelicanAuth\";\nimport StoreIcons from \"./StoreIcons\";\n\nimport { PelicanWebAuthProps } from \"@pelican-identity/auth-core\";\n\nconst PelicanAuth = (config: PelicanWebAuthProps) => {\n const {\n start,\n qr,\n state,\n deeplink,\n isProcessing,\n stop,\n error,\n successMessage,\n useQrInstead,\n useWebAuth,\n openDeepLink,\n } = usePelicanAuth({\n projectId: config.projectId,\n publicKey: config.publicKey,\n authType: config.authType,\n onClose: config.onClose,\n continuousMode: config.continuousMode,\n forceQRCode: config.forceQRCode,\n onSuccess: (identity) => {\n config.onSuccess(identity);\n },\n onError: (error) => {\n config.onError?.(error);\n },\n });\n useEffect(() => {\n if (config.continuousMode) {\n start();\n }\n }, [config.continuousMode]);\n return (\n <>\n <style>\n {`@keyframes fadeUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes successPulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.9;\n }\n}\n\n.auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n border-radius: 10px;\n animation: fadeUp 0.5s ease-out;\n background-color: #f9fafb;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n.js-auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n background-color: #f9fafb;\n border-radius: 2.5rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n\n.pelican-modal-close-btn {\n all: unset; /* Reset all inherited styles */\n background-color: #2b2b2b !important;\n border: none !important;\n padding: 0.3rem !important;\n cursor: pointer !important;\n transition: opacity 0.2s !important;\n height: 1.5rem !important;\n width: 1.5rem !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 50% !important;\n box-sizing: border-box !important;\n margin: 0 1rem !important;\n}\n\n.pelican-modal-close-btn:hover {\n opacity: 0.6 !important;\n}\n\n.pelican-modal-close-btn svg {\n display: block !important;\n width: 100% !important;\n height: 100% !important;\n}\n\n.retry-container {\n text-align: center;\n padding: 3rem 0;\n}\n\n.retry-container > div:first-child {\n margin-bottom: 1rem;\n}\n\n.retry-text {\n font-size: 1.125rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.content-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n}\n\n.unpaired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n}\n\n.main-heading {\n font-size: 0.75rem;\n font-weight: 600;\n color: #585858;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n@media (min-width: 1024px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.mobile-auth-container {\n display: flex;\n flex-direction: column;\n gap: 0.7rem;\n width: 253px;\n background-color: #ffffff;\n border-radius: 10px;\n padding: 0 0 1rem 0;\n}\n\n.logo-container {\n display: flex;\n justify-content: center;\n padding: 2rem 0;\n}\n\n.open-app-link {\n display: inline-block;\n padding: 0.7rem 1.25rem;\n background-color: #101010ff;\n width: 70%;\n align-self: center;\n\n border-radius: 18px;\n color: #fff;\n font-weight: 500;\n font-size: 0.8rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.open-app-link:hover {\nopacity: 0.8;\n}\n\n.helper-text {\n font-size: 0.75rem;\n color: #6b7280;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.qr-container {\n display: flex;\n justify-content: center;\n}\n\n.qr-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border-radius: 10px;\n background-color: #fff;\n padding: 0.2rem;\n height: 244px;\n width: 244px;\n}\n\n.qr-image {\n height: 90%;\n width: 90%;\n}\n\n.loader-container {\n display: flex;\n justify-content: center;\n}\n\n.instruction-text {\n font-size: 0.875rem;\n color: #9ca3af;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.paired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-width: 250px;\n}\n\n.web-auth-btn {\n all: unset; /* Reset all inherited styles */\n cursor: pointer;\n margin-top: 1rem;\n display: inline-block;\n padding: 0.7rem 2rem;\n background-color: #ffffff;\n width: fit-content;\n align-self: center;\nborder: 1px solid #e2e2e2ff;\n border-radius: 28px;\n color: #101010ff;\n font-weight: 500;\n font-size: 0.7rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.web-auth-btn:hover {\nopacity: 0.9;\n}\n\n.paired-heading {\n font-size: 1rem;\n font-weight: 800;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .paired-heading {\n font-size: 1rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.success-message {\n background-color: #121212;\n color: #d9eb1b;\n padding: 0.5rem 1rem;\n border-radius: 1.3rem;\n font-weight: 700;\n font-size: 1rem;\n animation: successPulse 0.2s ease-in-out;\n margin: 0.5rem 0;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: 300px;\n max-width: fit-content;\n}\n\n.auto-renew-badge {\n display: inline-block;\n background-color: rgba(217, 235, 27, 0.2);\n border: 1px solid #d9eb1b;\n color: #d9eb1b;\n padding: 0.25rem 0.75rem;\n border-radius: 9999px;\n font-size: 0.75rem;\n font-weight: 600;\n margin-top: 0.5rem;\n}\n\n.scan-btn {\n all: unset;\n font-size: 0.7rem;\n color: #626262ff;\n background-color: #fafafaff;\n padding: 0.5rem 1.5rem;\n border-radius: 1.3rem;\n font-weight: 500;\n cursor: pointer;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: fit-content;\n align-self: center;\n}\n.error-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 1.5rem;\n border: 1px solid rgb(255, 236, 236);\n background-color: rgb(255, 255, 255);\n width: 250px;\n height: 80px;\n}\n\n.error-message {\n font-size: 0.75rem;\n font-weight: 400;\n color: rgb(255, 139, 139);\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n max-width: 70%;\n}\n\n.loader {\n width: 48px;\n height: 48px;\n position: relative;\n}\n.loader::before,\n.loader::after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 48em;\n height: 48em;\n background-image: radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0);\n background-position: 0em -18em, 0em 18em, 18em 0em, -18em 0em, 13em -13em,\n -13em -13em, 13em 13em, -13em 13em;\n background-repeat: no-repeat;\n font-size: 0.5px;\n border-radius: 50%;\n animation: blast 1s ease-in infinite;\n}\n.loader::after {\n font-size: 1px;\n background: #585858;\n animation: bounce 1s ease-in infinite;\n}\n\n@keyframes bounce {\n 0%,\n 100% {\n font-size: 0.75px;\n }\n 50% {\n font-size: 1.5px;\n }\n}\n@keyframes blast {\n 0%,\n 40% {\n font-size: 0.5px;\n }\n 70% {\n opacity: 1;\n font-size: 4px;\n }\n 100% {\n font-size: 6px;\n opacity: 0;\n }\n}\n`}\n </style>\n <section>\n <div\n style={{\n width: \"100%\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {!config.continuousMode && (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n {state === \"idle\" && (\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n width: \"100%\",\n alignSelf: \"center\",\n }}\n onClick={() => {\n if (state !== \"idle\") {\n stop();\n config.onClose?.();\n } else {\n start();\n }\n }}\n >\n {config.buttonComponent ? (\n config.buttonComponent\n ) : (\n <PelicanButton\n authType={config.authType}\n text={config.buttonText}\n type={\"idle\"}\n />\n )}\n </button>\n )}\n </div>\n )}\n </div>\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {state !== \"idle\" && (\n <div className=\"auth-container\">\n {successMessage && (\n <div\n className=\"success-message\"\n style={{ textAlign: \"center\" }}\n >\n {successMessage}\n {config.continuousMode && (\n <p\n style={{\n fontSize: \"0.8rem\",\n marginTop: \"0.5rem\",\n color: \"#f3f3f3\",\n textAlign: \"center\",\n }}\n >\n Preparing next session...\n </p>\n )}\n </div>\n )}\n {error && state === \"error\" && (\n <div className=\"error-wrapper\">\n <p className=\"error-message\">{error.message}</p>\n </div>\n )}\n\n {isProcessing ? (\n <div className=\"content-wrapper\">\n <h2 className=\"main-heading\">one sec...</h2>\n\n <span\n className=\"loader\"\n style={{ margin: \"1rem auto\", width: \"252px\" }}\n ></span>\n </div>\n ) : (\n <div className=\"content-wrapper\">\n {state === \"awaiting-pair\" && !successMessage && (\n <div className=\"unpaired-container\">\n {!deeplink && !config.forceQRCode && (\n <h2 className=\"main-heading\">\n {\" \"}\n Open Pelican Vault mobile app\n </h2>\n )}\n {!config.forceQRCode && deeplink ? (\n <div className=\"mobile-auth-container\">\n <div className=\"logo-container\">\n <img\n src=\"https://res.cloudinary.com/de0jr8mcm/image/upload/v1765904735/pelican/pelican_icon_r9ghqw.png \"\n alt=\"Pelican Logo\"\n style={{ width: \"54px\", height: \"54px\" }}\n />\n </div>\n <button\n onClick={() => openDeepLink()}\n className=\"open-app-link\"\n type=\"button\"\n >\n Launch Pelican Vault\n </button>\n <p className=\"helper-text\">\n open app to{\" \"}\n {config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verify identity\"\n : \"authenticate\"}\n </p>\n <button\n type=\"button\"\n className=\"scan-btn\"\n onClick={useQrInstead}\n >\n or scan QR code\n </button>\n </div>\n ) : (config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ||\n (!config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ? (\n <div className=\"qr-container\">\n <div className=\"qr-wrapper\">\n {qr && (\n <img\n src={qr}\n alt=\"QR Code\"\n className=\"qr-image\"\n />\n )}\n {!qr && <span className=\"loader\"></span>}\n </div>\n </div>\n ) : (\n <div className=\"loader-container\">\n <span className=\"loader\"></span>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n <StoreIcons />\n {state === \"awaiting-pair\" && (\n <button\n type=\"button\"\n className=\"web-auth-btn\"\n onClick={useWebAuth}\n >\n Use web vault\n </button>\n )}\n </div>\n )}\n </div>\n\n {state !== \"idle\" && (\n <div\n style={{\n width: \"300px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n\n alignSelf: \"center\",\n }}\n onClick={() => {\n stop();\n config.onClose?.();\n }}\n >\n <PelicanButton\n authType={config.authType}\n text={`Cancel`}\n type={\"cancel\"}\n />\n </button>\n </div>\n )}\n </section>\n </>\n );\n};\n\nexport default PelicanAuth;\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -195,7 +195,8 @@ var usePelicanAuth = (config) => {
|
|
|
195
195
|
successMessage,
|
|
196
196
|
useQrInstead: () => pelicanRef.current?.useQrInstead(),
|
|
197
197
|
useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),
|
|
198
|
-
useWebAuth: () => pelicanRef.current?.openWebAuth()
|
|
198
|
+
useWebAuth: () => pelicanRef.current?.openWebAuth(),
|
|
199
|
+
openDeepLink: () => pelicanRef.current?.openDeepLink()
|
|
199
200
|
};
|
|
200
201
|
};
|
|
201
202
|
var StoreIcons = () => {
|
|
@@ -360,7 +361,8 @@ var PelicanAuth = (config) => {
|
|
|
360
361
|
error,
|
|
361
362
|
successMessage,
|
|
362
363
|
useQrInstead,
|
|
363
|
-
useWebAuth
|
|
364
|
+
useWebAuth,
|
|
365
|
+
openDeepLink
|
|
364
366
|
} = usePelicanAuth({
|
|
365
367
|
projectId: config.projectId,
|
|
366
368
|
publicKey: config.publicKey,
|
|
@@ -865,7 +867,15 @@ opacity: 0.9;
|
|
|
865
867
|
style: { width: "54px", height: "54px" }
|
|
866
868
|
}
|
|
867
869
|
) }),
|
|
868
|
-
/* @__PURE__ */ jsx(
|
|
870
|
+
/* @__PURE__ */ jsx(
|
|
871
|
+
"button",
|
|
872
|
+
{
|
|
873
|
+
onClick: () => openDeepLink(),
|
|
874
|
+
className: "open-app-link",
|
|
875
|
+
type: "button",
|
|
876
|
+
children: "Launch Pelican Vault"
|
|
877
|
+
}
|
|
878
|
+
),
|
|
869
879
|
/* @__PURE__ */ jsxs("p", { className: "helper-text", children: [
|
|
870
880
|
"open app to",
|
|
871
881
|
" ",
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/PelicanButton.tsx","../src/hooks/usePelicanAuth.ts","../src/components/StoreIcons.tsx","../src/components/PelicanAuth.tsx"],"names":["jsx","jsxs","error","useEffect","Fragment"],"mappings":"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","file":"index.mjs","sourcesContent":["import { AuthType } from \"@pelican-identity/auth-core\";\n\nconst PelicanButton = ({\n authType,\n text,\n type,\n}: {\n authType: AuthType;\n text?: string;\n type: \"idle\" | \"cancel\";\n}) => {\n if (type === \"idle\") {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.5rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #2b2b2b !important;\n border: 1px solid #353535 !important;\n height: 36px !important;\n\n\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n background-color: #313131 !important;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #fff !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <div>\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 100 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Pelican logo\"\n >\n <rect width=\"100\" height=\"100\" rx=\"32\" />\n <path\n d=\"M56.5511 56.8089C56.5705 55.5878 57.5734 54.0696 58.7917 53.4254C60.0572 52.7596 61.0322 53.2324 61.0193 54.5099C60.9978 55.744 59.9754 57.2947 58.7572 57.9346C57.539 58.5744 56.5296 58.0777 56.5511 56.8089ZM70.0957 49.6364C70.2081 49.5555 70.2954 49.4442 70.3475 49.3154C70.369 48.6278 70.3626 47.9555 70.3626 47.2354C68.4083 48.5172 66.5142 49.7665 64.6202 51.0158V53.2389L65.1174 52.9114C66.7725 51.8183 68.4341 50.7338 70.0957 49.6364ZM69.7147 58.5592C68.4463 60.5076 66.7916 62.1705 64.8548 63.4436C63.1329 64.6039 61.4778 65.222 59.9389 65.1787C58.359 65.1375 57.2893 64.3957 56.6695 62.9686C57.2678 62.448 57.8059 61.9665 58.344 61.4937C58.5418 61.8163 58.7688 62.1198 59.022 62.4003C60.0572 63.3828 61.5488 63.3134 63.3546 62.4762C63.5698 62.3743 63.77 62.2593 63.9809 62.1401C64.8419 61.6607 65.2874 61.1033 65.5069 60.123C65.6834 59.3053 65.7932 58.5158 65.9374 57.7068C66.1135 56.6524 66.4412 55.6295 66.9102 54.6704C67.4634 53.5512 68.2382 52.7184 69.2412 52.3085C70.1323 51.9528 70.7048 52.2065 70.9911 52.8854C71.6432 54.4687 71.0965 56.425 69.7147 58.5592ZM69.3273 54.5923C69.2714 54.434 69.1013 54.2691 68.9528 54.3168C68.8043 54.3646 68.5632 54.6877 68.4341 54.9068C68.2881 55.1536 68.1759 55.4192 68.1005 55.6963C67.8293 56.8913 67.5775 58.082 67.3106 59.2641C67.356 59.263 67.4013 59.2586 67.4462 59.2511C68.1303 58.4928 68.6892 57.6287 69.1013 56.6918C69.4349 55.8741 69.5038 55.1757 69.3273 54.5923ZM80.7949 39.7072V60.2726C80.7942 62.6299 80.1786 64.9455 79.0098 66.9874C77.841 69.0293 76.1601 70.7257 74.1356 71.9066L56.4607 82.1785C54.4328 83.3608 52.1313 83.9834 49.7885 83.9834C47.4456 83.9834 45.1441 83.3608 43.1162 82.1785L25.4671 71.9001C23.4402 70.7208 21.7567 69.0251 20.5856 66.9831C19.4145 64.9411 18.7969 62.6246 18.7949 60.2661V39.7007C18.7969 37.3422 19.4145 35.0257 20.5856 32.9837C21.7567 30.9417 23.4402 29.246 25.4671 28.0667L43.1378 17.7883C45.1657 16.606 47.4671 15.9834 49.81 15.9834C52.1529 15.9834 54.4543 16.606 56.4822 17.7883L74.1356 28.0667C76.1601 29.2476 77.841 30.944 79.0098 32.9859C80.1786 35.0278 80.7942 37.3434 80.7949 39.7007V39.7072ZM77.8333 47.6887C77.8333 42.3077 73.5007 40.2624 68.1629 43.134L52.9287 51.2956C51.6739 51.9679 50.6602 53.5382 50.6602 54.8005V77.5956C50.6602 78.8644 51.6739 79.3307 52.9287 78.6649L58.5936 75.6284C59.1636 75.3055 59.6456 74.8458 59.997 74.2902C60.3517 73.7796 60.5547 73.1777 60.5824 72.5551C60.5824 71.9435 61.0731 71.1887 61.6779 70.8655L64.4975 69.3473C65.0291 69.0653 65.5414 68.7769 66.0299 68.4797L68.1629 67.3411C73.5007 64.4716 77.8333 57.7979 77.8333 52.4082V47.6887Z\"\n fill=\"#D9EB1B\"\n />\n </svg>\n </div>\n <div>\n <p>\n {text || (\n <span>\n {authType === \"login\"\n ? \"Login with Pelican\"\n : authType === \"signup\"\n ? \"Signup with Pelican\"\n : authType === \"id-verification\"\n ? \"Verify with Pelican\"\n : \"Authenticate with Pelican\"}\n </span>\n )}\n </p>\n </div>\n </div>\n </div>\n </>\n );\n } else {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.6rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #f8f8f8ff !important;\n height: 30px !important;\n margin: 8px 0 !important;\n width: fit-content !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #111827 !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <svg\n fill=\"#111827\"\n stroke=\"#111827\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"close icon\"\n height=\"16\"\n width=\"16\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={3}\n d=\"M6 18L18 6M6 6l12 12\"\n fill=\"#e94e4eff\"\n stroke=\"#e94e4eff\"\n color=\"#e94e4eff\"\n />\n </svg>\n <div>\n <p>cancel</p>\n </div>\n </div>\n </div>\n </>\n );\n }\n};\n\nexport default PelicanButton;\n","import {\n PelicanAuthentication,\n PelicanAuthState,\n PelicanWebAuthProps,\n} from \"@pelican-identity/auth-core\";\nimport { useState, useRef, useEffect, useCallback } from \"react\";\n\nexport const usePelicanAuth = (config: PelicanWebAuthProps) => {\n const [qr, setQr] = useState<string | null>(null);\n const [deeplink, setDeeplink] = useState<string | null>(null);\n const [err, seterr] = useState<Error | null>(null);\n const [state, setState] = useState<PelicanAuthState>(\"idle\");\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const pelicanRef = useRef<PelicanAuthentication | null>(null);\n const success =\n config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verification\"\n : \"authentication\";\n\n useEffect(() => {\n const pelican = new PelicanAuthentication(config);\n pelicanRef.current = pelican;\n\n // Subscriptions\n const unsub = [\n pelican.on(\"qr\", setQr),\n pelican.on(\"deeplink\", setDeeplink),\n pelican.on(\"success\", (identity) => {\n config.onSuccess(identity);\n if (config.continuousMode) {\n setSuccessMessage(`${success} complete!`);\n setTimeout(() => {\n setSuccessMessage(null);\n }, 2000);\n }\n }),\n pelican.on(\"error\", (error) => {\n seterr(error);\n config.onError?.(error);\n }),\n pelican.on(\"state\", setState),\n ];\n\n return () => {\n unsub.forEach((fn) => fn());\n pelican.destroy();\n };\n }, [config.publicKey, config.projectId, config.authType]);\n\n const start = useCallback(() => {\n pelicanRef.current?.start();\n }, []);\n\n const stop = useCallback(() => {\n pelicanRef.current?.stop();\n }, []);\n return {\n start,\n stop,\n qr,\n deeplink,\n state,\n isProcessing: [\"initializing\", \"paired\", \"awaiting-auth\"].includes(state),\n isDone: state === \"confirmed\" || state === \"authenticated\",\n error: err,\n successMessage,\n useQrInstead: () => pelicanRef.current?.useQrInstead(),\n useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),\n useWebAuth: () => pelicanRef.current?.openWebAuth(),\n };\n};\n","const StoreIcons = () => {\n return (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n\n borderRadius: \"1.2rem\",\n gap: \"0.3rem\",\n\n height: \"1.4rem\",\n }}\n >\n <div>\n <p\n style={{\n fontSize: \"12px\",\n fontWeight: \"500\",\n color: \"#585858\",\n fontFamily:\n \"Onest, system-ui, Avenir, Helvetica, Arial, sans-serif\",\n }}\n >\n Get the app\n </p>\n </div>\n <a\n href=\"https://apps.apple.com/us/app/pelican-vault/id6755097751\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <Apple />\n </div>\n </a>\n <a\n href=\"https://play.google.com/store/apps/details?id=com.HeraculesDesignTechLtd.pelican\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <PlayStore />\n </div>\n </a>\n </div>\n </div>\n );\n};\n\nconst Apple = () => {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"apple icon\"\n >\n <g clipPath=\"url(#clip0_10529_2674)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.0213 7.30124C24.1265 7.30124 26.358 8.45986 27.947 10.4637C22.7386 13.3501 23.5854 20.8709 28.8483 22.881C28.1232 24.5027 27.777 25.2278 26.8445 26.664C25.5424 28.6663 23.7101 31.1613 21.435 31.1831C19.4156 31.2018 18.8963 29.8529 16.155 29.8685C13.4136 29.8841 12.8413 31.2065 10.8219 31.1878C8.54832 31.1659 6.80962 28.9142 5.50754 26.9104C1.86795 21.3091 1.48746 14.7363 3.73297 11.2433C5.32821 8.7577 7.84348 7.3028 10.2106 7.3028C12.6199 7.3028 14.134 8.63919 16.1269 8.63919C18.0605 8.63919 19.2363 7.30124 22.0213 7.30124ZM21.4101 0.000244141C21.6907 1.89489 20.9204 3.75054 19.9084 5.06354C18.8246 6.4701 16.958 7.5601 15.1523 7.50396C14.8248 5.69041 15.67 3.82383 16.6961 2.56542C17.8235 1.17757 19.7571 0.115638 21.4101 0.000244141Z\"\n fill=\"#585858\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10529_2674\">\n <rect width=\"31.1875\" height=\"31.1875\" fill=\"#585858\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nconst PlayStore = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 26 26\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"play icon\"\n >\n <path\n d=\"M0.015625 2.02546V24.3372C0.0157895 24.3856 0.0316774 24.4329 0.0612964 24.4731C0.0909154 24.5134 0.132947 24.5448 0.182121 24.5634C0.231294 24.582 0.285421 24.587 0.337713 24.5778C0.390006 24.5685 0.438136 24.5455 0.476069 24.5115L13.2604 13.1819L0.476069 1.85116C0.438136 1.81718 0.390006 1.79412 0.337713 1.7849C0.285421 1.77567 0.231294 1.78067 0.182121 1.79929C0.132947 1.8179 0.0909154 1.84929 0.0612964 1.88953C0.0316774 1.92976 0.0157895 1.97705 0.015625 2.02546ZM18.6208 8.52652L2.59086 0.501104L2.58086 0.495994C2.30472 0.359739 2.04233 0.699241 2.26849 0.896811L14.8342 11.8154L18.6208 8.52652ZM2.26974 25.467C2.04233 25.6645 2.30472 26.004 2.58211 25.8678L2.59211 25.8627L18.6208 17.8373L14.8342 14.5473L2.26974 25.467ZM25.092 11.7626L20.6156 9.52231L16.4067 13.1819L20.6156 16.8398L25.092 14.6012C26.3096 13.9898 26.3096 12.374 25.092 11.7626Z\"\n fill=\"#585858\"\n />\n </svg>\n );\n};\n\nexport default StoreIcons;\n","import { useEffect } from \"react\";\nimport PelicanButton from \"./PelicanButton\";\nimport { usePelicanAuth } from \"../hooks/usePelicanAuth\";\nimport StoreIcons from \"./StoreIcons\";\n\nimport { PelicanWebAuthProps } from \"@pelican-identity/auth-core\";\n\nconst PelicanAuth = (config: PelicanWebAuthProps) => {\n const {\n start,\n qr,\n state,\n deeplink,\n isProcessing,\n stop,\n error,\n successMessage,\n useQrInstead,\n useWebAuth,\n } = usePelicanAuth({\n projectId: config.projectId,\n publicKey: config.publicKey,\n authType: config.authType,\n onClose: config.onClose,\n continuousMode: config.continuousMode,\n forceQRCode: config.forceQRCode,\n onSuccess: (identity) => {\n config.onSuccess(identity);\n },\n onError: (error) => {\n config.onError?.(error);\n },\n });\n useEffect(() => {\n if (config.continuousMode) {\n start();\n }\n }, [config.continuousMode]);\n return (\n <>\n <style>\n {`@keyframes fadeUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes successPulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.9;\n }\n}\n\n.auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n border-radius: 10px;\n animation: fadeUp 0.5s ease-out;\n background-color: #f9fafb;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n.js-auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n background-color: #f9fafb;\n border-radius: 2.5rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n\n.pelican-modal-close-btn {\n all: unset; /* Reset all inherited styles */\n background-color: #2b2b2b !important;\n border: none !important;\n padding: 0.3rem !important;\n cursor: pointer !important;\n transition: opacity 0.2s !important;\n height: 1.5rem !important;\n width: 1.5rem !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 50% !important;\n box-sizing: border-box !important;\n margin: 0 1rem !important;\n}\n\n.pelican-modal-close-btn:hover {\n opacity: 0.6 !important;\n}\n\n.pelican-modal-close-btn svg {\n display: block !important;\n width: 100% !important;\n height: 100% !important;\n}\n\n.retry-container {\n text-align: center;\n padding: 3rem 0;\n}\n\n.retry-container > div:first-child {\n margin-bottom: 1rem;\n}\n\n.retry-text {\n font-size: 1.125rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.content-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n}\n\n.unpaired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n}\n\n.main-heading {\n font-size: 0.75rem;\n font-weight: 600;\n color: #585858;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n@media (min-width: 1024px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.mobile-auth-container {\n display: flex;\n flex-direction: column;\n gap: 0.7rem;\n width: 253px;\n background-color: #ffffff;\n border-radius: 10px;\n padding: 0 0 1rem 0;\n}\n\n.logo-container {\n display: flex;\n justify-content: center;\n padding: 2rem 0;\n}\n\n.open-app-link {\n display: inline-block;\n padding: 0.7rem 1.25rem;\n background-color: #101010ff;\n width: 70%;\n align-self: center;\n\n border-radius: 18px;\n color: #fff;\n font-weight: 500;\n font-size: 0.8rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.open-app-link:hover {\nopacity: 0.8;\n}\n\n.helper-text {\n font-size: 0.75rem;\n color: #6b7280;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.qr-container {\n display: flex;\n justify-content: center;\n}\n\n.qr-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border-radius: 10px;\n background-color: #fff;\n padding: 0.2rem;\n height: 244px;\n width: 244px;\n}\n\n.qr-image {\n height: 90%;\n width: 90%;\n}\n\n.loader-container {\n display: flex;\n justify-content: center;\n}\n\n.instruction-text {\n font-size: 0.875rem;\n color: #9ca3af;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.paired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-width: 250px;\n}\n\n.web-auth-btn {\n all: unset; /* Reset all inherited styles */\n cursor: pointer;\n margin-top: 1rem;\n display: inline-block;\n padding: 0.7rem 2rem;\n background-color: #ffffff;\n width: fit-content;\n align-self: center;\nborder: 1px solid #e2e2e2ff;\n border-radius: 28px;\n color: #101010ff;\n font-weight: 500;\n font-size: 0.7rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.web-auth-btn:hover {\nopacity: 0.9;\n}\n\n.paired-heading {\n font-size: 1rem;\n font-weight: 800;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .paired-heading {\n font-size: 1rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.success-message {\n background-color: #121212;\n color: #d9eb1b;\n padding: 0.5rem 1rem;\n border-radius: 1.3rem;\n font-weight: 700;\n font-size: 1rem;\n animation: successPulse 0.2s ease-in-out;\n margin: 0.5rem 0;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: 300px;\n max-width: fit-content;\n}\n\n.auto-renew-badge {\n display: inline-block;\n background-color: rgba(217, 235, 27, 0.2);\n border: 1px solid #d9eb1b;\n color: #d9eb1b;\n padding: 0.25rem 0.75rem;\n border-radius: 9999px;\n font-size: 0.75rem;\n font-weight: 600;\n margin-top: 0.5rem;\n}\n\n.scan-btn {\n all: unset;\n font-size: 0.7rem;\n color: #626262ff;\n background-color: #fafafaff;\n padding: 0.5rem 1.5rem;\n border-radius: 1.3rem;\n font-weight: 500;\n cursor: pointer;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: fit-content;\n align-self: center;\n}\n.error-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 1.5rem;\n border: 1px solid rgb(255, 236, 236);\n background-color: rgb(255, 255, 255);\n width: 250px;\n height: 80px;\n}\n\n.error-message {\n font-size: 0.75rem;\n font-weight: 400;\n color: rgb(255, 139, 139);\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n max-width: 70%;\n}\n\n.loader {\n width: 48px;\n height: 48px;\n position: relative;\n}\n.loader::before,\n.loader::after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 48em;\n height: 48em;\n background-image: radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0);\n background-position: 0em -18em, 0em 18em, 18em 0em, -18em 0em, 13em -13em,\n -13em -13em, 13em 13em, -13em 13em;\n background-repeat: no-repeat;\n font-size: 0.5px;\n border-radius: 50%;\n animation: blast 1s ease-in infinite;\n}\n.loader::after {\n font-size: 1px;\n background: #585858;\n animation: bounce 1s ease-in infinite;\n}\n\n@keyframes bounce {\n 0%,\n 100% {\n font-size: 0.75px;\n }\n 50% {\n font-size: 1.5px;\n }\n}\n@keyframes blast {\n 0%,\n 40% {\n font-size: 0.5px;\n }\n 70% {\n opacity: 1;\n font-size: 4px;\n }\n 100% {\n font-size: 6px;\n opacity: 0;\n }\n}\n`}\n </style>\n <section>\n <div\n style={{\n width: \"100%\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {!config.continuousMode && (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n {state === \"idle\" && (\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n width: \"100%\",\n alignSelf: \"center\",\n }}\n onClick={() => {\n if (state !== \"idle\") {\n stop();\n config.onClose?.();\n } else {\n start();\n }\n }}\n >\n {config.buttonComponent ? (\n config.buttonComponent\n ) : (\n <PelicanButton\n authType={config.authType}\n text={config.buttonText}\n type={\"idle\"}\n />\n )}\n </button>\n )}\n </div>\n )}\n </div>\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {state !== \"idle\" && (\n <div className=\"auth-container\">\n {successMessage && (\n <div\n className=\"success-message\"\n style={{ textAlign: \"center\" }}\n >\n {successMessage}\n {config.continuousMode && (\n <p\n style={{\n fontSize: \"0.8rem\",\n marginTop: \"0.5rem\",\n color: \"#f3f3f3\",\n textAlign: \"center\",\n }}\n >\n Preparing next session...\n </p>\n )}\n </div>\n )}\n {error && state === \"error\" && (\n <div className=\"error-wrapper\">\n <p className=\"error-message\">{error.message}</p>\n </div>\n )}\n\n {isProcessing ? (\n <div className=\"content-wrapper\">\n <h2 className=\"main-heading\">one sec...</h2>\n\n <span\n className=\"loader\"\n style={{ margin: \"1rem auto\", width: \"252px\" }}\n ></span>\n </div>\n ) : (\n <div className=\"content-wrapper\">\n {state === \"awaiting-pair\" && !successMessage && (\n <div className=\"unpaired-container\">\n {!deeplink && !config.forceQRCode && (\n <h2 className=\"main-heading\">\n {\" \"}\n Open Pelican Vault mobile app\n </h2>\n )}\n {!config.forceQRCode && deeplink ? (\n <div className=\"mobile-auth-container\">\n <div className=\"logo-container\">\n <img\n src=\"https://res.cloudinary.com/de0jr8mcm/image/upload/v1765904735/pelican/pelican_icon_r9ghqw.png \"\n alt=\"Pelican Logo\"\n style={{ width: \"54px\", height: \"54px\" }}\n />\n </div>\n <a href={deeplink} className=\"open-app-link\">\n Launch Pelican Vault\n </a>\n <p className=\"helper-text\">\n open app to{\" \"}\n {config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verify identity\"\n : \"authenticate\"}\n </p>\n <button\n type=\"button\"\n className=\"scan-btn\"\n onClick={useQrInstead}\n >\n or scan QR code\n </button>\n </div>\n ) : (config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ||\n (!config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ? (\n <div className=\"qr-container\">\n <div className=\"qr-wrapper\">\n {qr && (\n <img\n src={qr}\n alt=\"QR Code\"\n className=\"qr-image\"\n />\n )}\n {!qr && <span className=\"loader\"></span>}\n </div>\n </div>\n ) : (\n <div className=\"loader-container\">\n <span className=\"loader\"></span>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n <StoreIcons />\n {state === \"awaiting-pair\" && (\n <button\n type=\"button\"\n className=\"web-auth-btn\"\n onClick={useWebAuth}\n >\n Use web vault\n </button>\n )}\n </div>\n )}\n </div>\n\n {state !== \"idle\" && (\n <div\n style={{\n width: \"300px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n\n alignSelf: \"center\",\n }}\n onClick={() => {\n stop();\n config.onClose?.();\n }}\n >\n <PelicanButton\n authType={config.authType}\n text={`Cancel`}\n type={\"cancel\"}\n />\n </button>\n </div>\n )}\n </section>\n </>\n );\n};\n\nexport default PelicanAuth;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/PelicanButton.tsx","../src/hooks/usePelicanAuth.ts","../src/components/StoreIcons.tsx","../src/components/PelicanAuth.tsx"],"names":["jsx","jsxs","error","useEffect","Fragment"],"mappings":"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","file":"index.mjs","sourcesContent":["import { AuthType } from \"@pelican-identity/auth-core\";\n\nconst PelicanButton = ({\n authType,\n text,\n type,\n}: {\n authType: AuthType;\n text?: string;\n type: \"idle\" | \"cancel\";\n}) => {\n if (type === \"idle\") {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.5rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #2b2b2b !important;\n border: 1px solid #353535 !important;\n height: 36px !important;\n\n\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n background-color: #313131 !important;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #fff !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <div>\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 100 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Pelican logo\"\n >\n <rect width=\"100\" height=\"100\" rx=\"32\" />\n <path\n d=\"M56.5511 56.8089C56.5705 55.5878 57.5734 54.0696 58.7917 53.4254C60.0572 52.7596 61.0322 53.2324 61.0193 54.5099C60.9978 55.744 59.9754 57.2947 58.7572 57.9346C57.539 58.5744 56.5296 58.0777 56.5511 56.8089ZM70.0957 49.6364C70.2081 49.5555 70.2954 49.4442 70.3475 49.3154C70.369 48.6278 70.3626 47.9555 70.3626 47.2354C68.4083 48.5172 66.5142 49.7665 64.6202 51.0158V53.2389L65.1174 52.9114C66.7725 51.8183 68.4341 50.7338 70.0957 49.6364ZM69.7147 58.5592C68.4463 60.5076 66.7916 62.1705 64.8548 63.4436C63.1329 64.6039 61.4778 65.222 59.9389 65.1787C58.359 65.1375 57.2893 64.3957 56.6695 62.9686C57.2678 62.448 57.8059 61.9665 58.344 61.4937C58.5418 61.8163 58.7688 62.1198 59.022 62.4003C60.0572 63.3828 61.5488 63.3134 63.3546 62.4762C63.5698 62.3743 63.77 62.2593 63.9809 62.1401C64.8419 61.6607 65.2874 61.1033 65.5069 60.123C65.6834 59.3053 65.7932 58.5158 65.9374 57.7068C66.1135 56.6524 66.4412 55.6295 66.9102 54.6704C67.4634 53.5512 68.2382 52.7184 69.2412 52.3085C70.1323 51.9528 70.7048 52.2065 70.9911 52.8854C71.6432 54.4687 71.0965 56.425 69.7147 58.5592ZM69.3273 54.5923C69.2714 54.434 69.1013 54.2691 68.9528 54.3168C68.8043 54.3646 68.5632 54.6877 68.4341 54.9068C68.2881 55.1536 68.1759 55.4192 68.1005 55.6963C67.8293 56.8913 67.5775 58.082 67.3106 59.2641C67.356 59.263 67.4013 59.2586 67.4462 59.2511C68.1303 58.4928 68.6892 57.6287 69.1013 56.6918C69.4349 55.8741 69.5038 55.1757 69.3273 54.5923ZM80.7949 39.7072V60.2726C80.7942 62.6299 80.1786 64.9455 79.0098 66.9874C77.841 69.0293 76.1601 70.7257 74.1356 71.9066L56.4607 82.1785C54.4328 83.3608 52.1313 83.9834 49.7885 83.9834C47.4456 83.9834 45.1441 83.3608 43.1162 82.1785L25.4671 71.9001C23.4402 70.7208 21.7567 69.0251 20.5856 66.9831C19.4145 64.9411 18.7969 62.6246 18.7949 60.2661V39.7007C18.7969 37.3422 19.4145 35.0257 20.5856 32.9837C21.7567 30.9417 23.4402 29.246 25.4671 28.0667L43.1378 17.7883C45.1657 16.606 47.4671 15.9834 49.81 15.9834C52.1529 15.9834 54.4543 16.606 56.4822 17.7883L74.1356 28.0667C76.1601 29.2476 77.841 30.944 79.0098 32.9859C80.1786 35.0278 80.7942 37.3434 80.7949 39.7007V39.7072ZM77.8333 47.6887C77.8333 42.3077 73.5007 40.2624 68.1629 43.134L52.9287 51.2956C51.6739 51.9679 50.6602 53.5382 50.6602 54.8005V77.5956C50.6602 78.8644 51.6739 79.3307 52.9287 78.6649L58.5936 75.6284C59.1636 75.3055 59.6456 74.8458 59.997 74.2902C60.3517 73.7796 60.5547 73.1777 60.5824 72.5551C60.5824 71.9435 61.0731 71.1887 61.6779 70.8655L64.4975 69.3473C65.0291 69.0653 65.5414 68.7769 66.0299 68.4797L68.1629 67.3411C73.5007 64.4716 77.8333 57.7979 77.8333 52.4082V47.6887Z\"\n fill=\"#D9EB1B\"\n />\n </svg>\n </div>\n <div>\n <p>\n {text || (\n <span>\n {authType === \"login\"\n ? \"Login with Pelican\"\n : authType === \"signup\"\n ? \"Signup with Pelican\"\n : authType === \"id-verification\"\n ? \"Verify with Pelican\"\n : \"Authenticate with Pelican\"}\n </span>\n )}\n </p>\n </div>\n </div>\n </div>\n </>\n );\n } else {\n return (\n <>\n <style>\n {`\n .pelican-auth-btn-wrapper * {\n box-sizing: border-box;\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn { \n all: initial;\n display: flex !important;\n flex-direction: row !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 0.35rem !important;\n padding: 0.3rem 0.6rem !important;\n border-radius: 18px !important;\n cursor: pointer !important;\n background-color: #f8f8f8ff !important;\n height: 30px !important;\n margin: 8px 0 !important;\n width: fit-content !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn:hover {\n cursor: pointer !important;\n }\n \n .pelican-auth-btn-wrapper .pelican-auth-btn p {\n all: initial;\n font-size: 14px !important;\n font-weight: 500 !important;\n color: #111827 !important;\n font-family: Onest, system-ui, -apple-system, sans-serif !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n `}\n </style>\n <div className=\"pelican-auth-btn-wrapper\">\n <div className=\"pelican-auth-btn\">\n <svg\n fill=\"#111827\"\n stroke=\"#111827\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"close icon\"\n height=\"16\"\n width=\"16\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={3}\n d=\"M6 18L18 6M6 6l12 12\"\n fill=\"#e94e4eff\"\n stroke=\"#e94e4eff\"\n color=\"#e94e4eff\"\n />\n </svg>\n <div>\n <p>cancel</p>\n </div>\n </div>\n </div>\n </>\n );\n }\n};\n\nexport default PelicanButton;\n","import {\n PelicanAuthentication,\n PelicanAuthState,\n PelicanWebAuthProps,\n} from \"@pelican-identity/auth-core\";\nimport { useState, useRef, useEffect, useCallback } from \"react\";\n\nexport const usePelicanAuth = (config: PelicanWebAuthProps) => {\n const [qr, setQr] = useState<string | null>(null);\n const [deeplink, setDeeplink] = useState<string | null>(null);\n const [err, seterr] = useState<Error | null>(null);\n const [state, setState] = useState<PelicanAuthState>(\"idle\");\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const pelicanRef = useRef<PelicanAuthentication | null>(null);\n const success =\n config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verification\"\n : \"authentication\";\n\n useEffect(() => {\n const pelican = new PelicanAuthentication(config);\n pelicanRef.current = pelican;\n\n // Subscriptions\n const unsub = [\n pelican.on(\"qr\", setQr),\n pelican.on(\"deeplink\", setDeeplink),\n pelican.on(\"success\", (identity) => {\n config.onSuccess(identity);\n if (config.continuousMode) {\n setSuccessMessage(`${success} complete!`);\n setTimeout(() => {\n setSuccessMessage(null);\n }, 2000);\n }\n }),\n pelican.on(\"error\", (error) => {\n seterr(error);\n config.onError?.(error);\n }),\n pelican.on(\"state\", setState),\n ];\n\n return () => {\n unsub.forEach((fn) => fn());\n pelican.destroy();\n };\n }, [config.publicKey, config.projectId, config.authType]);\n\n const start = useCallback(() => {\n pelicanRef.current?.start();\n }, []);\n\n const stop = useCallback(() => {\n pelicanRef.current?.stop();\n }, []);\n return {\n start,\n stop,\n qr,\n deeplink,\n state,\n isProcessing: [\"initializing\", \"paired\", \"awaiting-auth\"].includes(state),\n isDone: state === \"confirmed\" || state === \"authenticated\",\n error: err,\n successMessage,\n useQrInstead: () => pelicanRef.current?.useQrInstead(),\n useDeepLinkInstead: () => pelicanRef.current?.useDeepLinkInstead(),\n useWebAuth: () => pelicanRef.current?.openWebAuth(),\n openDeepLink: () => pelicanRef.current?.openDeepLink(),\n };\n};\n","const StoreIcons = () => {\n return (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n\n borderRadius: \"1.2rem\",\n gap: \"0.3rem\",\n\n height: \"1.4rem\",\n }}\n >\n <div>\n <p\n style={{\n fontSize: \"12px\",\n fontWeight: \"500\",\n color: \"#585858\",\n fontFamily:\n \"Onest, system-ui, Avenir, Helvetica, Arial, sans-serif\",\n }}\n >\n Get the app\n </p>\n </div>\n <a\n href=\"https://apps.apple.com/us/app/pelican-vault/id6755097751\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <Apple />\n </div>\n </a>\n <a\n href=\"https://play.google.com/store/apps/details?id=com.HeraculesDesignTechLtd.pelican\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.4rem\",\n cursor: \"pointer\",\n height: \"32px\",\n width: \"32px\",\n borderRadius: \"0.7rem\",\n transition: \"all 0.2s ease-in-out\",\n border: \"1px solid #e5e7eb\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"#f5f5f5\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"transparent\";\n }}\n >\n <PlayStore />\n </div>\n </a>\n </div>\n </div>\n );\n};\n\nconst Apple = () => {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"apple icon\"\n >\n <g clipPath=\"url(#clip0_10529_2674)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.0213 7.30124C24.1265 7.30124 26.358 8.45986 27.947 10.4637C22.7386 13.3501 23.5854 20.8709 28.8483 22.881C28.1232 24.5027 27.777 25.2278 26.8445 26.664C25.5424 28.6663 23.7101 31.1613 21.435 31.1831C19.4156 31.2018 18.8963 29.8529 16.155 29.8685C13.4136 29.8841 12.8413 31.2065 10.8219 31.1878C8.54832 31.1659 6.80962 28.9142 5.50754 26.9104C1.86795 21.3091 1.48746 14.7363 3.73297 11.2433C5.32821 8.7577 7.84348 7.3028 10.2106 7.3028C12.6199 7.3028 14.134 8.63919 16.1269 8.63919C18.0605 8.63919 19.2363 7.30124 22.0213 7.30124ZM21.4101 0.000244141C21.6907 1.89489 20.9204 3.75054 19.9084 5.06354C18.8246 6.4701 16.958 7.5601 15.1523 7.50396C14.8248 5.69041 15.67 3.82383 16.6961 2.56542C17.8235 1.17757 19.7571 0.115638 21.4101 0.000244141Z\"\n fill=\"#585858\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10529_2674\">\n <rect width=\"31.1875\" height=\"31.1875\" fill=\"#585858\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nconst PlayStore = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 26 26\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"play icon\"\n >\n <path\n d=\"M0.015625 2.02546V24.3372C0.0157895 24.3856 0.0316774 24.4329 0.0612964 24.4731C0.0909154 24.5134 0.132947 24.5448 0.182121 24.5634C0.231294 24.582 0.285421 24.587 0.337713 24.5778C0.390006 24.5685 0.438136 24.5455 0.476069 24.5115L13.2604 13.1819L0.476069 1.85116C0.438136 1.81718 0.390006 1.79412 0.337713 1.7849C0.285421 1.77567 0.231294 1.78067 0.182121 1.79929C0.132947 1.8179 0.0909154 1.84929 0.0612964 1.88953C0.0316774 1.92976 0.0157895 1.97705 0.015625 2.02546ZM18.6208 8.52652L2.59086 0.501104L2.58086 0.495994C2.30472 0.359739 2.04233 0.699241 2.26849 0.896811L14.8342 11.8154L18.6208 8.52652ZM2.26974 25.467C2.04233 25.6645 2.30472 26.004 2.58211 25.8678L2.59211 25.8627L18.6208 17.8373L14.8342 14.5473L2.26974 25.467ZM25.092 11.7626L20.6156 9.52231L16.4067 13.1819L20.6156 16.8398L25.092 14.6012C26.3096 13.9898 26.3096 12.374 25.092 11.7626Z\"\n fill=\"#585858\"\n />\n </svg>\n );\n};\n\nexport default StoreIcons;\n","import { useEffect } from \"react\";\nimport PelicanButton from \"./PelicanButton\";\nimport { usePelicanAuth } from \"../hooks/usePelicanAuth\";\nimport StoreIcons from \"./StoreIcons\";\n\nimport { PelicanWebAuthProps } from \"@pelican-identity/auth-core\";\n\nconst PelicanAuth = (config: PelicanWebAuthProps) => {\n const {\n start,\n qr,\n state,\n deeplink,\n isProcessing,\n stop,\n error,\n successMessage,\n useQrInstead,\n useWebAuth,\n openDeepLink,\n } = usePelicanAuth({\n projectId: config.projectId,\n publicKey: config.publicKey,\n authType: config.authType,\n onClose: config.onClose,\n continuousMode: config.continuousMode,\n forceQRCode: config.forceQRCode,\n onSuccess: (identity) => {\n config.onSuccess(identity);\n },\n onError: (error) => {\n config.onError?.(error);\n },\n });\n useEffect(() => {\n if (config.continuousMode) {\n start();\n }\n }, [config.continuousMode]);\n return (\n <>\n <style>\n {`@keyframes fadeUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes successPulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.9;\n }\n}\n\n.auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n border-radius: 10px;\n animation: fadeUp 0.5s ease-out;\n background-color: #f9fafb;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n.js-auth-container {\n width: 300px;\n max-width: fit-content;\n padding: 1rem;\n margin-top: 0.3rem;\n position: relative;\n background-color: #f9fafb;\n border-radius: 2.5rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 300px;\n}\n\n.pelican-modal-close-btn {\n all: unset; /* Reset all inherited styles */\n background-color: #2b2b2b !important;\n border: none !important;\n padding: 0.3rem !important;\n cursor: pointer !important;\n transition: opacity 0.2s !important;\n height: 1.5rem !important;\n width: 1.5rem !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 50% !important;\n box-sizing: border-box !important;\n margin: 0 1rem !important;\n}\n\n.pelican-modal-close-btn:hover {\n opacity: 0.6 !important;\n}\n\n.pelican-modal-close-btn svg {\n display: block !important;\n width: 100% !important;\n height: 100% !important;\n}\n\n.retry-container {\n text-align: center;\n padding: 3rem 0;\n}\n\n.retry-container > div:first-child {\n margin-bottom: 1rem;\n}\n\n.retry-text {\n font-size: 1.125rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.content-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n}\n\n.unpaired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n}\n\n.main-heading {\n font-size: 0.75rem;\n font-weight: 600;\n color: #585858;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n@media (min-width: 1024px) {\n .main-heading {\n font-size: 0.8rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.mobile-auth-container {\n display: flex;\n flex-direction: column;\n gap: 0.7rem;\n width: 253px;\n background-color: #ffffff;\n border-radius: 10px;\n padding: 0 0 1rem 0;\n}\n\n.logo-container {\n display: flex;\n justify-content: center;\n padding: 2rem 0;\n}\n\n.open-app-link {\n display: inline-block;\n padding: 0.7rem 1.25rem;\n background-color: #101010ff;\n width: 70%;\n align-self: center;\n\n border-radius: 18px;\n color: #fff;\n font-weight: 500;\n font-size: 0.8rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.open-app-link:hover {\nopacity: 0.8;\n}\n\n.helper-text {\n font-size: 0.75rem;\n color: #6b7280;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.qr-container {\n display: flex;\n justify-content: center;\n}\n\n.qr-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border-radius: 10px;\n background-color: #fff;\n padding: 0.2rem;\n height: 244px;\n width: 244px;\n}\n\n.qr-image {\n height: 90%;\n width: 90%;\n}\n\n.loader-container {\n display: flex;\n justify-content: center;\n}\n\n.instruction-text {\n font-size: 0.875rem;\n color: #9ca3af;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.paired-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-width: 250px;\n}\n\n.web-auth-btn {\n all: unset; /* Reset all inherited styles */\n cursor: pointer;\n margin-top: 1rem;\n display: inline-block;\n padding: 0.7rem 2rem;\n background-color: #ffffff;\n width: fit-content;\n align-self: center;\nborder: 1px solid #e2e2e2ff;\n border-radius: 28px;\n color: #101010ff;\n font-weight: 500;\n font-size: 0.7rem;\n text-decoration: none;\n transition: background-color 0.2s;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n.web-auth-btn:hover {\nopacity: 0.9;\n}\n\n.paired-heading {\n font-size: 1rem;\n font-weight: 800;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n}\n\n@media (min-width: 768px) {\n .paired-heading {\n font-size: 1rem;\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n }\n}\n\n.success-message {\n background-color: #121212;\n color: #d9eb1b;\n padding: 0.5rem 1rem;\n border-radius: 1.3rem;\n font-weight: 700;\n font-size: 1rem;\n animation: successPulse 0.2s ease-in-out;\n margin: 0.5rem 0;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: 300px;\n max-width: fit-content;\n}\n\n.auto-renew-badge {\n display: inline-block;\n background-color: rgba(217, 235, 27, 0.2);\n border: 1px solid #d9eb1b;\n color: #d9eb1b;\n padding: 0.25rem 0.75rem;\n border-radius: 9999px;\n font-size: 0.75rem;\n font-weight: 600;\n margin-top: 0.5rem;\n}\n\n.scan-btn {\n all: unset;\n font-size: 0.7rem;\n color: #626262ff;\n background-color: #fafafaff;\n padding: 0.5rem 1.5rem;\n border-radius: 1.3rem;\n font-weight: 500;\n cursor: pointer;\n font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;\n width: fit-content;\n align-self: center;\n}\n.error-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 1.5rem;\n border: 1px solid rgb(255, 236, 236);\n background-color: rgb(255, 255, 255);\n width: 250px;\n height: 80px;\n}\n\n.error-message {\n font-size: 0.75rem;\n font-weight: 400;\n color: rgb(255, 139, 139);\n font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;\n max-width: 70%;\n}\n\n.loader {\n width: 48px;\n height: 48px;\n position: relative;\n}\n.loader::before,\n.loader::after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 48em;\n height: 48em;\n background-image: radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0),\n radial-gradient(circle 10px, #585858 100%, transparent 0);\n background-position: 0em -18em, 0em 18em, 18em 0em, -18em 0em, 13em -13em,\n -13em -13em, 13em 13em, -13em 13em;\n background-repeat: no-repeat;\n font-size: 0.5px;\n border-radius: 50%;\n animation: blast 1s ease-in infinite;\n}\n.loader::after {\n font-size: 1px;\n background: #585858;\n animation: bounce 1s ease-in infinite;\n}\n\n@keyframes bounce {\n 0%,\n 100% {\n font-size: 0.75px;\n }\n 50% {\n font-size: 1.5px;\n }\n}\n@keyframes blast {\n 0%,\n 40% {\n font-size: 0.5px;\n }\n 70% {\n opacity: 1;\n font-size: 4px;\n }\n 100% {\n font-size: 6px;\n opacity: 0;\n }\n}\n`}\n </style>\n <section>\n <div\n style={{\n width: \"100%\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {!config.continuousMode && (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n {state === \"idle\" && (\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n width: \"100%\",\n alignSelf: \"center\",\n }}\n onClick={() => {\n if (state !== \"idle\") {\n stop();\n config.onClose?.();\n } else {\n start();\n }\n }}\n >\n {config.buttonComponent ? (\n config.buttonComponent\n ) : (\n <PelicanButton\n authType={config.authType}\n text={config.buttonText}\n type={\"idle\"}\n />\n )}\n </button>\n )}\n </div>\n )}\n </div>\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"300px\",\n }}\n >\n {state !== \"idle\" && (\n <div className=\"auth-container\">\n {successMessage && (\n <div\n className=\"success-message\"\n style={{ textAlign: \"center\" }}\n >\n {successMessage}\n {config.continuousMode && (\n <p\n style={{\n fontSize: \"0.8rem\",\n marginTop: \"0.5rem\",\n color: \"#f3f3f3\",\n textAlign: \"center\",\n }}\n >\n Preparing next session...\n </p>\n )}\n </div>\n )}\n {error && state === \"error\" && (\n <div className=\"error-wrapper\">\n <p className=\"error-message\">{error.message}</p>\n </div>\n )}\n\n {isProcessing ? (\n <div className=\"content-wrapper\">\n <h2 className=\"main-heading\">one sec...</h2>\n\n <span\n className=\"loader\"\n style={{ margin: \"1rem auto\", width: \"252px\" }}\n ></span>\n </div>\n ) : (\n <div className=\"content-wrapper\">\n {state === \"awaiting-pair\" && !successMessage && (\n <div className=\"unpaired-container\">\n {!deeplink && !config.forceQRCode && (\n <h2 className=\"main-heading\">\n {\" \"}\n Open Pelican Vault mobile app\n </h2>\n )}\n {!config.forceQRCode && deeplink ? (\n <div className=\"mobile-auth-container\">\n <div className=\"logo-container\">\n <img\n src=\"https://res.cloudinary.com/de0jr8mcm/image/upload/v1765904735/pelican/pelican_icon_r9ghqw.png \"\n alt=\"Pelican Logo\"\n style={{ width: \"54px\", height: \"54px\" }}\n />\n </div>\n <button\n onClick={() => openDeepLink()}\n className=\"open-app-link\"\n type=\"button\"\n >\n Launch Pelican Vault\n </button>\n <p className=\"helper-text\">\n open app to{\" \"}\n {config.authType === \"login\"\n ? \"login\"\n : config.authType === \"signup\"\n ? \"signup\"\n : config.authType === \"id-verification\"\n ? \"verify identity\"\n : \"authenticate\"}\n </p>\n <button\n type=\"button\"\n className=\"scan-btn\"\n onClick={useQrInstead}\n >\n or scan QR code\n </button>\n </div>\n ) : (config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ||\n (!config.forceQRCode &&\n qr &&\n state === \"awaiting-pair\") ? (\n <div className=\"qr-container\">\n <div className=\"qr-wrapper\">\n {qr && (\n <img\n src={qr}\n alt=\"QR Code\"\n className=\"qr-image\"\n />\n )}\n {!qr && <span className=\"loader\"></span>}\n </div>\n </div>\n ) : (\n <div className=\"loader-container\">\n <span className=\"loader\"></span>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n <StoreIcons />\n {state === \"awaiting-pair\" && (\n <button\n type=\"button\"\n className=\"web-auth-btn\"\n onClick={useWebAuth}\n >\n Use web vault\n </button>\n )}\n </div>\n )}\n </div>\n\n {state !== \"idle\" && (\n <div\n style={{\n width: \"300px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <button\n type=\"button\"\n style={{\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n\n alignSelf: \"center\",\n }}\n onClick={() => {\n stop();\n config.onClose?.();\n }}\n >\n <PelicanButton\n authType={config.authType}\n text={`Cancel`}\n type={\"cancel\"}\n />\n </button>\n </div>\n )}\n </section>\n </>\n );\n};\n\nexport default PelicanAuth;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pelican-identity/react",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.45",
|
|
4
4
|
"description": "React components for Pelican Identity authentication",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@pelican-identity/auth-core": "1.2.
|
|
24
|
+
"@pelican-identity/auth-core": "1.2.42"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/react": "^19.0.4",
|