@oddsmith/ui 0.0.0 → 1.0.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 (396) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -115
  3. package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json +9 -0
  4. package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json.js +13 -0
  5. package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json.js.map +1 -0
  6. package/dist/components/os-leaderboard-casino/assets/fallback/config.json +8 -0
  7. package/dist/components/os-leaderboard-casino/assets/fallback/defaults/glam-sections.json +564 -0
  8. package/dist/components/os-leaderboard-casino/assets/fallback/fonts.json +3 -0
  9. package/dist/components/os-leaderboard-casino/assets/fallback/labels.json +5 -0
  10. package/dist/components/os-leaderboard-casino/assets/fallback/labels.json.js +12 -0
  11. package/dist/components/os-leaderboard-casino/assets/fallback/labels.json.js.map +1 -0
  12. package/dist/components/os-leaderboard-casino/assets/fallback/manifest.json +6 -0
  13. package/dist/components/os-leaderboard-casino/assets/fallback/presets.json +38 -0
  14. package/dist/components/os-leaderboard-casino/assets/fallback/presets.json.js +10 -0
  15. package/dist/components/os-leaderboard-casino/assets/fallback/presets.json.js.map +1 -0
  16. package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json +601 -0
  17. package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json.js +8 -0
  18. package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json.js.map +1 -0
  19. package/dist/components/os-leaderboard-casino/assets/fallback/themes.json +69 -0
  20. package/dist/components/os-leaderboard-casino/assets/fallback/themes.json.js +73 -0
  21. package/dist/components/os-leaderboard-casino/assets/fallback/themes.json.js.map +1 -0
  22. package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg +7 -0
  23. package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg.js +12 -0
  24. package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg.js.map +1 -0
  25. package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg +7 -0
  26. package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg.js +12 -0
  27. package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg.js.map +1 -0
  28. package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg +5 -0
  29. package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg.js +10 -0
  30. package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg.js.map +1 -0
  31. package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg +10 -0
  32. package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg.js +15 -0
  33. package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg.js.map +1 -0
  34. package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg +5 -0
  35. package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg.js +10 -0
  36. package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg.js.map +1 -0
  37. package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg +5 -0
  38. package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg.js +10 -0
  39. package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg.js.map +1 -0
  40. package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg +8 -0
  41. package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg.js +13 -0
  42. package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg.js.map +1 -0
  43. package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg +4 -0
  44. package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg.js +9 -0
  45. package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg.js.map +1 -0
  46. package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg +5 -0
  47. package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg.js +10 -0
  48. package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg.js.map +1 -0
  49. package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg +5 -0
  50. package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg.js +10 -0
  51. package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg.js.map +1 -0
  52. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg +4 -0
  53. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg.js +9 -0
  54. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg.js.map +1 -0
  55. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg +4 -0
  56. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg.js +9 -0
  57. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg.js.map +1 -0
  58. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg +4 -0
  59. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg.js +9 -0
  60. package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg.js.map +1 -0
  61. package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg +7 -0
  62. package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg.js +12 -0
  63. package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg.js.map +1 -0
  64. package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg +5 -0
  65. package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg.js +10 -0
  66. package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg.js.map +1 -0
  67. package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg +4 -0
  68. package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg.js +9 -0
  69. package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg.js.map +1 -0
  70. package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg +5 -0
  71. package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg.js +10 -0
  72. package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg.js.map +1 -0
  73. package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg +4 -0
  74. package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg.js +9 -0
  75. package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg.js.map +1 -0
  76. package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg +5 -0
  77. package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg.js +10 -0
  78. package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg.js.map +1 -0
  79. package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg +5 -0
  80. package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg.js +10 -0
  81. package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg.js.map +1 -0
  82. package/dist/components/os-leaderboard-casino/assets/images/games/cards.png +0 -0
  83. package/dist/components/os-leaderboard-casino/assets/images/games/cards.png.js +5 -0
  84. package/dist/components/os-leaderboard-casino/assets/images/games/cards.png.js.map +1 -0
  85. package/dist/components/os-leaderboard-casino/assets/images/games/chips.png +0 -0
  86. package/dist/components/os-leaderboard-casino/assets/images/games/chips.png.js +5 -0
  87. package/dist/components/os-leaderboard-casino/assets/images/games/chips.png.js.map +1 -0
  88. package/dist/components/os-leaderboard-casino/assets/images/games/dice.png +0 -0
  89. package/dist/components/os-leaderboard-casino/assets/images/games/dice.png.js +5 -0
  90. package/dist/components/os-leaderboard-casino/assets/images/games/dice.png.js.map +1 -0
  91. package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png +0 -0
  92. package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png.js +5 -0
  93. package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png.js.map +1 -0
  94. package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png +0 -0
  95. package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png.js +5 -0
  96. package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png.js.map +1 -0
  97. package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png +0 -0
  98. package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png.js +5 -0
  99. package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png.js.map +1 -0
  100. package/dist/components/os-leaderboard-casino/assets/images/logo.png +0 -0
  101. package/dist/components/os-leaderboard-casino/constants/defaults.js +9 -0
  102. package/dist/components/os-leaderboard-casino/constants/defaults.js.map +1 -0
  103. package/dist/components/os-leaderboard-casino/constants/tags.js +15 -0
  104. package/dist/components/os-leaderboard-casino/constants/tags.js.map +1 -0
  105. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js +20 -0
  106. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js.map +1 -0
  107. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js +152 -0
  108. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js.map +1 -0
  109. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js +5 -0
  110. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js.map +1 -0
  111. package/dist/components/os-leaderboard-casino/index.js +39 -0
  112. package/dist/components/os-leaderboard-casino/index.js.map +1 -0
  113. package/dist/components/os-leaderboard-casino/integration/assemble-assets.js +48 -0
  114. package/dist/components/os-leaderboard-casino/integration/assemble-assets.js.map +1 -0
  115. package/dist/components/os-leaderboard-casino/integration/assets-context.js +64 -0
  116. package/dist/components/os-leaderboard-casino/integration/assets-context.js.map +1 -0
  117. package/dist/components/os-leaderboard-casino/integration/load-assets.js +22 -0
  118. package/dist/components/os-leaderboard-casino/integration/load-assets.js.map +1 -0
  119. package/dist/components/os-leaderboard-casino/integration/resolve-input.js +99 -0
  120. package/dist/components/os-leaderboard-casino/integration/resolve-input.js.map +1 -0
  121. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js +46 -0
  122. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js.map +1 -0
  123. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js +74 -0
  124. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js.map +1 -0
  125. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js +5 -0
  126. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js.map +1 -0
  127. package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js +116 -0
  128. package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js.map +1 -0
  129. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js +89 -0
  130. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js.map +1 -0
  131. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js +5 -0
  132. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js.map +1 -0
  133. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js +18 -0
  134. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js.map +1 -0
  135. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js +38 -0
  136. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js.map +1 -0
  137. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js +5 -0
  138. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js.map +1 -0
  139. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js +15 -0
  140. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js.map +1 -0
  141. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js +86 -0
  142. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js.map +1 -0
  143. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js +5 -0
  144. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js.map +1 -0
  145. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js +34 -0
  146. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js.map +1 -0
  147. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js +159 -0
  148. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js.map +1 -0
  149. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js +5 -0
  150. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js.map +1 -0
  151. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js +33 -0
  152. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js.map +1 -0
  153. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js +73 -0
  154. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js.map +1 -0
  155. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js +5 -0
  156. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js.map +1 -0
  157. package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js +8 -0
  158. package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js.map +1 -0
  159. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js +57 -0
  160. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js.map +1 -0
  161. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js +17 -0
  162. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js.map +1 -0
  163. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js +287 -0
  164. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js.map +1 -0
  165. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js +5 -0
  166. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js.map +1 -0
  167. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js +16 -0
  168. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js.map +1 -0
  169. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js +18 -0
  170. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js.map +1 -0
  171. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js +134 -0
  172. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js.map +1 -0
  173. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js +5 -0
  174. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js.map +1 -0
  175. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js +34 -0
  176. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js.map +1 -0
  177. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js +67 -0
  178. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js.map +1 -0
  179. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js +5 -0
  180. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js.map +1 -0
  181. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js +38 -0
  182. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js.map +1 -0
  183. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js +182 -0
  184. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js.map +1 -0
  185. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js +5 -0
  186. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js.map +1 -0
  187. package/dist/components/os-leaderboard-casino/services/adapter.service.js +49 -0
  188. package/dist/components/os-leaderboard-casino/services/adapter.service.js.map +1 -0
  189. package/dist/components/os-leaderboard-casino/services/icon.service.js +192 -0
  190. package/dist/components/os-leaderboard-casino/services/icon.service.js.map +1 -0
  191. package/dist/components/os-leaderboard-casino/theme/prize-resolve.js +11 -0
  192. package/dist/components/os-leaderboard-casino/theme/prize-resolve.js.map +1 -0
  193. package/dist/components/os-leaderboard-casino/theme/styles.js +179 -0
  194. package/dist/components/os-leaderboard-casino/theme/styles.js.map +1 -0
  195. package/dist/components/os-leaderboard-casino/theme/vip-icons.js +6 -0
  196. package/dist/components/os-leaderboard-casino/theme/vip-icons.js.map +1 -0
  197. package/dist/components/os-leaderboard-casino/theme/vip-mark.js +20 -0
  198. package/dist/components/os-leaderboard-casino/theme/vip-mark.js.map +1 -0
  199. package/dist/components/os-leaderboard-casino/types/data.js +7 -0
  200. package/dist/components/os-leaderboard-casino/types/data.js.map +1 -0
  201. package/dist/components/os-leaderboard-casino/types/events.js +8 -0
  202. package/dist/components/os-leaderboard-casino/types/events.js.map +1 -0
  203. package/dist/components/os-leaderboard-casino/types/state.js +12 -0
  204. package/dist/components/os-leaderboard-casino/types/state.js.map +1 -0
  205. package/dist/index.d.ts +734 -0
  206. package/dist/shared/lib/lit/component.js +8 -0
  207. package/dist/shared/lib/lit/component.js.map +1 -0
  208. package/dist/shared/lib/lit/safe-custom-element.js +7 -0
  209. package/dist/shared/lib/lit/safe-custom-element.js.map +1 -0
  210. package/dist/shared/lib/lit/scss.js +8 -0
  211. package/dist/shared/lib/lit/scss.js.map +1 -0
  212. package/dist/shared/vendor/keen-slider-keen-slider.es.js +538 -0
  213. package/dist/shared/vendor/keen-slider-keen-slider.es.js.map +1 -0
  214. package/package.json +36 -39
  215. package/.eleventy.cjs +0 -14
  216. package/custom-elements.json +0 -1539
  217. package/docs/_README/index.html +0 -4
  218. package/docs/api/index.html +0 -2100
  219. package/docs/components.bundle.js +0 -1669
  220. package/docs/components.bundle.js.map +0 -1
  221. package/docs/docs.css +0 -162
  222. package/docs/examples/index.html +0 -56
  223. package/docs/index.html +0 -53
  224. package/docs/install/index.html +0 -45
  225. package/docs/prism-okaidia.css +0 -123
  226. package/docs-src/.nojekyll +0 -0
  227. package/docs-src/_README.md +0 -7
  228. package/docs-src/_data/api.11tydata.js +0 -8
  229. package/docs-src/_includes/example.11ty.js +0 -35
  230. package/docs-src/_includes/footer.11ty.js +0 -6
  231. package/docs-src/_includes/header.11ty.js +0 -7
  232. package/docs-src/_includes/nav.11ty.js +0 -11
  233. package/docs-src/_includes/page.11ty.js +0 -32
  234. package/docs-src/_includes/relative-path.cjs +0 -9
  235. package/docs-src/api.11ty.js +0 -85
  236. package/docs-src/bundle.ts +0 -9
  237. package/docs-src/docs.css +0 -162
  238. package/docs-src/examples/index.md +0 -15
  239. package/docs-src/index.md +0 -39
  240. package/docs-src/install.md +0 -28
  241. package/docs-src/package.json +0 -3
  242. package/index.html +0 -19
  243. package/karma.conf.cjs +0 -24
  244. package/main.css +0 -210
  245. package/main.ts +0 -124
  246. package/previews/casino.ts +0 -12
  247. package/previews/catalog.ts +0 -94
  248. package/previews/leaderboard-v1.ts +0 -12
  249. package/previews/leaderboard-v2.ts +0 -17
  250. package/previews/sample-data.ts +0 -101
  251. package/previews/sf-leaderboard.ts +0 -100
  252. package/previews/sf-live-feed.ts +0 -15
  253. package/previews/streaks.ts +0 -40
  254. package/previews/types.ts +0 -18
  255. package/src/components/README.md +0 -16
  256. package/src/components/casino-leaderboard/casino-leaderboard.html +0 -80
  257. package/src/components/casino-leaderboard/casino-leaderboard.scss +0 -585
  258. package/src/components/casino-leaderboard/casino-leaderboard.ts +0 -136
  259. package/src/components/casino-leaderboard/data.ts +0 -111
  260. package/src/components/casino-leaderboard/index.ts +0 -5
  261. package/src/components/casino-leaderboard/todo.txt +0 -2
  262. package/src/components/casino-leaderboard/types.ts +0 -19
  263. package/src/components/leaderboard/components/leaderboard.ts +0 -373
  264. package/src/components/leaderboard/components/player-card.ts +0 -342
  265. package/src/components/leaderboard/components/ui.ts +0 -452
  266. package/src/components/leaderboard/data.ts +0 -152
  267. package/src/components/leaderboard/index.ts +0 -2
  268. package/src/components/leaderboard/main.ts +0 -42
  269. package/src/components/leaderboard/styles.ts +0 -67
  270. package/src/components/leaderboard/types.ts +0 -28
  271. package/src/components/leaderboard-v2/components/sf-leaderboard-player.ts +0 -451
  272. package/src/components/leaderboard-v2/components/sf-leaderboard-ui.ts +0 -512
  273. package/src/components/leaderboard-v2/components/sf-leaderboard.ts +0 -205
  274. package/src/components/leaderboard-v2/constants.ts +0 -16
  275. package/src/components/leaderboard-v2/demo/sample-data.ts +0 -152
  276. package/src/components/leaderboard-v2/events.ts +0 -13
  277. package/src/components/leaderboard-v2/icons.ts +0 -22
  278. package/src/components/leaderboard-v2/index.ts +0 -23
  279. package/src/components/leaderboard-v2/sf-leaderboard.html +0 -1
  280. package/src/components/leaderboard-v2/sf-leaderboard.scss +0 -382
  281. package/src/components/leaderboard-v2/tokens.ts +0 -35
  282. package/src/components/leaderboard-v2/types.ts +0 -30
  283. package/src/components/sf-leaderboard/index.ts +0 -77
  284. package/src/components/sf-leaderboard/sections/footer-section/footer-section.host.ts +0 -3
  285. package/src/components/sf-leaderboard/sections/footer-section/footer-section.html +0 -3
  286. package/src/components/sf-leaderboard/sections/footer-section/footer-section.scss +0 -18
  287. package/src/components/sf-leaderboard/sections/footer-section/footer-section.ts +0 -22
  288. package/src/components/sf-leaderboard/sections/header-section/header-section.host.ts +0 -14
  289. package/src/components/sf-leaderboard/sections/header-section/header-section.html +0 -27
  290. package/src/components/sf-leaderboard/sections/header-section/header-section.scss +0 -189
  291. package/src/components/sf-leaderboard/sections/header-section/header-section.ts +0 -70
  292. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.host.ts +0 -22
  293. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.html +0 -38
  294. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.scss +0 -99
  295. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.ts +0 -121
  296. package/src/components/sf-leaderboard/sections/stats-section/stats-section.host.ts +0 -8
  297. package/src/components/sf-leaderboard/sections/stats-section/stats-section.html +0 -6
  298. package/src/components/sf-leaderboard/sections/stats-section/stats-section.scss +0 -44
  299. package/src/components/sf-leaderboard/sections/stats-section/stats-section.ts +0 -41
  300. package/src/components/sf-leaderboard/sections/table-section/table-section.host.ts +0 -17
  301. package/src/components/sf-leaderboard/sections/table-section/table-section.html +0 -19
  302. package/src/components/sf-leaderboard/sections/table-section/table-section.scss +0 -37
  303. package/src/components/sf-leaderboard/sections/table-section/table-section.ts +0 -108
  304. package/src/components/sf-leaderboard/services/index.ts +0 -22
  305. package/src/components/sf-leaderboard/services/sf-leaderboard-data.service.ts +0 -54
  306. package/src/components/sf-leaderboard/services/sf-leaderboard.state.ts +0 -160
  307. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.host.ts +0 -7
  308. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.html +0 -10
  309. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.scss +0 -180
  310. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.ts +0 -88
  311. package/src/components/sf-leaderboard/shared/components/filters/filters.host.ts +0 -12
  312. package/src/components/sf-leaderboard/shared/components/filters/filters.html +0 -22
  313. package/src/components/sf-leaderboard/shared/components/filters/filters.scss +0 -122
  314. package/src/components/sf-leaderboard/shared/components/filters/filters.ts +0 -75
  315. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.host.ts +0 -9
  316. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.html +0 -5
  317. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.scss +0 -81
  318. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.ts +0 -34
  319. package/src/components/sf-leaderboard/shared/components/podium/map-players.ts +0 -24
  320. package/src/components/sf-leaderboard/shared/components/podium/podium.host.ts +0 -10
  321. package/src/components/sf-leaderboard/shared/components/podium/podium.html +0 -53
  322. package/src/components/sf-leaderboard/shared/components/podium/podium.scss +0 -580
  323. package/src/components/sf-leaderboard/shared/components/podium/podium.ts +0 -49
  324. package/src/components/sf-leaderboard/shared/components/podium/podium.types.ts +0 -9
  325. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.host.ts +0 -11
  326. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.html +0 -9
  327. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.scss +0 -98
  328. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.ts +0 -63
  329. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.host.ts +0 -9
  330. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.html +0 -15
  331. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.scss +0 -210
  332. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.ts +0 -36
  333. package/src/components/sf-leaderboard/shared/components/table/table.host.ts +0 -5
  334. package/src/components/sf-leaderboard/shared/components/table/table.html +0 -11
  335. package/src/components/sf-leaderboard/shared/components/table/table.scss +0 -212
  336. package/src/components/sf-leaderboard/shared/components/table/table.ts +0 -111
  337. package/src/components/sf-leaderboard/shared/constants/defaults.ts +0 -7
  338. package/src/components/sf-leaderboard/shared/constants/filters.ts +0 -16
  339. package/src/components/sf-leaderboard/shared/constants/index.ts +0 -5
  340. package/src/components/sf-leaderboard/shared/constants/player-stats.ts +0 -3
  341. package/src/components/sf-leaderboard/shared/constants/stats-overview.ts +0 -38
  342. package/src/components/sf-leaderboard/shared/constants/tags.ts +0 -16
  343. package/src/components/sf-leaderboard/shared/styles/_section.scss +0 -35
  344. package/src/components/sf-leaderboard/shared/types/data.ts +0 -29
  345. package/src/components/sf-leaderboard/shared/types/events.ts +0 -30
  346. package/src/components/sf-leaderboard/shared/types/player-stats.ts +0 -3
  347. package/src/components/sf-leaderboard/shared/types/sections.ts +0 -100
  348. package/src/components/sf-leaderboard/shared/utils/utils.ts +0 -17
  349. package/src/components/sf-leaderboard/theme/THEMING.md +0 -54
  350. package/src/components/sf-leaderboard/theme/context.ts +0 -16
  351. package/src/components/sf-leaderboard/theme/default-theme.ts +0 -4
  352. package/src/components/sf-leaderboard/theme/hex-to-rgb.ts +0 -25
  353. package/src/components/sf-leaderboard/theme/index.ts +0 -18
  354. package/src/components/sf-leaderboard/theme/inject-theme.ts +0 -39
  355. package/src/components/sf-leaderboard/theme/load-theme.ts +0 -26
  356. package/src/components/sf-leaderboard/theme/merge-theme.ts +0 -59
  357. package/src/components/sf-leaderboard/theme/scss/_colors.scss +0 -101
  358. package/src/components/sf-leaderboard/theme/scss/shared.scss +0 -123
  359. package/src/components/sf-leaderboard/theme/styles.ts +0 -6
  360. package/src/components/sf-leaderboard/theme/theme-to-css-vars.ts +0 -99
  361. package/src/components/sf-leaderboard/theme/themes/fallback.json +0 -62
  362. package/src/components/sf-leaderboard/theme/themes/red.json +0 -62
  363. package/src/components/sf-leaderboard/theme/types.ts +0 -71
  364. package/src/components/sf-live-feed/components/avatar/avatar.host.ts +0 -5
  365. package/src/components/sf-live-feed/components/avatar/avatar.html +0 -3
  366. package/src/components/sf-live-feed/components/avatar/avatar.scss +0 -24
  367. package/src/components/sf-live-feed/components/avatar/avatar.ts +0 -27
  368. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.host.ts +0 -8
  369. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.html +0 -10
  370. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.scss +0 -177
  371. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.ts +0 -65
  372. package/src/components/sf-live-feed/constants.ts +0 -4
  373. package/src/components/sf-live-feed/demo/sample-data.ts +0 -34
  374. package/src/components/sf-live-feed/index.ts +0 -19
  375. package/src/components/sf-live-feed/styles/theme.scss +0 -19
  376. package/src/components/sf-live-feed/styles/theme.ts +0 -5
  377. package/src/components/sf-live-feed/types.ts +0 -19
  378. package/src/components/sf-live-feed/utils.ts +0 -17
  379. package/src/components/streaks/constants.ts +0 -17
  380. package/src/components/streaks/demo/sample-steps.ts +0 -10
  381. package/src/components/streaks/events.ts +0 -8
  382. package/src/components/streaks/index.ts +0 -16
  383. package/src/components/streaks/sf-streaks.html +0 -26
  384. package/src/components/streaks/sf-streaks.scss +0 -351
  385. package/src/components/streaks/sf-streaks.ts +0 -235
  386. package/src/components/streaks/types.ts +0 -7
  387. package/src/lib/lit/component.ts +0 -10
  388. package/src/lib/lit/safe-custom-element.ts +0 -12
  389. package/src/lib/lit/scss.ts +0 -6
  390. package/src/vite-env.d.ts +0 -18
  391. package/styles/global.css +0 -125
  392. package/todo.txt +0 -54
  393. package/tsconfig.json +0 -31
  394. package/vite.config.ts +0 -56
  395. package/vite.docs.config.ts +0 -33
  396. package/vite.lit-html-plugin.ts +0 -43
