@pelican-identity/react 2.0.20 → 2.0.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pelican-identity/react",
3
- "version": "2.0.20",
3
+ "version": "2.0.21",
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.18"
24
+ "@pelican-identity/auth-core": "1.2.19"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/react": "^19.0.4",
@@ -1 +0,0 @@
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,4CA6kB/C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,426 +0,0 @@
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, } = 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
- animation: fadeUp 0.5s ease-out;
62
- background-color: #f9fafb;
63
- border-radius: 2.5rem;
64
- display: flex;
65
- flex-direction: column;
66
- justify-content: space-between;
67
- align-items: center;
68
- gap: 1rem;
69
- min-height: 320px;
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: 320px;
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
- }
102
-
103
- .pelican-modal-close-btn:hover {
104
- opacity: 0.6 !important;
105
- }
106
-
107
- .pelican-modal-close-btn svg {
108
- display: block !important;
109
- width: 100% !important;
110
- height: 100% !important;
111
- }
112
-
113
- .retry-container {
114
- text-align: center;
115
- padding: 3rem 0;
116
- }
117
-
118
- .retry-container > div:first-child {
119
- margin-bottom: 1rem;
120
- }
121
-
122
- .retry-text {
123
- font-size: 1.125rem;
124
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
125
- }
126
-
127
- .content-wrapper {
128
- display: flex;
129
- flex-direction: column;
130
- justify-content: center;
131
- align-items: center;
132
- gap: 2rem;
133
- }
134
-
135
- .unpaired-container {
136
- text-align: center;
137
- display: flex;
138
- flex-direction: column;
139
- }
140
-
141
- .main-heading {
142
- font-size: 0.75rem;
143
- font-weight: 600;
144
- color: #585858;
145
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
146
- }
147
-
148
- @media (min-width: 768px) {
149
- .main-heading {
150
- font-size: 1rem;
151
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
152
- }
153
- }
154
-
155
- @media (min-width: 1024px) {
156
- .main-heading {
157
- font-size: 1rem;
158
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
159
- }
160
- }
161
-
162
- .mobile-auth-container {
163
- display: flex;
164
- flex-direction: column;
165
- gap: 0.7rem;
166
- width: 253px;
167
- }
168
-
169
- .logo-container {
170
- display: flex;
171
- justify-content: center;
172
- padding: 2rem 0;
173
- }
174
-
175
- .open-app-link {
176
- display: inline-block;
177
- padding: 0.75rem 1rem;
178
- background-color: #2b2b2bff;
179
- width: fit-content;
180
- align-self: center;
181
-
182
- border-radius: 18px;
183
- color: #fff;
184
- font-weight: 500;
185
- font-size: 1rem;
186
- text-decoration: none;
187
- transition: background-color 0.2s;
188
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
189
- }
190
-
191
- .open-app-link:hover {
192
- opacity: 0.8;
193
- }
194
-
195
- .helper-text {
196
- font-size: 0.75rem;
197
- color: #6b7280;
198
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
199
- }
200
-
201
- .qr-container {
202
- display: flex;
203
- justify-content: center;
204
- }
205
-
206
- .qr-wrapper {
207
- display: flex;
208
- justify-content: center;
209
- align-items: center;
210
- overflow: hidden;
211
- border-radius: 2rem;
212
- background-color: #fff;
213
- padding: 0.2rem;
214
- height: 244px;
215
- width: 244px;
216
- }
217
-
218
- .qr-image {
219
- height: 90%;
220
- width: 90%;
221
- }
222
-
223
- .loader-container {
224
- display: flex;
225
- justify-content: center;
226
- }
227
-
228
- .instruction-text {
229
- font-size: 0.875rem;
230
- color: #9ca3af;
231
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
232
- }
233
-
234
- .paired-container {
235
- text-align: center;
236
- display: flex;
237
- flex-direction: column;
238
- gap: 1rem;
239
- max-width: 250px;
240
- }
241
-
242
- .paired-heading {
243
- font-size: 1rem;
244
- font-weight: 800;
245
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
246
- }
247
-
248
- @media (min-width: 768px) {
249
- .paired-heading {
250
- font-size: 1rem;
251
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
252
- }
253
- }
254
-
255
- .success-message {
256
- background-color: #121212;
257
- color: #d9eb1b;
258
- padding: 0.5rem 1rem;
259
- border-radius: 1.3rem;
260
- font-weight: 700;
261
- font-size: 1rem;
262
- animation: successPulse 0.2s ease-in-out;
263
- margin: 0.5rem 0;
264
- font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
265
- width: 300px;
266
- max-width: fit-content;
267
- }
268
-
269
- .auto-renew-badge {
270
- display: inline-block;
271
- background-color: rgba(217, 235, 27, 0.2);
272
- border: 1px solid #d9eb1b;
273
- color: #d9eb1b;
274
- padding: 0.25rem 0.75rem;
275
- border-radius: 9999px;
276
- font-size: 0.75rem;
277
- font-weight: 600;
278
- margin-top: 0.5rem;
279
- }
280
-
281
- .scan-btn {
282
- all: unset;
283
- font-size: 0.8rem;
284
- color: #626262ff;
285
- font-weight: 600;
286
- cursor: pointer;
287
- font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
288
- }
289
- .error-wrapper {
290
- display: flex;
291
- justify-content: center;
292
- align-items: center;
293
- text-align: center;
294
- border-radius: 1.5rem;
295
- border: 1px solid rgb(255, 236, 236);
296
- background-color: rgb(255, 255, 255);
297
- width: 250px;
298
- height: 80px;
299
- }
300
-
301
- .error-message {
302
- font-size: 0.75rem;
303
- font-weight: 400;
304
- color: rgb(255, 139, 139);
305
- font-family: Onest, system-ui, Avenir, Helvetica, Arial, sans-serif;
306
- max-width: 70%;
307
- }
308
-
309
- .loader {
310
- width: 48px;
311
- height: 48px;
312
- position: relative;
313
- }
314
- .loader::before,
315
- .loader::after {
316
- content: "";
317
- position: absolute;
318
- left: 50%;
319
- top: 50%;
320
- transform: translate(-50%, -50%);
321
- width: 48em;
322
- height: 48em;
323
- background-image: radial-gradient(circle 10px, #585858 100%, transparent 0),
324
- radial-gradient(circle 10px, #585858 100%, transparent 0),
325
- radial-gradient(circle 10px, #585858 100%, transparent 0),
326
- radial-gradient(circle 10px, #585858 100%, transparent 0),
327
- radial-gradient(circle 10px, #585858 100%, transparent 0),
328
- radial-gradient(circle 10px, #585858 100%, transparent 0),
329
- radial-gradient(circle 10px, #585858 100%, transparent 0),
330
- radial-gradient(circle 10px, #585858 100%, transparent 0),
331
- radial-gradient(circle 10px, #585858 100%, transparent 0);
332
- background-position: 0em -18em, 0em 18em, 18em 0em, -18em 0em, 13em -13em,
333
- -13em -13em, 13em 13em, -13em 13em;
334
- background-repeat: no-repeat;
335
- font-size: 0.5px;
336
- border-radius: 50%;
337
- animation: blast 1s ease-in infinite;
338
- }
339
- .loader::after {
340
- font-size: 1px;
341
- background: #585858;
342
- animation: bounce 1s ease-in infinite;
343
- }
344
-
345
- @keyframes bounce {
346
- 0%,
347
- 100% {
348
- font-size: 0.75px;
349
- }
350
- 50% {
351
- font-size: 1.5px;
352
- }
353
- }
354
- @keyframes blast {
355
- 0%,
356
- 40% {
357
- font-size: 0.5px;
358
- }
359
- 70% {
360
- opacity: 1;
361
- font-size: 4px;
362
- }
363
- 100% {
364
- font-size: 6px;
365
- opacity: 0;
366
- }
367
- }
368
- ` }), _jsxs("section", { children: [_jsx("div", { style: {
369
- maxWidth: "275px",
370
- justifyContent: "space-between",
371
- alignItems: "center",
372
- width: "100%",
373
- }, children: !config.continuousMode && (_jsxs("div", { style: {
374
- width: "100%",
375
- display: "flex",
376
- justifyContent: "space-between",
377
- alignItems: "center",
378
- }, children: [_jsx("button", { type: "button", style: {
379
- border: "none",
380
- background: "transparent",
381
- cursor: "pointer",
382
- }, onClick: () => {
383
- start();
384
- }, disabled: config.continuousMode, children: config.buttonComponent ? (config.buttonComponent) : (_jsx(PelicanButton, { authType: config.authType, text: config.buttonText })) }), state !== "idle" && (_jsx("button", { onClick: () => {
385
- stop();
386
- config.onClose?.();
387
- }, className: "pelican-modal-close-btn", "aria-label": "Close", type: "button", style: {
388
- border: "none !important",
389
- padding: "0.3rem !important",
390
- cursor: "pointer !important",
391
- }, children: _jsx("svg", { fill: "#fff", stroke: "#fff", viewBox: "0 0 24 24", role: "img", "aria-label": "close icon", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M6 18L18 6M6 6l12 12", height: "24", width: "24", fill: "#fff", stroke: "#fff", color: "#fff" }) }) }))] })) }), state !== "idle" && (_jsxs("div", { className: "auth-container", children: [successMessage && (_jsxs("div", { className: "success-message", style: { textAlign: "center" }, children: [successMessage, config.continuousMode && (_jsx("p", { style: {
392
- fontSize: "0.8rem",
393
- marginTop: "0.5rem",
394
- color: "#f3f3f3",
395
- textAlign: "center",
396
- }, 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 && (_jsx("h2", { className: "main-heading", children: "Open Pelican Vault" })), !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: "80px", height: "80px" } }) }), _jsx("a", { href: deeplink, className: "open-app-link", children: "Open Pelican Vault" }), _jsxs("p", { className: "helper-text", children: ["Open the app to", " ", config.authType === "login"
397
- ? "login"
398
- : config.authType === "signup"
399
- ? "signup"
400
- : config.authType === "id-verification"
401
- ? "verify identity"
402
- : "authenticate"] }), _jsxs("div", { style: {
403
- display: "flex",
404
- alignItems: "center",
405
- gap: "0.5rem",
406
- }, children: [_jsx("div", { style: {
407
- width: "100%",
408
- height: "1px",
409
- backgroundColor: "#e2e2e2ff",
410
- } }), _jsx("p", { style: {
411
- fontSize: "0.8rem",
412
- fontFamily: "system-ui, Avenir, Helvetica, Arial, sans-serif",
413
- color: "#a8a8a8ff",
414
- }, children: "Or" }), _jsx("div", { style: {
415
- width: "100%",
416
- height: "1px",
417
- backgroundColor: "#e2e2e2ff",
418
- } })] }), _jsx("button", { type: "button", className: "scan-btn", onClick: useQrInstead, children: "Use QR Code" })] })) : (config.forceQRCode &&
419
- qr &&
420
- state === "awaiting-pair") ||
421
- (!config.forceQRCode &&
422
- qr &&
423
- 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, {})] }))] })] }));
424
- };
425
- export default PelicanAuth;
426
- //# sourceMappingURL=PelicanAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PelicanAuth.js","sourceRoot":"","sources":["../../src/components/PelicanAuth.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,UAAU,MAAM,cAAc,CAAC;AAItC,MAAM,WAAW,GAAG,CAAC,MAA2B,EAAE,EAAE;IAClD,MAAM,EACJ,KAAK,EACL,EAAE,EACF,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,cAAc,EACd,YAAY,GACb,GAAG,cAAc,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5B,OAAO,CACL,8BACE,0BACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsVR,GACa,EACR,8BACE,cACE,KAAK,EAAE;4BACL,QAAQ,EAAE,OAAO;4BACjB,cAAc,EAAE,eAAe;4BAC/B,UAAU,EAAE,QAAQ;4BAEpB,KAAK,EAAE,MAAM;yBACd,YAEA,CAAC,MAAM,CAAC,cAAc,IAAI,CACzB,eACE,KAAK,EAAE;gCACL,KAAK,EAAE,MAAM;gCACb,OAAO,EAAE,MAAM;gCACf,cAAc,EAAE,eAAe;gCAC/B,UAAU,EAAE,QAAQ;6BACrB,aAED,iBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;wCACL,MAAM,EAAE,MAAM;wCACd,UAAU,EAAE,aAAa;wCACzB,MAAM,EAAE,SAAS;qCAClB,EACD,OAAO,EAAE,GAAG,EAAE;wCACZ,KAAK,EAAE,CAAC;oCACV,CAAC,EACD,QAAQ,EAAE,MAAM,CAAC,cAAc,YAE9B,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CACxB,MAAM,CAAC,eAAe,CACvB,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,IAAI,EAAE,MAAM,CAAC,UAAU,GACvB,CACH,GACM,EAER,KAAK,KAAK,MAAM,IAAI,CACnB,iBACE,OAAO,EAAE,GAAG,EAAE;wCACZ,IAAI,EAAE,CAAC;wCACP,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oCACrB,CAAC,EACD,SAAS,EAAC,yBAAyB,gBACxB,OAAO,EAClB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;wCACL,MAAM,EAAE,iBAAiB;wCACzB,OAAO,EAAE,mBAAmB;wCAC5B,MAAM,EAAE,oBAAoB;qCAC7B,YAED,cACE,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,KAAK,gBACC,YAAY,YAEvB,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,IAAI,EACX,KAAK,EAAC,IAAI,EACV,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,MAAM,GACZ,GACE,GACC,CACV,IACG,CACP,GACG,EACL,KAAK,KAAK,MAAM,IAAI,CACnB,eAAK,SAAS,EAAC,gBAAgB,aAC5B,cAAc,IAAI,CACjB,eAAK,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAC5D,cAAc,EACd,MAAM,CAAC,cAAc,IAAI,CACxB,YACE,KAAK,EAAE;4CACL,QAAQ,EAAE,QAAQ;4CAClB,SAAS,EAAE,QAAQ;4CACnB,KAAK,EAAE,SAAS;4CAChB,SAAS,EAAE,QAAQ;yCACpB,0CAGC,CACL,IACG,CACP,EACA,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,CAC7B,cAAK,SAAS,EAAC,eAAe,YAC5B,YAAG,SAAS,EAAC,eAAe,YAAE,KAAK,CAAC,OAAO,GAAK,GAC5C,CACP,EAEA,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,iBAAiB,aAC9B,aAAI,SAAS,EAAC,cAAc,2BAAgB,EAE5C,eACE,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GACxC,IACJ,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,iBAAiB,YAC7B,KAAK,KAAK,eAAe,IAAI,CAAC,cAAc,IAAI,CAC/C,eAAK,SAAS,EAAC,oBAAoB,aAChC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CACnC,aAAI,SAAS,EAAC,cAAc,mCAAwB,CACrD,EACA,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,CACjC,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,gBAAgB,YAC7B,cACE,GAAG,EAAC,gGAAgG,EACpG,GAAG,EAAC,cAAc,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GACxC,GACE,EACN,YAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAC,eAAe,mCAExC,EACJ,aAAG,SAAS,EAAC,aAAa,gCACR,GAAG,EAClB,MAAM,CAAC,QAAQ,KAAK,OAAO;4DAC1B,CAAC,CAAC,OAAO;4DACT,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;gEAC5B,CAAC,CAAC,QAAQ;gEACV,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,iBAAiB;oEACrC,CAAC,CAAC,iBAAiB;oEACnB,CAAC,CAAC,cAAc,IACpB,EACJ,eACE,KAAK,EAAE;wDACL,OAAO,EAAE,MAAM;wDACf,UAAU,EAAE,QAAQ;wDACpB,GAAG,EAAE,QAAQ;qDACd,aAED,cACE,KAAK,EAAE;gEACL,KAAK,EAAE,MAAM;gEACb,MAAM,EAAE,KAAK;gEACb,eAAe,EAAE,WAAW;6DAC7B,GACD,EACF,YACE,KAAK,EAAE;gEACL,QAAQ,EAAE,QAAQ;gEAClB,UAAU,EACR,iDAAiD;gEACnD,KAAK,EAAE,WAAW;6DACnB,mBAGC,EACJ,cACE,KAAK,EAAE;gEACL,KAAK,EAAE,MAAM;gEACb,MAAM,EAAE,KAAK;gEACb,eAAe,EAAE,WAAW;6DAC7B,GACD,IACE,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,UAAU,EACpB,OAAO,EAAE,YAAY,4BAGd,IACL,CACP,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;4CACnB,EAAE;4CACF,KAAK,KAAK,eAAe,CAAC;4CAC5B,CAAC,CAAC,MAAM,CAAC,WAAW;gDAClB,EAAE;gDACF,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAC/B,cAAK,SAAS,EAAC,cAAc,YAC3B,eAAK,SAAS,EAAC,YAAY,aACxB,EAAE,IAAI,CACL,cAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,GAAG,CACpD,EACA,CAAC,EAAE,IAAI,eAAM,SAAS,EAAC,QAAQ,GAAQ,IACpC,GACF,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,kBAAkB,YAC/B,eAAM,SAAS,EAAC,QAAQ,GAAQ,GAC5B,CACP,IACG,CACP,GACG,CACP,EACD,KAAC,UAAU,KAAG,IACV,CACP,IACO,IACT,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}