@oddsmith/ui 0.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) 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.d.ts +8 -0
  102. package/dist/components/os-leaderboard-casino/constants/defaults.js +9 -0
  103. package/dist/components/os-leaderboard-casino/constants/defaults.js.map +1 -0
  104. package/dist/components/os-leaderboard-casino/constants/index.d.ts +2 -0
  105. package/dist/components/os-leaderboard-casino/constants/tags.d.ts +22 -0
  106. package/dist/components/os-leaderboard-casino/constants/tags.js +17 -0
  107. package/dist/components/os-leaderboard-casino/constants/tags.js.map +1 -0
  108. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.d.ts +35 -0
  109. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.host.d.ts +13 -0
  110. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js +20 -0
  111. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js.map +1 -0
  112. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js +152 -0
  113. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js.map +1 -0
  114. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js +5 -0
  115. package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js.map +1 -0
  116. package/dist/components/os-leaderboard-casino/index.d.ts +36 -0
  117. package/dist/components/os-leaderboard-casino/index.js +39 -0
  118. package/dist/components/os-leaderboard-casino/index.js.map +1 -0
  119. package/dist/components/os-leaderboard-casino/integration/assemble-assets.d.ts +21 -0
  120. package/dist/components/os-leaderboard-casino/integration/assemble-assets.js +48 -0
  121. package/dist/components/os-leaderboard-casino/integration/assemble-assets.js.map +1 -0
  122. package/dist/components/os-leaderboard-casino/integration/assets-context.d.ts +26 -0
  123. package/dist/components/os-leaderboard-casino/integration/assets-context.js +64 -0
  124. package/dist/components/os-leaderboard-casino/integration/assets-context.js.map +1 -0
  125. package/dist/components/os-leaderboard-casino/integration/defaults-glam.d.ts +14 -0
  126. package/dist/components/os-leaderboard-casino/integration/defaults-new-money.d.ts +3 -0
  127. package/dist/components/os-leaderboard-casino/integration/index.d.ts +5 -0
  128. package/dist/components/os-leaderboard-casino/integration/labels.d.ts +1 -0
  129. package/dist/components/os-leaderboard-casino/integration/load-assets.d.ts +9 -0
  130. package/dist/components/os-leaderboard-casino/integration/load-assets.js +22 -0
  131. package/dist/components/os-leaderboard-casino/integration/load-assets.js.map +1 -0
  132. package/dist/components/os-leaderboard-casino/integration/presets.d.ts +1 -0
  133. package/dist/components/os-leaderboard-casino/integration/resolve-input.d.ts +20 -0
  134. package/dist/components/os-leaderboard-casino/integration/resolve-input.js +99 -0
  135. package/dist/components/os-leaderboard-casino/integration/resolve-input.js.map +1 -0
  136. package/dist/components/os-leaderboard-casino/integration/themes.d.ts +1 -0
  137. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.d.ts +19 -0
  138. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.host.d.ts +15 -0
  139. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js +46 -0
  140. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js.map +1 -0
  141. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js +74 -0
  142. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js.map +1 -0
  143. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js +5 -0
  144. package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js.map +1 -0
  145. package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.d.ts +5 -0
  146. package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js +116 -0
  147. package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js.map +1 -0
  148. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.d.ts +16 -0
  149. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.host.d.ts +8 -0
  150. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js +90 -0
  151. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js.map +1 -0
  152. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js +5 -0
  153. package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js.map +1 -0
  154. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.d.ts +10 -0
  155. package/{src/components/sf-leaderboard/sections/footer-section/footer-section.host.ts → dist/components/os-leaderboard-casino/sections/footer-section/footer-section.host.d.ts} +1 -1
  156. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js +18 -0
  157. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js.map +1 -0
  158. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js +39 -0
  159. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js.map +1 -0
  160. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js +5 -0
  161. package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js.map +1 -0
  162. package/dist/components/os-leaderboard-casino/sections/games-section/components/game-images.d.ts +1 -0
  163. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.d.ts +20 -0
  164. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.host.d.ts +7 -0
  165. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js +15 -0
  166. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js.map +1 -0
  167. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js +86 -0
  168. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js.map +1 -0
  169. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js +5 -0
  170. package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js.map +1 -0
  171. package/dist/components/os-leaderboard-casino/sections/header-section/header-section.d.ts +12 -0
  172. package/dist/components/os-leaderboard-casino/sections/header-section/header-section.host.d.ts +8 -0
  173. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.d.ts +37 -0
  174. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.host.d.ts +20 -0
  175. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js +34 -0
  176. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js.map +1 -0
  177. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js +160 -0
  178. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js.map +1 -0
  179. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js +5 -0
  180. package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js.map +1 -0
  181. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.d.ts +18 -0
  182. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.host.d.ts +8 -0
  183. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js +33 -0
  184. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js.map +1 -0
  185. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js +74 -0
  186. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js.map +1 -0
  187. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js +5 -0
  188. package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js.map +1 -0
  189. package/dist/components/os-leaderboard-casino/sections/live-feed-section/live-feed-section.d.ts +13 -0
  190. package/dist/components/os-leaderboard-casino/sections/live-feed-section/live-feed-section.host.d.ts +8 -0
  191. package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.d.ts +3 -0
  192. package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js +8 -0
  193. package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js.map +1 -0
  194. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.d.ts +14 -0
  195. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js +57 -0
  196. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js.map +1 -0
  197. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.d.ts +42 -0
  198. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.host.d.ts +8 -0
  199. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js +17 -0
  200. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js.map +1 -0
  201. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js +287 -0
  202. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js.map +1 -0
  203. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js +5 -0
  204. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js.map +1 -0
  205. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.d.ts +6 -0
  206. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js +16 -0
  207. package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js.map +1 -0
  208. package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.d.ts +16 -0
  209. package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.js +71 -0
  210. package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.js.map +1 -0
  211. package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.scss.js +5 -0
  212. package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.scss.js.map +1 -0
  213. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.d.ts +23 -0
  214. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.host.d.ts +11 -0
  215. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js +18 -0
  216. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js.map +1 -0
  217. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js +135 -0
  218. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js.map +1 -0
  219. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js +5 -0
  220. package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js.map +1 -0
  221. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-band/stat-band.d.ts +17 -0
  222. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-card/stat-card.d.ts +15 -0
  223. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-chip/stat-chip.d.ts +17 -0
  224. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-gauge/stat-gauge.d.ts +14 -0
  225. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.d.ts +5 -0
  226. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js +11 -0
  227. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js.map +1 -0
  228. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-meter/stat-meter.d.ts +17 -0
  229. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.d.ts +17 -0
  230. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.js +61 -0
  231. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.js.map +1 -0
  232. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.scss.js +5 -0
  233. package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.scss.js.map +1 -0
  234. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.d.ts +16 -0
  235. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.host.d.ts +13 -0
  236. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js +34 -0
  237. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js.map +1 -0
  238. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js +69 -0
  239. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js.map +1 -0
  240. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js +5 -0
  241. package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js.map +1 -0
  242. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.d.ts +31 -0
  243. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.host.d.ts +15 -0
  244. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js +38 -0
  245. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js.map +1 -0
  246. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js +183 -0
  247. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js.map +1 -0
  248. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js +5 -0
  249. package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js.map +1 -0
  250. package/dist/components/os-leaderboard-casino/services/adapter.service.d.ts +11 -0
  251. package/dist/components/os-leaderboard-casino/services/adapter.service.js +49 -0
  252. package/dist/components/os-leaderboard-casino/services/adapter.service.js.map +1 -0
  253. package/dist/components/os-leaderboard-casino/services/icon.service.d.ts +28 -0
  254. package/dist/components/os-leaderboard-casino/services/icon.service.js +192 -0
  255. package/dist/components/os-leaderboard-casino/services/icon.service.js.map +1 -0
  256. package/dist/components/os-leaderboard-casino/services/index.d.ts +2 -0
  257. package/dist/components/os-leaderboard-casino/theme/index.d.ts +3 -0
  258. package/dist/components/os-leaderboard-casino/theme/prize-icons.d.ts +1 -0
  259. package/dist/components/os-leaderboard-casino/theme/prize-resolve.d.ts +5 -0
  260. package/dist/components/os-leaderboard-casino/theme/prize-resolve.js +11 -0
  261. package/dist/components/os-leaderboard-casino/theme/prize-resolve.js.map +1 -0
  262. package/dist/components/os-leaderboard-casino/theme/styles.d.ts +9 -0
  263. package/dist/components/os-leaderboard-casino/theme/styles.js +179 -0
  264. package/dist/components/os-leaderboard-casino/theme/styles.js.map +1 -0
  265. package/dist/components/os-leaderboard-casino/theme/vip-icons.d.ts +2 -0
  266. package/dist/components/os-leaderboard-casino/theme/vip-icons.js +6 -0
  267. package/dist/components/os-leaderboard-casino/theme/vip-icons.js.map +1 -0
  268. package/dist/components/os-leaderboard-casino/theme/vip-mark.d.ts +7 -0
  269. package/dist/components/os-leaderboard-casino/theme/vip-mark.js +20 -0
  270. package/dist/components/os-leaderboard-casino/theme/vip-mark.js.map +1 -0
  271. package/dist/components/os-leaderboard-casino/types/assets.d.ts +40 -0
  272. package/dist/components/os-leaderboard-casino/types/data.d.ts +106 -0
  273. package/dist/components/os-leaderboard-casino/types/data.js +7 -0
  274. package/dist/components/os-leaderboard-casino/types/data.js.map +1 -0
  275. package/dist/components/os-leaderboard-casino/types/events.d.ts +18 -0
  276. package/dist/components/os-leaderboard-casino/types/events.js +8 -0
  277. package/dist/components/os-leaderboard-casino/types/events.js.map +1 -0
  278. package/dist/components/os-leaderboard-casino/types/icons.d.ts +18 -0
  279. package/dist/components/os-leaderboard-casino/types/input.d.ts +73 -0
  280. package/dist/components/os-leaderboard-casino/types/ledger.d.ts +67 -0
  281. package/dist/components/os-leaderboard-casino/types/sections.d.ts +200 -0
  282. package/dist/components/os-leaderboard-casino/types/state.d.ts +69 -0
  283. package/dist/components/os-leaderboard-casino/types/state.js +12 -0
  284. package/dist/components/os-leaderboard-casino/types/state.js.map +1 -0
  285. package/dist/shared/lib/lit/component.d.ts +5 -0
  286. package/dist/shared/lib/lit/component.js +8 -0
  287. package/dist/shared/lib/lit/component.js.map +1 -0
  288. package/dist/shared/lib/lit/safe-custom-element.d.ts +5 -0
  289. package/dist/shared/lib/lit/safe-custom-element.js +7 -0
  290. package/dist/shared/lib/lit/safe-custom-element.js.map +1 -0
  291. package/dist/shared/lib/lit/scss.d.ts +3 -0
  292. package/dist/shared/lib/lit/scss.js +8 -0
  293. package/dist/shared/lib/lit/scss.js.map +1 -0
  294. package/dist/shared/lib/lit/template.d.ts +3 -0
  295. package/dist/shared/vendor/keen-slider-keen-slider.es.js +538 -0
  296. package/dist/shared/vendor/keen-slider-keen-slider.es.js.map +1 -0
  297. package/package.json +37 -39
  298. package/.eleventy.cjs +0 -14
  299. package/custom-elements.json +0 -1539
  300. package/docs/_README/index.html +0 -4
  301. package/docs/api/index.html +0 -2100
  302. package/docs/components.bundle.js +0 -1669
  303. package/docs/components.bundle.js.map +0 -1
  304. package/docs/docs.css +0 -162
  305. package/docs/examples/index.html +0 -56
  306. package/docs/index.html +0 -53
  307. package/docs/install/index.html +0 -45
  308. package/docs/prism-okaidia.css +0 -123
  309. package/docs-src/.nojekyll +0 -0
  310. package/docs-src/_README.md +0 -7
  311. package/docs-src/_data/api.11tydata.js +0 -8
  312. package/docs-src/_includes/example.11ty.js +0 -35
  313. package/docs-src/_includes/footer.11ty.js +0 -6
  314. package/docs-src/_includes/header.11ty.js +0 -7
  315. package/docs-src/_includes/nav.11ty.js +0 -11
  316. package/docs-src/_includes/page.11ty.js +0 -32
  317. package/docs-src/_includes/relative-path.cjs +0 -9
  318. package/docs-src/api.11ty.js +0 -85
  319. package/docs-src/bundle.ts +0 -9
  320. package/docs-src/docs.css +0 -162
  321. package/docs-src/examples/index.md +0 -15
  322. package/docs-src/index.md +0 -39
  323. package/docs-src/install.md +0 -28
  324. package/docs-src/package.json +0 -3
  325. package/index.html +0 -19
  326. package/karma.conf.cjs +0 -24
  327. package/main.css +0 -210
  328. package/main.ts +0 -124
  329. package/previews/casino.ts +0 -12
  330. package/previews/catalog.ts +0 -94
  331. package/previews/leaderboard-v1.ts +0 -12
  332. package/previews/leaderboard-v2.ts +0 -17
  333. package/previews/sample-data.ts +0 -101
  334. package/previews/sf-leaderboard.ts +0 -100
  335. package/previews/sf-live-feed.ts +0 -15
  336. package/previews/streaks.ts +0 -40
  337. package/previews/types.ts +0 -18
  338. package/src/components/README.md +0 -16
  339. package/src/components/casino-leaderboard/casino-leaderboard.html +0 -80
  340. package/src/components/casino-leaderboard/casino-leaderboard.scss +0 -585
  341. package/src/components/casino-leaderboard/casino-leaderboard.ts +0 -136
  342. package/src/components/casino-leaderboard/data.ts +0 -111
  343. package/src/components/casino-leaderboard/index.ts +0 -5
  344. package/src/components/casino-leaderboard/todo.txt +0 -2
  345. package/src/components/casino-leaderboard/types.ts +0 -19
  346. package/src/components/leaderboard/components/leaderboard.ts +0 -373
  347. package/src/components/leaderboard/components/player-card.ts +0 -342
  348. package/src/components/leaderboard/components/ui.ts +0 -452
  349. package/src/components/leaderboard/data.ts +0 -152
  350. package/src/components/leaderboard/index.ts +0 -2
  351. package/src/components/leaderboard/main.ts +0 -42
  352. package/src/components/leaderboard/styles.ts +0 -67
  353. package/src/components/leaderboard/types.ts +0 -28
  354. package/src/components/leaderboard-v2/components/sf-leaderboard-player.ts +0 -451
  355. package/src/components/leaderboard-v2/components/sf-leaderboard-ui.ts +0 -512
  356. package/src/components/leaderboard-v2/components/sf-leaderboard.ts +0 -205
  357. package/src/components/leaderboard-v2/constants.ts +0 -16
  358. package/src/components/leaderboard-v2/demo/sample-data.ts +0 -152
  359. package/src/components/leaderboard-v2/events.ts +0 -13
  360. package/src/components/leaderboard-v2/icons.ts +0 -22
  361. package/src/components/leaderboard-v2/index.ts +0 -23
  362. package/src/components/leaderboard-v2/sf-leaderboard.html +0 -1
  363. package/src/components/leaderboard-v2/sf-leaderboard.scss +0 -382
  364. package/src/components/leaderboard-v2/tokens.ts +0 -35
  365. package/src/components/leaderboard-v2/types.ts +0 -30
  366. package/src/components/sf-leaderboard/index.ts +0 -77
  367. package/src/components/sf-leaderboard/sections/footer-section/footer-section.html +0 -3
  368. package/src/components/sf-leaderboard/sections/footer-section/footer-section.scss +0 -18
  369. package/src/components/sf-leaderboard/sections/footer-section/footer-section.ts +0 -22
  370. package/src/components/sf-leaderboard/sections/header-section/header-section.host.ts +0 -14
  371. package/src/components/sf-leaderboard/sections/header-section/header-section.html +0 -27
  372. package/src/components/sf-leaderboard/sections/header-section/header-section.scss +0 -189
  373. package/src/components/sf-leaderboard/sections/header-section/header-section.ts +0 -70
  374. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.host.ts +0 -22
  375. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.html +0 -38
  376. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.scss +0 -99
  377. package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.ts +0 -121
  378. package/src/components/sf-leaderboard/sections/stats-section/stats-section.host.ts +0 -8
  379. package/src/components/sf-leaderboard/sections/stats-section/stats-section.html +0 -6
  380. package/src/components/sf-leaderboard/sections/stats-section/stats-section.scss +0 -44
  381. package/src/components/sf-leaderboard/sections/stats-section/stats-section.ts +0 -41
  382. package/src/components/sf-leaderboard/sections/table-section/table-section.host.ts +0 -17
  383. package/src/components/sf-leaderboard/sections/table-section/table-section.html +0 -19
  384. package/src/components/sf-leaderboard/sections/table-section/table-section.scss +0 -37
  385. package/src/components/sf-leaderboard/sections/table-section/table-section.ts +0 -108
  386. package/src/components/sf-leaderboard/services/index.ts +0 -22
  387. package/src/components/sf-leaderboard/services/sf-leaderboard-data.service.ts +0 -54
  388. package/src/components/sf-leaderboard/services/sf-leaderboard.state.ts +0 -160
  389. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.host.ts +0 -7
  390. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.html +0 -10
  391. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.scss +0 -180
  392. package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.ts +0 -88
  393. package/src/components/sf-leaderboard/shared/components/filters/filters.host.ts +0 -12
  394. package/src/components/sf-leaderboard/shared/components/filters/filters.html +0 -22
  395. package/src/components/sf-leaderboard/shared/components/filters/filters.scss +0 -122
  396. package/src/components/sf-leaderboard/shared/components/filters/filters.ts +0 -75
  397. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.host.ts +0 -9
  398. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.html +0 -5
  399. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.scss +0 -81
  400. package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.ts +0 -34
  401. package/src/components/sf-leaderboard/shared/components/podium/map-players.ts +0 -24
  402. package/src/components/sf-leaderboard/shared/components/podium/podium.host.ts +0 -10
  403. package/src/components/sf-leaderboard/shared/components/podium/podium.html +0 -53
  404. package/src/components/sf-leaderboard/shared/components/podium/podium.scss +0 -580
  405. package/src/components/sf-leaderboard/shared/components/podium/podium.ts +0 -49
  406. package/src/components/sf-leaderboard/shared/components/podium/podium.types.ts +0 -9
  407. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.host.ts +0 -11
  408. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.html +0 -9
  409. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.scss +0 -98
  410. package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.ts +0 -63
  411. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.host.ts +0 -9
  412. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.html +0 -15
  413. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.scss +0 -210
  414. package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.ts +0 -36
  415. package/src/components/sf-leaderboard/shared/components/table/table.host.ts +0 -5
  416. package/src/components/sf-leaderboard/shared/components/table/table.html +0 -11
  417. package/src/components/sf-leaderboard/shared/components/table/table.scss +0 -212
  418. package/src/components/sf-leaderboard/shared/components/table/table.ts +0 -111
  419. package/src/components/sf-leaderboard/shared/constants/defaults.ts +0 -7
  420. package/src/components/sf-leaderboard/shared/constants/filters.ts +0 -16
  421. package/src/components/sf-leaderboard/shared/constants/index.ts +0 -5
  422. package/src/components/sf-leaderboard/shared/constants/player-stats.ts +0 -3
  423. package/src/components/sf-leaderboard/shared/constants/stats-overview.ts +0 -38
  424. package/src/components/sf-leaderboard/shared/constants/tags.ts +0 -16
  425. package/src/components/sf-leaderboard/shared/styles/_section.scss +0 -35
  426. package/src/components/sf-leaderboard/shared/types/data.ts +0 -29
  427. package/src/components/sf-leaderboard/shared/types/events.ts +0 -30
  428. package/src/components/sf-leaderboard/shared/types/player-stats.ts +0 -3
  429. package/src/components/sf-leaderboard/shared/types/sections.ts +0 -100
  430. package/src/components/sf-leaderboard/shared/utils/utils.ts +0 -17
  431. package/src/components/sf-leaderboard/theme/THEMING.md +0 -54
  432. package/src/components/sf-leaderboard/theme/context.ts +0 -16
  433. package/src/components/sf-leaderboard/theme/default-theme.ts +0 -4
  434. package/src/components/sf-leaderboard/theme/hex-to-rgb.ts +0 -25
  435. package/src/components/sf-leaderboard/theme/index.ts +0 -18
  436. package/src/components/sf-leaderboard/theme/inject-theme.ts +0 -39
  437. package/src/components/sf-leaderboard/theme/load-theme.ts +0 -26
  438. package/src/components/sf-leaderboard/theme/merge-theme.ts +0 -59
  439. package/src/components/sf-leaderboard/theme/scss/_colors.scss +0 -101
  440. package/src/components/sf-leaderboard/theme/scss/shared.scss +0 -123
  441. package/src/components/sf-leaderboard/theme/styles.ts +0 -6
  442. package/src/components/sf-leaderboard/theme/theme-to-css-vars.ts +0 -99
  443. package/src/components/sf-leaderboard/theme/themes/fallback.json +0 -62
  444. package/src/components/sf-leaderboard/theme/themes/red.json +0 -62
  445. package/src/components/sf-leaderboard/theme/types.ts +0 -71
  446. package/src/components/sf-live-feed/components/avatar/avatar.host.ts +0 -5
  447. package/src/components/sf-live-feed/components/avatar/avatar.html +0 -3
  448. package/src/components/sf-live-feed/components/avatar/avatar.scss +0 -24
  449. package/src/components/sf-live-feed/components/avatar/avatar.ts +0 -27
  450. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.host.ts +0 -8
  451. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.html +0 -10
  452. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.scss +0 -177
  453. package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.ts +0 -65
  454. package/src/components/sf-live-feed/constants.ts +0 -4
  455. package/src/components/sf-live-feed/demo/sample-data.ts +0 -34
  456. package/src/components/sf-live-feed/index.ts +0 -19
  457. package/src/components/sf-live-feed/styles/theme.scss +0 -19
  458. package/src/components/sf-live-feed/styles/theme.ts +0 -5
  459. package/src/components/sf-live-feed/types.ts +0 -19
  460. package/src/components/sf-live-feed/utils.ts +0 -17
  461. package/src/components/streaks/constants.ts +0 -17
  462. package/src/components/streaks/demo/sample-steps.ts +0 -10
  463. package/src/components/streaks/events.ts +0 -8
  464. package/src/components/streaks/index.ts +0 -16
  465. package/src/components/streaks/sf-streaks.html +0 -26
  466. package/src/components/streaks/sf-streaks.scss +0 -351
  467. package/src/components/streaks/sf-streaks.ts +0 -235
  468. package/src/components/streaks/types.ts +0 -7
  469. package/src/lib/lit/component.ts +0 -10
  470. package/src/lib/lit/safe-custom-element.ts +0 -12
  471. package/src/lib/lit/scss.ts +0 -6
  472. package/src/vite-env.d.ts +0 -18
  473. package/styles/global.css +0 -125
  474. package/todo.txt +0 -54
  475. package/tsconfig.json +0 -31
  476. package/vite.config.ts +0 -56
  477. package/vite.docs.config.ts +0 -33
  478. package/vite.lit-html-plugin.ts +0 -43
