@burdenoff/microfe-atheletebridge 2026.706.2 → 2026.713.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.
Files changed (186) hide show
  1. package/dist/atheletebridge/AthleteBridgeRoot.d.ts +5 -0
  2. package/dist/atheletebridge/AthleteBridgeRoot.d.ts.map +1 -0
  3. package/dist/atheletebridge/AthleteBridgeRoutes.d.ts +4 -0
  4. package/dist/atheletebridge/AthleteBridgeRoutes.d.ts.map +1 -0
  5. package/dist/atheletebridge/AthleteBridgeRoutes.js +135 -57
  6. package/dist/atheletebridge/AthleteBridgeRoutes.js.map +1 -1
  7. package/dist/atheletebridge/components/AthleteSelect.d.ts +26 -0
  8. package/dist/atheletebridge/components/AthleteSelect.d.ts.map +1 -0
  9. package/dist/atheletebridge/components/Crest.d.ts +17 -0
  10. package/dist/atheletebridge/components/Crest.d.ts.map +1 -0
  11. package/dist/atheletebridge/components/CursorPager.d.ts +12 -0
  12. package/dist/atheletebridge/components/CursorPager.d.ts.map +1 -0
  13. package/dist/atheletebridge/components/DrillVideoLink.d.ts +12 -0
  14. package/dist/atheletebridge/components/DrillVideoLink.d.ts.map +1 -0
  15. package/dist/atheletebridge/components/EmptyState.d.ts +14 -0
  16. package/dist/atheletebridge/components/EmptyState.d.ts.map +1 -0
  17. package/dist/atheletebridge/components/FilterSelect.d.ts +23 -0
  18. package/dist/atheletebridge/components/FilterSelect.d.ts.map +1 -0
  19. package/dist/atheletebridge/components/FixtureCard.d.ts +10 -0
  20. package/dist/atheletebridge/components/FixtureCard.d.ts.map +1 -0
  21. package/dist/atheletebridge/components/LoadingState.d.ts +16 -0
  22. package/dist/atheletebridge/components/LoadingState.d.ts.map +1 -0
  23. package/dist/atheletebridge/components/MatchupRow.d.ts +16 -0
  24. package/dist/atheletebridge/components/MatchupRow.d.ts.map +1 -0
  25. package/dist/atheletebridge/components/MetricsCard.d.ts +26 -0
  26. package/dist/atheletebridge/components/MetricsCard.d.ts.map +1 -0
  27. package/dist/atheletebridge/components/PageLayout.d.ts +22 -0
  28. package/dist/atheletebridge/components/PageLayout.d.ts.map +1 -0
  29. package/dist/atheletebridge/components/ProgramCard.d.ts +15 -0
  30. package/dist/atheletebridge/components/ProgramCard.d.ts.map +1 -0
  31. package/dist/atheletebridge/components/RouteAnalytics.d.ts +9 -0
  32. package/dist/atheletebridge/components/RouteAnalytics.d.ts.map +1 -0
  33. package/dist/atheletebridge/components/RouteAnalytics.js +30 -0
  34. package/dist/atheletebridge/components/RouteAnalytics.js.map +1 -0
  35. package/dist/atheletebridge/components/Scoreboard.d.ts +47 -0
  36. package/dist/atheletebridge/components/Scoreboard.d.ts.map +1 -0
  37. package/dist/atheletebridge/components/SessionCard.d.ts +14 -0
  38. package/dist/atheletebridge/components/SessionCard.d.ts.map +1 -0
  39. package/dist/atheletebridge/components/SessionStatusTimeline.d.ts +14 -0
  40. package/dist/atheletebridge/components/SessionStatusTimeline.d.ts.map +1 -0
  41. package/dist/atheletebridge/components/StatusBadge.d.ts +16 -0
  42. package/dist/atheletebridge/components/StatusBadge.d.ts.map +1 -0
  43. package/dist/atheletebridge/components/TeamCard.d.ts +16 -0
  44. package/dist/atheletebridge/components/TeamCard.d.ts.map +1 -0
  45. package/dist/atheletebridge/components/UserAvatar.d.ts +27 -0
  46. package/dist/atheletebridge/components/UserAvatar.d.ts.map +1 -0
  47. package/dist/atheletebridge/components/UserSearchSelect.d.ts +24 -0
  48. package/dist/atheletebridge/components/UserSearchSelect.d.ts.map +1 -0
  49. package/dist/atheletebridge/components/domain.d.ts +18 -0
  50. package/dist/atheletebridge/components/domain.d.ts.map +1 -0
  51. package/dist/atheletebridge/components/form.d.ts +15 -0
  52. package/dist/atheletebridge/components/form.d.ts.map +1 -0
  53. package/dist/atheletebridge/components/index.d.ts +30 -0
  54. package/dist/atheletebridge/components/index.d.ts.map +1 -0
  55. package/dist/atheletebridge/components/viz/AvatarStack.d.ts +13 -0
  56. package/dist/atheletebridge/components/viz/AvatarStack.d.ts.map +1 -0
  57. package/dist/atheletebridge/components/viz/BarChart.d.ts +17 -0
  58. package/dist/atheletebridge/components/viz/BarChart.d.ts.map +1 -0
  59. package/dist/atheletebridge/components/viz/DonutChart.d.ts +20 -0
  60. package/dist/atheletebridge/components/viz/DonutChart.d.ts.map +1 -0
  61. package/dist/atheletebridge/components/viz/LineChart.d.ts +20 -0
  62. package/dist/atheletebridge/components/viz/LineChart.d.ts.map +1 -0
  63. package/dist/atheletebridge/components/viz/ProgressRing.d.ts +20 -0
  64. package/dist/atheletebridge/components/viz/ProgressRing.d.ts.map +1 -0
  65. package/dist/atheletebridge/components/viz/RatingStars.d.ts +28 -0
  66. package/dist/atheletebridge/components/viz/RatingStars.d.ts.map +1 -0
  67. package/dist/atheletebridge/components/viz/Sparkline.d.ts +16 -0
  68. package/dist/atheletebridge/components/viz/Sparkline.d.ts.map +1 -0
  69. package/dist/atheletebridge/components/viz/StatCard.d.ts +22 -0
  70. package/dist/atheletebridge/components/viz/StatCard.d.ts.map +1 -0
  71. package/dist/atheletebridge/components/viz/StepProgress.d.ts +17 -0
  72. package/dist/atheletebridge/components/viz/StepProgress.d.ts.map +1 -0
  73. package/dist/atheletebridge/components/viz/Timeline.d.ts +21 -0
  74. package/dist/atheletebridge/components/viz/Timeline.d.ts.map +1 -0
  75. package/dist/atheletebridge/components/viz/index.d.ts +25 -0
  76. package/dist/atheletebridge/components/viz/index.d.ts.map +1 -0
  77. package/dist/atheletebridge/components/viz/lib/Avatar.d.ts +15 -0
  78. package/dist/atheletebridge/components/viz/lib/Avatar.d.ts.map +1 -0
  79. package/dist/atheletebridge/components/viz/lib/CartesianFrame.d.ts +44 -0
  80. package/dist/atheletebridge/components/viz/lib/CartesianFrame.d.ts.map +1 -0
  81. package/dist/atheletebridge/components/viz/lib/ResponsiveSvg.d.ts +27 -0
  82. package/dist/atheletebridge/components/viz/lib/ResponsiveSvg.d.ts.map +1 -0
  83. package/dist/atheletebridge/components/viz/lib/format.d.ts +10 -0
  84. package/dist/atheletebridge/components/viz/lib/format.d.ts.map +1 -0
  85. package/dist/atheletebridge/components/viz/lib/geometry.d.ts +41 -0
  86. package/dist/atheletebridge/components/viz/lib/geometry.d.ts.map +1 -0
  87. package/dist/atheletebridge/components/viz/lib/hooks.d.ts +18 -0
  88. package/dist/atheletebridge/components/viz/lib/hooks.d.ts.map +1 -0
  89. package/dist/atheletebridge/components/viz/lib/palette.d.ts +31 -0
  90. package/dist/atheletebridge/components/viz/lib/palette.d.ts.map +1 -0
  91. package/dist/atheletebridge/components/viz/lib/types.d.ts +27 -0
  92. package/dist/atheletebridge/components/viz/lib/types.d.ts.map +1 -0
  93. package/dist/atheletebridge/context/AthleteBridgeContext.d.ts +16 -0
  94. package/dist/atheletebridge/context/AthleteBridgeContext.d.ts.map +1 -0
  95. package/dist/atheletebridge/context/index.d.ts +6 -0
  96. package/dist/atheletebridge/context/index.d.ts.map +1 -0
  97. package/dist/atheletebridge/hooks/index.d.ts +3 -0
  98. package/dist/atheletebridge/hooks/index.d.ts.map +1 -0
  99. package/dist/atheletebridge/hooks/useAthleteBridgeAnalytics.d.ts +26 -0
  100. package/dist/atheletebridge/hooks/useAthleteBridgeAnalytics.d.ts.map +1 -0
  101. package/dist/atheletebridge/hooks/useAthleteBridgeApi.d.ts +215 -0
  102. package/dist/atheletebridge/hooks/useAthleteBridgeApi.d.ts.map +1 -0
  103. package/dist/atheletebridge/hooks/useAthleteBridgePageView.d.ts +16 -0
  104. package/dist/atheletebridge/hooks/useAthleteBridgePageView.d.ts.map +1 -0
  105. package/dist/atheletebridge/index.d.ts +11 -0
  106. package/dist/atheletebridge/index.d.ts.map +1 -0
  107. package/dist/atheletebridge/pages/DashboardPage.d.ts +12 -0
  108. package/dist/atheletebridge/pages/DashboardPage.d.ts.map +1 -0
  109. package/dist/atheletebridge/pages/StandingsPage.d.ts +10 -0
  110. package/dist/atheletebridge/pages/StandingsPage.d.ts.map +1 -0
  111. package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.d.ts +18 -0
  112. package/dist/atheletebridge/pages/analytics/CoachAnalyticsPage.d.ts.map +1 -0
  113. package/dist/atheletebridge/pages/athletes/AthleteProfilePage.d.ts +16 -0
  114. package/dist/atheletebridge/pages/athletes/AthleteProfilePage.d.ts.map +1 -0
  115. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.d.ts +12 -0
  116. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.d.ts.map +1 -0
  117. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.d.ts +12 -0
  118. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.d.ts.map +1 -0
  119. package/dist/atheletebridge/pages/fixtures/FixturesListPage.d.ts +11 -0
  120. package/dist/atheletebridge/pages/fixtures/FixturesListPage.d.ts.map +1 -0
  121. package/dist/atheletebridge/pages/performance/PerformancePage.d.ts +18 -0
  122. package/dist/atheletebridge/pages/performance/PerformancePage.d.ts.map +1 -0
  123. package/dist/atheletebridge/pages/programs/ProgramDetailPage.d.ts +10 -0
  124. package/dist/atheletebridge/pages/programs/ProgramDetailPage.d.ts.map +1 -0
  125. package/dist/atheletebridge/pages/programs/ProgramFormPage.d.ts +6 -0
  126. package/dist/atheletebridge/pages/programs/ProgramFormPage.d.ts.map +1 -0
  127. package/dist/atheletebridge/pages/programs/ProgramsListPage.d.ts +6 -0
  128. package/dist/atheletebridge/pages/programs/ProgramsListPage.d.ts.map +1 -0
  129. package/dist/atheletebridge/pages/sessions/SessionDetailPage.d.ts +16 -0
  130. package/dist/atheletebridge/pages/sessions/SessionDetailPage.d.ts.map +1 -0
  131. package/dist/atheletebridge/pages/sessions/SessionFormPage.d.ts +11 -0
  132. package/dist/atheletebridge/pages/sessions/SessionFormPage.d.ts.map +1 -0
  133. package/dist/atheletebridge/pages/sessions/SessionsListPage.d.ts +6 -0
  134. package/dist/atheletebridge/pages/sessions/SessionsListPage.d.ts.map +1 -0
  135. package/dist/atheletebridge/pages/teams/TeamDetailPage.d.ts +13 -0
  136. package/dist/atheletebridge/pages/teams/TeamDetailPage.d.ts.map +1 -0
  137. package/dist/atheletebridge/pages/teams/TeamFormPage.d.ts +6 -0
  138. package/dist/atheletebridge/pages/teams/TeamFormPage.d.ts.map +1 -0
  139. package/dist/atheletebridge/pages/teams/TeamsListPage.d.ts +6 -0
  140. package/dist/atheletebridge/pages/teams/TeamsListPage.d.ts.map +1 -0
  141. package/dist/atheletebridge/pages/tournaments/TournamentBracketPage.d.ts +18 -0
  142. package/dist/atheletebridge/pages/tournaments/TournamentBracketPage.d.ts.map +1 -0
  143. package/dist/atheletebridge/store/atheletebridgeStore.d.ts +50 -0
  144. package/dist/atheletebridge/store/atheletebridgeStore.d.ts.map +1 -0
  145. package/dist/atheletebridge/store/index.d.ts +6 -0
  146. package/dist/atheletebridge/store/index.d.ts.map +1 -0
  147. package/dist/atheletebridge/types/assistant.d.ts +62 -0
  148. package/dist/atheletebridge/types/assistant.d.ts.map +1 -0
  149. package/dist/atheletebridge/types/index.d.ts +411 -0
  150. package/dist/atheletebridge/types/index.d.ts.map +1 -0
  151. package/dist/atheletebridge/utils/cn.d.ts +4 -0
  152. package/dist/atheletebridge/utils/cn.d.ts.map +1 -0
  153. package/dist/atheletebridge/utils/datetime.d.ts +16 -0
  154. package/dist/atheletebridge/utils/datetime.d.ts.map +1 -0
  155. package/dist/atheletebridge/utils/formatters.d.ts +30 -0
  156. package/dist/atheletebridge/utils/formatters.d.ts.map +1 -0
  157. package/dist/atheletebridge/utils/identity.d.ts +24 -0
  158. package/dist/atheletebridge/utils/identity.d.ts.map +1 -0
  159. package/dist/atheletebridge/utils/index.d.ts +12 -0
  160. package/dist/atheletebridge/utils/index.d.ts.map +1 -0
  161. package/dist/atheletebridge/utils/navigation.d.ts +20 -0
  162. package/dist/atheletebridge/utils/navigation.d.ts.map +1 -0
  163. package/dist/atheletebridge/utils/pageContext.d.ts +25 -0
  164. package/dist/atheletebridge/utils/pageContext.d.ts.map +1 -0
  165. package/dist/atheletebridge/utils/pageContext.js +48 -0
  166. package/dist/atheletebridge/utils/pageContext.js.map +1 -0
  167. package/dist/atheletebridge/utils/timeAgo.d.ts +16 -0
  168. package/dist/atheletebridge/utils/timeAgo.d.ts.map +1 -0
  169. package/dist/atheletebridge/utils/url.d.ts +22 -0
  170. package/dist/atheletebridge/utils/url.d.ts.map +1 -0
  171. package/dist/generated/global-operations.d.ts +2 -0
  172. package/dist/generated/global-operations.d.ts.map +1 -0
  173. package/dist/generated/global-types.d.ts +23527 -0
  174. package/dist/generated/global-types.d.ts.map +1 -0
  175. package/dist/generated/wspace-operations.d.ts +208 -0
  176. package/dist/generated/wspace-operations.d.ts.map +1 -0
  177. package/dist/generated/wspace-types.d.ts +57851 -0
  178. package/dist/generated/wspace-types.d.ts.map +1 -0
  179. package/dist/index.d.ts +7 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +2 -1
  182. package/dist/services/createSandboxAssistantTransport.d.ts +24 -0
  183. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -0
  184. package/dist/services/createSandboxAssistantTransport.js +14 -0
  185. package/dist/services/createSandboxAssistantTransport.js.map +1 -0
  186. package/package.json +7 -3
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { AthleteBridgeRootProps } from './types';
3
+
4
+ export declare const AthleteBridgeRoot: FC<AthleteBridgeRootProps>;
5
+ //# sourceMappingURL=AthleteBridgeRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AthleteBridgeRoot.d.ts","sourceRoot":"","sources":["../../src/atheletebridge/AthleteBridgeRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAkBhC,OAAO,KAAK,EAAE,sBAAsB,EAAW,MAAM,SAAS,CAAC;AAY/D,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAgIxD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare const AthleteBridgeRoutes: FC;
4
+ //# sourceMappingURL=AthleteBridgeRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AthleteBridgeRoutes.d.ts","sourceRoot":"","sources":["../../src/atheletebridge/AthleteBridgeRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAuFhD,eAAO,MAAM,mBAAmB,EAAE,EAwMjC,CAAC"}
@@ -1,112 +1,190 @@
1
1
  import { useAthleteBridge as e } from "./context/AthleteBridgeContext.js";
