astrogators-shared-ui 0.4.0 → 0.4.2
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/index.js +250 -249
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var ue = Object.defineProperty;
|
|
2
|
-
var he = (e,
|
|
3
|
-
var R = (e,
|
|
2
|
+
var he = (e, s, t) => s in e ? ue(e, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[s] = t;
|
|
3
|
+
var R = (e, s, t) => he(e, typeof s != "symbol" ? s + "" : s, t);
|
|
4
4
|
import { jsx as r, jsxs as m, Fragment as ge } from "react/jsx-runtime";
|
|
5
|
-
import
|
|
5
|
+
import ae, { createContext as fe, useState as b, useEffect as j, useCallback as S, useContext as pe } from "react";
|
|
6
6
|
const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
7
7
|
container: ye,
|
|
8
8
|
padding: ve,
|
|
@@ -11,15 +11,15 @@ const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
|
11
11
|
"maxWidth-lg": "_maxWidth-lg_u3o0e_20",
|
|
12
12
|
"maxWidth-xl": "_maxWidth-xl_u3o0e_24",
|
|
13
13
|
"maxWidth-full": "_maxWidth-full_u3o0e_28"
|
|
14
|
-
},
|
|
14
|
+
}, vs = ({
|
|
15
15
|
children: e,
|
|
16
|
-
maxWidth:
|
|
17
|
-
padding:
|
|
16
|
+
maxWidth: s = "xl",
|
|
17
|
+
padding: t = !0,
|
|
18
18
|
className: o = ""
|
|
19
19
|
}) => /* @__PURE__ */ r(
|
|
20
20
|
"div",
|
|
21
21
|
{
|
|
22
|
-
className: `${X.container} ${X[`maxWidth-${
|
|
22
|
+
className: `${X.container} ${X[`maxWidth-${s}`]} ${t ? X.padding : ""} ${o}`,
|
|
23
23
|
children: e
|
|
24
24
|
}
|
|
25
25
|
), $e = "_topBar_10g3c_1", be = "_content_10g3c_13", we = "_left_10g3c_23", Ne = "_right_10g3c_30", Ae = "_logo_10g3c_36", P = {
|
|
@@ -28,24 +28,24 @@ const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
|
28
28
|
left: we,
|
|
29
29
|
right: Ne,
|
|
30
30
|
logo: Ae
|
|
31
|
-
},
|
|
31
|
+
}, $s = ({
|
|
32
32
|
logo: e,
|
|
33
|
-
leftContent:
|
|
34
|
-
rightContent:
|
|
33
|
+
leftContent: s,
|
|
34
|
+
rightContent: t,
|
|
35
35
|
className: o = ""
|
|
36
36
|
}) => /* @__PURE__ */ r("header", { className: `${P.topBar} ${o}`, children: /* @__PURE__ */ m("div", { className: P.content, children: [
|
|
37
37
|
/* @__PURE__ */ m("div", { className: P.left, children: [
|
|
38
38
|
e && /* @__PURE__ */ r("div", { className: P.logo, children: e }),
|
|
39
|
-
|
|
39
|
+
s
|
|
40
40
|
] }),
|
|
41
|
-
/* @__PURE__ */ r("div", { className: P.right, children:
|
|
41
|
+
/* @__PURE__ */ r("div", { className: P.right, children: t })
|
|
42
42
|
] }) }), Se = "_footer_zjuj8_1", xe = "_content_zjuj8_7", Te = "_defaultContent_zjuj8_13", Ce = "_copyright_zjuj8_21", ke = "_disclaimer_zjuj8_26", B = {
|
|
43
43
|
footer: Se,
|
|
44
44
|
content: xe,
|
|
45
45
|
defaultContent: Te,
|
|
46
46
|
copyright: Ce,
|
|
47
47
|
disclaimer: ke
|
|
48
|
-
},
|
|
48
|
+
}, bs = ({ children: e, className: s = "" }) => /* @__PURE__ */ r("footer", { className: `${B.footer} ${s}`, children: /* @__PURE__ */ r("div", { className: B.content, children: e || /* @__PURE__ */ m("div", { className: B.defaultContent, children: [
|
|
49
49
|
/* @__PURE__ */ m("p", { className: B.copyright, children: [
|
|
50
50
|
"© ",
|
|
51
51
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
@@ -68,10 +68,10 @@ const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
|
68
68
|
spinner: Oe,
|
|
69
69
|
spin: ze,
|
|
70
70
|
loadingText: Me
|
|
71
|
-
},
|
|
71
|
+
}, M = ({
|
|
72
72
|
children: e,
|
|
73
|
-
variant:
|
|
74
|
-
size:
|
|
73
|
+
variant: s = "primary",
|
|
74
|
+
size: t = "md",
|
|
75
75
|
fullWidth: o = !1,
|
|
76
76
|
loading: _ = !1,
|
|
77
77
|
disabled: g = !1,
|
|
@@ -80,7 +80,7 @@ const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
|
80
80
|
}) => /* @__PURE__ */ r(
|
|
81
81
|
"button",
|
|
82
82
|
{
|
|
83
|
-
className: `${x.button} ${x[
|
|
83
|
+
className: `${x.button} ${x[s]} ${x[t]} ${o ? x.fullWidth : ""} ${_ ? x.loading : ""} ${c}`,
|
|
84
84
|
disabled: g || _,
|
|
85
85
|
...l,
|
|
86
86
|
children: _ ? /* @__PURE__ */ m("span", { className: x.loadingSpinner, children: [
|
|
@@ -97,17 +97,17 @@ const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
|
97
97
|
error: Ve,
|
|
98
98
|
errorText: Qe,
|
|
99
99
|
helperText: Xe
|
|
100
|
-
},
|
|
100
|
+
}, ne = ae.forwardRef(
|
|
101
101
|
({
|
|
102
102
|
label: e,
|
|
103
|
-
error:
|
|
104
|
-
helperText:
|
|
103
|
+
error: s,
|
|
104
|
+
helperText: t,
|
|
105
105
|
fullWidth: o = !1,
|
|
106
106
|
className: _ = "",
|
|
107
107
|
id: g,
|
|
108
108
|
...c
|
|
109
109
|
}, l) => {
|
|
110
|
-
const i = g || `input-${Math.random().toString(36).substr(2, 9)}`, h = !!
|
|
110
|
+
const i = g || `input-${Math.random().toString(36).substr(2, 9)}`, h = !!s;
|
|
111
111
|
return /* @__PURE__ */ m("div", { className: `${T.inputWrapper} ${o ? T.fullWidth : ""} ${_}`, children: [
|
|
112
112
|
e && /* @__PURE__ */ m("label", { htmlFor: i, className: T.label, children: [
|
|
113
113
|
e,
|
|
@@ -122,28 +122,28 @@ const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
|
122
122
|
...c
|
|
123
123
|
}
|
|
124
124
|
),
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
s && /* @__PURE__ */ r("span", { className: T.errorText, children: s }),
|
|
126
|
+
t && !s && /* @__PURE__ */ r("span", { className: T.helperText, children: t })
|
|
127
127
|
] });
|
|
128
128
|
}
|
|
129
129
|
);
|
|
130
|
-
|
|
131
|
-
const Ze = "_selectWrapper_ir4bq_1", et = "_fullWidth_ir4bq_7", tt = "_label_ir4bq_11", st = "_required_ir4bq_20", ot = "_selectContainer_ir4bq_24", rt = "_select_ir4bq_1",
|
|
130
|
+
ne.displayName = "Input";
|
|
131
|
+
const Ze = "_selectWrapper_ir4bq_1", et = "_fullWidth_ir4bq_7", tt = "_label_ir4bq_11", st = "_required_ir4bq_20", ot = "_selectContainer_ir4bq_24", rt = "_select_ir4bq_1", at = "_error_ir4bq_63", nt = "_arrow_ir4bq_71", lt = "_errorText_ir4bq_81", ct = "_helperText_ir4bq_86", w = {
|
|
132
132
|
selectWrapper: Ze,
|
|
133
133
|
fullWidth: et,
|
|
134
134
|
label: tt,
|
|
135
135
|
required: st,
|
|
136
136
|
selectContainer: ot,
|
|
137
137
|
select: rt,
|
|
138
|
-
error:
|
|
139
|
-
arrow:
|
|
138
|
+
error: at,
|
|
139
|
+
arrow: nt,
|
|
140
140
|
errorText: lt,
|
|
141
141
|
helperText: ct
|
|
142
|
-
}, le =
|
|
142
|
+
}, le = ae.forwardRef(
|
|
143
143
|
({
|
|
144
144
|
label: e,
|
|
145
|
-
error:
|
|
146
|
-
helperText:
|
|
145
|
+
error: s,
|
|
146
|
+
helperText: t,
|
|
147
147
|
options: o,
|
|
148
148
|
placeholder: _,
|
|
149
149
|
fullWidth: g = !1,
|
|
@@ -151,7 +151,7 @@ const Ze = "_selectWrapper_ir4bq_1", et = "_fullWidth_ir4bq_7", tt = "_label_ir4
|
|
|
151
151
|
id: l,
|
|
152
152
|
...i
|
|
153
153
|
}, h) => {
|
|
154
|
-
const p = l || `select-${Math.random().toString(36).substr(2, 9)}`, N = !!
|
|
154
|
+
const p = l || `select-${Math.random().toString(36).substr(2, 9)}`, N = !!s;
|
|
155
155
|
return /* @__PURE__ */ m("div", { className: `${w.selectWrapper} ${g ? w.fullWidth : ""} ${c}`, children: [
|
|
156
156
|
e && /* @__PURE__ */ m("label", { htmlFor: p, className: w.label, children: [
|
|
157
157
|
e,
|
|
@@ -182,8 +182,8 @@ const Ze = "_selectWrapper_ir4bq_1", et = "_fullWidth_ir4bq_7", tt = "_label_ir4
|
|
|
182
182
|
),
|
|
183
183
|
/* @__PURE__ */ r("span", { className: w.arrow, children: "▼" })
|
|
184
184
|
] }),
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
s && /* @__PURE__ */ r("span", { className: w.errorText, children: s }),
|
|
186
|
+
t && !s && /* @__PURE__ */ r("span", { className: w.helperText, children: t })
|
|
187
187
|
] });
|
|
188
188
|
}
|
|
189
189
|
);
|
|
@@ -196,45 +196,45 @@ const te = "astrogators_access_token", se = "astrogators_refresh_token", ce = ()
|
|
|
196
196
|
localStorage.setItem(se, e);
|
|
197
197
|
}, ut = () => {
|
|
198
198
|
localStorage.removeItem(se);
|
|
199
|
-
}, ie = (e,
|
|
200
|
-
it(e), mt(
|
|
199
|
+
}, ie = (e, s) => {
|
|
200
|
+
it(e), mt(s);
|
|
201
201
|
}, ee = () => {
|
|
202
202
|
dt(), ut();
|
|
203
203
|
}, ht = () => !!ce();
|
|
204
204
|
class gt {
|
|
205
|
-
constructor(
|
|
205
|
+
constructor(s) {
|
|
206
206
|
R(this, "baseURL");
|
|
207
207
|
R(this, "onUnauthorized");
|
|
208
208
|
R(this, "isRefreshing", !1);
|
|
209
209
|
R(this, "refreshPromise", null);
|
|
210
|
-
this.baseURL =
|
|
210
|
+
this.baseURL = s.baseURL, this.onUnauthorized = s.onUnauthorized;
|
|
211
211
|
}
|
|
212
212
|
async refreshAccessToken() {
|
|
213
213
|
var _;
|
|
214
|
-
const
|
|
215
|
-
if (!
|
|
214
|
+
const s = _t();
|
|
215
|
+
if (!s)
|
|
216
216
|
throw new Error("No refresh token available");
|
|
217
|
-
const
|
|
217
|
+
const t = await fetch(`${this.baseURL}/api/v1/auth/refresh-token`, {
|
|
218
218
|
method: "POST",
|
|
219
219
|
headers: {
|
|
220
220
|
"Content-Type": "application/json"
|
|
221
221
|
},
|
|
222
|
-
body: JSON.stringify({ refresh_token:
|
|
222
|
+
body: JSON.stringify({ refresh_token: s })
|
|
223
223
|
});
|
|
224
|
-
if (!
|
|
224
|
+
if (!t.ok)
|
|
225
225
|
throw ee(), (_ = this.onUnauthorized) == null || _.call(this), new Error("Token refresh failed");
|
|
226
|
-
const o = await
|
|
227
|
-
return ie(o.access_token,
|
|
226
|
+
const o = await t.json();
|
|
227
|
+
return ie(o.access_token, s), o.access_token;
|
|
228
228
|
}
|
|
229
|
-
async request(
|
|
229
|
+
async request(s, t = {}) {
|
|
230
230
|
const o = ce(), _ = {
|
|
231
231
|
"Content-Type": "application/json",
|
|
232
|
-
...
|
|
232
|
+
...t.headers
|
|
233
233
|
};
|
|
234
234
|
o && (_.Authorization = `Bearer ${o}`);
|
|
235
|
-
const g = `${this.baseURL}${
|
|
235
|
+
const g = `${this.baseURL}${s}`;
|
|
236
236
|
let c = await fetch(g, {
|
|
237
|
-
...
|
|
237
|
+
...t,
|
|
238
238
|
headers: _
|
|
239
239
|
});
|
|
240
240
|
if (c.status === 401 && o) {
|
|
@@ -244,7 +244,7 @@ class gt {
|
|
|
244
244
|
try {
|
|
245
245
|
const l = await this.refreshPromise;
|
|
246
246
|
_.Authorization = `Bearer ${l}`, c = await fetch(g, {
|
|
247
|
-
...
|
|
247
|
+
...t,
|
|
248
248
|
headers: _
|
|
249
249
|
});
|
|
250
250
|
} catch {
|
|
@@ -269,221 +269,221 @@ class gt {
|
|
|
269
269
|
}
|
|
270
270
|
return c.status === 204 ? {} : c.json();
|
|
271
271
|
}
|
|
272
|
-
async get(
|
|
273
|
-
return this.request(
|
|
272
|
+
async get(s, t) {
|
|
273
|
+
return this.request(s, { ...t, method: "GET" });
|
|
274
274
|
}
|
|
275
|
-
async post(
|
|
276
|
-
return this.request(
|
|
275
|
+
async post(s, t, o) {
|
|
276
|
+
return this.request(s, {
|
|
277
277
|
...o,
|
|
278
278
|
method: "POST",
|
|
279
|
-
body:
|
|
279
|
+
body: t ? JSON.stringify(t) : void 0
|
|
280
280
|
});
|
|
281
281
|
}
|
|
282
|
-
async put(
|
|
283
|
-
return this.request(
|
|
282
|
+
async put(s, t, o) {
|
|
283
|
+
return this.request(s, {
|
|
284
284
|
...o,
|
|
285
285
|
method: "PUT",
|
|
286
|
-
body:
|
|
286
|
+
body: t ? JSON.stringify(t) : void 0
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
|
-
async patch(
|
|
290
|
-
return this.request(
|
|
289
|
+
async patch(s, t, o) {
|
|
290
|
+
return this.request(s, {
|
|
291
291
|
...o,
|
|
292
292
|
method: "PATCH",
|
|
293
|
-
body:
|
|
293
|
+
body: t ? JSON.stringify(t) : void 0
|
|
294
294
|
});
|
|
295
295
|
}
|
|
296
|
-
async delete(
|
|
297
|
-
return this.request(
|
|
296
|
+
async delete(s, t) {
|
|
297
|
+
return this.request(s, { ...t, method: "DELETE" });
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
300
|
let y;
|
|
301
301
|
const ft = (e) => {
|
|
302
302
|
y = new gt(e);
|
|
303
|
-
},
|
|
303
|
+
}, F = "astrogators_ally_codes", H = "astrogators_selected_ally_code", A = () => {
|
|
304
304
|
try {
|
|
305
|
-
const e = localStorage.getItem(
|
|
305
|
+
const e = localStorage.getItem(F);
|
|
306
306
|
return e ? JSON.parse(e) : [];
|
|
307
307
|
} catch (e) {
|
|
308
308
|
return console.error("Failed to read ally codes from localStorage:", e), [];
|
|
309
309
|
}
|
|
310
310
|
}, pt = (e) => {
|
|
311
311
|
try {
|
|
312
|
-
const
|
|
313
|
-
if (
|
|
312
|
+
const s = A();
|
|
313
|
+
if (s.some((o) => o.ally_code === e.ally_code))
|
|
314
314
|
return;
|
|
315
|
-
|
|
316
|
-
} catch (
|
|
317
|
-
console.error("Failed to save ally code to localStorage:",
|
|
315
|
+
s.push(e), localStorage.setItem(F, JSON.stringify(s));
|
|
316
|
+
} catch (s) {
|
|
317
|
+
console.error("Failed to save ally code to localStorage:", s);
|
|
318
318
|
}
|
|
319
319
|
}, yt = (e) => {
|
|
320
320
|
try {
|
|
321
|
-
const
|
|
322
|
-
localStorage.setItem(
|
|
323
|
-
} catch (
|
|
324
|
-
console.error("Failed to remove ally code from localStorage:",
|
|
321
|
+
const t = A().filter((o) => o.ally_code !== e);
|
|
322
|
+
localStorage.setItem(F, JSON.stringify(t));
|
|
323
|
+
} catch (s) {
|
|
324
|
+
console.error("Failed to remove ally code from localStorage:", s);
|
|
325
325
|
}
|
|
326
326
|
}, re = (e) => {
|
|
327
327
|
try {
|
|
328
|
-
const
|
|
328
|
+
const t = A().map(
|
|
329
329
|
(o) => o.ally_code === e ? { ...o, last_used_at: (/* @__PURE__ */ new Date()).toISOString() } : o
|
|
330
330
|
);
|
|
331
|
-
localStorage.setItem(
|
|
332
|
-
} catch (
|
|
333
|
-
console.error("Failed to update ally code last used:",
|
|
331
|
+
localStorage.setItem(F, JSON.stringify(t));
|
|
332
|
+
} catch (s) {
|
|
333
|
+
console.error("Failed to update ally code last used:", s);
|
|
334
334
|
}
|
|
335
335
|
}, vt = () => localStorage.getItem(H), $t = (e) => {
|
|
336
336
|
e ? localStorage.setItem(H, e) : localStorage.removeItem(H);
|
|
337
337
|
}, bt = () => {
|
|
338
|
-
localStorage.removeItem(
|
|
339
|
-
}, de = fe(void 0),
|
|
340
|
-
const [
|
|
338
|
+
localStorage.removeItem(F), localStorage.removeItem(H);
|
|
339
|
+
}, de = fe(void 0), ws = ({ children: e, apiBaseUrl: s }) => {
|
|
340
|
+
const [t, o] = b(null), [_, g] = b(!0), [c, l] = b([]), [i, h] = b(null), [p, N] = b(!1), [f, k] = b({
|
|
341
341
|
show: !1,
|
|
342
342
|
localStorageCodes: []
|
|
343
343
|
});
|
|
344
|
-
|
|
344
|
+
j(() => {
|
|
345
345
|
ft({
|
|
346
|
-
baseURL:
|
|
346
|
+
baseURL: s
|
|
347
347
|
});
|
|
348
|
-
}, [
|
|
348
|
+
}, [s]);
|
|
349
349
|
const W = S(async () => {
|
|
350
350
|
if (!ht()) {
|
|
351
351
|
o(null), g(!1);
|
|
352
352
|
return;
|
|
353
353
|
}
|
|
354
354
|
try {
|
|
355
|
-
const
|
|
356
|
-
o(
|
|
357
|
-
} catch (
|
|
358
|
-
console.error("Failed to fetch user:",
|
|
355
|
+
const a = await y.get("/api/v1/users/me");
|
|
356
|
+
o(a);
|
|
357
|
+
} catch (a) {
|
|
358
|
+
console.error("Failed to fetch user:", a), o(null), ee();
|
|
359
359
|
} finally {
|
|
360
360
|
g(!1);
|
|
361
361
|
}
|
|
362
362
|
}, []);
|
|
363
|
-
|
|
363
|
+
j(() => {
|
|
364
364
|
W();
|
|
365
365
|
}, [W]);
|
|
366
|
-
const I = async (
|
|
366
|
+
const I = async (a) => {
|
|
367
367
|
try {
|
|
368
|
-
const
|
|
369
|
-
ie(
|
|
368
|
+
const n = await y.post("/api/v1/auth/login", a);
|
|
369
|
+
ie(n.access_token, n.refresh_token);
|
|
370
370
|
const u = await y.get("/api/v1/users/me");
|
|
371
371
|
o(u);
|
|
372
|
-
} catch (
|
|
373
|
-
throw console.error("Login failed:",
|
|
372
|
+
} catch (n) {
|
|
373
|
+
throw console.error("Login failed:", n), n;
|
|
374
374
|
}
|
|
375
|
-
},
|
|
375
|
+
}, D = async (a) => {
|
|
376
376
|
try {
|
|
377
|
-
await y.post("/api/v1/auth/register",
|
|
378
|
-
} catch (
|
|
379
|
-
throw console.error("Registration failed:",
|
|
377
|
+
await y.post("/api/v1/auth/register", a);
|
|
378
|
+
} catch (n) {
|
|
379
|
+
throw console.error("Registration failed:", n), n;
|
|
380
380
|
}
|
|
381
|
-
},
|
|
381
|
+
}, O = () => {
|
|
382
382
|
ee(), o(null), l([]), h(null), k({ show: !1, localStorageCodes: [] });
|
|
383
383
|
}, Y = async () => {
|
|
384
384
|
await W();
|
|
385
|
-
}, G = async (
|
|
385
|
+
}, G = async (a) => {
|
|
386
386
|
try {
|
|
387
387
|
return (await y.post(
|
|
388
388
|
"/api/v1/auth/forgot-password",
|
|
389
|
-
|
|
389
|
+
a
|
|
390
390
|
)).message;
|
|
391
|
-
} catch (
|
|
392
|
-
throw console.error("Forgot password failed:",
|
|
391
|
+
} catch (n) {
|
|
392
|
+
throw console.error("Forgot password failed:", n), n;
|
|
393
393
|
}
|
|
394
|
-
}, K = async (
|
|
394
|
+
}, K = async (a) => {
|
|
395
395
|
try {
|
|
396
396
|
return (await y.post(
|
|
397
397
|
"/api/v1/auth/reset-password",
|
|
398
|
-
|
|
398
|
+
a
|
|
399
399
|
)).message;
|
|
400
|
-
} catch (
|
|
401
|
-
throw console.error("Reset password failed:",
|
|
400
|
+
} catch (n) {
|
|
401
|
+
throw console.error("Reset password failed:", n), n;
|
|
402
402
|
}
|
|
403
|
-
}, V = async (
|
|
403
|
+
}, V = async (a) => {
|
|
404
404
|
try {
|
|
405
405
|
return (await y.post(
|
|
406
406
|
"/api/v1/auth/resend-verification",
|
|
407
|
-
|
|
407
|
+
a
|
|
408
408
|
)).message;
|
|
409
|
-
} catch (
|
|
410
|
-
throw console.error("Resend verification failed:",
|
|
409
|
+
} catch (n) {
|
|
410
|
+
throw console.error("Resend verification failed:", n), n;
|
|
411
411
|
}
|
|
412
412
|
}, d = S(async () => {
|
|
413
413
|
N(!0);
|
|
414
414
|
try {
|
|
415
|
-
if (
|
|
416
|
-
const
|
|
417
|
-
l(
|
|
415
|
+
if (t) {
|
|
416
|
+
const n = await y.get("/api/v1/users/me/ally-codes");
|
|
417
|
+
l(n.ally_codes);
|
|
418
418
|
const u = A();
|
|
419
419
|
u.length > 0 && k({
|
|
420
420
|
show: !0,
|
|
421
421
|
localStorageCodes: u.map((q) => q.ally_code)
|
|
422
422
|
});
|
|
423
423
|
} else {
|
|
424
|
-
const
|
|
425
|
-
l(
|
|
424
|
+
const n = A();
|
|
425
|
+
l(n);
|
|
426
426
|
}
|
|
427
|
-
const
|
|
428
|
-
h(
|
|
429
|
-
} catch (
|
|
430
|
-
console.error("Failed to fetch ally codes:",
|
|
427
|
+
const a = vt();
|
|
428
|
+
h(a);
|
|
429
|
+
} catch (a) {
|
|
430
|
+
console.error("Failed to fetch ally codes:", a), l([]);
|
|
431
431
|
} finally {
|
|
432
432
|
N(!1);
|
|
433
433
|
}
|
|
434
|
-
}, [
|
|
435
|
-
var
|
|
436
|
-
if (!/^\d{9}$/.test(
|
|
434
|
+
}, [t]), v = S(async (a) => {
|
|
435
|
+
var n;
|
|
436
|
+
if (!/^\d{9}$/.test(a))
|
|
437
437
|
throw new Error("Ally code must be exactly 9 digits");
|
|
438
|
-
if (
|
|
438
|
+
if (t) {
|
|
439
439
|
const u = await y.post(
|
|
440
440
|
"/api/v1/users/me/ally-codes",
|
|
441
|
-
{ ally_code:
|
|
441
|
+
{ ally_code: a }
|
|
442
442
|
);
|
|
443
|
-
l((q) => [u, ...q]), c.length === 0 &&
|
|
443
|
+
l((q) => [u, ...q]), c.length === 0 && z(a);
|
|
444
444
|
} else {
|
|
445
|
-
const u = await y.get(`/api/v1/player-data/player/${
|
|
445
|
+
const u = await y.get(`/api/v1/player-data/player/${a}`);
|
|
446
446
|
if (!u)
|
|
447
447
|
throw new Error("Invalid ally code - player not found");
|
|
448
448
|
const q = {
|
|
449
|
-
ally_code:
|
|
450
|
-
player_name: ((
|
|
449
|
+
ally_code: a,
|
|
450
|
+
player_name: ((n = u == null ? void 0 : u.data) == null ? void 0 : n.name) || null,
|
|
451
451
|
last_used_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
452
452
|
};
|
|
453
|
-
pt(q), l(A()), c.length === 0 &&
|
|
453
|
+
pt(q), l(A()), c.length === 0 && z(a);
|
|
454
454
|
}
|
|
455
|
-
}, [
|
|
456
|
-
|
|
457
|
-
}, [
|
|
458
|
-
if (h(
|
|
459
|
-
const
|
|
460
|
-
|
|
461
|
-
} else
|
|
462
|
-
}, [
|
|
463
|
-
|
|
464
|
-
}, [
|
|
455
|
+
}, [t, c.length]), L = S(async (a) => {
|
|
456
|
+
t && typeof a == "number" ? (await y.delete(`/api/v1/users/me/ally-codes/${a}`), l((n) => n.filter((u) => "id" in u && u.id !== a))) : !t && typeof a == "string" && (yt(a), l(A()), i === a && z(null));
|
|
457
|
+
}, [t, i]), z = S((a) => {
|
|
458
|
+
if (h(a), $t(a), a && t) {
|
|
459
|
+
const n = c.find((u) => "ally_code" in u && u.ally_code === a);
|
|
460
|
+
n && "id" in n && oe(n.id);
|
|
461
|
+
} else a && !t && re(a);
|
|
462
|
+
}, [t, c]), oe = S(async (a) => {
|
|
463
|
+
t && typeof a == "number" ? (await y.put(`/api/v1/users/me/ally-codes/${a}/use`, {}), await d()) : !t && typeof a == "string" && (re(a), l(A()));
|
|
464
|
+
}, [t, d]), Q = S(() => {
|
|
465
465
|
k({ show: !1, localStorageCodes: [] });
|
|
466
466
|
}, []), _e = S(async () => {
|
|
467
|
-
if (!
|
|
468
|
-
const
|
|
469
|
-
for (const
|
|
467
|
+
if (!t) return;
|
|
468
|
+
const a = A();
|
|
469
|
+
for (const n of a)
|
|
470
470
|
try {
|
|
471
|
-
await v(
|
|
471
|
+
await v(n.ally_code);
|
|
472
472
|
} catch (u) {
|
|
473
|
-
console.error(`Failed to migrate ally code ${
|
|
473
|
+
console.error(`Failed to migrate ally code ${n.ally_code}:`, u);
|
|
474
474
|
}
|
|
475
475
|
bt(), Q();
|
|
476
|
-
}, [
|
|
477
|
-
|
|
476
|
+
}, [t, v, Q]);
|
|
477
|
+
j(() => {
|
|
478
478
|
d();
|
|
479
479
|
}, [d]);
|
|
480
480
|
const me = {
|
|
481
|
-
user:
|
|
482
|
-
isAuthenticated: !!
|
|
481
|
+
user: t,
|
|
482
|
+
isAuthenticated: !!t,
|
|
483
483
|
isLoading: _,
|
|
484
484
|
login: I,
|
|
485
|
-
register:
|
|
486
|
-
logout:
|
|
485
|
+
register: D,
|
|
486
|
+
logout: O,
|
|
487
487
|
refreshUser: Y,
|
|
488
488
|
forgotPassword: G,
|
|
489
489
|
resetPassword: K,
|
|
@@ -495,7 +495,7 @@ const ft = (e) => {
|
|
|
495
495
|
fetchAllyCodes: d,
|
|
496
496
|
addAllyCode: v,
|
|
497
497
|
removeAllyCode: L,
|
|
498
|
-
selectAllyCode:
|
|
498
|
+
selectAllyCode: z,
|
|
499
499
|
updateAllyCodeLastUsed: oe,
|
|
500
500
|
migrationPrompt: f,
|
|
501
501
|
dismissMigrationPrompt: Q,
|
|
@@ -507,7 +507,7 @@ const ft = (e) => {
|
|
|
507
507
|
if (e === void 0)
|
|
508
508
|
throw new Error("useAuth must be used within an AuthProvider");
|
|
509
509
|
return e;
|
|
510
|
-
},
|
|
510
|
+
}, J = (e) => !e || e.length !== 9 ? e : `${e.slice(0, 3)}-${e.slice(3, 6)}-${e.slice(6, 9)}`, Ns = (e) => e.replace(/-/g, ""), Nt = "_allyCodeDropdown_1m0tw_1", At = "_select_1m0tw_8", St = "_manageButton_1m0tw_12", xt = "_managePanel_1m0tw_16", Tt = "_addSection_1m0tw_37", Ct = "_addInputGroup_1m0tw_43", kt = "_error_1m0tw_55", Et = "_success_1m0tw_61", Wt = "_codesList_1m0tw_67", It = "_codeItem_1m0tw_71", Lt = "_doneButton_1m0tw_88", $ = {
|
|
511
511
|
allyCodeDropdown: Nt,
|
|
512
512
|
select: At,
|
|
513
513
|
manageButton: St,
|
|
@@ -519,25 +519,25 @@ const ft = (e) => {
|
|
|
519
519
|
codesList: Wt,
|
|
520
520
|
codeItem: It,
|
|
521
521
|
doneButton: Lt
|
|
522
|
-
},
|
|
522
|
+
}, As = ({
|
|
523
523
|
onAllyCodeSelected: e,
|
|
524
|
-
className:
|
|
524
|
+
className: s = ""
|
|
525
525
|
}) => {
|
|
526
526
|
const {
|
|
527
|
-
allyCodes:
|
|
527
|
+
allyCodes: t,
|
|
528
528
|
selectedAllyCode: o,
|
|
529
529
|
selectAllyCode: _,
|
|
530
530
|
removeAllyCode: g,
|
|
531
531
|
addAllyCode: c,
|
|
532
532
|
isLoadingAllyCodes: l
|
|
533
|
-
} = wt(), [i, h] = b(!1), [p, N] = b(""), [f, k] = b(""), [W, I] = b(""), [
|
|
533
|
+
} = wt(), [i, h] = b(!1), [p, N] = b(""), [f, k] = b(""), [W, I] = b(""), [D, O] = b(!1), Y = t.map((d) => ({
|
|
534
534
|
value: d.ally_code,
|
|
535
|
-
label: d.player_name ? `${d.player_name} (${
|
|
535
|
+
label: d.player_name ? `${d.player_name} (${J(d.ally_code)})` : J(d.ally_code)
|
|
536
536
|
})), G = (d) => {
|
|
537
537
|
const v = d.target.value || null;
|
|
538
538
|
_(v), e == null || e(v);
|
|
539
539
|
}, K = async (d) => {
|
|
540
|
-
const v =
|
|
540
|
+
const v = t.find((L) => L.ally_code === d);
|
|
541
541
|
if (v) {
|
|
542
542
|
const L = "id" in v ? v.id : v.ally_code;
|
|
543
543
|
await g(L);
|
|
@@ -547,16 +547,16 @@ const ft = (e) => {
|
|
|
547
547
|
k("Ally code must be exactly 9 digits");
|
|
548
548
|
return;
|
|
549
549
|
}
|
|
550
|
-
|
|
550
|
+
O(!0);
|
|
551
551
|
try {
|
|
552
552
|
await c(p), I("Added successfully!"), N(""), setTimeout(() => I(""), 2e3);
|
|
553
553
|
} catch (d) {
|
|
554
554
|
k(d.message || "Failed to add ally code");
|
|
555
555
|
} finally {
|
|
556
|
-
|
|
556
|
+
O(!1);
|
|
557
557
|
}
|
|
558
558
|
};
|
|
559
|
-
return
|
|
559
|
+
return t.length === 0 ? null : /* @__PURE__ */ m("div", { className: `${$.allyCodeDropdown} ${s}`, children: [
|
|
560
560
|
/* @__PURE__ */ r(
|
|
561
561
|
le,
|
|
562
562
|
{
|
|
@@ -573,22 +573,22 @@ const ft = (e) => {
|
|
|
573
573
|
/* @__PURE__ */ m("div", { className: $.addSection, children: [
|
|
574
574
|
/* @__PURE__ */ m("div", { className: $.addInputGroup, children: [
|
|
575
575
|
/* @__PURE__ */ r(
|
|
576
|
-
|
|
576
|
+
ne,
|
|
577
577
|
{
|
|
578
578
|
type: "text",
|
|
579
579
|
placeholder: "9-digit ally code",
|
|
580
580
|
value: p,
|
|
581
581
|
onChange: (d) => N(d.target.value.replace(/\D/g, "").slice(0, 9)),
|
|
582
|
-
disabled:
|
|
582
|
+
disabled: D
|
|
583
583
|
}
|
|
584
584
|
),
|
|
585
585
|
/* @__PURE__ */ r(
|
|
586
|
-
|
|
586
|
+
M,
|
|
587
587
|
{
|
|
588
588
|
variant: "primary",
|
|
589
589
|
size: "sm",
|
|
590
590
|
onClick: V,
|
|
591
|
-
loading:
|
|
591
|
+
loading: D,
|
|
592
592
|
disabled: p.length !== 9,
|
|
593
593
|
children: "Add"
|
|
594
594
|
}
|
|
@@ -597,10 +597,10 @@ const ft = (e) => {
|
|
|
597
597
|
f && /* @__PURE__ */ r("div", { className: $.error, children: f }),
|
|
598
598
|
W && /* @__PURE__ */ r("div", { className: $.success, children: W })
|
|
599
599
|
] }),
|
|
600
|
-
/* @__PURE__ */ r("div", { className: $.codesList, children:
|
|
601
|
-
/* @__PURE__ */ r("span", { children: d.player_name ? `${d.player_name} (${
|
|
600
|
+
/* @__PURE__ */ r("div", { className: $.codesList, children: t.map((d) => /* @__PURE__ */ m("div", { className: $.codeItem, children: [
|
|
601
|
+
/* @__PURE__ */ r("span", { children: d.player_name ? `${d.player_name} (${J(d.ally_code)})` : J(d.ally_code) }),
|
|
602
602
|
/* @__PURE__ */ r(
|
|
603
|
-
|
|
603
|
+
M,
|
|
604
604
|
{
|
|
605
605
|
variant: "ghost",
|
|
606
606
|
size: "sm",
|
|
@@ -610,7 +610,7 @@ const ft = (e) => {
|
|
|
610
610
|
)
|
|
611
611
|
] }, d.ally_code)) }),
|
|
612
612
|
/* @__PURE__ */ r(
|
|
613
|
-
|
|
613
|
+
M,
|
|
614
614
|
{
|
|
615
615
|
variant: "secondary",
|
|
616
616
|
size: "sm",
|
|
@@ -621,7 +621,7 @@ const ft = (e) => {
|
|
|
621
621
|
)
|
|
622
622
|
] }),
|
|
623
623
|
/* @__PURE__ */ r(
|
|
624
|
-
|
|
624
|
+
M,
|
|
625
625
|
{
|
|
626
626
|
variant: "ghost",
|
|
627
627
|
size: "sm",
|
|
@@ -631,20 +631,21 @@ const ft = (e) => {
|
|
|
631
631
|
}
|
|
632
632
|
)
|
|
633
633
|
] });
|
|
634
|
-
}, qt = "
|
|
634
|
+
}, qt = "_card_b4471_1", Rt = "_chamfered_b4471_8", Pt = "_elevated_b4471_17", Bt = "_outline_b4471_22", Ut = "_hoverable_b4471_45", U = {
|
|
635
635
|
card: qt,
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
"padding-
|
|
641
|
-
"padding-
|
|
642
|
-
"padding-
|
|
643
|
-
|
|
644
|
-
|
|
636
|
+
chamfered: Rt,
|
|
637
|
+
default: "_default_b4471_13",
|
|
638
|
+
elevated: Pt,
|
|
639
|
+
outline: Bt,
|
|
640
|
+
"padding-none": "_padding-none_b4471_28",
|
|
641
|
+
"padding-sm": "_padding-sm_b4471_32",
|
|
642
|
+
"padding-md": "_padding-md_b4471_36",
|
|
643
|
+
"padding-lg": "_padding-lg_b4471_40",
|
|
644
|
+
hoverable: Ut
|
|
645
|
+
}, Ss = ({
|
|
645
646
|
children: e,
|
|
646
|
-
variant:
|
|
647
|
-
chamfered:
|
|
647
|
+
variant: s = "default",
|
|
648
|
+
chamfered: t = !1,
|
|
648
649
|
chamferSize: o = "md",
|
|
649
650
|
padding: _ = "md",
|
|
650
651
|
hoverable: g = !1,
|
|
@@ -654,11 +655,11 @@ const ft = (e) => {
|
|
|
654
655
|
onClick: h,
|
|
655
656
|
style: p
|
|
656
657
|
}) => {
|
|
657
|
-
const N =
|
|
658
|
+
const N = t ? o === "asymmetric" ? "chamfered-box-asymmetric" : o === "sm" ? "chamfered-box-sm" : o === "lg" ? "chamfered-box-lg" : "chamfered-box" : "", f = l ? { color: l } : void 0;
|
|
658
659
|
return /* @__PURE__ */ m(
|
|
659
660
|
"div",
|
|
660
661
|
{
|
|
661
|
-
className: `${
|
|
662
|
+
className: `${U.card} ${t ? U.chamfered : ""} ${U[s]} ${U[`padding-${_}`]} ${N} ${g ? U.hoverable : ""} ${i}`,
|
|
662
663
|
onClick: h,
|
|
663
664
|
role: h ? "button" : void 0,
|
|
664
665
|
tabIndex: h ? 0 : void 0,
|
|
@@ -674,100 +675,100 @@ const ft = (e) => {
|
|
|
674
675
|
]
|
|
675
676
|
}
|
|
676
677
|
);
|
|
677
|
-
},
|
|
678
|
-
badge:
|
|
679
|
-
sm:
|
|
680
|
-
md:
|
|
681
|
-
lg:
|
|
678
|
+
}, jt = "_badge_rk7t5_1", Ft = "_sm_rk7t5_11", Dt = "_md_rk7t5_16", Ot = "_lg_rk7t5_21", zt = "_primary_rk7t5_32", Mt = "_secondary_rk7t5_37", Jt = "_success_rk7t5_42", Ht = "_warning_rk7t5_47", Yt = "_error_rk7t5_52", Gt = "_info_rk7t5_57", Z = {
|
|
679
|
+
badge: jt,
|
|
680
|
+
sm: Ft,
|
|
681
|
+
md: Dt,
|
|
682
|
+
lg: Ot,
|
|
682
683
|
default: "_default_rk7t5_27",
|
|
683
|
-
primary:
|
|
684
|
-
secondary:
|
|
685
|
-
success:
|
|
686
|
-
warning:
|
|
687
|
-
error:
|
|
688
|
-
info:
|
|
689
|
-
},
|
|
684
|
+
primary: zt,
|
|
685
|
+
secondary: Mt,
|
|
686
|
+
success: Jt,
|
|
687
|
+
warning: Ht,
|
|
688
|
+
error: Yt,
|
|
689
|
+
info: Gt
|
|
690
|
+
}, xs = ({
|
|
690
691
|
children: e,
|
|
691
|
-
variant:
|
|
692
|
-
size:
|
|
692
|
+
variant: s = "default",
|
|
693
|
+
size: t = "md",
|
|
693
694
|
className: o = ""
|
|
694
|
-
}) => /* @__PURE__ */ r("span", { className: `${Z.badge} ${Z[
|
|
695
|
-
overlay:
|
|
696
|
-
fadeIn:
|
|
697
|
-
modal:
|
|
698
|
-
slideUp:
|
|
699
|
-
sm:
|
|
700
|
-
md:
|
|
701
|
-
lg:
|
|
702
|
-
xl:
|
|
703
|
-
header:
|
|
704
|
-
title:
|
|
705
|
-
closeButton:
|
|
695
|
+
}) => /* @__PURE__ */ r("span", { className: `${Z.badge} ${Z[s]} ${Z[t]} ${o}`, children: e }), Kt = "_overlay_1b3yt_1", Vt = "_fadeIn_1b3yt_1", Qt = "_modal_1b3yt_13", Xt = "_slideUp_1b3yt_1", Zt = "_sm_1b3yt_25", es = "_md_1b3yt_30", ts = "_lg_1b3yt_35", ss = "_xl_1b3yt_40", os = "_header_1b3yt_45", rs = "_title_1b3yt_53", as = "_closeButton_1b3yt_60", ns = "_content_1b3yt_78", E = {
|
|
696
|
+
overlay: Kt,
|
|
697
|
+
fadeIn: Vt,
|
|
698
|
+
modal: Qt,
|
|
699
|
+
slideUp: Xt,
|
|
700
|
+
sm: Zt,
|
|
701
|
+
md: es,
|
|
702
|
+
lg: ts,
|
|
703
|
+
xl: ss,
|
|
704
|
+
header: os,
|
|
705
|
+
title: rs,
|
|
706
|
+
closeButton: as,
|
|
706
707
|
content: ns
|
|
707
|
-
},
|
|
708
|
+
}, Ts = ({
|
|
708
709
|
isOpen: e,
|
|
709
|
-
onClose:
|
|
710
|
-
title:
|
|
710
|
+
onClose: s,
|
|
711
|
+
title: t,
|
|
711
712
|
children: o,
|
|
712
713
|
size: _ = "md",
|
|
713
714
|
closeOnOverlayClick: g = !0,
|
|
714
715
|
className: c = ""
|
|
715
716
|
}) => {
|
|
716
|
-
if (
|
|
717
|
+
if (j(() => (e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
|
|
717
718
|
document.body.style.overflow = "unset";
|
|
718
|
-
}), [e]),
|
|
719
|
+
}), [e]), j(() => {
|
|
719
720
|
const i = (h) => {
|
|
720
|
-
h.key === "Escape" && e &&
|
|
721
|
+
h.key === "Escape" && e && s();
|
|
721
722
|
};
|
|
722
723
|
return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
|
|
723
|
-
}, [e,
|
|
724
|
+
}, [e, s]), !e) return null;
|
|
724
725
|
const l = (i) => {
|
|
725
|
-
g && i.target === i.currentTarget &&
|
|
726
|
+
g && i.target === i.currentTarget && s();
|
|
726
727
|
};
|
|
727
728
|
return /* @__PURE__ */ r("div", { className: E.overlay, onClick: l, children: /* @__PURE__ */ m("div", { className: `${E.modal} ${E[_]} ${c}`, role: "dialog", "aria-modal": "true", children: [
|
|
728
|
-
|
|
729
|
-
/* @__PURE__ */ r("h2", { className: E.title, children:
|
|
730
|
-
/* @__PURE__ */ r("button", { className: E.closeButton, onClick:
|
|
729
|
+
t && /* @__PURE__ */ m("div", { className: E.header, children: [
|
|
730
|
+
/* @__PURE__ */ r("h2", { className: E.title, children: t }),
|
|
731
|
+
/* @__PURE__ */ r("button", { className: E.closeButton, onClick: s, "aria-label": "Close modal", children: "✕" })
|
|
731
732
|
] }),
|
|
732
733
|
/* @__PURE__ */ r("div", { className: E.content, children: o })
|
|
733
734
|
] }) });
|
|
734
|
-
},
|
|
735
|
-
spinner:
|
|
736
|
-
spin:
|
|
737
|
-
sm:
|
|
738
|
-
md:
|
|
739
|
-
lg:
|
|
740
|
-
dots:
|
|
741
|
-
dot:
|
|
742
|
-
bounce:
|
|
743
|
-
visuallyHidden:
|
|
744
|
-
},
|
|
735
|
+
}, ls = "_spinner_1uhnh_2", cs = "_spin_1uhnh_2", is = "_sm_1uhnh_9", ds = "_md_1uhnh_15", _s = "_lg_1uhnh_21", ms = "_dots_1uhnh_34", us = "_dot_1uhnh_34", hs = "_bounce_1uhnh_1", gs = "_visuallyHidden_1uhnh_91", C = {
|
|
736
|
+
spinner: ls,
|
|
737
|
+
spin: cs,
|
|
738
|
+
sm: is,
|
|
739
|
+
md: ds,
|
|
740
|
+
lg: _s,
|
|
741
|
+
dots: ms,
|
|
742
|
+
dot: us,
|
|
743
|
+
bounce: hs,
|
|
744
|
+
visuallyHidden: gs
|
|
745
|
+
}, Cs = ({
|
|
745
746
|
size: e = "md",
|
|
746
|
-
variant:
|
|
747
|
-
className:
|
|
748
|
-
}) =>
|
|
747
|
+
variant: s = "spinner",
|
|
748
|
+
className: t = ""
|
|
749
|
+
}) => s === "dots" ? /* @__PURE__ */ m("div", { className: `${C.dots} ${C[e]} ${t}`, children: [
|
|
749
750
|
/* @__PURE__ */ r("span", { className: C.dot }),
|
|
750
751
|
/* @__PURE__ */ r("span", { className: C.dot }),
|
|
751
752
|
/* @__PURE__ */ r("span", { className: C.dot })
|
|
752
|
-
] }) : /* @__PURE__ */ r("div", { className: `${C.spinner} ${C[e]} ${
|
|
753
|
+
] }) : /* @__PURE__ */ r("div", { className: `${C.spinner} ${C[e]} ${t}`, role: "status", children: /* @__PURE__ */ r("span", { className: C.visuallyHidden, children: "Loading..." }) });
|
|
753
754
|
export {
|
|
754
|
-
|
|
755
|
+
As as AllyCodeDropdown,
|
|
755
756
|
gt as ApiClient,
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
757
|
+
ws as AuthProvider,
|
|
758
|
+
xs as Badge,
|
|
759
|
+
M as Button,
|
|
760
|
+
Ss as Card,
|
|
761
|
+
vs as Container,
|
|
762
|
+
bs as Footer,
|
|
763
|
+
ne as Input,
|
|
764
|
+
Cs as Loader,
|
|
765
|
+
Ts as Modal,
|
|
765
766
|
le as Select,
|
|
766
|
-
|
|
767
|
+
$s as TopBar,
|
|
767
768
|
y as apiClient,
|
|
768
769
|
bt as clearAllyCodes,
|
|
769
770
|
ee as clearTokens,
|
|
770
|
-
|
|
771
|
+
J as formatAllyCode,
|
|
771
772
|
ce as getAccessToken,
|
|
772
773
|
A as getAllyCodesFromStorage,
|
|
773
774
|
_t as getRefreshToken,
|
|
@@ -782,7 +783,7 @@ export {
|
|
|
782
783
|
mt as setRefreshToken,
|
|
783
784
|
$t as setSelectedAllyCode,
|
|
784
785
|
ie as setTokens,
|
|
785
|
-
|
|
786
|
+
Ns as unformatAllyCode,
|
|
786
787
|
re as updateAllyCodeLastUsed,
|
|
787
788
|
wt as useAuth
|
|
788
789
|
};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--color-primary: #1a73e8;--color-primary-hover: #1557b0;--color-primary-active: #0d3c78;--color-secondary: #34a853;--color-secondary-hover: #2d8e47;--color-secondary-active: #1f6631;--color-background: #0a0e27;--color-background-elevated: #131729;--color-background-hover: #1a1f3a;--color-surface: #1e2139;--color-border: #2a2f4a;--color-text-primary: #ffffff;--color-text-secondary: #a0a5c0;--color-text-disabled: #5a5f7a;--color-success: #34a853;--color-warning: #fbbc04;--color-error: #ea4335;--color-info: #4285f4;--tier-grey: #C0EEEE;--tier-green: #47c43c;--tier-blue: #1D99FF;--tier-purple: #8b5cf6;--tier-gold: #ffcc33;--tier-gold-glow: rgba(255, 204, 51, .6);--tier-purple-glow: rgba(139, 92, 246, .5);--tier-blue-glow: rgba(29, 153, 255, .5);--sixdot-gradient-start: #60a5fa;--sixdot-gradient-mid: #a855f7;--sixdot-gradient-end: #f59e0b;--sixdot-border-opacity: .3;--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-heading: "Orbitron", var(--font-primary);--font-mono: "Fira Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6), 0 10px 10px -5px rgba(0, 0, 0, .5);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;--z-tooltip: 500;--chamfer-size: 8px;--chamfer-size-lg: 12px;--chamfer-size-sm: 4px;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--topbar-height: 64px;--topbar-background: var(--color-background-elevated);--topbar-border: var(--color-border);--container-max-width: 1280px;--container-padding: var(--spacing-md);--button-height: 40px;--button-padding-x: var(--spacing-lg);--button-padding-y: var(--spacing-sm);--input-height: 40px;--input-padding-x: var(--spacing-md);--input-padding-y: var(--spacing-sm);--input-border: var(--color-border);--input-background: var(--color-surface);--card-padding: var(--spacing-lg);--card-background: var(--color-surface);--card-border: var(--color-border)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{line-height:var(--line-height-normal);font-family:var(--font-primary);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-background)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}#root{isolation:isolate;min-height:100%}.chamfered-box{position:relative;clip-path:polygon(var(--chamfer-size) 0,calc(100% - var(--chamfer-size)) 0,100% var(--chamfer-size),100% calc(100% - var(--chamfer-size)),calc(100% - var(--chamfer-size)) 100%,var(--chamfer-size) 100%,0 calc(100% - var(--chamfer-size)),0 var(--chamfer-size))}.chamfered-box-lg{position:relative;clip-path:polygon(var(--chamfer-size-lg) 0,calc(100% - var(--chamfer-size-lg)) 0,100% var(--chamfer-size-lg),100% calc(100% - var(--chamfer-size-lg)),calc(100% - var(--chamfer-size-lg)) 100%,var(--chamfer-size-lg) 100%,0 calc(100% - var(--chamfer-size-lg)),0 var(--chamfer-size-lg))}.chamfered-box-sm{position:relative;clip-path:polygon(var(--chamfer-size-sm) 0,calc(100% - var(--chamfer-size-sm)) 0,100% var(--chamfer-size-sm),100% calc(100% - var(--chamfer-size-sm)),calc(100% - var(--chamfer-size-sm)) 100%,var(--chamfer-size-sm) 100%,0 calc(100% - var(--chamfer-size-sm)),0 var(--chamfer-size-sm))}.chamfered-box-asymmetric{position:relative;clip-path:polygon(12px 0%,calc(100% - 12px) 0%,100% 12px,100% calc(100% - 24px),calc(100% - 24px) 100%,12px 100%,0% calc(100% - 12px),0% 12px)}.chamfered-border{position:relative;background:var(--color-surface)}.chamfered-border:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:2px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;clip-path:polygon(var(--chamfer-size) 0,calc(100% - var(--chamfer-size)) 0,100% var(--chamfer-size),100% calc(100% - var(--chamfer-size)),calc(100% - var(--chamfer-size)) 100%,var(--chamfer-size) 100%,0 calc(100% - var(--chamfer-size)),0 var(--chamfer-size))}.chamfered-diagonal-border{position:absolute;background-color:currentColor;transition:background-color .3s ease;z-index:5;pointer-events:none}.chamfered-diagonal-tl{top:-1px;left:11px;width:16px;height:2px;transform:rotate(135deg);transform-origin:left center}.chamfered-diagonal-tr{top:10px;right:0;width:18px;height:2px;transform:rotate(45deg);transform-origin:right center}.chamfered-diagonal-bl{bottom:-2px;left:12px;width:20px;height:2px;transform:rotate(-135deg);transform-origin:left center}.chamfered-diagonal-br{bottom:11px;right:-1px;width:18px;height:2px;transform:rotate(-45deg);transform-origin:right center}.chamfered-diagonal-br-large{bottom:23px;right:-1px;width:35px;height:2px;transform:rotate(-45deg);transform-origin:right center}.gradient-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-active))}.gradient-secondary{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-active))}.gradient-surface{background:linear-gradient(135deg,var(--color-surface),var(--color-background-elevated))}.glow-primary{box-shadow:0 0 20px #1a73e880}.glow-secondary{box-shadow:0 0 20px #34a85380}.glow-error{box-shadow:0 0 20px #ea433580}.glow-tier-gold{box-shadow:0 0 20px var(--tier-gold-glow)}.glow-tier-purple{box-shadow:0 0 20px var(--tier-purple-glow)}.glow-tier-blue{box-shadow:0 0 20px var(--tier-blue-glow)}.sixdot-border{position:relative}.sixdot-border:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--sixdot-gradient-start),var(--sixdot-gradient-mid),var(--sixdot-gradient-end));border-radius:inherit;opacity:var(--sixdot-border-opacity);z-index:-1}.sixdot-glow{background:linear-gradient(135deg,#4338ca33,#7c3aed33)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.02)}.hover-brighten{transition:filter var(--transition-base)}.hover-brighten:hover{filter:brightness(1.1)}.hover-lift{transition:transform var(--transition-base)}.hover-lift:hover{transform:translateY(-2px)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:0 0 20px #1a73e866}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-base)}.animate-slide-up{animation:slideUp var(--transition-base)}.animate-slide-down{animation:slideDown var(--transition-base)}.animate-spin{animation:spin 1s linear infinite}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-disabled{color:var(--color-text-disabled)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-surface{background-color:var(--color-surface)}.bg-elevated{background-color:var(--color-background-elevated)}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.w-full{width:100%}.w-auto{width:auto}.h-full{height:100%}.h-auto{height:auto}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-disabled)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.bg-overlay{position:relative}.bg-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-gradient, linear-gradient(135deg, rgba(15, 23, 42, .7), rgba(15, 23, 42, .5)));z-index:0}.bg-overlay>*{position:relative;z-index:1}.backdrop-image{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-repeat:no-repeat}._container_u3o0e_1{width:100%;margin-left:auto;margin-right:auto}._padding_u3o0e_7{padding-left:var(--container-padding);padding-right:var(--container-padding)}._maxWidth-sm_u3o0e_12{max-width:640px}._maxWidth-md_u3o0e_16{max-width:768px}._maxWidth-lg_u3o0e_20{max-width:1024px}._maxWidth-xl_u3o0e_24{max-width:var(--container-max-width)}._maxWidth-full_u3o0e_28{max-width:100%}@media (max-width: 768px){._padding_u3o0e_7{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}._topBar_10g3c_1{position:sticky;top:0;left:0;right:0;height:var(--topbar-height);background-color:var(--topbar-background);border-bottom:1px solid var(--topbar-border);z-index:var(--z-sticky);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}._content_10g3c_13{height:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;justify-content:space-between}._left_10g3c_23{display:flex;align-items:center;gap:var(--spacing-xl);flex:1}._right_10g3c_30{display:flex;align-items:center;gap:var(--spacing-md)}._logo_10g3c_36{display:flex;align-items:center;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);font-family:var(--font-heading)}@media (max-width: 768px){._content_10g3c_13{padding:0 var(--spacing-md)}._left_10g3c_23{gap:var(--spacing-md)}._right_10g3c_30{gap:var(--spacing-sm)}}._footer_zjuj8_1{background-color:var(--color-background-elevated);border-top:1px solid var(--color-border);margin-top:auto}._content_zjuj8_7{max-width:var(--container-max-width);margin:0 auto;padding:var(--spacing-xl) var(--container-padding)}._defaultContent_zjuj8_13{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);text-align:center}._copyright_zjuj8_21{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._disclaimer_zjuj8_26{font-size:var(--font-size-xs);color:var(--color-text-disabled)}@media (max-width: 768px){._content_zjuj8_7{padding:var(--spacing-lg) var(--spacing-md)}}._button_159ms_1{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:2px solid transparent;text-align:center;-webkit-user-select:none;user-select:none}._button_159ms_1:disabled{opacity:.5;cursor:not-allowed}._sm_159ms_22{height:32px;padding:0 var(--spacing-md);font-size:var(--font-size-sm)}._md_159ms_28{height:var(--button-height);padding:0 var(--button-padding-x);font-size:var(--font-size-base)}._lg_159ms_34{height:48px;padding:0 var(--spacing-xl);font-size:var(--font-size-lg)}._primary_159ms_41{background-color:var(--color-primary);color:var(--color-text-primary)}._primary_159ms_41:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}._primary_159ms_41:active:not(:disabled){background-color:var(--color-primary-active)}._secondary_159ms_55{background-color:var(--color-secondary);color:var(--color-text-primary)}._secondary_159ms_55:hover:not(:disabled){background-color:var(--color-secondary-hover);box-shadow:var(--shadow-md)}._secondary_159ms_55:active:not(:disabled){background-color:var(--color-secondary-active)}._outline_159ms_69{background-color:transparent;border-color:var(--color-border);color:var(--color-text-primary)}._outline_159ms_69:hover:not(:disabled){background-color:var(--color-background-hover);border-color:var(--color-primary)}._ghost_159ms_80{background-color:transparent;color:var(--color-text-primary)}._ghost_159ms_80:hover:not(:disabled){background-color:var(--color-background-hover)}._danger_159ms_89{background-color:var(--color-error);color:var(--color-text-primary)}._danger_159ms_89:hover:not(:disabled){background-color:#c33a2e;box-shadow:var(--shadow-md)}._fullWidth_159ms_100{width:100%}._loading_159ms_105{position:relative;pointer-events:none}._loadingSpinner_159ms_110{display:flex;align-items:center;gap:var(--spacing-sm)}._spinner_159ms_116{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:_spin_159ms_116 .6s linear infinite}@keyframes _spin_159ms_116{to{transform:rotate(360deg)}}._loadingText_159ms_131{opacity:.7}._inputWrapper_15t4g_1{display:flex;flex-direction:column;gap:var(--spacing-xs)}._fullWidth_15t4g_7{width:100%}._label_15t4g_11{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-xs)}._required_15t4g_20{color:var(--color-error)}._input_15t4g_1{height:var(--input-height);padding:var(--input-padding-y) var(--input-padding-x);font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--input-background);border:1px solid var(--input-border);border-radius:var(--radius-md);transition:all var(--transition-base);outline:none}._input_15t4g_1:hover{border-color:var(--color-text-disabled)}._input_15t4g_1:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a73e81a}._input_15t4g_1:disabled{opacity:.5;cursor:not-allowed}._input_15t4g_1::placeholder{color:var(--color-text-disabled)}._input_15t4g_1._error_15t4g_55{border-color:var(--color-error)}._input_15t4g_1._error_15t4g_55:focus{box-shadow:0 0 0 3px #ea43351a}._errorText_15t4g_63{font-size:var(--font-size-sm);color:var(--color-error)}._helperText_15t4g_68{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._selectWrapper_ir4bq_1{display:flex;flex-direction:column;gap:var(--spacing-xs)}._fullWidth_ir4bq_7{width:100%}._label_ir4bq_11{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-xs)}._required_ir4bq_20{color:var(--color-error)}._selectContainer_ir4bq_24{position:relative;display:inline-block;width:100%}._select_ir4bq_1{width:100%;height:var(--input-height);padding:var(--input-padding-y) var(--input-padding-x);padding-right:calc(var(--input-padding-x) + 24px);font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--input-background);border:1px solid var(--input-border);border-radius:var(--radius-md);transition:all var(--transition-base);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}._select_ir4bq_1:hover{border-color:var(--color-text-disabled)}._select_ir4bq_1:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a73e81a}._select_ir4bq_1:disabled{opacity:.5;cursor:not-allowed}._select_ir4bq_1._error_ir4bq_63{border-color:var(--color-error)}._select_ir4bq_1._error_ir4bq_63:focus{box-shadow:0 0 0 3px #ea43351a}._arrow_ir4bq_71{position:absolute;right:var(--input-padding-x);top:50%;transform:translateY(-50%);pointer-events:none;font-size:var(--font-size-xs);color:var(--color-text-secondary)}._errorText_ir4bq_81{font-size:var(--font-size-sm);color:var(--color-error)}._helperText_ir4bq_86{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._select_ir4bq_1 option{background-color:var(--color-surface);color:var(--color-text-primary)}._allyCodeDropdown_1m0tw_1{position:relative;display:flex;align-items:center;gap:.5rem}._select_1m0tw_8{min-width:200px}._manageButton_1m0tw_12{white-space:nowrap}._managePanel_1m0tw_16{position:absolute;top:100%;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;margin-top:.5rem;min-width:300px;box-shadow:0 4px 6px #0000001a;z-index:1000}._managePanel_1m0tw_16 h4{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:var(--color-text-primary)}._addSection_1m0tw_37{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}._addInputGroup_1m0tw_43{display:flex;gap:.5rem;margin-bottom:.5rem}._addInputGroup_1m0tw_43 input{flex:1;font-family:monospace;letter-spacing:.05em}._error_1m0tw_55{font-size:.75rem;color:var(--color-error);margin-top:.25rem}._success_1m0tw_61{font-size:.75rem;color:var(--color-success);margin-top:.25rem}._codesList_1m0tw_67{margin-bottom:1rem}._codeItem_1m0tw_71{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--color-border)}._codeItem_1m0tw_71:last-of-type{border-bottom:none}._codeItem_1m0tw_71 span{font-size:.875rem;color:var(--color-text-secondary)}._doneButton_1m0tw_88{width:100%}@media (max-width: 768px){._select_1m0tw_8{min-width:150px}._managePanel_1m0tw_16{right:auto;left:0}}._card_1n0ll_1{background-color:var(--card-background);border-radius:var(--radius-lg);transition:transform var(--transition-base),box-shadow var(--transition-base)}._default_1n0ll_8{background-color:var(--card-background)}._elevated_1n0ll_12{background-color:var(--card-background);box-shadow:var(--shadow-md)}._outline_1n0ll_17{background-color:transparent;border:1px solid var(--card-border)}._padding-none_1n0ll_23{padding:0}._padding-sm_1n0ll_27{padding:var(--spacing-sm)}._padding-md_1n0ll_31{padding:var(--card-padding)}._padding-lg_1n0ll_35{padding:var(--spacing-xl)}._hoverable_1n0ll_40{cursor:pointer;will-change:transform;backface-visibility:hidden;transform:translateZ(0)}._hoverable_1n0ll_40:hover{transform:translateY(-4px) translateZ(0);box-shadow:var(--shadow-lg)}._hoverable_1n0ll_40:active{transform:translateY(-1px) translateZ(0);box-shadow:var(--shadow-md)}._card_1n0ll_1[role=button]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._badge_rk7t5_1{display:inline-flex;align-items:center;justify-content:center;font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}._sm_rk7t5_11{padding:2px 8px;font-size:var(--font-size-xs)}._md_rk7t5_16{padding:4px 12px;font-size:var(--font-size-sm)}._lg_rk7t5_21{padding:6px 16px;font-size:var(--font-size-base)}._default_rk7t5_27{background-color:var(--color-surface);color:var(--color-text-secondary)}._primary_rk7t5_32{background-color:var(--color-primary);color:var(--color-text-primary)}._secondary_rk7t5_37{background-color:var(--color-secondary);color:var(--color-text-primary)}._success_rk7t5_42{background-color:var(--color-success);color:var(--color-text-primary)}._warning_rk7t5_47{background-color:var(--color-warning);color:var(--color-background)}._error_rk7t5_52{background-color:var(--color-error);color:var(--color-text-primary)}._info_rk7t5_57{background-color:var(--color-info);color:var(--color-text-primary)}._overlay_1b3yt_1{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md);animation:_fadeIn_1b3yt_1 var(--transition-base)}._modal_1b3yt_13{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:_slideUp_1b3yt_1 var(--transition-base)}._sm_1b3yt_25{width:100%;max-width:400px}._md_1b3yt_30{width:100%;max-width:600px}._lg_1b3yt_35{width:100%;max-width:800px}._xl_1b3yt_40{width:100%;max-width:1200px}._header_1b3yt_45{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}._title_1b3yt_53{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}._closeButton_1b3yt_60{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast);font-size:var(--font-size-xl);line-height:1}._closeButton_1b3yt_60:hover{background-color:var(--color-background-hover);color:var(--color-text-primary)}._content_1b3yt_78{padding:var(--spacing-lg);overflow-y:auto;flex:1}@keyframes _fadeIn_1b3yt_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUp_1b3yt_1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){._modal_1b3yt_13{max-height:95vh}._header_1b3yt_45,._content_1b3yt_78{padding:var(--spacing-md)}}._spinner_1uhnh_2{border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:_spin_1uhnh_2 .8s linear infinite}._spinner_1uhnh_2._sm_1uhnh_9{width:16px;height:16px;border-width:2px}._spinner_1uhnh_2._md_1uhnh_15{width:32px;height:32px;border-width:3px}._spinner_1uhnh_2._lg_1uhnh_21{width:48px;height:48px;border-width:4px}@keyframes _spin_1uhnh_2{to{transform:rotate(360deg)}}._dots_1uhnh_34{display:inline-flex;gap:8px}._dots_1uhnh_34._sm_1uhnh_9{gap:4px}._dots_1uhnh_34._lg_1uhnh_21{gap:12px}._dot_1uhnh_34{display:inline-block;background-color:var(--color-primary);border-radius:50%;animation:_bounce_1uhnh_1 1.4s infinite ease-in-out both}._dots_1uhnh_34._sm_1uhnh_9 ._dot_1uhnh_34{width:6px;height:6px}._dots_1uhnh_34._md_1uhnh_15 ._dot_1uhnh_34{width:10px;height:10px}._dots_1uhnh_34._lg_1uhnh_21 ._dot_1uhnh_34{width:14px;height:14px}._dot_1uhnh_34:nth-child(1){animation-delay:-.32s}._dot_1uhnh_34:nth-child(2){animation-delay:-.16s}@keyframes _bounce_1uhnh_1{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}._visuallyHidden_1uhnh_91{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
|
|
1
|
+
:root{--color-primary: #1a73e8;--color-primary-hover: #1557b0;--color-primary-active: #0d3c78;--color-secondary: #34a853;--color-secondary-hover: #2d8e47;--color-secondary-active: #1f6631;--color-background: #0a0e27;--color-background-elevated: #131729;--color-background-hover: #1a1f3a;--color-surface: #1e2139;--color-border: #2a2f4a;--color-text-primary: #ffffff;--color-text-secondary: #a0a5c0;--color-text-disabled: #5a5f7a;--color-success: #34a853;--color-warning: #fbbc04;--color-error: #ea4335;--color-info: #4285f4;--tier-grey: #C0EEEE;--tier-green: #47c43c;--tier-blue: #1D99FF;--tier-purple: #8b5cf6;--tier-gold: #ffcc33;--tier-gold-glow: rgba(255, 204, 51, .6);--tier-purple-glow: rgba(139, 92, 246, .5);--tier-blue-glow: rgba(29, 153, 255, .5);--sixdot-gradient-start: #60a5fa;--sixdot-gradient-mid: #a855f7;--sixdot-gradient-end: #f59e0b;--sixdot-border-opacity: .3;--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-heading: "Orbitron", var(--font-primary);--font-mono: "Fira Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6), 0 10px 10px -5px rgba(0, 0, 0, .5);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;--z-tooltip: 500;--chamfer-size: 8px;--chamfer-size-lg: 12px;--chamfer-size-sm: 4px;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--topbar-height: 64px;--topbar-background: var(--color-background-elevated);--topbar-border: var(--color-border);--container-max-width: 1280px;--container-padding: var(--spacing-md);--button-height: 40px;--button-padding-x: var(--spacing-lg);--button-padding-y: var(--spacing-sm);--input-height: 40px;--input-padding-x: var(--spacing-md);--input-padding-y: var(--spacing-sm);--input-border: var(--color-border);--input-background: var(--color-surface);--card-padding: var(--spacing-lg);--card-background: var(--color-surface);--card-border: var(--color-border)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{line-height:var(--line-height-normal);font-family:var(--font-primary);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-background)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}#root{isolation:isolate;min-height:100%}.chamfered-box{position:relative;clip-path:polygon(var(--chamfer-size) 0,calc(100% - var(--chamfer-size)) 0,100% var(--chamfer-size),100% calc(100% - var(--chamfer-size)),calc(100% - var(--chamfer-size)) 100%,var(--chamfer-size) 100%,0 calc(100% - var(--chamfer-size)),0 var(--chamfer-size))}.chamfered-box-lg{position:relative;clip-path:polygon(var(--chamfer-size-lg) 0,calc(100% - var(--chamfer-size-lg)) 0,100% var(--chamfer-size-lg),100% calc(100% - var(--chamfer-size-lg)),calc(100% - var(--chamfer-size-lg)) 100%,var(--chamfer-size-lg) 100%,0 calc(100% - var(--chamfer-size-lg)),0 var(--chamfer-size-lg))}.chamfered-box-sm{position:relative;clip-path:polygon(var(--chamfer-size-sm) 0,calc(100% - var(--chamfer-size-sm)) 0,100% var(--chamfer-size-sm),100% calc(100% - var(--chamfer-size-sm)),calc(100% - var(--chamfer-size-sm)) 100%,var(--chamfer-size-sm) 100%,0 calc(100% - var(--chamfer-size-sm)),0 var(--chamfer-size-sm))}.chamfered-box-asymmetric{position:relative;clip-path:polygon(12px 0%,calc(100% - 12px) 0%,100% 12px,100% calc(100% - 24px),calc(100% - 24px) 100%,12px 100%,0% calc(100% - 12px),0% 12px)}.chamfered-border{position:relative;background:var(--color-surface)}.chamfered-border:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:2px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;clip-path:polygon(var(--chamfer-size) 0,calc(100% - var(--chamfer-size)) 0,100% var(--chamfer-size),100% calc(100% - var(--chamfer-size)),calc(100% - var(--chamfer-size)) 100%,var(--chamfer-size) 100%,0 calc(100% - var(--chamfer-size)),0 var(--chamfer-size))}.chamfered-diagonal-border{position:absolute;background-color:currentColor;transition:background-color .3s ease;z-index:5;pointer-events:none}.chamfered-diagonal-tl{top:-1px;left:11px;width:16px;height:2px;transform:rotate(135deg);transform-origin:left center}.chamfered-diagonal-tr{top:10px;right:0;width:18px;height:2px;transform:rotate(45deg);transform-origin:right center}.chamfered-diagonal-bl{bottom:-2px;left:12px;width:20px;height:2px;transform:rotate(-135deg);transform-origin:left center}.chamfered-diagonal-br{bottom:11px;right:-1px;width:18px;height:2px;transform:rotate(-45deg);transform-origin:right center}.chamfered-diagonal-br-large{bottom:23px;right:-1px;width:35px;height:2px;transform:rotate(-45deg);transform-origin:right center}.gradient-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-active))}.gradient-secondary{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-active))}.gradient-surface{background:linear-gradient(135deg,var(--color-surface),var(--color-background-elevated))}.glow-primary{box-shadow:0 0 20px #1a73e880}.glow-secondary{box-shadow:0 0 20px #34a85380}.glow-error{box-shadow:0 0 20px #ea433580}.glow-tier-gold{box-shadow:0 0 20px var(--tier-gold-glow)}.glow-tier-purple{box-shadow:0 0 20px var(--tier-purple-glow)}.glow-tier-blue{box-shadow:0 0 20px var(--tier-blue-glow)}.sixdot-border{position:relative}.sixdot-border:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--sixdot-gradient-start),var(--sixdot-gradient-mid),var(--sixdot-gradient-end));border-radius:inherit;opacity:var(--sixdot-border-opacity);z-index:-1}.sixdot-glow{background:linear-gradient(135deg,#4338ca33,#7c3aed33)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.02)}.hover-brighten{transition:filter var(--transition-base)}.hover-brighten:hover{filter:brightness(1.1)}.hover-lift{transition:transform var(--transition-base)}.hover-lift:hover{transform:translateY(-2px)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:0 0 20px #1a73e866}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-base)}.animate-slide-up{animation:slideUp var(--transition-base)}.animate-slide-down{animation:slideDown var(--transition-base)}.animate-spin{animation:spin 1s linear infinite}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-disabled{color:var(--color-text-disabled)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-surface{background-color:var(--color-surface)}.bg-elevated{background-color:var(--color-background-elevated)}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.w-full{width:100%}.w-auto{width:auto}.h-full{height:100%}.h-auto{height:auto}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-disabled)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.bg-overlay{position:relative}.bg-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-gradient, linear-gradient(135deg, rgba(15, 23, 42, .7), rgba(15, 23, 42, .5)));z-index:0}.bg-overlay>*{position:relative;z-index:1}.backdrop-image{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-repeat:no-repeat}._container_u3o0e_1{width:100%;margin-left:auto;margin-right:auto}._padding_u3o0e_7{padding-left:var(--container-padding);padding-right:var(--container-padding)}._maxWidth-sm_u3o0e_12{max-width:640px}._maxWidth-md_u3o0e_16{max-width:768px}._maxWidth-lg_u3o0e_20{max-width:1024px}._maxWidth-xl_u3o0e_24{max-width:var(--container-max-width)}._maxWidth-full_u3o0e_28{max-width:100%}@media (max-width: 768px){._padding_u3o0e_7{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}._topBar_10g3c_1{position:sticky;top:0;left:0;right:0;height:var(--topbar-height);background-color:var(--topbar-background);border-bottom:1px solid var(--topbar-border);z-index:var(--z-sticky);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}._content_10g3c_13{height:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;justify-content:space-between}._left_10g3c_23{display:flex;align-items:center;gap:var(--spacing-xl);flex:1}._right_10g3c_30{display:flex;align-items:center;gap:var(--spacing-md)}._logo_10g3c_36{display:flex;align-items:center;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);font-family:var(--font-heading)}@media (max-width: 768px){._content_10g3c_13{padding:0 var(--spacing-md)}._left_10g3c_23{gap:var(--spacing-md)}._right_10g3c_30{gap:var(--spacing-sm)}}._footer_zjuj8_1{background-color:var(--color-background-elevated);border-top:1px solid var(--color-border);margin-top:auto}._content_zjuj8_7{max-width:var(--container-max-width);margin:0 auto;padding:var(--spacing-xl) var(--container-padding)}._defaultContent_zjuj8_13{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);text-align:center}._copyright_zjuj8_21{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._disclaimer_zjuj8_26{font-size:var(--font-size-xs);color:var(--color-text-disabled)}@media (max-width: 768px){._content_zjuj8_7{padding:var(--spacing-lg) var(--spacing-md)}}._button_159ms_1{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:2px solid transparent;text-align:center;-webkit-user-select:none;user-select:none}._button_159ms_1:disabled{opacity:.5;cursor:not-allowed}._sm_159ms_22{height:32px;padding:0 var(--spacing-md);font-size:var(--font-size-sm)}._md_159ms_28{height:var(--button-height);padding:0 var(--button-padding-x);font-size:var(--font-size-base)}._lg_159ms_34{height:48px;padding:0 var(--spacing-xl);font-size:var(--font-size-lg)}._primary_159ms_41{background-color:var(--color-primary);color:var(--color-text-primary)}._primary_159ms_41:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}._primary_159ms_41:active:not(:disabled){background-color:var(--color-primary-active)}._secondary_159ms_55{background-color:var(--color-secondary);color:var(--color-text-primary)}._secondary_159ms_55:hover:not(:disabled){background-color:var(--color-secondary-hover);box-shadow:var(--shadow-md)}._secondary_159ms_55:active:not(:disabled){background-color:var(--color-secondary-active)}._outline_159ms_69{background-color:transparent;border-color:var(--color-border);color:var(--color-text-primary)}._outline_159ms_69:hover:not(:disabled){background-color:var(--color-background-hover);border-color:var(--color-primary)}._ghost_159ms_80{background-color:transparent;color:var(--color-text-primary)}._ghost_159ms_80:hover:not(:disabled){background-color:var(--color-background-hover)}._danger_159ms_89{background-color:var(--color-error);color:var(--color-text-primary)}._danger_159ms_89:hover:not(:disabled){background-color:#c33a2e;box-shadow:var(--shadow-md)}._fullWidth_159ms_100{width:100%}._loading_159ms_105{position:relative;pointer-events:none}._loadingSpinner_159ms_110{display:flex;align-items:center;gap:var(--spacing-sm)}._spinner_159ms_116{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:_spin_159ms_116 .6s linear infinite}@keyframes _spin_159ms_116{to{transform:rotate(360deg)}}._loadingText_159ms_131{opacity:.7}._inputWrapper_15t4g_1{display:flex;flex-direction:column;gap:var(--spacing-xs)}._fullWidth_15t4g_7{width:100%}._label_15t4g_11{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-xs)}._required_15t4g_20{color:var(--color-error)}._input_15t4g_1{height:var(--input-height);padding:var(--input-padding-y) var(--input-padding-x);font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--input-background);border:1px solid var(--input-border);border-radius:var(--radius-md);transition:all var(--transition-base);outline:none}._input_15t4g_1:hover{border-color:var(--color-text-disabled)}._input_15t4g_1:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a73e81a}._input_15t4g_1:disabled{opacity:.5;cursor:not-allowed}._input_15t4g_1::placeholder{color:var(--color-text-disabled)}._input_15t4g_1._error_15t4g_55{border-color:var(--color-error)}._input_15t4g_1._error_15t4g_55:focus{box-shadow:0 0 0 3px #ea43351a}._errorText_15t4g_63{font-size:var(--font-size-sm);color:var(--color-error)}._helperText_15t4g_68{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._selectWrapper_ir4bq_1{display:flex;flex-direction:column;gap:var(--spacing-xs)}._fullWidth_ir4bq_7{width:100%}._label_ir4bq_11{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-xs)}._required_ir4bq_20{color:var(--color-error)}._selectContainer_ir4bq_24{position:relative;display:inline-block;width:100%}._select_ir4bq_1{width:100%;height:var(--input-height);padding:var(--input-padding-y) var(--input-padding-x);padding-right:calc(var(--input-padding-x) + 24px);font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--input-background);border:1px solid var(--input-border);border-radius:var(--radius-md);transition:all var(--transition-base);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}._select_ir4bq_1:hover{border-color:var(--color-text-disabled)}._select_ir4bq_1:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a73e81a}._select_ir4bq_1:disabled{opacity:.5;cursor:not-allowed}._select_ir4bq_1._error_ir4bq_63{border-color:var(--color-error)}._select_ir4bq_1._error_ir4bq_63:focus{box-shadow:0 0 0 3px #ea43351a}._arrow_ir4bq_71{position:absolute;right:var(--input-padding-x);top:50%;transform:translateY(-50%);pointer-events:none;font-size:var(--font-size-xs);color:var(--color-text-secondary)}._errorText_ir4bq_81{font-size:var(--font-size-sm);color:var(--color-error)}._helperText_ir4bq_86{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._select_ir4bq_1 option{background-color:var(--color-surface);color:var(--color-text-primary)}._allyCodeDropdown_1m0tw_1{position:relative;display:flex;align-items:center;gap:.5rem}._select_1m0tw_8{min-width:200px}._manageButton_1m0tw_12{white-space:nowrap}._managePanel_1m0tw_16{position:absolute;top:100%;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;margin-top:.5rem;min-width:300px;box-shadow:0 4px 6px #0000001a;z-index:1000}._managePanel_1m0tw_16 h4{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:var(--color-text-primary)}._addSection_1m0tw_37{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}._addInputGroup_1m0tw_43{display:flex;gap:.5rem;margin-bottom:.5rem}._addInputGroup_1m0tw_43 input{flex:1;font-family:monospace;letter-spacing:.05em}._error_1m0tw_55{font-size:.75rem;color:var(--color-error);margin-top:.25rem}._success_1m0tw_61{font-size:.75rem;color:var(--color-success);margin-top:.25rem}._codesList_1m0tw_67{margin-bottom:1rem}._codeItem_1m0tw_71{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--color-border)}._codeItem_1m0tw_71:last-of-type{border-bottom:none}._codeItem_1m0tw_71 span{font-size:.875rem;color:var(--color-text-secondary)}._doneButton_1m0tw_88{width:100%}@media (max-width: 768px){._select_1m0tw_8{min-width:150px}._managePanel_1m0tw_16{right:auto;left:0}}._card_b4471_1{background-color:var(--card-background);border-radius:var(--radius-lg);transition:transform var(--transition-base),box-shadow var(--transition-base)}._card_b4471_1._chamfered_b4471_8{border-radius:0}._default_b4471_13{background-color:var(--card-background)}._elevated_b4471_17{background-color:var(--card-background);box-shadow:var(--shadow-md)}._outline_b4471_22{background-color:transparent;border:1px solid var(--card-border)}._padding-none_b4471_28{padding:0}._padding-sm_b4471_32{padding:var(--spacing-sm)}._padding-md_b4471_36{padding:var(--card-padding)}._padding-lg_b4471_40{padding:var(--spacing-xl)}._hoverable_b4471_45{cursor:pointer;will-change:transform;backface-visibility:hidden;transform:translateZ(0)}._hoverable_b4471_45:hover{transform:translateY(-4px) translateZ(0);box-shadow:var(--shadow-lg)}._hoverable_b4471_45:active{transform:translateY(-1px) translateZ(0);box-shadow:var(--shadow-md)}._card_b4471_1[role=button]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._badge_rk7t5_1{display:inline-flex;align-items:center;justify-content:center;font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}._sm_rk7t5_11{padding:2px 8px;font-size:var(--font-size-xs)}._md_rk7t5_16{padding:4px 12px;font-size:var(--font-size-sm)}._lg_rk7t5_21{padding:6px 16px;font-size:var(--font-size-base)}._default_rk7t5_27{background-color:var(--color-surface);color:var(--color-text-secondary)}._primary_rk7t5_32{background-color:var(--color-primary);color:var(--color-text-primary)}._secondary_rk7t5_37{background-color:var(--color-secondary);color:var(--color-text-primary)}._success_rk7t5_42{background-color:var(--color-success);color:var(--color-text-primary)}._warning_rk7t5_47{background-color:var(--color-warning);color:var(--color-background)}._error_rk7t5_52{background-color:var(--color-error);color:var(--color-text-primary)}._info_rk7t5_57{background-color:var(--color-info);color:var(--color-text-primary)}._overlay_1b3yt_1{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md);animation:_fadeIn_1b3yt_1 var(--transition-base)}._modal_1b3yt_13{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:_slideUp_1b3yt_1 var(--transition-base)}._sm_1b3yt_25{width:100%;max-width:400px}._md_1b3yt_30{width:100%;max-width:600px}._lg_1b3yt_35{width:100%;max-width:800px}._xl_1b3yt_40{width:100%;max-width:1200px}._header_1b3yt_45{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}._title_1b3yt_53{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}._closeButton_1b3yt_60{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast);font-size:var(--font-size-xl);line-height:1}._closeButton_1b3yt_60:hover{background-color:var(--color-background-hover);color:var(--color-text-primary)}._content_1b3yt_78{padding:var(--spacing-lg);overflow-y:auto;flex:1}@keyframes _fadeIn_1b3yt_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUp_1b3yt_1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){._modal_1b3yt_13{max-height:95vh}._header_1b3yt_45,._content_1b3yt_78{padding:var(--spacing-md)}}._spinner_1uhnh_2{border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:_spin_1uhnh_2 .8s linear infinite}._spinner_1uhnh_2._sm_1uhnh_9{width:16px;height:16px;border-width:2px}._spinner_1uhnh_2._md_1uhnh_15{width:32px;height:32px;border-width:3px}._spinner_1uhnh_2._lg_1uhnh_21{width:48px;height:48px;border-width:4px}@keyframes _spin_1uhnh_2{to{transform:rotate(360deg)}}._dots_1uhnh_34{display:inline-flex;gap:8px}._dots_1uhnh_34._sm_1uhnh_9{gap:4px}._dots_1uhnh_34._lg_1uhnh_21{gap:12px}._dot_1uhnh_34{display:inline-block;background-color:var(--color-primary);border-radius:50%;animation:_bounce_1uhnh_1 1.4s infinite ease-in-out both}._dots_1uhnh_34._sm_1uhnh_9 ._dot_1uhnh_34{width:6px;height:6px}._dots_1uhnh_34._md_1uhnh_15 ._dot_1uhnh_34{width:10px;height:10px}._dots_1uhnh_34._lg_1uhnh_21 ._dot_1uhnh_34{width:14px;height:14px}._dot_1uhnh_34:nth-child(1){animation-delay:-.32s}._dot_1uhnh_34:nth-child(2){animation-delay:-.16s}@keyframes _bounce_1uhnh_1{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}._visuallyHidden_1uhnh_91{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
|