@@ -1,77 +0,0 @@
1
- /**
2
- * Sf Leaderboard — public API.
3
- * Import: `import '@skinforge/sf-leaderboard'`
4
- */
5
- export type {
6
- Player,
7
- Activity,
8
- TimeFrame,
9
- Category,
10
- } from './shared/types/data.js';
11
- export type {
12
- SfLeaderboardLayout,
13
- SfLeaderboardHeaderSection,
14
- SfLeaderboardStatsSection,
15
- SfLeaderboardStatItem,
16
- SfLeaderboardRankingSection,
17
- SfLeaderboardPodiumSection,
18
- SfLeaderboardPlayerStatsSection,
19
- SfLeaderboardTableSection,
20
- SfLeaderboardTableFiltersSection,
21
- } from './shared/types/sections.js';
22
- /** @deprecated Use `SfLeaderboardStatItem` */
23
- export type { SfLeaderboardOverviewStat } from './shared/constants/stats-overview.js';
24
- export type {
25
- SfLeaderboardState,
26
- SfLeaderboardConfig,
27
- SfLeaderboardLabels,
28
- SfLeaderboardSectionData,
29
- SfLeaderboardSectionId,
30
- SfLeaderboardSectionEntry,
31
- SfLeaderboardSectionPayloadMap,
32
- SfLeaderboardSectionPatch,
33
- /** @deprecated Use `SfLeaderboardState` */
34
- SfLeaderboardData,
35
- } from './services/index.js';
36
- export {
37
- EMPTY_SF_LEADERBOARD_STATE,
38
- applySectionPatch,
39
- getSectionData,
40
- hasSection,
41
- patchSectionData,
42
- sectionEntry,
43
- updateSections,
44
- } from './services/index.js';
45
- export * from './shared/constants/index.js';
46
- export * from './shared/types/events.js';
47
- export { sfLeaderboardDataService } from './services/index.js';
48
- export { Component, type ComponentOptions } from '../../lib/lit/component.js';
49
- export { SfLeaderboard } from './sf-leaderboard.js';
50
- export { SfLeaderboardHeaderBlock } from './sections/header-section/header-section.js';
51
- export { SfLeaderboardStatsBlock } from './sections/stats-section/stats-section.js';
52
- export { SfLeaderboardRankingBlock } from './sections/ranking-section/ranking-section.js';
53
- export { SfLeaderboardTableBlock } from './sections/table-section/table-section.js';
54
- export { SfLeaderboardFooterBlock } from './sections/footer-section/footer-section.js';
55
- export { SfLeaderboardPlayerStatsCard } from './shared/components/player-stats-card/player-stats-card.js';
56
- export { SfLeaderboardStatCard } from './shared/components/stat-card/stat-card.js';
57
- export { SfLeaderboardPodium } from './shared/components/podium/podium.js';
58
-
59
- export type {
60
- SfLeaderboardTheme,
61
- SfLeaderboardPlacementTheme,
62
- SfLeaderboardTableColumnTheme,
63
- TableColumnId,
64
- } from './theme/index.js';
65
- export {
66
- sfLeaderboardTheme,
67
- loadThemeFromJson,
68
- parseThemeJson,
69
- injectTheme,
70
- clearTheme,
71
- getThemeLabel,
72
- mergeSfLeaderboardTheme,
73
- themeToCssVars,
74
- DEFAULT_SF_LEADERBOARD_THEME,
75
- } from './theme/index.js';
76
-
77
- import './sf-leaderboard.js';
@@ -1,3 +0,0 @@
1
- export interface FooterSectionHost {
2
- text: string;
3
- }
@@ -1,3 +0,0 @@
1
- <footer class="page-footer">
2
- <p>${host.text}</p>
3
- </footer>
@@ -1,18 +0,0 @@
1
- :host {
2
- display: block;
3
- width: 100%;
4
- }
5
-
6
- .page-footer {
7
- border-top: 1px solid var(--border);
8
- margin-top: clamp(1.5rem, 4vw, 3rem);
9
- padding-top: 1rem;
10
- width: 100%;
11
-
12
- p {
13
- margin: 0;
14
- text-align: center;
15
- font-size: 0.875rem;
16
- color: var(--muted-foreground);
17
- }
18
- }
@@ -1,22 +0,0 @@
1
- import { LitElement, nothing } from 'lit';
2
- import { property } from 'lit/decorators.js';
3
- import { Component } from '../../../../../lib/lit/component.js';
4
- import { scss } from '../../../../../lib/lit/scss.js';
5
- import { SF_LEADERBOARD_FOOTER_SECTION } from '../../shared/constants/tags.js';
6
- import { sfLeaderboardTheme } from '../../theme/styles.js';
7
- import type { FooterSectionHost } from './footer-section.host.js';
8
- import renderTemplate from './footer-section.html?lit-html';
9
- import styles from './footer-section.scss?inline';
10
-
11
- @Component({ selector: SF_LEADERBOARD_FOOTER_SECTION })
12
- export class SfLeaderboardFooterBlock extends LitElement implements FooterSectionHost {
13
- static styles = [sfLeaderboardTheme, scss(styles)];
14
-
15
- @property({ type: String })
16
- text = '';
17
-
18
- render() {
19
- if (!this.text) return nothing;
20
- return renderTemplate(this);
21
- }
22
- }
@@ -1,14 +0,0 @@
1
- import type { SfLeaderboardRefreshDetail } from '../../shared/types/events.js';
2
- import type { SfLeaderboardHeaderSection } from '../../shared/types/sections.js';
3
-
4
- export interface HeaderSectionHost {
5
- section: SfLeaderboardHeaderSection;
6
- refreshContext?: SfLeaderboardRefreshDetail;
7
- showIcon: boolean;
8
- showSubtitle: boolean;
9
- showLive: boolean;
10
- showBack: boolean;
11
- backLabel: string;
12
- isRefreshing: boolean;
13
- onBackClick(): void;
14
- }
@@ -1,27 +0,0 @@
1
- <header class="header">
2
- <div class="header-content">
3
- <div class="logo-section">
4
- <div class="logo-icon" ?hidden="${!host.showIcon}">${host.section.icon}</div>
5
- <div class="logo-text">
6
- <h1>${host.section.title}</h1>
7
- <p ?hidden="${!host.showSubtitle}">${host.section.subtitle}</p>
8
- </div>
9
- </div>
10
-
11
- <div class="header-actions">
12
- <div class="live-badge" ?hidden="${!host.showLive}">
13
- <span class="live-dot"></span>
14
- Live
15
- </div>
16
- <button
17
- type="button"
18
- class="back-btn ${host.isRefreshing ? 'refreshing' : ''}"
19
- ?hidden="${!host.showBack}"
20
- @click="${host.onBackClick}"
21
- >
22
- <span class="icon" aria-hidden="true">←</span>
23
- ${host.backLabel}
24
- </button>
25
- </div>
26
- </div>
27
- </header>
@@ -1,189 +0,0 @@
1
- :host {
2
- display: block;
3
- width: 100%;
4
- }
5
-
6
- .header {
7
- position: sticky;
8
- top: 0;
9
- z-index: 50;
10
- backdrop-filter: blur(16px);
11
- background: color-mix(in srgb, var(--background) 82%, transparent);
12
- padding: 12px 0;
13
- border-bottom: 1px solid var(--border);
14
- }
15
-
16
- .header-content {
17
- width: 100%;
18
- display: flex;
19
- align-items: center;
20
- justify-content: space-between;
21
- }
22
-
23
- .logo-section {
24
- display: flex;
25
- align-items: center;
26
- gap: 0.75rem;
27
- }
28
-
29
- .logo-icon {
30
- width: 40px;
31
- height: 40px;
32
- border-radius: var(--radius);
33
- background: var(--accent-soft);
34
- border: 1px solid var(--surface-border-color);
35
- display: flex;
36
- align-items: center;
37
- justify-content: center;
38
- font-size: 1.25rem;
39
- box-shadow: var(--surface-shadow-hover);
40
- }
41
-
42
- .logo-text h1 {
43
- font-size: 1.25rem;
44
- font-weight: 700;
45
- margin: 0;
46
- text-shadow: var(--accent-text-glow);
47
- }
48
-
49
- .logo-text p {
50
- font-size: 0.75rem;
51
- color: var(--muted-foreground);
52
- margin: 0;
53
- }
54
-
55
- .header-actions {
56
- display: flex;
57
- align-items: center;
58
- gap: 0.75rem;
59
- }
60
-
61
- .live-badge {
62
- display: flex;
63
- align-items: center;
64
- gap: 0.5rem;
65
- padding: 0.375rem 0.75rem;
66
- border-radius: 9999px;
67
- border: 1px solid rgba(var(--success-rgb), 0.35);
68
- background: rgba(var(--success-rgb), 0.08);
69
- font-size: 0.75rem;
70
- font-weight: 500;
71
- color: var(--success);
72
- }
73
-
74
- .live-dot {
75
- position: relative;
76
- width: 8px;
77
- height: 8px;
78
- background: var(--success);
79
- border-radius: 50%;
80
- }
81
-
82
- .live-dot::before {
83
- content: '';
84
- position: absolute;
85
- inset: 0;
86
- border-radius: 50%;
87
- background: var(--success);
88
- animation: ping 1.5s ease-out infinite;
89
- }
90
-
91
- @keyframes ping {
92
- 0% {
93
- transform: scale(1);
94
- opacity: 1;
95
- }
96
- 100% {
97
- transform: scale(2.5);
98
- opacity: 0;
99
- }
100
- }
101
-
102
- .back-btn {
103
- display: flex;
104
- align-items: center;
105
- gap: 0.5rem;
106
- padding: 0.5rem 1rem;
107
- border-radius: var(--radius-sm);
108
- border: 1px solid var(--surface-border-color);
109
- background: var(--surface-gradient);
110
- color: var(--foreground);
111
- font-size: 0.875rem;
112
- font-family: inherit;
113
- cursor: pointer;
114
- box-shadow: var(--surface-shadow);
115
- transition: border-color var(--transition-fast),
116
- box-shadow var(--transition-fast);
117
- }
118
-
119
- .back-btn:hover {
120
- border-color: var(--surface-border-hover);
121
- box-shadow: var(--surface-shadow-hover);
122
- }
123
-
124
- .back-btn .icon {
125
- transition: transform 0.3s ease;
126
- }
127
-
128
- .back-btn.refreshing .icon {
129
- animation: spin 1s linear infinite;
130
- }
131
-
132
- @keyframes spin {
133
- from {
134
- transform: rotate(0deg);
135
- }
136
- to {
137
- transform: rotate(360deg);
138
- }
139
- }
140
-
141
- @media (max-width: 639px) {
142
- .header-content {
143
- flex-wrap: wrap;
144
- gap: 0.75rem;
145
- }
146
-
147
- .logo-section {
148
- flex: 1 1 100%;
149
- justify-content: center;
150
- align-items: center;
151
- gap: 0.5rem;
152
- }
153
-
154
- .logo-icon {
155
- width: clamp(32px, 9vw, 40px);
156
- height: clamp(32px, 9vw, 40px);
157
- font-size: clamp(1rem, 4vw, 1.25rem);
158
- }
159
-
160
- .logo-text {
161
- text-align: center;
162
- }
163
-
164
- .logo-text h1 {
165
- text-align: center;
166
- font-size: clamp(1rem, 4.5vw, 1.25rem);
167
- }
168
-
169
- .logo-text p {
170
- display: none;
171
- }
172
-
173
- .header-actions {
174
- width: 100%;
175
- justify-content: space-between;
176
- }
177
-
178
- .back-btn {
179
- padding: 0.5rem 0.75rem;
180
- font-size: 0.8125rem;
181
- }
182
- }
183
-
184
- @media (max-width: 380px) {
185
- .live-badge {
186
- font-size: 0.6875rem;
187
- padding: 0.3rem 0.6rem;
188
- }
189
- }
@@ -1,70 +0,0 @@
1
- import { LitElement, nothing } from 'lit';
2
- import { property } from 'lit/decorators.js';
3
- import { Component } from '../../../../../lib/lit/component.js';
4
- import { scss } from '../../../../../lib/lit/scss.js';
5
- import {
6
- DEFAULT_CATEGORY,
7
- DEFAULT_TIMEFRAME,
8
- SF_LEADERBOARD_HEADER_SECTION,
9
- } from '../../shared/constants/index.js';
10
- import { sfLeaderboardTheme } from '../../theme/styles.js';
11
- import { SF_LEADERBOARD_REFRESH } from '../../shared/types/events.js';
12
- import type { SfLeaderboardRefreshDetail } from '../../shared/types/events.js';
13
- import type { SfLeaderboardHeaderSection as HeaderSectionData } from '../../shared/types/sections.js';
14
- import type { HeaderSectionHost } from './header-section.host.js';
15
- import renderTemplate from './header-section.html?lit-html';
16
- import styles from './header-section.scss?inline';
17
-
18
- @Component({ selector: SF_LEADERBOARD_HEADER_SECTION })
19
- export class SfLeaderboardHeaderBlock extends LitElement implements HeaderSectionHost {
20
- static styles = [sfLeaderboardTheme, scss(styles)];
21
-
22
- @property({ attribute: false })
23
- section!: HeaderSectionData;
24
-
25
- @property({ attribute: false })
26
- refreshContext?: SfLeaderboardRefreshDetail;
27
-
28
- get showIcon(): boolean {
29
- return Boolean(this.section?.icon);
30
- }
31
-
32
- get showSubtitle(): boolean {
33
- return Boolean(this.section?.subtitle);
34
- }
35
-
36
- get showLive(): boolean {
37
- return Boolean(this.section?.showLive);
38
- }
39
-
40
- get showBack(): boolean {
41
- return this.section?.backButton != null;
42
- }
43
-
44
- get backLabel(): string {
45
- return this.section?.backButton?.label ?? 'Back';
46
- }
47
-
48
- get isRefreshing(): boolean {
49
- return this.section?.isRefreshing ?? false;
50
- }
51
-
52
- onBackClick() {
53
- const ctx = this.refreshContext;
54
- this.dispatchEvent(
55
- new CustomEvent(SF_LEADERBOARD_REFRESH, {
56
- detail: {
57
- timeframe: ctx?.timeframe ?? DEFAULT_TIMEFRAME,
58
- category: ctx?.category ?? DEFAULT_CATEGORY,
59
- },
60
- bubbles: true,
61
- composed: true,
62
- }),
63
- );
64
- }
65
-
66
- render() {
67
- if (!this.section) return nothing;
68
- return renderTemplate(this);
69
- }
70
- }
@@ -1,22 +0,0 @@
1
- import type { Player } from '../../shared/types/data.js';
2
- import type { SfLeaderboardRankingSection } from '../../shared/types/sections.js';
3
-
4
- export interface RankingSectionHost {
5
- ranking: SfLeaderboardRankingSection;
6
- hasPair: boolean;
7
- hasPodium: boolean;
8
- hasPlayerStats: boolean;
9
- podiumTitle: string;
10
- podiumBadge: string;
11
- showPodiumBadge: boolean;
12
- podiumPlayers: Player[];
13
- playerStatsTitle: string;
14
- playerStatsRank: number;
15
- playerStatsPercentile: number;
16
- playerStatsUsername: string;
17
- playerStatsEarnings: string;
18
- playerStatsWinRate: number;
19
- playerStatsGamesPlayed: number;
20
- playerStatsWinStreak: number;
21
- playerStatsLevel: number;
22
- }
@@ -1,38 +0,0 @@
1
- <section class="section ranking-section">
2
- <div class="ranking-grid ${host.hasPair ? 'has-pair' : 'single'}">
3
- <div
4
- class="ranking-column ranking-column--podium"
5
- ?hidden="${!host.hasPodium}"
6
- >
7
- <div class="section-header">
8
- <h2 class="section-title">${host.podiumTitle}</h2>
9
- <span class="elite-badge" ?hidden="${!host.showPodiumBadge}"
10
- >${host.podiumBadge}</span
11
- >
12
- </div>
13
- <div class="podium-slot">
14
- <sf-leaderboard-podium
15
- .players="${host.podiumPlayers}"
16
- ></sf-leaderboard-podium>
17
- </div>
18
- </div>
19
- <div
20
- class="ranking-column ranking-column--player-stats"
21
- ?hidden="${!host.hasPlayerStats}"
22
- >
23
- <div class="section-header">
24
- <h2 class="section-title">${host.playerStatsTitle}</h2>
25
- </div>
26
- <sf-leaderboard-player-stats-card
27
- rank="${host.playerStatsRank}"
28
- percentile="${host.playerStatsPercentile}"
29
- username="${host.playerStatsUsername}"
30
- earnings="${host.playerStatsEarnings}"
31
- winRate="${host.playerStatsWinRate}"
32
- gamesPlayed="${host.playerStatsGamesPlayed}"
33
- winStreak="${host.playerStatsWinStreak}"
34
- level="${host.playerStatsLevel}"
35
- ></sf-leaderboard-player-stats-card>
36
- </div>
37
- </div>
38
- </section>
@@ -1,99 +0,0 @@
1
- @use '../../shared/styles/section';
2
-
3
- :host {
4
- display: block;
5
- width: 100%;
6
- }
7
-
8
- .ranking-section {
9
- --ranking-podium-min-h: clamp(300px, min(36vh, 36dvh), 420px);
10
- --ranking-player-stats-min-h: clamp(300px, min(36vh, 36dvh), 420px);
11
- }
12
-
13
- .ranking-grid {
14
- display: grid;
15
- grid-template-columns: 1fr;
16
- gap: clamp(0.75rem, 2vw, 1rem);
17
- width: 100%;
18
- align-items: stretch;
19
- }
20
-
21
- .ranking-grid.has-pair {
22
- @media (min-width: 1080px) {
23
- grid-template-columns: minmax(0, 1.38fr) minmax(0, 0.82fr);
24
- min-height: var(--ranking-podium-min-h);
25
- }
26
- }
27
-
28
- .ranking-column {
29
- display: flex;
30
- flex-direction: column;
31
- min-width: 0;
32
- min-height: 0;
33
- }
34
-
35
- .ranking-column--player-stats {
36
- min-height: var(--ranking-player-stats-min-h);
37
-
38
- sf-leaderboard-player-stats-card {
39
- flex: 1 1 auto;
40
- width: 100%;
41
- min-height: 0;
42
- }
43
- }
44
-
45
- .podium-slot {
46
- display: flex;
47
- flex: 1 1 auto;
48
- min-width: 0;
49
- min-height: var(--ranking-podium-min-h);
50
- overflow: hidden;
51
- }
52
-
53
- .podium-slot > sf-leaderboard-podium {
54
- flex: 1 1 auto;
55
- width: 100%;
56
- height: 100%;
57
- min-height: 100%;
58
- }
59
-
60
- @media (max-width: 1079px) {
61
- .ranking-section {
62
- --ranking-podium-min-h: clamp(280px, min(38vh, 38dvh), 400px);
63
- --ranking-player-stats-min-h: clamp(280px, min(34vh, 34dvh), 360px);
64
- }
65
- }
66
-
67
- @media (min-width: 677px) and (max-width: 1079px) {
68
- .ranking-section {
69
- --ranking-player-stats-min-h: clamp(360px, min(42vh, 42dvh), 440px);
70
- }
71
- }
72
-
73
- @media (max-width: 676px) {
74
- .ranking-column--player-stats {
75
- min-height: 0;
76
- height: auto;
77
- }
78
- }
79
-
80
- @media (min-width: 1280px) {
81
- .ranking-section {
82
- --ranking-podium-min-h: clamp(340px, min(38vh, 38dvh), 460px);
83
- --ranking-player-stats-min-h: clamp(340px, min(38vh, 38dvh), 460px);
84
- }
85
- }
86
-
87
- @media (max-width: 639px) {
88
- .ranking-section {
89
- --ranking-podium-min-h: clamp(280px, min(44dvh, 46vh), 360px);
90
- --ranking-player-stats-min-h: clamp(240px, min(34dvh, 36vh), 288px);
91
- }
92
- }
93
-
94
- @media (max-width: 380px) {
95
- .ranking-section {
96
- --ranking-podium-min-h: clamp(268px, 48dvh, 340px);
97
- --ranking-player-stats-min-h: clamp(248px, 44dvh, 300px);
98
- }
99
- }