2
- import { DashboardPage as t } from "./pages/DashboardPage.js";
3
- import { Suspense as n, lazy as r } from "react";
4
- import { Loader2 as i } from "lucide-react";
5
- import { Navigate as a, Route as o, Routes as s, useLocation as c } from "react-router-dom";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
2
+ import { RouteAnalytics as t } from "./components/RouteAnalytics.js";
3
+ import { DashboardPage as n } from "./pages/DashboardPage.js";
4
+ import { Suspense as r, lazy as i } from "react";
5
+ import { FeatureGate as a } from "@burdenoff/fe-libs/shared/feature-flags";
6
+ import { Loader2 as o } from "lucide-react";
7
+ import { Navigate as s, Route as c, Routes as l, useLocation as u } from "react-router-dom";
8
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
7
9
  //#region src/atheletebridge/AthleteBridgeRoutes.tsx
8
- var d = r(() => import("./pages/teams/TeamsListPage.js").then((e) => ({ default: e.TeamsListPage }))), f = r(() => import("./pages/teams/TeamDetailPage.js").then((e) => ({ default: e.TeamDetailPage }))), p = r(() => import("./pages/teams/TeamFormPage.js").then((e) => ({ default: e.TeamFormPage }))), m = r(() => import("./pages/fixtures/FixturesListPage.js").then((e) => ({ default: e.FixturesListPage }))), h = r(() => import("./pages/fixtures/FixtureDetailPage.js").then((e) => ({ default: e.FixtureDetailPage }))), g = r(() => import("./pages/fixtures/FixtureFormPage.js").then((e) => ({ default: e.FixtureFormPage }))), _ = r(() => import("./pages/StandingsPage.js").then((e) => ({ default: e.StandingsPage }))), v = r(() => import("./pages/programs/ProgramsListPage.js").then((e) => ({ default: e.ProgramsListPage }))), y = r(() => import("./pages/programs/ProgramDetailPage.js").then((e) => ({ default: e.ProgramDetailPage }))), b = r(() => import("./pages/programs/ProgramFormPage.js").then((e) => ({ default: e.ProgramFormPage }))), x = r(() => import("./pages/sessions/SessionsListPage.js").then((e) => ({ default: e.SessionsListPage }))), S = r(() => import("./pages/sessions/SessionDetailPage.js").then((e) => ({ default: e.SessionDetailPage }))), C = r(() => import("./pages/sessions/SessionFormPage.js").then((e) => ({ default: e.SessionFormPage }))), w = r(() => import("./pages/performance/PerformancePage.js").then((e) => ({ default: e.PerformancePage }))), T = r(() => import("./pages/athletes/AthleteProfilePage.js").then((e) => ({ default: e.AthleteProfilePage }))), E = r(() => import("./pages/analytics/CoachAnalyticsPage.js").then((e) => ({ default: e.CoachAnalyticsPage }))), D = r(() => import("./pages/tournaments/TournamentBracketPage.js").then((e) => ({ default: e.TournamentBracketPage }))), O = () => /* @__PURE__ */ l("div", {
10
+ var p = i(() => import("./pages/teams/TeamsListPage.js").then((e) => ({ default: e.TeamsListPage }))), m = i(() => import("./pages/teams/TeamDetailPage.js").then((e) => ({ default: e.TeamDetailPage }))), h = i(() => import("./pages/teams/TeamFormPage.js").then((e) => ({ default: e.TeamFormPage }))), g = i(() => import("./pages/fixtures/FixturesListPage.js").then((e) => ({ default: e.FixturesListPage }))), _ = i(() => import("./pages/fixtures/FixtureDetailPage.js").then((e) => ({ default: e.FixtureDetailPage }))), v = i(() => import("./pages/fixtures/FixtureFormPage.js").then((e) => ({ default: e.FixtureFormPage }))), y = i(() => import("./pages/StandingsPage.js").then((e) => ({ default: e.StandingsPage }))), b = i(() => import("./pages/programs/ProgramsListPage.js").then((e) => ({ default: e.ProgramsListPage }))), x = i(() => import("./pages/programs/ProgramDetailPage.js").then((e) => ({ default: e.ProgramDetailPage }))), S = i(() => import("./pages/programs/ProgramFormPage.js").then((e) => ({ default: e.ProgramFormPage }))), C = i(() => import("./pages/sessions/SessionsListPage.js").then((e) => ({ default: e.SessionsListPage }))), w = i(() => import("./pages/sessions/SessionDetailPage.js").then((e) => ({ default: e.SessionDetailPage }))), T = i(() => import("./pages/sessions/SessionFormPage.js").then((e) => ({ default: e.SessionFormPage }))), E = i(() => import("./pages/performance/PerformancePage.js").then((e) => ({ default: e.PerformancePage }))), D = i(() => import("./pages/athletes/AthleteProfilePage.js").then((e) => ({ default: e.AthleteProfilePage }))), O = i(() => import("./pages/analytics/CoachAnalyticsPage.js").then((e) => ({ default: e.CoachAnalyticsPage }))), k = i(() => import("./pages/tournaments/TournamentBracketPage.js").then((e) => ({ default: e.TournamentBracketPage }))), A = () => /* @__PURE__ */ d("div", {
9
11
  className: "flex min-h-[400px] items-center justify-center",
10
- children: /* @__PURE__ */ l(i, { className: "h-8 w-8 animate-spin text-text-secondary" })
11
- }), k = () => {
12
- let { basePath: r, isStandalone: i } = e(), k = c(), A = r === "/" ? "" : (r ?? "").replace(/\/$/, "");
13
- return A && !i && !(k.pathname === A || k.pathname.startsWith(A + "/")) ? null : /* @__PURE__ */ l("div", {
12
+ children: /* @__PURE__ */ d(o, { className: "h-8 w-8 animate-spin text-text-secondary" })
13
+ }), j = () => {
14
+ let { basePath: i, isStandalone: o } = e(), j = u(), M = i === "/" ? "" : (i ?? "").replace(/\/$/, "");
15
+ return M && !o && !(j.pathname === M || j.pathname.startsWith(M + "/")) ? null : /* @__PURE__ */ d("div", {
14
16
  className: "flex min-h-full flex-col",
15
- children: /* @__PURE__ */ l(n, {
16
- fallback: /* @__PURE__ */ l(O, {}),
17
- children: /* @__PURE__ */ u(s, { children: [
18
- /* @__PURE__ */ l(o, {
17
+ children: /* @__PURE__ */ f(r, {
18
+ fallback: /* @__PURE__ */ d(A, {}),
19
+ children: [/* @__PURE__ */ d(t, {}), /* @__PURE__ */ f(l, { children: [
20
+ /* @__PURE__ */ d(c, {
19
21
  index: !0,
20
- element: /* @__PURE__ */ l(t, {})
22
+ element: /* @__PURE__ */ d(n, {})
21
23
  }),
22
- /* @__PURE__ */ l(o, {
24
+ /* @__PURE__ */ d(c, {
23
25
  path: "teams",
24
- element: /* @__PURE__ */ l(d, {})
26
+ element: /* @__PURE__ */ d(a, {
27
+ flag: "atheletebridge.teams.enabled",
28
+ defaultValue: !0,
29
+ children: /* @__PURE__ */ d(p, {})
30
+ })
25
31
  }),
26
- /* @__PURE__ */ l(o, {
32
+ /* @__PURE__ */ d(c, {
27
33
  path: "teams/new",
28
- element: /* @__PURE__ */ l(p, {})
34
+ element: /* @__PURE__ */ d(a, {
35
+ flag: "atheletebridge.teams.enabled",
36
+ defaultValue: !0,
37
+ children: /* @__PURE__ */ d(h, {})
38
+ })
29
39
  }),
30
- /* @__PURE__ */ l(o, {
40
+ /* @__PURE__ */ d(c, {
31
41
  path: "teams/:id",
32
- element: /* @__PURE__ */ l(f, {})
42
+ element: /* @__PURE__ */ d(a, {
43
+ flag: "atheletebridge.teams.enabled",
44
+ defaultValue: !0,
45
+ children: /* @__PURE__ */ d(m, {})
46
+ })
33
47
  }),
34
- /* @__PURE__ */ l(o, {
48
+ /* @__PURE__ */ d(c, {
35
49
  path: "teams/:id/edit",
36
- element: /* @__PURE__ */ l(p, {})
50
+ element: /* @__PURE__ */ d(a, {
51
+ flag: "atheletebridge.teams.enabled",
52
+ defaultValue: !0,
53
+ children: /* @__PURE__ */ d(h, {})
54
+ })
37
55
  }),
38
- /* @__PURE__ */ l(o, {
56
+ /* @__PURE__ */ d(c, {
39
57
  path: "teams/:teamId/athletes/:memberId",
40
- element: /* @__PURE__ */ l(T, {})
58
+ element: /* @__PURE__ */ d(a, {
59
+ flag: "atheletebridge.teams.enabled",
60
+ defaultValue: !0,
61
+ children: /* @__PURE__ */ d(D, {})
62
+ })
41
63
  }),
42
- /* @__PURE__ */ l(o, {
64
+ /* @__PURE__ */ d(c, {
43
65
  path: "fixtures",
44
- element: /* @__PURE__ */ l(m, {})
66
+ element: /* @__PURE__ */ d(a, {
67
+ flag: "atheletebridge.fixtures.enabled",
68
+ defaultValue: !0,
69
+ children: /* @__PURE__ */ d(g, {})
70
+ })
45
71
  }),
46
- /* @__PURE__ */ l(o, {
72
+ /* @__PURE__ */ d(c, {
47
73
  path: "fixtures/new",
48
- element: /* @__PURE__ */ l(g, {})
74
+ element: /* @__PURE__ */ d(a, {
75
+ flag: "atheletebridge.fixtures.enabled",
76
+ defaultValue: !0,
77
+ children: /* @__PURE__ */ d(v, {})
78
+ })
49
79
  }),
50
- /* @__PURE__ */ l(o, {
80
+ /* @__PURE__ */ d(c, {
51
81
  path: "fixtures/:id",
52
- element: /* @__PURE__ */ l(h, {})
82
+ element: /* @__PURE__ */ d(a, {
83
+ flag: "atheletebridge.fixtures.enabled",
84
+ defaultValue: !0,
85
+ children: /* @__PURE__ */ d(_, {})
86
+ })
53
87
  }),
54
- /* @__PURE__ */ l(o, {
88
+ /* @__PURE__ */ d(c, {
55
89
  path: "standings",
56
- element: /* @__PURE__ */ l(_, {})
90
+ element: /* @__PURE__ */ d(a, {
91
+ flag: "atheletebridge.standings.enabled",
92
+ defaultValue: !0,
93
+ children: /* @__PURE__ */ d(y, {})
94
+ })
57
95
  }),
58
- /* @__PURE__ */ l(o, {
96
+ /* @__PURE__ */ d(c, {
59
97
  path: "programs",
60
- element: /* @__PURE__ */ l(v, {})
98
+ element: /* @__PURE__ */ d(a, {
99
+ flag: "atheletebridge.programs.enabled",
100
+ defaultValue: !0,
101
+ children: /* @__PURE__ */ d(b, {})
102
+ })
61
103
  }),
62
- /* @__PURE__ */ l(o, {
104
+ /* @__PURE__ */ d(c, {
63
105
  path: "programs/new",
64
- element: /* @__PURE__ */ l(b, {})
106
+ element: /* @__PURE__ */ d(a, {
107
+ flag: "atheletebridge.programs.enabled",
108
+ defaultValue: !0,
109
+ children: /* @__PURE__ */ d(S, {})
110
+ })
65
111
  }),
66
- /* @__PURE__ */ l(o, {
112
+ /* @__PURE__ */ d(c, {
67
113
  path: "programs/:id",
68
- element: /* @__PURE__ */ l(y, {})
114
+ element: /* @__PURE__ */ d(a, {
115
+ flag: "atheletebridge.programs.enabled",
116
+ defaultValue: !0,
117
+ children: /* @__PURE__ */ d(x, {})
118
+ })
69
119
  }),
70
- /* @__PURE__ */ l(o, {
120
+ /* @__PURE__ */ d(c, {
71
121
  path: "programs/:id/edit",
72
- element: /* @__PURE__ */ l(b, {})
122
+ element: /* @__PURE__ */ d(a, {
123
+ flag: "atheletebridge.programs.enabled",
124
+ defaultValue: !0,
125
+ children: /* @__PURE__ */ d(S, {})
126
+ })
73
127
  }),
74
- /* @__PURE__ */ l(o, {
128
+ /* @__PURE__ */ d(c, {
75
129
  path: "sessions",
76
- element: /* @__PURE__ */ l(x, {})
130
+ element: /* @__PURE__ */ d(a, {
131
+ flag: "atheletebridge.sessions.enabled",
132
+ defaultValue: !0,
133
+ children: /* @__PURE__ */ d(C, {})
134
+ })
77
135
  }),
78
- /* @__PURE__ */ l(o, {
136
+ /* @__PURE__ */ d(c, {
79
137
  path: "sessions/new",
80
- element: /* @__PURE__ */ l(C, {})
138
+ element: /* @__PURE__ */ d(a, {
139
+ flag: "atheletebridge.sessions.enabled",
140
+ defaultValue: !0,
141
+ children: /* @__PURE__ */ d(T, {})
142
+ })
81
143
  }),
82
- /* @__PURE__ */ l(o, {
144
+ /* @__PURE__ */ d(c, {
83
145
  path: "sessions/:id",
84
- element: /* @__PURE__ */ l(S, {})
146
+ element: /* @__PURE__ */ d(a, {
147
+ flag: "atheletebridge.sessions.enabled",
148
+ defaultValue: !0,
149
+ children: /* @__PURE__ */ d(w, {})
150
+ })
85
151
  }),
86
- /* @__PURE__ */ l(o, {
152
+ /* @__PURE__ */ d(c, {
87
153
  path: "performance",
88
- element: /* @__PURE__ */ l(w, {})
154
+ element: /* @__PURE__ */ d(a, {
155
+ flag: "atheletebridge.performance.enabled",
156
+ defaultValue: !0,
157
+ children: /* @__PURE__ */ d(E, {})
158
+ })
89
159
  }),
90
- /* @__PURE__ */ l(o, {
160
+ /* @__PURE__ */ d(c, {
91
161
  path: "analytics",
92
- element: /* @__PURE__ */ l(E, {})
162
+ element: /* @__PURE__ */ d(a, {
163
+ flag: "atheletebridge.analytics.enabled",
164
+ defaultValue: !0,
165
+ children: /* @__PURE__ */ d(O, {})
166
+ })
93
167
  }),
94
- /* @__PURE__ */ l(o, {
168
+ /* @__PURE__ */ d(c, {
95
169
  path: "tournaments",
96
- element: /* @__PURE__ */ l(D, {})
170
+ element: /* @__PURE__ */ d(a, {
171
+ flag: "atheletebridge.tournaments.enabled",
172
+ defaultValue: !0,
173
+ children: /* @__PURE__ */ d(k, {})
174
+ })
97
175
  }),
98
- /* @__PURE__ */ l(o, {
176
+ /* @__PURE__ */ d(c, {
99
177
  path: "*",
100
- element: /* @__PURE__ */ l(a, {
178
+ element: /* @__PURE__ */ d(s, {
101
179
  to: ".",
102
180
  replace: !0
103
181
  })
104
182
  })
105
- ] })
183
+ ] })]
106
184
  })
107
185
  });
108
186
  };
109
187
  //#endregion
110
- export { k as AthleteBridgeRoutes };
188
+ export { j as AthleteBridgeRoutes };
111
189
 
112
190
  //# sourceMappingURL=AthleteBridgeRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AthleteBridgeRoutes.js","names":[],"sources":["../../src/atheletebridge/AthleteBridgeRoutes.tsx"],"sourcesContent":["/**\n * AthleteBridge Routes\n * @module atheletebridge\n *\n * Real sports-domain routes wired to the deployed `wspace-atheletebridge-svc`\n * GraphQL contract. Dashboard is eager; entity pages are lazy.\n */\n\nimport { type FC, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router-dom';\nimport { Loader2 } from 'lucide-react';\nimport { useAthleteBridge } from './context/AthleteBridgeContext';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Teams\nconst TeamsListPage = lazy(() =>\n import('./pages/teams/TeamsListPage').then((m) => ({ default: m.TeamsListPage }))\n);\nconst TeamDetailPage = lazy(() =>\n import('./pages/teams/TeamDetailPage').then((m) => ({ default: m.TeamDetailPage }))\n);\nconst TeamFormPage = lazy(() =>\n import('./pages/teams/TeamFormPage').then((m) => ({ default: m.TeamFormPage }))\n);\n\n// Fixtures\nconst FixturesListPage = lazy(() =>\n import('./pages/fixtures/FixturesListPage').then((m) => ({ default: m.FixturesListPage }))\n);\nconst FixtureDetailPage = lazy(() =>\n import('./pages/fixtures/FixtureDetailPage').then((m) => ({ default: m.FixtureDetailPage }))\n);\nconst FixtureFormPage = lazy(() =>\n import('./pages/fixtures/FixtureFormPage').then((m) => ({ default: m.FixtureFormPage }))\n);\n\n// Standings\nconst StandingsPage = lazy(() =>\n import('./pages/StandingsPage').then((m) => ({ default: m.StandingsPage }))\n);\n\n// Programs\nconst ProgramsListPage = lazy(() =>\n import('./pages/programs/ProgramsListPage').then((m) => ({ default: m.ProgramsListPage }))\n);\nconst ProgramDetailPage = lazy(() =>\n import('./pages/programs/ProgramDetailPage').then((m) => ({ default: m.ProgramDetailPage }))\n);\nconst ProgramFormPage = lazy(() =>\n import('./pages/programs/ProgramFormPage').then((m) => ({ default: m.ProgramFormPage }))\n);\n\n// Sessions\nconst SessionsListPage = lazy(() =>\n import('./pages/sessions/SessionsListPage').then((m) => ({ default: m.SessionsListPage }))\n);\nconst SessionDetailPage = lazy(() =>\n import('./pages/sessions/SessionDetailPage').then((m) => ({ default: m.SessionDetailPage }))\n);\nconst SessionFormPage = lazy(() =>\n import('./pages/sessions/SessionFormPage').then((m) => ({ default: m.SessionFormPage }))\n);\n\n// Performance\nconst PerformancePage = lazy(() =>\n import('./pages/performance/PerformancePage').then((m) => ({ default: m.PerformancePage }))\n);\n\n// Athlete profile\nconst AthleteProfilePage = lazy(() =>\n import('./pages/athletes/AthleteProfilePage').then((m) => ({ default: m.AthleteProfilePage }))\n);\n\n// Coach analytics\nconst CoachAnalyticsPage = lazy(() =>\n import('./pages/analytics/CoachAnalyticsPage').then((m) => ({ default: m.CoachAnalyticsPage }))\n);\n\n// Tournaments (esports bracket)\nconst TournamentBracketPage = lazy(() =>\n import('./pages/tournaments/TournamentBracketPage').then((m) => ({\n default: m.TournamentBracketPage,\n }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n </div>\n);\n\nexport const AthleteBridgeRoutes: FC = () => {\n const { basePath, isStandalone } = useAthleteBridge();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render when the path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <Routes>\n {/* Dashboard */}\n <Route index element={<DashboardPage />} />\n\n {/* Teams */}\n <Route path=\"teams\" element={<TeamsListPage />} />\n <Route path=\"teams/new\" element={<TeamFormPage />} />\n <Route path=\"teams/:id\" element={<TeamDetailPage />} />\n <Route path=\"teams/:id/edit\" element={<TeamFormPage />} />\n\n {/* Athlete profile (reached from a team roster) */}\n <Route path=\"teams/:teamId/athletes/:memberId\" element={<AthleteProfilePage />} />\n\n {/* Fixtures */}\n <Route path=\"fixtures\" element={<FixturesListPage />} />\n <Route path=\"fixtures/new\" element={<FixtureFormPage />} />\n <Route path=\"fixtures/:id\" element={<FixtureDetailPage />} />\n\n {/* Standings */}\n <Route path=\"standings\" element={<StandingsPage />} />\n\n {/* Programs */}\n <Route path=\"programs\" element={<ProgramsListPage />} />\n <Route path=\"programs/new\" element={<ProgramFormPage />} />\n <Route path=\"programs/:id\" element={<ProgramDetailPage />} />\n <Route path=\"programs/:id/edit\" element={<ProgramFormPage />} />\n\n {/* Sessions */}\n <Route path=\"sessions\" element={<SessionsListPage />} />\n <Route path=\"sessions/new\" element={<SessionFormPage />} />\n <Route path=\"sessions/:id\" element={<SessionDetailPage />} />\n\n {/* Performance */}\n <Route path=\"performance\" element={<PerformancePage />} />\n\n {/* Analytics */}\n <Route path=\"analytics\" element={<CoachAnalyticsPage />} />\n\n {/* Tournaments (esports bracket) */}\n <Route path=\"tournaments\" element={<TournamentBracketPage />} />\n\n {/* Fallback */}\n <Route path=\"*\" element={<Navigate to=\".\" replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"AthleteBridgeRoutes.js","names":[],"sources":["../../src/atheletebridge/AthleteBridgeRoutes.tsx"],"sourcesContent":["/**\n * AthleteBridge Routes\n * @module atheletebridge\n *\n * Real sports-domain routes wired to the deployed `wspace-atheletebridge-svc`\n * GraphQL contract. Dashboard is eager; entity pages are lazy.\n */\n\nimport { type FC, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router-dom';\nimport { Loader2 } from 'lucide-react';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useAthleteBridge } from './context/AthleteBridgeContext';\nimport { RouteAnalytics } from './components/RouteAnalytics';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Teams\nconst TeamsListPage = lazy(() =>\n import('./pages/teams/TeamsListPage').then((m) => ({ default: m.TeamsListPage }))\n);\nconst TeamDetailPage = lazy(() =>\n import('./pages/teams/TeamDetailPage').then((m) => ({ default: m.TeamDetailPage }))\n);\nconst TeamFormPage = lazy(() =>\n import('./pages/teams/TeamFormPage').then((m) => ({ default: m.TeamFormPage }))\n);\n\n// Fixtures\nconst FixturesListPage = lazy(() =>\n import('./pages/fixtures/FixturesListPage').then((m) => ({ default: m.FixturesListPage }))\n);\nconst FixtureDetailPage = lazy(() =>\n import('./pages/fixtures/FixtureDetailPage').then((m) => ({ default: m.FixtureDetailPage }))\n);\nconst FixtureFormPage = lazy(() =>\n import('./pages/fixtures/FixtureFormPage').then((m) => ({ default: m.FixtureFormPage }))\n);\n\n// Standings\nconst StandingsPage = lazy(() =>\n import('./pages/StandingsPage').then((m) => ({ default: m.StandingsPage }))\n);\n\n// Programs\nconst ProgramsListPage = lazy(() =>\n import('./pages/programs/ProgramsListPage').then((m) => ({ default: m.ProgramsListPage }))\n);\nconst ProgramDetailPage = lazy(() =>\n import('./pages/programs/ProgramDetailPage').then((m) => ({ default: m.ProgramDetailPage }))\n);\nconst ProgramFormPage = lazy(() =>\n import('./pages/programs/ProgramFormPage').then((m) => ({ default: m.ProgramFormPage }))\n);\n\n// Sessions\nconst SessionsListPage = lazy(() =>\n import('./pages/sessions/SessionsListPage').then((m) => ({ default: m.SessionsListPage }))\n);\nconst SessionDetailPage = lazy(() =>\n import('./pages/sessions/SessionDetailPage').then((m) => ({ default: m.SessionDetailPage }))\n);\nconst SessionFormPage = lazy(() =>\n import('./pages/sessions/SessionFormPage').then((m) => ({ default: m.SessionFormPage }))\n);\n\n// Performance\nconst PerformancePage = lazy(() =>\n import('./pages/performance/PerformancePage').then((m) => ({ default: m.PerformancePage }))\n);\n\n// Athlete profile\nconst AthleteProfilePage = lazy(() =>\n import('./pages/athletes/AthleteProfilePage').then((m) => ({ default: m.AthleteProfilePage }))\n);\n\n// Coach analytics\nconst CoachAnalyticsPage = lazy(() =>\n import('./pages/analytics/CoachAnalyticsPage').then((m) => ({ default: m.CoachAnalyticsPage }))\n);\n\n// Tournaments (esports bracket)\nconst TournamentBracketPage = lazy(() =>\n import('./pages/tournaments/TournamentBracketPage').then((m) => ({\n default: m.TournamentBracketPage,\n }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n </div>\n);\n\nexport const AthleteBridgeRoutes: FC = () => {\n const { basePath, isStandalone } = useAthleteBridge();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render when the path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <RouteAnalytics />\n <Routes>\n {/* Dashboard */}\n <Route index element={<DashboardPage />} />\n\n {/* Teams */}\n <Route\n path=\"teams\"\n element={\n <FeatureGate flag=\"atheletebridge.teams.enabled\" defaultValue={true}>\n <TeamsListPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"teams/new\"\n element={\n <FeatureGate flag=\"atheletebridge.teams.enabled\" defaultValue={true}>\n <TeamFormPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"teams/:id\"\n element={\n <FeatureGate flag=\"atheletebridge.teams.enabled\" defaultValue={true}>\n <TeamDetailPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"teams/:id/edit\"\n element={\n <FeatureGate flag=\"atheletebridge.teams.enabled\" defaultValue={true}>\n <TeamFormPage />\n </FeatureGate>\n }\n />\n\n {/* Athlete profile (reached from a team roster) */}\n <Route\n path=\"teams/:teamId/athletes/:memberId\"\n element={\n <FeatureGate flag=\"atheletebridge.teams.enabled\" defaultValue={true}>\n <AthleteProfilePage />\n </FeatureGate>\n }\n />\n\n {/* Fixtures */}\n <Route\n path=\"fixtures\"\n element={\n <FeatureGate flag=\"atheletebridge.fixtures.enabled\" defaultValue={true}>\n <FixturesListPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"fixtures/new\"\n element={\n <FeatureGate flag=\"atheletebridge.fixtures.enabled\" defaultValue={true}>\n <FixtureFormPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"fixtures/:id\"\n element={\n <FeatureGate flag=\"atheletebridge.fixtures.enabled\" defaultValue={true}>\n <FixtureDetailPage />\n </FeatureGate>\n }\n />\n\n {/* Standings */}\n <Route\n path=\"standings\"\n element={\n <FeatureGate flag=\"atheletebridge.standings.enabled\" defaultValue={true}>\n <StandingsPage />\n </FeatureGate>\n }\n />\n\n {/* Programs */}\n <Route\n path=\"programs\"\n element={\n <FeatureGate flag=\"atheletebridge.programs.enabled\" defaultValue={true}>\n <ProgramsListPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"programs/new\"\n element={\n <FeatureGate flag=\"atheletebridge.programs.enabled\" defaultValue={true}>\n <ProgramFormPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"programs/:id\"\n element={\n <FeatureGate flag=\"atheletebridge.programs.enabled\" defaultValue={true}>\n <ProgramDetailPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"programs/:id/edit\"\n element={\n <FeatureGate flag=\"atheletebridge.programs.enabled\" defaultValue={true}>\n <ProgramFormPage />\n </FeatureGate>\n }\n />\n\n {/* Sessions */}\n <Route\n path=\"sessions\"\n element={\n <FeatureGate flag=\"atheletebridge.sessions.enabled\" defaultValue={true}>\n <SessionsListPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"sessions/new\"\n element={\n <FeatureGate flag=\"atheletebridge.sessions.enabled\" defaultValue={true}>\n <SessionFormPage />\n </FeatureGate>\n }\n />\n <Route\n path=\"sessions/:id\"\n element={\n <FeatureGate flag=\"atheletebridge.sessions.enabled\" defaultValue={true}>\n <SessionDetailPage />\n </FeatureGate>\n }\n />\n\n {/* Performance */}\n <Route\n path=\"performance\"\n element={\n <FeatureGate flag=\"atheletebridge.performance.enabled\" defaultValue={true}>\n <PerformancePage />\n </FeatureGate>\n }\n />\n\n {/* Analytics */}\n <Route\n path=\"analytics\"\n element={\n <FeatureGate flag=\"atheletebridge.analytics.enabled\" defaultValue={true}>\n <CoachAnalyticsPage />\n </FeatureGate>\n }\n />\n\n {/* Tournaments (esports bracket) */}\n <Route\n path=\"tournaments\"\n element={\n <FeatureGate flag=\"atheletebridge.tournaments.enabled\" defaultValue={true}>\n <TournamentBracketPage />\n </FeatureGate>\n }\n />\n\n {/* Fallback */}\n <Route path=\"*\" element={<Navigate to=\".\" replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Athlete picker
3
+ * @module atheletebridge/components
4
+ *
5
+ * Two coupled selects — pick a team, then pick an athlete from that team's live
6
+ * roster (`athListMembers`). Emits the athlete's user id (used everywhere an
7
+ * `athleteId` is required) plus a display name, so a coach never has to paste a
8
+ * raw UUID. Semantic tokens only.
9
+ */
10
+ export interface AthleteSelectValue {
11
+ athleteId: string;
12
+ displayName: string;
13
+ }
14
+ interface AthleteSelectProps {
15
+ /** Currently selected athlete user id. */
16
+ athleteId: string;
17
+ onSelect: (value: AthleteSelectValue) => void;
18
+ required?: boolean;
19
+ teamLabel?: string;
20
+ athleteLabel?: string;
21
+ /** Prefix for the field ids so multiple instances stay unique/accessible. */
22
+ idPrefix?: string;
23
+ }
24
+ export declare function AthleteSelect({ athleteId, onSelect, required, teamLabel, athleteLabel, idPrefix, }: AthleteSelectProps): import("react").JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=AthleteSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AthleteSelect.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/AthleteSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,QAAgB,EAChB,SAAkB,EAClB,YAAwB,EACxB,QAAoB,GACrB,EAAE,kBAAkB,+BA4EpB"}
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { AthSport } from '../types';
3
+
4
+ export interface CrestProps {
5
+ /** Team name — seeds the gradient and provides the monogram initials. */
6
+ name: string;
7
+ /** Sport — renders a faint watermark glyph and (fallback) seeds the gradient. */
8
+ sport?: AthSport;
9
+ /** Pixel size of the crest (width == height of the shield's bounding box). */
10
+ size?: number;
11
+ /** Show the faint sport glyph watermark (default true when `sport` is set). */
12
+ showSportGlyph?: boolean;
13
+ className?: string;
14
+ }
15
+ /** Deterministic gradient monogram crest for a team (honest logo stand-in). */
16
+ export declare const Crest: FC<CrestProps>;
17
+ //# sourceMappingURL=Crest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crest.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/Crest.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAS,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,+EAA+E;AAC/E,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAgEhC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FC } from 'react';
2
+
3
+ interface CursorPagerProps {
4
+ page: number;
5
+ hasMore: boolean;
6
+ onPrev: () => void;
7
+ onNext: () => void;
8
+ className?: string;
9
+ }
10
+ export declare const CursorPager: FC<CursorPagerProps>;
11
+ export {};
12
+ //# sourceMappingURL=CursorPager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorPager.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/CursorPager.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA0B5C,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Drill demo-video reference
3
+ * @module atheletebridge/components
4
+ *
5
+ * A drill's `video` is a reference into wspace-files-svc (blobs live there). We
6
+ * resolve the playable URL lazily and in isolation, so a missing/expired blob
7
+ * degrades to a quiet badge instead of ever breaking the program page.
8
+ */
9
+ export declare function DrillVideoLink({ fileId }: {
10
+ fileId: string;
11
+ }): import("react").JSX.Element;
12
+ //# sourceMappingURL=DrillVideoLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrillVideoLink.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/DrillVideoLink.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BA8B5D"}
@@ -0,0 +1,14 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface EmptyStateProps {
4
+ icon?: ReactNode;
5
+ /** On-brand illustration name → /illustrations/<name>.webp (preferred). */
6
+ illustration?: string;
7
+ title: string;
8
+ description?: string;
9
+ action?: ReactNode;
10
+ className?: string;
11
+ }
12
+ export declare const EmptyState: FC<EmptyStateProps>;
13
+ export {};
14
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/EmptyState.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA8B1C,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Filter Select
3
+ * @module atheletebridge/components
4
+ *
5
+ * A small, accessible native-select filter styled with semantic tokens.
6
+ * Generic over the option value type so callers stay strictly typed.
7
+ */
8
+ export interface FilterOption<T extends string> {
9
+ value: T;
10
+ label: string;
11
+ }
12
+ interface FilterSelectProps<T extends string> {
13
+ value: T | '';
14
+ onChange: (value: T | '') => void;
15
+ options: ReadonlyArray<FilterOption<T>>;
16
+ /** Label shown for the "no filter" option. */
17
+ allLabel: string;
18
+ ariaLabel: string;
19
+ className?: string;
20
+ }
21
+ export declare function FilterSelect<T extends string>({ value, onChange, options, allLabel, ariaLabel, className, }: FilterSelectProps<T>): import("react").JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=FilterSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSelect.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/FilterSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAC1C,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAC7C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,GACV,EAAE,iBAAiB,CAAC,CAAC,CAAC,+BAoBtB"}
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ import { AthFixture } from '../types';
3
+
4
+ interface FixtureCardProps {
5
+ fixture: AthFixture;
6
+ onClick?: () => void;
7
+ }
8
+ export declare const FixtureCard: FC<FixtureCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=FixtureCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixtureCard.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/FixtureCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,UAAU,gBAAgB;IACxB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAE5C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+
3
+ interface LoadingStateProps {
4
+ label?: string;
5
+ className?: string;
6
+ }
7
+ export declare const LoadingState: FC<LoadingStateProps>;
8
+ interface ErrorStateProps {
9
+ title?: string;
10
+ message?: string;
11
+ onRetry?: () => void;
12
+ className?: string;
13
+ }
14
+ export declare const ErrorState: FC<ErrorStateProps>;
15
+ export {};
16
+ //# sourceMappingURL=LoadingState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/LoadingState.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAS9C,CAAC;AAEF,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAyB1C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { AthFixture } from '../types';
3
+
4
+ export interface MatchupRowProps {
5
+ fixture: AthFixture;
6
+ onClick?: () => void;
7
+ /**
8
+ * Right-hand rail content. Defaults to date + competition + status. Pass
9
+ * `false` to hide the rail entirely, or a node to override it.
10
+ */
11
+ rail?: ReactNode | false;
12
+ className?: string;
13
+ }
14
+ /** Compact crest-vs-crest fixture row (dashboard / team-detail feeds). */
15
+ export declare const MatchupRow: FC<MatchupRowProps>;
16
+ //# sourceMappingURL=MatchupRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatchupRow.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/MatchupRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAO3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,0EAA0E;AAC1E,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA4D1C,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ type MetricTone = 'default' | 'accent' | 'success';
4
+ interface MetricsCardProps {
5
+ icon: ReactNode;
6
+ value: string | number;
7
+ label: string;
8
+ /** Render as the single featured hero metric (glass treatment + glow). */
9
+ featured?: boolean;
10
+ /** Value color: `default` (primary), `accent` (teal), or `success` (green). */
11
+ tone?: MetricTone;
12
+ /** Signed change; positive is good unless `invertDelta`. Renders a pill. */
13
+ delta?: number;
14
+ /** Unit appended to the delta (default "%"). */
15
+ deltaSuffix?: string;
16
+ /** Context line beside the delta, e.g. "vs last month". */
17
+ deltaLabel?: string;
18
+ /** When true (e.g. injuries), a negative delta is the good outcome. */
19
+ invertDelta?: boolean;
20
+ /** Optional trend rendered as a footer sparkline. */
21
+ sparkline?: number[];
22
+ className?: string;
23
+ }
24
+ export declare const MetricsCard: FC<MetricsCardProps>;
25
+ export {};
26
+ //# sourceMappingURL=MetricsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsCard.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/MetricsCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM3C,KAAK,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD,UAAU,gBAAgB;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA4D5C,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface PageLayoutProps {
4
+ title: ReactNode;
5
+ description?: string;
6
+ actions?: ReactNode;
7
+ children: ReactNode;
8
+ className?: string;
9
+ /**
10
+ * Render the living aurora backdrop behind the header. Use on exactly ONE
11
+ * primary page per MFE (the root dashboard).
12
+ */
13
+ hero?: boolean;
14
+ /**
15
+ * When `title` is a string, wrap it in a subtle brand gradient (the ONE
16
+ * hero heading per page). Ignored when `title` is a node.
17
+ */
18
+ gradientTitle?: boolean;
19
+ }
20
+ export declare const PageLayout: FC<PageLayoutProps>;
21
+ export {};
22
+ //# sourceMappingURL=PageLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/PageLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAmC1C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+ import { AthProgram } from '../types';
3
+
4
+ interface ProgramCardProps {
5
+ program: AthProgram;
6
+ onClick?: () => void;
7
+ /**
8
+ * Drill count for the footer chip. Falls back to `program.drills?.length`
9
+ * when the query selected drills; omit the chip if neither is available.
10
+ */
11
+ drillCount?: number;
12
+ }
13
+ export declare const ProgramCard: FC<ProgramCardProps>;
14
+ export {};
15
+ //# sourceMappingURL=ProgramCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramCard.d.ts","sourceRoot":"","sources":["../../../src/atheletebridge/components/ProgramCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAE5D,UAAU,gBAAgB;IACxB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AASD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA6D5C,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * RouteAnalytics
3
+ *
4
+ * Listens to route changes inside the AthleteBridge microfrontend and emits
5
+ * `atheletebridge.page.viewed` events to the shared event bus. The host shell
6
+ * forwards these to OtelBrowserSink / BackendAuditSink / RybbitSink.
7
+ */
8
+ export declare function RouteAnalytics(): null;
9
+ //# sourceMappingURL=RouteAnalytics.d.ts.map