@burdenoff/microfe-atheletebridge 2026.805.1 → 2026.829.1
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/hooks/index.d.ts +1 -1
- package/dist/atheletebridge/hooks/index.d.ts.map +1 -1
- package/dist/atheletebridge/hooks/useAthleteBridgeApi.d.ts +41 -1
- package/dist/atheletebridge/hooks/useAthleteBridgeApi.d.ts.map +1 -1
- package/dist/atheletebridge/hooks/useAthleteBridgeApi.js +58 -28
- package/dist/atheletebridge/hooks/useAthleteBridgeApi.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 +6 -2
- package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.js +330 -174
- 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 +7 -0
- package/dist/atheletebridge/pages/performance/PerformancePage.d.ts.map +1 -1
- package/dist/atheletebridge/pages/performance/PerformancePage.js +526 -362
- 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,275 +1,309 @@
|
|
|
1
1
|
import { useAbTranslate as e } from "../../i18n.js";
|
|
2
2
|
import { useAthleteBridge as t } from "../../context/AthleteBridgeContext.js";
|
|
3
3
|
import { cn as n } from "../../utils/cn.js";
|
|
4
|
-
import {
|
|
5
|
-
import { useAddMember as
|
|
6
|
-
import { FormField as
|
|
7
|
-
import { useCallback as
|
|
8
|
-
import { ArrowLeft as
|
|
9
|
-
import { Fragment as
|
|
10
|
-
import { GlassCard as
|
|
4
|
+
import { MEMBER_ROLE_OPTIONS as r, SPORT_ICONS as i, SPORT_OPTIONS as a } from "../../components/domain.js";
|
|
5
|
+
import { useAddMember as o, useCreateTeam as s } from "../../hooks/useAthleteBridgeApi.js";
|
|
6
|
+
import { FormField as c, fieldInputClass as l } from "../../components/form.js";
|
|
7
|
+
import { useCallback as u, useMemo as ee, useState as d } from "react";
|
|
8
|
+
import { ArrowLeft as f, ArrowRight as p, Check as m, Loader2 as h, Users as g } from "lucide-react";
|
|
9
|
+
import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
10
|
+
import { GlassCard as te } from "@burdenoff/fe-libs/ui";
|
|
11
11
|
//#region src/atheletebridge/pages/onboarding/OnboardingPage.tsx
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
value: "",
|
|
15
|
-
label: "Not age-banded"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
value: "U8",
|
|
19
|
-
label: "U8"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
value: "U10",
|
|
23
|
-
label: "U10"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
value: "U12",
|
|
27
|
-
label: "U12"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
value: "U14",
|
|
31
|
-
label: "U14"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
value: "U16",
|
|
35
|
-
label: "U16"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
value: "U18",
|
|
39
|
-
label: "U18"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
value: "U21",
|
|
43
|
-
label: "U21"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
value: "SENIOR",
|
|
47
|
-
label: "Senior"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
value: "MASTERS",
|
|
51
|
-
label: "Masters"
|
|
52
|
-
}
|
|
53
|
-
];
|
|
54
|
-
function w(e) {
|
|
55
|
-
let t = e.getFullYear(), n = (e) => String(e % 100).padStart(2, "0");
|
|
12
|
+
function b(e) {
|
|
56
13
|
return [
|
|
57
14
|
{
|
|
58
15
|
value: "",
|
|
59
|
-
label: "
|
|
16
|
+
label: e("atheletebridge.onboarding.ageGroup.none", "Not age-banded")
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
value: "U8",
|
|
20
|
+
label: "U8"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
value: "U10",
|
|
24
|
+
label: "U10"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
value: "U12",
|
|
28
|
+
label: "U12"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
value: "U14",
|
|
32
|
+
label: "U14"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
value: "U16",
|
|
36
|
+
label: "U16"
|
|
60
37
|
},
|
|
61
38
|
{
|
|
62
|
-
value:
|
|
63
|
-
label:
|
|
39
|
+
value: "U18",
|
|
40
|
+
label: "U18"
|
|
64
41
|
},
|
|
65
42
|
{
|
|
66
|
-
value:
|
|
67
|
-
label:
|
|
43
|
+
value: "U21",
|
|
44
|
+
label: "U21"
|
|
68
45
|
},
|
|
69
46
|
{
|
|
70
|
-
value:
|
|
71
|
-
label:
|
|
47
|
+
value: "SENIOR",
|
|
48
|
+
label: e("atheletebridge.onboarding.ageGroup.senior", "Senior")
|
|
72
49
|
},
|
|
73
50
|
{
|
|
74
|
-
value:
|
|
75
|
-
label:
|
|
51
|
+
value: "MASTERS",
|
|
52
|
+
label: e("atheletebridge.onboarding.ageGroup.masters", "Masters")
|
|
76
53
|
}
|
|
77
54
|
];
|
|
78
55
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
56
|
+
function x(e, t) {
|
|
57
|
+
let n = e.getFullYear(), r = (e) => String(e % 100).padStart(2, "0");
|
|
58
|
+
return [
|
|
59
|
+
{
|
|
60
|
+
value: "",
|
|
61
|
+
label: t("atheletebridge.onboarding.season.none", "No season")
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
value: String(n),
|
|
65
|
+
label: String(n)
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
value: `${n}/${r(n + 1)}`,
|
|
69
|
+
label: `${n}/${r(n + 1)}`
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
value: `${n - 1}/${r(n)}`,
|
|
73
|
+
label: `${n - 1}/${r(n)}`
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
value: String(n - 1),
|
|
77
|
+
label: String(n - 1)
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
var S = 3, C = 120;
|
|
82
|
+
function w(e, t) {
|
|
83
|
+
switch (e) {
|
|
84
|
+
case 1: return t("atheletebridge.onboarding.stepLabel.sport", "Your sport");
|
|
85
|
+
case 2: return t("atheletebridge.onboarding.stepLabel.team", "Create your team");
|
|
86
|
+
case 3: return t("atheletebridge.onboarding.stepLabel.role", "Your role");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
var T = "bg-[linear-gradient(120deg,var(--color-action-primary-bg),color-mix(in_oklab,var(--color-action-primary-bg)_62%,var(--color-accent-purple)),var(--color-action-primary-bg))]", E = n("inline-flex items-center justify-center gap-1.5 rounded-lg px-5 py-2.5 text-sm font-semibold", "text-action-primary-text shadow-elevation-1 transition-[filter,box-shadow]", "hover:shadow-elevation-2 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", T), D = n("inline-flex items-center justify-center gap-1.5 rounded-lg border border-border-seam px-5 py-2.5", "text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]"), O = n("rounded-lg px-4 py-2.5 text-sm font-medium text-text-secondary transition-colors", "hover:text-text-primary focus-visible:outline-none focus-visible:ring-2", "focus-visible:ring-[var(--color-focus-ring)]"), k = n("inline-flex items-center gap-2 rounded-full border px-4 py-2 text-sm font-medium transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", "motion-safe:hover:-translate-y-0.5"), A = "border-border-seam bg-bg-surface text-text-secondary hover:border-border-strong hover:text-text-primary", j = n("border-transparent text-action-primary-text shadow-elevation-1", T), ne = ({ current: e, stepLabel: t, progressLabel: r }) => /* @__PURE__ */ v("div", {
|
|
84
90
|
className: "flex items-start justify-center",
|
|
85
91
|
role: "progressbar",
|
|
86
92
|
"aria-valuemin": 1,
|
|
87
|
-
"aria-valuemax":
|
|
93
|
+
"aria-valuemax": S,
|
|
88
94
|
"aria-valuenow": e,
|
|
89
|
-
"aria-valuetext":
|
|
90
|
-
"aria-label":
|
|
95
|
+
"aria-valuetext": `${r} ${e} / ${S}: ${t(e)}`,
|
|
96
|
+
"aria-label": r,
|
|
91
97
|
children: [
|
|
92
98
|
1,
|
|
93
99
|
2,
|
|
94
100
|
3
|
|
95
|
-
].map((
|
|
96
|
-
let
|
|
97
|
-
return /* @__PURE__ */
|
|
101
|
+
].map((r, i) => {
|
|
102
|
+
let a = r < e, o = r === e;
|
|
103
|
+
return /* @__PURE__ */ y("div", {
|
|
98
104
|
className: "flex items-start",
|
|
99
105
|
"aria-hidden": "true",
|
|
100
|
-
children: [
|
|
106
|
+
children: [i > 0 && /* @__PURE__ */ v("span", { className: n("mt-6 h-px w-10 shrink-0 transition-colors sm:w-20", r <= e ? "bg-[var(--color-accent-teal)]" : "bg-border-seam") }), /* @__PURE__ */ y("div", {
|
|
101
107
|
className: "flex w-24 flex-col items-center gap-2 sm:w-32",
|
|
102
|
-
children: [/* @__PURE__ */
|
|
103
|
-
className: n("flex h-12 w-12 items-center justify-center rounded-full text-base font-semibold transition-all",
|
|
104
|
-
children:
|
|
105
|
-
}), /* @__PURE__ */
|
|
106
|
-
className: n("text-center text-sm",
|
|
107
|
-
children:
|
|
108
|
+
children: [/* @__PURE__ */ v("span", {
|
|
109
|
+
className: n("flex h-12 w-12 items-center justify-center rounded-full text-base font-semibold transition-all", a && "bg-[var(--color-accent-teal)] text-[var(--color-bg-canvas)]", o && n("text-action-primary-text shadow-elevation-2", T), !a && !o && "border border-border-strong text-text-muted"),
|
|
110
|
+
children: a ? /* @__PURE__ */ v(m, { className: "h-5 w-5" }) : r
|
|
111
|
+
}), /* @__PURE__ */ v("span", {
|
|
112
|
+
className: n("text-center text-sm", o ? "font-semibold text-text-primary" : "text-text-secondary"),
|
|
113
|
+
children: t(r)
|
|
108
114
|
})]
|
|
109
115
|
})]
|
|
110
|
-
},
|
|
116
|
+
}, r);
|
|
111
117
|
})
|
|
112
|
-
}),
|
|
118
|
+
}), M = ({ value: e, onSelect: t, size: r, getLabel: o, groupLabel: s }) => /* @__PURE__ */ v("div", {
|
|
113
119
|
className: "flex flex-wrap gap-2",
|
|
114
120
|
role: "group",
|
|
115
|
-
"aria-label":
|
|
116
|
-
children:
|
|
117
|
-
let s = a
|
|
118
|
-
return /* @__PURE__ */
|
|
121
|
+
"aria-label": s,
|
|
122
|
+
children: a.map((a) => {
|
|
123
|
+
let s = i[a], c = e === a;
|
|
124
|
+
return /* @__PURE__ */ y("button", {
|
|
119
125
|
type: "button",
|
|
120
|
-
onClick: () => t(
|
|
126
|
+
onClick: () => t(a),
|
|
121
127
|
"aria-pressed": c,
|
|
122
|
-
className: n(
|
|
123
|
-
children: [/* @__PURE__ */
|
|
128
|
+
className: n(k, r === "lg" && "px-5 py-2.5 text-base", c ? j : A),
|
|
129
|
+
children: [/* @__PURE__ */ v(s, {
|
|
124
130
|
className: r === "lg" ? "h-5 w-5" : "h-4 w-4",
|
|
125
131
|
"aria-hidden": "true"
|
|
126
|
-
}), o
|
|
127
|
-
},
|
|
132
|
+
}), o(a)]
|
|
133
|
+
}, a);
|
|
128
134
|
})
|
|
129
|
-
}),
|
|
130
|
-
let
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
}), N = () => {
|
|
136
|
+
let i = e(), { navigateTo: a, currentUser: m } = t(), T = s(), N = o(), [P, F] = d(1), [I, L] = d(null), [R, z] = d(""), [B, V] = d(""), [H, U] = d(""), [W, G] = d(null), [K, q] = d(null), J = b(i), Y = ee(() => x(/* @__PURE__ */ new Date(), i), [i]), X = u((e) => {
|
|
137
|
+
switch (e) {
|
|
138
|
+
case "ATHLETICS": return i("atheletebridge.sport.athletics", "Athletics");
|
|
139
|
+
case "BASKETBALL": return i("atheletebridge.sport.basketball", "Basketball");
|
|
140
|
+
case "CRICKET": return i("atheletebridge.sport.cricket", "Cricket");
|
|
141
|
+
case "ESPORTS": return i("atheletebridge.sport.esports", "Esports");
|
|
142
|
+
case "FOOTBALL": return i("atheletebridge.sport.football", "Football");
|
|
143
|
+
case "OTHER": return i("atheletebridge.sport.other", "Other");
|
|
144
|
+
case "SWIMMING": return i("atheletebridge.sport.swimming", "Swimming");
|
|
145
|
+
case "TENNIS": return i("atheletebridge.sport.tennis", "Tennis");
|
|
146
|
+
}
|
|
147
|
+
}, [i]), re = u((e) => {
|
|
148
|
+
switch (e) {
|
|
149
|
+
case "PLAYER": return i("atheletebridge.memberRole.player", "Player");
|
|
150
|
+
case "CAPTAIN": return i("atheletebridge.memberRole.captain", "Captain");
|
|
151
|
+
case "COACH": return i("atheletebridge.memberRole.coach", "Coach");
|
|
152
|
+
case "ASSISTANT_COACH": return i("atheletebridge.memberRole.assistantCoach", "Assistant Coach");
|
|
153
|
+
case "PHYSIO": return i("atheletebridge.memberRole.physio", "Physio");
|
|
154
|
+
case "MANAGER": return i("atheletebridge.memberRole.manager", "Manager");
|
|
155
|
+
}
|
|
156
|
+
}, [i]), Z = T.isPending || N.isPending, Q = u(() => a("/"), [a]), ie = u(() => {
|
|
157
|
+
q(null), F((e) => e === 1 ? 1 : e - 1);
|
|
158
|
+
}, []), $ = u((e) => {
|
|
159
|
+
L(e), q(null);
|
|
160
|
+
}, []), ae = u(() => {
|
|
161
|
+
if (P === 1) {
|
|
162
|
+
if (!I) {
|
|
163
|
+
q(i("atheletebridge.pages.onboarding.errorSport", "Pick a sport to continue."));
|
|
138
164
|
return;
|
|
139
165
|
}
|
|
140
|
-
|
|
166
|
+
q(null), F(2);
|
|
141
167
|
return;
|
|
142
168
|
}
|
|
143
|
-
if (!
|
|
144
|
-
|
|
169
|
+
if (!R.trim()) {
|
|
170
|
+
q(i("atheletebridge.pages.onboarding.errorTeamName", "Give your team a name to continue."));
|
|
145
171
|
return;
|
|
146
172
|
}
|
|
147
|
-
|
|
173
|
+
q(null), F(3);
|
|
148
174
|
}, [
|
|
149
|
-
|
|
175
|
+
P,
|
|
176
|
+
I,
|
|
150
177
|
R,
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
Y(a("atheletebridge.pages.onboarding.errorRole", "Pick your role to finish."));
|
|
178
|
+
i
|
|
179
|
+
]), oe = u(async (e) => {
|
|
180
|
+
if (e.preventDefault(), !I || !W || !R.trim()) {
|
|
181
|
+
q(i("atheletebridge.pages.onboarding.errorRole", "Pick your role to finish."));
|
|
156
182
|
return;
|
|
157
183
|
}
|
|
158
|
-
|
|
184
|
+
q(null);
|
|
159
185
|
try {
|
|
160
|
-
let e = await
|
|
161
|
-
name:
|
|
162
|
-
sport:
|
|
186
|
+
let e = await T.mutateAsync({
|
|
187
|
+
name: R.trim(),
|
|
188
|
+
sport: I,
|
|
163
189
|
status: "FORMING",
|
|
164
|
-
ageGroup:
|
|
165
|
-
season:
|
|
190
|
+
ageGroup: B || void 0,
|
|
191
|
+
season: H || void 0
|
|
166
192
|
});
|
|
167
|
-
if (
|
|
168
|
-
let t = [
|
|
193
|
+
if (m?.id) {
|
|
194
|
+
let t = [m.firstName, m.lastName].filter((e) => !!e).join(" ").trim(), n = m.name ?? (t || m.email);
|
|
169
195
|
try {
|
|
170
|
-
await
|
|
196
|
+
await N.mutateAsync({
|
|
171
197
|
teamId: e.id,
|
|
172
|
-
userId:
|
|
198
|
+
userId: m.id,
|
|
173
199
|
displayName: n,
|
|
174
|
-
role:
|
|
200
|
+
role: W,
|
|
175
201
|
status: "ACTIVE"
|
|
176
202
|
});
|
|
177
203
|
} catch {}
|
|
178
204
|
}
|
|
179
|
-
|
|
205
|
+
a(`/teams/${e.id}`);
|
|
180
206
|
} catch (e) {
|
|
181
|
-
|
|
207
|
+
q(e instanceof Error ? e.message : i("atheletebridge.pages.onboarding.errorCreate", "We couldn't create your team. Please try again."));
|
|
182
208
|
}
|
|
183
209
|
}, [
|
|
210
|
+
I,
|
|
211
|
+
W,
|
|
184
212
|
R,
|
|
185
|
-
K,
|
|
186
213
|
B,
|
|
187
214
|
H,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
return /* @__PURE__ */ b("div", {
|
|
215
|
+
m,
|
|
216
|
+
T,
|
|
217
|
+
N,
|
|
218
|
+
a,
|
|
219
|
+
i
|
|
220
|
+
]), se = P === 1 ? i("atheletebridge.pages.onboarding.step1Title", "What do you coach?") : P === 2 ? i("atheletebridge.pages.onboarding.step2Title", "Create your first team") : i("atheletebridge.pages.onboarding.step3Title", "What's your role?"), ce = P === 1 ? i("atheletebridge.pages.onboarding.step1Subtitle", "Your sport shapes the squads, fixtures and training you set up next.") : P === 2 ? i("atheletebridge.pages.onboarding.step2Subtitle", "You can add players and fixtures once your team exists.") : i("atheletebridge.pages.onboarding.step3Subtitle", "We add you to this squad so the roster starts with you.");
|
|
221
|
+
return /* @__PURE__ */ v("div", {
|
|
196
222
|
className: "min-h-full bg-bg-canvas px-4 py-10 sm:px-6 sm:py-14",
|
|
197
|
-
children: /* @__PURE__ */
|
|
223
|
+
children: /* @__PURE__ */ y("div", {
|
|
198
224
|
className: "mx-auto flex w-full max-w-2xl flex-col gap-8",
|
|
199
225
|
children: [
|
|
200
|
-
/* @__PURE__ */
|
|
201
|
-
|
|
226
|
+
/* @__PURE__ */ v(ne, {
|
|
227
|
+
current: P,
|
|
228
|
+
stepLabel: (e) => w(e, i),
|
|
229
|
+
progressLabel: i("atheletebridge.pages.onboarding.progressLabel", "Onboarding progress")
|
|
230
|
+
}),
|
|
231
|
+
/* @__PURE__ */ y("header", {
|
|
202
232
|
className: "text-center",
|
|
203
|
-
children: [/* @__PURE__ */
|
|
233
|
+
children: [/* @__PURE__ */ v("h1", {
|
|
204
234
|
className: "text-3xl font-bold tracking-tight text-text-primary sm:text-4xl",
|
|
205
|
-
children:
|
|
206
|
-
}), /* @__PURE__ */
|
|
235
|
+
children: se
|
|
236
|
+
}), /* @__PURE__ */ v("p", {
|
|
207
237
|
className: "mx-auto mt-2 max-w-lg text-sm text-text-secondary sm:text-base",
|
|
208
|
-
children:
|
|
238
|
+
children: ce
|
|
209
239
|
})]
|
|
210
240
|
}),
|
|
211
|
-
/* @__PURE__ */
|
|
212
|
-
onSubmit:
|
|
241
|
+
/* @__PURE__ */ v("form", {
|
|
242
|
+
onSubmit: oe,
|
|
213
243
|
noValidate: !0,
|
|
214
|
-
children: /* @__PURE__ */
|
|
244
|
+
children: /* @__PURE__ */ y(te, {
|
|
215
245
|
treatment: "insight",
|
|
216
246
|
className: "p-6 sm:p-8",
|
|
217
|
-
children: [/* @__PURE__ */
|
|
247
|
+
children: [/* @__PURE__ */ y("div", {
|
|
218
248
|
className: "space-y-6",
|
|
219
249
|
children: [
|
|
220
|
-
|
|
221
|
-
value:
|
|
250
|
+
P === 1 && /* @__PURE__ */ v(M, {
|
|
251
|
+
value: I,
|
|
222
252
|
onSelect: $,
|
|
223
|
-
size: "lg"
|
|
253
|
+
size: "lg",
|
|
254
|
+
getLabel: X,
|
|
255
|
+
groupLabel: i("atheletebridge.pages.onboarding.sport", "Sport")
|
|
224
256
|
}),
|
|
225
|
-
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
label:
|
|
257
|
+
P === 2 && /* @__PURE__ */ y(_, { children: [
|
|
258
|
+
/* @__PURE__ */ v(c, {
|
|
259
|
+
label: i("atheletebridge.pages.onboarding.teamName", "Team name"),
|
|
228
260
|
htmlFor: "onboarding-team-name",
|
|
229
261
|
required: !0,
|
|
230
|
-
children: /* @__PURE__ */
|
|
262
|
+
children: /* @__PURE__ */ v("input", {
|
|
231
263
|
id: "onboarding-team-name",
|
|
232
|
-
className:
|
|
233
|
-
value:
|
|
234
|
-
maxLength:
|
|
264
|
+
className: l,
|
|
265
|
+
value: R,
|
|
266
|
+
maxLength: C,
|
|
235
267
|
onChange: (e) => {
|
|
236
|
-
|
|
268
|
+
z(e.target.value), q(null);
|
|
237
269
|
},
|
|
238
|
-
placeholder: "e.g. Riverside United U16"
|
|
270
|
+
placeholder: i("atheletebridge.pages.onboarding.teamNamePlaceholder", "e.g. Riverside United U16")
|
|
239
271
|
})
|
|
240
272
|
}),
|
|
241
|
-
/* @__PURE__ */
|
|
242
|
-
label:
|
|
243
|
-
children: /* @__PURE__ */
|
|
244
|
-
value:
|
|
273
|
+
/* @__PURE__ */ v(c, {
|
|
274
|
+
label: i("atheletebridge.pages.onboarding.sport", "Sport"),
|
|
275
|
+
children: /* @__PURE__ */ v(M, {
|
|
276
|
+
value: I,
|
|
245
277
|
onSelect: $,
|
|
246
|
-
size: "sm"
|
|
278
|
+
size: "sm",
|
|
279
|
+
getLabel: X,
|
|
280
|
+
groupLabel: i("atheletebridge.pages.onboarding.sport", "Sport")
|
|
247
281
|
})
|
|
248
282
|
}),
|
|
249
|
-
/* @__PURE__ */
|
|
283
|
+
/* @__PURE__ */ y("div", {
|
|
250
284
|
className: "grid grid-cols-1 gap-5 sm:grid-cols-2",
|
|
251
|
-
children: [/* @__PURE__ */
|
|
252
|
-
label:
|
|
285
|
+
children: [/* @__PURE__ */ v(c, {
|
|
286
|
+
label: i("atheletebridge.pages.onboarding.ageGroup", "Age group"),
|
|
253
287
|
htmlFor: "onboarding-age-group",
|
|
254
|
-
children: /* @__PURE__ */
|
|
288
|
+
children: /* @__PURE__ */ v("select", {
|
|
255
289
|
id: "onboarding-age-group",
|
|
256
|
-
className:
|
|
257
|
-
value:
|
|
258
|
-
onChange: (e) =>
|
|
259
|
-
children:
|
|
290
|
+
className: l,
|
|
291
|
+
value: B,
|
|
292
|
+
onChange: (e) => V(e.target.value),
|
|
293
|
+
children: J.map((e) => /* @__PURE__ */ v("option", {
|
|
260
294
|
value: e.value,
|
|
261
295
|
children: e.label
|
|
262
296
|
}, e.value || "none"))
|
|
263
297
|
})
|
|
264
|
-
}), /* @__PURE__ */
|
|
265
|
-
label:
|
|
298
|
+
}), /* @__PURE__ */ v(c, {
|
|
299
|
+
label: i("atheletebridge.pages.onboarding.season", "Season"),
|
|
266
300
|
htmlFor: "onboarding-season",
|
|
267
|
-
children: /* @__PURE__ */
|
|
301
|
+
children: /* @__PURE__ */ v("select", {
|
|
268
302
|
id: "onboarding-season",
|
|
269
|
-
className:
|
|
270
|
-
value:
|
|
271
|
-
onChange: (e) =>
|
|
272
|
-
children:
|
|
303
|
+
className: l,
|
|
304
|
+
value: H,
|
|
305
|
+
onChange: (e) => U(e.target.value),
|
|
306
|
+
children: Y.map((e) => /* @__PURE__ */ v("option", {
|
|
273
307
|
value: e.value,
|
|
274
308
|
children: e.label
|
|
275
309
|
}, e.value || "none"))
|
|
@@ -277,67 +311,67 @@ var T = 3, E = 120, D = {
|
|
|
277
311
|
})]
|
|
278
312
|
})
|
|
279
313
|
] }),
|
|
280
|
-
|
|
314
|
+
P === 3 && /* @__PURE__ */ v("div", {
|
|
281
315
|
className: "flex flex-wrap gap-2",
|
|
282
316
|
role: "group",
|
|
283
|
-
"aria-label": "Your role",
|
|
284
|
-
children:
|
|
285
|
-
let t =
|
|
286
|
-
return /* @__PURE__ */
|
|
317
|
+
"aria-label": i("atheletebridge.pages.onboarding.yourRole", "Your role"),
|
|
318
|
+
children: r.map((e) => {
|
|
319
|
+
let t = W === e;
|
|
320
|
+
return /* @__PURE__ */ y("button", {
|
|
287
321
|
type: "button",
|
|
288
322
|
onClick: () => {
|
|
289
|
-
|
|
323
|
+
G(e), q(null);
|
|
290
324
|
},
|
|
291
325
|
"aria-pressed": t,
|
|
292
|
-
className: n(
|
|
293
|
-
children: [/* @__PURE__ */
|
|
326
|
+
className: n(k, "px-5 py-2.5 text-base", t ? j : A),
|
|
327
|
+
children: [/* @__PURE__ */ v(g, {
|
|
294
328
|
className: "h-5 w-5",
|
|
295
329
|
"aria-hidden": "true"
|
|
296
|
-
}),
|
|
330
|
+
}), re(e)]
|
|
297
331
|
}, e);
|
|
298
332
|
})
|
|
299
333
|
}),
|
|
300
|
-
|
|
334
|
+
K && /* @__PURE__ */ v("p", {
|
|
301
335
|
role: "alert",
|
|
302
336
|
className: "text-sm text-status-error-text",
|
|
303
|
-
children:
|
|
337
|
+
children: K
|
|
304
338
|
})
|
|
305
339
|
]
|
|
306
|
-
}), /* @__PURE__ */
|
|
340
|
+
}), /* @__PURE__ */ y("div", {
|
|
307
341
|
className: "mt-8 flex flex-wrap items-center justify-between gap-3 border-t border-border-seam pt-6",
|
|
308
|
-
children: [/* @__PURE__ */
|
|
342
|
+
children: [/* @__PURE__ */ y("button", {
|
|
309
343
|
type: "button",
|
|
310
|
-
onClick:
|
|
311
|
-
className:
|
|
344
|
+
onClick: P === 1 ? Q : ie,
|
|
345
|
+
className: D,
|
|
312
346
|
disabled: Z,
|
|
313
|
-
children: [/* @__PURE__ */
|
|
347
|
+
children: [/* @__PURE__ */ v(f, {
|
|
314
348
|
className: "h-4 w-4",
|
|
315
349
|
"aria-hidden": "true"
|
|
316
|
-
}),
|
|
317
|
-
}), /* @__PURE__ */
|
|
350
|
+
}), P === 1 ? i("atheletebridge.pages.onboarding.exit", "Exit") : i("atheletebridge.pages.onboarding.back", "Back")]
|
|
351
|
+
}), /* @__PURE__ */ y("div", {
|
|
318
352
|
className: "flex items-center gap-2",
|
|
319
|
-
children: [/* @__PURE__ */
|
|
353
|
+
children: [/* @__PURE__ */ v("button", {
|
|
320
354
|
type: "button",
|
|
321
355
|
onClick: Q,
|
|
322
|
-
className:
|
|
356
|
+
className: O,
|
|
323
357
|
disabled: Z,
|
|
324
|
-
children:
|
|
325
|
-
}),
|
|
358
|
+
children: i("atheletebridge.pages.onboarding.skip", "Skip for now")
|
|
359
|
+
}), P === 3 ? /* @__PURE__ */ v("button", {
|
|
326
360
|
type: "submit",
|
|
327
|
-
className:
|
|
328
|
-
disabled: Z || !
|
|
329
|
-
children: Z ? /* @__PURE__ */
|
|
361
|
+
className: E,
|
|
362
|
+
disabled: Z || !W,
|
|
363
|
+
children: Z ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(h, {
|
|
330
364
|
className: "h-4 w-4 animate-spin",
|
|
331
365
|
"aria-hidden": "true"
|
|
332
|
-
}),
|
|
366
|
+
}), i("atheletebridge.pages.onboarding.creating", "Creating…")] }) : /* @__PURE__ */ y(_, { children: [i("atheletebridge.pages.onboarding.finish", "Create team"), /* @__PURE__ */ v(p, {
|
|
333
367
|
className: "h-4 w-4",
|
|
334
368
|
"aria-hidden": "true"
|
|
335
369
|
})] })
|
|
336
|
-
}) : /* @__PURE__ */
|
|
370
|
+
}) : /* @__PURE__ */ y("button", {
|
|
337
371
|
type: "button",
|
|
338
|
-
onClick:
|
|
339
|
-
className:
|
|
340
|
-
children: [
|
|
372
|
+
onClick: ae,
|
|
373
|
+
className: E,
|
|
374
|
+
children: [i("atheletebridge.pages.onboarding.continue", "Continue"), /* @__PURE__ */ v(p, {
|
|
341
375
|
className: "h-4 w-4",
|
|
342
376
|
"aria-hidden": "true"
|
|
343
377
|
})]
|
|
@@ -346,19 +380,19 @@ var T = 3, E = 120, D = {
|
|
|
346
380
|
})]
|
|
347
381
|
})
|
|
348
382
|
}),
|
|
349
|
-
/* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ y("p", {
|
|
350
384
|
className: "text-center text-sm text-text-secondary",
|
|
351
385
|
children: [
|
|
352
|
-
|
|
386
|
+
i("atheletebridge.pages.onboarding.footer", "Step"),
|
|
353
387
|
" ",
|
|
354
|
-
|
|
388
|
+
P,
|
|
355
389
|
" ",
|
|
356
|
-
|
|
390
|
+
i("atheletebridge.pages.onboarding.footerOf", "of"),
|
|
357
391
|
" ",
|
|
358
|
-
|
|
392
|
+
S,
|
|
359
393
|
" —",
|
|
360
394
|
" ",
|
|
361
|
-
|
|
395
|
+
i("atheletebridge.pages.onboarding.footerHint", "takes about a minute.")
|
|
362
396
|
]
|
|
363
397
|
})
|
|
364
398
|
]
|
|
@@ -366,6 +400,6 @@ var T = 3, E = 120, D = {
|
|
|
366
400
|
});
|
|
367
401
|
};
|
|
368
402
|
//#endregion
|
|
369
|
-
export {
|
|
403
|
+
export { N as OnboardingPage };
|
|
370
404
|
|
|
371
405
|
//# sourceMappingURL=OnboardingPage.js.map
|