@maestro_io/maestro-web-sdk 4.0.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/dist/1.maestro-web-sdk.esm.js +1 -1
  2. package/dist/1.maestro-web-sdk.esm.js.map +1 -1
  3. package/dist/10.maestro-web-sdk.esm.js +1 -1
  4. package/dist/10.maestro-web-sdk.esm.js.map +1 -1
  5. package/dist/11.maestro-web-sdk.esm.js +1 -1
  6. package/dist/11.maestro-web-sdk.esm.js.map +1 -1
  7. package/dist/12.maestro-web-sdk.esm.js +1 -1
  8. package/dist/12.maestro-web-sdk.esm.js.map +1 -1
  9. package/dist/13.maestro-web-sdk.esm.js +1 -1
  10. package/dist/13.maestro-web-sdk.esm.js.map +1 -1
  11. package/dist/14.maestro-web-sdk.esm.js +1 -1
  12. package/dist/14.maestro-web-sdk.esm.js.map +1 -1
  13. package/dist/15.maestro-web-sdk.esm.js +1 -1
  14. package/dist/15.maestro-web-sdk.esm.js.map +1 -1
  15. package/dist/16.maestro-web-sdk.esm.js +1 -1
  16. package/dist/16.maestro-web-sdk.esm.js.map +1 -1
  17. package/dist/17.maestro-web-sdk.esm.js +1 -1
  18. package/dist/17.maestro-web-sdk.esm.js.map +1 -1
  19. package/dist/18.maestro-web-sdk.esm.js +1 -1
  20. package/dist/18.maestro-web-sdk.esm.js.map +1 -1
  21. package/dist/19.maestro-web-sdk.esm.js +1 -1
  22. package/dist/19.maestro-web-sdk.esm.js.map +1 -1
  23. package/dist/2.maestro-web-sdk.esm.js +1 -1
  24. package/dist/2.maestro-web-sdk.esm.js.map +1 -1
  25. package/dist/20.maestro-web-sdk.esm.js +1 -1
  26. package/dist/20.maestro-web-sdk.esm.js.map +1 -1
  27. package/dist/21.maestro-web-sdk.esm.js +1 -1
  28. package/dist/21.maestro-web-sdk.esm.js.map +1 -1
  29. package/dist/22.maestro-web-sdk.esm.js +1 -1
  30. package/dist/22.maestro-web-sdk.esm.js.map +1 -1
  31. package/dist/23.maestro-web-sdk.esm.js +1 -1
  32. package/dist/23.maestro-web-sdk.esm.js.map +1 -1
  33. package/dist/24.maestro-web-sdk.esm.js +1 -1
  34. package/dist/24.maestro-web-sdk.esm.js.map +1 -1
  35. package/dist/25.maestro-web-sdk.esm.js +2 -0
  36. package/dist/25.maestro-web-sdk.esm.js.map +1 -0
  37. package/dist/26.maestro-web-sdk.esm.js +2 -0
  38. package/dist/26.maestro-web-sdk.esm.js.map +1 -0
  39. package/dist/27.maestro-web-sdk.esm.js +2 -0
  40. package/dist/27.maestro-web-sdk.esm.js.map +1 -0
  41. package/dist/28.maestro-web-sdk.esm.js +2 -0
  42. package/dist/28.maestro-web-sdk.esm.js.map +1 -0
  43. package/dist/29.maestro-web-sdk.esm.js +2 -0
  44. package/dist/29.maestro-web-sdk.esm.js.map +1 -0
  45. package/dist/3.maestro-web-sdk.esm.js +1 -1
  46. package/dist/3.maestro-web-sdk.esm.js.map +1 -1
  47. package/dist/30.maestro-web-sdk.esm.js +2 -0
  48. package/dist/30.maestro-web-sdk.esm.js.map +1 -0
  49. package/dist/31.maestro-web-sdk.esm.js +2 -0
  50. package/dist/31.maestro-web-sdk.esm.js.map +1 -0
  51. package/dist/32.maestro-web-sdk.esm.js +2 -0
  52. package/dist/32.maestro-web-sdk.esm.js.map +1 -0
  53. package/dist/33.maestro-web-sdk.esm.js +2 -0
  54. package/dist/33.maestro-web-sdk.esm.js.map +1 -0
  55. package/dist/34.maestro-web-sdk.esm.js +2 -0
  56. package/dist/34.maestro-web-sdk.esm.js.map +1 -0
  57. package/dist/35.maestro-web-sdk.esm.js +2 -0
  58. package/dist/35.maestro-web-sdk.esm.js.map +1 -0
  59. package/dist/36.maestro-web-sdk.esm.js +2 -0
  60. package/dist/36.maestro-web-sdk.esm.js.map +1 -0
  61. package/dist/37.maestro-web-sdk.esm.js +2 -0
  62. package/dist/37.maestro-web-sdk.esm.js.map +1 -0
  63. package/dist/38.maestro-web-sdk.esm.js +2 -0
  64. package/dist/38.maestro-web-sdk.esm.js.map +1 -0
  65. package/dist/4.maestro-web-sdk.esm.js +1 -1
  66. package/dist/4.maestro-web-sdk.esm.js.map +1 -1
  67. package/dist/5.maestro-web-sdk.esm.js +1 -1
  68. package/dist/5.maestro-web-sdk.esm.js.map +1 -1
  69. package/dist/6.maestro-web-sdk.esm.js +1 -1
  70. package/dist/6.maestro-web-sdk.esm.js.map +1 -1
  71. package/dist/7.maestro-web-sdk.esm.js +1 -1
  72. package/dist/7.maestro-web-sdk.esm.js.map +1 -1
  73. package/dist/8.maestro-web-sdk.esm.js +1 -1
  74. package/dist/8.maestro-web-sdk.esm.js.map +1 -1
  75. package/dist/9.maestro-web-sdk.esm.js +1 -1
  76. package/dist/9.maestro-web-sdk.esm.js.map +1 -1
  77. package/dist/index.d.ts +233 -1144
  78. package/dist/maestro-web-sdk.esm.js +3 -32
  79. package/dist/maestro-web-sdk.esm.js.map +1 -1
  80. package/dist/maestro-web-sdk.umd.js +3 -32
  81. package/dist/maestro-web-sdk.umd.js.map +1 -1
  82. package/dist/package.json +7 -5
  83. package/dist/src/components/atoms/Rive/index.d.ts +4 -2
  84. package/dist/src/components/atoms/SvgIcon/BuilderIcon.d.ts +3 -0
  85. package/dist/src/components/atoms/SvgIcon/BuilderIcon.js +8 -0
  86. package/dist/src/components/atoms/SvgIcon/FoxKeyPlaysIcon.d.ts +3 -0
  87. package/dist/src/components/atoms/SvgIcon/FoxKeyPlaysIcon.js +7 -0
  88. package/dist/src/components/atoms/SvgIcon/FoxMultiViewIcon.d.ts +3 -0
  89. package/dist/src/components/atoms/SvgIcon/FoxMultiViewIcon.js +10 -0
  90. package/dist/src/components/atoms/SvgIcon/FoxStatsIcon.d.ts +3 -0
  91. package/dist/src/components/atoms/SvgIcon/FoxStatsIcon.js +7 -0
  92. package/dist/src/components/atoms/SvgIcon/Icon.d.ts +1 -25
  93. package/dist/src/components/atoms/SvgIcon/Icon.js +46 -22
  94. package/dist/src/components/core/PanelManager/PanelManager.js +28 -12
  95. package/dist/src/components/core/ScrollableContainer/FocusableItem.d.ts +7 -2
  96. package/dist/src/components/core/ScrollableContainer/FocusableItem.js +19 -33
  97. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.d.ts +10 -34
  98. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.js +89 -147
  99. package/dist/src/components/core/ScrollableContainer/index.d.ts +4 -0
  100. package/dist/src/components/core/ScrollableContainer/index.js +3 -0
  101. package/dist/src/components/core/ScrollableContainer/useScrollableContainer.d.ts +14 -0
  102. package/dist/src/components/core/ScrollableContainer/useScrollableContainer.js +22 -0
  103. package/dist/src/components/molecules/ActionButton/ActionButton.d.ts +4 -2
  104. package/dist/src/components/molecules/ActionButton/ActionButton.js +6 -1
  105. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.js +1 -1
  106. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +4 -2
  107. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +1 -1
  108. package/dist/src/components/molecules/TabLoadError/TabLoadError.d.ts +4 -2
  109. package/dist/src/components/organisms/SegmentController/SegmentController.d.ts +1 -19
  110. package/dist/src/components/organisms/SegmentController/SegmentController.js +31 -72
  111. package/dist/src/development/MaestroEventDelegate.js +1 -1
  112. package/dist/src/development/development.js +4 -1
  113. package/dist/src/external/ReactRenderer.js +5 -4
  114. package/dist/src/external/spatial-navigation/spatialNavigation.d.ts +13 -8
  115. package/dist/src/external/spatial-navigation/spatialNavigation.js +73 -5
  116. package/dist/src/external/spatial-navigation/utils.d.ts +2 -0
  117. package/dist/src/external/spatial-navigation/withFocusable.d.ts +10 -2
  118. package/dist/src/external/spatial-navigation/withFocusable.js +12 -3
  119. package/dist/src/hooks/useMaxHeightToBottom.d.ts +11 -0
  120. package/dist/src/hooks/useMaxHeightToBottom.js +48 -0
  121. package/dist/src/index.d.ts +10 -11
  122. package/dist/src/index.js +51 -19
  123. package/dist/src/interfaces/IMaestroEvent.d.ts +1 -19
  124. package/dist/src/interfaces/IMaestroEvent.js +0 -17
  125. package/dist/src/interfaces/IMaestroManager.d.ts +39 -3
  126. package/dist/src/models/IPanel.d.ts +10 -6
  127. package/dist/src/models/IPanel.js +10 -38
  128. package/dist/src/modules/espn/bets/interfaces/IBetsViewModel.d.ts +5 -0
  129. package/dist/src/{services → modules/espn/bets/services}/BetsService.d.ts +3 -3
  130. package/dist/src/{services → modules/espn/bets/services}/BetsService.js +4 -3
  131. package/dist/src/modules/{bets → espn/bets}/view/BetsView.d.ts +4 -2
  132. package/dist/src/modules/{bets → espn/bets}/view/BetsView.js +38 -12
  133. package/dist/src/modules/{bets → espn/bets}/view/HotProps/HotPropsView.d.ts +21 -18
  134. package/dist/src/modules/{bets → espn/bets}/view/HotProps/HotPropsView.js +17 -34
  135. package/dist/src/modules/espn/bets/view/SixPack/SixPackView.d.ts +9 -0
  136. package/dist/src/modules/{bets → espn/bets}/view/SixPack/SixPackView.js +19 -52
  137. package/dist/src/modules/{bets → espn/bets}/view/UserBets/BetsCard/BetsCard.d.ts +22 -19
  138. package/dist/src/modules/{bets → espn/bets}/view/UserBets/BetsCard/BetsCard.js +16 -25
  139. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +16 -0
  140. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardEvent.js +8 -0
  141. package/dist/src/modules/{bets → espn/bets}/view/UserBets/BetsCard/BetsCardFooter.d.ts +1 -1
  142. package/dist/src/modules/{bets → espn/bets}/view/UserBets/BetsCard/BetsCardFooter.js +1 -1
  143. package/dist/src/modules/{bets → espn/bets}/view/UserBets/Boost/Boost.d.ts +1 -1
  144. package/dist/src/modules/{bets → espn/bets}/view/UserBets/Parlay/Parlay.d.ts +1 -1
  145. package/dist/src/modules/{bets → espn/bets}/view/UserBets/Straight/Straight.d.ts +1 -1
  146. package/dist/src/modules/{bets → espn/bets}/view/UserBets/Teaser/Teaser.d.ts +1 -1
  147. package/dist/src/modules/espn/bets/view/components/Bet/Bet.d.ts +10 -0
  148. package/dist/src/modules/{bets → espn/bets}/view/components/Bet/Bet.js +12 -3
  149. package/dist/src/modules/{bets → espn/bets}/view/components/BetsCard/BetsCard.d.ts +2 -2
  150. package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCard.js +24 -0
  151. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +7 -0
  152. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +31 -0
  153. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/index.d.ts +1 -0
  154. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/index.js +1 -0
  155. package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +5 -0
  156. package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +45 -0
  157. package/dist/src/modules/{bets → espn/bets}/view-model/BetsViewModel.d.ts +4 -5
  158. package/dist/src/modules/{bets → espn/bets}/view-model/BetsViewModel.js +6 -33
  159. package/dist/src/modules/espn/fantasy/components/LeagueCard/LeagueCard.d.ts +104 -0
  160. package/dist/src/modules/espn/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +101 -0
  161. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.d.ts +103 -0
  162. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.js +94 -0
  163. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/index.d.ts +1 -0
  164. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/index.js +1 -0
  165. package/dist/src/{services → modules/espn/fantasy/services}/FantasyService.d.ts +27 -4
  166. package/dist/src/modules/espn/fantasy/services/FantasyService.js +124 -0
  167. package/dist/src/modules/{fantasy → espn/fantasy}/types.d.ts +118 -0
  168. package/dist/src/modules/{fantasy → espn/fantasy}/types.js +3 -0
  169. package/dist/src/modules/espn/fantasy/view/FantasyHeaderView.d.ts +8 -0
  170. package/dist/src/modules/espn/fantasy/view/FantasyHeaderView.js +8 -0
  171. package/dist/src/modules/espn/fantasy/view/FantasyItemView.d.ts +8 -0
  172. package/dist/src/modules/espn/fantasy/view/FantasyItemView.js +48 -0
  173. package/dist/src/modules/{fantasy → espn/fantasy}/view/FantasyView.d.ts +7 -0
  174. package/dist/src/modules/{fantasy → espn/fantasy}/view/FantasyView.js +86 -7
  175. package/dist/src/modules/espn/fantasy/view/InactiveLeague/InactiveLeague.d.ts +100 -0
  176. package/dist/src/modules/espn/fantasy/view/LoginView/LoginView.d.ts +96 -0
  177. package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts +97 -0
  178. package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/MatchupPair.d.ts +18 -16
  179. package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/MatchupSingle.d.ts +18 -16
  180. package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts +97 -0
  181. package/dist/src/modules/{fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts → espn/fantasy/view/PromoView/PromoView.d.ts} +30 -25
  182. package/dist/src/modules/{fantasy → espn/fantasy}/view/PromoView/PromoView.js +2 -2
  183. package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +101 -0
  184. package/dist/src/modules/{fantasy → espn/fantasy}/view/TournamentBracketCard/TournamentBracketCard.js +10 -6
  185. package/dist/src/modules/{fantasy → espn/fantasy}/view-model/FantasyViewModel.FantasyPolling.d.ts +1 -1
  186. package/dist/src/modules/{fantasy → espn/fantasy}/view-model/FantasyViewModel.LeagueManagerPolling.d.ts +1 -1
  187. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.d.ts +32 -0
  188. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.js +140 -0
  189. package/dist/src/modules/{fantasy → espn/fantasy}/view-model/FantasyViewModel.d.ts +22 -3
  190. package/dist/src/modules/{fantasy → espn/fantasy}/view-model/FantasyViewModel.js +310 -46
  191. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysViewModel.d.ts +17 -0
  192. package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlayCardView.d.ts +2 -14
  193. package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlayCardView.js +18 -42
  194. package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlayErrorStateView.js +13 -13
  195. package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlaysView.d.ts +2 -0
  196. package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlaysView.js +33 -5
  197. package/dist/src/modules/{key-plays → espn/key-plays}/view-model/KeyPlaysViewModel.d.ts +1 -1
  198. package/dist/src/modules/{key-plays → espn/key-plays}/view-model/KeyPlaysViewModel.js +2 -3
  199. package/dist/src/{services → modules/espn/shop/services}/ShopService.d.ts +3 -3
  200. package/dist/src/{services → modules/espn/shop/services}/ShopService.js +2 -4
  201. package/dist/src/modules/{shop → espn/shop}/types.d.ts +3 -0
  202. package/dist/src/modules/{shop → espn/shop}/view/ProductDetailView/ProductDetailView.d.ts +1 -0
  203. package/dist/src/modules/{shop → espn/shop}/view/ShopView.d.ts +3 -0
  204. package/dist/src/modules/{shop → espn/shop}/view/ShopView.js +45 -4
  205. package/dist/src/modules/espn/shop/view/components/BrowseCard/BrowseCard.d.ts +103 -0
  206. package/dist/src/modules/{shop → espn/shop}/view/components/BrowseCard/BrowseCard.js +1 -1
  207. package/dist/src/modules/{shop → espn/shop}/view/components/ProductSummaryCard/ProductSummaryCard.d.ts +18 -16
  208. package/dist/src/modules/{shop → espn/shop}/view/components/ShopPromoView/ShopPromoView.js +2 -2
  209. package/dist/src/modules/espn/shop/view/components/ShopSection/ShopSection.d.ts +12 -0
  210. package/dist/src/modules/espn/shop/view/components/ShopSection/ShopSection.js +34 -0
  211. package/dist/src/modules/{shop → espn/shop}/view-model/ShopViewModel.ShopPolling.d.ts +1 -1
  212. package/dist/src/modules/{shop → espn/shop}/view-model/ShopViewModel.d.ts +4 -8
  213. package/dist/src/modules/{shop → espn/shop}/view-model/ShopViewModel.js +5 -39
  214. package/dist/src/modules/{stats/utils/renderTeamStatistic.d.ts → espn/stats/components/TeamStatistic.d.ts} +2 -6
  215. package/dist/src/modules/{stats/utils/renderTeamStatistic.js → espn/stats/components/TeamStatistic.js} +4 -7
  216. package/dist/src/modules/{stats → espn/stats}/interfaces/IStats.d.ts +124 -20
  217. package/dist/src/modules/espn/stats/interfaces/IStats.js +46 -0
  218. package/dist/src/modules/espn/stats/interfaces/IStatsViewModel.d.ts +7 -0
  219. package/dist/src/modules/espn/stats/interfaces/IStatsViewModel.js +1 -0
  220. package/dist/src/{services → modules/espn/stats/services}/StatsService.d.ts +3 -3
  221. package/dist/src/{services → modules/espn/stats/services}/StatsService.js +5 -4
  222. package/dist/src/modules/{stats → espn/stats}/utils/playerStatusUtils.js +1 -0
  223. package/dist/src/modules/espn/stats/view/CareerMatchup/CareerMatchup.d.ts +101 -0
  224. package/dist/src/modules/{stats → espn/stats}/view/CareerMatchup/CareerMatchup.js +6 -6
  225. package/dist/src/modules/espn/stats/view/DriveSummary/DrivePlayCard.d.ts +105 -0
  226. package/dist/src/modules/espn/stats/view/DriveSummary/DrivePlayCard.js +32 -0
  227. package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/DriveSummary.d.ts +2 -9
  228. package/dist/src/modules/espn/stats/view/DriveSummary/DriveSummary.js +40 -0
  229. package/dist/src/modules/espn/stats/view/GameLeaders/GameLeaders.d.ts +9 -0
  230. package/dist/src/modules/espn/stats/view/GameLeaders/GameLeaders.js +22 -0
  231. package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/DonutChart/DonutChart.js +2 -2
  232. package/dist/src/modules/{fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts → espn/stats/view/MatchPredictor/MatchPredictorView.d.ts} +30 -25
  233. package/dist/src/modules/{stats → espn/stats}/view/Penalties/Penalties.js +1 -1
  234. package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/ExpandedPlayerStats.js +11 -8
  235. package/dist/src/modules/{stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts → espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.d.ts} +6 -5
  236. package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +2 -2
  237. package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +1 -1
  238. package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/PlayerSeasonStatsView.js +1 -1
  239. package/dist/src/modules/{stats/view/components/AthletesStatistics/AthletesStatistics.d.ts → espn/stats/view/RecentGames/RecentGames.d.ts} +29 -42
  240. package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ExpandedScores/ExpandedScores.d.ts +1 -1
  241. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedSummary.d.ts +100 -0
  242. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedSummary.js +24 -0
  243. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/index.d.ts +2 -0
  244. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/index.js +2 -0
  245. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts +100 -0
  246. package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoreItem/ScoreItem.js +1 -1
  247. package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoresSection/ScoresSection.d.ts +1 -1
  248. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoringSummary.d.ts +12 -0
  249. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoringSummary.js +167 -0
  250. package/dist/src/modules/espn/stats/view/ScoringSummary/index.d.ts +1 -0
  251. package/dist/src/modules/espn/stats/view/ScoringSummary/index.js +1 -0
  252. package/dist/src/modules/espn/stats/view/StatsItemView.d.ts +8 -0
  253. package/dist/src/modules/espn/stats/view/StatsItemView.js +66 -0
  254. package/dist/src/modules/espn/stats/view/StatsQRCode/StatsQRCodeView.d.ts +100 -0
  255. package/dist/src/modules/{stats → espn/stats}/view/StatsView.d.ts +2 -0
  256. package/dist/src/modules/{stats → espn/stats}/view/StatsView.js +31 -4
  257. package/dist/src/modules/{stats → espn/stats}/view/TeamStats/TeamStatsView.d.ts +29 -26
  258. package/dist/src/modules/espn/stats/view/TeamStats/TeamStatsView.js +77 -0
  259. package/dist/src/modules/espn/stats/view/Teams/Teams.d.ts +100 -0
  260. package/dist/src/modules/{stats → espn/stats}/view/Teams/Teams.js +15 -19
  261. package/dist/src/modules/espn/stats/view/WinProbability/WinProbability.d.ts +100 -0
  262. package/dist/src/modules/{stats → espn/stats}/view/WinProbability/WinProbability.js +1 -1
  263. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/AthletesStatistics.d.ts +115 -0
  264. package/dist/src/modules/{stats → espn/stats}/view/components/AthletesStatistics/AthletesStatistics.js +1 -1
  265. package/dist/src/modules/{stats → espn/stats}/view-model/StatsViewModel.d.ts +101 -20
  266. package/dist/src/modules/{stats → espn/stats}/view-model/StatsViewModel.js +527 -100
  267. package/dist/src/modules/fox/key-plays/view/FoxKeyPlays.d.ts +2 -0
  268. package/dist/src/modules/fox/key-plays/view/FoxKeyPlays.js +5 -0
  269. package/dist/src/modules/fox/multi-view/view/FoxMultiView.d.ts +2 -0
  270. package/dist/src/modules/fox/multi-view/view/FoxMultiView.js +5 -0
  271. package/dist/src/modules/fox/stats/view/FoxStatsView.d.ts +2 -0
  272. package/dist/src/modules/fox/stats/view/FoxStatsView.js +5 -0
  273. package/dist/src/modules/maestro/builder/components/BuilderSection/BuilderSection.d.ts +11 -0
  274. package/dist/src/modules/maestro/builder/components/BuilderSection/BuilderSection.js +52 -0
  275. package/dist/src/modules/maestro/builder/components/BuilderSection/index.d.ts +2 -0
  276. package/dist/src/modules/maestro/builder/components/BuilderSection/index.js +2 -0
  277. package/dist/src/modules/maestro/builder/components/ExpandableCard/ExpandableCard.d.ts +110 -0
  278. package/dist/src/modules/maestro/builder/components/ExpandableCard/ExpandableCard.js +37 -0
  279. package/dist/src/modules/maestro/builder/components/ExpandableCard/index.d.ts +2 -0
  280. package/dist/src/modules/maestro/builder/components/ExpandableCard/index.js +2 -0
  281. package/dist/src/modules/{shop/view/components/BrowseCard/BrowseCard.d.ts → maestro/builder/components/SimpleCard/SimpleCard.d.ts} +32 -29
  282. package/dist/src/modules/maestro/builder/components/SimpleCard/SimpleCard.js +12 -0
  283. package/dist/src/modules/maestro/builder/components/SimpleCard/index.d.ts +2 -0
  284. package/dist/src/modules/maestro/builder/components/SimpleCard/index.js +2 -0
  285. package/dist/src/modules/maestro/builder/index.d.ts +7 -0
  286. package/dist/src/modules/maestro/builder/index.js +7 -0
  287. package/dist/src/modules/maestro/builder/mocks/mockBuilderPanel.d.ts +149 -0
  288. package/dist/src/modules/maestro/builder/mocks/mockBuilderPanel.js +240 -0
  289. package/dist/src/modules/maestro/builder/types.d.ts +52 -0
  290. package/dist/src/modules/maestro/builder/types.js +1 -0
  291. package/dist/src/modules/maestro/builder/view/BuilderPanelView.d.ts +4 -0
  292. package/dist/src/modules/maestro/builder/view/BuilderPanelView.js +52 -0
  293. package/dist/src/modules/maestro/builder/view-model/BuilderPanelViewModel.d.ts +40 -0
  294. package/dist/src/modules/maestro/builder/view-model/BuilderPanelViewModel.js +229 -0
  295. package/dist/src/modules/maestro/builder/view-model/index.d.ts +1 -0
  296. package/dist/src/modules/maestro/builder/view-model/index.js +1 -0
  297. package/dist/src/sentry.d.ts +1 -1
  298. package/dist/src/sentry.js +41 -21
  299. package/dist/src/services/AnalyticsService/AnalyticsService.d.ts +3 -2
  300. package/dist/src/services/AnalyticsService/AnalyticsService.js +3 -1
  301. package/dist/src/services/InsightsService/InsightsPayloadBuilder.d.ts +1 -1
  302. package/dist/src/services/InsightsService/InsightsPayloadBuilder.js +1 -2
  303. package/dist/src/services/InsightsService/InsightsService.js +1 -1
  304. package/dist/src/services/NetworkManager/NetworkManager.d.ts +6 -0
  305. package/dist/src/services/NetworkManager/NetworkManager.js +39 -62
  306. package/dist/src/services/NetworkManager/types.d.ts +0 -96
  307. package/dist/src/services/NetworkManager/types.js +1 -10
  308. package/dist/src/services/StaticService/StaticService.d.ts +10 -2
  309. package/dist/src/services/StaticService/StaticService.js +32 -7
  310. package/dist/src/services/StaticService/mocks.d.ts +1 -0
  311. package/dist/src/services/StaticService/mocks.js +114 -99
  312. package/dist/src/services/StaticService/types.d.ts +3 -1
  313. package/dist/src/services/UserSettingsManager.js +9 -6
  314. package/dist/src/view-models/MaestroEventViewModel.d.ts +47 -16
  315. package/dist/src/view-models/MaestroEventViewModel.js +124 -58
  316. package/dist/src/view-models/PanelManagerViewModel.d.ts +4 -1
  317. package/dist/src/view-models/PanelManagerViewModel.js +41 -58
  318. package/package.json +7 -5
  319. package/dist/1.maestro-web-sdk.umd.js +0 -2
  320. package/dist/1.maestro-web-sdk.umd.js.map +0 -1
  321. package/dist/10.maestro-web-sdk.umd.js +0 -2
  322. package/dist/10.maestro-web-sdk.umd.js.map +0 -1
  323. package/dist/11.maestro-web-sdk.umd.js +0 -2
  324. package/dist/11.maestro-web-sdk.umd.js.map +0 -1
  325. package/dist/12.maestro-web-sdk.umd.js +0 -2
  326. package/dist/12.maestro-web-sdk.umd.js.map +0 -1
  327. package/dist/13.maestro-web-sdk.umd.js +0 -2
  328. package/dist/13.maestro-web-sdk.umd.js.map +0 -1
  329. package/dist/14.maestro-web-sdk.umd.js +0 -2
  330. package/dist/14.maestro-web-sdk.umd.js.map +0 -1
  331. package/dist/15.maestro-web-sdk.umd.js +0 -2
  332. package/dist/15.maestro-web-sdk.umd.js.map +0 -1
  333. package/dist/16.maestro-web-sdk.umd.js +0 -2
  334. package/dist/16.maestro-web-sdk.umd.js.map +0 -1
  335. package/dist/17.maestro-web-sdk.umd.js +0 -2
  336. package/dist/17.maestro-web-sdk.umd.js.map +0 -1
  337. package/dist/18.maestro-web-sdk.umd.js +0 -2
  338. package/dist/18.maestro-web-sdk.umd.js.map +0 -1
  339. package/dist/19.maestro-web-sdk.umd.js +0 -2
  340. package/dist/19.maestro-web-sdk.umd.js.map +0 -1
  341. package/dist/2.maestro-web-sdk.umd.js +0 -2
  342. package/dist/2.maestro-web-sdk.umd.js.map +0 -1
  343. package/dist/20.maestro-web-sdk.umd.js +0 -2
  344. package/dist/20.maestro-web-sdk.umd.js.map +0 -1
  345. package/dist/21.maestro-web-sdk.umd.js +0 -2
  346. package/dist/21.maestro-web-sdk.umd.js.map +0 -1
  347. package/dist/22.maestro-web-sdk.umd.js +0 -2
  348. package/dist/22.maestro-web-sdk.umd.js.map +0 -1
  349. package/dist/23.maestro-web-sdk.umd.js +0 -2
  350. package/dist/23.maestro-web-sdk.umd.js.map +0 -1
  351. package/dist/24.maestro-web-sdk.umd.js +0 -2
  352. package/dist/24.maestro-web-sdk.umd.js.map +0 -1
  353. package/dist/3.maestro-web-sdk.umd.js +0 -2
  354. package/dist/3.maestro-web-sdk.umd.js.map +0 -1
  355. package/dist/4.maestro-web-sdk.umd.js +0 -2
  356. package/dist/4.maestro-web-sdk.umd.js.map +0 -1
  357. package/dist/5.maestro-web-sdk.umd.js +0 -2
  358. package/dist/5.maestro-web-sdk.umd.js.map +0 -1
  359. package/dist/6.maestro-web-sdk.umd.js +0 -2
  360. package/dist/6.maestro-web-sdk.umd.js.map +0 -1
  361. package/dist/7.maestro-web-sdk.umd.js +0 -2
  362. package/dist/7.maestro-web-sdk.umd.js.map +0 -1
  363. package/dist/8.maestro-web-sdk.umd.js +0 -2
  364. package/dist/8.maestro-web-sdk.umd.js.map +0 -1
  365. package/dist/9.maestro-web-sdk.umd.js +0 -2
  366. package/dist/9.maestro-web-sdk.umd.js.map +0 -1
  367. package/dist/bundle-report.html +0 -53
  368. package/dist/src/components/molecules/Overlay/Overlay.d.ts +0 -34
  369. package/dist/src/components/molecules/Overlay/Overlay.js +0 -139
  370. package/dist/src/components/molecules/Overlay/index.d.ts +0 -2
  371. package/dist/src/components/molecules/Overlay/index.js +0 -2
  372. package/dist/src/models/IWinningBet.d.ts +0 -7
  373. package/dist/src/modules/bets/view/SixPack/SixPackView.d.ts +0 -23
  374. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +0 -26
  375. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.js +0 -34
  376. package/dist/src/modules/bets/view/components/Bet/Bet.d.ts +0 -158
  377. package/dist/src/modules/bets/view/components/BetsCard/BetsCard.js +0 -15
  378. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +0 -8
  379. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +0 -14
  380. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +0 -18
  381. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +0 -78
  382. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.d.ts +0 -102
  383. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +0 -99
  384. package/dist/src/modules/fantasy/view/FantasyItemView.d.ts +0 -22
  385. package/dist/src/modules/fantasy/view/FantasyItemView.js +0 -74
  386. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.d.ts +0 -98
  387. package/dist/src/modules/fantasy/view/LoginView/LoginView.d.ts +0 -94
  388. package/dist/src/modules/fantasy/view/PromoView/PromoView.d.ts +0 -98
  389. package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +0 -99
  390. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.d.ts +0 -23
  391. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.js +0 -61
  392. package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.d.ts +0 -100
  393. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.d.ts +0 -106
  394. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.js +0 -70
  395. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.js +0 -87
  396. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.d.ts +0 -21
  397. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.js +0 -48
  398. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.d.ts +0 -98
  399. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.d.ts +0 -97
  400. package/dist/src/modules/stats/view/RecentGames/RecentGames.d.ts +0 -98
  401. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.d.ts +0 -2
  402. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.js +0 -2
  403. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.d.ts +0 -29
  404. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.js +0 -125
  405. package/dist/src/modules/stats/view/ScoringSummary/index.d.ts +0 -2
  406. package/dist/src/modules/stats/view/ScoringSummary/index.js +0 -2
  407. package/dist/src/modules/stats/view/StatsItemView.d.ts +0 -22
  408. package/dist/src/modules/stats/view/StatsItemView.js +0 -92
  409. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.d.ts +0 -98
  410. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.js +0 -43
  411. package/dist/src/modules/stats/view/Teams/Teams.d.ts +0 -98
  412. package/dist/src/modules/stats/view/WinProbability/WinProbability.d.ts +0 -98
  413. package/dist/src/services/FantasyService.js +0 -92
  414. package/dist/src/services/NetworkManager/NetworkManagerFactory.d.ts +0 -42
  415. package/dist/src/services/NetworkManager/NetworkManagerFactory.js +0 -101
  416. package/dist/src/types/OverlayTypes.d.ts +0 -43
  417. package/dist/src/types/OverlayTypes.js +0 -4
  418. package/dist/src/view-models/OverlayViewModel.d.ts +0 -33
  419. package/dist/src/view-models/OverlayViewModel.js +0 -222
  420. /package/dist/src/modules/{bets → espn/bets}/interfaces/IBets.d.ts +0 -0
  421. /package/dist/src/modules/{bets → espn/bets}/interfaces/IBets.js +0 -0
  422. /package/dist/src/{models/IWinningBet.js → modules/espn/bets/interfaces/IBetsViewModel.js} +0 -0
  423. /package/dist/src/modules/{bets → espn/bets}/mocks.d.ts +0 -0
  424. /package/dist/src/modules/{bets → espn/bets}/mocks.js +0 -0
  425. /package/dist/src/modules/{bets → espn/bets}/types/BetsAnalyticsTypes.d.ts +0 -0
  426. /package/dist/src/modules/{bets → espn/bets}/types/BetsAnalyticsTypes.js +0 -0
  427. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/BetResult/BetResult.d.ts +0 -0
  428. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/BetResult/BetResult.js +0 -0
  429. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/Boost/Boost.js +0 -0
  430. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/OutcomeBadge/OutcomeBadge.d.ts +0 -0
  431. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/OutcomeBadge/OutcomeBadge.js +0 -0
  432. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/Parlay/Parlay.js +0 -0
  433. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/Straight/Straight.js +0 -0
  434. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/Teaser/Teaser.js +0 -0
  435. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/UserBetsView.d.ts +0 -0
  436. /package/dist/src/modules/{bets → espn/bets}/view/UserBets/UserBetsView.js +0 -0
  437. /package/dist/src/modules/{bets → espn/bets}/view/components/BetPill/BetPill.d.ts +0 -0
  438. /package/dist/src/modules/{bets → espn/bets}/view/components/BetPill/BetPill.js +0 -0
  439. /package/dist/src/modules/{bets → espn/bets}/view/components/BetsCard/BetsCardHeader.d.ts +0 -0
  440. /package/dist/src/modules/{bets → espn/bets}/view/components/BetsCard/BetsCardHeader.js +0 -0
  441. /package/dist/src/modules/{bets → espn/bets}/view/components/LocationWarning/LocationWarning.d.ts +0 -0
  442. /package/dist/src/modules/{bets → espn/bets}/view/components/LocationWarning/LocationWarning.js +0 -0
  443. /package/dist/src/modules/{bets → espn/bets}/view/components/PromoCodeBanner/index.d.ts +0 -0
  444. /package/dist/src/modules/{bets → espn/bets}/view/components/PromoCodeBanner/index.js +0 -0
  445. /package/dist/src/modules/{fantasy → espn/fantasy}/components/ExpandedAthleteList/ExpandedAthletesList.d.ts +0 -0
  446. /package/dist/src/modules/{fantasy → espn/fantasy}/components/ExpandedAthleteList/ExpandedAthletesList.js +0 -0
  447. /package/dist/src/modules/{fantasy → espn/fantasy}/components/ExpandedAthleteList/index.d.ts +0 -0
  448. /package/dist/src/modules/{fantasy → espn/fantasy}/components/ExpandedAthleteList/index.js +0 -0
  449. /package/dist/src/modules/{fantasy → espn/fantasy}/components/LeagueCard/LeagueCard.js +0 -0
  450. /package/dist/src/modules/{fantasy → espn/fantasy}/components/LeagueCard/index.d.ts +0 -0
  451. /package/dist/src/modules/{fantasy → espn/fantasy}/components/LeagueCard/index.js +0 -0
  452. /package/dist/src/modules/{fantasy → espn/fantasy}/components/TopPlayerCard/TopPlayerCard.js +0 -0
  453. /package/dist/src/modules/{fantasy → espn/fantasy}/components/TopPlayerCard/index.d.ts +0 -0
  454. /package/dist/src/modules/{fantasy → espn/fantasy}/components/TopPlayerCard/index.js +0 -0
  455. /package/dist/src/modules/{fantasy → espn/fantasy}/mocks.d.ts +0 -0
  456. /package/dist/src/modules/{fantasy → espn/fantasy}/mocks.js +0 -0
  457. /package/dist/src/modules/{fantasy → espn/fantasy}/view/ActiveAthletesMarquee/ActiveAthletesMarquee.d.ts +0 -0
  458. /package/dist/src/modules/{fantasy → espn/fantasy}/view/ActiveAthletesMarquee/ActiveAthletesMarquee.js +0 -0
  459. /package/dist/src/modules/{fantasy → espn/fantasy}/view/ActiveAthletesMarquee/index.d.ts +0 -0
  460. /package/dist/src/modules/{fantasy → espn/fantasy}/view/ActiveAthletesMarquee/index.js +0 -0
  461. /package/dist/src/modules/{fantasy → espn/fantasy}/view/InactiveLeague/DraftDateCountdown.d.ts +0 -0
  462. /package/dist/src/modules/{fantasy → espn/fantasy}/view/InactiveLeague/DraftDateCountdown.js +0 -0
  463. /package/dist/src/modules/{fantasy → espn/fantasy}/view/InactiveLeague/InactiveLeague.js +0 -0
  464. /package/dist/src/modules/{fantasy → espn/fantasy}/view/InactiveLeague/index.d.ts +0 -0
  465. /package/dist/src/modules/{fantasy → espn/fantasy}/view/InactiveLeague/index.js +0 -0
  466. /package/dist/src/modules/{fantasy → espn/fantasy}/view/LoginView/LoginView.js +0 -0
  467. /package/dist/src/modules/{fantasy → espn/fantasy}/view/LoginView/index.d.ts +0 -0
  468. /package/dist/src/modules/{fantasy → espn/fantasy}/view/LoginView/index.js +0 -0
  469. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.js +0 -0
  470. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/DoubleAthleteCard/index.d.ts +0 -0
  471. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/DoubleAthleteCard/index.js +0 -0
  472. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/ExpandedDoubleAthleteCards.d.ts +0 -0
  473. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/ExpandedDoubleAthleteCards.js +0 -0
  474. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/MatchupPair.js +0 -0
  475. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/index.d.ts +0 -0
  476. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupPair/index.js +0 -0
  477. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/ExpandedSingleAthleteCards.d.ts +0 -0
  478. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/ExpandedSingleAthleteCards.js +0 -0
  479. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/MatchupSingle.js +0 -0
  480. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.js +0 -0
  481. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/SingleAthleteCard/index.d.ts +0 -0
  482. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/SingleAthleteCard/index.js +0 -0
  483. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/index.d.ts +0 -0
  484. /package/dist/src/modules/{fantasy → espn/fantasy}/view/MatchupSingle/index.js +0 -0
  485. /package/dist/src/modules/{fantasy → espn/fantasy}/view/PromoView/index.d.ts +0 -0
  486. /package/dist/src/modules/{fantasy → espn/fantasy}/view/PromoView/index.js +0 -0
  487. /package/dist/src/modules/{fantasy → espn/fantasy}/view/TournamentBracketCard/index.d.ts +0 -0
  488. /package/dist/src/modules/{fantasy → espn/fantasy}/view/TournamentBracketCard/index.js +0 -0
  489. /package/dist/src/modules/{fantasy → espn/fantasy}/view/index.d.ts +0 -0
  490. /package/dist/src/modules/{fantasy → espn/fantasy}/view/index.js +0 -0
  491. /package/dist/src/modules/{fantasy → espn/fantasy}/view-model/FantasyViewModel.FantasyPolling.js +0 -0
  492. /package/dist/src/modules/{fantasy → espn/fantasy}/view-model/FantasyViewModel.LeagueManagerPolling.js +0 -0
  493. /package/dist/src/modules/{key-plays → espn/key-plays}/constants.d.ts +0 -0
  494. /package/dist/src/modules/{key-plays → espn/key-plays}/constants.js +0 -0
  495. /package/dist/src/modules/{key-plays → espn/key-plays}/interfaces/IKeyPlays.d.ts +0 -0
  496. /package/dist/src/modules/{key-plays → espn/key-plays}/interfaces/IKeyPlays.js +0 -0
  497. /package/dist/src/modules/{key-plays → espn/key-plays}/interfaces/IKeyPlaysResponse.d.ts +0 -0
  498. /package/dist/src/modules/{key-plays → espn/key-plays}/interfaces/IKeyPlaysResponse.js +0 -0
  499. /package/dist/src/modules/{stats/interfaces/IStats.js → espn/key-plays/interfaces/IKeyPlaysViewModel.js} +0 -0
  500. /package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlayCardScoreTagView.d.ts +0 -0
  501. /package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlayCardScoreTagView.js +0 -0
  502. /package/dist/src/modules/{key-plays → espn/key-plays}/view/KeyPlayErrorStateView.d.ts +0 -0
  503. /package/dist/src/modules/{shop → espn/shop}/mocks.d.ts +0 -0
  504. /package/dist/src/modules/{shop → espn/shop}/mocks.js +0 -0
  505. /package/dist/src/modules/{shop → espn/shop}/types.js +0 -0
  506. /package/dist/src/modules/{shop → espn/shop}/view/ProductDetailView/ProductDetailView.js +0 -0
  507. /package/dist/src/modules/{shop → espn/shop}/view/ProductDetailView/index.d.ts +0 -0
  508. /package/dist/src/modules/{shop → espn/shop}/view/ProductDetailView/index.js +0 -0
  509. /package/dist/src/modules/{shop → espn/shop}/view/components/BrowseCard/index.d.ts +0 -0
  510. /package/dist/src/modules/{shop → espn/shop}/view/components/BrowseCard/index.js +0 -0
  511. /package/dist/src/modules/{shop → espn/shop}/view/components/ProductSummaryCard/ProductSummaryCard.js +0 -0
  512. /package/dist/src/modules/{shop → espn/shop}/view/components/ProductSummaryCard/index.d.ts +0 -0
  513. /package/dist/src/modules/{shop → espn/shop}/view/components/ProductSummaryCard/index.js +0 -0
  514. /package/dist/src/modules/{shop → espn/shop}/view/components/ShopPromoView/ShopPromoView.d.ts +0 -0
  515. /package/dist/src/modules/{shop → espn/shop}/view/components/ShopPromoView/index.d.ts +0 -0
  516. /package/dist/src/modules/{shop → espn/shop}/view/components/ShopPromoView/index.js +0 -0
  517. /package/dist/src/modules/{shop → espn/shop}/view/components/ShopSection/index.d.ts +0 -0
  518. /package/dist/src/modules/{shop → espn/shop}/view/components/ShopSection/index.js +0 -0
  519. /package/dist/src/modules/{shop → espn/shop}/view/index.d.ts +0 -0
  520. /package/dist/src/modules/{shop → espn/shop}/view/index.js +0 -0
  521. /package/dist/src/modules/{shop → espn/shop}/view-model/ShopViewModel.ShopPolling.js +0 -0
  522. /package/dist/src/modules/{stats → espn/stats}/mocks.d.ts +0 -0
  523. /package/dist/src/modules/{stats → espn/stats}/mocks.js +0 -0
  524. /package/dist/src/modules/{stats → espn/stats}/utils/driveSummaryUtils.d.ts +0 -0
  525. /package/dist/src/modules/{stats → espn/stats}/utils/driveSummaryUtils.js +0 -0
  526. /package/dist/src/modules/{stats → espn/stats}/utils/playerStatusUtils.d.ts +0 -0
  527. /package/dist/src/modules/{stats → espn/stats}/utils.d.ts +0 -0
  528. /package/dist/src/modules/{stats → espn/stats}/utils.js +0 -0
  529. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/ActiveAthletes.d.ts +0 -0
  530. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/ActiveAthletes.js +0 -0
  531. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.d.ts +0 -0
  532. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +0 -0
  533. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.d.ts +0 -0
  534. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +0 -0
  535. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/index.d.ts +0 -0
  536. /package/dist/src/modules/{stats → espn/stats}/view/ActiveAthletes/index.js +0 -0
  537. /package/dist/src/modules/{stats → espn/stats}/view/CareerMatchup/index.d.ts +0 -0
  538. /package/dist/src/modules/{stats → espn/stats}/view/CareerMatchup/index.js +0 -0
  539. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.d.ts +0 -0
  540. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.js +0 -0
  541. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/Header/DriveSummaryHeader.d.ts +0 -0
  542. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/Header/DriveSummaryHeader.js +0 -0
  543. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/MainStat/MainStat.d.ts +0 -0
  544. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/MainStat/MainStat.js +0 -0
  545. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/index.d.ts +0 -0
  546. /package/dist/src/modules/{stats → espn/stats}/view/DriveSummary/index.js +0 -0
  547. /package/dist/src/modules/{stats → espn/stats}/view/GameLeaders/index.d.ts +0 -0
  548. /package/dist/src/modules/{stats → espn/stats}/view/GameLeaders/index.js +0 -0
  549. /package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/DonutChart/DonutChart.d.ts +0 -0
  550. /package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/DonutChart/index.d.ts +0 -0
  551. /package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/DonutChart/index.js +0 -0
  552. /package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/MatchPredictorView.js +0 -0
  553. /package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/index.d.ts +0 -0
  554. /package/dist/src/modules/{stats → espn/stats}/view/MatchPredictor/index.js +0 -0
  555. /package/dist/src/modules/{stats → espn/stats}/view/Penalties/Penalties.d.ts +0 -0
  556. /package/dist/src/modules/{stats → espn/stats}/view/Penalties/index.d.ts +0 -0
  557. /package/dist/src/modules/{stats → espn/stats}/view/Penalties/index.js +0 -0
  558. /package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/ExpandedPlayerStats.d.ts +0 -0
  559. /package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/PlayerSeasonStatsMinified.d.ts +0 -0
  560. /package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/PlayerSeasonStatsView.d.ts +0 -0
  561. /package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/index.d.ts +0 -0
  562. /package/dist/src/modules/{stats → espn/stats}/view/PlayerSeasonStats/index.js +0 -0
  563. /package/dist/src/modules/{stats → espn/stats}/view/RecentGames/RecentGames.js +0 -0
  564. /package/dist/src/modules/{stats → espn/stats}/view/RecentGames/index.d.ts +0 -0
  565. /package/dist/src/modules/{stats → espn/stats}/view/RecentGames/index.js +0 -0
  566. /package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ExpandedScores/ExpandedScores.js +0 -0
  567. /package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoreItem/index.d.ts +0 -0
  568. /package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoreItem/index.js +0 -0
  569. /package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoresSection/ScoresSection.js +0 -0
  570. /package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoresSection/index.d.ts +0 -0
  571. /package/dist/src/modules/{stats → espn/stats}/view/ScoringSummary/ScoresSection/index.js +0 -0
  572. /package/dist/src/modules/{stats → espn/stats}/view/StatsQRCode/StatsQRCodeView.js +0 -0
  573. /package/dist/src/modules/{stats → espn/stats}/view/StatsQRCode/index.d.ts +0 -0
  574. /package/dist/src/modules/{stats → espn/stats}/view/StatsQRCode/index.js +0 -0
  575. /package/dist/src/modules/{stats → espn/stats}/view/TeamStats/index.d.ts +0 -0
  576. /package/dist/src/modules/{stats → espn/stats}/view/TeamStats/index.js +0 -0
  577. /package/dist/src/modules/{stats → espn/stats}/view/Teams/StatsCarousel.d.ts +0 -0
  578. /package/dist/src/modules/{stats → espn/stats}/view/Teams/StatsCarousel.js +0 -0
  579. /package/dist/src/modules/{stats → espn/stats}/view/Teams/StatsProgressBar.d.ts +0 -0
  580. /package/dist/src/modules/{stats → espn/stats}/view/Teams/StatsProgressBar.js +0 -0
  581. /package/dist/src/modules/{stats → espn/stats}/view/Teams/index.d.ts +0 -0
  582. /package/dist/src/modules/{stats → espn/stats}/view/Teams/index.js +0 -0
  583. /package/dist/src/modules/{stats → espn/stats}/view/WinProbability/index.d.ts +0 -0
  584. /package/dist/src/modules/{stats → espn/stats}/view/WinProbability/index.js +0 -0
  585. /package/dist/src/modules/{stats → espn/stats}/view/components/AthletesStatistics/StatisticTable.d.ts +0 -0
  586. /package/dist/src/modules/{stats → espn/stats}/view/components/AthletesStatistics/StatisticTable.js +0 -0
  587. /package/dist/src/modules/{stats → espn/stats}/view/components/AthletesStatistics/index.d.ts +0 -0
  588. /package/dist/src/modules/{stats → espn/stats}/view/components/AthletesStatistics/index.js +0 -0
  589. /package/dist/src/modules/{stats → espn/stats}/view/index.d.ts +0 -0
  590. /package/dist/src/modules/{stats → espn/stats}/view/index.js +0 -0
  591. /package/dist/src/modules/{hello-world → maestro/hello-world}/HelloWorldImage.d.ts +0 -0
  592. /package/dist/src/modules/{hello-world → maestro/hello-world}/HelloWorldImage.js +0 -0
  593. /package/dist/src/modules/{hello-world → maestro/hello-world}/HelloWorldView.d.ts +0 -0
  594. /package/dist/src/modules/{hello-world → maestro/hello-world}/HelloWorldView.js +0 -0
  595. /package/dist/src/modules/{hello-world → maestro/hello-world}/index.d.ts +0 -0
  596. /package/dist/src/modules/{hello-world → maestro/hello-world}/index.js +0 -0
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{183:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-view {\n display: block;\n overflow-y: auto;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n}\n\n.shop-view::-webkit-scrollbar {\n display: none;\n}\n\n.shop-bottom-padding {\n height: 50vh;\n}\n\n.shop-empty-state {\n display: block;\n text-align: center;\n padding: 60px 20px;\n color: #ffffff;\n font-size: 18px;\n}\n\n.shop-sections {\n display: block;\n}\n\n.scrollable-container[data-has-product-selected='true']::before,\n.scrollable-container[data-has-product-selected='true']::after,\n.scrollable-container[data-has-error='true']::after,\n.scrollable-container[data-has-error='true']::before {\n background: none;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/ShopView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,4CAA4C;EAC5C,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB",sourcesContent:[".shop-view {\n display: block;\n overflow-y: auto;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n}\n\n.shop-view::-webkit-scrollbar {\n display: none;\n}\n\n.shop-bottom-padding {\n height: 50vh;\n}\n\n.shop-empty-state {\n display: block;\n text-align: center;\n padding: 60px 20px;\n color: #ffffff;\n font-size: 18px;\n}\n\n.shop-sections {\n display: block;\n}\n\n.scrollable-container[data-has-product-selected='true']::before,\n.scrollable-container[data-has-product-selected='true']::after,\n.scrollable-container[data-has-error='true']::after,\n.scrollable-container[data-has-error='true']::before {\n background: none;\n}\n"],sourceRoot:""}]),n.a=i},184:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".product-detail-view-wrapper > *:first-child {\n margin-bottom: 16px;\n}\n\n/* Card */\n.product-detail-card {\n display: inline-block;\n padding: 24px;\n text-align: center;\n box-sizing: border-box;\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\n width: 100%;\n}\n\n/* Title */\n.product-detail-title {\n margin-bottom: 32px;\n font-family: var(--sdk-font-headline);\n}\n\n/* Mini Product Card Container */\n.product-detail-product {\n margin-bottom: 32px;\n}\n\n/* Override ProductSummaryCard styles when inside detail view */\n.product-detail-product .product-summary-card,\n.product-detail-product .browse-card {\n text-align: left;\n background-color: #ffffff14;\n background-image: none !important;\n padding: 16px;\n}\n\n.product-detail-product .browse-card {\n direction: rtl;\n}\n\n.product-detail-product .browse-card .browse-card-content {\n direction: ltr;\n}\n\n.product-detail-product .browse-card .browse-card-logo-image {\n margin-left: 0;\n margin-right: 24px;\n width: calc(20% - 24px);\n}\n\n.product-detail-product\n .product-summary-card\n .product-summary-card-image-container {\n width: 20%;\n}\n\n.product-detail-product .product-summary-card .product-summary-card-content {\n width: 80%;\n padding: 6px 0px 6px 24px;\n}\n\n.product-detail-product .product-summary-card-title {\n -webkit-line-clamp: 2;\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\n}\n\n/* QR Code Container */\n.product-detail-qr {\n background-color: var(--sdk-highlightPrimary);\n border-radius: 24px;\n margin: 32px 30% 28px 30%;\n overflow: hidden;\n}\n\n.product-detail-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Instruction Text */\n.product-detail-instruction {\n margin-bottom: 24px;\n font-family: var(--sdk-font-headline);\n}\n\n.product-detail-disclaimer {\n text-align: center;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css"],names:[],mappings:"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:[".product-detail-view-wrapper > *:first-child {\n margin-bottom: 16px;\n}\n\n/* Card */\n.product-detail-card {\n display: inline-block;\n padding: 24px;\n text-align: center;\n box-sizing: border-box;\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\n width: 100%;\n}\n\n/* Title */\n.product-detail-title {\n margin-bottom: 32px;\n font-family: var(--sdk-font-headline);\n}\n\n/* Mini Product Card Container */\n.product-detail-product {\n margin-bottom: 32px;\n}\n\n/* Override ProductSummaryCard styles when inside detail view */\n.product-detail-product .product-summary-card,\n.product-detail-product .browse-card {\n text-align: left;\n background-color: #ffffff14;\n background-image: none !important;\n padding: 16px;\n}\n\n.product-detail-product .browse-card {\n direction: rtl;\n}\n\n.product-detail-product .browse-card .browse-card-content {\n direction: ltr;\n}\n\n.product-detail-product .browse-card .browse-card-logo-image {\n margin-left: 0;\n margin-right: 24px;\n width: calc(20% - 24px);\n}\n\n.product-detail-product\n .product-summary-card\n .product-summary-card-image-container {\n width: 20%;\n}\n\n.product-detail-product .product-summary-card .product-summary-card-content {\n width: 80%;\n padding: 6px 0px 6px 24px;\n}\n\n.product-detail-product .product-summary-card-title {\n -webkit-line-clamp: 2;\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\n}\n\n/* QR Code Container */\n.product-detail-qr {\n background-color: var(--sdk-highlightPrimary);\n border-radius: 24px;\n margin: 32px 30% 28px 30%;\n overflow: hidden;\n}\n\n.product-detail-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Instruction Text */\n.product-detail-instruction {\n margin-bottom: 24px;\n font-family: var(--sdk-font-headline);\n}\n\n.product-detail-disclaimer {\n text-align: center;\n}\n"],sourceRoot:""}]),n.a=i},185:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\n\n.product-summary-card {\n position: relative;\n background-color: var(--sdk-surface4);\n overflow: hidden;\n vertical-align: middle;\n padding: 24px;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Product Image Container - 144x144 */\n.product-summary-card-image-container {\n display: inline-block;\n vertical-align: middle;\n width: 20%;\n overflow: hidden;\n line-height: 0;\n}\n\n.product-summary-card-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n}\n\n/* Text Content Container */\n.product-summary-card-content {\n display: inline-block;\n vertical-align: middle;\n padding: 16px 0 16px 24px;\n white-space: normal;\n width: 80%;\n box-sizing: border-box;\n}\n\n.product-summary-card-content[data-has-image='false'] {\n width: 100%;\n}\n\n/* Product Title - max 3 lines with ellipsis */\n.product-summary-card-title {\n padding-bottom: 4px;\n /* Line clamp for 3 lines */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n /* Fallback for non-webkit browsers */\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\n}\n\n/* Price Container */\n.product-summary-card-price-container {\n white-space: nowrap;\n}\n\n/* Original Price (crossed out when on sale) */\n.product-summary-card-price-original {\n text-decoration: line-through;\n opacity: 0.6;\n margin-right: 4px;\n}\n\n/* Sale/Clearance Price */\n.product-summary-card-price-sale {\n margin-right: 8px;\n}\n\n/* Sale/Clearance Badge */\n.product-summary-card-badge {\n display: inline-block;\n background-color: var(--sdk-alertError);\n padding-inline: 4px;\n border-radius: 4px;\n}\n\n.product-summary-card-qr-image {\n object-fit: contain;\n position: absolute;\n bottom: 16px;\n right: 16px;\n width: 6%;\n height: auto;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css"],names:[],mappings:"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd",sourcesContent:["/* Product Summary Card - TV-compatible CSS (no flex/grid) */\n\n.product-summary-card {\n position: relative;\n background-color: var(--sdk-surface4);\n overflow: hidden;\n vertical-align: middle;\n padding: 24px;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Product Image Container - 144x144 */\n.product-summary-card-image-container {\n display: inline-block;\n vertical-align: middle;\n width: 20%;\n overflow: hidden;\n line-height: 0;\n}\n\n.product-summary-card-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n}\n\n/* Text Content Container */\n.product-summary-card-content {\n display: inline-block;\n vertical-align: middle;\n padding: 16px 0 16px 24px;\n white-space: normal;\n width: 80%;\n box-sizing: border-box;\n}\n\n.product-summary-card-content[data-has-image='false'] {\n width: 100%;\n}\n\n/* Product Title - max 3 lines with ellipsis */\n.product-summary-card-title {\n padding-bottom: 4px;\n /* Line clamp for 3 lines */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n /* Fallback for non-webkit browsers */\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\n}\n\n/* Price Container */\n.product-summary-card-price-container {\n white-space: nowrap;\n}\n\n/* Original Price (crossed out when on sale) */\n.product-summary-card-price-original {\n text-decoration: line-through;\n opacity: 0.6;\n margin-right: 4px;\n}\n\n/* Sale/Clearance Price */\n.product-summary-card-price-sale {\n margin-right: 8px;\n}\n\n/* Sale/Clearance Badge */\n.product-summary-card-badge {\n display: inline-block;\n background-color: var(--sdk-alertError);\n padding-inline: 4px;\n border-radius: 4px;\n}\n\n.product-summary-card-qr-image {\n object-fit: contain;\n position: absolute;\n bottom: 16px;\n right: 16px;\n width: 6%;\n height: auto;\n}\n"],sourceRoot:""}]),n.a=i},186:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\n\n.browse-card {\n position: relative;\n display: block;\n background-color: var(--sdk-surface4);\n padding: 24px;\n box-sizing: border-box;\n text-align: left;\n}\n\n.browse-card-content {\n display: inline-block;\n width: 80%;\n vertical-align: middle;\n}\n\n/* Tag Line */\n.browse-card-tagline {\n margin-bottom: 4px;\n width: 85%;\n}\n\n.browse-card-caption {\n width: 85%;\n}\n\n.browse-card-logo-image {\n width: calc(20% - 12px);\n height: 100%;\n vertical-align: middle;\n margin-left: 12px;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css"],names:[],mappings:"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB",sourcesContent:["/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\n\n.browse-card {\n position: relative;\n display: block;\n background-color: var(--sdk-surface4);\n padding: 24px;\n box-sizing: border-box;\n text-align: left;\n}\n\n.browse-card-content {\n display: inline-block;\n width: 80%;\n vertical-align: middle;\n}\n\n/* Tag Line */\n.browse-card-tagline {\n margin-bottom: 4px;\n width: 85%;\n}\n\n.browse-card-caption {\n width: 85%;\n}\n\n.browse-card-logo-image {\n width: calc(20% - 12px);\n height: 100%;\n vertical-align: middle;\n margin-left: 12px;\n}\n"],sourceRoot:""}]),n.a=i},187:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-promo-view {\n display: block;\n text-align: center;\n padding: 32px;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.shop-promo-logo {\n padding: 30px 24px;\n}\n\n.shop-promo-qr-code {\n border-radius: 24px;\n margin: 32px 0 48px 0;\n width: 100%;\n max-width: 50%;\n}\n\n.shop-promo-description {\n margin: 0 17px;\n}\n\n.promo-view-disclaimer {\n margin-top: 24px;\n text-align: center;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB",sourcesContent:[".shop-promo-view {\n display: block;\n text-align: center;\n padding: 32px;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.shop-promo-logo {\n padding: 30px 24px;\n}\n\n.shop-promo-qr-code {\n border-radius: 24px;\n margin: 32px 0 48px 0;\n width: 100%;\n max-width: 50%;\n}\n\n.shop-promo-description {\n margin: 0 17px;\n}\n\n.promo-view-disclaimer {\n margin-top: 24px;\n text-align: center;\n}\n"],sourceRoot:""}]),n.a=i},188:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-section {\n margin-bottom: 40px;\n}\n\n.shop-section-title {\n margin: 0;\n margin-bottom: 0 !important;\n padding-top: 24px;\n padding-bottom: 0;\n margin-bottom: 16px !important;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 1;\n font-size: 21px;\n}\n\n/* Layout for product cards - TV compatible (no flex/grid) */\n.shop-section-items > * {\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.shop-item-placeholder {\n display: inline-block;\n vertical-align: top;\n width: 200px;\n height: 250px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n color: #ffffff;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/ShopSection/ShopSection.styles.css"],names:[],mappings:"AAAA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB",sourcesContent:[".shop-section {\n margin-bottom: 40px;\n}\n\n.shop-section-title {\n margin: 0;\n margin-bottom: 0 !important;\n padding-top: 24px;\n padding-bottom: 0;\n margin-bottom: 16px !important;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 1;\n font-size: 21px;\n}\n\n/* Layout for product cards - TV compatible (no flex/grid) */\n.shop-section-items > * {\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.shop-item-placeholder {\n display: inline-block;\n vertical-align: top;\n width: 200px;\n height: 250px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n color: #ffffff;\n}\n"],sourceRoot:""}]),n.a=i},203:function(e,n,t){"use strict";t.r(n);var r=t(0),a=t.n(r),o=t(5),i=t.n(o),s=t(183),c={insert:"head",singleton:!1},d=(i()(s.a,c),s.a.locals,t(96)),A=t(10),l=t(99),p=t(29),u=t(188),m={insert:"head",singleton:!1},h=(i()(u.a,m),u.a.locals,t(185)),g={insert:"head",singleton:!1},C=(i()(h.a,g),h.a.locals,t(89)),E=t(91);class b extends a.a.Component{render(){const{product:e,focused:n}=this.props,{image:t,name:r,price:o}=e,i=(null==o?void 0:o.displayClearance)||(null==o?void 0:o.displaySale),s=!!i;return a.a.createElement("div",{className:"product-summary-card focus-ring","data-focused":n},Boolean(null==t?void 0:t.href)&&a.a.createElement("div",{className:"product-summary-card-image-container"},a.a.createElement(E.a,{src:t.href,alt:r||"Product",className:"product-summary-card-image"})),a.a.createElement("div",{className:"product-summary-card-content","data-has-image":!(null==t||!t.href)},a.a.createElement("div",{className:"product-summary-card-title T05_ALT"},r||"Product Name"),a.a.createElement("div",{className:"product-summary-card-price-container"},s?a.a.createElement("div",null,a.a.createElement("span",{className:"product-summary-card-price-original T02 TEXT_200"},(null==o?void 0:o.displayRetail)||"$0.00"),a.a.createElement("span",{className:"product-summary-card-price-sale T02 TEXT_200"},i),a.a.createElement("span",{className:"product-summary-card-badge T02 FONT_BOLD"},"SALE")):a.a.createElement("span",{className:"product-summary-card-price T02 TEXT_200"},(null==o?void 0:o.displayRetail)||"$0.00"))),n&&a.a.createElement(E.a,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC",alt:"QR Code",className:"product-summary-card-qr-image"}))}}var B=Object(C.a)()(b),v=t(16),f=t(26),w=t(186),x={insert:"head",singleton:!1};i()(w.a,x),w.a.locals;class y extends a.a.Component{render(){const{browseCard:e,focused:n}=this.props,{name:t,caption:r,image:o,detail:i}=e;return a.a.createElement("div",{className:"browse-card focus-ring","data-focused":n,style:{backgroundImage:null!=i&&i.backgroundImage?`url(${i.backgroundImage})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundClip:"padding-box"}},a.a.createElement("div",{className:"browse-card-content"},!!t&&a.a.createElement("div",{className:"browse-card-tagline T20 FONT_BOLD"},t),a.a.createElement("div",{className:"browse-card-caption T10"},r||"Browse all merch")),(null==o?void 0:o.href)&&a.a.createElement(E.a,{src:o.href,width:72,height:72,alt:t||"Logo",className:"browse-card-logo-image"}))}}var k=Object(C.a)()(y);function S(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class P extends a.a.Component{constructor(...e){super(...e),S(this,"context",v.a),S(this,"onBecameFocused",e=>{this.context.scrollToFocusedElement(e,{offsetTop:40})}),S(this,"onEnterPress",(e,n,t)=>()=>{this.props.onItemClick(e,n,t)})}render(){var e;const{section:n,sectionIndex:t,onArrowPress:r}=this.props;return a.a.createElement("div",{className:"shop-section"},a.a.createElement("h2",{className:"shop-section-title TEXT_200"},n.title),a.a.createElement("div",{className:"shop-section-items"},null===(e=n.items)||void 0===e?void 0:e.map((e,o)=>{const i=`shop-section-${t}-item-${o}`;return"product"===e.type?a.a.createElement(f.a,{key:o},a.a.createElement(B,{product:e,onEnterPress:this.onEnterPress(e,n,i),onArrowPress:r,onBecameFocused:this.onBecameFocused,focusKey:i})):"browse"===e.type?a.a.createElement(f.a,{key:o},a.a.createElement(k,{key:o,browseCard:e,onArrowPress:r,onEnterPress:this.onEnterPress(e,n,i),onBecameFocused:this.onBecameFocused,focusKey:i})):null})))}}S(P,"contextTypes",v.b);var T=P,q=t(184),N={insert:"head",singleton:!1},D=(i()(q.a,N),q.a.locals,t(94)),L=t(8);const I=Object(C.a)()(e=>{var n,t;const{product:r,focused:o}=e,i=r.detail,s=(()=>{const e=null==i?void 0:i.backgroundImage;if(!e)return null;try{if(new URL(e).hostname.includes("stitcher")){return Object(L.a)(e,570,670)}}catch{if(e.includes("stitcher")){return Object(L.a)(e,570,670)}}return e})();return a.a.createElement("div",{className:"product-detail-card focus-ring","data-focused":o,style:{...s&&{backgroundImage:`url(${s})`,backgroundSize:"cover",backgroundClip:"padding-box",backgroundPosition:"center"}}},a.a.createElement("div",{className:"product-detail-title T70"},(null==i?void 0:i.title)||"Shop the look"),a.a.createElement("div",{className:"product-detail-product"},Object(p.a)(r)?a.a.createElement(B,{product:r,focusable:!1}):a.a.createElement(k,{browseCard:{...r,name:void 0,caption:null===(n=r.detail)||void 0===n?void 0:n.description},focusable:!1})),(null==i?void 0:i.qrCode)&&a.a.createElement("div",{className:"product-detail-qr"},a.a.createElement(E.a,{src:i.qrCode,alt:"QR Code",className:"product-detail-qr-image"})),a.a.createElement("div",{className:"product-detail-instruction T04"},null==i||null===(t=i.link)||void 0===t?void 0:t.text),a.a.createElement(D.a,{"data-focused":o},"Dismiss"))});var F=e=>{var n;return a.a.createElement("div",{className:"product-detail-view-wrapper"},a.a.createElement(I,e),(null===(n=e.product.detail)||void 0===n?void 0:n.disclaimer)&&a.a.createElement("div",{className:"product-detail-disclaimer T02 TEXT_200 FONT_BOLD"},e.product.detail.disclaimer))},M=t(187),O={insert:"head",singleton:!1};i()(M.a,O),M.a.locals;const j=Object(C.a)()(e=>{var n,t,r,o,i,s;const c=e.promoData;return a.a.createElement("div",{className:"shop-promo-view focus-ring T20","data-focused":e.focused,style:{backgroundImage:`url(${null===(n=c.detail)||void 0===n?void 0:n.backgroundImage})`}},a.a.createElement(E.a,{src:null===(t=c.image)||void 0===t?void 0:t.href,alt:"Promo Logo",className:"shop-promo-logo"}),a.a.createElement("div",{className:"shop-promo-title T30"},null===(r=c.detail)||void 0===r?void 0:r.title),a.a.createElement(E.a,{src:null===(o=c.detail)||void 0===o?void 0:o.qrCode,alt:"QR Code",className:"shop-promo-qr-code"}),a.a.createElement("p",{className:"shop-promo-description T20"},null===(i=c.detail)||void 0===i||null===(s=i.link)||void 0===s?void 0:s.text))});var U=e=>{var n;return a.a.createElement("div",null,a.a.createElement(j,e),a.a.createElement("div",{className:"promo-view-disclaimer T02 TEXT_200 FONT_BOLD"},null===(n=e.promoData.detail)||void 0===n?void 0:n.disclaimer))};function V(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class W extends r.Component{constructor(e){super(e),V(this,"container",null),V(this,"sectionsListener",null),V(this,"isDataLoadingListener",null),V(this,"errorStateListener",null),V(this,"promoDataListener",null),V(this,"vm",void 0),V(this,"clearTabLoadFailure",()=>{this.viewModel.clearTabLoadFailure()}),V(this,"onArrowPress",e=>{"left"===e&&A.default.getMaestroEventViewModel().deliverFocus()}),V(this,"openItemDetail",(e,n,t)=>{const r=Object(p.a)(e)?"product_summary":"want more";this.viewModel.trackItemClick(r,e,n),this.setState({selectedItem:e,selectedItemFocusKey:t,selectedShopSection:n},()=>{A.default.getMaestroEventViewModel().navigation.setFocus("product-detail-view")})}),V(this,"closeProductDetail",()=>{this.state.selectedItem&&this.state.selectedShopSection&&(this.viewModel.trackItemClick("product_detail",this.state.selectedItem,this.state.selectedShopSection),this.setState({selectedItem:null,selectedShopSection:null},()=>{this.state.selectedItemFocusKey&&setTimeout(()=>{A.default.getMaestroEventViewModel().navigation.setFocus(this.state.selectedItemFocusKey)},100)}))}),V(this,"trackPromoEnterPress",()=>{this.viewModel.trackItemClick("fallback",null,null)}),V(this,"renderContent",()=>{const{sections:e,errorState:n,selectedItem:t,promoData:r}=this.state;return t?a.a.createElement(F,{product:t,onEnterPress:this.closeProductDetail,onArrowPress:this.onArrowPress,focusKey:"product-detail-view"}):"tabLoadFailure"===n?a.a.createElement(l.a,{onEnterPress:this.clearTabLoadFailure,onArrowPress:this.onArrowPress}):"emptyShop"!==n&&0!==e.length||!r?e.map((e,n)=>a.a.createElement(T,{key:n,sectionIndex:n,section:e,onArrowPress:this.onArrowPress,onItemClick:this.openItemDetail})):a.a.createElement(U,{promoData:r,onEnterPress:this.trackPromoEnterPress})}),this.vm=A.default.getMaestroEventViewModel().shopViewModel,this.state={container:null,sections:this.viewModel.sections.value,isDataLoading:this.viewModel.isDataLoading.value,errorState:this.viewModel.errorState.value,selectedItem:null,selectedItemFocusKey:"",promoData:this.viewModel.promoData.value,selectedShopSection:null}}get viewModel(){if(!this.vm)throw new Error("ShopViewModel is not initialized");return this.vm}componentDidMount(){this.setState({container:this.container}),this.sectionsListener=this.viewModel.sections.subscribe(e=>{this.setState({sections:e})}),this.isDataLoadingListener=this.viewModel.isDataLoading.subscribe(e=>{this.setState({isDataLoading:e})}),this.errorStateListener=this.viewModel.errorState.subscribe(e=>{this.setState({errorState:e})}),this.promoDataListener=this.viewModel.promoData.subscribe(e=>{this.setState({promoData:e})}),this.viewModel.init()}componentWillUnmount(){this.sectionsListener&&this.sectionsListener(),this.isDataLoadingListener&&this.isDataLoadingListener(),this.errorStateListener&&this.errorStateListener(),this.promoDataListener&&this.promoDataListener(),this.viewModel.cleanup()}render(){return a.a.createElement(d.a,{scrollableContainerRef:this.state.container,containerTopOffset:40,"data-has-product-selected":!!this.state.selectedItem,"data-has-error":"none"!==this.state.errorState},a.a.createElement("div",{className:"shop-view",ref:e=>this.container=e},this.renderContent(),a.a.createElement("div",{className:"shop-bottom-padding"})))}}var z=W;n.default=z},91:function(e,n,t){"use strict";var r=t(0),a=t.n(r);function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}function i(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class s extends a.a.Component{constructor(e){super(e),i(this,"state",{failed:!1}),i(this,"handleError",()=>{this.setState({failed:!0})})}render(){return this.state.failed?(console.warn("Image failed to load:",this.props.src),null):this.props.src?a.a.createElement("img",o({alt:this.props.alt||"Image"},this.props,{onError:this.handleError})):(console.warn("Image source is empty"),null)}}n.a=s},94:function(e,n,t){"use strict";var r=t(28).a,a=t(5),o=t.n(a),i=t(98),s={insert:"head",singleton:!1},c=(o()(i.a,s),i.a.locals,t(89)),d=t(0),A=t.n(d);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}class p extends A.a.Component{render(){const{children:e,focused:n,focusKey:t,parentFocusKey:a,preferredChildFocusKey:o,forgetLastFocusedChild:i,trackChildren:s,autoRestoreFocus:c,blockNavigationOut:d,hasFocusedChild:p,focusable:u,onEnterPress:m,onEnterRelease:h,onBackPress:g,onArrowPress:C,onBecameFocused:E,onBecameBlurred:b,realFocusKey:B,setFocus:v,navigateByDirection:f,stealFocus:w,onUpdateFocus:x,onUpdateHasFocusedChild:y,...k}=this.props;return A.a.createElement(r,l({className:"action-button T05_ALT"},k),e)}}var u=Object(c.a)()(p);n.a=u},96:function(e,n,t){"use strict";var r=t(16);n.a=r.c},97:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n","",{version:3,sources:["webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd",sourcesContent:[".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n"],sourceRoot:""}]),n.a=i},98:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n","",{version:3,sources:["webpack://./src/components/molecules/ActionButton/ActionButton.styles.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B",sourcesContent:[".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n"],sourceRoot:""}]),n.a=i},99:function(e,n,t){"use strict";var r=t(89),a=t(0),o=t.n(a),i=t(94),s=t(5),c=t.n(s),d=t(97),A={insert:"head",singleton:!1};c()(d.a,A),d.a.locals;class l extends o.a.Component{render(){const{focused:e}=this.props;return o.a.createElement("div",{"data-focused":e,className:"tab-load-error focus-ring"},o.a.createElement("h3",{className:"T70"},"We dropped the ball."),o.a.createElement("p",{className:"T20"},"We're having trouble loading that for you. Please try again."),o.a.createElement(i.a,{"data-focused":e,onEnterPress:this.props.onEnterPress},"Try Again"))}}var p=Object(r.a)()(l);n.a=p}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{100:function(e,n,t){"use strict";var r=t(0),a=t.n(r);function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}function i(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class s extends a.a.Component{constructor(e){super(e),i(this,"state",{failed:!1}),i(this,"handleError",()=>{this.setState({failed:!0})})}render(){return this.state.failed?(console.warn("Image failed to load:",this.props.src),null):this.props.src?a.a.createElement("img",o({alt:this.props.alt||"Image"},this.props,{onError:this.handleError})):(console.warn("Image source is empty"),null)}}n.a=s},101:function(e,n,t){"use strict";var r=t(29);n.a=r.b},103:function(e,n,t){"use strict";var r=t(32).a,a=t(5),o=t.n(a),i=t(109),s={insert:"head",singleton:!1},c=(o()(i.a,s),i.a.locals,t(98)),d=t(0),l=t.n(d);function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}class p extends l.a.Component{render(){const{children:e,focused:n,focusKey:t,parentFocusKey:a,preferredChildFocusKey:o,forgetLastFocusedChild:i,trackChildren:s,autoRestoreFocus:c,blockNavigationOut:d,hasFocusedChild:p,focusable:u,onEnterPress:m,onEnterRelease:h,onBackPress:g,onArrowPress:C,onBecameFocused:E,onBecameBlurred:B,realFocusKey:b,setFocus:v,navigateByDirection:f,stealFocus:w,onUpdateFocus:x,onUpdateHasFocusedChild:y,...k}=this.props;return l.a.createElement(r,A({className:"action-button T05_ALT"},k),e)}}var u=Object(c.a)()(p);n.a=u},106:function(e,n,t){"use strict";t.d(n,"b",(function(){return o})),t.d(n,"a",(function(){return i}));var r=t(0);function a(e){if(!e)return;const n=e.getBoundingClientRect();e.style.maxHeight=window.innerHeight-n.top+"px"}function o(){const e=Object(r.useRef)(null),n=Object(r.useCallback)(()=>{a(e.current)},[]);Object(r.useEffect)(()=>(window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}),[n]);return Object(r.useCallback)(n=>{e.current=n,a(n)},[])}function i(e){const n=()=>{a(e())};return n(),window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}}},108:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n","",{version:3,sources:["webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd",sourcesContent:[".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n"],sourceRoot:""}]),n.a=i},109:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n","",{version:3,sources:["webpack://./src/components/molecules/ActionButton/ActionButton.styles.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B",sourcesContent:[".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n"],sourceRoot:""}]),n.a=i},110:function(e,n,t){"use strict";var r=t(98),a=t(0),o=t.n(a),i=t(103),s=t(5),c=t.n(s),d=t(108),l={insert:"head",singleton:!1};c()(d.a,l),d.a.locals;class A extends o.a.Component{render(){const{focused:e}=this.props;return o.a.createElement("div",{"data-focused":e,className:"tab-load-error focus-ring"},o.a.createElement("h3",{className:"T70"},"We dropped the ball."),o.a.createElement("p",{className:"T20"},"We're having trouble loading that for you. Please try again."),o.a.createElement(i.a,{"data-focused":e,onEnterPress:this.props.onEnterPress},"Try Again"))}}var p=Object(r.a)()(A);n.a=p},118:function(e,n,t){"use strict";t.d(n,"a",(function(){return r}));const r=(e,n,t)=>{try{const r=new URL(e);return r.searchParams.set("w",n.toString()),r.searchParams.set("h",t.toString()),r.toString()}catch(n){return console.warn("Malformed URL:",e,n),e}}},120:function(e,n,t){"use strict";t.d(n,"a",(function(){return r}));const r=e=>"product"===e.type},202:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-view {\n display: block;\n overflow-y: auto;\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n margin-top: 60px;\n}\n\n.shop-view::-webkit-scrollbar {\n display: none;\n}\n\n.shop-bottom-padding {\n height: 50vh;\n}\n\n.shop-empty-state {\n display: block;\n text-align: center;\n padding: 60px 20px;\n color: #ffffff;\n font-size: 18px;\n}\n\n.shop-sections {\n display: block;\n}\n\n.scrollable-container[data-has-product-selected='true']::before,\n.scrollable-container[data-has-product-selected='true']::after,\n.scrollable-container[data-has-error='true']::after,\n.scrollable-container[data-has-error='true']::before {\n background: none;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/shop/view/ShopView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;EAC5B,gBAAgB;AAClB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB",sourcesContent:[".shop-view {\n display: block;\n overflow-y: auto;\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n margin-top: 60px;\n}\n\n.shop-view::-webkit-scrollbar {\n display: none;\n}\n\n.shop-bottom-padding {\n height: 50vh;\n}\n\n.shop-empty-state {\n display: block;\n text-align: center;\n padding: 60px 20px;\n color: #ffffff;\n font-size: 18px;\n}\n\n.shop-sections {\n display: block;\n}\n\n.scrollable-container[data-has-product-selected='true']::before,\n.scrollable-container[data-has-product-selected='true']::after,\n.scrollable-container[data-has-error='true']::after,\n.scrollable-container[data-has-error='true']::before {\n background: none;\n}\n"],sourceRoot:""}]),n.a=i},203:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".product-detail-view-wrapper > *:first-child {\n margin-bottom: 16px;\n}\n\n/* Card */\n.product-detail-card {\n display: inline-block;\n padding: 24px;\n text-align: center;\n box-sizing: border-box;\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\n width: 100%;\n}\n\n/* Title */\n.product-detail-title {\n margin-bottom: 32px;\n font-family: var(--sdk-font-headline);\n}\n\n/* Mini Product Card Container */\n.product-detail-product {\n margin-bottom: 32px;\n}\n\n/* Override ProductSummaryCard styles when inside detail view */\n.product-detail-product .product-summary-card,\n.product-detail-product .browse-card {\n text-align: left;\n background-color: #ffffff14;\n background-image: none !important;\n padding: 16px;\n}\n\n.product-detail-product .browse-card {\n direction: rtl;\n}\n\n.product-detail-product .browse-card .browse-card-content {\n direction: ltr;\n}\n\n.product-detail-product .browse-card .browse-card-logo-image {\n margin-left: 0;\n margin-right: 24px;\n width: calc(20% - 24px);\n}\n\n.product-detail-product\n .product-summary-card\n .product-summary-card-image-container {\n width: 20%;\n}\n\n.product-detail-product .product-summary-card .product-summary-card-content {\n width: 80%;\n padding: 6px 0px 6px 24px;\n}\n\n.product-detail-product .product-summary-card-title {\n -webkit-line-clamp: 2;\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\n}\n\n/* QR Code Container */\n.product-detail-qr {\n background-color: var(--sdk-highlightPrimary);\n border-radius: 24px;\n margin: 32px 30% 28px 30%;\n overflow: hidden;\n}\n\n.product-detail-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Instruction Text */\n.product-detail-instruction {\n margin-bottom: 24px;\n font-family: var(--sdk-font-headline);\n}\n\n.product-detail-disclaimer {\n text-align: center;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css"],names:[],mappings:"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:[".product-detail-view-wrapper > *:first-child {\n margin-bottom: 16px;\n}\n\n/* Card */\n.product-detail-card {\n display: inline-block;\n padding: 24px;\n text-align: center;\n box-sizing: border-box;\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\n width: 100%;\n}\n\n/* Title */\n.product-detail-title {\n margin-bottom: 32px;\n font-family: var(--sdk-font-headline);\n}\n\n/* Mini Product Card Container */\n.product-detail-product {\n margin-bottom: 32px;\n}\n\n/* Override ProductSummaryCard styles when inside detail view */\n.product-detail-product .product-summary-card,\n.product-detail-product .browse-card {\n text-align: left;\n background-color: #ffffff14;\n background-image: none !important;\n padding: 16px;\n}\n\n.product-detail-product .browse-card {\n direction: rtl;\n}\n\n.product-detail-product .browse-card .browse-card-content {\n direction: ltr;\n}\n\n.product-detail-product .browse-card .browse-card-logo-image {\n margin-left: 0;\n margin-right: 24px;\n width: calc(20% - 24px);\n}\n\n.product-detail-product\n .product-summary-card\n .product-summary-card-image-container {\n width: 20%;\n}\n\n.product-detail-product .product-summary-card .product-summary-card-content {\n width: 80%;\n padding: 6px 0px 6px 24px;\n}\n\n.product-detail-product .product-summary-card-title {\n -webkit-line-clamp: 2;\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\n}\n\n/* QR Code Container */\n.product-detail-qr {\n background-color: var(--sdk-highlightPrimary);\n border-radius: 24px;\n margin: 32px 30% 28px 30%;\n overflow: hidden;\n}\n\n.product-detail-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Instruction Text */\n.product-detail-instruction {\n margin-bottom: 24px;\n font-family: var(--sdk-font-headline);\n}\n\n.product-detail-disclaimer {\n text-align: center;\n}\n"],sourceRoot:""}]),n.a=i},204:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\n\n.product-summary-card {\n position: relative;\n background-color: var(--sdk-surface4);\n overflow: hidden;\n vertical-align: middle;\n padding: 24px;\n width: 100%;\n height: 192px;\n box-sizing: border-box;\n text-align: left;\n}\n\n/* Helper for vertical centering */\n.product-summary-card::before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n}\n\n/* Product Image Container - 144x144 */\n.product-summary-card-image-container {\n display: inline-block;\n vertical-align: middle;\n width: 20%;\n max-height: 144px;\n overflow: hidden;\n line-height: 0;\n}\n\n.product-summary-card-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n}\n\n/* Text Content Container */\n.product-summary-card-content {\n display: inline-block;\n vertical-align: middle;\n padding: 16px 0 16px 24px;\n white-space: normal;\n width: 80%;\n box-sizing: border-box;\n}\n\n.product-summary-card-content[data-has-image='false'] {\n width: 100%;\n}\n\n/* Product Title - max 3 lines with ellipsis */\n.product-summary-card-title {\n padding-bottom: 4px;\n /* Line clamp for 3 lines */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n /* Fallback for non-webkit browsers */\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\n}\n\n/* Price Container */\n.product-summary-card-price-container {\n white-space: nowrap;\n}\n\n/* Original Price (crossed out when on sale) */\n.product-summary-card-price-original {\n text-decoration: line-through;\n opacity: 0.6;\n margin-right: 4px;\n}\n\n/* Sale/Clearance Price */\n.product-summary-card-price-sale {\n margin-right: 8px;\n}\n\n/* Sale/Clearance Badge */\n.product-summary-card-badge {\n display: inline-block;\n background-color: var(--sdk-alertError);\n padding-inline: 4px;\n border-radius: 4px;\n}\n\n.product-summary-card-qr-image {\n object-fit: contain;\n position: absolute;\n bottom: 16px;\n right: 16px;\n width: 6%;\n height: auto;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css"],names:[],mappings:"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA,kCAAkC;AAClC;EACE,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd",sourcesContent:["/* Product Summary Card - TV-compatible CSS (no flex/grid) */\n\n.product-summary-card {\n position: relative;\n background-color: var(--sdk-surface4);\n overflow: hidden;\n vertical-align: middle;\n padding: 24px;\n width: 100%;\n height: 192px;\n box-sizing: border-box;\n text-align: left;\n}\n\n/* Helper for vertical centering */\n.product-summary-card::before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n}\n\n/* Product Image Container - 144x144 */\n.product-summary-card-image-container {\n display: inline-block;\n vertical-align: middle;\n width: 20%;\n max-height: 144px;\n overflow: hidden;\n line-height: 0;\n}\n\n.product-summary-card-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n}\n\n/* Text Content Container */\n.product-summary-card-content {\n display: inline-block;\n vertical-align: middle;\n padding: 16px 0 16px 24px;\n white-space: normal;\n width: 80%;\n box-sizing: border-box;\n}\n\n.product-summary-card-content[data-has-image='false'] {\n width: 100%;\n}\n\n/* Product Title - max 3 lines with ellipsis */\n.product-summary-card-title {\n padding-bottom: 4px;\n /* Line clamp for 3 lines */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n /* Fallback for non-webkit browsers */\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\n}\n\n/* Price Container */\n.product-summary-card-price-container {\n white-space: nowrap;\n}\n\n/* Original Price (crossed out when on sale) */\n.product-summary-card-price-original {\n text-decoration: line-through;\n opacity: 0.6;\n margin-right: 4px;\n}\n\n/* Sale/Clearance Price */\n.product-summary-card-price-sale {\n margin-right: 8px;\n}\n\n/* Sale/Clearance Badge */\n.product-summary-card-badge {\n display: inline-block;\n background-color: var(--sdk-alertError);\n padding-inline: 4px;\n border-radius: 4px;\n}\n\n.product-summary-card-qr-image {\n object-fit: contain;\n position: absolute;\n bottom: 16px;\n right: 16px;\n width: 6%;\n height: auto;\n}\n"],sourceRoot:""}]),n.a=i},205:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\n\n.browse-card {\n position: relative;\n display: block;\n background-color: var(--sdk-surface4);\n padding: 24px;\n box-sizing: border-box;\n text-align: left;\n}\n\n.browse-card-content {\n display: inline-block;\n width: 80%;\n vertical-align: middle;\n}\n\n/* Tag Line */\n.browse-card-tagline {\n margin-bottom: 4px;\n width: 85%;\n}\n\n.browse-card-caption {\n width: 85%;\n}\n\n.browse-card-logo-image {\n width: calc(20% - 12px);\n height: 100%;\n vertical-align: middle;\n margin-left: 12px;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css"],names:[],mappings:"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB",sourcesContent:["/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\n\n.browse-card {\n position: relative;\n display: block;\n background-color: var(--sdk-surface4);\n padding: 24px;\n box-sizing: border-box;\n text-align: left;\n}\n\n.browse-card-content {\n display: inline-block;\n width: 80%;\n vertical-align: middle;\n}\n\n/* Tag Line */\n.browse-card-tagline {\n margin-bottom: 4px;\n width: 85%;\n}\n\n.browse-card-caption {\n width: 85%;\n}\n\n.browse-card-logo-image {\n width: calc(20% - 12px);\n height: 100%;\n vertical-align: middle;\n margin-left: 12px;\n}\n"],sourceRoot:""}]),n.a=i},206:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-promo-view {\n display: block;\n text-align: center;\n padding: 32px;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.shop-promo-logo {\n padding: 30px 24px;\n}\n\n.shop-promo-qr-code {\n border-radius: 24px;\n margin: 32px 0 48px 0;\n width: 100%;\n max-width: 50%;\n}\n\n.shop-promo-description {\n margin: 0 17px;\n}\n\n.promo-view-disclaimer {\n margin-top: 24px;\n text-align: center;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB",sourcesContent:[".shop-promo-view {\n display: block;\n text-align: center;\n padding: 32px;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.shop-promo-logo {\n padding: 30px 24px;\n}\n\n.shop-promo-qr-code {\n border-radius: 24px;\n margin: 32px 0 48px 0;\n width: 100%;\n max-width: 50%;\n}\n\n.shop-promo-description {\n margin: 0 17px;\n}\n\n.promo-view-disclaimer {\n margin-top: 24px;\n text-align: center;\n}\n"],sourceRoot:""}]),n.a=i},207:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-section-title {\n margin: 0;\n margin-bottom: 0 !important;\n padding-top: 24px;\n padding-bottom: 0;\n margin-bottom: 16px !important;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 1;\n font-size: 21px;\n}\n\n/* Layout for product cards - TV compatible (no flex/grid) */\n.shop-section-items > * {\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.shop-item-placeholder {\n display: inline-block;\n vertical-align: top;\n width: 200px;\n height: 250px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n color: #ffffff;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css"],names:[],mappings:"AAAA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB",sourcesContent:[".shop-section-title {\n margin: 0;\n margin-bottom: 0 !important;\n padding-top: 24px;\n padding-bottom: 0;\n margin-bottom: 16px !important;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 1;\n font-size: 21px;\n}\n\n/* Layout for product cards - TV compatible (no flex/grid) */\n.shop-section-items > * {\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.shop-item-placeholder {\n display: inline-block;\n vertical-align: top;\n width: 200px;\n height: 250px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n color: #ffffff;\n}\n"],sourceRoot:""}]),n.a=i},233:function(e,n,t){"use strict";t.r(n);var r=t(0),a=t.n(r),o=t(5),i=t.n(o),s=t(202),c={insert:"head",singleton:!1},d=(i()(s.a,c),s.a.locals,t(101)),l=t(8),A=t(110),p=t(120),u=t(207),m={insert:"head",singleton:!1},h=(i()(u.a,m),u.a.locals,t(204)),g={insert:"head",singleton:!1},C=(i()(h.a,g),h.a.locals,t(98)),E=t(100);class B extends a.a.Component{render(){const{product:e,focused:n}=this.props,{image:t,name:r,price:o}=e,i=(null==o?void 0:o.displayClearance)||(null==o?void 0:o.displaySale),s=!!i;return a.a.createElement("div",{className:"product-summary-card focus-ring","data-focused":n},Boolean(null==t?void 0:t.href)&&a.a.createElement("div",{className:"product-summary-card-image-container"},a.a.createElement(E.a,{src:t.href,alt:r||"Product",className:"product-summary-card-image"})),a.a.createElement("div",{className:"product-summary-card-content","data-has-image":!(null==t||!t.href)},a.a.createElement("div",{className:"product-summary-card-title T05_ALT"},r||"Product Name"),a.a.createElement("div",{className:"product-summary-card-price-container"},s?a.a.createElement("div",null,a.a.createElement("span",{className:"product-summary-card-price-original T02 TEXT_200"},(null==o?void 0:o.displayRetail)||"$0.00"),a.a.createElement("span",{className:"product-summary-card-price-sale T02 TEXT_200"},i),a.a.createElement("span",{className:"product-summary-card-badge T02 FONT_BOLD"},"SALE")):a.a.createElement("span",{className:"product-summary-card-price T02 TEXT_200"},(null==o?void 0:o.displayRetail)||"$0.00"))),n&&a.a.createElement(E.a,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC",alt:"QR Code",className:"product-summary-card-qr-image"}))}}var b=Object(C.a)()(B),v=t(30),f=t(28),w=t(205),x={insert:"head",singleton:!1};i()(w.a,x),w.a.locals;class y extends a.a.Component{render(){const{browseCard:e,focused:n}=this.props,{name:t,caption:r,image:o,detail:i}=e;return a.a.createElement("div",{className:"browse-card focus-ring","data-focused":n,style:{backgroundImage:null!=i&&i.backgroundImage?`url(${i.backgroundImage})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundClip:"padding-box"}},a.a.createElement("div",{className:"browse-card-content"},!!t&&a.a.createElement("div",{className:"browse-card-tagline T20 FONT_BOLD"},t),a.a.createElement("div",{className:"browse-card-caption T05_ALT"},r||"Browse all merch")),(null==o?void 0:o.href)&&a.a.createElement(E.a,{src:o.href,width:72,height:72,alt:t||"Logo",className:"browse-card-logo-image"}))}}var k=Object(C.a)()(y);var S=({section:e,sectionIndex:n,onArrowPress:t,onItemClick:r})=>{var o;const{scrollToFocusedElement:i}=Object(v.a)(),s=e=>{i(e,{offsetTop:40})},c=(e,n,t)=>()=>{r(e,n,t)};return a.a.createElement("div",{className:"shop-section"},a.a.createElement("h2",{className:"shop-section-title TEXT_200"},e.title),a.a.createElement("div",{className:"shop-section-items"},null===(o=e.items)||void 0===o?void 0:o.map((r,o)=>{const i=`shop-section-${n}-item-${o}`;return"product"===r.type?a.a.createElement(f.a,{key:o},a.a.createElement(b,{product:r,onEnterPress:c(r,e,i),onArrowPress:t,onBecameFocused:s,focusKey:i})):"browse"===r.type?a.a.createElement(f.a,{key:o},a.a.createElement(k,{key:o,browseCard:r,onArrowPress:t,onEnterPress:c(r,e,i),onBecameFocused:s,focusKey:i})):null})))},P=t(203),T={insert:"head",singleton:!1},q=(i()(P.a,T),P.a.locals,t(103)),D=t(118);const N=Object(C.a)()(e=>{var n,t;const{product:r,focused:o}=e,i=r.detail,s=(()=>{const e=null==i?void 0:i.backgroundImage;if(!e)return null;try{if(new URL(e).hostname.includes("stitcher")){return Object(D.a)(e,570,670)}}catch{if(e.includes("stitcher")){return Object(D.a)(e,570,670)}}return e})();return a.a.createElement("div",{className:"product-detail-card focus-ring","data-focused":o,style:{...s&&{backgroundImage:`url(${s})`,backgroundSize:"cover",backgroundClip:"padding-box",backgroundPosition:"center"}}},a.a.createElement("div",{className:"product-detail-title T70"},(null==i?void 0:i.title)||"Shop the look"),a.a.createElement("div",{className:"product-detail-product"},Object(p.a)(r)?a.a.createElement(b,{product:r,focusable:!1}):a.a.createElement(k,{browseCard:{...r,name:void 0,caption:null===(n=r.detail)||void 0===n?void 0:n.description},focusable:!1})),(null==i?void 0:i.qrCode)&&a.a.createElement("div",{className:"product-detail-qr"},a.a.createElement(E.a,{src:i.qrCode,alt:"QR Code",className:"product-detail-qr-image"})),a.a.createElement("div",{className:"product-detail-instruction T04"},null==i||null===(t=i.link)||void 0===t?void 0:t.text),a.a.createElement(q.a,{"data-focused":o},"Dismiss"))});var L=e=>{var n;return a.a.createElement("div",{className:"product-detail-view-wrapper"},a.a.createElement(N,e),(null===(n=e.product.detail)||void 0===n?void 0:n.disclaimer)&&a.a.createElement("div",{className:"product-detail-disclaimer T02 TEXT_200 FONT_BOLD"},e.product.detail.disclaimer))},O=t(206),j={insert:"head",singleton:!1};i()(O.a,j),O.a.locals;const F=Object(C.a)()(e=>{var n,t,r,o,i,s;const c=e.promoData;return a.a.createElement("div",{className:"shop-promo-view focus-ring T20","data-focused":e.focused,style:{backgroundImage:`url(${null===(n=c.detail)||void 0===n?void 0:n.backgroundImage})`}},a.a.createElement(E.a,{src:null===(t=c.image)||void 0===t?void 0:t.href,alt:"Promo Logo",className:"shop-promo-logo"}),a.a.createElement("div",{className:"shop-promo-title T30 FONT_BOLD"},null===(r=c.detail)||void 0===r?void 0:r.title),a.a.createElement(E.a,{src:null===(o=c.detail)||void 0===o?void 0:o.qrCode,alt:"QR Code",className:"shop-promo-qr-code"}),a.a.createElement("p",{className:"shop-promo-description T20 FONT_BOLD"},null===(i=c.detail)||void 0===i||null===(s=i.link)||void 0===s?void 0:s.text))});var I=e=>{var n;return a.a.createElement("div",null,a.a.createElement(F,e),a.a.createElement("div",{className:"promo-view-disclaimer T02 TEXT_200 FONT_BOLD"},null===(n=e.promoData.detail)||void 0===n?void 0:n.disclaimer))},M=t(106);function R(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class U extends r.Component{constructor(e){super(e),R(this,"container",null),R(this,"sectionsListener",null),R(this,"isDataLoadingListener",null),R(this,"errorStateListener",null),R(this,"promoDataListener",null),R(this,"maxHeightCleanup",null),R(this,"vm",void 0),R(this,"clearTabLoadFailure",()=>{this.viewModel.clearTabLoadFailure()}),R(this,"onArrowPress",e=>{"left"===e&&l.default.getMaestroEventViewModel().deliverFocus()}),R(this,"onBecameFocused",()=>{this.container&&(this.container.scrollTop=0)}),R(this,"openItemDetail",(e,n,t)=>{const r=Object(p.a)(e)?"product_summary":"want more";this.viewModel.trackItemClick(r,e,n),this.setState({selectedItem:e,selectedItemFocusKey:t,selectedShopSection:n},()=>{l.default.getMaestroEventViewModel().navigation.setFocus("product-detail-view")})}),R(this,"closeProductDetail",()=>{this.state.selectedItem&&this.state.selectedShopSection&&(this.viewModel.trackItemClick("product_detail",this.state.selectedItem,this.state.selectedShopSection),this.setState({selectedItem:null,selectedShopSection:null},()=>{this.state.selectedItemFocusKey&&setTimeout(()=>{l.default.getMaestroEventViewModel().navigation.setFocus(this.state.selectedItemFocusKey)},100)}))}),R(this,"trackPromoEnterPress",()=>{this.viewModel.trackItemClick("fallback",null,null)}),R(this,"renderContent",()=>{const{sections:e,errorState:n,selectedItem:t,promoData:r}=this.state;return t?a.a.createElement(L,{product:t,onBecameFocused:this.onBecameFocused,onEnterPress:this.closeProductDetail,onArrowPress:this.onArrowPress,focusKey:"product-detail-view"}):"tabLoadFailure"===n?a.a.createElement(A.a,{onEnterPress:this.clearTabLoadFailure,onArrowPress:this.onArrowPress}):"emptyShop"!==n&&0!==e.length||!r?e.map((e,n)=>a.a.createElement(S,{key:n,sectionIndex:n,section:e,onArrowPress:this.onArrowPress,onItemClick:this.openItemDetail})):a.a.createElement(I,{promoData:r,onEnterPress:this.trackPromoEnterPress})}),R(this,"setContainerRef",e=>{e&&!this.state.container&&this.setState({container:e}),this.container!==e&&(this.container=e,this.maxHeightCleanup&&this.maxHeightCleanup(),this.container&&(this.maxHeightCleanup=Object(M.a)(()=>this.container)))}),this.vm=l.default.getMaestroEventViewModel().shopViewModel,this.state={container:null,sections:this.viewModel.sections.value,isDataLoading:this.viewModel.isDataLoading.value,errorState:this.viewModel.errorState.value,selectedItem:null,selectedItemFocusKey:"",promoData:this.viewModel.promoData.value,selectedShopSection:null}}get viewModel(){if(!this.vm)throw new Error("ShopViewModel is not initialized");return this.vm}componentDidMount(){this.setState({container:this.container}),this.maxHeightCleanup=Object(M.a)(()=>this.container),this.sectionsListener=this.viewModel.sections.subscribe(e=>{this.setState({sections:e})}),this.isDataLoadingListener=this.viewModel.isDataLoading.subscribe(e=>{this.setState({isDataLoading:e})}),this.errorStateListener=this.viewModel.errorState.subscribe(e=>{this.setState({errorState:e})}),this.promoDataListener=this.viewModel.promoData.subscribe(e=>{this.setState({promoData:e})}),this.viewModel.init()}componentWillUnmount(){this.sectionsListener&&this.sectionsListener(),this.isDataLoadingListener&&this.isDataLoadingListener(),this.errorStateListener&&this.errorStateListener(),this.promoDataListener&&this.promoDataListener(),this.maxHeightCleanup&&this.maxHeightCleanup(),this.viewModel.cleanup()}render(){return a.a.createElement(d.a,{scrollableContainerRef:this.state.container,containerTopOffset:40,"data-has-product-selected":!!this.state.selectedItem,"data-has-error":"none"!==this.state.errorState,style:{maxHeight:"auto"}},a.a.createElement("div",{className:"shop-view",ref:this.setContainerRef},this.renderContent(),a.a.createElement("div",{className:"shop-bottom-padding"})))}}var z=U;n.default=z}}]);
2
2
  //# sourceMappingURL=5.maestro-web-sdk.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/modules/shop/view/ShopView.styles.css","webpack:///./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css","webpack:///./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css","webpack:///./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css","webpack:///./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css","webpack:///./src/modules/shop/view/components/ShopSection/ShopSection.styles.css","webpack:///./src/modules/shop/view/ShopView.styles.css?e126","webpack:///./src/modules/shop/view/components/ShopSection/ShopSection.styles.css?7434","webpack:///./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css?58b0","webpack:///./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.tsx","webpack:///./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css?52d7","webpack:///./src/modules/shop/view/components/BrowseCard/BrowseCard.tsx","webpack:///./src/modules/shop/view/components/ShopSection/ShopSection.tsx","webpack:///./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css?e1e7","webpack:///./src/modules/shop/view/ProductDetailView/ProductDetailView.tsx","webpack:///./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css?b08e","webpack:///./src/modules/shop/view/components/ShopPromoView/ShopPromoView.tsx","webpack:///./src/modules/shop/view/ShopView.tsx","webpack:///./src/modules/shop/view/index.ts","webpack:///./src/components/atoms/Image/index.tsx","webpack:///./src/components/atoms/BaseButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css?ed9b","webpack:///./src/components/molecules/ActionButton/ActionButton.tsx","webpack:///./src/components/molecules/ActionButton/index.ts","webpack:///./src/components/core/ScrollableContainer/index.ts","webpack:///./src/components/molecules/TabLoadError/TabLoadError.styles.css","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css","webpack:///./src/components/molecules/TabLoadError/TabLoadError.styles.css?59a9","webpack:///./src/components/molecules/TabLoadError/TabLoadError.tsx","webpack:///./src/components/molecules/TabLoadError/index.ts"],"names":["___CSS_LOADER_EXPORT___","push","module","i","options","locals","ProductSummaryCard","React","Component","render","product","focused","this","props","image","name","price","salePrice","displayClearance","displaySale","isOnSale","createElement","className","data-focused","Boolean","href","Image","src","alt","data-has-image","displayRetail","withFocusable","BrowseCardView","browseCard","caption","detail","style","backgroundImage","backgroundSize","backgroundPosition","backgroundClip","width","height","ShopSection","constructor","args","_defineProperty","DEFAULT_SCROLLABLE_CONTAINER_CONTEXT","layout","context","scrollToFocusedElement","offsetTop","item","section","focusKey","onItemClick","_section$items","sectionIndex","onArrowPress","title","items","map","itemIndex","type","FocusableItem","key","onEnterPress","onBecameFocused","BrowseCard","SCROLLABLE_CONTEXT_TYPE","FocusableProductDetail","_product$detail","_detail$link","bgImage","getBackgroundImage","URL","hostname","includes","setImageDimensions","isShopProduct","focusable","undefined","description","qrCode","link","text","ActionButton","ProductDetailView","_props$product$detail","disclaimer","FocusablePromoView","_promo$detail","_promo$image","_promo$detail2","_promo$detail3","_promo$detail4","_promo$detail4$link","promo","promoData","ShopPromoViewWrapper","_props$promoData$deta","ShopView","super","viewModel","clearTabLoadFailure","d","SDK","getMaestroEventViewModel","deliverFocus","selectedItem","selectedShopSection","selectedItemFocusKey","card","trackItemClick","setState","navigation","setFocus","state","setTimeout","sections","errorState","closeProductDetail","TabLoadErrorView","length","index","openItemDetail","ShopPromoView","trackPromoEnterPress","vm","shopViewModel","container","value","isDataLoading","Error","componentDidMount","sectionsListener","subscribe","isDataLoadingListener","errorStateListener","promoDataListener","init","componentWillUnmount","cleanup","ScrollableContainer","scrollableContainerRef","containerTopOffset","data-has-product-selected","data-has-error","ref","e","renderContent","failed","console","warn","_extends","onError","handleError","BaseButton","children","_focused","_focusKey","parentFocusKey","_parentFocusKey","preferredChildFocusKey","_preferredChildFocusKey","forgetLastFocusedChild","_forgetLastFocusedChild","trackChildren","_trackChildren","autoRestoreFocus","_autoRestoreFocus","blockNavigationOut","_blockNavigationOut","hasFocusedChild","_hasFocusedChild","_focusable","_onEnterPress","onEnterRelease","_onEnterRelease","onBackPress","_onBackPress","_onArrowPress","_onBecameFocused","onBecameBlurred","_onBecameBlurred","realFocusKey","_realFocusKey","_setFocus","navigateByDirection","_navigateByDirection","stealFocus","_stealFocus","onUpdateFocus","_onUpdateFocus","onUpdateHasFocusedChild","_onUpdateHasFocusedChild","buttonProps"],"mappings":"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","file":"5.maestro-web-sdk.esm.js","sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-view {\\n display: block;\\n overflow-y: auto;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/ShopView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,4CAA4C;EAC5C,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB\",\"sourcesContent\":[\".shop-view {\\n display: block;\\n overflow-y: auto;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd\",\"sourcesContent\":[\"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB\",\"sourcesContent\":[\".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-section {\\n margin-bottom: 40px;\\n}\\n\\n.shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ShopSection/ShopSection.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB\",\"sourcesContent\":[\".shop-section {\\n margin-bottom: 40px;\\n}\\n\\n.shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopSection.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductSummaryCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductSummaryCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\n\nimport { IShopProduct } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\n// QR code image as base64 data URI for SDK bundle\nconst productSummaryQRCode =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC';\n\nexport type ProductSummaryCardProps = {\n product: IShopProduct;\n onEnterPress?: () => void;\n onArrowPress?: (direction: Direction) => void;\n onBecameFocused?: (layout: Layout) => void;\n};\n\nclass ProductSummaryCard extends React.Component<\n ProductSummaryCardProps & WithFocusableProps\n> {\n render() {\n const { product, focused } = this.props;\n const { image, name, price } = product;\n\n // Determine if this is a sale or clearance item\n const salePrice = price?.displayClearance || price?.displaySale;\n const isOnSale = !!salePrice;\n\n return (\n <div className=\"product-summary-card focus-ring\" data-focused={focused}>\n {/* Product Image */}\n {Boolean(image?.href) && (\n <div className=\"product-summary-card-image-container\">\n <Image\n src={image!.href}\n alt={name || 'Product'}\n className=\"product-summary-card-image\"\n />\n </div>\n )}\n\n {/* Text Content Container */}\n <div\n className=\"product-summary-card-content\"\n data-has-image={!!image?.href}\n >\n {/* Product Title - max 3 lines with ellipsis */}\n <div className=\"product-summary-card-title T05_ALT\">\n {name || 'Product Name'}\n </div>\n\n {/* Price */}\n <div className=\"product-summary-card-price-container\">\n {isOnSale ? (\n <div>\n <span className=\"product-summary-card-price-original T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n <span className=\"product-summary-card-price-sale T02 TEXT_200\">\n {salePrice}\n </span>\n <span className=\"product-summary-card-badge T02 FONT_BOLD\">\n SALE\n </span>\n </div>\n ) : (\n <span className=\"product-summary-card-price T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n )}\n </div>\n </div>\n\n {/* QR Code Image - shown on focus */}\n {focused && (\n <Image\n src={productSummaryQRCode}\n alt=\"QR Code\"\n className=\"product-summary-card-qr-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<ProductSummaryCardProps>()(ProductSummaryCard);\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./BrowseCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './BrowseCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { IShopBrowseCard } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\nexport type BrowseCardProps = {\n browseCard: IShopBrowseCard;\n};\n\nexport class BrowseCardView extends React.Component<\n BrowseCardProps & WithFocusableProps\n> {\n render() {\n const { browseCard, focused } = this.props;\n const { name, caption, image, detail } = browseCard;\n\n return (\n <div\n className=\"browse-card focus-ring\"\n data-focused={focused}\n style={{\n backgroundImage: detail?.backgroundImage\n ? `url(${detail.backgroundImage})`\n : 'none',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundClip: 'padding-box',\n }}\n >\n <div className=\"browse-card-content\">\n {/* Tag Line */}\n {!!name && (\n <div className=\"browse-card-tagline T20 FONT_BOLD\">{name}</div>\n )}\n\n {/* Contextual Copy */}\n <div className=\"browse-card-caption T10\">\n {caption || 'Browse all merch'}\n </div>\n </div>\n\n {/* Team/League/Event Logo */}\n {image?.href && (\n <Image\n src={image.href}\n width={72}\n height={72}\n alt={name || 'Logo'}\n className=\"browse-card-logo-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<BrowseCardProps>()(BrowseCardView);\n","import React from 'react';\nimport './ShopSection.styles.css';\nimport { IShopBrowseCard, IShopProduct, IShopSection } from '../../../types';\nimport ProductSummaryCard from '../ProductSummaryCard';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\nimport {\n DEFAULT_SCROLLABLE_CONTAINER_CONTEXT,\n SCROLLABLE_CONTEXT_TYPE,\n} from '@/components/core/ScrollableContainer/ScrollableContainer';\nimport FocusableItem from '@/components/core/ScrollableContainer/FocusableItem';\nimport BrowseCard from '../BrowseCard';\n\nexport type ShopSectionProps = {\n sectionIndex: number;\n section: IShopSection;\n onArrowPress: (direction: Direction) => void;\n onItemClick: (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => void;\n};\n\nclass ShopSection extends React.Component<ShopSectionProps> {\n static contextTypes = SCROLLABLE_CONTEXT_TYPE;\n context = DEFAULT_SCROLLABLE_CONTAINER_CONTEXT;\n\n onBecameFocused = (layout: Layout) => {\n this.context.scrollToFocusedElement(layout, {\n offsetTop: 40,\n });\n };\n\n onEnterPress = (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => () => {\n this.props.onItemClick(item, section, focusKey);\n };\n\n render() {\n const { section, sectionIndex, onArrowPress } = this.props;\n\n return (\n <div className=\"shop-section\">\n <h2 className=\"shop-section-title TEXT_200\">{section.title}</h2>\n <div className=\"shop-section-items\">\n {section.items?.map((item, itemIndex) => {\n const focusKey = `shop-section-${sectionIndex}-item-${itemIndex}`;\n if (item.type === 'product') {\n return (\n <FocusableItem key={itemIndex}>\n <ProductSummaryCard\n product={item}\n onEnterPress={this.onEnterPress(item, section, focusKey)}\n onArrowPress={onArrowPress}\n onBecameFocused={this.onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else if (item.type === 'browse') {\n return (\n <FocusableItem key={itemIndex}>\n <BrowseCard\n key={itemIndex}\n browseCard={item}\n onArrowPress={onArrowPress}\n onEnterPress={this.onEnterPress(item, section, focusKey)}\n onBecameFocused={this.onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default ShopSection;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductDetailView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductDetailView.styles.css';\nimport { IShopBrowseCard, IShopProduct, isShopProduct } from '../../types';\nimport ProductSummaryCard from '../components/ProductSummaryCard';\nimport ActionButton from '@/components/molecules/ActionButton';\nimport Image from '@/components/atoms/Image';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport BrowseCard from '../components/BrowseCard';\nimport { setImageDimensions } from '@/helpers/url';\n\nexport type ProductDetailViewProps = {\n product: IShopProduct | IShopBrowseCard;\n focusKey: string;\n};\n\nconst ProductDetail = (props: ProductDetailViewProps & WithFocusableProps) => {\n const { product, focused } = props;\n const detail = product.detail;\n\n const getBackgroundImage = () => {\n const bgImage = detail?.backgroundImage;\n if (!bgImage) {\n return null;\n }\n\n try {\n const url = new URL(bgImage);\n if (url.hostname.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n } catch {\n // Fallback to original check if URL parsing fails\n if (bgImage.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n }\n\n return bgImage;\n };\n\n const bgImage = getBackgroundImage();\n return (\n <div\n className=\"product-detail-card focus-ring\"\n data-focused={focused}\n style={{\n ...(bgImage && {\n backgroundImage: `url(${bgImage})`,\n backgroundSize: 'cover',\n backgroundClip: 'padding-box',\n backgroundPosition: 'center',\n }),\n }}\n >\n {/* Tag Line Title */}\n <div className=\"product-detail-title T70\">\n {detail?.title || 'Shop the look'}\n </div>\n\n {/* Mini Product Card (non-focusable) */}\n <div className=\"product-detail-product\">\n {isShopProduct(product) ? (\n <ProductSummaryCard product={product} focusable={false} />\n ) : (\n <BrowseCard\n browseCard={{\n ...product,\n name: undefined,\n caption: product.detail?.description,\n }}\n focusable={false}\n />\n )}\n </div>\n\n {/* QR Code */}\n {detail?.qrCode && (\n <div className=\"product-detail-qr\">\n <Image\n src={detail.qrCode}\n alt=\"QR Code\"\n className=\"product-detail-qr-image\"\n />\n </div>\n )}\n\n {/* User Instruction */}\n <div className=\"product-detail-instruction T04\">{detail?.link?.text}</div>\n\n {/* Dismiss Button */}\n <ActionButton data-focused={focused}>Dismiss</ActionButton>\n </div>\n );\n};\n\nconst FocusableProductDetail = withFocusable<ProductDetailViewProps>()(\n ProductDetail\n);\n\nconst ProductDetailView = (\n props: ProductDetailViewProps & WithFocusableProps\n) => {\n return (\n <div className=\"product-detail-view-wrapper\">\n <FocusableProductDetail {...props} />\n {/* Legal Disclaimer */}\n {props.product.detail?.disclaimer && (\n <div className=\"product-detail-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.product.detail.disclaimer}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProductDetailView;\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopPromoView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport './ShopPromoView.styles.css';\nimport Image from '@/components/atoms/Image';\nimport { IShopDefaultItem } from '../../../types';\n\ntype Props = {\n promoData: IShopDefaultItem;\n};\n\nconst ShopPromoView = (props: Props & WithFocusableProps) => {\n const promo = props.promoData;\n\n return (\n <div\n className=\"shop-promo-view focus-ring T20\"\n data-focused={props.focused}\n style={{ backgroundImage: `url(${promo.detail?.backgroundImage})` }}\n >\n <Image\n src={promo.image?.href}\n alt=\"Promo Logo\"\n className=\"shop-promo-logo\"\n />\n <div className=\"shop-promo-title T30\">{promo.detail?.title}</div>\n <Image\n src={promo.detail?.qrCode}\n alt=\"QR Code\"\n className=\"shop-promo-qr-code\"\n />\n <p className=\"shop-promo-description T20\">{promo.detail?.link?.text}</p>\n </div>\n );\n};\n\nconst FocusablePromoView = withFocusable<Props>()(ShopPromoView);\n\nconst ShopPromoViewWrapper = (props: Props & WithFocusableProps) => {\n return (\n <div>\n <FocusablePromoView {...props} />\n <div className=\"promo-view-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.promoData.detail?.disclaimer}\n </div>\n </div>\n );\n};\n\nexport default ShopPromoViewWrapper;\n","import React, { Component } from 'react';\nimport './ShopView.styles.css';\nimport ScrollableContainer from '@/components/core/ScrollableContainer';\nimport SDK from '@/index';\nimport { Direction } from '@/external/spatial-navigation/utils';\nimport TabLoadErrorView from '@/components/molecules/TabLoadError';\nimport ShopViewModel, { ShopErrorState } from '../view-model/ShopViewModel';\nimport {\n IShopProduct,\n IShopSection,\n IShopBrowseCard,\n isShopProduct,\n IShopDefaultItem,\n} from '../types';\nimport ShopSection from './components/ShopSection';\nimport ProductDetailView from './ProductDetailView';\nimport ShopPromoView from './components/ShopPromoView';\n\ntype Unsubscribe = () => void;\n\ninterface State {\n container: HTMLDivElement | null;\n sections: IShopSection[];\n isDataLoading: boolean;\n errorState: ShopErrorState;\n selectedItem: IShopProduct | IShopBrowseCard | null;\n selectedShopSection: IShopSection | null;\n selectedItemFocusKey: string;\n promoData: IShopDefaultItem | null;\n}\n\nclass ShopView extends Component<{}, State> {\n private container: HTMLDivElement | null = null;\n private sectionsListener: Unsubscribe | null = null;\n private isDataLoadingListener: Unsubscribe | null = null;\n private errorStateListener: Unsubscribe | null = null;\n private promoDataListener: Unsubscribe | null = null;\n private vm: ShopViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel().shopViewModel;\n\n this.state = {\n container: null,\n sections: this.viewModel.sections.value,\n isDataLoading: this.viewModel.isDataLoading.value,\n errorState: this.viewModel.errorState.value,\n selectedItem: null,\n selectedItemFocusKey: '',\n promoData: this.viewModel.promoData.value,\n selectedShopSection: null,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('ShopViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount(): void {\n this.setState({\n container: this.container,\n });\n\n this.sectionsListener = this.viewModel.sections.subscribe((sections) => {\n this.setState({ sections });\n });\n\n this.isDataLoadingListener = this.viewModel.isDataLoading.subscribe(\n (isDataLoading) => {\n this.setState({ isDataLoading });\n }\n );\n\n this.errorStateListener = this.viewModel.errorState.subscribe(\n (errorState) => {\n this.setState({ errorState });\n }\n );\n\n this.promoDataListener = this.viewModel.promoData.subscribe((promoData) => {\n this.setState({ promoData });\n });\n\n // Initialize the view model\n this.viewModel.init();\n }\n\n componentWillUnmount() {\n this.sectionsListener && this.sectionsListener();\n this.isDataLoadingListener && this.isDataLoadingListener();\n this.errorStateListener && this.errorStateListener();\n this.promoDataListener && this.promoDataListener();\n\n // Clean up the view model\n this.viewModel.cleanup();\n }\n\n clearTabLoadFailure = () => {\n this.viewModel.clearTabLoadFailure();\n };\n\n onArrowPress = (d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n };\n\n openItemDetail = (\n selectedItem: IShopProduct | IShopBrowseCard,\n selectedShopSection: IShopSection,\n selectedItemFocusKey: string\n ) => {\n const card = isShopProduct(selectedItem)\n ? 'product_summary'\n : ('want more' as const);\n this.viewModel.trackItemClick(card, selectedItem, selectedShopSection);\n\n this.setState(\n { selectedItem, selectedItemFocusKey, selectedShopSection },\n () => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n 'product-detail-view'\n );\n }\n );\n };\n\n closeProductDetail = () => {\n if (!this.state.selectedItem || !this.state.selectedShopSection) {\n return;\n }\n\n this.viewModel.trackItemClick(\n 'product_detail',\n this.state.selectedItem,\n this.state.selectedShopSection\n );\n\n this.setState({ selectedItem: null, selectedShopSection: null }, () => {\n if (this.state.selectedItemFocusKey) {\n // Added a small delay so all the focusable items are rendered and we have the ref of them\n setTimeout(() => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n this.state.selectedItemFocusKey\n );\n }, 100);\n }\n });\n };\n\n trackPromoEnterPress = () => {\n this.viewModel.trackItemClick('fallback', null, null);\n };\n\n renderContent = () => {\n const { sections, errorState, selectedItem, promoData } = this.state;\n\n // Show product detail view if a product is selected\n if (selectedItem) {\n return (\n <ProductDetailView\n product={selectedItem}\n onEnterPress={this.closeProductDetail}\n onArrowPress={this.onArrowPress}\n focusKey=\"product-detail-view\"\n />\n );\n }\n\n // Show error state if tab load failed\n if (errorState === 'tabLoadFailure') {\n return (\n <TabLoadErrorView\n onEnterPress={this.clearTabLoadFailure}\n onArrowPress={this.onArrowPress}\n />\n );\n }\n\n // Show promo view if shop is empty and promo data is available\n if ((errorState === 'emptyShop' || sections.length === 0) && promoData) {\n return (\n <ShopPromoView\n promoData={promoData}\n onEnterPress={this.trackPromoEnterPress}\n />\n );\n }\n\n // Render sections\n return sections.map((section, index) => (\n <ShopSection\n key={index}\n sectionIndex={index}\n section={section}\n onArrowPress={this.onArrowPress}\n onItemClick={this.openItemDetail}\n />\n ));\n };\n\n render() {\n return (\n <ScrollableContainer\n scrollableContainerRef={this.state.container}\n containerTopOffset={40}\n data-has-product-selected={!!this.state.selectedItem}\n data-has-error={this.state.errorState !== 'none'}\n >\n <div className=\"shop-view\" ref={(e) => (this.container = e)}>\n {this.renderContent()}\n <div className=\"shop-bottom-padding\" />\n </div>\n </ScrollableContainer>\n );\n }\n}\n\nexport default ShopView;\n","import ShopView from './ShopView';\n\nexport default ShopView;\n","import React from 'react';\nimport { ImgHTMLAttributes } from 'react';\n\ninterface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {}\n\nclass Image extends React.Component<ImageProps> {\n state = {\n failed: false,\n };\n\n constructor(props: ImageProps) {\n super(props);\n }\n\n handleError = () => {\n this.setState({ failed: true });\n };\n\n render() {\n if (this.state.failed) {\n console.warn('Image failed to load:', this.props.src);\n return null;\n }\n\n if (!this.props.src) {\n console.warn('Image source is empty');\n return null;\n }\n\n return (\n <img\n alt={this.props.alt || 'Image'}\n {...this.props}\n onError={this.handleError}\n />\n );\n }\n}\n\nexport default Image;\n","import BaseButton from './BaseButton';\n\nexport default BaseButton;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ActionButton.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import BaseButton from '@/components/atoms/BaseButton';\nimport './ActionButton.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\n\ntype SpatialNavigationInjectedProps = {\n realFocusKey?: string;\n setFocus?: (focusKey: string) => void;\n navigateByDirection?: (...args: any[]) => any;\n stealFocus?: () => void;\n onUpdateFocus?: (focused: boolean) => void;\n onUpdateHasFocusedChild?: (hasFocusedChild: boolean) => void;\n};\n\ntype Props = React.PropsWithChildren<\n React.ButtonHTMLAttributes<HTMLButtonElement> &\n WithFocusableProps &\n SpatialNavigationInjectedProps\n>;\n\nclass ActionButton extends React.Component<Props, {}> {\n render() {\n const {\n children,\n // spatial-navigation props (must not hit DOM)\n focused: _focused,\n focusKey: _focusKey,\n parentFocusKey: _parentFocusKey,\n preferredChildFocusKey: _preferredChildFocusKey,\n forgetLastFocusedChild: _forgetLastFocusedChild,\n trackChildren: _trackChildren,\n autoRestoreFocus: _autoRestoreFocus,\n blockNavigationOut: _blockNavigationOut,\n hasFocusedChild: _hasFocusedChild,\n focusable: _focusable,\n onEnterPress: _onEnterPress,\n onEnterRelease: _onEnterRelease,\n onBackPress: _onBackPress,\n onArrowPress: _onArrowPress,\n onBecameFocused: _onBecameFocused,\n onBecameBlurred: _onBecameBlurred,\n // injected/internal props (also must not hit DOM)\n realFocusKey: _realFocusKey,\n setFocus: _setFocus,\n navigateByDirection: _navigateByDirection,\n stealFocus: _stealFocus,\n onUpdateFocus: _onUpdateFocus,\n onUpdateHasFocusedChild: _onUpdateHasFocusedChild,\n ...buttonProps\n } = this.props;\n\n return (\n <BaseButton className=\"action-button T05_ALT\" {...buttonProps}>\n {children}\n </BaseButton>\n );\n }\n}\n\nexport default withFocusable()(ActionButton);\n","import ActionButton from './ActionButton';\n\nexport default ActionButton;\n","import ScrollableContainer from './ScrollableContainer';\n\nexport default ScrollableContainer;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd\",\"sourcesContent\":[\".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/ActionButton/ActionButton.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B\",\"sourcesContent\":[\".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./TabLoadError.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\nimport ActionButton from '../ActionButton';\nimport './TabLoadError.styles.css';\n\nclass TabLoadErrorView extends React.Component<WithFocusableProps> {\n render() {\n const { focused } = this.props;\n\n return (\n <div data-focused={focused} className=\"tab-load-error focus-ring\">\n <h3 className=\"T70\">We dropped the ball.</h3>\n <p className=\"T20\">\n {\"We're having trouble loading that for you. Please try again.\"}\n </p>\n <ActionButton\n data-focused={focused}\n onEnterPress={this.props.onEnterPress}\n >\n Try Again\n </ActionButton>\n </div>\n );\n }\n}\n\nexport default withFocusable()(TabLoadErrorView);\n","import TabLoadErrorView from './TabLoadError';\n\nexport default TabLoadErrorView;\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/components/atoms/Image/index.tsx","webpack:///./src/components/core/ScrollableContainer/index.ts","webpack:///./src/components/atoms/BaseButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css?ed9b","webpack:///./src/components/molecules/ActionButton/ActionButton.tsx","webpack:///./src/components/molecules/ActionButton/index.ts","webpack:///./src/hooks/useMaxHeightToBottom.ts","webpack:///./src/components/molecules/TabLoadError/TabLoadError.styles.css","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css","webpack:///./src/components/molecules/TabLoadError/TabLoadError.styles.css?59a9","webpack:///./src/components/molecules/TabLoadError/TabLoadError.tsx","webpack:///./src/components/molecules/TabLoadError/index.ts","webpack:///./src/helpers/url.ts","webpack:///./src/modules/espn/shop/types.ts","webpack:///./src/modules/espn/shop/view/ShopView.styles.css","webpack:///./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css","webpack:///./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css","webpack:///./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css","webpack:///./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css","webpack:///./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css","webpack:///./src/modules/espn/shop/view/ShopView.styles.css?d965","webpack:///./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css?01f8","webpack:///./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css?a178","webpack:///./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.tsx","webpack:///./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css?129c","webpack:///./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.tsx","webpack:///./src/modules/espn/shop/view/components/ShopSection/ShopSection.tsx","webpack:///./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css?946c","webpack:///./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.tsx","webpack:///./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css?cea1","webpack:///./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.tsx","webpack:///./src/modules/espn/shop/view/ShopView.tsx","webpack:///./src/modules/espn/shop/view/index.ts"],"names":["Image","React","Component","constructor","props","super","_defineProperty","failed","this","setState","render","state","console","warn","src","createElement","_extends","alt","onError","handleError","ScrollableContainer","BaseButton","options","locals","ActionButton","children","focused","_focused","focusKey","_focusKey","parentFocusKey","_parentFocusKey","preferredChildFocusKey","_preferredChildFocusKey","forgetLastFocusedChild","_forgetLastFocusedChild","trackChildren","_trackChildren","autoRestoreFocus","_autoRestoreFocus","blockNavigationOut","_blockNavigationOut","hasFocusedChild","_hasFocusedChild","focusable","_focusable","onEnterPress","_onEnterPress","onEnterRelease","_onEnterRelease","onBackPress","_onBackPress","onArrowPress","_onArrowPress","onBecameFocused","_onBecameFocused","onBecameBlurred","_onBecameBlurred","realFocusKey","_realFocusKey","setFocus","_setFocus","navigateByDirection","_navigateByDirection","stealFocus","_stealFocus","onUpdateFocus","_onUpdateFocus","onUpdateHasFocusedChild","_onUpdateHasFocusedChild","buttonProps","className","withFocusable","calculateMaxHeight","element","rect","getBoundingClientRect","style","maxHeight","window","innerHeight","top","useMaxHeightToBottom","elementRef","useRef","handleResize","useCallback","current","useEffect","addEventListener","removeEventListener","setupMaxHeightToBottom","getElement","___CSS_LOADER_EXPORT___","push","module","i","TabLoadErrorView","data-focused","setImageDimensions","url","width","height","urlObj","URL","searchParams","set","toString","err","isShopProduct","item","type","ProductSummaryCard","product","image","name","price","salePrice","displayClearance","displaySale","isOnSale","Boolean","href","data-has-image","displayRetail","BrowseCardView","browseCard","caption","detail","backgroundImage","backgroundSize","backgroundPosition","backgroundClip","ShopSection","section","sectionIndex","onItemClick","_section$items","scrollToFocusedElement","useScrollableContainer","layout","offsetTop","title","items","map","itemIndex","FocusableItem","key","BrowseCard","FocusableProductDetail","_product$detail","_detail$link","bgImage","getBackgroundImage","hostname","includes","undefined","description","qrCode","link","text","ProductDetailView","_props$product$detail","disclaimer","FocusablePromoView","_promo$detail","_promo$image","_promo$detail2","_promo$detail3","_promo$detail4","_promo$detail4$link","promo","promoData","ShopPromoViewWrapper","_props$promoData$deta","ShopView","viewModel","clearTabLoadFailure","d","SDK","getMaestroEventViewModel","deliverFocus","container","scrollTop","selectedItem","selectedShopSection","selectedItemFocusKey","card","trackItemClick","navigation","setTimeout","sections","errorState","closeProductDetail","length","index","openItemDetail","ShopPromoView","trackPromoEnterPress","e","maxHeightCleanup","vm","shopViewModel","value","isDataLoading","Error","componentDidMount","sectionsListener","subscribe","isDataLoadingListener","errorStateListener","promoDataListener","init","componentWillUnmount","cleanup","scrollableContainerRef","containerTopOffset","data-has-product-selected","data-has-error","ref","setContainerRef","renderContent"],"mappings":"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","file":"5.maestro-web-sdk.esm.js","sourcesContent":["import React from 'react';\nimport { ImgHTMLAttributes } from 'react';\n\ninterface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {}\n\nclass Image extends React.Component<ImageProps> {\n state = {\n failed: false,\n };\n\n constructor(props: ImageProps) {\n super(props);\n }\n\n handleError = () => {\n this.setState({ failed: true });\n };\n\n render() {\n if (this.state.failed) {\n console.warn('Image failed to load:', this.props.src);\n return null;\n }\n\n if (!this.props.src) {\n console.warn('Image source is empty');\n return null;\n }\n\n return (\n <img\n alt={this.props.alt || 'Image'}\n {...this.props}\n onError={this.handleError}\n />\n );\n }\n}\n\nexport default Image;\n","import ScrollableContainer from './ScrollableContainer';\n\nexport { ScrollableContainerContext } from './ScrollableContainer';\nexport { useScrollableContainer } from './useScrollableContainer';\nexport { default as FocusableItem } from './FocusableItem';\nexport type { ScrollableContainerContextType } from './ScrollableContainer';\nexport default ScrollableContainer;\n","import BaseButton from './BaseButton';\n\nexport default BaseButton;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ActionButton.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import BaseButton from '@/components/atoms/BaseButton';\nimport './ActionButton.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\n\ntype SpatialNavigationInjectedProps = {\n realFocusKey?: string;\n setFocus?: (focusKey: string) => void;\n navigateByDirection?: (...args: any[]) => any;\n stealFocus?: () => void;\n onUpdateFocus?: (focused: boolean) => void;\n onUpdateHasFocusedChild?: (hasFocusedChild: boolean) => void;\n};\n\ntype Props = React.PropsWithChildren<\n React.ButtonHTMLAttributes<HTMLButtonElement> &\n WithFocusableProps &\n SpatialNavigationInjectedProps\n>;\n\nclass ActionButton extends React.Component<Props, {}> {\n render() {\n const {\n children,\n // spatial-navigation props (must not hit DOM)\n focused: _focused,\n focusKey: _focusKey,\n parentFocusKey: _parentFocusKey,\n preferredChildFocusKey: _preferredChildFocusKey,\n forgetLastFocusedChild: _forgetLastFocusedChild,\n trackChildren: _trackChildren,\n autoRestoreFocus: _autoRestoreFocus,\n blockNavigationOut: _blockNavigationOut,\n hasFocusedChild: _hasFocusedChild,\n focusable: _focusable,\n onEnterPress: _onEnterPress,\n onEnterRelease: _onEnterRelease,\n onBackPress: _onBackPress,\n onArrowPress: _onArrowPress,\n onBecameFocused: _onBecameFocused,\n onBecameBlurred: _onBecameBlurred,\n // injected/internal props (also must not hit DOM)\n realFocusKey: _realFocusKey,\n setFocus: _setFocus,\n navigateByDirection: _navigateByDirection,\n stealFocus: _stealFocus,\n onUpdateFocus: _onUpdateFocus,\n onUpdateHasFocusedChild: _onUpdateHasFocusedChild,\n ...buttonProps\n } = this.props;\n\n return (\n <BaseButton className=\"action-button T05_ALT\" {...buttonProps}>\n {children}\n </BaseButton>\n );\n }\n}\n\nexport default withFocusable()(ActionButton);\n","import ActionButton from './ActionButton';\n\nexport default ActionButton;\n","import { useCallback, useEffect, useRef } from 'react';\n\n/**\n * Calculates and sets maxHeight on an element to fill remaining viewport height.\n * Updates on window resize.\n */\nfunction calculateMaxHeight(element: HTMLElement | null): void {\n if (!element) return;\n const rect = element.getBoundingClientRect();\n element.style.maxHeight = `${window.innerHeight - rect.top}px`;\n}\n\n/**\n * Hook for functional components.\n * Returns a ref callback that sets up maxHeight calculation with resize listener.\n */\nexport function useMaxHeightToBottom(): (\n element: HTMLDivElement | null\n) => void {\n const elementRef = useRef<HTMLDivElement | null>(null);\n\n const handleResize = useCallback(() => {\n calculateMaxHeight(elementRef.current);\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize]);\n\n const refCallback = useCallback((element: HTMLDivElement | null) => {\n elementRef.current = element;\n calculateMaxHeight(element);\n }, []);\n\n return refCallback;\n}\n\n/**\n * Utility for class components.\n * Call in componentDidMount, returns cleanup function for componentWillUnmount.\n */\nexport function setupMaxHeightToBottom(\n getElement: () => HTMLElement | null\n): () => void {\n const handleResize = () => {\n calculateMaxHeight(getElement());\n };\n\n // Initial calculation\n handleResize();\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n}\n\nexport default useMaxHeightToBottom;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd\",\"sourcesContent\":[\".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/ActionButton/ActionButton.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B\",\"sourcesContent\":[\".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./TabLoadError.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\nimport ActionButton from '../ActionButton';\nimport './TabLoadError.styles.css';\n\nclass TabLoadErrorView extends React.Component<WithFocusableProps> {\n render() {\n const { focused } = this.props;\n\n return (\n <div data-focused={focused} className=\"tab-load-error focus-ring\">\n <h3 className=\"T70\">We dropped the ball.</h3>\n <p className=\"T20\">\n {\"We're having trouble loading that for you. Please try again.\"}\n </p>\n <ActionButton\n data-focused={focused}\n onEnterPress={this.props.onEnterPress}\n >\n Try Again\n </ActionButton>\n </div>\n );\n }\n}\n\nexport default withFocusable()(TabLoadErrorView);\n","import TabLoadErrorView from './TabLoadError';\n\nexport default TabLoadErrorView;\n","export const setImageDimensions = (\n url: string,\n width: number,\n height: number\n) => {\n try {\n const urlObj = new URL(url);\n urlObj.searchParams.set('w', width.toString());\n urlObj.searchParams.set('h', height.toString());\n return urlObj.toString();\n } catch (err) {\n console.warn('Malformed URL:', url, err);\n return url; // Return the original URL if it cannot be parsed\n }\n};\n","/**\n * Shop module type definitions\n * Based on ESPN Shop API structure\n */\n\n/**\n * Image reference\n */\nexport interface IShopImage {\n /** Image URL */\n href?: string;\n /** Image width */\n width?: number;\n /** Image height */\n height?: number;\n}\n\n/**\n * Logo reference (same structure as image)\n */\nexport interface IShopLogo {\n /** Logo URL */\n href?: string;\n /** Logo width */\n width?: number;\n /** Logo height */\n height?: number;\n}\n\n/**\n * Link reference\n */\nexport interface IShopLink {\n /** Link URL */\n href?: string;\n /** Link text */\n text?: string;\n /** Link relations (e.g., [\"ictv\", \"fanatics\", \"index\", \"team\"]) */\n rel?: string[];\n}\n\n/**\n * Price information for a product\n */\nexport interface IShopPrice {\n /** Retail price display string (e.g., \"$29.99\") */\n displayRetail?: string;\n /** Sale price display string (e.g., \"$19.99\") - optional */\n displaySale?: string;\n /** Clearance price display string (e.g., \"$14.99\") - optional */\n displayClearance?: string;\n}\n\n/**\n * Product detail information shown in detail view\n */\nexport interface IShopDetail {\n /** Title for the detail view */\n title?: string;\n /** Description (optional, used for browse cards) */\n description?: string;\n /** Link information */\n link?: IShopLink;\n /** Background image URL */\n backgroundImage?: string;\n /** QR code image URL */\n qrCode?: string;\n /** Disclaimer text */\n disclaimer?: string;\n}\n\n/**\n * Product item in a shop section\n */\nexport interface IShopProduct {\n /** Item type discriminator */\n type?: 'product';\n /** Product name */\n name?: string;\n /** Product image */\n image?: IShopImage;\n /** Price information */\n price?: IShopPrice;\n /** Detail view information */\n detail?: IShopDetail;\n}\n\n/**\n * Browse card item (Want More?) in a shop section\n */\nexport interface IShopBrowseCard {\n /** Item type discriminator */\n type?: 'browse';\n /** Browse card name */\n name?: string;\n /** Caption text (e.g., \"Browse all Canadiens merch\") */\n caption?: string;\n /** Team/League/Event logo */\n image?: IShopImage;\n /** Detail view information */\n detail?: IShopDetail;\n}\n\n/**\n * Union type for all shop items\n */\nexport type IShopItem = IShopProduct | IShopBrowseCard;\n\n/**\n * Section product information (team/league info)\n */\nexport interface IShopSectionProduct {\n /** Product/Team ID */\n id?: string;\n /** Short display name (e.g., \"Canadiens\") */\n shortDisplayName?: string;\n /** Logo reference */\n logo?: IShopLogo;\n /** Type (e.g., \"team\") */\n type?: string;\n /** Link information */\n link?: IShopLink;\n /** Background image URL */\n backgroundImage?: string;\n}\n\n/**\n * Shop section containing a title and list of items\n */\nexport interface IShopSection {\n /** Section title (e.g., \"Shop Canadiens Merch\") */\n title?: string;\n /** Section product/team information */\n product?: IShopSectionProduct;\n /** Array of products or browse cards */\n items?: IShopItem[];\n}\n\nexport type IShopDefaultItem = {\n image?: {\n href?: string;\n width?: number;\n height?: number;\n };\n type?: string;\n detail?: {\n title?: string;\n link?: {\n href?: string;\n text?: string;\n };\n backgroundImage?: string;\n qrCode?: string;\n disclaimer?: string;\n };\n};\n\n/**\n * Shop container with sections\n */\nexport interface IShopContainer {\n /** Array of shop sections */\n sections?: IShopSection[];\n defaultItem?: IShopDefaultItem;\n}\n\n/**\n * Main shop API response\n */\nexport interface IShopResponse {\n /** Array of shop containers (typically one) */\n shop?: IShopContainer[];\n}\n\nexport const isShopProduct = (item: IShopItem): item is IShopProduct => {\n return item.type === 'product';\n};\n\nexport interface IShopViewModel {\n cleanup(): void;\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-view {\\n display: block;\\n overflow-y: auto;\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n margin-top: 60px;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/ShopView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;EAC5B,gBAAgB;AAClB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB\",\"sourcesContent\":[\".shop-view {\\n display: block;\\n overflow-y: auto;\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n margin-top: 60px;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n height: 192px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n/* Helper for vertical centering */\\n.product-summary-card::before {\\n content: '';\\n display: inline-block;\\n height: 100%;\\n vertical-align: middle;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n max-height: 144px;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA,kCAAkC;AAClC;EACE,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd\",\"sourcesContent\":[\"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n height: 192px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n/* Helper for vertical centering */\\n.product-summary-card::before {\\n content: '';\\n display: inline-block;\\n height: 100%;\\n vertical-align: middle;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n max-height: 144px;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB\",\"sourcesContent\":[\".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB\",\"sourcesContent\":[\".shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopSection.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductSummaryCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductSummaryCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\n\nimport { IShopProduct } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\n// QR code image as base64 data URI for SDK bundle\nconst productSummaryQRCode =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC';\n\nexport type ProductSummaryCardProps = {\n product: IShopProduct;\n onEnterPress?: () => void;\n onArrowPress?: (direction: Direction) => void;\n onBecameFocused?: (layout: Layout) => void;\n};\n\nclass ProductSummaryCard extends React.Component<\n ProductSummaryCardProps & WithFocusableProps\n> {\n render() {\n const { product, focused } = this.props;\n const { image, name, price } = product;\n\n // Determine if this is a sale or clearance item\n const salePrice = price?.displayClearance || price?.displaySale;\n const isOnSale = !!salePrice;\n\n return (\n <div className=\"product-summary-card focus-ring\" data-focused={focused}>\n {/* Product Image */}\n {Boolean(image?.href) && (\n <div className=\"product-summary-card-image-container\">\n <Image\n src={image!.href}\n alt={name || 'Product'}\n className=\"product-summary-card-image\"\n />\n </div>\n )}\n\n {/* Text Content Container */}\n <div\n className=\"product-summary-card-content\"\n data-has-image={!!image?.href}\n >\n {/* Product Title - max 3 lines with ellipsis */}\n <div className=\"product-summary-card-title T05_ALT\">\n {name || 'Product Name'}\n </div>\n\n {/* Price */}\n <div className=\"product-summary-card-price-container\">\n {isOnSale ? (\n <div>\n <span className=\"product-summary-card-price-original T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n <span className=\"product-summary-card-price-sale T02 TEXT_200\">\n {salePrice}\n </span>\n <span className=\"product-summary-card-badge T02 FONT_BOLD\">\n SALE\n </span>\n </div>\n ) : (\n <span className=\"product-summary-card-price T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n )}\n </div>\n </div>\n\n {/* QR Code Image - shown on focus */}\n {focused && (\n <Image\n src={productSummaryQRCode}\n alt=\"QR Code\"\n className=\"product-summary-card-qr-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<ProductSummaryCardProps>()(ProductSummaryCard);\n","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./BrowseCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './BrowseCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { IShopBrowseCard } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\nexport type BrowseCardProps = {\n browseCard: IShopBrowseCard;\n};\n\nexport class BrowseCardView extends React.Component<\n BrowseCardProps & WithFocusableProps\n> {\n render() {\n const { browseCard, focused } = this.props;\n const { name, caption, image, detail } = browseCard;\n\n return (\n <div\n className=\"browse-card focus-ring\"\n data-focused={focused}\n style={{\n backgroundImage: detail?.backgroundImage\n ? `url(${detail.backgroundImage})`\n : 'none',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundClip: 'padding-box',\n }}\n >\n <div className=\"browse-card-content\">\n {/* Tag Line */}\n {!!name && (\n <div className=\"browse-card-tagline T20 FONT_BOLD\">{name}</div>\n )}\n\n {/* Contextual Copy */}\n <div className=\"browse-card-caption T05_ALT\">\n {caption || 'Browse all merch'}\n </div>\n </div>\n\n {/* Team/League/Event Logo */}\n {image?.href && (\n <Image\n src={image.href}\n width={72}\n height={72}\n alt={name || 'Logo'}\n className=\"browse-card-logo-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<BrowseCardProps>()(BrowseCardView);\n","import React from 'react';\nimport './ShopSection.styles.css';\nimport { IShopBrowseCard, IShopProduct, IShopSection } from '../../../types';\nimport ProductSummaryCard from '../ProductSummaryCard';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\nimport { useScrollableContainer } from '@/components/core/ScrollableContainer';\nimport FocusableItem from '@/components/core/ScrollableContainer/FocusableItem';\nimport BrowseCard from '../BrowseCard';\n\nexport type ShopSectionProps = {\n sectionIndex: number;\n section: IShopSection;\n onArrowPress: (direction: Direction) => void;\n onItemClick: (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => void;\n};\n\nconst ShopSection: React.FC<ShopSectionProps> = ({\n section,\n sectionIndex,\n onArrowPress,\n onItemClick,\n}) => {\n const { scrollToFocusedElement } = useScrollableContainer();\n\n const onBecameFocused = (layout: Layout) => {\n scrollToFocusedElement(layout, {\n offsetTop: 40,\n });\n };\n\n const onEnterPress = (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => () => {\n onItemClick(item, section, focusKey);\n };\n\n return (\n <div className=\"shop-section\">\n <h2 className=\"shop-section-title TEXT_200\">{section.title}</h2>\n <div className=\"shop-section-items\">\n {section.items?.map((item, itemIndex) => {\n const focusKey = `shop-section-${sectionIndex}-item-${itemIndex}`;\n if (item.type === 'product') {\n return (\n <FocusableItem key={itemIndex}>\n <ProductSummaryCard\n product={item}\n onEnterPress={onEnterPress(item, section, focusKey)}\n onArrowPress={onArrowPress}\n onBecameFocused={onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else if (item.type === 'browse') {\n return (\n <FocusableItem key={itemIndex}>\n <BrowseCard\n key={itemIndex}\n browseCard={item}\n onArrowPress={onArrowPress}\n onEnterPress={onEnterPress(item, section, focusKey)}\n onBecameFocused={onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n};\n\nexport default ShopSection;\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductDetailView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductDetailView.styles.css';\nimport { IShopBrowseCard, IShopProduct, isShopProduct } from '../../types';\nimport ProductSummaryCard from '../components/ProductSummaryCard';\nimport ActionButton from '@/components/molecules/ActionButton';\nimport Image from '@/components/atoms/Image';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport BrowseCard from '../components/BrowseCard';\nimport { setImageDimensions } from '@/helpers/url';\n\nexport type ProductDetailViewProps = {\n product: IShopProduct | IShopBrowseCard;\n focusKey: string;\n onBecomeFocused?: () => void;\n};\n\nconst ProductDetail = (props: ProductDetailViewProps & WithFocusableProps) => {\n const { product, focused } = props;\n const detail = product.detail;\n\n const getBackgroundImage = () => {\n const bgImage = detail?.backgroundImage;\n if (!bgImage) {\n return null;\n }\n\n try {\n const url = new URL(bgImage);\n if (url.hostname.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n } catch {\n // Fallback to original check if URL parsing fails\n if (bgImage.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n }\n\n return bgImage;\n };\n\n const bgImage = getBackgroundImage();\n return (\n <div\n className=\"product-detail-card focus-ring\"\n data-focused={focused}\n style={{\n ...(bgImage && {\n backgroundImage: `url(${bgImage})`,\n backgroundSize: 'cover',\n backgroundClip: 'padding-box',\n backgroundPosition: 'center',\n }),\n }}\n >\n {/* Tag Line Title */}\n <div className=\"product-detail-title T70\">\n {detail?.title || 'Shop the look'}\n </div>\n\n {/* Mini Product Card (non-focusable) */}\n <div className=\"product-detail-product\">\n {isShopProduct(product) ? (\n <ProductSummaryCard product={product} focusable={false} />\n ) : (\n <BrowseCard\n browseCard={{\n ...product,\n name: undefined,\n caption: product.detail?.description,\n }}\n focusable={false}\n />\n )}\n </div>\n\n {/* QR Code */}\n {detail?.qrCode && (\n <div className=\"product-detail-qr\">\n <Image\n src={detail.qrCode}\n alt=\"QR Code\"\n className=\"product-detail-qr-image\"\n />\n </div>\n )}\n\n {/* User Instruction */}\n <div className=\"product-detail-instruction T04\">{detail?.link?.text}</div>\n\n {/* Dismiss Button */}\n <ActionButton data-focused={focused}>Dismiss</ActionButton>\n </div>\n );\n};\n\nconst FocusableProductDetail = withFocusable<ProductDetailViewProps>()(\n ProductDetail\n);\n\nconst ProductDetailView = (\n props: ProductDetailViewProps & WithFocusableProps\n) => {\n return (\n <div className=\"product-detail-view-wrapper\">\n <FocusableProductDetail {...props} />\n {/* Legal Disclaimer */}\n {props.product.detail?.disclaimer && (\n <div className=\"product-detail-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.product.detail.disclaimer}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProductDetailView;\n","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopPromoView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport './ShopPromoView.styles.css';\nimport Image from '@/components/atoms/Image';\nimport { IShopDefaultItem } from '../../../types';\n\ntype Props = {\n promoData: IShopDefaultItem;\n};\n\nconst ShopPromoView = (props: Props & WithFocusableProps) => {\n const promo = props.promoData;\n\n return (\n <div\n className=\"shop-promo-view focus-ring T20\"\n data-focused={props.focused}\n style={{ backgroundImage: `url(${promo.detail?.backgroundImage})` }}\n >\n <Image\n src={promo.image?.href}\n alt=\"Promo Logo\"\n className=\"shop-promo-logo\"\n />\n <div className=\"shop-promo-title T30 FONT_BOLD\">\n {promo.detail?.title}\n </div>\n <Image\n src={promo.detail?.qrCode}\n alt=\"QR Code\"\n className=\"shop-promo-qr-code\"\n />\n <p className=\"shop-promo-description T20 FONT_BOLD\">\n {promo.detail?.link?.text}\n </p>\n </div>\n );\n};\n\nconst FocusablePromoView = withFocusable<Props>()(ShopPromoView);\n\nconst ShopPromoViewWrapper = (props: Props & WithFocusableProps) => {\n return (\n <div>\n <FocusablePromoView {...props} />\n <div className=\"promo-view-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.promoData.detail?.disclaimer}\n </div>\n </div>\n );\n};\n\nexport default ShopPromoViewWrapper;\n","import React, { Component } from 'react';\nimport './ShopView.styles.css';\nimport ScrollableContainer from '@/components/core/ScrollableContainer';\nimport SDK from '@/index';\nimport { Direction } from '@/external/spatial-navigation/utils';\nimport TabLoadErrorView from '@/components/molecules/TabLoadError';\nimport ShopViewModel, { ShopErrorState } from '../view-model/ShopViewModel';\nimport {\n IShopProduct,\n IShopSection,\n IShopBrowseCard,\n isShopProduct,\n IShopDefaultItem,\n} from '../types';\nimport ShopSection from './components/ShopSection';\nimport ProductDetailView from './ProductDetailView';\nimport ShopPromoView from './components/ShopPromoView';\nimport { setupMaxHeightToBottom } from '@/hooks/useMaxHeightToBottom';\n\ntype Unsubscribe = () => void;\n\ninterface State {\n container: HTMLDivElement | null;\n sections: IShopSection[];\n isDataLoading: boolean;\n errorState: ShopErrorState;\n selectedItem: IShopProduct | IShopBrowseCard | null;\n selectedShopSection: IShopSection | null;\n selectedItemFocusKey: string;\n promoData: IShopDefaultItem | null;\n}\n\nclass ShopView extends Component<{}, State> {\n private container: HTMLDivElement | null = null;\n private sectionsListener: Unsubscribe | null = null;\n private isDataLoadingListener: Unsubscribe | null = null;\n private errorStateListener: Unsubscribe | null = null;\n private promoDataListener: Unsubscribe | null = null;\n private maxHeightCleanup: Unsubscribe | null = null;\n private vm: ShopViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel()\n .shopViewModel as ShopViewModel | null;\n\n this.state = {\n container: null,\n sections: this.viewModel.sections.value,\n isDataLoading: this.viewModel.isDataLoading.value,\n errorState: this.viewModel.errorState.value,\n selectedItem: null,\n selectedItemFocusKey: '',\n promoData: this.viewModel.promoData.value,\n selectedShopSection: null,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('ShopViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount(): void {\n this.setState({\n container: this.container,\n });\n\n this.maxHeightCleanup = setupMaxHeightToBottom(() => this.container);\n\n this.sectionsListener = this.viewModel.sections.subscribe((sections) => {\n this.setState({ sections });\n });\n\n this.isDataLoadingListener = this.viewModel.isDataLoading.subscribe(\n (isDataLoading) => {\n this.setState({ isDataLoading });\n }\n );\n\n this.errorStateListener = this.viewModel.errorState.subscribe(\n (errorState) => {\n this.setState({ errorState });\n }\n );\n\n this.promoDataListener = this.viewModel.promoData.subscribe((promoData) => {\n this.setState({ promoData });\n });\n\n // Initialize the view model\n this.viewModel.init();\n }\n\n componentWillUnmount() {\n this.sectionsListener && this.sectionsListener();\n this.isDataLoadingListener && this.isDataLoadingListener();\n this.errorStateListener && this.errorStateListener();\n this.promoDataListener && this.promoDataListener();\n this.maxHeightCleanup && this.maxHeightCleanup();\n\n // Clean up the view model\n this.viewModel.cleanup();\n }\n\n clearTabLoadFailure = () => {\n this.viewModel.clearTabLoadFailure();\n };\n\n onArrowPress = (d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n };\n\n onBecameFocused = () => {\n if (this.container) {\n this.container.scrollTop = 0;\n }\n };\n\n openItemDetail = (\n selectedItem: IShopProduct | IShopBrowseCard,\n selectedShopSection: IShopSection,\n selectedItemFocusKey: string\n ) => {\n const card = isShopProduct(selectedItem)\n ? 'product_summary'\n : ('want more' as const);\n this.viewModel.trackItemClick(card, selectedItem, selectedShopSection);\n\n this.setState(\n { selectedItem, selectedItemFocusKey, selectedShopSection },\n () => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n 'product-detail-view'\n );\n }\n );\n };\n\n closeProductDetail = () => {\n if (!this.state.selectedItem || !this.state.selectedShopSection) {\n return;\n }\n\n this.viewModel.trackItemClick(\n 'product_detail',\n this.state.selectedItem,\n this.state.selectedShopSection\n );\n\n this.setState({ selectedItem: null, selectedShopSection: null }, () => {\n if (this.state.selectedItemFocusKey) {\n // Added a small delay so all the focusable items are rendered and we have the ref of them\n setTimeout(() => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n this.state.selectedItemFocusKey\n );\n }, 100);\n }\n });\n };\n\n trackPromoEnterPress = () => {\n this.viewModel.trackItemClick('fallback', null, null);\n };\n\n renderContent = () => {\n const { sections, errorState, selectedItem, promoData } = this.state;\n\n // Show product detail view if a product is selected\n if (selectedItem) {\n return (\n <ProductDetailView\n product={selectedItem}\n onBecameFocused={this.onBecameFocused}\n onEnterPress={this.closeProductDetail}\n onArrowPress={this.onArrowPress}\n focusKey=\"product-detail-view\"\n />\n );\n }\n\n // Show error state if tab load failed\n if (errorState === 'tabLoadFailure') {\n return (\n <TabLoadErrorView\n onEnterPress={this.clearTabLoadFailure}\n onArrowPress={this.onArrowPress}\n />\n );\n }\n\n // Show promo view if shop is empty and promo data is available\n if ((errorState === 'emptyShop' || sections.length === 0) && promoData) {\n return (\n <ShopPromoView\n promoData={promoData}\n onEnterPress={this.trackPromoEnterPress}\n />\n );\n }\n\n // Render sections\n return sections.map((section, index) => (\n <ShopSection\n key={index}\n sectionIndex={index}\n section={section}\n onArrowPress={this.onArrowPress}\n onItemClick={this.openItemDetail}\n />\n ));\n };\n\n setContainerRef = (e: HTMLDivElement | null) => {\n if (e && !this.state.container) {\n this.setState({ container: e });\n }\n\n if (this.container !== e) {\n this.container = e;\n if (this.maxHeightCleanup) {\n this.maxHeightCleanup();\n }\n if (this.container) {\n this.maxHeightCleanup = setupMaxHeightToBottom(() => this.container);\n }\n }\n };\n\n render() {\n return (\n <ScrollableContainer\n scrollableContainerRef={this.state.container}\n containerTopOffset={40}\n data-has-product-selected={!!this.state.selectedItem}\n data-has-error={this.state.errorState !== 'none'}\n style={{\n maxHeight: 'auto',\n }}\n >\n <div className=\"shop-view\" ref={this.setContainerRef}>\n {this.renderContent()}\n <div className=\"shop-bottom-padding\" />\n </div>\n </ScrollableContainer>\n );\n }\n}\n\nexport default ShopView;\n","import ShopView from './ShopView';\n\nexport default ShopView;\n"],"sourceRoot":""}