@burdenoff/microfe-atheletebridge 2026.827.1 → 2026.829.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/atheletebridge/components/LoadingState.d.ts.map +1 -1
- package/dist/atheletebridge/components/LoadingState.js +39 -32
- package/dist/atheletebridge/components/LoadingState.js.map +1 -1
- package/dist/atheletebridge/components/TeamCard.d.ts.map +1 -1
- package/dist/atheletebridge/components/TeamCard.js +45 -49
- package/dist/atheletebridge/components/TeamCard.js.map +1 -1
- package/dist/atheletebridge/pages/DashboardPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/DashboardPage.js +56 -24
- package/dist/atheletebridge/pages/DashboardPage.js.map +1 -1
- package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.js +58 -56
- package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.js.map +1 -1
- package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js +110 -106
- package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js.map +1 -1
- package/dist/atheletebridge/pages/fixtures/FixturesListPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/fixtures/FixturesListPage.js +80 -71
- package/dist/atheletebridge/pages/fixtures/FixturesListPage.js.map +1 -1
- package/dist/atheletebridge/pages/onboarding/OnboardingPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/onboarding/OnboardingPage.js +244 -210
- package/dist/atheletebridge/pages/onboarding/OnboardingPage.js.map +1 -1
- package/dist/atheletebridge/pages/performance/PerformancePage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/performance/PerformancePage.js +197 -148
- package/dist/atheletebridge/pages/performance/PerformancePage.js.map +1 -1
- package/dist/atheletebridge/pages/programs/ProgramDetailPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/programs/ProgramDetailPage.js +169 -143
- package/dist/atheletebridge/pages/programs/ProgramDetailPage.js.map +1 -1
- package/dist/atheletebridge/pages/programs/ProgramsListPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/programs/ProgramsListPage.js +77 -72
- package/dist/atheletebridge/pages/programs/ProgramsListPage.js.map +1 -1
- package/dist/atheletebridge/pages/sessions/SessionDetailPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/sessions/SessionDetailPage.js +104 -86
- package/dist/atheletebridge/pages/sessions/SessionDetailPage.js.map +1 -1
- package/dist/atheletebridge/pages/sessions/SessionsListPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/sessions/SessionsListPage.js +54 -49
- package/dist/atheletebridge/pages/sessions/SessionsListPage.js.map +1 -1
- package/dist/atheletebridge/pages/teams/TeamDetailPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/teams/TeamDetailPage.js +286 -267
- package/dist/atheletebridge/pages/teams/TeamDetailPage.js.map +1 -1
- package/dist/atheletebridge/pages/teams/TeamFormPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/teams/TeamFormPage.js +185 -180
- package/dist/atheletebridge/pages/teams/TeamFormPage.js.map +1 -1
- package/dist/atheletebridge/pages/teams/TeamsListPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/teams/TeamsListPage.js +70 -74
- package/dist/atheletebridge/pages/teams/TeamsListPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { useAbTranslate as e } from "../../i18n.js";
|
|
2
|
+
import { useAthleteBridge as t } from "../../context/AthleteBridgeContext.js";
|
|
3
|
+
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
|
+
import { StatusBadge as r } from "../../components/StatusBadge.js";
|
|
5
|
+
import { MEMBER_ROLE_LABELS as i, SPORT_LABELS as ee } from "../../components/domain.js";
|
|
6
|
+
import { Crest as te } from "../../components/Crest.js";
|
|
7
|
+
import { MatchupRow as a } from "../../components/MatchupRow.js";
|
|
7
8
|
import { UserAvatar as ne } from "../../components/UserAvatar.js";
|
|
8
|
-
import { EmptyState as
|
|
9
|
-
import { ErrorState as
|
|
10
|
-
import { useAddMember as
|
|
11
|
-
import { FormField as
|
|
12
|
-
import { UserSearchSelect as
|
|
13
|
-
import { useState as
|
|
14
|
-
import { useMutation as
|
|
15
|
-
import { Archive as
|
|
16
|
-
import { useParams as
|
|
17
|
-
import { Fragment as
|
|
18
|
-
import { GlassCard as
|
|
19
|
-
import { clearGraphqlFetchResponseCache as
|
|
9
|
+
import { EmptyState as o } from "../../components/EmptyState.js";
|
|
10
|
+
import { ErrorState as s, LoadingState as c } from "../../components/LoadingState.js";
|
|
11
|
+
import { useAddMember as l, useArchiveTeam as re, useRemoveMember as ie, useTeam as ae } from "../../hooks/useAthleteBridgeApi.js";
|
|
12
|
+
import { FormField as u, fieldInputClass as d } from "../../components/form.js";
|
|
13
|
+
import { UserSearchSelect as oe } from "../../components/UserSearchSelect.js";
|
|
14
|
+
import { useState as f } from "react";
|
|
15
|
+
import { useMutation as p, useQueryClient as m } from "@tanstack/react-query";
|
|
16
|
+
import { Archive as se, ArrowLeft as h, CalendarDays as g, Check as _, Edit as ce, Loader2 as v, MapPin as le, Pencil as ue, Plus as de, Trash2 as y, UserPlus as b, X as x } from "lucide-react";
|
|
17
|
+
import { useParams as S } from "react-router";
|
|
18
|
+
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
19
|
+
import { GlassCard as E, ResponsiveDialog as fe, ResponsiveDialogContent as pe, ResponsiveDialogFooter as me, ResponsiveDialogHeader as he, ResponsiveDialogTitle as ge } from "@burdenoff/fe-libs/ui";
|
|
20
|
+
import { clearGraphqlFetchResponseCache as D, graphqlFetch as O } from "@burdenoff/fe-libs/shared/graphql";
|
|
20
21
|
//#region src/atheletebridge/pages/teams/TeamDetailPage.tsx
|
|
21
|
-
var
|
|
22
|
+
var k = Object.keys(i), A = [
|
|
22
23
|
"TRIAL",
|
|
23
24
|
"ACTIVE",
|
|
24
25
|
"INJURED",
|
|
25
26
|
"SUSPENDED",
|
|
26
27
|
"RELEASED"
|
|
27
|
-
],
|
|
28
|
+
], j = (e) => e.charAt(0) + e.slice(1).toLowerCase(), M = {
|
|
28
29
|
userId: "",
|
|
29
30
|
displayName: "",
|
|
30
31
|
role: "PLAYER",
|
|
31
32
|
status: "ACTIVE",
|
|
32
33
|
position: "",
|
|
33
34
|
jerseyNumber: ""
|
|
34
|
-
},
|
|
35
|
-
let n =
|
|
36
|
-
return
|
|
35
|
+
}, N = (e) => {
|
|
36
|
+
let n = m(), { apiGatewayUrl: r } = t();
|
|
37
|
+
return p({
|
|
37
38
|
mutationFn: async ({ id: e, input: t }) => {
|
|
38
|
-
let n = await
|
|
39
|
+
let n = await O({
|
|
39
40
|
gateway: "workspace",
|
|
40
41
|
baseUrl: r,
|
|
41
42
|
query: "mutation AthUpdateMember($id: ID!, $input: AthUpdateMemberInput!) {\n athUpdateMember(id: $id, input: $input) {\n id teamId displayName role status position jerseyNumber\n }\n }",
|
|
@@ -46,161 +47,169 @@ var A = Object.keys(r), j = [
|
|
|
46
47
|
workspaceToken: !0
|
|
47
48
|
});
|
|
48
49
|
if (n.errors?.length) throw Error(n.errors[0]?.message ?? "Failed to update member.");
|
|
49
|
-
if (
|
|
50
|
+
if (D(), !n.data) throw Error("Update did not return data.");
|
|
50
51
|
return n.data.athUpdateMember;
|
|
51
52
|
},
|
|
52
53
|
onSuccess: () => {
|
|
53
54
|
n.invalidateQueries({ queryKey: [
|
|
54
55
|
"atheletebridge",
|
|
55
56
|
"team",
|
|
56
|
-
|
|
57
|
+
e
|
|
57
58
|
] }), n.invalidateQueries({ queryKey: [
|
|
58
59
|
"atheletebridge",
|
|
59
60
|
"members",
|
|
60
|
-
|
|
61
|
+
e
|
|
61
62
|
] });
|
|
62
63
|
}
|
|
63
64
|
});
|
|
64
65
|
};
|
|
65
|
-
function
|
|
66
|
-
let { id:
|
|
67
|
-
if (O.isLoading) return /* @__PURE__ */
|
|
68
|
-
title: "Team",
|
|
69
|
-
children: /* @__PURE__ */
|
|
66
|
+
function P() {
|
|
67
|
+
let p = e(), { id: m } = S(), { navigateTo: D } = t(), O = ae(m), P = re(), F = l(), I = ie(m), L = N(m), [_e, R] = f(!1), [z, B] = f(M), [V, H] = f(null), [ve, U] = f(null), [W, G] = f(null), [K, q] = f(null);
|
|
68
|
+
if (O.isLoading) return /* @__PURE__ */ w(n, {
|
|
69
|
+
title: p("atheletebridge.pages.teamDetail.title", "Team"),
|
|
70
|
+
children: /* @__PURE__ */ w(c, { label: p("atheletebridge.pages.teamDetail.loading", "Loading team…") })
|
|
70
71
|
});
|
|
71
|
-
if (O.isError || !O.data) return /* @__PURE__ */
|
|
72
|
-
title: "Team",
|
|
73
|
-
children: /* @__PURE__ */
|
|
74
|
-
title: "Team not found",
|
|
75
|
-
message: "This team does not exist or you do not have access to it.",
|
|
76
|
-
onRetry: () =>
|
|
72
|
+
if (O.isError || !O.data) return /* @__PURE__ */ w(n, {
|
|
73
|
+
title: p("atheletebridge.pages.teamDetail.title", "Team"),
|
|
74
|
+
children: /* @__PURE__ */ w(s, {
|
|
75
|
+
title: p("atheletebridge.pages.teamDetail.notFoundTitle", "Team not found"),
|
|
76
|
+
message: p("atheletebridge.pages.teamDetail.notFoundMessage", "This team does not exist or you do not have access to it."),
|
|
77
|
+
onRetry: () => D("/teams")
|
|
77
78
|
})
|
|
78
79
|
});
|
|
79
|
-
let
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
].filter(Boolean),
|
|
85
|
-
|
|
86
|
-
},
|
|
87
|
-
|
|
80
|
+
let J = O.data, Y = J.members?.items ?? [], X = J.fixtures?.items ?? [], Z = [
|
|
81
|
+
ee[J.sport],
|
|
82
|
+
J.ageGroup ?? void 0,
|
|
83
|
+
J.season ?? void 0,
|
|
84
|
+
J.homeVenue ?? void 0
|
|
85
|
+
].filter(Boolean), Q = async () => {
|
|
86
|
+
m && (await P.mutateAsync(m), D("/teams"));
|
|
87
|
+
}, ye = (e) => {
|
|
88
|
+
q(null), U(e.id), G({
|
|
88
89
|
role: e.role,
|
|
89
90
|
status: e.status,
|
|
90
91
|
position: e.position ?? "",
|
|
91
92
|
jerseyNumber: e.jerseyNumber == null ? "" : String(e.jerseyNumber)
|
|
92
93
|
});
|
|
93
94
|
}, $ = () => {
|
|
94
|
-
|
|
95
|
-
},
|
|
96
|
-
if (!
|
|
97
|
-
|
|
98
|
-
let t =
|
|
95
|
+
U(null), G(null), q(null);
|
|
96
|
+
}, be = async (e) => {
|
|
97
|
+
if (!W) return;
|
|
98
|
+
q(null);
|
|
99
|
+
let t = W.jerseyNumber.trim(), n;
|
|
99
100
|
if (t && (n = Number.parseInt(t, 10), Number.isNaN(n))) {
|
|
100
|
-
|
|
101
|
+
q("Jersey number must be a number.");
|
|
101
102
|
return;
|
|
102
103
|
}
|
|
103
104
|
try {
|
|
104
105
|
await L.mutateAsync({
|
|
105
106
|
id: e,
|
|
106
107
|
input: {
|
|
107
|
-
role:
|
|
108
|
-
status:
|
|
109
|
-
position:
|
|
108
|
+
role: W.role,
|
|
109
|
+
status: W.status,
|
|
110
|
+
position: W.position.trim() || void 0,
|
|
110
111
|
jerseyNumber: n
|
|
111
112
|
}
|
|
112
113
|
}), $();
|
|
113
114
|
} catch (e) {
|
|
114
|
-
|
|
115
|
+
q(e instanceof Error ? e.message : "Failed to update member.");
|
|
115
116
|
}
|
|
116
|
-
},
|
|
117
|
-
if (e.preventDefault(),
|
|
118
|
-
if (!
|
|
119
|
-
|
|
117
|
+
}, xe = async (e) => {
|
|
118
|
+
if (e.preventDefault(), H(null), !m) return;
|
|
119
|
+
if (!z.userId.trim() || !z.displayName.trim()) {
|
|
120
|
+
H("User ID and display name are required.");
|
|
120
121
|
return;
|
|
121
122
|
}
|
|
122
|
-
let t =
|
|
123
|
+
let t = z.jerseyNumber.trim() ? Number.parseInt(z.jerseyNumber, 10) : void 0;
|
|
123
124
|
if (t !== void 0 && Number.isNaN(t)) {
|
|
124
|
-
|
|
125
|
+
H("Jersey number must be a number.");
|
|
125
126
|
return;
|
|
126
127
|
}
|
|
127
128
|
try {
|
|
128
129
|
await F.mutateAsync({
|
|
129
|
-
teamId:
|
|
130
|
-
userId:
|
|
131
|
-
displayName:
|
|
132
|
-
role:
|
|
133
|
-
status:
|
|
134
|
-
position:
|
|
130
|
+
teamId: m,
|
|
131
|
+
userId: z.userId.trim(),
|
|
132
|
+
displayName: z.displayName.trim(),
|
|
133
|
+
role: z.role,
|
|
134
|
+
status: z.status,
|
|
135
|
+
position: z.position.trim() || void 0,
|
|
135
136
|
jerseyNumber: t
|
|
136
|
-
}),
|
|
137
|
+
}), B(M), R(!1);
|
|
137
138
|
} catch (e) {
|
|
138
|
-
|
|
139
|
+
H(e instanceof Error ? e.message : "Failed to add member.");
|
|
139
140
|
}
|
|
140
|
-
},
|
|
141
|
-
return /* @__PURE__ */
|
|
142
|
-
title:
|
|
141
|
+
}, Se = (e) => D(`/teams/${J.id}/athletes/${e}`);
|
|
142
|
+
return /* @__PURE__ */ T(n, {
|
|
143
|
+
title: J.name,
|
|
143
144
|
gradientTitle: !0,
|
|
144
|
-
description:
|
|
145
|
-
actions: /* @__PURE__ */
|
|
145
|
+
description: Z.join(" · "),
|
|
146
|
+
actions: /* @__PURE__ */ T("div", {
|
|
146
147
|
className: "flex flex-wrap items-center gap-2",
|
|
147
148
|
children: [
|
|
148
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ T("button", {
|
|
149
150
|
type: "button",
|
|
150
|
-
onClick: () =>
|
|
151
|
+
onClick: () => D("/teams"),
|
|
151
152
|
className: "inline-flex items-center gap-1.5 rounded-lg border border-border-seam px-3 py-2 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken",
|
|
152
|
-
children: [
|
|
153
|
+
children: [
|
|
154
|
+
/* @__PURE__ */ w(h, { className: "h-4 w-4" }),
|
|
155
|
+
" ",
|
|
156
|
+
p("atheletebridge.pages.teamDetail.back", "Back")
|
|
157
|
+
]
|
|
153
158
|
}),
|
|
154
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ T("button", {
|
|
155
160
|
type: "button",
|
|
156
|
-
onClick: () =>
|
|
161
|
+
onClick: () => D(`/teams/${J.id}/edit`),
|
|
157
162
|
className: "inline-flex items-center gap-1.5 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-semibold text-action-primary-text transition-colors hover:bg-action-primary-bg/90",
|
|
158
|
-
children: [
|
|
163
|
+
children: [
|
|
164
|
+
/* @__PURE__ */ w(ce, { className: "h-4 w-4" }),
|
|
165
|
+
" ",
|
|
166
|
+
p("atheletebridge.pages.teamDetail.edit", "Edit")
|
|
167
|
+
]
|
|
159
168
|
}),
|
|
160
|
-
|
|
169
|
+
J.status !== "ARCHIVED" && /* @__PURE__ */ T("button", {
|
|
161
170
|
type: "button",
|
|
162
|
-
onClick:
|
|
163
|
-
disabled:
|
|
171
|
+
onClick: Q,
|
|
172
|
+
disabled: P.isPending,
|
|
164
173
|
className: "inline-flex items-center gap-1.5 rounded-lg border border-border-seam px-3 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:opacity-60",
|
|
165
174
|
children: [
|
|
166
|
-
|
|
175
|
+
P.isPending ? /* @__PURE__ */ w(v, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ w(se, { className: "h-4 w-4" }),
|
|
167
176
|
" ",
|
|
168
|
-
"Archive"
|
|
177
|
+
p("atheletebridge.pages.teamDetail.archive", "Archive")
|
|
169
178
|
]
|
|
170
179
|
})
|
|
171
180
|
]
|
|
172
181
|
}),
|
|
173
182
|
children: [
|
|
174
|
-
/* @__PURE__ */ E
|
|
183
|
+
/* @__PURE__ */ T(E, {
|
|
175
184
|
treatment: "insight",
|
|
176
185
|
className: "mb-8 p-6",
|
|
177
186
|
children: [
|
|
178
|
-
/* @__PURE__ */
|
|
187
|
+
/* @__PURE__ */ T("div", {
|
|
179
188
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center",
|
|
180
|
-
children: [/* @__PURE__ */
|
|
181
|
-
name:
|
|
182
|
-
sport:
|
|
189
|
+
children: [/* @__PURE__ */ w(te, {
|
|
190
|
+
name: J.name,
|
|
191
|
+
sport: J.sport,
|
|
183
192
|
size: 64
|
|
184
|
-
}), /* @__PURE__ */
|
|
193
|
+
}), /* @__PURE__ */ T("div", {
|
|
185
194
|
className: "min-w-0 flex-1",
|
|
186
|
-
children: [/* @__PURE__ */
|
|
195
|
+
children: [/* @__PURE__ */ T("div", {
|
|
187
196
|
className: "flex flex-wrap items-center gap-3",
|
|
188
|
-
children: [/* @__PURE__ */
|
|
197
|
+
children: [/* @__PURE__ */ w("h2", {
|
|
189
198
|
className: "text-xl font-semibold text-text-primary",
|
|
190
|
-
children:
|
|
191
|
-
}), /* @__PURE__ */
|
|
192
|
-
}), /* @__PURE__ */
|
|
199
|
+
children: J.name
|
|
200
|
+
}), /* @__PURE__ */ w(r, { status: J.status })]
|
|
201
|
+
}), /* @__PURE__ */ w("div", {
|
|
193
202
|
className: "mt-1.5 flex flex-wrap items-center gap-x-2 gap-y-1 text-sm text-text-secondary",
|
|
194
|
-
children:
|
|
203
|
+
children: Z.map((e, t) => /* @__PURE__ */ T("span", {
|
|
195
204
|
className: "flex items-center gap-2",
|
|
196
|
-
children: [t > 0 && /* @__PURE__ */
|
|
205
|
+
children: [t > 0 && /* @__PURE__ */ w("span", {
|
|
197
206
|
"aria-hidden": "true",
|
|
198
207
|
className: "text-text-muted",
|
|
199
208
|
children: "·"
|
|
200
|
-
}), e ===
|
|
209
|
+
}), e === J.homeVenue ? /* @__PURE__ */ T("span", {
|
|
201
210
|
className: "flex items-center gap-1",
|
|
202
211
|
children: [
|
|
203
|
-
/* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ w(le, {
|
|
204
213
|
className: "h-3.5 w-3.5",
|
|
205
214
|
"aria-hidden": "true"
|
|
206
215
|
}),
|
|
@@ -212,208 +221,213 @@ function F() {
|
|
|
212
221
|
})]
|
|
213
222
|
})]
|
|
214
223
|
}),
|
|
215
|
-
|
|
224
|
+
J.description && /* @__PURE__ */ w("p", {
|
|
216
225
|
className: "mt-4 text-sm text-text-secondary",
|
|
217
|
-
children:
|
|
226
|
+
children: J.description
|
|
218
227
|
}),
|
|
219
|
-
|
|
228
|
+
J.tags.length > 0 && /* @__PURE__ */ w("div", {
|
|
220
229
|
className: "mt-4 flex flex-wrap gap-1.5",
|
|
221
|
-
children:
|
|
230
|
+
children: J.tags.map((e) => /* @__PURE__ */ w("span", {
|
|
222
231
|
className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
|
|
223
232
|
children: e
|
|
224
233
|
}, e))
|
|
225
234
|
})
|
|
226
235
|
]
|
|
227
236
|
}),
|
|
228
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ T("section", {
|
|
229
238
|
className: "mb-8",
|
|
230
|
-
children: [/* @__PURE__ */
|
|
239
|
+
children: [/* @__PURE__ */ T("div", {
|
|
231
240
|
className: "mb-4 flex items-center justify-between",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
241
|
+
children: [/* @__PURE__ */ T("h2", {
|
|
233
242
|
className: "text-lg font-semibold text-text-primary",
|
|
234
243
|
children: [
|
|
235
|
-
"
|
|
236
|
-
|
|
244
|
+
p("atheletebridge.pages.teamDetail.rosterTitle", "Roster"),
|
|
245
|
+
" (",
|
|
246
|
+
Y.length,
|
|
237
247
|
")"
|
|
238
248
|
]
|
|
239
|
-
}), /* @__PURE__ */
|
|
249
|
+
}), /* @__PURE__ */ T("button", {
|
|
240
250
|
type: "button",
|
|
241
251
|
onClick: () => {
|
|
242
|
-
|
|
252
|
+
H(null), R(!0);
|
|
243
253
|
},
|
|
244
254
|
className: "inline-flex items-center gap-1.5 rounded-lg bg-action-primary-bg px-3 py-1.5 text-sm font-semibold text-action-primary-text transition-colors hover:bg-action-primary-bg/90",
|
|
245
|
-
children: [
|
|
255
|
+
children: [
|
|
256
|
+
/* @__PURE__ */ w(b, { className: "h-4 w-4" }),
|
|
257
|
+
" ",
|
|
258
|
+
p("atheletebridge.pages.teamDetail.addMember", "Add member")
|
|
259
|
+
]
|
|
246
260
|
})]
|
|
247
|
-
}),
|
|
261
|
+
}), Y.length === 0 ? /* @__PURE__ */ w(o, {
|
|
248
262
|
illustration: "empty-data",
|
|
249
|
-
icon: /* @__PURE__ */
|
|
250
|
-
title: "No members yet",
|
|
251
|
-
description: "Add players, coaches and staff to build the roster."
|
|
252
|
-
}) : /* @__PURE__ */ E
|
|
263
|
+
icon: /* @__PURE__ */ w(b, { className: "h-10 w-10" }),
|
|
264
|
+
title: p("atheletebridge.pages.teamDetail.noMembersTitle", "No members yet"),
|
|
265
|
+
description: p("atheletebridge.pages.teamDetail.noMembersHint", "Add players, coaches and staff to build the roster.")
|
|
266
|
+
}) : /* @__PURE__ */ T(E, {
|
|
253
267
|
treatment: "insight",
|
|
254
268
|
className: "overflow-hidden p-0",
|
|
255
|
-
children: [/* @__PURE__ */
|
|
269
|
+
children: [/* @__PURE__ */ w("div", {
|
|
256
270
|
className: "overflow-x-auto",
|
|
257
|
-
children: /* @__PURE__ */
|
|
271
|
+
children: /* @__PURE__ */ T("table", {
|
|
258
272
|
className: "w-full min-w-[720px] border-collapse text-sm",
|
|
259
|
-
children: [/* @__PURE__ */
|
|
273
|
+
children: [/* @__PURE__ */ w("thead", { children: /* @__PURE__ */ T("tr", {
|
|
260
274
|
className: "border-b border-border-seam text-left text-xs uppercase tracking-wide text-text-secondary",
|
|
261
275
|
children: [
|
|
262
|
-
/* @__PURE__ */
|
|
276
|
+
/* @__PURE__ */ w("th", {
|
|
263
277
|
className: "px-4 py-3 font-medium",
|
|
264
|
-
children: "Player"
|
|
278
|
+
children: p("atheletebridge.pages.teamDetail.playerHeader", "Player")
|
|
265
279
|
}),
|
|
266
|
-
/* @__PURE__ */
|
|
280
|
+
/* @__PURE__ */ w("th", {
|
|
267
281
|
className: "px-4 py-3 font-medium",
|
|
268
|
-
children: "Role"
|
|
282
|
+
children: p("atheletebridge.pages.teamDetail.roleHeader", "Role")
|
|
269
283
|
}),
|
|
270
|
-
/* @__PURE__ */
|
|
284
|
+
/* @__PURE__ */ w("th", {
|
|
271
285
|
className: "px-4 py-3 font-medium",
|
|
272
|
-
children: "Position"
|
|
286
|
+
children: p("atheletebridge.pages.teamDetail.positionHeader", "Position")
|
|
273
287
|
}),
|
|
274
|
-
/* @__PURE__ */
|
|
288
|
+
/* @__PURE__ */ w("th", {
|
|
275
289
|
className: "px-4 py-3 font-medium",
|
|
276
|
-
children: "Jersey #"
|
|
290
|
+
children: p("atheletebridge.pages.teamDetail.jerseyHeader", "Jersey #")
|
|
277
291
|
}),
|
|
278
|
-
/* @__PURE__ */
|
|
292
|
+
/* @__PURE__ */ w("th", {
|
|
279
293
|
className: "px-4 py-3 font-medium",
|
|
280
|
-
children: "Status"
|
|
294
|
+
children: p("atheletebridge.pages.teamDetail.statusHeader", "Status")
|
|
281
295
|
}),
|
|
282
|
-
/* @__PURE__ */
|
|
296
|
+
/* @__PURE__ */ w("th", {
|
|
283
297
|
className: "px-4 py-3 text-right font-medium",
|
|
284
|
-
children: "Actions"
|
|
298
|
+
children: p("atheletebridge.pages.teamDetail.actionsHeader", "Actions")
|
|
285
299
|
})
|
|
286
300
|
]
|
|
287
|
-
}) }), /* @__PURE__ */
|
|
301
|
+
}) }), /* @__PURE__ */ w("tbody", {
|
|
288
302
|
className: "divide-y divide-border-seam",
|
|
289
|
-
children:
|
|
290
|
-
let t =
|
|
291
|
-
return /* @__PURE__ */
|
|
303
|
+
children: Y.map((e) => {
|
|
304
|
+
let t = ve === e.id, n = L.isPending && t;
|
|
305
|
+
return /* @__PURE__ */ T("tr", {
|
|
292
306
|
className: "align-middle transition-colors hover:bg-bg-sunken/60",
|
|
293
307
|
children: [
|
|
294
|
-
/* @__PURE__ */
|
|
308
|
+
/* @__PURE__ */ w("td", {
|
|
295
309
|
className: "px-4 py-3",
|
|
296
|
-
children: /* @__PURE__ */
|
|
310
|
+
children: /* @__PURE__ */ T("button", {
|
|
297
311
|
type: "button",
|
|
298
|
-
onClick: () =>
|
|
312
|
+
onClick: () => Se(e.id),
|
|
299
313
|
className: "group flex items-center gap-3 text-left focus-visible:outline-none",
|
|
300
|
-
title:
|
|
301
|
-
children: [/* @__PURE__ */
|
|
314
|
+
title: `${p("atheletebridge.pages.teamDetail.viewProfile", "View profile")}: ${e.displayName}`,
|
|
315
|
+
children: [/* @__PURE__ */ w(ne, {
|
|
302
316
|
name: e.displayName,
|
|
303
317
|
id: e.userId,
|
|
304
318
|
jersey: e.jerseyNumber,
|
|
305
319
|
size: "sm"
|
|
306
|
-
}), /* @__PURE__ */
|
|
320
|
+
}), /* @__PURE__ */ T("span", {
|
|
307
321
|
className: "min-w-0",
|
|
308
|
-
children: [/* @__PURE__ */
|
|
322
|
+
children: [/* @__PURE__ */ w("span", {
|
|
309
323
|
className: "block truncate font-medium text-text-primary group-hover:text-text-link",
|
|
310
324
|
children: e.displayName
|
|
311
|
-
}), /* @__PURE__ */
|
|
325
|
+
}), /* @__PURE__ */ w("span", {
|
|
312
326
|
className: "block truncate text-xs text-text-secondary group-hover:text-text-link",
|
|
313
|
-
children: "View profile"
|
|
327
|
+
children: p("atheletebridge.pages.teamDetail.viewProfile", "View profile")
|
|
314
328
|
})]
|
|
315
329
|
})]
|
|
316
330
|
})
|
|
317
331
|
}),
|
|
318
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ w("td", {
|
|
319
333
|
className: "px-4 py-3",
|
|
320
|
-
children: t &&
|
|
321
|
-
"aria-label": "Role",
|
|
322
|
-
className:
|
|
323
|
-
value:
|
|
324
|
-
onChange: (e) =>
|
|
334
|
+
children: t && W ? /* @__PURE__ */ w("select", {
|
|
335
|
+
"aria-label": p("atheletebridge.pages.teamDetail.roleHeader", "Role"),
|
|
336
|
+
className: d,
|
|
337
|
+
value: W.role,
|
|
338
|
+
onChange: (e) => G((t) => t && {
|
|
325
339
|
...t,
|
|
326
340
|
role: e.target.value
|
|
327
341
|
}),
|
|
328
|
-
children:
|
|
342
|
+
children: k.map((e) => /* @__PURE__ */ w("option", {
|
|
329
343
|
value: e,
|
|
330
|
-
children:
|
|
344
|
+
children: i[e]
|
|
331
345
|
}, e))
|
|
332
|
-
}) : /* @__PURE__ */
|
|
346
|
+
}) : /* @__PURE__ */ w("span", {
|
|
333
347
|
className: "text-text-secondary",
|
|
334
|
-
children:
|
|
348
|
+
children: i[e.role]
|
|
335
349
|
})
|
|
336
350
|
}),
|
|
337
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ w("td", {
|
|
338
352
|
className: "px-4 py-3",
|
|
339
|
-
children: t &&
|
|
340
|
-
"aria-label": "Position",
|
|
341
|
-
className:
|
|
342
|
-
value:
|
|
343
|
-
onChange: (e) =>
|
|
353
|
+
children: t && W ? /* @__PURE__ */ w("input", {
|
|
354
|
+
"aria-label": p("atheletebridge.pages.teamDetail.positionHeader", "Position"),
|
|
355
|
+
className: d,
|
|
356
|
+
value: W.position,
|
|
357
|
+
onChange: (e) => G((t) => t && {
|
|
344
358
|
...t,
|
|
345
359
|
position: e.target.value
|
|
346
360
|
}),
|
|
347
361
|
placeholder: "e.g. Striker"
|
|
348
|
-
}) : /* @__PURE__ */
|
|
362
|
+
}) : /* @__PURE__ */ w("span", {
|
|
349
363
|
className: "text-text-secondary",
|
|
350
364
|
children: e.position || "—"
|
|
351
365
|
})
|
|
352
366
|
}),
|
|
353
|
-
/* @__PURE__ */
|
|
367
|
+
/* @__PURE__ */ w("td", {
|
|
354
368
|
className: "px-4 py-3",
|
|
355
|
-
children: t &&
|
|
356
|
-
"aria-label": "Jersey number",
|
|
369
|
+
children: t && W ? /* @__PURE__ */ w("input", {
|
|
370
|
+
"aria-label": p("atheletebridge.pages.teamDetail.jerseyHeader", "Jersey number"),
|
|
357
371
|
inputMode: "numeric",
|
|
358
|
-
className: `${
|
|
359
|
-
value:
|
|
360
|
-
onChange: (e) =>
|
|
372
|
+
className: `${d} w-20`,
|
|
373
|
+
value: W.jerseyNumber,
|
|
374
|
+
onChange: (e) => G((t) => t && {
|
|
361
375
|
...t,
|
|
362
376
|
jerseyNumber: e.target.value
|
|
363
377
|
}),
|
|
364
378
|
placeholder: "9"
|
|
365
|
-
}) : /* @__PURE__ */
|
|
379
|
+
}) : /* @__PURE__ */ w("span", {
|
|
366
380
|
className: "tabular-nums text-text-primary",
|
|
367
381
|
children: e.jerseyNumber ?? "—"
|
|
368
382
|
})
|
|
369
383
|
}),
|
|
370
|
-
/* @__PURE__ */
|
|
384
|
+
/* @__PURE__ */ w("td", {
|
|
371
385
|
className: "px-4 py-3",
|
|
372
|
-
children: t &&
|
|
373
|
-
"aria-label": "Status",
|
|
374
|
-
className:
|
|
375
|
-
value:
|
|
376
|
-
onChange: (e) =>
|
|
386
|
+
children: t && W ? /* @__PURE__ */ w("select", {
|
|
387
|
+
"aria-label": p("atheletebridge.pages.teamDetail.statusHeader", "Status"),
|
|
388
|
+
className: d,
|
|
389
|
+
value: W.status,
|
|
390
|
+
onChange: (e) => G((t) => t && {
|
|
377
391
|
...t,
|
|
378
392
|
status: e.target.value
|
|
379
393
|
}),
|
|
380
|
-
children:
|
|
394
|
+
children: A.map((e) => /* @__PURE__ */ w("option", {
|
|
381
395
|
value: e,
|
|
382
|
-
children:
|
|
396
|
+
children: j(e)
|
|
383
397
|
}, e))
|
|
384
|
-
}) : /* @__PURE__ */
|
|
398
|
+
}) : /* @__PURE__ */ w(r, { status: e.status })
|
|
385
399
|
}),
|
|
386
|
-
/* @__PURE__ */
|
|
400
|
+
/* @__PURE__ */ w("td", {
|
|
387
401
|
className: "px-4 py-3",
|
|
388
|
-
children: /* @__PURE__ */
|
|
402
|
+
children: /* @__PURE__ */ w("div", {
|
|
389
403
|
className: "flex items-center justify-end gap-1",
|
|
390
|
-
children: t ? /* @__PURE__ */
|
|
404
|
+
children: t ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("button", {
|
|
391
405
|
type: "button",
|
|
392
|
-
onClick: () => void
|
|
393
|
-
disabled:
|
|
394
|
-
"aria-label": "
|
|
406
|
+
onClick: () => void be(e.id),
|
|
407
|
+
disabled: n,
|
|
408
|
+
"aria-label": p("common.save", "Save"),
|
|
395
409
|
className: "rounded-lg p-2 text-status-success-text transition-colors hover:bg-status-success-bg-subtle disabled:opacity-60",
|
|
396
|
-
children:
|
|
397
|
-
}), /* @__PURE__ */
|
|
410
|
+
children: n ? /* @__PURE__ */ w(v, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ w(_, { className: "h-4 w-4" })
|
|
411
|
+
}), /* @__PURE__ */ w("button", {
|
|
398
412
|
type: "button",
|
|
399
413
|
onClick: $,
|
|
400
|
-
disabled:
|
|
401
|
-
"aria-label": "
|
|
414
|
+
disabled: n,
|
|
415
|
+
"aria-label": p("common.cancel", "Cancel"),
|
|
402
416
|
className: "rounded-lg p-2 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary disabled:opacity-60",
|
|
403
|
-
children: /* @__PURE__ */
|
|
404
|
-
})] }) : /* @__PURE__ */
|
|
417
|
+
children: /* @__PURE__ */ w(x, { className: "h-4 w-4" })
|
|
418
|
+
})] }) : /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("button", {
|
|
405
419
|
type: "button",
|
|
406
|
-
onClick: () =>
|
|
407
|
-
"aria-label":
|
|
420
|
+
onClick: () => ye(e),
|
|
421
|
+
"aria-label": `${p("common.edit", "Edit")} ${e.displayName}`,
|
|
408
422
|
className: "rounded-lg p-2 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary",
|
|
409
|
-
children: /* @__PURE__ */
|
|
410
|
-
}), /* @__PURE__ */
|
|
423
|
+
children: /* @__PURE__ */ w(ue, { className: "h-4 w-4" })
|
|
424
|
+
}), /* @__PURE__ */ w("button", {
|
|
411
425
|
type: "button",
|
|
412
426
|
onClick: () => void I.mutate(e.id),
|
|
413
427
|
disabled: I.isPending,
|
|
414
|
-
"aria-label":
|
|
428
|
+
"aria-label": `${p("common.delete", "Delete")} ${e.displayName}`,
|
|
415
429
|
className: "rounded-lg p-2 text-text-secondary transition-colors hover:bg-status-error-bg-subtle hover:text-status-error-text disabled:opacity-60",
|
|
416
|
-
children: /* @__PURE__ */
|
|
430
|
+
children: /* @__PURE__ */ w(y, { className: "h-4 w-4" })
|
|
417
431
|
})] })
|
|
418
432
|
})
|
|
419
433
|
})
|
|
@@ -422,143 +436,148 @@ function F() {
|
|
|
422
436
|
})
|
|
423
437
|
})]
|
|
424
438
|
})
|
|
425
|
-
}),
|
|
439
|
+
}), K && /* @__PURE__ */ w("p", {
|
|
426
440
|
className: "border-t border-border-seam px-4 py-2 text-sm text-status-error-text",
|
|
427
|
-
children:
|
|
441
|
+
children: K
|
|
428
442
|
})]
|
|
429
443
|
})]
|
|
430
444
|
}),
|
|
431
|
-
/* @__PURE__ */
|
|
445
|
+
/* @__PURE__ */ T("section", { children: [/* @__PURE__ */ T("div", {
|
|
432
446
|
className: "mb-4 flex items-center justify-between",
|
|
433
|
-
children: [/* @__PURE__ */
|
|
447
|
+
children: [/* @__PURE__ */ T("h2", {
|
|
434
448
|
className: "text-lg font-semibold text-text-primary",
|
|
435
449
|
children: [
|
|
436
|
-
"
|
|
437
|
-
|
|
450
|
+
p("atheletebridge.pages.teamDetail.fixturesTitle", "Fixtures"),
|
|
451
|
+
" (",
|
|
452
|
+
X.length,
|
|
438
453
|
")"
|
|
439
454
|
]
|
|
440
|
-
}), /* @__PURE__ */
|
|
455
|
+
}), /* @__PURE__ */ T("div", {
|
|
441
456
|
className: "flex items-center gap-2",
|
|
442
|
-
children: [
|
|
457
|
+
children: [X.length > 0 && /* @__PURE__ */ w("button", {
|
|
443
458
|
type: "button",
|
|
444
|
-
onClick: () =>
|
|
459
|
+
onClick: () => D("/fixtures"),
|
|
445
460
|
className: "text-sm font-medium text-text-link transition-colors hover:underline",
|
|
446
|
-
children: "View all"
|
|
447
|
-
}), /* @__PURE__ */
|
|
461
|
+
children: p("atheletebridge.pages.teamDetail.viewAll", "View all")
|
|
462
|
+
}), /* @__PURE__ */ T("button", {
|
|
448
463
|
type: "button",
|
|
449
|
-
onClick: () =>
|
|
464
|
+
onClick: () => D(`/fixtures/new?homeTeamId=${J.id}`),
|
|
450
465
|
className: "inline-flex items-center gap-1.5 rounded-lg border border-border-seam px-3 py-1.5 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken",
|
|
451
|
-
children: [
|
|
466
|
+
children: [
|
|
467
|
+
/* @__PURE__ */ w(de, { className: "h-4 w-4" }),
|
|
468
|
+
" ",
|
|
469
|
+
p("atheletebridge.pages.teamDetail.schedule", "Schedule")
|
|
470
|
+
]
|
|
452
471
|
})]
|
|
453
472
|
})]
|
|
454
|
-
}),
|
|
473
|
+
}), X.length === 0 ? /* @__PURE__ */ w(o, {
|
|
455
474
|
illustration: "empty-calendar",
|
|
456
|
-
icon: /* @__PURE__ */
|
|
457
|
-
title: "No fixtures scheduled",
|
|
458
|
-
description: "Schedule a match for this team to start tracking results."
|
|
459
|
-
}) : /* @__PURE__ */
|
|
475
|
+
icon: /* @__PURE__ */ w(g, { className: "h-10 w-10" }),
|
|
476
|
+
title: p("atheletebridge.pages.teamDetail.noFixturesTitle", "No fixtures scheduled"),
|
|
477
|
+
description: p("atheletebridge.pages.teamDetail.noFixturesHint", "Schedule a match for this team to start tracking results.")
|
|
478
|
+
}) : /* @__PURE__ */ w(E, {
|
|
460
479
|
treatment: "insight",
|
|
461
480
|
className: "px-4 py-1",
|
|
462
|
-
children: /* @__PURE__ */
|
|
481
|
+
children: /* @__PURE__ */ w("div", {
|
|
463
482
|
className: "divide-y divide-border-seam",
|
|
464
|
-
children:
|
|
483
|
+
children: X.map((e) => /* @__PURE__ */ w(a, {
|
|
465
484
|
fixture: e,
|
|
466
|
-
onClick: () =>
|
|
485
|
+
onClick: () => D(`/fixtures/${e.id}`)
|
|
467
486
|
}, e.id))
|
|
468
487
|
})
|
|
469
488
|
})] }),
|
|
470
|
-
/* @__PURE__ */
|
|
471
|
-
open:
|
|
472
|
-
onOpenChange:
|
|
473
|
-
children: /* @__PURE__ */
|
|
474
|
-
onSubmit:
|
|
489
|
+
/* @__PURE__ */ w(fe, {
|
|
490
|
+
open: _e,
|
|
491
|
+
onOpenChange: R,
|
|
492
|
+
children: /* @__PURE__ */ T(pe, { children: [/* @__PURE__ */ w(he, { children: /* @__PURE__ */ w(ge, { children: p("atheletebridge.pages.teamDetail.addMember", "Add member") }) }), /* @__PURE__ */ T("form", {
|
|
493
|
+
onSubmit: xe,
|
|
475
494
|
className: "space-y-4 px-1",
|
|
476
495
|
children: [
|
|
477
|
-
/* @__PURE__ */
|
|
478
|
-
userId:
|
|
479
|
-
displayName:
|
|
480
|
-
onSelect: ({ userId: e, displayName: t }) =>
|
|
496
|
+
/* @__PURE__ */ w(oe, {
|
|
497
|
+
userId: z.userId,
|
|
498
|
+
displayName: z.displayName,
|
|
499
|
+
onSelect: ({ userId: e, displayName: t }) => B((n) => ({
|
|
481
500
|
...n,
|
|
482
501
|
userId: e,
|
|
483
502
|
displayName: t || n.displayName
|
|
484
503
|
})),
|
|
485
504
|
required: !0
|
|
486
505
|
}),
|
|
487
|
-
/* @__PURE__ */
|
|
506
|
+
/* @__PURE__ */ w(u, {
|
|
488
507
|
label: "Display name",
|
|
489
508
|
htmlFor: "displayName",
|
|
490
509
|
required: !0,
|
|
491
|
-
children: /* @__PURE__ */
|
|
510
|
+
children: /* @__PURE__ */ w("input", {
|
|
492
511
|
id: "displayName",
|
|
493
|
-
className:
|
|
494
|
-
value:
|
|
495
|
-
onChange: (e) =>
|
|
512
|
+
className: d,
|
|
513
|
+
value: z.displayName,
|
|
514
|
+
onChange: (e) => B((t) => ({
|
|
496
515
|
...t,
|
|
497
516
|
displayName: e.target.value
|
|
498
517
|
})),
|
|
499
518
|
placeholder: "e.g. Alex Morgan"
|
|
500
519
|
})
|
|
501
520
|
}),
|
|
502
|
-
/* @__PURE__ */
|
|
521
|
+
/* @__PURE__ */ T("div", {
|
|
503
522
|
className: "grid grid-cols-2 gap-4",
|
|
504
|
-
children: [/* @__PURE__ */
|
|
523
|
+
children: [/* @__PURE__ */ w(u, {
|
|
505
524
|
label: "Role",
|
|
506
525
|
htmlFor: "role",
|
|
507
|
-
children: /* @__PURE__ */
|
|
526
|
+
children: /* @__PURE__ */ w("select", {
|
|
508
527
|
id: "role",
|
|
509
|
-
className:
|
|
510
|
-
value:
|
|
511
|
-
onChange: (e) =>
|
|
528
|
+
className: d,
|
|
529
|
+
value: z.role,
|
|
530
|
+
onChange: (e) => B((t) => ({
|
|
512
531
|
...t,
|
|
513
532
|
role: e.target.value
|
|
514
533
|
})),
|
|
515
|
-
children:
|
|
534
|
+
children: k.map((e) => /* @__PURE__ */ w("option", {
|
|
516
535
|
value: e,
|
|
517
|
-
children:
|
|
536
|
+
children: i[e]
|
|
518
537
|
}, e))
|
|
519
538
|
})
|
|
520
|
-
}), /* @__PURE__ */
|
|
539
|
+
}), /* @__PURE__ */ w(u, {
|
|
521
540
|
label: "Status",
|
|
522
541
|
htmlFor: "memberStatus",
|
|
523
|
-
children: /* @__PURE__ */
|
|
542
|
+
children: /* @__PURE__ */ w("select", {
|
|
524
543
|
id: "memberStatus",
|
|
525
|
-
className:
|
|
526
|
-
value:
|
|
527
|
-
onChange: (e) =>
|
|
544
|
+
className: d,
|
|
545
|
+
value: z.status,
|
|
546
|
+
onChange: (e) => B((t) => ({
|
|
528
547
|
...t,
|
|
529
548
|
status: e.target.value
|
|
530
549
|
})),
|
|
531
|
-
children:
|
|
550
|
+
children: A.map((e) => /* @__PURE__ */ w("option", {
|
|
532
551
|
value: e,
|
|
533
|
-
children:
|
|
552
|
+
children: j(e)
|
|
534
553
|
}, e))
|
|
535
554
|
})
|
|
536
555
|
})]
|
|
537
556
|
}),
|
|
538
|
-
/* @__PURE__ */
|
|
557
|
+
/* @__PURE__ */ T("div", {
|
|
539
558
|
className: "grid grid-cols-2 gap-4",
|
|
540
|
-
children: [/* @__PURE__ */
|
|
559
|
+
children: [/* @__PURE__ */ w(u, {
|
|
541
560
|
label: "Position",
|
|
542
561
|
htmlFor: "position",
|
|
543
|
-
children: /* @__PURE__ */
|
|
562
|
+
children: /* @__PURE__ */ w("input", {
|
|
544
563
|
id: "position",
|
|
545
|
-
className:
|
|
546
|
-
value:
|
|
547
|
-
onChange: (e) =>
|
|
564
|
+
className: d,
|
|
565
|
+
value: z.position,
|
|
566
|
+
onChange: (e) => B((t) => ({
|
|
548
567
|
...t,
|
|
549
568
|
position: e.target.value
|
|
550
569
|
})),
|
|
551
570
|
placeholder: "e.g. Striker"
|
|
552
571
|
})
|
|
553
|
-
}), /* @__PURE__ */
|
|
572
|
+
}), /* @__PURE__ */ w(u, {
|
|
554
573
|
label: "Jersey #",
|
|
555
574
|
htmlFor: "jersey",
|
|
556
|
-
children: /* @__PURE__ */
|
|
575
|
+
children: /* @__PURE__ */ w("input", {
|
|
557
576
|
id: "jersey",
|
|
558
|
-
className:
|
|
577
|
+
className: d,
|
|
559
578
|
inputMode: "numeric",
|
|
560
|
-
value:
|
|
561
|
-
onChange: (e) =>
|
|
579
|
+
value: z.jerseyNumber,
|
|
580
|
+
onChange: (e) => B((t) => ({
|
|
562
581
|
...t,
|
|
563
582
|
jerseyNumber: e.target.value
|
|
564
583
|
})),
|
|
@@ -566,20 +585,20 @@ function F() {
|
|
|
566
585
|
})
|
|
567
586
|
})]
|
|
568
587
|
}),
|
|
569
|
-
|
|
588
|
+
V && /* @__PURE__ */ w("p", {
|
|
570
589
|
className: "text-sm text-status-error-text",
|
|
571
|
-
children:
|
|
590
|
+
children: V
|
|
572
591
|
}),
|
|
573
|
-
/* @__PURE__ */
|
|
592
|
+
/* @__PURE__ */ T(me, { children: [/* @__PURE__ */ w("button", {
|
|
574
593
|
type: "button",
|
|
575
|
-
onClick: () =>
|
|
594
|
+
onClick: () => R(!1),
|
|
576
595
|
className: "rounded-lg border border-border-seam px-4 py-2 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken",
|
|
577
|
-
children: "Cancel"
|
|
578
|
-
}), /* @__PURE__ */
|
|
596
|
+
children: p("common.cancel", "Cancel")
|
|
597
|
+
}), /* @__PURE__ */ T("button", {
|
|
579
598
|
type: "submit",
|
|
580
599
|
disabled: F.isPending,
|
|
581
600
|
className: "inline-flex items-center gap-1.5 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-semibold text-action-primary-text transition-colors hover:bg-action-primary-bg/90 disabled:opacity-60",
|
|
582
|
-
children: [F.isPending && /* @__PURE__ */
|
|
601
|
+
children: [F.isPending && /* @__PURE__ */ w(v, { className: "h-4 w-4 animate-spin" }), p("atheletebridge.pages.teamDetail.addMember", "Add member")]
|
|
583
602
|
})] })
|
|
584
603
|
]
|
|
585
604
|
})] })
|
|
@@ -588,6 +607,6 @@ function F() {
|
|
|
588
607
|
});
|
|
589
608
|
}
|
|
590
609
|
//#endregion
|
|
591
|
-
export {
|
|
610
|
+
export { P as TeamDetailPage };
|
|
592
611
|
|
|
593
612
|
//# sourceMappingURL=TeamDetailPage.js.map
|