astrogators-shared-ui 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/display/Card.d.ts +5 -2
- package/dist/index.js +293 -281
- package/dist/style.css +1 -1
- package/package.json +2 -2
|
@@ -4,14 +4,17 @@ export interface CardProps {
|
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
variant?: 'default' | 'elevated' | 'outline';
|
|
6
6
|
chamfered?: boolean;
|
|
7
|
-
chamferSize?: 'sm' | 'md' | 'lg';
|
|
7
|
+
chamferSize?: 'sm' | 'md' | 'lg' | 'asymmetric';
|
|
8
8
|
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
9
9
|
hoverable?: boolean;
|
|
10
|
+
showDiagonalBorders?: boolean;
|
|
11
|
+
diagonalBorderColor?: string;
|
|
10
12
|
className?: string;
|
|
11
13
|
onClick?: () => void;
|
|
14
|
+
style?: React.CSSProperties;
|
|
12
15
|
}
|
|
13
16
|
/**
|
|
14
17
|
* Card component
|
|
15
|
-
* Container for content with optional chamfered corners
|
|
18
|
+
* Container for content with optional chamfered corners and diagonal borders
|
|
16
19
|
*/
|
|
17
20
|
export declare const Card: React.FC<CardProps>;
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
var
|
|
2
|
-
var he = (e, t, s) => t in e ?
|
|
1
|
+
var ue = Object.defineProperty;
|
|
2
|
+
var he = (e, t, s) => t in e ? ue(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s;
|
|
3
3
|
var R = (e, t, s) => he(e, typeof t != "symbol" ? t + "" : t, s);
|
|
4
|
-
import { jsx as r, jsxs as m } from "react/jsx-runtime";
|
|
5
|
-
import
|
|
6
|
-
const
|
|
7
|
-
container:
|
|
8
|
-
padding:
|
|
4
|
+
import { jsx as r, jsxs as m, Fragment as ge } from "react/jsx-runtime";
|
|
5
|
+
import ne, { createContext as fe, useState as b, useEffect as U, useCallback as S, useContext as pe } from "react";
|
|
6
|
+
const ye = "_container_u3o0e_1", ve = "_padding_u3o0e_7", X = {
|
|
7
|
+
container: ye,
|
|
8
|
+
padding: ve,
|
|
9
9
|
"maxWidth-sm": "_maxWidth-sm_u3o0e_12",
|
|
10
10
|
"maxWidth-md": "_maxWidth-md_u3o0e_16",
|
|
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
|
+
}, ys = ({
|
|
15
15
|
children: e,
|
|
16
16
|
maxWidth: t = "xl",
|
|
17
17
|
padding: s = !0,
|
|
@@ -22,138 +22,138 @@ const fe = "_container_u3o0e_1", ye = "_padding_u3o0e_7", X = {
|
|
|
22
22
|
className: `${X.container} ${X[`maxWidth-${t}`]} ${s ? X.padding : ""} ${o}`,
|
|
23
23
|
children: e
|
|
24
24
|
}
|
|
25
|
-
),
|
|
26
|
-
topBar:
|
|
27
|
-
content:
|
|
25
|
+
), $e = "_topBar_10g3c_1", be = "_content_10g3c_13", we = "_left_10g3c_23", Ne = "_right_10g3c_30", Ae = "_logo_10g3c_36", P = {
|
|
26
|
+
topBar: $e,
|
|
27
|
+
content: be,
|
|
28
28
|
left: we,
|
|
29
|
-
right:
|
|
30
|
-
logo:
|
|
31
|
-
},
|
|
29
|
+
right: Ne,
|
|
30
|
+
logo: Ae
|
|
31
|
+
}, vs = ({
|
|
32
32
|
logo: e,
|
|
33
33
|
leftContent: t,
|
|
34
34
|
rightContent: s,
|
|
35
35
|
className: o = ""
|
|
36
|
-
}) => /* @__PURE__ */ r("header", { className: `${
|
|
37
|
-
/* @__PURE__ */ m("div", { className:
|
|
38
|
-
e && /* @__PURE__ */ r("div", { className:
|
|
36
|
+
}) => /* @__PURE__ */ r("header", { className: `${P.topBar} ${o}`, children: /* @__PURE__ */ m("div", { className: P.content, children: [
|
|
37
|
+
/* @__PURE__ */ m("div", { className: P.left, children: [
|
|
38
|
+
e && /* @__PURE__ */ r("div", { className: P.logo, children: e }),
|
|
39
39
|
t
|
|
40
40
|
] }),
|
|
41
|
-
/* @__PURE__ */ r("div", { className:
|
|
42
|
-
] }) }), Se = "_footer_zjuj8_1",
|
|
41
|
+
/* @__PURE__ */ r("div", { className: P.right, children: s })
|
|
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
|
-
content:
|
|
45
|
-
defaultContent:
|
|
46
|
-
copyright:
|
|
47
|
-
disclaimer:
|
|
48
|
-
},
|
|
49
|
-
/* @__PURE__ */ m("p", { className:
|
|
44
|
+
content: xe,
|
|
45
|
+
defaultContent: Te,
|
|
46
|
+
copyright: Ce,
|
|
47
|
+
disclaimer: ke
|
|
48
|
+
}, $s = ({ children: e, className: t = "" }) => /* @__PURE__ */ r("footer", { className: `${B.footer} ${t}`, children: /* @__PURE__ */ r("div", { className: B.content, children: e || /* @__PURE__ */ m("div", { className: B.defaultContent, children: [
|
|
49
|
+
/* @__PURE__ */ m("p", { className: B.copyright, children: [
|
|
50
50
|
"© ",
|
|
51
51
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
52
52
|
" The Astrogator's Table. All rights reserved."
|
|
53
53
|
] }),
|
|
54
|
-
/* @__PURE__ */ r("p", { className:
|
|
55
|
-
] }) }) }),
|
|
56
|
-
button:
|
|
57
|
-
sm:
|
|
58
|
-
md:
|
|
59
|
-
lg:
|
|
60
|
-
primary:
|
|
61
|
-
secondary:
|
|
62
|
-
outline:
|
|
54
|
+
/* @__PURE__ */ r("p", { className: B.disclaimer, children: "Star Wars: Galaxy of Heroes is a trademark of Electronic Arts Inc." })
|
|
55
|
+
] }) }) }), Ee = "_button_159ms_1", We = "_sm_159ms_22", Ie = "_md_159ms_28", Le = "_lg_159ms_34", qe = "_primary_159ms_41", Re = "_secondary_159ms_55", Pe = "_outline_159ms_69", Be = "_ghost_159ms_80", Ue = "_danger_159ms_89", je = "_fullWidth_159ms_100", Fe = "_loading_159ms_105", De = "_loadingSpinner_159ms_110", Oe = "_spinner_159ms_116", ze = "_spin_159ms_116", Me = "_loadingText_159ms_131", x = {
|
|
56
|
+
button: Ee,
|
|
57
|
+
sm: We,
|
|
58
|
+
md: Ie,
|
|
59
|
+
lg: Le,
|
|
60
|
+
primary: qe,
|
|
61
|
+
secondary: Re,
|
|
62
|
+
outline: Pe,
|
|
63
63
|
ghost: Be,
|
|
64
|
-
danger:
|
|
65
|
-
fullWidth:
|
|
66
|
-
loading:
|
|
64
|
+
danger: Ue,
|
|
65
|
+
fullWidth: je,
|
|
66
|
+
loading: Fe,
|
|
67
67
|
loadingSpinner: De,
|
|
68
|
-
spinner:
|
|
68
|
+
spinner: Oe,
|
|
69
69
|
spin: ze,
|
|
70
|
-
loadingText:
|
|
71
|
-
},
|
|
70
|
+
loadingText: Me
|
|
71
|
+
}, z = ({
|
|
72
72
|
children: e,
|
|
73
73
|
variant: t = "primary",
|
|
74
74
|
size: s = "md",
|
|
75
75
|
fullWidth: o = !1,
|
|
76
76
|
loading: _ = !1,
|
|
77
|
-
disabled:
|
|
77
|
+
disabled: g = !1,
|
|
78
78
|
className: c = "",
|
|
79
79
|
...l
|
|
80
80
|
}) => /* @__PURE__ */ r(
|
|
81
81
|
"button",
|
|
82
82
|
{
|
|
83
|
-
className: `${
|
|
84
|
-
disabled:
|
|
83
|
+
className: `${x.button} ${x[t]} ${x[s]} ${o ? x.fullWidth : ""} ${_ ? x.loading : ""} ${c}`,
|
|
84
|
+
disabled: g || _,
|
|
85
85
|
...l,
|
|
86
|
-
children: _ ? /* @__PURE__ */ m("span", { className:
|
|
87
|
-
/* @__PURE__ */ r("span", { className:
|
|
88
|
-
/* @__PURE__ */ r("span", { className:
|
|
86
|
+
children: _ ? /* @__PURE__ */ m("span", { className: x.loadingSpinner, children: [
|
|
87
|
+
/* @__PURE__ */ r("span", { className: x.spinner }),
|
|
88
|
+
/* @__PURE__ */ r("span", { className: x.loadingText, children: e })
|
|
89
89
|
] }) : e
|
|
90
90
|
}
|
|
91
|
-
),
|
|
92
|
-
inputWrapper:
|
|
93
|
-
fullWidth:
|
|
94
|
-
label:
|
|
95
|
-
required:
|
|
96
|
-
input:
|
|
97
|
-
error:
|
|
98
|
-
errorText:
|
|
99
|
-
helperText:
|
|
100
|
-
}, ae =
|
|
91
|
+
), Je = "_inputWrapper_15t4g_1", He = "_fullWidth_15t4g_7", Ye = "_label_15t4g_11", Ge = "_required_15t4g_20", Ke = "_input_15t4g_1", Ve = "_error_15t4g_55", Qe = "_errorText_15t4g_63", Xe = "_helperText_15t4g_68", T = {
|
|
92
|
+
inputWrapper: Je,
|
|
93
|
+
fullWidth: He,
|
|
94
|
+
label: Ye,
|
|
95
|
+
required: Ge,
|
|
96
|
+
input: Ke,
|
|
97
|
+
error: Ve,
|
|
98
|
+
errorText: Qe,
|
|
99
|
+
helperText: Xe
|
|
100
|
+
}, ae = ne.forwardRef(
|
|
101
101
|
({
|
|
102
102
|
label: e,
|
|
103
103
|
error: t,
|
|
104
104
|
helperText: s,
|
|
105
105
|
fullWidth: o = !1,
|
|
106
106
|
className: _ = "",
|
|
107
|
-
id:
|
|
107
|
+
id: g,
|
|
108
108
|
...c
|
|
109
109
|
}, l) => {
|
|
110
|
-
const i =
|
|
111
|
-
return /* @__PURE__ */ m("div", { className: `${
|
|
112
|
-
e && /* @__PURE__ */ m("label", { htmlFor: i, className:
|
|
110
|
+
const i = g || `input-${Math.random().toString(36).substr(2, 9)}`, h = !!t;
|
|
111
|
+
return /* @__PURE__ */ m("div", { className: `${T.inputWrapper} ${o ? T.fullWidth : ""} ${_}`, children: [
|
|
112
|
+
e && /* @__PURE__ */ m("label", { htmlFor: i, className: T.label, children: [
|
|
113
113
|
e,
|
|
114
|
-
c.required && /* @__PURE__ */ r("span", { className:
|
|
114
|
+
c.required && /* @__PURE__ */ r("span", { className: T.required, children: "*" })
|
|
115
115
|
] }),
|
|
116
116
|
/* @__PURE__ */ r(
|
|
117
117
|
"input",
|
|
118
118
|
{
|
|
119
119
|
ref: l,
|
|
120
120
|
id: i,
|
|
121
|
-
className: `${
|
|
121
|
+
className: `${T.input} ${h ? T.error : ""}`,
|
|
122
122
|
...c
|
|
123
123
|
}
|
|
124
124
|
),
|
|
125
|
-
t && /* @__PURE__ */ r("span", { className:
|
|
126
|
-
s && !t && /* @__PURE__ */ r("span", { className:
|
|
125
|
+
t && /* @__PURE__ */ r("span", { className: T.errorText, children: t }),
|
|
126
|
+
s && !t && /* @__PURE__ */ r("span", { className: T.helperText, children: s })
|
|
127
127
|
] });
|
|
128
128
|
}
|
|
129
129
|
);
|
|
130
130
|
ae.displayName = "Input";
|
|
131
|
-
const
|
|
132
|
-
selectWrapper:
|
|
133
|
-
fullWidth:
|
|
134
|
-
label:
|
|
135
|
-
required:
|
|
136
|
-
selectContainer:
|
|
137
|
-
select:
|
|
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", nt = "_error_ir4bq_63", at = "_arrow_ir4bq_71", lt = "_errorText_ir4bq_81", ct = "_helperText_ir4bq_86", w = {
|
|
132
|
+
selectWrapper: Ze,
|
|
133
|
+
fullWidth: et,
|
|
134
|
+
label: tt,
|
|
135
|
+
required: st,
|
|
136
|
+
selectContainer: ot,
|
|
137
|
+
select: rt,
|
|
138
138
|
error: nt,
|
|
139
|
-
arrow:
|
|
140
|
-
errorText:
|
|
141
|
-
helperText:
|
|
142
|
-
}, le =
|
|
139
|
+
arrow: at,
|
|
140
|
+
errorText: lt,
|
|
141
|
+
helperText: ct
|
|
142
|
+
}, le = ne.forwardRef(
|
|
143
143
|
({
|
|
144
144
|
label: e,
|
|
145
145
|
error: t,
|
|
146
146
|
helperText: s,
|
|
147
147
|
options: o,
|
|
148
148
|
placeholder: _,
|
|
149
|
-
fullWidth:
|
|
149
|
+
fullWidth: g = !1,
|
|
150
150
|
className: c = "",
|
|
151
151
|
id: l,
|
|
152
152
|
...i
|
|
153
|
-
},
|
|
154
|
-
const
|
|
155
|
-
return /* @__PURE__ */ m("div", { className: `${w.selectWrapper} ${
|
|
156
|
-
e && /* @__PURE__ */ m("label", { htmlFor:
|
|
153
|
+
}, h) => {
|
|
154
|
+
const p = l || `select-${Math.random().toString(36).substr(2, 9)}`, N = !!t;
|
|
155
|
+
return /* @__PURE__ */ m("div", { className: `${w.selectWrapper} ${g ? w.fullWidth : ""} ${c}`, children: [
|
|
156
|
+
e && /* @__PURE__ */ m("label", { htmlFor: p, className: w.label, children: [
|
|
157
157
|
e,
|
|
158
158
|
i.required && /* @__PURE__ */ r("span", { className: w.required, children: "*" })
|
|
159
159
|
] }),
|
|
@@ -161,20 +161,20 @@ const Xe = "_selectWrapper_ir4bq_1", Ze = "_fullWidth_ir4bq_7", et = "_label_ir4
|
|
|
161
161
|
/* @__PURE__ */ m(
|
|
162
162
|
"select",
|
|
163
163
|
{
|
|
164
|
-
ref:
|
|
165
|
-
id:
|
|
166
|
-
className: `${w.select} ${
|
|
164
|
+
ref: h,
|
|
165
|
+
id: p,
|
|
166
|
+
className: `${w.select} ${N ? w.error : ""}`,
|
|
167
167
|
...i,
|
|
168
168
|
children: [
|
|
169
169
|
_ && /* @__PURE__ */ r("option", { value: "", disabled: !0, children: _ }),
|
|
170
|
-
o && o.map((
|
|
170
|
+
o && o.map((f) => /* @__PURE__ */ r(
|
|
171
171
|
"option",
|
|
172
172
|
{
|
|
173
|
-
value:
|
|
174
|
-
disabled:
|
|
175
|
-
children:
|
|
173
|
+
value: f.value,
|
|
174
|
+
disabled: f.disabled,
|
|
175
|
+
children: f.label
|
|
176
176
|
},
|
|
177
|
-
|
|
177
|
+
f.value
|
|
178
178
|
)),
|
|
179
179
|
!o && i.children
|
|
180
180
|
]
|
|
@@ -188,20 +188,20 @@ const Xe = "_selectWrapper_ir4bq_1", Ze = "_fullWidth_ir4bq_7", et = "_label_ir4
|
|
|
188
188
|
}
|
|
189
189
|
);
|
|
190
190
|
le.displayName = "Select";
|
|
191
|
-
const te = "astrogators_access_token", se = "astrogators_refresh_token", ce = () => localStorage.getItem(te),
|
|
191
|
+
const te = "astrogators_access_token", se = "astrogators_refresh_token", ce = () => localStorage.getItem(te), it = (e) => {
|
|
192
192
|
localStorage.setItem(te, e);
|
|
193
|
-
},
|
|
193
|
+
}, dt = () => {
|
|
194
194
|
localStorage.removeItem(te);
|
|
195
|
-
},
|
|
195
|
+
}, _t = () => localStorage.getItem(se), mt = (e) => {
|
|
196
196
|
localStorage.setItem(se, e);
|
|
197
197
|
}, ut = () => {
|
|
198
198
|
localStorage.removeItem(se);
|
|
199
199
|
}, ie = (e, t) => {
|
|
200
|
-
|
|
200
|
+
it(e), mt(t);
|
|
201
201
|
}, ee = () => {
|
|
202
|
-
|
|
203
|
-
},
|
|
204
|
-
class
|
|
202
|
+
dt(), ut();
|
|
203
|
+
}, ht = () => !!ce();
|
|
204
|
+
class gt {
|
|
205
205
|
constructor(t) {
|
|
206
206
|
R(this, "baseURL");
|
|
207
207
|
R(this, "onUnauthorized");
|
|
@@ -211,7 +211,7 @@ class ht {
|
|
|
211
211
|
}
|
|
212
212
|
async refreshAccessToken() {
|
|
213
213
|
var _;
|
|
214
|
-
const t =
|
|
214
|
+
const t = _t();
|
|
215
215
|
if (!t)
|
|
216
216
|
throw new Error("No refresh token available");
|
|
217
217
|
const s = await fetch(`${this.baseURL}/api/v1/auth/refresh-token`, {
|
|
@@ -232,8 +232,8 @@ class ht {
|
|
|
232
232
|
...s.headers
|
|
233
233
|
};
|
|
234
234
|
o && (_.Authorization = `Bearer ${o}`);
|
|
235
|
-
const
|
|
236
|
-
let c = await fetch(
|
|
235
|
+
const g = `${this.baseURL}${t}`;
|
|
236
|
+
let c = await fetch(g, {
|
|
237
237
|
...s,
|
|
238
238
|
headers: _
|
|
239
239
|
});
|
|
@@ -243,7 +243,7 @@ class ht {
|
|
|
243
243
|
}));
|
|
244
244
|
try {
|
|
245
245
|
const l = await this.refreshPromise;
|
|
246
|
-
_.Authorization = `Bearer ${l}`, c = await fetch(
|
|
246
|
+
_.Authorization = `Bearer ${l}`, c = await fetch(g, {
|
|
247
247
|
...s,
|
|
248
248
|
headers: _
|
|
249
249
|
});
|
|
@@ -259,8 +259,8 @@ class ht {
|
|
|
259
259
|
try {
|
|
260
260
|
const i = await c.json();
|
|
261
261
|
if (c.status === 422 && Array.isArray(i.detail)) {
|
|
262
|
-
const
|
|
263
|
-
l.message =
|
|
262
|
+
const h = i.detail.map((p) => p.msg || "Validation error").join(", ");
|
|
263
|
+
l.message = h;
|
|
264
264
|
} else typeof i.detail == "string" ? l.message = i.detail : i.message && (l.message = i.message);
|
|
265
265
|
l.detail = i.detail;
|
|
266
266
|
} catch {
|
|
@@ -297,10 +297,10 @@ class ht {
|
|
|
297
297
|
return this.request(t, { ...s, method: "DELETE" });
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
-
let
|
|
301
|
-
const
|
|
302
|
-
|
|
303
|
-
}, j = "astrogators_ally_codes", H = "astrogators_selected_ally_code",
|
|
300
|
+
let y;
|
|
301
|
+
const ft = (e) => {
|
|
302
|
+
y = new gt(e);
|
|
303
|
+
}, j = "astrogators_ally_codes", H = "astrogators_selected_ally_code", A = () => {
|
|
304
304
|
try {
|
|
305
305
|
const e = localStorage.getItem(j);
|
|
306
306
|
return e ? JSON.parse(e) : [];
|
|
@@ -309,55 +309,55 @@ const gt = (e) => {
|
|
|
309
309
|
}
|
|
310
310
|
}, pt = (e) => {
|
|
311
311
|
try {
|
|
312
|
-
const t =
|
|
312
|
+
const t = A();
|
|
313
313
|
if (t.some((o) => o.ally_code === e.ally_code))
|
|
314
314
|
return;
|
|
315
315
|
t.push(e), localStorage.setItem(j, JSON.stringify(t));
|
|
316
316
|
} catch (t) {
|
|
317
317
|
console.error("Failed to save ally code to localStorage:", t);
|
|
318
318
|
}
|
|
319
|
-
},
|
|
319
|
+
}, yt = (e) => {
|
|
320
320
|
try {
|
|
321
|
-
const s =
|
|
321
|
+
const s = A().filter((o) => o.ally_code !== e);
|
|
322
322
|
localStorage.setItem(j, JSON.stringify(s));
|
|
323
323
|
} catch (t) {
|
|
324
324
|
console.error("Failed to remove ally code from localStorage:", t);
|
|
325
325
|
}
|
|
326
|
-
},
|
|
326
|
+
}, re = (e) => {
|
|
327
327
|
try {
|
|
328
|
-
const s =
|
|
328
|
+
const s = A().map(
|
|
329
329
|
(o) => o.ally_code === e ? { ...o, last_used_at: (/* @__PURE__ */ new Date()).toISOString() } : o
|
|
330
330
|
);
|
|
331
331
|
localStorage.setItem(j, JSON.stringify(s));
|
|
332
332
|
} catch (t) {
|
|
333
333
|
console.error("Failed to update ally code last used:", t);
|
|
334
334
|
}
|
|
335
|
-
},
|
|
335
|
+
}, vt = () => localStorage.getItem(H), $t = (e) => {
|
|
336
336
|
e ? localStorage.setItem(H, e) : localStorage.removeItem(H);
|
|
337
|
-
},
|
|
337
|
+
}, bt = () => {
|
|
338
338
|
localStorage.removeItem(j), localStorage.removeItem(H);
|
|
339
|
-
}, de =
|
|
340
|
-
const [s, o] =
|
|
339
|
+
}, de = fe(void 0), bs = ({ children: e, apiBaseUrl: t }) => {
|
|
340
|
+
const [s, 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
|
U(() => {
|
|
345
|
-
|
|
345
|
+
ft({
|
|
346
346
|
baseURL: t
|
|
347
347
|
});
|
|
348
348
|
}, [t]);
|
|
349
349
|
const W = S(async () => {
|
|
350
|
-
if (!
|
|
351
|
-
o(null),
|
|
350
|
+
if (!ht()) {
|
|
351
|
+
o(null), g(!1);
|
|
352
352
|
return;
|
|
353
353
|
}
|
|
354
354
|
try {
|
|
355
|
-
const n = await
|
|
355
|
+
const n = await y.get("/api/v1/users/me");
|
|
356
356
|
o(n);
|
|
357
357
|
} catch (n) {
|
|
358
358
|
console.error("Failed to fetch user:", n), o(null), ee();
|
|
359
359
|
} finally {
|
|
360
|
-
|
|
360
|
+
g(!1);
|
|
361
361
|
}
|
|
362
362
|
}, []);
|
|
363
363
|
U(() => {
|
|
@@ -365,26 +365,26 @@ const gt = (e) => {
|
|
|
365
365
|
}, [W]);
|
|
366
366
|
const I = async (n) => {
|
|
367
367
|
try {
|
|
368
|
-
const a = await
|
|
368
|
+
const a = await y.post("/api/v1/auth/login", n);
|
|
369
369
|
ie(a.access_token, a.refresh_token);
|
|
370
|
-
const u = await
|
|
370
|
+
const u = await y.get("/api/v1/users/me");
|
|
371
371
|
o(u);
|
|
372
372
|
} catch (a) {
|
|
373
373
|
throw console.error("Login failed:", a), a;
|
|
374
374
|
}
|
|
375
|
-
},
|
|
375
|
+
}, F = async (n) => {
|
|
376
376
|
try {
|
|
377
|
-
await
|
|
377
|
+
await y.post("/api/v1/auth/register", n);
|
|
378
378
|
} catch (a) {
|
|
379
379
|
throw console.error("Registration failed:", a), a;
|
|
380
380
|
}
|
|
381
|
-
},
|
|
382
|
-
ee(), o(null), l([]),
|
|
381
|
+
}, D = () => {
|
|
382
|
+
ee(), o(null), l([]), h(null), k({ show: !1, localStorageCodes: [] });
|
|
383
383
|
}, Y = async () => {
|
|
384
384
|
await W();
|
|
385
385
|
}, G = async (n) => {
|
|
386
386
|
try {
|
|
387
|
-
return (await
|
|
387
|
+
return (await y.post(
|
|
388
388
|
"/api/v1/auth/forgot-password",
|
|
389
389
|
n
|
|
390
390
|
)).message;
|
|
@@ -393,7 +393,7 @@ const gt = (e) => {
|
|
|
393
393
|
}
|
|
394
394
|
}, K = async (n) => {
|
|
395
395
|
try {
|
|
396
|
-
return (await
|
|
396
|
+
return (await y.post(
|
|
397
397
|
"/api/v1/auth/reset-password",
|
|
398
398
|
n
|
|
399
399
|
)).message;
|
|
@@ -402,7 +402,7 @@ const gt = (e) => {
|
|
|
402
402
|
}
|
|
403
403
|
}, V = async (n) => {
|
|
404
404
|
try {
|
|
405
|
-
return (await
|
|
405
|
+
return (await y.post(
|
|
406
406
|
"/api/v1/auth/resend-verification",
|
|
407
407
|
n
|
|
408
408
|
)).message;
|
|
@@ -410,39 +410,39 @@ const gt = (e) => {
|
|
|
410
410
|
throw console.error("Resend verification failed:", a), a;
|
|
411
411
|
}
|
|
412
412
|
}, d = S(async () => {
|
|
413
|
-
|
|
413
|
+
N(!0);
|
|
414
414
|
try {
|
|
415
415
|
if (s) {
|
|
416
|
-
const a = await
|
|
416
|
+
const a = await y.get("/api/v1/users/me/ally-codes");
|
|
417
417
|
l(a.ally_codes);
|
|
418
|
-
const u =
|
|
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 a =
|
|
424
|
+
const a = A();
|
|
425
425
|
l(a);
|
|
426
426
|
}
|
|
427
|
-
const n =
|
|
428
|
-
|
|
427
|
+
const n = vt();
|
|
428
|
+
h(n);
|
|
429
429
|
} catch (n) {
|
|
430
430
|
console.error("Failed to fetch ally codes:", n), l([]);
|
|
431
431
|
} finally {
|
|
432
|
-
|
|
432
|
+
N(!1);
|
|
433
433
|
}
|
|
434
|
-
}, [s]),
|
|
434
|
+
}, [s]), v = S(async (n) => {
|
|
435
435
|
var a;
|
|
436
436
|
if (!/^\d{9}$/.test(n))
|
|
437
437
|
throw new Error("Ally code must be exactly 9 digits");
|
|
438
438
|
if (s) {
|
|
439
|
-
const u = await
|
|
439
|
+
const u = await y.post(
|
|
440
440
|
"/api/v1/users/me/ally-codes",
|
|
441
441
|
{ ally_code: n }
|
|
442
442
|
);
|
|
443
|
-
l((q) => [u, ...q]), c.length === 0 &&
|
|
443
|
+
l((q) => [u, ...q]), c.length === 0 && O(n);
|
|
444
444
|
} else {
|
|
445
|
-
const u = await
|
|
445
|
+
const u = await y.get(`/api/v1/player-data/player/${n}`);
|
|
446
446
|
if (!u)
|
|
447
447
|
throw new Error("Invalid ally code - player not found");
|
|
448
448
|
const q = {
|
|
@@ -450,40 +450,40 @@ const gt = (e) => {
|
|
|
450
450
|
player_name: ((a = u == null ? void 0 : u.data) == null ? void 0 : a.name) || null,
|
|
451
451
|
last_used_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
452
452
|
};
|
|
453
|
-
pt(q), l(
|
|
453
|
+
pt(q), l(A()), c.length === 0 && O(n);
|
|
454
454
|
}
|
|
455
455
|
}, [s, c.length]), L = S(async (n) => {
|
|
456
|
-
s && typeof n == "number" ? (await
|
|
457
|
-
}, [s, i]),
|
|
458
|
-
if (
|
|
456
|
+
s && typeof n == "number" ? (await y.delete(`/api/v1/users/me/ally-codes/${n}`), l((a) => a.filter((u) => "id" in u && u.id !== n))) : !s && typeof n == "string" && (yt(n), l(A()), i === n && O(null));
|
|
457
|
+
}, [s, i]), O = S((n) => {
|
|
458
|
+
if (h(n), $t(n), n && s) {
|
|
459
459
|
const a = c.find((u) => "ally_code" in u && u.ally_code === n);
|
|
460
460
|
a && "id" in a && oe(a.id);
|
|
461
|
-
} else n && !s &&
|
|
461
|
+
} else n && !s && re(n);
|
|
462
462
|
}, [s, c]), oe = S(async (n) => {
|
|
463
|
-
s && typeof n == "number" ? (await
|
|
463
|
+
s && typeof n == "number" ? (await y.put(`/api/v1/users/me/ally-codes/${n}/use`, {}), await d()) : !s && typeof n == "string" && (re(n), l(A()));
|
|
464
464
|
}, [s, d]), Q = S(() => {
|
|
465
465
|
k({ show: !1, localStorageCodes: [] });
|
|
466
466
|
}, []), _e = S(async () => {
|
|
467
467
|
if (!s) return;
|
|
468
|
-
const n =
|
|
468
|
+
const n = A();
|
|
469
469
|
for (const a of n)
|
|
470
470
|
try {
|
|
471
|
-
await
|
|
471
|
+
await v(a.ally_code);
|
|
472
472
|
} catch (u) {
|
|
473
473
|
console.error(`Failed to migrate ally code ${a.ally_code}:`, u);
|
|
474
474
|
}
|
|
475
|
-
|
|
476
|
-
}, [s,
|
|
475
|
+
bt(), Q();
|
|
476
|
+
}, [s, v, Q]);
|
|
477
477
|
U(() => {
|
|
478
478
|
d();
|
|
479
479
|
}, [d]);
|
|
480
|
-
const
|
|
480
|
+
const me = {
|
|
481
481
|
user: s,
|
|
482
482
|
isAuthenticated: !!s,
|
|
483
483
|
isLoading: _,
|
|
484
484
|
login: I,
|
|
485
|
-
register:
|
|
486
|
-
logout:
|
|
485
|
+
register: F,
|
|
486
|
+
logout: D,
|
|
487
487
|
refreshUser: Y,
|
|
488
488
|
forgotPassword: G,
|
|
489
489
|
resetPassword: K,
|
|
@@ -491,35 +491,35 @@ const gt = (e) => {
|
|
|
491
491
|
// Ally code values
|
|
492
492
|
allyCodes: c,
|
|
493
493
|
selectedAllyCode: i,
|
|
494
|
-
isLoadingAllyCodes:
|
|
494
|
+
isLoadingAllyCodes: p,
|
|
495
495
|
fetchAllyCodes: d,
|
|
496
|
-
addAllyCode:
|
|
496
|
+
addAllyCode: v,
|
|
497
497
|
removeAllyCode: L,
|
|
498
|
-
selectAllyCode:
|
|
498
|
+
selectAllyCode: O,
|
|
499
499
|
updateAllyCodeLastUsed: oe,
|
|
500
|
-
migrationPrompt:
|
|
500
|
+
migrationPrompt: f,
|
|
501
501
|
dismissMigrationPrompt: Q,
|
|
502
502
|
migrateLocalStorageCodes: _e
|
|
503
503
|
};
|
|
504
|
-
return /* @__PURE__ */ r(de.Provider, { value:
|
|
504
|
+
return /* @__PURE__ */ r(de.Provider, { value: me, children: e });
|
|
505
505
|
}, wt = () => {
|
|
506
506
|
const e = pe(de);
|
|
507
507
|
if (e === void 0)
|
|
508
508
|
throw new Error("useAuth must be used within an AuthProvider");
|
|
509
509
|
return e;
|
|
510
|
-
}, M = (e) => !e || e.length !== 9 ? e : `${e.slice(0, 3)}-${e.slice(3, 6)}-${e.slice(6, 9)}`, ws = (e) => e.replace(/-/g, ""),
|
|
511
|
-
allyCodeDropdown:
|
|
512
|
-
select:
|
|
510
|
+
}, M = (e) => !e || e.length !== 9 ? e : `${e.slice(0, 3)}-${e.slice(3, 6)}-${e.slice(6, 9)}`, ws = (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
|
+
allyCodeDropdown: Nt,
|
|
512
|
+
select: At,
|
|
513
513
|
manageButton: St,
|
|
514
|
-
managePanel:
|
|
515
|
-
addSection:
|
|
516
|
-
addInputGroup:
|
|
517
|
-
error:
|
|
518
|
-
success:
|
|
519
|
-
codesList:
|
|
520
|
-
codeItem:
|
|
521
|
-
doneButton:
|
|
522
|
-
},
|
|
514
|
+
managePanel: xt,
|
|
515
|
+
addSection: Tt,
|
|
516
|
+
addInputGroup: Ct,
|
|
517
|
+
error: kt,
|
|
518
|
+
success: Et,
|
|
519
|
+
codesList: Wt,
|
|
520
|
+
codeItem: It,
|
|
521
|
+
doneButton: Lt
|
|
522
|
+
}, Ns = ({
|
|
523
523
|
onAllyCodeSelected: e,
|
|
524
524
|
className: t = ""
|
|
525
525
|
}) => {
|
|
@@ -527,36 +527,36 @@ const gt = (e) => {
|
|
|
527
527
|
allyCodes: s,
|
|
528
528
|
selectedAllyCode: o,
|
|
529
529
|
selectAllyCode: _,
|
|
530
|
-
removeAllyCode:
|
|
530
|
+
removeAllyCode: g,
|
|
531
531
|
addAllyCode: c,
|
|
532
532
|
isLoadingAllyCodes: l
|
|
533
|
-
} = wt(), [i,
|
|
533
|
+
} = wt(), [i, h] = b(!1), [p, N] = b(""), [f, k] = b(""), [W, I] = b(""), [F, D] = b(!1), Y = s.map((d) => ({
|
|
534
534
|
value: d.ally_code,
|
|
535
535
|
label: d.player_name ? `${d.player_name} (${M(d.ally_code)})` : M(d.ally_code)
|
|
536
536
|
})), G = (d) => {
|
|
537
|
-
const
|
|
538
|
-
_(
|
|
537
|
+
const v = d.target.value || null;
|
|
538
|
+
_(v), e == null || e(v);
|
|
539
539
|
}, K = async (d) => {
|
|
540
|
-
const
|
|
541
|
-
if (
|
|
542
|
-
const L = "id" in
|
|
543
|
-
await
|
|
540
|
+
const v = s.find((L) => L.ally_code === d);
|
|
541
|
+
if (v) {
|
|
542
|
+
const L = "id" in v ? v.id : v.ally_code;
|
|
543
|
+
await g(L);
|
|
544
544
|
}
|
|
545
545
|
}, V = async () => {
|
|
546
|
-
if (k(""), I(""), !/^\d{9}$/.test(
|
|
546
|
+
if (k(""), I(""), !/^\d{9}$/.test(p)) {
|
|
547
547
|
k("Ally code must be exactly 9 digits");
|
|
548
548
|
return;
|
|
549
549
|
}
|
|
550
|
-
|
|
550
|
+
D(!0);
|
|
551
551
|
try {
|
|
552
|
-
await c(
|
|
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
|
+
D(!1);
|
|
557
557
|
}
|
|
558
558
|
};
|
|
559
|
-
return s.length === 0 ? null : /* @__PURE__ */ m("div", { className: `${
|
|
559
|
+
return s.length === 0 ? null : /* @__PURE__ */ m("div", { className: `${$.allyCodeDropdown} ${t}`, children: [
|
|
560
560
|
/* @__PURE__ */ r(
|
|
561
561
|
le,
|
|
562
562
|
{
|
|
@@ -565,42 +565,42 @@ const gt = (e) => {
|
|
|
565
565
|
onChange: G,
|
|
566
566
|
placeholder: "Select ally code",
|
|
567
567
|
disabled: l,
|
|
568
|
-
className:
|
|
568
|
+
className: $.select
|
|
569
569
|
}
|
|
570
570
|
),
|
|
571
|
-
i && /* @__PURE__ */ m("div", { className:
|
|
571
|
+
i && /* @__PURE__ */ m("div", { className: $.managePanel, children: [
|
|
572
572
|
/* @__PURE__ */ r("h4", { children: "Manage Ally Codes" }),
|
|
573
|
-
/* @__PURE__ */ m("div", { className:
|
|
574
|
-
/* @__PURE__ */ m("div", { className:
|
|
573
|
+
/* @__PURE__ */ m("div", { className: $.addSection, children: [
|
|
574
|
+
/* @__PURE__ */ m("div", { className: $.addInputGroup, children: [
|
|
575
575
|
/* @__PURE__ */ r(
|
|
576
576
|
ae,
|
|
577
577
|
{
|
|
578
578
|
type: "text",
|
|
579
579
|
placeholder: "9-digit ally code",
|
|
580
|
-
value:
|
|
581
|
-
onChange: (d) =>
|
|
582
|
-
disabled:
|
|
580
|
+
value: p,
|
|
581
|
+
onChange: (d) => N(d.target.value.replace(/\D/g, "").slice(0, 9)),
|
|
582
|
+
disabled: F
|
|
583
583
|
}
|
|
584
584
|
),
|
|
585
585
|
/* @__PURE__ */ r(
|
|
586
|
-
|
|
586
|
+
z,
|
|
587
587
|
{
|
|
588
588
|
variant: "primary",
|
|
589
589
|
size: "sm",
|
|
590
590
|
onClick: V,
|
|
591
|
-
loading:
|
|
592
|
-
disabled:
|
|
591
|
+
loading: F,
|
|
592
|
+
disabled: p.length !== 9,
|
|
593
593
|
children: "Add"
|
|
594
594
|
}
|
|
595
595
|
)
|
|
596
596
|
] }),
|
|
597
|
-
|
|
598
|
-
W && /* @__PURE__ */ r("div", { className:
|
|
597
|
+
f && /* @__PURE__ */ r("div", { className: $.error, children: f }),
|
|
598
|
+
W && /* @__PURE__ */ r("div", { className: $.success, children: W })
|
|
599
599
|
] }),
|
|
600
|
-
/* @__PURE__ */ r("div", { className:
|
|
600
|
+
/* @__PURE__ */ r("div", { className: $.codesList, children: s.map((d) => /* @__PURE__ */ m("div", { className: $.codeItem, children: [
|
|
601
601
|
/* @__PURE__ */ r("span", { children: d.player_name ? `${d.player_name} (${M(d.ally_code)})` : M(d.ally_code) }),
|
|
602
602
|
/* @__PURE__ */ r(
|
|
603
|
-
|
|
603
|
+
z,
|
|
604
604
|
{
|
|
605
605
|
variant: "ghost",
|
|
606
606
|
size: "sm",
|
|
@@ -610,107 +610,119 @@ const gt = (e) => {
|
|
|
610
610
|
)
|
|
611
611
|
] }, d.ally_code)) }),
|
|
612
612
|
/* @__PURE__ */ r(
|
|
613
|
-
|
|
613
|
+
z,
|
|
614
614
|
{
|
|
615
615
|
variant: "secondary",
|
|
616
616
|
size: "sm",
|
|
617
|
-
onClick: () =>
|
|
618
|
-
className:
|
|
617
|
+
onClick: () => h(!1),
|
|
618
|
+
className: $.doneButton,
|
|
619
619
|
children: "Done"
|
|
620
620
|
}
|
|
621
621
|
)
|
|
622
622
|
] }),
|
|
623
623
|
/* @__PURE__ */ r(
|
|
624
|
-
|
|
624
|
+
z,
|
|
625
625
|
{
|
|
626
626
|
variant: "ghost",
|
|
627
627
|
size: "sm",
|
|
628
|
-
onClick: () =>
|
|
629
|
-
className:
|
|
628
|
+
onClick: () => h(!i),
|
|
629
|
+
className: $.manageButton,
|
|
630
630
|
children: "Manage"
|
|
631
631
|
}
|
|
632
632
|
)
|
|
633
633
|
] });
|
|
634
|
-
},
|
|
635
|
-
card:
|
|
634
|
+
}, qt = "_card_1n0ll_1", Rt = "_elevated_1n0ll_12", Pt = "_outline_1n0ll_17", Bt = "_hoverable_1n0ll_40", J = {
|
|
635
|
+
card: qt,
|
|
636
636
|
default: "_default_1n0ll_8",
|
|
637
|
-
elevated:
|
|
638
|
-
outline:
|
|
637
|
+
elevated: Rt,
|
|
638
|
+
outline: Pt,
|
|
639
639
|
"padding-none": "_padding-none_1n0ll_23",
|
|
640
640
|
"padding-sm": "_padding-sm_1n0ll_27",
|
|
641
641
|
"padding-md": "_padding-md_1n0ll_31",
|
|
642
642
|
"padding-lg": "_padding-lg_1n0ll_35",
|
|
643
643
|
hoverable: Bt
|
|
644
|
-
},
|
|
644
|
+
}, As = ({
|
|
645
645
|
children: e,
|
|
646
646
|
variant: t = "default",
|
|
647
647
|
chamfered: s = !1,
|
|
648
648
|
chamferSize: o = "md",
|
|
649
649
|
padding: _ = "md",
|
|
650
|
-
hoverable:
|
|
651
|
-
|
|
652
|
-
|
|
650
|
+
hoverable: g = !1,
|
|
651
|
+
showDiagonalBorders: c = !1,
|
|
652
|
+
diagonalBorderColor: l,
|
|
653
|
+
className: i = "",
|
|
654
|
+
onClick: h,
|
|
655
|
+
style: p
|
|
653
656
|
}) => {
|
|
654
|
-
const
|
|
655
|
-
return /* @__PURE__ */
|
|
657
|
+
const N = s ? o === "asymmetric" ? "chamfered-box-asymmetric" : o === "sm" ? "chamfered-box-sm" : o === "lg" ? "chamfered-box-lg" : "chamfered-box" : "", f = l ? { color: l } : void 0;
|
|
658
|
+
return /* @__PURE__ */ m(
|
|
656
659
|
"div",
|
|
657
660
|
{
|
|
658
|
-
className: `${J.card} ${J[t]} ${J[`padding-${_}`]} ${
|
|
659
|
-
onClick:
|
|
660
|
-
role:
|
|
661
|
-
tabIndex:
|
|
662
|
-
|
|
661
|
+
className: `${J.card} ${J[t]} ${J[`padding-${_}`]} ${N} ${g ? J.hoverable : ""} ${i}`,
|
|
662
|
+
onClick: h,
|
|
663
|
+
role: h ? "button" : void 0,
|
|
664
|
+
tabIndex: h ? 0 : void 0,
|
|
665
|
+
style: p,
|
|
666
|
+
children: [
|
|
667
|
+
c && /* @__PURE__ */ m(ge, { children: [
|
|
668
|
+
/* @__PURE__ */ r("div", { className: "chamfered-diagonal-border chamfered-diagonal-tl", style: f }),
|
|
669
|
+
/* @__PURE__ */ r("div", { className: "chamfered-diagonal-border chamfered-diagonal-tr", style: f }),
|
|
670
|
+
/* @__PURE__ */ r("div", { className: "chamfered-diagonal-border chamfered-diagonal-bl", style: f }),
|
|
671
|
+
/* @__PURE__ */ r("div", { className: `chamfered-diagonal-border ${o === "asymmetric" ? "chamfered-diagonal-br-large" : "chamfered-diagonal-br"}`, style: f })
|
|
672
|
+
] }),
|
|
673
|
+
e
|
|
674
|
+
]
|
|
663
675
|
}
|
|
664
676
|
);
|
|
665
|
-
},
|
|
666
|
-
badge:
|
|
667
|
-
sm:
|
|
668
|
-
md:
|
|
677
|
+
}, Ut = "_badge_rk7t5_1", jt = "_sm_rk7t5_11", Ft = "_md_rk7t5_16", Dt = "_lg_rk7t5_21", Ot = "_primary_rk7t5_32", zt = "_secondary_rk7t5_37", Mt = "_success_rk7t5_42", Jt = "_warning_rk7t5_47", Ht = "_error_rk7t5_52", Yt = "_info_rk7t5_57", Z = {
|
|
678
|
+
badge: Ut,
|
|
679
|
+
sm: jt,
|
|
680
|
+
md: Ft,
|
|
669
681
|
lg: Dt,
|
|
670
682
|
default: "_default_rk7t5_27",
|
|
671
|
-
primary:
|
|
683
|
+
primary: Ot,
|
|
672
684
|
secondary: zt,
|
|
673
|
-
success:
|
|
674
|
-
warning:
|
|
675
|
-
error:
|
|
676
|
-
info:
|
|
685
|
+
success: Mt,
|
|
686
|
+
warning: Jt,
|
|
687
|
+
error: Ht,
|
|
688
|
+
info: Yt
|
|
677
689
|
}, Ss = ({
|
|
678
690
|
children: e,
|
|
679
691
|
variant: t = "default",
|
|
680
692
|
size: s = "md",
|
|
681
693
|
className: o = ""
|
|
682
|
-
}) => /* @__PURE__ */ r("span", { className: `${Z.badge} ${Z[t]} ${Z[s]} ${o}`, children: e }),
|
|
683
|
-
overlay:
|
|
684
|
-
fadeIn:
|
|
685
|
-
modal:
|
|
686
|
-
slideUp:
|
|
687
|
-
sm:
|
|
688
|
-
md:
|
|
689
|
-
lg:
|
|
690
|
-
xl:
|
|
691
|
-
header:
|
|
692
|
-
title:
|
|
693
|
-
closeButton:
|
|
694
|
+
}) => /* @__PURE__ */ r("span", { className: `${Z.badge} ${Z[t]} ${Z[s]} ${o}`, children: e }), Gt = "_overlay_1b3yt_1", Kt = "_fadeIn_1b3yt_1", Vt = "_modal_1b3yt_13", Qt = "_slideUp_1b3yt_1", Xt = "_sm_1b3yt_25", Zt = "_md_1b3yt_30", es = "_lg_1b3yt_35", ts = "_xl_1b3yt_40", ss = "_header_1b3yt_45", os = "_title_1b3yt_53", rs = "_closeButton_1b3yt_60", ns = "_content_1b3yt_78", E = {
|
|
695
|
+
overlay: Gt,
|
|
696
|
+
fadeIn: Kt,
|
|
697
|
+
modal: Vt,
|
|
698
|
+
slideUp: Qt,
|
|
699
|
+
sm: Xt,
|
|
700
|
+
md: Zt,
|
|
701
|
+
lg: es,
|
|
702
|
+
xl: ts,
|
|
703
|
+
header: ss,
|
|
704
|
+
title: os,
|
|
705
|
+
closeButton: rs,
|
|
694
706
|
content: ns
|
|
695
|
-
},
|
|
707
|
+
}, xs = ({
|
|
696
708
|
isOpen: e,
|
|
697
709
|
onClose: t,
|
|
698
710
|
title: s,
|
|
699
711
|
children: o,
|
|
700
712
|
size: _ = "md",
|
|
701
|
-
closeOnOverlayClick:
|
|
713
|
+
closeOnOverlayClick: g = !0,
|
|
702
714
|
className: c = ""
|
|
703
715
|
}) => {
|
|
704
716
|
if (U(() => (e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
|
|
705
717
|
document.body.style.overflow = "unset";
|
|
706
718
|
}), [e]), U(() => {
|
|
707
|
-
const i = (
|
|
708
|
-
|
|
719
|
+
const i = (h) => {
|
|
720
|
+
h.key === "Escape" && e && t();
|
|
709
721
|
};
|
|
710
722
|
return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
|
|
711
723
|
}, [e, t]), !e) return null;
|
|
712
724
|
const l = (i) => {
|
|
713
|
-
|
|
725
|
+
g && i.target === i.currentTarget && t();
|
|
714
726
|
};
|
|
715
727
|
return /* @__PURE__ */ r("div", { className: E.overlay, onClick: l, children: /* @__PURE__ */ m("div", { className: `${E.modal} ${E[_]} ${c}`, role: "dialog", "aria-modal": "true", children: [
|
|
716
728
|
s && /* @__PURE__ */ m("div", { className: E.header, children: [
|
|
@@ -719,58 +731,58 @@ const gt = (e) => {
|
|
|
719
731
|
] }),
|
|
720
732
|
/* @__PURE__ */ r("div", { className: E.content, children: o })
|
|
721
733
|
] }) });
|
|
722
|
-
},
|
|
723
|
-
spinner:
|
|
724
|
-
spin:
|
|
725
|
-
sm:
|
|
726
|
-
md:
|
|
727
|
-
lg:
|
|
728
|
-
dots:
|
|
729
|
-
dot:
|
|
734
|
+
}, as = "_spinner_1uhnh_2", ls = "_spin_1uhnh_2", cs = "_sm_1uhnh_9", is = "_md_1uhnh_15", ds = "_lg_1uhnh_21", _s = "_dots_1uhnh_34", ms = "_dot_1uhnh_34", us = "_bounce_1uhnh_1", hs = "_visuallyHidden_1uhnh_91", C = {
|
|
735
|
+
spinner: as,
|
|
736
|
+
spin: ls,
|
|
737
|
+
sm: cs,
|
|
738
|
+
md: is,
|
|
739
|
+
lg: ds,
|
|
740
|
+
dots: _s,
|
|
741
|
+
dot: ms,
|
|
730
742
|
bounce: us,
|
|
731
|
-
visuallyHidden:
|
|
732
|
-
},
|
|
743
|
+
visuallyHidden: hs
|
|
744
|
+
}, Ts = ({
|
|
733
745
|
size: e = "md",
|
|
734
746
|
variant: t = "spinner",
|
|
735
747
|
className: s = ""
|
|
736
|
-
}) => t === "dots" ? /* @__PURE__ */ m("div", { className: `${
|
|
737
|
-
/* @__PURE__ */ r("span", { className:
|
|
738
|
-
/* @__PURE__ */ r("span", { className:
|
|
739
|
-
/* @__PURE__ */ r("span", { className:
|
|
740
|
-
] }) : /* @__PURE__ */ r("div", { className: `${
|
|
748
|
+
}) => t === "dots" ? /* @__PURE__ */ m("div", { className: `${C.dots} ${C[e]} ${s}`, children: [
|
|
749
|
+
/* @__PURE__ */ r("span", { className: C.dot }),
|
|
750
|
+
/* @__PURE__ */ r("span", { className: C.dot }),
|
|
751
|
+
/* @__PURE__ */ r("span", { className: C.dot })
|
|
752
|
+
] }) : /* @__PURE__ */ r("div", { className: `${C.spinner} ${C[e]} ${s}`, role: "status", children: /* @__PURE__ */ r("span", { className: C.visuallyHidden, children: "Loading..." }) });
|
|
741
753
|
export {
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
754
|
+
Ns as AllyCodeDropdown,
|
|
755
|
+
gt as ApiClient,
|
|
756
|
+
bs as AuthProvider,
|
|
745
757
|
Ss as Badge,
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
758
|
+
z as Button,
|
|
759
|
+
As as Card,
|
|
760
|
+
ys as Container,
|
|
761
|
+
$s as Footer,
|
|
750
762
|
ae as Input,
|
|
751
|
-
|
|
752
|
-
|
|
763
|
+
Ts as Loader,
|
|
764
|
+
xs as Modal,
|
|
753
765
|
le as Select,
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
766
|
+
vs as TopBar,
|
|
767
|
+
y as apiClient,
|
|
768
|
+
bt as clearAllyCodes,
|
|
757
769
|
ee as clearTokens,
|
|
758
770
|
M as formatAllyCode,
|
|
759
771
|
ce as getAccessToken,
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
772
|
+
A as getAllyCodesFromStorage,
|
|
773
|
+
_t as getRefreshToken,
|
|
774
|
+
vt as getSelectedAllyCode,
|
|
775
|
+
ft as initializeApiClient,
|
|
776
|
+
ht as isAuthenticated,
|
|
777
|
+
dt as removeAccessToken,
|
|
778
|
+
yt as removeAllyCodeFromStorage,
|
|
767
779
|
ut as removeRefreshToken,
|
|
768
780
|
pt as saveAllyCodeToStorage,
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
781
|
+
it as setAccessToken,
|
|
782
|
+
mt as setRefreshToken,
|
|
783
|
+
$t as setSelectedAllyCode,
|
|
772
784
|
ie as setTokens,
|
|
773
785
|
ws as unformatAllyCode,
|
|
774
|
-
|
|
786
|
+
re as updateAllyCodeLastUsed,
|
|
775
787
|
wt as useAuth
|
|
776
788
|
};
|
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;--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-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))}.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}.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}._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_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}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "astrogators-shared-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Shared UI components and utilities for Astrogator's Table applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"repository": {
|
|
26
26
|
"type": "git",
|
|
27
|
-
"url": "https://github.com/psytor/astrogators-shared-ui.git"
|
|
27
|
+
"url": "git+https://github.com/psytor/astrogators-shared-ui.git"
|
|
28
28
|
},
|
|
29
29
|
"keywords": [
|
|
30
30
|
"swgoh",
|