@@ -0,0 +1,49 @@
1
+ class i {
2
+ toLayout(a) {
3
+ return this.buildLayout(a.config, a.sections);
4
+ }
5
+ applyThemeVars(a, e) {
6
+ const r = e.config.themeVars ?? {};
7
+ for (const t of Object.keys(r))
8
+ a.style.removeProperty(t);
9
+ for (const [t, l] of Object.entries(r))
10
+ a.style.setProperty(t, l);
11
+ }
12
+ buildLayout(a, e) {
13
+ const r = {
14
+ mainOrder: this.mainOrder(a)
15
+ };
16
+ if (this.isEnabled(a, "marquee") && e.marquee && (r.marquee = e.marquee), this.isEnabled(a, "events") && e.events && (r.eventsBanner = e.events), this.isEnabled(a, "hero") && e.hero) {
17
+ const { endTs: t, ...l } = e.hero;
18
+ r.hero = {
19
+ ...l,
20
+ ...t != null ? { endTs: String(t) } : {}
21
+ };
22
+ }
23
+ return this.isEnabled(a, "prize") && e.prize && (r.prize = {
24
+ title: e.prize.title,
25
+ prizePackage: e.prize.prizePackage,
26
+ allocationStrategy: e.prize.allocationStrategy
27
+ }), this.isEnabled(a, "stats") && e.stats && (r.stats = e.stats), this.isEnabled(a, "games") && e.games && (r.games = {
28
+ title: e.games.title,
29
+ games: e.games.games ?? e.games.items ?? []
30
+ }), this.isEnabled(a, "climb") && e.climb && (r.climb = e.climb), this.isEnabled(a, "table") && e.table?.mode === "preview" && (r.table = {
31
+ topPlayers: e.table.topPlayers ?? [],
32
+ currentUser: e.table.currentUser,
33
+ ctaLabel: e.table.ctaLabel ?? a.labels?.cta,
34
+ prizes: e.prize?.prizePackage?.prizes
35
+ }), this.isEnabled(a, "footer") && e.footer && (r.footer = e.footer), this.isEnabled(a, "legals") && e.legals && (r.legals = e.legals), r;
36
+ }
37
+ isEnabled(a, e) {
38
+ return a.enabled.includes(e);
39
+ }
40
+ mainOrder(a) {
41
+ return (a.mainOrder ?? ["prize", "stats", "games", "climb", "table"]).filter((r) => this.isEnabled(a, r));
42
+ }
43
+ }
44
+ const m = new i();
45
+ export {
46
+ i as AdapterService,
47
+ m as adapterService
48
+ };
49
+ //# sourceMappingURL=adapter.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.service.js","sources":["../../../../src/components/os-leaderboard-casino/services/adapter.service.ts"],"sourcesContent":["import type { OsLeaderboardCasinoLayout } from '@os-leaderboard-casino/types/sections.js';\nimport type {\n OsLeaderboardCasinoConfig,\n OsLeaderboardCasinoMainSectionId,\n OsLeaderboardCasinoSectionData,\n OsLeaderboardCasinoSectionId,\n OsLeaderboardCasinoState,\n} from '../types/state.js';\n\n/** Maps facade state into the glam layout shell. */\nexport class AdapterService {\n toLayout(state: OsLeaderboardCasinoState): OsLeaderboardCasinoLayout {\n return this.buildLayout(state.config, state.sections);\n }\n\n applyThemeVars(\n host: HTMLElement,\n state: OsLeaderboardCasinoState,\n ): void {\n const vars = state.config.themeVars ?? {};\n for (const name of Object.keys(vars)) {\n host.style.removeProperty(name);\n }\n for (const [name, value] of Object.entries(vars)) {\n host.style.setProperty(name, value);\n }\n }\n\n private buildLayout(\n config: OsLeaderboardCasinoConfig,\n sections: OsLeaderboardCasinoSectionData,\n ): OsLeaderboardCasinoLayout {\n const layout: OsLeaderboardCasinoLayout = {\n mainOrder: this.mainOrder(config),\n };\n\n if (this.isEnabled(config, 'marquee') && sections.marquee) {\n layout.marquee = sections.marquee;\n }\n if (this.isEnabled(config, 'events') && sections.events) {\n layout.eventsBanner = sections.events;\n }\n if (this.isEnabled(config, 'hero') && sections.hero) {\n const { endTs, ...hero } = sections.hero;\n layout.hero = {\n ...hero,\n ...(endTs != null ? { endTs: String(endTs) } : {}),\n };\n }\n if (this.isEnabled(config, 'prize') && sections.prize) {\n layout.prize = {\n title: sections.prize.title,\n prizePackage: sections.prize.prizePackage,\n allocationStrategy: sections.prize.allocationStrategy,\n };\n }\n if (this.isEnabled(config, 'stats') && sections.stats) {\n layout.stats = sections.stats;\n }\n if (this.isEnabled(config, 'games') && sections.games) {\n layout.games = {\n title: sections.games.title,\n games: sections.games.games ?? sections.games.items ?? [],\n };\n }\n if (this.isEnabled(config, 'climb') && sections.climb) {\n layout.climb = sections.climb;\n }\n if (this.isEnabled(config, 'table') && sections.table?.mode === 'preview') {\n layout.table = {\n topPlayers: sections.table.topPlayers ?? [],\n currentUser: sections.table.currentUser,\n ctaLabel: sections.table.ctaLabel ?? config.labels?.cta,\n prizes: sections.prize?.prizePackage?.prizes,\n };\n }\n if (this.isEnabled(config, 'footer') && sections.footer) {\n layout.footer = sections.footer;\n }\n if (this.isEnabled(config, 'legals') && sections.legals) {\n layout.legals = sections.legals;\n }\n\n return layout;\n }\n\n private isEnabled(\n config: OsLeaderboardCasinoConfig,\n id: OsLeaderboardCasinoSectionId,\n ): boolean {\n return config.enabled.includes(id);\n }\n\n private mainOrder(\n config: OsLeaderboardCasinoConfig,\n ): OsLeaderboardCasinoMainSectionId[] {\n const order =\n config.mainOrder ?? ['prize', 'stats', 'games', 'climb', 'table'];\n return order.filter((id) => this.isEnabled(config, id));\n }\n}\n\nexport const adapterService = new AdapterService();\n"],"names":["AdapterService","state","host","vars","name","value","config","sections","layout","endTs","hero","id","adapterService"],"mappings":"AAUO,MAAMA,EAAe;AAAA,EAC1B,SAASC,GAA4D;AACnE,WAAO,KAAK,YAAYA,EAAM,QAAQA,EAAM,QAAQ;AAAA,EACtD;AAAA,EAEA,eACEC,GACAD,GACM;AACN,UAAME,IAAOF,EAAM,OAAO,aAAa,CAAA;AACvC,eAAWG,KAAQ,OAAO,KAAKD,CAAI;AACjC,MAAAD,EAAK,MAAM,eAAeE,CAAI;AAEhC,eAAW,CAACA,GAAMC,CAAK,KAAK,OAAO,QAAQF,CAAI;AAC7C,MAAAD,EAAK,MAAM,YAAYE,GAAMC,CAAK;AAAA,EAEtC;AAAA,EAEQ,YACNC,GACAC,GAC2B;AAC3B,UAAMC,IAAoC;AAAA,MACxC,WAAW,KAAK,UAAUF,CAAM;AAAA,IAAA;AASlC,QANI,KAAK,UAAUA,GAAQ,SAAS,KAAKC,EAAS,YAChDC,EAAO,UAAUD,EAAS,UAExB,KAAK,UAAUD,GAAQ,QAAQ,KAAKC,EAAS,WAC/CC,EAAO,eAAeD,EAAS,SAE7B,KAAK,UAAUD,GAAQ,MAAM,KAAKC,EAAS,MAAM;AACnD,YAAM,EAAE,OAAAE,GAAO,GAAGC,EAAA,IAASH,EAAS;AACpC,MAAAC,EAAO,OAAO;AAAA,QACZ,GAAGE;AAAA,QACH,GAAID,KAAS,OAAO,EAAE,OAAO,OAAOA,CAAK,MAAM,CAAA;AAAA,MAAC;AAAA,IAEpD;AACA,WAAI,KAAK,UAAUH,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQ;AAAA,MACb,OAAOD,EAAS,MAAM;AAAA,MACtB,cAAcA,EAAS,MAAM;AAAA,MAC7B,oBAAoBA,EAAS,MAAM;AAAA,IAAA,IAGnC,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQD,EAAS,QAEtB,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQ;AAAA,MACb,OAAOD,EAAS,MAAM;AAAA,MACtB,OAAOA,EAAS,MAAM,SAASA,EAAS,MAAM,SAAS,CAAA;AAAA,IAAC,IAGxD,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQD,EAAS,QAEtB,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,OAAO,SAAS,cAC9DC,EAAO,QAAQ;AAAA,MACb,YAAYD,EAAS,MAAM,cAAc,CAAA;AAAA,MACzC,aAAaA,EAAS,MAAM;AAAA,MAC5B,UAAUA,EAAS,MAAM,YAAYD,EAAO,QAAQ;AAAA,MACpD,QAAQC,EAAS,OAAO,cAAc;AAAA,IAAA,IAGtC,KAAK,UAAUD,GAAQ,QAAQ,KAAKC,EAAS,WAC/CC,EAAO,SAASD,EAAS,SAEvB,KAAK,UAAUD,GAAQ,QAAQ,KAAKC,EAAS,WAC/CC,EAAO,SAASD,EAAS,SAGpBC;AAAA,EACT;AAAA,EAEQ,UACNF,GACAK,GACS;AACT,WAAOL,EAAO,QAAQ,SAASK,CAAE;AAAA,EACnC;AAAA,EAEQ,UACNL,GACoC;AAGpC,YADEA,EAAO,aAAa,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO,GACrD,OAAO,CAACK,MAAO,KAAK,UAAUL,GAAQK,CAAE,CAAC;AAAA,EACxD;AACF;AAEO,MAAMC,IAAiB,IAAIZ,EAAA;"}
@@ -0,0 +1,28 @@
1
+ import { LabelKey } from '../types/data.js';
2
+ import { GameIconName, IconHandle, IconRenderOptions, PrizeIconName, StatIconName, WinIconName } from '../types/icons.js';
3
+ import { TemplateResult } from 'lit';
4
+ export type { GameIconName, IconHandle, IconName, IconRenderOptions, PrizeIconName, StatIconName, WinIconName, } from '../types/icons.js';
5
+ /** Registry-backed icon loader for os-leaderboard-casino. */
6
+ export declare class IconService {
7
+ private readonly registry;
8
+ private loadPromise;
9
+ private loaded;
10
+ /** Load all bundled SVG and game image icons. Call once on app start. */
11
+ load(): Promise<void>;
12
+ /** Pick a loaded icon by registry name, e.g. `prize.free-spins`. */
13
+ get(name: string): IconHandle;
14
+ has(name: string): boolean;
15
+ resolvePrizeIconName(label: LabelKey | string | undefined): PrizeIconName;
16
+ resolveGameIconName(id: string, index: number): GameIconName;
17
+ resolveWinIconName(name: string, index: number): WinIconName;
18
+ resolveStatIconName(name: string): StatIconName;
19
+ render(name: string, options?: IconRenderOptions): TemplateResult;
20
+ svg(name: string): TemplateResult;
21
+ url(name: string): string;
22
+ private assertLoaded;
23
+ }
24
+ export declare const iconService: IconService;
25
+ export declare function prizeIconSvg(label: LabelKey | string | undefined): TemplateResult;
26
+ export declare function renderPrizeIcon(label: LabelKey | string | undefined, className?: string): TemplateResult;
27
+ export declare function resolveGameImage(id: string, index: number): string;
28
+ export declare function winIcon(name: string): TemplateResult;
@@ -0,0 +1,192 @@
1
+ import c from "../assets/icons/prize.casino-credits.svg.js";
2
+ import m from "../assets/icons/prize.default.svg.js";
3
+ import g from "../assets/icons/prize.elite-bonus.svg.js";
4
+ import l from "../assets/icons/prize.free-spins.svg.js";
5
+ import _ from "../assets/icons/prize.grand-jackpot.svg.js";
6
+ import u from "../assets/icons/prize.high-roller.svg.js";
7
+ import p from "../assets/icons/prize.mystery-bonus.svg.js";
8
+ import f from "../assets/icons/stat.clock.svg.js";
9
+ import v from "../assets/icons/stat.gift.svg.js";
10
+ import d from "../assets/icons/stat.users.svg.js";
11
+ import h from "../assets/icons/table.rank-down.svg.js";
12
+ import b from "../assets/icons/table.rank-neutral.svg.js";
13
+ import w from "../assets/icons/table.rank-up.svg.js";
14
+ import y from "../assets/icons/vip.crown.svg.js";
15
+ import I from "../assets/icons/win.bag.svg.js";
16
+ import k from "../assets/icons/win.bolt.svg.js";
17
+ import z from "../assets/icons/win.coin.svg.js";
18
+ import S from "../assets/icons/win.fire.svg.js";
19
+ import $ from "../assets/icons/win.gem.svg.js";
20
+ import N from "../assets/icons/win.trophy.svg.js";
21
+ import { html as o } from "lit";
22
+ import { unsafeSVG as n } from "lit/directives/unsafe-svg.js";
23
+ import { labelText as O } from "../types/data.js";
24
+ import E from "../assets/images/games/cards.png.js";
25
+ import L from "../assets/images/games/chips.png.js";
26
+ import P from "../assets/images/games/dice.png.js";
27
+ import j from "../assets/images/games/gates-of-olympus.png.js";
28
+ import G from "../assets/images/games/roulette.png.js";
29
+ import C from "../assets/images/games/slot-machine.png.js";
30
+ const M = /* @__PURE__ */ Object.assign({
31
+ "../assets/icons/prize.casino-credits.svg": c,
32
+ "../assets/icons/prize.default.svg": m,
33
+ "../assets/icons/prize.elite-bonus.svg": g,
34
+ "../assets/icons/prize.free-spins.svg": l,
35
+ "../assets/icons/prize.grand-jackpot.svg": _,
36
+ "../assets/icons/prize.high-roller.svg": u,
37
+ "../assets/icons/prize.mystery-bonus.svg": p,
38
+ "../assets/icons/stat.clock.svg": f,
39
+ "../assets/icons/stat.gift.svg": v,
40
+ "../assets/icons/stat.users.svg": d,
41
+ "../assets/icons/table.rank-down.svg": h,
42
+ "../assets/icons/table.rank-neutral.svg": b,
43
+ "../assets/icons/table.rank-up.svg": w,
44
+ "../assets/icons/vip.crown.svg": y,
45
+ "../assets/icons/win.bag.svg": I,
46
+ "../assets/icons/win.bolt.svg": k,
47
+ "../assets/icons/win.coin.svg": z,
48
+ "../assets/icons/win.fire.svg": S,
49
+ "../assets/icons/win.gem.svg": $,
50
+ "../assets/icons/win.trophy.svg": N
51
+ }), A = {
52
+ "game.cards": E,
53
+ "game.chips": L,
54
+ "game.dice": P,
55
+ "game.gates-of-olympus": j,
56
+ "game.roulette": G,
57
+ "game.slot-machine": C
58
+ }, a = [
59
+ "game.cards",
60
+ "game.chips",
61
+ "game.dice",
62
+ "game.gates-of-olympus",
63
+ "game.roulette",
64
+ "game.slot-machine"
65
+ ], R = {
66
+ cards: "game.cards",
67
+ chips: "game.chips",
68
+ dice: "game.dice",
69
+ "gates-of-olympus": "game.gates-of-olympus",
70
+ roulette: "game.roulette",
71
+ "slot-machine": "game.slot-machine"
72
+ };
73
+ function U(r) {
74
+ return r.match(/\/([^/]+)\.svg$/)?.[1] ?? "";
75
+ }
76
+ function x(r, e) {
77
+ return {
78
+ name: r,
79
+ kind: "svg",
80
+ svg() {
81
+ return o`${n(e)}`;
82
+ },
83
+ render({ className: s = "" } = {}) {
84
+ const t = o`${n(e)}`;
85
+ return s ? o`<span class=${s}>${t}</span>` : t;
86
+ }
87
+ };
88
+ }
89
+ function D(r, e) {
90
+ return {
91
+ name: r,
92
+ kind: "image",
93
+ url: e,
94
+ svg() {
95
+ throw new Error(`[IconService] Icon "${r}" is an image, not SVG`);
96
+ },
97
+ render({ className: s = "", alt: t = "" } = {}) {
98
+ return o`<img
99
+ src=${e}
100
+ alt=${t}
101
+ class=${s}
102
+ loading="lazy"
103
+ />`;
104
+ }
105
+ };
106
+ }
107
+ function F(r) {
108
+ const e = O(r).toLowerCase();
109
+ return e.includes("grand jackpot") || e === "jackpot" ? "prize.grand-jackpot" : e.includes("elite bonus") ? "prize.elite-bonus" : e.includes("high roller") ? "prize.high-roller" : e.includes("free spin") ? "prize.free-spins" : e.includes("casino credit") ? "prize.casino-credits" : e.includes("mystery") ? "prize.mystery-bonus" : "prize.default";
110
+ }
111
+ function H(r, e) {
112
+ return R[r] ?? a[e % a.length];
113
+ }
114
+ class T {
115
+ constructor() {
116
+ this.registry = /* @__PURE__ */ new Map(), this.loadPromise = null, this.loaded = !1;
117
+ }
118
+ /** Load all bundled SVG and game image icons. Call once on app start. */
119
+ async load() {
120
+ if (!this.loaded)
121
+ return this.loadPromise ? this.loadPromise : (this.loadPromise = (async () => {
122
+ for (const [e, s] of Object.entries(M)) {
123
+ const t = U(e);
124
+ t && this.registry.set(t, x(t, s));
125
+ }
126
+ for (const [e, s] of Object.entries(A))
127
+ this.registry.set(e, D(e, s));
128
+ this.loaded = !0;
129
+ })(), this.loadPromise);
130
+ }
131
+ /** Pick a loaded icon by registry name, e.g. `prize.free-spins`. */
132
+ get(e) {
133
+ this.assertLoaded();
134
+ const s = this.registry.get(e);
135
+ if (!s)
136
+ throw new Error(`[IconService] Unknown icon "${e}"`);
137
+ return s;
138
+ }
139
+ has(e) {
140
+ return this.assertLoaded(), this.registry.has(e);
141
+ }
142
+ resolvePrizeIconName(e) {
143
+ return F(e);
144
+ }
145
+ resolveGameIconName(e, s) {
146
+ return H(e, s);
147
+ }
148
+ resolveWinIconName(e, s) {
149
+ const t = `win.${e}`;
150
+ if (this.has(t)) return t;
151
+ const i = [
152
+ "win.bag",
153
+ "win.coin",
154
+ "win.trophy",
155
+ "win.fire",
156
+ "win.gem",
157
+ "win.bolt"
158
+ ];
159
+ return i[s % i.length];
160
+ }
161
+ resolveStatIconName(e) {
162
+ const s = `stat.${e}`;
163
+ return this.has(s) ? s : "stat.users";
164
+ }
165
+ render(e, s) {
166
+ return this.get(e).render(s);
167
+ }
168
+ svg(e) {
169
+ return this.get(e).svg();
170
+ }
171
+ url(e) {
172
+ const s = this.get(e);
173
+ if (s.kind !== "image" || !s.url)
174
+ throw new Error(`[IconService] Icon "${e}" has no image URL`);
175
+ return s.url;
176
+ }
177
+ assertLoaded() {
178
+ if (!this.loaded)
179
+ throw new Error("[IconService] Call load() before get()");
180
+ }
181
+ }
182
+ const V = new T();
183
+ function we(r) {
184
+ const e = r.startsWith("win.") ? r : `win.${r}`;
185
+ return V.svg(e);
186
+ }
187
+ export {
188
+ T as IconService,
189
+ V as iconService,
190
+ we as winIcon
191
+ };
192
+ //# sourceMappingURL=icon.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.service.js","sources":["../../../../src/components/os-leaderboard-casino/services/icon.service.ts"],"sourcesContent":["import { html } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { labelText, type LabelKey } from '@os-leaderboard-casino/types/data.js';\nimport cards from '../assets/images/games/cards.png?url';\nimport chips from '../assets/images/games/chips.png?url';\nimport dice from '../assets/images/games/dice.png?url';\nimport gatesOfOlympus from '../assets/images/games/gates-of-olympus.png?url';\nimport roulette from '../assets/images/games/roulette.png?url';\nimport slotMachine from '../assets/images/games/slot-machine.png?url';\nimport type {\n GameIconName,\n IconHandle,\n IconName,\n IconRenderOptions,\n PrizeIconName,\n StatIconName,\n WinIconName,\n} from '../types/icons.js';\nimport type { TemplateResult } from 'lit';\n\nexport type {\n GameIconName,\n IconHandle,\n IconName,\n IconRenderOptions,\n PrizeIconName,\n StatIconName,\n WinIconName,\n} from '../types/icons.js';\n\nconst svgModules = import.meta.glob('../assets/icons/*.svg', {\n query: '?raw',\n import: 'default',\n eager: true,\n}) as Record<string, string>;\n\nconst GAME_ICON_URLS: Record<GameIconName, string> = {\n 'game.cards': cards,\n 'game.chips': chips,\n 'game.dice': dice,\n 'game.gates-of-olympus': gatesOfOlympus,\n 'game.roulette': roulette,\n 'game.slot-machine': slotMachine,\n};\n\nconst GAME_ICON_FALLBACK_ORDER: readonly GameIconName[] = [\n 'game.cards',\n 'game.chips',\n 'game.dice',\n 'game.gates-of-olympus',\n 'game.roulette',\n 'game.slot-machine',\n];\n\nconst GAME_ID_TO_ICON: Record<string, GameIconName> = {\n cards: 'game.cards',\n chips: 'game.chips',\n dice: 'game.dice',\n 'gates-of-olympus': 'game.gates-of-olympus',\n roulette: 'game.roulette',\n 'slot-machine': 'game.slot-machine',\n};\n\nfunction iconNameFromPath(path: string): string {\n return path.match(/\\/([^/]+)\\.svg$/)?.[1] ?? '';\n}\n\nfunction createSvgHandle(name: IconName, markup: string): IconHandle {\n return {\n name,\n kind: 'svg',\n svg() {\n return html`${unsafeSVG(markup)}`;\n },\n render({ className = '' } = {}) {\n const content = html`${unsafeSVG(markup)}`;\n return className\n ? html`<span class=${className}>${content}</span>`\n : content;\n },\n };\n}\n\nfunction createImageHandle(name: IconName, url: string): IconHandle {\n return {\n name,\n kind: 'image',\n url,\n svg() {\n throw new Error(`[IconService] Icon \"${name}\" is an image, not SVG`);\n },\n render({ className = '', alt = '' } = {}) {\n return html`<img\n src=${url}\n alt=${alt}\n class=${className}\n loading=\"lazy\"\n />`;\n },\n };\n}\n\nfunction resolvePrizeIconName(\n label: LabelKey | string | undefined,\n): PrizeIconName {\n const text = labelText(label).toLowerCase();\n\n if (text.includes('grand jackpot') || text === 'jackpot') {\n return 'prize.grand-jackpot';\n }\n if (text.includes('elite bonus')) {\n return 'prize.elite-bonus';\n }\n if (text.includes('high roller')) {\n return 'prize.high-roller';\n }\n if (text.includes('free spin')) {\n return 'prize.free-spins';\n }\n if (text.includes('casino credit')) {\n return 'prize.casino-credits';\n }\n if (text.includes('mystery')) {\n return 'prize.mystery-bonus';\n }\n\n return 'prize.default';\n}\n\nfunction resolveGameIconName(id: string, index: number): GameIconName {\n return (\n GAME_ID_TO_ICON[id] ??\n GAME_ICON_FALLBACK_ORDER[index % GAME_ICON_FALLBACK_ORDER.length]\n );\n}\n\n/** Registry-backed icon loader for os-leaderboard-casino. */\nexport class IconService {\n private readonly registry = new Map<string, IconHandle>();\n private loadPromise: Promise<void> | null = null;\n private loaded = false;\n\n /** Load all bundled SVG and game image icons. Call once on app start. */\n async load(): Promise<void> {\n if (this.loaded) return;\n if (this.loadPromise) return this.loadPromise;\n\n this.loadPromise = (async () => {\n for (const [path, markup] of Object.entries(svgModules)) {\n const name = iconNameFromPath(path);\n if (!name) continue;\n this.registry.set(name, createSvgHandle(name as IconName, markup));\n }\n\n for (const [name, url] of Object.entries(GAME_ICON_URLS)) {\n this.registry.set(name, createImageHandle(name as IconName, url));\n }\n\n this.loaded = true;\n })();\n\n return this.loadPromise;\n }\n\n /** Pick a loaded icon by registry name, e.g. `prize.free-spins`. */\n get(name: string): IconHandle {\n this.assertLoaded();\n const icon = this.registry.get(name);\n if (!icon) {\n throw new Error(`[IconService] Unknown icon \"${name}\"`);\n }\n return icon;\n }\n\n has(name: string): boolean {\n this.assertLoaded();\n return this.registry.has(name);\n }\n\n resolvePrizeIconName(label: LabelKey | string | undefined): PrizeIconName {\n return resolvePrizeIconName(label);\n }\n\n resolveGameIconName(id: string, index: number): GameIconName {\n return resolveGameIconName(id, index);\n }\n\n resolveWinIconName(name: string, index: number): WinIconName {\n const key = `win.${name}` as WinIconName;\n if (this.has(key)) return key;\n\n const fallback: WinIconName[] = [\n 'win.bag',\n 'win.coin',\n 'win.trophy',\n 'win.fire',\n 'win.gem',\n 'win.bolt',\n ];\n return fallback[index % fallback.length];\n }\n\n resolveStatIconName(name: string): StatIconName {\n const key = `stat.${name}` as StatIconName;\n return this.has(key) ? key : 'stat.users';\n }\n\n render(name: string, options?: IconRenderOptions): TemplateResult {\n return this.get(name).render(options);\n }\n\n svg(name: string): TemplateResult {\n return this.get(name).svg();\n }\n\n url(name: string): string {\n const icon = this.get(name);\n if (icon.kind !== 'image' || !icon.url) {\n throw new Error(`[IconService] Icon \"${name}\" has no image URL`);\n }\n return icon.url;\n }\n\n private assertLoaded(): void {\n if (!this.loaded) {\n throw new Error('[IconService] Call load() before get()');\n }\n }\n}\n\nexport const iconService = new IconService();\n\nexport function prizeIconSvg(\n label: LabelKey | string | undefined,\n): TemplateResult {\n return iconService.svg(iconService.resolvePrizeIconName(label));\n}\n\nexport function renderPrizeIcon(\n label: LabelKey | string | undefined,\n className = '',\n): TemplateResult {\n return iconService.render(iconService.resolvePrizeIconName(label), {\n className: ['prize-icon', className].filter(Boolean).join(' '),\n });\n}\n\nexport function resolveGameImage(id: string, index: number): string {\n return iconService.url(iconService.resolveGameIconName(id, index));\n}\n\nexport function winIcon(name: string): TemplateResult {\n const registryName = name.startsWith('win.') ? name : `win.${name}`;\n return iconService.svg(registryName);\n}\n"],"names":["svgModules","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","GAME_ICON_URLS","cards","chips","dice","gatesOfOlympus","roulette","slotMachine","GAME_ICON_FALLBACK_ORDER","GAME_ID_TO_ICON","iconNameFromPath","path","createSvgHandle","name","markup","html","unsafeSVG","className","content","createImageHandle","url","alt","resolvePrizeIconName","label","text","labelText","resolveGameIconName","id","index","IconService","icon","key","fallback","options","iconService","winIcon","registryName"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { AdapterService, adapterService } from './adapter.service.js';
2
+ export { IconService, iconService, type GameIconName, type IconHandle, type IconName, type IconRenderOptions, type PrizeIconName, type StatIconName, type WinIconName, prizeIconSvg, renderPrizeIcon, resolveGameImage, winIcon, } from './icon.service.js';
@@ -0,0 +1,3 @@
1
+ export { osLeaderboardCasinoTheme, glassCard } from './styles.js';
2
+ export { renderPlayerName, vipBadge } from './vip-mark.js';
3
+ export { prizeIconSvg, renderPrizeIcon } from './prize-icons.js';
@@ -0,0 +1 @@
1
+ export { prizeIconSvg, renderPrizeIcon, } from '../services/icon.service.js';
@@ -0,0 +1,5 @@
1
+ import { QuizPrize } from '../types/data.js';
2
+ /** Prize tier that covers `rank` (inclusive range). */
3
+ export declare function prizeForRank(prizes: QuizPrize[], rank: number): QuizPrize | undefined;
4
+ export declare function isPodiumPrize(prize: QuizPrize): boolean;
5
+ export declare function podiumVariantForRank(rank: 1 | 2 | 3): 'gold' | 'silver' | 'bronze';
@@ -0,0 +1,11 @@
1
+ function i(n, r) {
2
+ return n.find((o) => r >= o.rankFrom && r <= o.rankTo);
3
+ }
4
+ function t(n) {
5
+ return { 1: "gold", 2: "silver", 3: "bronze" }[n];
6
+ }
7
+ export {
8
+ t as podiumVariantForRank,
9
+ i as prizeForRank
10
+ };
11
+ //# sourceMappingURL=prize-resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prize-resolve.js","sources":["../../../../src/components/os-leaderboard-casino/theme/prize-resolve.ts"],"sourcesContent":["import type { QuizPrize } from '@os-leaderboard-casino/types/data.js';\n\n/** Prize tier that covers `rank` (inclusive range). */\nexport function prizeForRank(\n prizes: QuizPrize[],\n rank: number,\n): QuizPrize | undefined {\n return prizes.find((prize) => rank >= prize.rankFrom && rank <= prize.rankTo);\n}\n\nexport function isPodiumPrize(prize: QuizPrize): boolean {\n return (\n prize.rankFrom === prize.rankTo &&\n prize.rankFrom >= 1 &&\n prize.rankFrom <= 3\n );\n}\n\nexport function podiumVariantForRank(\n rank: 1 | 2 | 3,\n): 'gold' | 'silver' | 'bronze' {\n return ({ 1: 'gold', 2: 'silver', 3: 'bronze' } as const)[rank];\n}\n"],"names":["prizeForRank","prizes","rank","prize","podiumVariantForRank"],"mappings":"AAGO,SAASA,EACdC,GACAC,GACuB;AACvB,SAAOD,EAAO,KAAK,CAACE,MAAUD,KAAQC,EAAM,YAAYD,KAAQC,EAAM,MAAM;AAC9E;AAUO,SAASC,EACdF,GAC8B;AAC9B,SAAQ,EAAE,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAA,EAAqBA,CAAI;AAChE;"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Design tokens — "casino noir" glam.
3
+ * Champagne gold on deep noir, glassy surfaces, soft neon accents.
4
+ * Each color token reads an external `--os-casino-*` override first so
5
+ * consumers can theme the component from outside the shadow DOM.
6
+ */
7
+ export declare const osLeaderboardCasinoTheme: import('lit').CSSResult;
8
+ /** Shared glass-card recipe used across sections. */
9
+ export declare const glassCard: import('lit').CSSResult;
@@ -0,0 +1,179 @@
1
+ import { css as a } from "@lit/reactive-element/css-tag.js";
2
+ const o = a`
3
+ :host {
4
+ --bg: var(--os-casino-bg, #0a0712);
5
+ --bg-2: var(--os-casino-bg-2, #110b1e);
6
+ --surface: var(--os-casino-surface, rgba(26, 19, 42, 0.78));
7
+ --surface-solid: var(--os-casino-surface-solid, #1a132a);
8
+ --surface-2: var(--os-casino-surface-2, rgba(38, 28, 60, 0.85));
9
+ --glass-blur: 14px;
10
+ --radius-lg: 20px;
11
+ --hairline: var(--os-casino-hairline, rgba(255, 255, 255, 0.07));
12
+ --hairline-strong: var(--os-casino-hairline-strong, rgba(255, 255, 255, 0.13));
13
+ --hairline-gold: var(--os-casino-hairline-gold, rgba(245, 196, 81, 0.22));
14
+
15
+ --text: var(--os-casino-text, #f7f3ff);
16
+ --text-dim: var(--os-casino-text-dim, #ab9fce);
17
+ --text-faint: var(--os-casino-text-faint, #6e6394);
18
+
19
+ --gold: var(--os-casino-gold, #f5c451);
20
+ --gold-strong: var(--os-casino-gold-strong, #ffe093);
21
+ --gold-deep: var(--os-casino-gold-deep, #c98f1d);
22
+ --gold-soft: var(--os-casino-gold-soft, rgba(245, 196, 81, 0.13));
23
+ --gold-glow: var(--os-casino-gold-glow, rgba(245, 196, 81, 0.38));
24
+ --gold-gradient: var(
25
+ --os-casino-gold-gradient,
26
+ linear-gradient(
27
+ 120deg,
28
+ #8a5e10 0%,
29
+ #f5c451 28%,
30
+ #ffe9b0 50%,
31
+ #f5c451 72%,
32
+ #8a5e10 100%
33
+ )
34
+ );
35
+
36
+ --silver: var(--os-casino-silver, #cfd6e4);
37
+ --silver-soft: var(--os-casino-silver-soft, rgba(207, 214, 228, 0.12));
38
+ --bronze: var(--os-casino-bronze, #d99a66);
39
+ --bronze-soft: var(--os-casino-bronze-soft, rgba(217, 154, 102, 0.12));
40
+
41
+ --violet: var(--os-casino-violet, #9d6bff);
42
+ --violet-soft: var(--os-casino-violet-soft, rgba(157, 107, 255, 0.16));
43
+ --green: var(--os-casino-green, #41e6a5);
44
+ --green-soft: var(--os-casino-green-soft, rgba(65, 230, 165, 0.13));
45
+ --cyan: var(--os-casino-cyan, #5fe6ff);
46
+ --cyan-soft: var(--os-casino-cyan-soft, rgba(95, 230, 255, 0.13));
47
+ --red: var(--os-casino-red, #ff5d7c);
48
+ --red-soft: var(--os-casino-red-soft, rgba(255, 93, 124, 0.13));
49
+
50
+ --radius: 20px;
51
+ --radius-sm: 13px;
52
+ --shadow: 0 22px 48px -24px rgba(0, 0, 0, 0.95);
53
+ --shadow-gold: 0 12px 42px -16px var(--gold-glow);
54
+
55
+ --font-display: var(--os-casino-font-display, 'Sora', system-ui, sans-serif);
56
+ --font-body: var(--os-casino-font-body, 'Inter', system-ui, sans-serif);
57
+ --font-mono: var(--os-casino-font-mono, ui-monospace, 'JetBrains Mono', monospace);
58
+
59
+ font-family: var(--font-body);
60
+
61
+ --transition-fast: 0.2s ease;
62
+
63
+ --accent-2: var(--os-casino-accent-2, color-mix(in srgb, var(--violet) 28%, transparent));
64
+
65
+ --panel-bg: linear-gradient(
66
+ 120deg,
67
+ color-mix(in srgb, var(--surface-solid) 94%, transparent),
68
+ color-mix(in srgb, var(--surface) 88%, transparent)
69
+ );
70
+ --panel-border: color-mix(in srgb, var(--violet) 22%, var(--hairline));
71
+ --panel-shadow: 0 18px 50px -28px color-mix(in srgb, black 90%, transparent);
72
+ --panel-fade-start: color-mix(in srgb, var(--surface-solid) 94%, transparent);
73
+ --panel-fade-end: color-mix(in srgb, var(--surface) 88%, transparent);
74
+ }
75
+
76
+ .section-header {
77
+ display: flex;
78
+ align-items: baseline;
79
+ gap: 12px;
80
+ margin-bottom: 12px;
81
+ }
82
+
83
+ .section-header:has(.strategy) {
84
+ align-items: center;
85
+ }
86
+
87
+ .section-title {
88
+ margin: 0;
89
+ font-family: var(--font-display);
90
+ font-size: 15px;
91
+ font-weight: 800;
92
+ letter-spacing: 0.02em;
93
+ color: var(--text);
94
+ }
95
+
96
+ .player-name {
97
+ display: inline-flex;
98
+ align-items: center;
99
+ gap: 6px;
100
+ min-width: 0;
101
+ max-width: 100%;
102
+ }
103
+
104
+ .player-name .name {
105
+ overflow: hidden;
106
+ text-overflow: ellipsis;
107
+ white-space: nowrap;
108
+ font-weight: 700;
109
+ }
110
+
111
+ .player-name .vip-badge {
112
+ flex: none;
113
+ display: inline-flex;
114
+ align-items: center;
115
+ gap: 3px;
116
+ font-family: var(--font-body);
117
+ font-size: 9.5px;
118
+ font-weight: 800;
119
+ letter-spacing: 0.08em;
120
+ line-height: 1;
121
+ text-transform: uppercase;
122
+ color: var(--gold);
123
+ border: 1px solid color-mix(in srgb, var(--gold) 45%, transparent);
124
+ border-radius: 5px;
125
+ padding: 1px 5px;
126
+ background: transparent;
127
+ vertical-align: middle;
128
+ }
129
+
130
+ .player-name .vip-badge svg {
131
+ width: 10px;
132
+ height: 10px;
133
+ flex-shrink: 0;
134
+ }
135
+
136
+ .prize-icon {
137
+ display: inline-grid;
138
+ place-items: center;
139
+ flex: none;
140
+ width: 18px;
141
+ height: 18px;
142
+ vertical-align: -3px;
143
+ }
144
+
145
+ .prize-icon--inline {
146
+ width: 14px;
147
+ height: 14px;
148
+ vertical-align: -2px;
149
+ }
150
+
151
+ .prize-entry {
152
+ display: inline-flex;
153
+ align-items: center;
154
+ gap: 6px;
155
+ min-width: 0;
156
+ max-width: 100%;
157
+ }
158
+
159
+ .prize-entry .prize-label {
160
+ overflow: hidden;
161
+ text-overflow: ellipsis;
162
+ white-space: nowrap;
163
+ min-width: 0;
164
+ }
165
+ `;
166
+ a`
167
+ .glass {
168
+ background: var(--surface);
169
+ border: 1px solid var(--hairline);
170
+ border-radius: var(--radius);
171
+ box-shadow: var(--shadow);
172
+ backdrop-filter: blur(var(--glass-blur));
173
+ -webkit-backdrop-filter: blur(var(--glass-blur));
174
+ }
175
+ `;
176
+ export {
177
+ o as osLeaderboardCasinoTheme
178
+ };
179
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../src/components/os-leaderboard-casino/theme/styles.ts"],"sourcesContent":["import { css } from '@lit/reactive-element/css-tag.js';\n\n/**\n * Design tokens — \"casino noir\" glam.\n * Champagne gold on deep noir, glassy surfaces, soft neon accents.\n * Each color token reads an external `--os-casino-*` override first so\n * consumers can theme the component from outside the shadow DOM.\n */\nexport const osLeaderboardCasinoTheme = css`\n :host {\n --bg: var(--os-casino-bg, #0a0712);\n --bg-2: var(--os-casino-bg-2, #110b1e);\n --surface: var(--os-casino-surface, rgba(26, 19, 42, 0.78));\n --surface-solid: var(--os-casino-surface-solid, #1a132a);\n --surface-2: var(--os-casino-surface-2, rgba(38, 28, 60, 0.85));\n --glass-blur: 14px;\n --radius-lg: 20px;\n --hairline: var(--os-casino-hairline, rgba(255, 255, 255, 0.07));\n --hairline-strong: var(--os-casino-hairline-strong, rgba(255, 255, 255, 0.13));\n --hairline-gold: var(--os-casino-hairline-gold, rgba(245, 196, 81, 0.22));\n\n --text: var(--os-casino-text, #f7f3ff);\n --text-dim: var(--os-casino-text-dim, #ab9fce);\n --text-faint: var(--os-casino-text-faint, #6e6394);\n\n --gold: var(--os-casino-gold, #f5c451);\n --gold-strong: var(--os-casino-gold-strong, #ffe093);\n --gold-deep: var(--os-casino-gold-deep, #c98f1d);\n --gold-soft: var(--os-casino-gold-soft, rgba(245, 196, 81, 0.13));\n --gold-glow: var(--os-casino-gold-glow, rgba(245, 196, 81, 0.38));\n --gold-gradient: var(\n --os-casino-gold-gradient,\n linear-gradient(\n 120deg,\n #8a5e10 0%,\n #f5c451 28%,\n #ffe9b0 50%,\n #f5c451 72%,\n #8a5e10 100%\n )\n );\n\n --silver: var(--os-casino-silver, #cfd6e4);\n --silver-soft: var(--os-casino-silver-soft, rgba(207, 214, 228, 0.12));\n --bronze: var(--os-casino-bronze, #d99a66);\n --bronze-soft: var(--os-casino-bronze-soft, rgba(217, 154, 102, 0.12));\n\n --violet: var(--os-casino-violet, #9d6bff);\n --violet-soft: var(--os-casino-violet-soft, rgba(157, 107, 255, 0.16));\n --green: var(--os-casino-green, #41e6a5);\n --green-soft: var(--os-casino-green-soft, rgba(65, 230, 165, 0.13));\n --cyan: var(--os-casino-cyan, #5fe6ff);\n --cyan-soft: var(--os-casino-cyan-soft, rgba(95, 230, 255, 0.13));\n --red: var(--os-casino-red, #ff5d7c);\n --red-soft: var(--os-casino-red-soft, rgba(255, 93, 124, 0.13));\n\n --radius: 20px;\n --radius-sm: 13px;\n --shadow: 0 22px 48px -24px rgba(0, 0, 0, 0.95);\n --shadow-gold: 0 12px 42px -16px var(--gold-glow);\n\n --font-display: var(--os-casino-font-display, 'Sora', system-ui, sans-serif);\n --font-body: var(--os-casino-font-body, 'Inter', system-ui, sans-serif);\n --font-mono: var(--os-casino-font-mono, ui-monospace, 'JetBrains Mono', monospace);\n\n font-family: var(--font-body);\n\n --transition-fast: 0.2s ease;\n\n --accent-2: var(--os-casino-accent-2, color-mix(in srgb, var(--violet) 28%, transparent));\n\n --panel-bg: linear-gradient(\n 120deg,\n color-mix(in srgb, var(--surface-solid) 94%, transparent),\n color-mix(in srgb, var(--surface) 88%, transparent)\n );\n --panel-border: color-mix(in srgb, var(--violet) 22%, var(--hairline));\n --panel-shadow: 0 18px 50px -28px color-mix(in srgb, black 90%, transparent);\n --panel-fade-start: color-mix(in srgb, var(--surface-solid) 94%, transparent);\n --panel-fade-end: color-mix(in srgb, var(--surface) 88%, transparent);\n }\n\n .section-header {\n display: flex;\n align-items: baseline;\n gap: 12px;\n margin-bottom: 12px;\n }\n\n .section-header:has(.strategy) {\n align-items: center;\n }\n\n .section-title {\n margin: 0;\n font-family: var(--font-display);\n font-size: 15px;\n font-weight: 800;\n letter-spacing: 0.02em;\n color: var(--text);\n }\n\n .player-name {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n max-width: 100%;\n }\n\n .player-name .name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 700;\n }\n\n .player-name .vip-badge {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: 3px;\n font-family: var(--font-body);\n font-size: 9.5px;\n font-weight: 800;\n letter-spacing: 0.08em;\n line-height: 1;\n text-transform: uppercase;\n color: var(--gold);\n border: 1px solid color-mix(in srgb, var(--gold) 45%, transparent);\n border-radius: 5px;\n padding: 1px 5px;\n background: transparent;\n vertical-align: middle;\n }\n\n .player-name .vip-badge svg {\n width: 10px;\n height: 10px;\n flex-shrink: 0;\n }\n\n .prize-icon {\n display: inline-grid;\n place-items: center;\n flex: none;\n width: 18px;\n height: 18px;\n vertical-align: -3px;\n }\n\n .prize-icon--inline {\n width: 14px;\n height: 14px;\n vertical-align: -2px;\n }\n\n .prize-entry {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n max-width: 100%;\n }\n\n .prize-entry .prize-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n`;\n\n/** Shared glass-card recipe used across sections. */\nexport const glassCard = css`\n .glass {\n background: var(--surface);\n border: 1px solid var(--hairline);\n border-radius: var(--radius);\n box-shadow: var(--shadow);\n backdrop-filter: blur(var(--glass-blur));\n -webkit-backdrop-filter: blur(var(--glass-blur));\n }\n`;\n"],"names":["osLeaderboardCasinoTheme","css"],"mappings":";AAQO,MAAMA,IAA2BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsKfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,2 @@
1
+ import { TemplateResult } from 'lit';
2
+ export declare const iconCrown: () => TemplateResult;
@@ -0,0 +1,6 @@
1
+ import { iconService as o } from "../services/icon.service.js";
2
+ const c = () => o.svg("vip.crown");
3
+ export {
4
+ c as iconCrown
5
+ };
6
+ //# sourceMappingURL=vip-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vip-icons.js","sources":["../../../../src/components/os-leaderboard-casino/theme/vip-icons.ts"],"sourcesContent":["import type { TemplateResult } from 'lit';\nimport { iconService } from '@os-leaderboard-casino/services/icon.service.js';\n\nexport const iconCrown = (): TemplateResult => iconService.svg('vip.crown');\n"],"names":["iconCrown","iconService"],"mappings":";AAGO,MAAMA,IAAY,MAAsBC,EAAY,IAAI,WAAW;"}
@@ -0,0 +1,7 @@
1
+ import { nothing, TemplateResult } from 'lit';
2
+ /** v0 vip badge — slim outline tag with crown + VIP label. */
3
+ export declare function vipBadge(vip?: boolean): TemplateResult | typeof nothing;
4
+ export declare function renderPlayerName(username: string, options?: {
5
+ vip?: boolean;
6
+ suffix?: TemplateResult | typeof nothing;
7
+ }): TemplateResult;
@@ -0,0 +1,20 @@
1
+ import { nothing as s, html as e } from "lit";
2
+ import { iconCrown as p } from "./vip-icons.js";
3
+ function i(n) {
4
+ return n ? e`<span class="vip-badge">${p()}VIP</span>` : s;
5
+ }
6
+ function f(n, a) {
7
+ const r = a?.vip ?? !1;
8
+ return e`
9
+ <span class="player-name ${r ? "is-vip" : ""}">
10
+ ${i(r)}
11
+ <span class="name">${n}</span>
12
+ ${a?.suffix ?? s}
13
+ </span>
14
+ `;
15
+ }
16
+ export {
17
+ f as renderPlayerName,
18
+ i as vipBadge
19
+ };
20
+ //# sourceMappingURL=vip-mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vip-mark.js","sources":["../../../../src/components/os-leaderboard-casino/theme/vip-mark.ts"],"sourcesContent":["import { html, nothing, type TemplateResult } from 'lit';\nimport { iconCrown } from './vip-icons.js';\n\n/** v0 vip badge — slim outline tag with crown + VIP label. */\nexport function vipBadge(vip?: boolean): TemplateResult | typeof nothing {\n if (!vip) return nothing;\n return html`<span class=\"vip-badge\">${iconCrown()}VIP</span>`;\n}\n\nexport function renderPlayerName(\n username: string,\n options?: { vip?: boolean; suffix?: TemplateResult | typeof nothing },\n): TemplateResult {\n const vip = options?.vip ?? false;\n\n return html`\n <span class=\"player-name ${vip ? 'is-vip' : ''}\">\n ${vipBadge(vip)}\n <span class=\"name\">${username}</span>\n ${options?.suffix ?? nothing}\n </span>\n `;\n}\n"],"names":["vipBadge","vip","html","iconCrown","nothing","renderPlayerName","username","options"],"mappings":";;AAIO,SAASA,EAASC,GAAgD;AACvE,SAAKA,IACEC,4BAA+BC,GAAW,eADhCC;AAEnB;AAEO,SAASC,EACdC,GACAC,GACgB;AAChB,QAAMN,IAAMM,GAAS,OAAO;AAE5B,SAAOL;AAAA,+BACsBD,IAAM,WAAW,EAAE;AAAA,QAC1CD,EAASC,CAAG,CAAC;AAAA,2BACMK,CAAQ;AAAA,QAC3BC,GAAS,UAAUH,CAAO;AAAA;AAAA;AAGlC;"}
@@ -0,0 +1,40 @@
1
+ import { LeaderboardCasinoLabels, LeaderboardCasinoPresetId, LeaderboardCasinoPresetMeta } from './input.js';
2
+ import { OsLeaderboardCasinoConfig, OsLeaderboardCasinoMainSectionId, OsLeaderboardCasinoSectionId, OsLeaderboardCasinoState } from './state.js';
3
+ export interface LeaderboardCasinoAssetsTheme {
4
+ id: string;
5
+ label: string;
6
+ description?: string;
7
+ appearance: OsLeaderboardCasinoConfig['appearance'];
8
+ vars?: Record<string, string>;
9
+ }
10
+ export interface LeaderboardCasinoAssetsPreset {
11
+ id: LeaderboardCasinoPresetId;
12
+ label: string;
13
+ description: string;
14
+ appearance: OsLeaderboardCasinoConfig['appearance'];
15
+ themeId: string;
16
+ config: {
17
+ labels?: LeaderboardCasinoLabels;
18
+ enabled: readonly OsLeaderboardCasinoSectionId[];
19
+ mainOrder?: readonly OsLeaderboardCasinoMainSectionId[];
20
+ };
21
+ }
22
+ /** Static JSON bundle the parent app provides (or ships under `/assets/...`). */
23
+ export interface LeaderboardCasinoAssetsBundle {
24
+ version: 1;
25
+ labels: LeaderboardCasinoLabels;
26
+ themes: readonly LeaderboardCasinoAssetsTheme[];
27
+ presets: {
28
+ defaultPresetId: LeaderboardCasinoPresetId;
29
+ presets: readonly LeaderboardCasinoAssetsPreset[];
30
+ };
31
+ catalog: readonly LeaderboardCasinoPresetMeta[];
32
+ resolvedPresets: Record<string, OsLeaderboardCasinoState>;
33
+ }
34
+ /** Parent passes inline JSON and/or a base URL to static files under `assets/`. */
35
+ export interface LeaderboardCasinoAssetsInput {
36
+ /** Full bundle — preferred when parent already loaded JSON. */
37
+ bundle?: LeaderboardCasinoAssetsBundle | null;
38
+ /** e.g. `/assets/producer_output/os-leaderboard-casino/free` — loads `bundle.json`. */
39
+ baseUrl?: string;
40
+ }