@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,98 +0,0 @@
1
- @use '../../../theme/scss/colors' as color;
2
-
3
- :host {
4
- display: inline-flex;
5
- align-items: center;
6
- gap: 0.5rem;
7
- }
8
-
9
- .badge {
10
- display: flex;
11
- flex-direction: column;
12
- align-items: center;
13
- justify-content: center;
14
- border-radius: var(--inset-radius);
15
- border: 2px solid;
16
- font-family: var(--font-mono);
17
- font-weight: 700;
18
- transition: all 0.3s ease;
19
-
20
- &.sm {
21
- width: 32px;
22
- height: 32px;
23
- font-size: 0.75rem;
24
- }
25
-
26
- &.md {
27
- width: 48px;
28
- height: 48px;
29
- font-size: 1rem;
30
- }
31
-
32
- &.lg {
33
- width: 64px;
34
- height: 64px;
35
- font-size: 1.25rem;
36
- }
37
-
38
- &.rank-1 {
39
- background: color-mix(in srgb, #{color.place-first-icon()} 22%, transparent);
40
- border-color: #{color.place-first-icon()};
41
- color: #{color.place-first-icon()};
42
- box-shadow: 0 0 20px color-mix(in srgb, #{color.place-first-icon()} 35%, transparent);
43
- }
44
-
45
- &.rank-2 {
46
- background: color-mix(in srgb, #{color.place-second-icon()} 18%, transparent);
47
- border-color: #{color.place-second-icon()};
48
- color: #{color.place-second-icon()};
49
- box-shadow: 0 0 20px color-mix(in srgb, #{color.place-second-icon()} 30%, transparent);
50
- }
51
-
52
- &.rank-3 {
53
- background: color-mix(in srgb, #{color.place-third-icon()} 18%, transparent);
54
- border-color: #{color.place-third-icon()};
55
- color: #{color.place-third-icon()};
56
- box-shadow: 0 0 20px color-mix(in srgb, #{color.place-third-icon()} 30%, transparent);
57
- }
58
-
59
- &.rank-other {
60
- background: #{color.base(2)};
61
- border-color: #{color.base(2)};
62
- color: #{color.surface(muted)};
63
- }
64
- }
65
-
66
- .icon {
67
- font-size: 1em;
68
- line-height: 1;
69
- }
70
-
71
- .rank-number {
72
- font-size: 0.65em;
73
- margin-top: 2px;
74
- }
75
-
76
- .trend {
77
- display: flex;
78
- align-items: center;
79
- gap: 2px;
80
- font-size: 0.75rem;
81
- font-weight: 500;
82
-
83
- &.up {
84
- color: #{color.semantic(success)};
85
- }
86
-
87
- &.down {
88
- color: #{color.semantic(error)};
89
- }
90
-
91
- &.same {
92
- color: #{color.surface(muted)};
93
- }
94
- }
95
-
96
- .trend-icon {
97
- font-size: 0.75rem;
98
- }
@@ -1,63 +0,0 @@
1
- import { LitElement } 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_RANK_BADGE } from '../../constants/tags.js';
6
- import { sfLeaderboardTheme } from '../../../theme/styles.js';
7
- import type { RankBadgeHost } from './rank-badge.host.js';
8
- import renderTemplate from './rank-badge.html?lit-html';
9
- import styles from './rank-badge.scss?inline';
10
-
11
- @Component({ selector: SF_LEADERBOARD_RANK_BADGE })
12
- export class SfLeaderboardRankBadge extends LitElement
13
- implements RankBadgeHost {
14
- static styles = [sfLeaderboardTheme, scss(styles)];
15
-
16
- @property({ type: Number }) rank = 1;
17
- @property({ type: Number }) previousRank?: number;
18
- @property({ type: String }) size: 'sm' | 'md' | 'lg' = 'md';
19
- @property({ type: Boolean }) showTrend = true;
20
-
21
- get rankClass(): string {
22
- return this.rank <= 3 ? `rank-${this.rank}` : 'rank-other';
23
- }
24
-
25
- get isTop3(): boolean {
26
- return this.rank <= 3;
27
- }
28
-
29
- get rankIcon(): string {
30
- if (this.rank === 1) return '👑';
31
- if (this.rank === 2) return '🥈';
32
- if (this.rank === 3) return '🥉';
33
- return '';
34
- }
35
-
36
- get hasTrend(): boolean {
37
- return this.getTrend() != null;
38
- }
39
-
40
- get trendClass(): string {
41
- return this.getTrend()?.class ?? '';
42
- }
43
-
44
- get trendIcon(): string {
45
- return this.getTrend()?.icon ?? '';
46
- }
47
-
48
- get trendDiff(): string {
49
- return this.getTrend()?.diff ?? '';
50
- }
51
-
52
- private getTrend() {
53
- if (!this.previousRank || !this.showTrend) return null;
54
- const diff = this.previousRank - this.rank;
55
- if (diff > 0) return { icon: '↑', class: 'up', diff: `+${diff}` };
56
- if (diff < 0) return { icon: '↓', class: 'down', diff: `${diff}` };
57
- return { icon: '–', class: 'same', diff: '0' };
58
- }
59
-
60
- render() {
61
- return renderTemplate(this);
62
- }
63
- }
@@ -1,9 +0,0 @@
1
- export interface StatCardHost {
2
- label: string;
3
- value: string;
4
- icon: string;
5
- hasTrend: boolean;
6
- trendClass: string;
7
- trendPrefix: string;
8
- trendValue?: number;
9
- }
@@ -1,15 +0,0 @@
1
- <div class="card">
2
- <div class="glow"></div>
3
- <div class="content">
4
- <div class="header">
5
- <span class="label">${host.label}</span>
6
- <div class="icon-wrapper">${host.icon}</div>
7
- </div>
8
- <div class="body">
9
- <p class="value">${host.value}</p>
10
- <p class="trend ${host.trendClass}" ?hidden="${!host.hasTrend}">
11
- ${host.trendPrefix}${host.trendValue}% from last week
12
- </p>
13
- </div>
14
- </div>
15
- </div>
@@ -1,210 +0,0 @@
1
- :host {
2
- display: block;
3
- min-width: 0;
4
- max-width: 100%;
5
- }
6
-
7
- .card {
8
- padding: clamp(0.75rem, 2.5vw, 1rem);
9
- min-width: 0;
10
- max-width: 100%;
11
- }
12
-
13
- .glow {
14
- position: absolute;
15
- top: 0;
16
- right: 0;
17
- width: 96px;
18
- height: 96px;
19
- background: radial-gradient(circle, var(--accent-soft) 0%, transparent 70%);
20
- transform: translate(50%, -50%);
21
- pointer-events: none;
22
- }
23
-
24
- .content {
25
- position: relative;
26
- }
27
-
28
- .header {
29
- display: flex;
30
- align-items: center;
31
- justify-content: space-between;
32
- }
33
-
34
- .label {
35
- font-size: 0.875rem;
36
- color: var(--muted-foreground);
37
- }
38
-
39
- .icon-wrapper {
40
- width: 32px;
41
- height: 32px;
42
- border-radius: var(--inset-radius);
43
- background: var(--accent-soft);
44
- display: flex;
45
- align-items: center;
46
- justify-content: center;
47
- font-size: 1rem;
48
- }
49
-
50
- .body {
51
- margin-top: 0.5rem;
52
- }
53
-
54
- .value {
55
- font-size: 1.5rem;
56
- font-weight: 700;
57
- font-family: var(--font-mono);
58
- }
59
-
60
- .trend {
61
- font-size: 0.75rem;
62
- font-weight: 500;
63
- margin-top: 0.25rem;
64
-
65
- &.positive {
66
- color: var(--success);
67
- }
68
-
69
- &.negative {
70
- color: var(--destructive);
71
- }
72
- }
73
-
74
- /* Narrow viewports: smaller tiles, fluid shrink (grid stays 2×2 on parent) */
75
- @media (max-width: 639px) {
76
- :host {
77
- display: flex;
78
- height: 100%;
79
- min-height: 0;
80
- }
81
-
82
- .card {
83
- display: flex;
84
- flex: 1;
85
- width: 100%;
86
- min-height: 100%;
87
- align-items: center;
88
- justify-content: center;
89
- padding: clamp(0.45rem, 2.8vw, 0.65rem);
90
- }
91
-
92
- .glow {
93
- width: clamp(40px, 22vw, 64px);
94
- height: clamp(40px, 22vw, 64px);
95
- }
96
-
97
- .content {
98
- display: flex;
99
- flex-direction: column;
100
- align-items: center;
101
- justify-content: center;
102
- width: 100%;
103
- gap: clamp(0.2rem, 1.2vw, 0.35rem);
104
- }
105
-
106
- .header {
107
- flex-direction: column;
108
- align-items: center;
109
- justify-content: center;
110
- gap: 0.25rem;
111
- text-align: center;
112
- }
113
-
114
- .label {
115
- font-size: clamp(0.6rem, 2.6vw, 0.7rem);
116
- line-height: 1.2;
117
- }
118
-
119
- .icon-wrapper {
120
- width: clamp(22px, 7.5vw, 28px);
121
- height: clamp(22px, 7.5vw, 28px);
122
- font-size: clamp(0.7rem, 3.2vw, 0.85rem);
123
- flex-shrink: 0;
124
- }
125
-
126
- .body {
127
- margin-top: 0;
128
- display: flex;
129
- flex-direction: column;
130
- align-items: center;
131
- justify-content: center;
132
- text-align: center;
133
- width: 100%;
134
- gap: 0.1rem;
135
- }
136
-
137
- .value {
138
- margin: 0;
139
- font-size: clamp(0.9rem, 5.5vw, 1.15rem);
140
- line-height: 1.15;
141
- word-break: break-word;
142
- }
143
-
144
- .trend {
145
- font-size: clamp(0.58rem, 2.4vw, 0.65rem);
146
- margin-top: 0;
147
- margin-bottom: 0;
148
- }
149
- }
150
-
151
- /* ≤576px: readable tiles — do not shrink further than 577–639 layout */
152
- @media (max-width: 576px) {
153
- .card {
154
- padding: clamp(0.65rem, 3.2vw, 0.85rem);
155
- min-height: clamp(5.5rem, 26vw, 6.75rem);
156
- }
157
-
158
- .glow {
159
- width: clamp(48px, 20vw, 72px);
160
- height: clamp(48px, 20vw, 72px);
161
- }
162
-
163
- .content {
164
- gap: clamp(0.35rem, 2vw, 0.5rem);
165
- }
166
-
167
- .header {
168
- gap: clamp(0.3rem, 1.6vw, 0.4rem);
169
- }
170
-
171
- .icon-wrapper {
172
- order: -1;
173
- width: clamp(30px, 8.5vw, 36px);
174
- height: clamp(30px, 8.5vw, 36px);
175
- font-size: clamp(0.95rem, 4vw, 1.1rem);
176
- }
177
-
178
- .label {
179
- order: 0;
180
- font-size: clamp(0.65rem, 2.8vw, 0.75rem);
181
- line-height: 1.25;
182
- letter-spacing: 0.02em;
183
- max-width: 100%;
184
- }
185
-
186
- .body {
187
- gap: clamp(0.15rem, 1.2vw, 0.25rem);
188
- }
189
-
190
- .value {
191
- font-size: clamp(1rem, 5.2vw, 1.2rem);
192
- line-height: 1.2;
193
- }
194
-
195
- .trend {
196
- font-size: clamp(0.625rem, 2.6vw, 0.7rem);
197
- line-height: 1.3;
198
- }
199
- }
200
-
201
- @media (max-width: 380px) {
202
- .card {
203
- padding: clamp(0.55rem, 2.8vw, 0.7rem);
204
- min-height: 5rem;
205
- }
206
-
207
- .value {
208
- font-size: clamp(0.9rem, 4.8vw, 1.05rem);
209
- }
210
- }
@@ -1,36 +0,0 @@
1
- import { LitElement } 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_STAT_CARD } from '../../constants/tags.js';
6
- import { sfLeaderboardTheme } from '../../../theme/styles.js';
7
- import type { StatCardHost } from './stat-card.host.js';
8
- import renderTemplate from './stat-card.html?lit-html';
9
- import styles from './stat-card.scss?inline';
10
-
11
- @Component({ selector: SF_LEADERBOARD_STAT_CARD })
12
- export class SfLeaderboardStatCard extends LitElement implements StatCardHost {
13
- static styles = [sfLeaderboardTheme, scss(styles)];
14
-
15
- @property({ type: String }) label = '';
16
- @property({ type: String }) value = '';
17
- @property({ type: String }) icon = '';
18
- @property({ type: Number }) trendValue?: number;
19
- @property({ type: Boolean }) trendPositive = true;
20
-
21
- get hasTrend(): boolean {
22
- return this.trendValue !== undefined;
23
- }
24
-
25
- get trendClass(): string {
26
- return this.trendPositive ? 'positive' : 'negative';
27
- }
28
-
29
- get trendPrefix(): string {
30
- return this.trendPositive ? '+' : '';
31
- }
32
-
33
- render() {
34
- return renderTemplate(this);
35
- }
36
- }
@@ -1,5 +0,0 @@
1
- import type { TemplateResult } from 'lit';
2
-
3
- export interface TableHost {
4
- renderRows(): TemplateResult;
5
- }
@@ -1,11 +0,0 @@
1
- <div class="table-container">
2
- <div class="table-header">
3
- <div class="col-rank">Rank</div>
4
- <div class="col-player">Player</div>
5
- <div class="col-games text-center hide-mobile">Games</div>
6
- <div class="col-win-rate text-center hide-mobile">Win Rate</div>
7
- <div class="col-streak text-center hide-mobile">Streak</div>
8
- <div class="col-winnings text-right">Winnings</div>
9
- </div>
10
- <div class="table-body">${host.renderRows()}</div>
11
- </div>
@@ -1,212 +0,0 @@
1
- @use '../../../theme/scss/colors' as color;
2
-
3
- :host {
4
- display: block;
5
- width: 100%;
6
- }
7
-
8
- @mixin col-theme($name) {
9
- .col-#{$name} {
10
- color: var(--table-col-#{$name}-color, inherit);
11
- font-size: var(--table-col-#{$name}-font-size, inherit);
12
- }
13
- }
14
-
15
- @include col-theme('rank');
16
- @include col-theme('player');
17
- @include col-theme('games');
18
- @include col-theme('win-rate');
19
- @include col-theme('streak');
20
- @include col-theme('winnings');
21
-
22
- .table-container {
23
- width: 100%;
24
- max-width: 100%;
25
- border-radius: var(--surface-radius);
26
- border: 1px solid var(--surface-border-color);
27
- background: var(--surface-gradient);
28
- box-shadow: var(--surface-shadow);
29
- overflow-x: auto;
30
- overflow-y: hidden;
31
- -webkit-overflow-scrolling: touch;
32
- }
33
-
34
- .table-header {
35
- display: grid;
36
- grid-template-columns: 80px 1fr 100px 100px 100px 120px;
37
- gap: 1rem;
38
- padding: 0.75rem 1rem;
39
- background: var(--muted);
40
- border-bottom: 1px solid var(--border);
41
- font-size: 0.7rem;
42
- font-weight: 600;
43
- text-transform: uppercase;
44
- letter-spacing: 0.05em;
45
- color: var(--muted-foreground);
46
-
47
- @media (max-width: 768px) {
48
- grid-template-columns: 52px minmax(120px, 1fr) minmax(72px, 88px);
49
- gap: 0.5rem;
50
- padding: 0.625rem 0.75rem;
51
- font-size: 0.625rem;
52
-
53
- .hide-mobile {
54
- display: none;
55
- }
56
- }
57
-
58
- @media (max-width: 380px) {
59
- grid-template-columns: 44px minmax(100px, 1fr) 72px;
60
- padding: 0.5rem;
61
- }
62
- }
63
-
64
- .table-body {
65
- display: flex;
66
- flex-direction: column;
67
- }
68
-
69
- .table-row {
70
- display: grid;
71
- grid-template-columns: 80px 1fr 100px 100px 100px 120px;
72
- gap: 1rem;
73
- padding: 0.75rem 1rem;
74
- align-items: center;
75
- border-bottom: 1px solid var(--border-subtle);
76
- cursor: pointer;
77
- transition: background 0.2s ease;
78
- animation: fade-in 0.3s ease-out forwards;
79
- opacity: 0;
80
-
81
- @media (max-width: 768px) {
82
- grid-template-columns: 52px minmax(120px, 1fr) minmax(72px, 88px);
83
- gap: 0.5rem;
84
- padding: 0.625rem 0.75rem;
85
-
86
- .hide-mobile {
87
- display: none;
88
- }
89
- }
90
-
91
- @media (max-width: 380px) {
92
- grid-template-columns: 44px minmax(100px, 1fr) 72px;
93
- padding: 0.5rem;
94
- }
95
-
96
- &:hover {
97
- background: var(--inset-hover-bg);
98
-
99
- .chevron {
100
- opacity: 1;
101
- }
102
- }
103
-
104
- &:last-child {
105
- border-bottom: none;
106
- }
107
-
108
- &.top-3 {
109
- background: var(--accent-soft);
110
- }
111
- }
112
-
113
- @keyframes fade-in {
114
- from {
115
- opacity: 0;
116
- transform: translateY(5px);
117
- }
118
- to {
119
- opacity: 1;
120
- transform: translateY(0);
121
- }
122
- }
123
-
124
- .player-cell {
125
- display: flex;
126
- align-items: center;
127
- gap: 0.75rem;
128
- min-width: 0;
129
- }
130
-
131
- .player-details {
132
- min-width: 0;
133
- }
134
-
135
- .player-name {
136
- font-weight: 600;
137
- white-space: nowrap;
138
- overflow: hidden;
139
- text-overflow: ellipsis;
140
-
141
- &.highlight {
142
- color: var(--primary);
143
- }
144
- }
145
-
146
- .player-level {
147
- display: inline-block;
148
- font-size: 0.6rem;
149
- padding: 2px 6px;
150
- border-radius: 4px;
151
- border: 1px solid var(--border);
152
- color: var(--muted-foreground);
153
- margin-top: 2px;
154
- }
155
-
156
- .stat-cell {
157
- display: flex;
158
- align-items: center;
159
- justify-content: center;
160
- gap: 0.25rem;
161
- font-size: 0.875rem;
162
- color: var(--muted-foreground);
163
-
164
- .icon {
165
- font-size: 0.875rem;
166
- opacity: 0.5;
167
- }
168
-
169
- &.win-rate {
170
- .icon {
171
- color: var(--success);
172
- }
173
-
174
- &.high {
175
- color: var(--success);
176
- }
177
- }
178
-
179
- &.streak {
180
- color: var(--gold);
181
- }
182
- }
183
-
184
- .winnings-cell {
185
- display: flex;
186
- align-items: center;
187
- justify-content: flex-end;
188
- gap: 0.5rem;
189
- }
190
-
191
- .winnings {
192
- font-family: var(--font-mono);
193
- font-weight: 700;
194
-
195
- &.highlight {
196
- color: var(--primary);
197
- }
198
- }
199
-
200
- .chevron {
201
- color: var(--muted-foreground);
202
- opacity: 0;
203
- transition: opacity 0.2s ease;
204
- }
205
-
206
- .text-right {
207
- text-align: right;
208
- }
209
-
210
- .text-center {
211
- text-align: center;
212
- }